4'000.00 CHF
4'000.00 CHF
4000.0
CHF
4'000.00 CHF
Diese Kombination existiert nicht.
In den Warenkorb
1949, Technik und Landschaft, 20 Rp. Stausee, "Grosse Doppelprägung der 6.+29. Marke", 1949 Technik und Landschaft, 20 Rp. Stausee Grimsel mit markanter Abart:" Grosse Doppelprägung"der 6.+29. Marke, zarter Stempel, die Doppelprägung freilassend.
Erhaltung:
gestempelt
SBK:
301A.2.01
Michel Nummer:
533II DP I
Interne Referenz:
7300.301.25
20 Rp. Stausee, "Grosse Doppelprägung der 6.+29. Marke"
PCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PG1ldGEgbmFtZT0iZ29vZ2xlIiBjb250ZW50PSJub3RyYW5zbGF0ZSI+PG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlOyI+PHN0eWxlIG5vbmNlPSIxR0lEbEpQZmxMM2x1eW9OR3NXLWlRIj5AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidSb2JvdG8nO2ZvbnQtc3R5bGU6aXRhbGljO2ZvbnQtd2VpZ2h0OjQwMDtzcmM6dXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjE4L0tGT2tDbnFFdTkyRnIxTXU1MXhJSXpjLnR0Zilmb3JtYXQoJ3RydWV0eXBlJyk7fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J1JvYm90byc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6MzAwO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92MTgvS0ZPbENucUV1OTJGcjFNbVNVNWZCQmM5LnR0Zilmb3JtYXQoJ3RydWV0eXBlJyk7fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J1JvYm90byc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO3NyYzp1cmwoLy9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92MTgvS0ZPbUNucUV1OTJGcjFNdTRteFAudHRmKWZvcm1hdCgndHJ1ZXR5cGUnKTt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonUm9ib3RvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo1MDA7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3YxOC9LRk9sQ25xRXU5MkZyMU1tRVU5ZkJCYzkudHRmKWZvcm1hdCgndHJ1ZXR5cGUnKTt9QGZvbnQtZmFjZXtmb250LWZhbWlseTonUm9ib3RvJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo3MDA7c3JjOnVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3YxOC9LRk9sQ25xRXU5MkZyMU1tV1VsZkJCYzkudHRmKWZvcm1hdCgndHJ1ZXR5cGUnKTt9PC9zdHlsZT48bWV0YSBuYW1lPSJyZWZlcnJlciIgY29udGVudD0ib3JpZ2luIj48dGl0bGU+cGFzdGVkIGltYWdlIDAucG5nIC0gR29vZ2xlIERyaXZlPC90aXRsZT48bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9InBhc3RlZCBpbWFnZSAwLnBuZyI+PG1ldGEgcHJvcGVydHk9Im9nOnR5cGUiIGNvbnRlbnQ9ImFydGljbGUiPjxtZXRhIHByb3BlcnR5PSJvZzpzaXRlX25hbWUiIGNvbnRlbnQ9Ikdvb2dsZSBEb2NzIj48bWV0YSBwcm9wZXJ0eT0ib2c6dXJsIiBjb250ZW50PSJodHRwczovL2RyaXZlLmdvb2dsZS5jb20vZmlsZS9kLzE2cXJCNzZnbGh6QXlWU3BUZXBBMkEwdUhtWXN4VzZmQi92aWV3P3VzcD1zaGFyaW5nJmFtcDt1c3A9ZW1iZWRfZmFjZWJvb2siPjxtZXRhIHByb3BlcnR5PSJvZzppbWFnZSIgY29udGVudD0iaHR0cHM6Ly9saDQuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2pnRWg3SFpjU3hYSWJaMUptMXI5MFgwaF9UUk5aWUF6VmhQNjFBMWZiTnpiMVVqODZWRE9nUmd6QndfbkdUdF81M2c9dzEyMDAtaDYzMC1wIj48bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2U6d2lkdGgiIGNvbnRlbnQ9IjEyMDAiPjxtZXRhIHByb3BlcnR5PSJvZzppbWFnZTpoZWlnaHQiIGNvbnRlbnQ9IjYzMCI+PGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSJodHRwczovL3NzbC5nc3RhdGljLmNvbS9pbWFnZXMvYnJhbmRpbmcvcHJvZHVjdC8xeC9kcml2ZV8yMDIwcTRfMzJkcC5wbmciPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PUdvb2dsZStTYW5zOjMwMCw0MDAsNTAwLDcwMCIgbm9uY2U9IjFHSURsSlBmbEwzbHV5b05Hc1ctaVEiPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vXy9hcHBzLWZpbGV2aWV3L18vc3Mvaz1hcHBzLWZpbGV2aWV3LnYubnZnbnFQWlRJSFEuTC5XLk8vYW09QUJBL2Q9MC9ycz1BTzAwMzlzT0hDd1YyQzJqdU9Yd1FPTHRGOGU2QmIxaWRRIiBub25jZT0iMUdJRGxKUGZsTDNsdXlvTkdzVy1pUSI+PHNjcmlwdCBub25jZT0ibUgzcWVpalowN3h6ZDliSkYyTUswUSI+X2RvY3NfZmxhZ19pbml0aWFsRGF0YT17ImRvY3MtYWlscyI6ImRvY3NfY29sZCIsImRvY3MtZndkcyI6ImRvY3Nfc2RmIiwiZG9jcy1jcnMiOiJkb2NzX2Nyc19uZmQiLCJkb2NzLWwydCI6MCwiZG9jcy1zaGRuIjowLCJkb2NzLXRmaCI6IiIsImluZm9fcGFyYW1zIjp7fSwiZG9jcy1lb2htbyI6ZmFsc2UsInVscyI6IiIsImRvY3Mtb2JzSW1VcmwiOiJodHRwczovL3NzbC5nc3RhdGljLmNvbS9kb2NzL2NvbW1vbi9uZXRjaGVjay5naWYiLCJkb2NzLWFwaS1rZXlzIjp7fSwiYnVpbGRMYWJlbCI6ImFwcHMtZmlsZXZpZXcudGV4bWV4XzIwMjIxMTE2LjA0X3AxIiwiZG9jcy1zaG93X2RlYnVnX2luZm8iOmZhbHNlLCJvbmRsYnVybCI6Imh0dHBzOi8vZG9jcy5nb29nbGUuY29tIiwiZHJpdmVfdXJsIjoiaHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tIiwiYXBwX3VybCI6Imh0dHBzOi8vZHJpdmUuZ29vZ2xlLmNvbS9maWxlLyIsImRvY3MtaXRyZiI6ZmFsc2UsImRvY3MtZ3NtZCI6IiIsImRvY3MtZWlkZmMiOmZhbHNlLCJkb2NzLW1zaWQiOjMyNzY3LCJkb2NzLW1pZiI6MTAwMCwiZG9jcy1pY2RtdCI6W10sImRvY3MtcmF1aXUiOmZhbHNlLCJkb2NzLW1pcCI6NjI1MDAwMCwiZG9jcy1taWIiOjUyNDI4ODAsImRvY3MtbWlkIjoyMDQ4LCJkb2NzLXJpZCI6MTAyNCwiZG9jcy1zdXAiOiIvZmlsZSIsImRvY3Mtc2V1IjoiaHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL2ZpbGUvZC8xNnFyQjc2Z2xoekF5VlNwVGVwQTJBMHVIbVlzeFc2ZkIvZWRpdCIsImRvY3MtY3JwIjoiL2ZpbGUvZC8xNnFyQjc2Z2xoekF5VlNwVGVwQTJBMHVIbVlzeFc2ZkIvdmlldyIsImRvY3MtY3JxIjoidXNwXHUwMDNkc2hhcmluZyIsImRvY3MtdXB0YyI6WyJsc3JwIiwiY2EiLCJzaCIsIm5vcmVwbGljYSIsIm91aWQiLCJkbCIsImhpIiwiaGlfZXh0IiwidXNwIiwidXJwIiwidXRtX3NvdXJjZSIsInV0bV9tZWRpdW0iLCJ1dG1fY2FtcGFpZ24iLCJ1dG1fdGVybSIsInV0bV9jb250ZW50IiwiYWFhYyIsInNsZSJdLCJkb2NzLWRvZGRuIjoiQXRoYXJ2YSBTeXN0ZW0iLCJkb2NzLXVkZG4iOiIiLCJkb2NzLWN3c2QiOiIiLCJkb2NzLWVwcSI6ZmFsc2UsImRvY3MtZXJkaWl2IjpmYWxzZSwiZG9jcy1hY2FwIjpbImRvY3Muc2VjdXJpdHkuYWNjZXNzX2NhcGFiaWxpdGllcyIsMSwxLDEsMSwxLDAsMCwxLDEsMCwxLDEsMSwxLDEsMCwwLDEsMCwwLDAsMF0sImRvY3MtY2kiOiIxNnFyQjc2Z2xoekF5VlNwVGVwQTJBMHVIbVlzeFc2ZkIiLCJkb2NzLWVjY2ZzIjpmYWxzZSwiZG9jcy1lZWZ1ZmQiOmZhbHNlLCJkb2NzLW5kdCI6IlVudGl0bGVkIFRleG1leCIsImRvY3MtcHJuIjoiIiwiZG9jcy1lZW4iOmZhbHNlLCJkb2NzLWFzIjoiIiwiZG9jcy1ldGRpbW8iOmZhbHNlLCJkb2NzLW1kY2siOiIiLCJkb2NzLW1yaWltIjoxODAwMDAwLCJkb2NzLWVjY2JzIjpmYWxzZSwiZG9jcy1ybG1wIjpmYWxzZSwiZG9jcy1tbXB0IjoxNTAwMCwiZG9jcy1lcmQiOmZhbHNlLCJkb2NzLWVyZmFyIjpmYWxzZSwiZG9jcy1lbnNiIjpmYWxzZSwiZG9jcy1kZHRzIjpmYWxzZSwiZG9jcy11b290dW5zIjpmYWxzZSwiZG9jcy1hbWF3c28iOmZhbHNlLCJkb2NzLW9mbXBwIjpmYWxzZSwiZG9jcy1hbmxwZmRvIjpmYWxzZSwiZG9jcy1lc2xhcnMiOnRydWUsImRvY3MtZWVtIjpmYWxzZSwiZG9jcy1waGUiOiJodHRwczovL2NvbnRhY3RzLmdvb2dsZS5jb20iLCJkb2NzLWdsdSI6IiIsImRvY3Mtd3N1IjoiIiwiZG9jcy13c3VwIjoiIiwiZG9jcy1wc2UiOiJQUk9EIiwiZG9jcy1zY2NmbyI6IlBST0QiLCJkb2NzLWVyaWRtIjpmYWxzZSwiZG9jcy1waWQiOiIiLCJkb2NzLWVlZG1sZiI6ZmFsc2UsImRvY3MtZW1tZGEiOmZhbHNlLCJkb2NzLXJpY29jcGIiOmZhbHNlLCJkb2NzLXJkb3dyIjpmYWxzZSwiZG9jcy1lZmZucCI6ZmFsc2UsImRvY3MtY3R0bXRiciI6MCwiZG9jcy1lYWFzd29jIjpmYWxzZSwiZG9jcy1lZHBzZiI6dHJ1ZSwiZG9jcy1lZGxvIjpmYWxzZSwiZG9jcy1jdHRtdGVxIjowLCJkb2Nvcy1lZGNlcyI6ZmFsc2UsImRvY3MtZGVjIjpmYWxzZSwiZG9jcy1laWFzcnB1IjpmYWxzZSwiZG9jcy1lY3R0IjpmYWxzZSwiZG9jcy1lYmJvdWYiOmZhbHNlLCJkb2NzLWVjZ2QiOmZhbHNlLCJkb2NzLXBjZmxvYyI6ZmFsc2UsImRvY3MtZHNwcyI6ZmFsc2UsImRvY3MtZW1ibWQiOnRydWUsImRvY3MtaGZ0IjoiIiwiZG9jcy1lY2VjcyI6ZmFsc2UsImRvY3MtZWVycCI6dHJ1ZSwiZG9jcy1lY3VyZiI6ZmFsc2UsImRvY3MtZWZzaWkiOmZhbHNlLCJkb2NzLWVsY2ZkIjpmYWxzZSwiZG9jcy1lZG1pdG0iOmZhbHNlLCJkb2NzLWVuamVjIjpmYWxzZSwiZWNpZCI6dHJ1ZSwiZG9jcy1laXIiOmZhbHNlLCJzZXJ2ZXJfdGltZV9tcyI6MTY2OTc5MjA4NjY5NSwiZ2FpYV9zZXNzaW9uX2lkIjoiIiwiYXBwLWJjIjoiI2QxZDFkMSIsImVuYWJsZV9pZnJhbWVkX2VtYmVkX2FwaSI6dHJ1ZSwiZG9jcy1pc2IiOmZhbHNlLCJkb2NzLWFnZGMiOmZhbHNlLCJkb2NzLWFuZGRjIjpmYWxzZSwiZG9jcy1hZG5kbGRjIjpmYWxzZSwiZG9jcy1kaG5hcCI6ImRyaXZlLmdvb2dsZS5jb20iLCJkb2NzLWRzIjoiaHR0cHMiLCJkb2NzLXRleHQtZWZybm1hIjpmYWxzZSwiZG9jcy1jbGlicyI6MTAwMCwiZG9jcy1jaWRlIjp0cnVlLCJkb2NzLWNuIjoiIiwiZG9jcy1kZXBxdWFmciI6ZmFsc2UsImRvY3MtZnJiYW5tYyI6ZmFsc2UsImRvY3MtcmxkY2UiOmZhbHNlLCJkb2NzLWRvbSI6ZmFsc2UsImRvY3MtZXBicWJsIjpmYWxzZSwiZG9jcy1lY2VyIjpmYWxzZSwiZG9jcy1lY2lyIjpmYWxzZSwiZG9jcy1lY3NzbCI6ZmFsc2UsImRvY3MtZWNzdXAiOmZhbHNlLCJkb2NzLWVjcGVkIjpmYWxzZSwiZG9jcy1lY3ByZ2JhIjpmYWxzZSwiZG9jcy1lZGFtYyI6ZmFsc2UsImRvY3MtZWRvbWljIjpmYWxzZSwiZG9jb3MtZWRkbHRjIjp0cnVlLCJkb2Nvcy1lZGNhYiI6dHJ1ZSwiZG9jcy1lZGRtIjpmYWxzZSwiZG9jcy1lZHNpIjpmYWxzZSwia2l4LWVkcmF0IjpmYWxzZSwia2l4LWVkcmF0djIiOmZhbHNlLCJkb2NzLWVkaHFsZnIiOmZhbHNlLCJkb2NzLWVlaGxiIjpmYWxzZSwiZG9jcy1yZWlpZSI6dHJ1ZSwiZG9jcy1md2QiOmZhbHNlLCJkb2NzLWVmcGd3YiI6ZmFsc2UsImRvY3MtZWZ1IjpmYWxzZSwiZG9jcy1laWJ1IjpmYWxzZSwiZG9jcy1laWJzIjpmYWxzZSwiZG9jcy1laWVjciI6dHJ1ZSwiZG9jcy1lbGRzIjpmYWxzZSwiZG9jcy1lb21kIjpmYWxzZSwiZG9jcy1lb2RzdXAiOmZhbHNlLCJkb2NzLWVwbWkiOmZhbHNlLCJkb2NzLWVwaCI6ZmFsc2UsImRvY3MtZXBhdCI6dHJ1ZSwiZG9jcy1lcHBkIjpmYWxzZSwiZG9jcy1lc3NwaCI6ZmFsc2UsImRvY3MtZXN3d3UiOmZhbHNlLCJkb2NzLWV0ZSI6ZmFsc2UsImRvY3MtZXVkIjpmYWxzZSwiZG9jcy1ldWx0IjpmYWxzZSwiZG9jcy1leHRjZCI6ZmFsc2UsImRvY3MtaGN3aWR1IjpmYWxzZSwiZG9jcy1pcG1tcCI6dHJ1ZSwiZG9jcy1pcHV2Ijp0cnVlLCJkb2NzLXRkZCI6ZmFsc2UsImRvY3MtcGxpbWlmIjoyMC4wLCJkb2NzLXJzYyI6IiIsImRvY3MtcmdpZmVtIjp0cnVlLCJkb2NzLXNwdG0iOmZhbHNlLCJkb2NzLXNzaSI6ZmFsc2UsImRvY3MtdWVubGEiOmZhbHNlLCJkb2NzLXVldG0iOmZhbHNlLCJkb2NzLXVodCI6IiIsImRvY3MtdW9jaSI6IiIsImRvY3Mtd2lhIjoiIiwiZG9jcy1ndGgiOiIiLCJkb2NzLW5kc29tIjpbXSwiZG9jcy1kbSI6ImltYWdlL3BuZyIsImRvY3Mtc2Rzb20iOltdLCJkb2NzLXBvIjoiaHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tIiwiZG9jcy10byI6Imh0dHBzOi8vZHJpdmUuZ29vZ2xlLmNvbSIsImRvY3MtZWdpdCI6ZmFsc2UsIm9wZW5kdiI6ZmFsc2UsIm9uZVBpY2tJbXBvcnREb2N1bWVudFVybCI6IiIsIm9wbWJzIjo1MjQyODgwLCJvcG1wZCI6MjUwMCwib3BidSI6Imh0dHBzOi8vZG9jcy5nb29nbGUuY29tL3BpY2tlciIsIm9wcnUiOiJodHRwczovL2RyaXZlLmdvb2dsZS5jb20vcmVsYXkuaHRtbCIsIm9wZHUiOmZhbHNlLCJvcGNjcCI6ZmFsc2UsIm9waGkiOiJ0ZXhtZXgiLCJvcHN0IjoiIiwib3B1Y2kiOiIiLCJkb2NzLWVvcGlpdjIiOnRydWUsInByb2plY3Rvcl9iYXNlX3VybCI6Ii8vZHJpdmUuZ29vZ2xlLmNvbSIsImRvY3MtZHJrIjpbXSwiZG9jcy1lcmtwcCI6ZmFsc2UsImRvY3MtZXJrZnN1Ijp0cnVlLCJqb2JzZXQiOiJwcm9kIiwiZG9jcy1lcWFtIjpmYWxzZSwiZG9jcy1laGxpYiI6ZmFsc2UsImRvY3MtZXVhb29sIjpmYWxzZSwiZG9jcy1ldWEiOmZhbHNlLCJkb2NzLWViZmdmIjpmYWxzZSwiZG9jcy1laGliIjpmYWxzZSwiZG9jcy11YWhudCI6IiIsImRvY3MtZXNhcCI6dHJ1ZSwiZG9jcy1lZmliIjpmYWxzZSwiZG9jcy1zZSI6ZmFsc2UsImRvY3MtZWJ0Ijp0cnVlLCJkb2NzLWVlY3MiOmZhbHNlLCJkb2NzLWVpc2liIjpmYWxzZSwiZG9jcy1lbXRyIjpmYWxzZSwiZG9jcy1lZ2YiOmZhbHNlLCJkb2NzLXVwdHVmIjp0cnVlLCJkb2NzLWVvZHBiIjp0cnVlLCJkb2NzLW9kcGwiOmZhbHNlLCJkb2NzLXN1cmZiIjpmYWxzZSwiZG9jcy1vZHBkdSI6W251bGwsbnVsbCxudWxsLCIvL2RyaXZlLmdvb2dsZS5jb20vb2RwL2RpYWxvZyJdLCJkb2NzLW9kcHUiOltudWxsLG51bGwsbnVsbCwiLy9kcml2ZS5nb29nbGUuY29tL29kcC9lbWJlZCJdLCJkb2NzLWRhZmplcmEiOmZhbHNlLCJkb2NzLWRhZmxpYSI6ZmFsc2UsImRvY3MtZGFmd3NhIjpmYWxzZSwiZG9jcy1kYWZnZm1hIjpmYWxzZSwiZG9jcy1mdGEtZm5yaGNpIjpmYWxzZSwiZG9jcy1zcGR5IjpmYWxzZSwieGRiY2ZBbGxvd0hvc3ROYW1lUHJlZml4Ijp0cnVlLCJ4ZGJjZkFsbG93WHBjIjp0cnVlLCJkb2NzLWRiY3RjIjpmYWxzZSwiZG9jcy1pcm9yIjp0cnVlLCJkb2NzLWVpcmoiOmZhbHNlLCJwcm9tb191cmwiOiIiLCJwcm9tb19zZWNvbmRfdXJsIjoiIiwicHJvbW9fdGl0bGUiOiIiLCJwcm9tb190aXRsZV9wcmVmaXgiOiIiLCJwcm9tb19jb250ZW50X2h0bWwiOiIiLCJwcm9tb19tb3JlX2VsZW1lbnRfdGV4dCI6IiIsInByb21vX3NlY29uZF9tb3JlX2VsZW1lbnRfdGV4dCI6IiIsInByb21vX2VsZW1lbnRfaWQiOiIiLCJwcm9tb19vcmllbnRhdGlvbiI6MSwicHJvbW9fYXJyb3dfYWxpZ25tZW50IjowLCJwcm9tb19zaG93X29uX2NsaWNrIjpmYWxzZSwicHJvbW9faGlkZV9hcnJvdyI6ZmFsc2UsInByb21vX3Nob3dfb25fbG9hZCI6ZmFsc2UsInByb21vX21hcmtfZGlzbWlzc2VkX29uX3Nob3ciOmZhbHNlLCJwcm9tb191c2VfbWF0ZXJpYWxfc3R5bGluZyI6ZmFsc2UsInByb21vX2Nsb3NlX2J1dHRvbl90ZXh0IjoiIiwicHJvbW9faWNvbl91cmwiOiIiLCJwcm9tb19hY3Rpb25faWQiOiIiLCJwcm9tb19pbXByZXNzaW9uX2lkIjowLCJwcm9tb19pc19jb250ZXh0dWFsIjpmYWxzZSwicHJvbW9fY3NzX2NsYXNzX25hbWUiOiIiLCJkb2NzLWVwZnYiOmZhbHNlLCJkb2NzLWNjd3QiOjgwLCJkb2NzLWVwY2MiOmZhbHNlLCJkb2NzLWVvb2R3ZmxiIjpmYWxzZSwiZG9jcy1lcmEiOnRydWUsImRvY3MtZXN2YiI6ZmFsc2UsImRvY3Mtb29kd2ZsYmh0IjoiIiwiZG9jcy1lbnJmIjp0cnVlfTsgX2RvY3NfZmxhZ19jZWs9IG51bGwgOyBpZiAod2luZG93WydET0NTX3RpbWluZyddKSB7RE9DU190aW1pbmdbJ2lmZGxkJ109bmV3IERhdGUoKS5nZXRUaW1lKCk7fTwvc2NyaXB0PjxzY3JpcHQgbm9uY2U9Im1IM3FlaWpaMDd4emQ5YkpGMk1LMFEiPndpbmRvdy52aWV3ZXJEYXRhID0ge2NvbmZpZzogeydpZCc6ICcxNnFyQjc2Z2xoekF5VlNwVGVwQTJBMHVIbVlzeFc2ZkInLCAndGl0bGUnOiAncGFzdGVkIGltYWdlIDAucG5nJywgJ2lzSXRlbVRyYXNoZWQnOiAgZmFsc2UgLCAnZG9jdW1lbnRSZXNvdXJjZUtleSc6ICcnLCdlbmFibGVFbWJlZERpYWxvZyc6IHRydWUsJ3Byb2plY3RvckZlZWRiYWNrSWQnOiAnOTk5NTAnLCAncHJvamVjdG9yRmVlZGJhY2tCdWNrZXQnOiAndmlld2VyLXdlYicsfSwgY29uZmlnSnNvbjogWyIiLG51bGwsbnVsbCxudWxsLG51bGwsMSxudWxsLG51bGwsbnVsbCwxLDEsWzEsbnVsbCxudWxsLCJBSXphU3lEVlF3NDVEd29ZaDYzMmd2c1A1dlBEcUVLdmItWXduYjgiLDEsbnVsbCxudWxsLG51bGwsbnVsbCwiQUl6YVN5QzFlUTF4ajY5SWRUTWVpaTVyN2JyczNSOTBlY2stbTdrIixudWxsLCIvZHJpdmUvdjJiZXRhIiwwLDAsMSxudWxsLG51bGwsMSxudWxsLDAsMSwxXSxudWxsLDUsMSxudWxsLG51bGwsMSwiaHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tIixudWxsLG51bGwsMSxudWxsLDEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDEsbnVsbCxudWxsLFtbbnVsbCwiMCIsMV0sNiwxLDEsbnVsbCxudWxsLG51bGwsM10sbnVsbCwxLG51bGwsbnVsbCxbbnVsbCxudWxsLG51bGwsbnVsbCwiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL1NlcnZpY2VMb2dpbj9zZXJ2aWNlXHUwMDNkd2lzZVx1MDAyNnBhc3NpdmVcdTAwM2QxMjA5NjAwXHUwMDI2Y29udGludWVcdTAwM2RodHRwczovL2RyaXZlLmdvb2dsZS5jb20vZmlsZS9kLzE2cXJCNzZnbGh6QXlWU3BUZXBBMkEwdUhtWXN4VzZmQi92aWV3P3VzcCUzRHNoYXJpbmdcdTAwMjZobFx1MDAzZG5sXHUwMDI2Zm9sbG93dXBcdTAwM2RodHRwczovL2RyaXZlLmdvb2dsZS5jb20vZmlsZS9kLzE2cXJCNzZnbGh6QXlWU3BUZXBBMkEwdUhtWXN4VzZmQi92aWV3P3VzcCUzRHNoYXJpbmciLG51bGwsbnVsbCxudWxsLDFdLG51bGwsbnVsbCwxLG51bGwsbnVsbCwiaHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20iLG51bGwsMSxbbnVsbCwwXSxbImh0dHBzOi8veW91dHViZS5nb29nbGVhcGlzLmNvbSJdLDEsbnVsbCxudWxsLG51bGwsMSxudWxsLDEsMSxudWxsLG51bGwsbnVsbCxudWxsLFsxLDEsMSwxXSxudWxsLDEsbnVsbCwzLG51bGwsbnVsbCxudWxsLG51bGwsMSxbIkFJemFTeUNNcDZzcjRvVEMxOEFXa0UySWk0VUJaSFRIRXBHWldaTSIsImh0dHBzOi8vYmxvYmNvbW1lbnRzLXBhLmNsaWVudHM2Lmdvb2dsZS5jb20iLG51bGwsMSwxLDEsbnVsbCxudWxsLG51bGwsbnVsbCwiQU5PTllNT1VTXzE3NjEyNTk1NzU5NTA3MzQ4ODA4Il0sbnVsbCwxLG51bGwsbnVsbCwwLG51bGwsbnVsbCwxLG51bGwsbnVsbCxudWxsLFsxLDEsMV0sbnVsbCxudWxsLDEsMSxbbnVsbCxudWxsLCJodHRwczovL2NsaWVudHM2Lmdvb2dsZS5jb20iLCJBSXphU3lEX0luYm1TRnVmSUVwczVVQXQyTm1CXzNMdkJIM1N6XzgiLCJodHRwczovL3Blb3BsZS1wYS5nb29nbGVhcGlzLmNvbSIsbnVsbCxudWxsLG51bGwsMSwxLDFdLG51bGwsMSxudWxsLG51bGwsbnVsbCxudWxsLFswLDBdLG51bGwsbnVsbCxudWxsLG51bGwsMCxudWxsLDAsMSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxbMCwiIiwiIiwiIiwiIl0sMSxbbnVsbCxudWxsLDAsMCwwLDAsMV0sbnVsbCwxLFtbbnVsbCxudWxsLG51bGwsIi8vZHJpdmUuZ29vZ2xlLmNvbS9vZHAvZW1iZWQiXSxudWxsLCIvZHJpdmUvdjJpbnRlcm5hbCIsIkFJemFTeUNJR0hZRWRtOTFwMzFIS3lKU29VNGF0N0lxaENWaVh1QSIsMSxudWxsLFtudWxsLG51bGwsbnVsbCwiLy9kcml2ZS5nb29nbGUuY29tL29kcC9kaWFsb2ciXV0sWzFdLG51bGwsbnVsbCxudWxsLG51bGwsMSwiaHR0cHM6Ly93b3Jrc3BhY2UuZ29vZ2xlLmNvbSIsbnVsbCxudWxsLDAsMSwxLDEsMSxudWxsLDEsWyJBSXphU3lDTXA2c3I0b1RDMThBV2tFMklpNFVCWkhUSEVwR1pXWk0iLCJodHRwczovL2RyaXZlbWV0YWRhdGEuY2xpZW50czYuZ29vZ2xlLmNvbSIsbnVsbCwiaHR0cHM6Ly9kcml2ZWxhYmVscy5jbGllbnRzNi5nb29nbGUuY29tIl0sMSwxLG51bGwsbnVsbCxudWxsLG51bGwsMSwwLG51bGwsbnVsbCwwXSwgaXRlbUpzb246IFtudWxsLCJwYXN0ZWQgaW1hZ2UgMC5wbmciLCJodHRwczovL2xoMy5nb29nbGV1c2VyY29udGVudC5jb20vZHJpdmUtdmlld2VyL0FGREs2Z00yUEYtV21TTGhvNGg5QkppcTBiT2JEVW9URWJrUTBvQ0hWdXhIOUNlVjZ6VDREd0c4dUpHZ1pOem1QaGFjRnlPTjlnSTE4dkVpV2x3ZGwtanJFSFJNcGN3TFx1MDAzZHMxNjAwIiwiaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2RyaXZlLXZpZXdlci9BRkRLNmdNMlBGLVdtU0xobzRoOUJKaXEwYk9iRFVvVEVia1Ewb0NIVnV4SDlDZVY2elQ0RHdHOHVKR2daTnptUGhhY0Z5T045Z0kxOHZFaVdsd2RsLWpyRUhSTXBjd0xcdTAwM2RzMTYwMCIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsImh0dHBzOi8vbGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9kcml2ZS12aWV3ZXIvQUZESzZnTTJQRi1XbVNMaG80aDlCSmlxMGJPYkRVb1RFYmtRMG9DSFZ1eEg5Q2VWNnpUNER3Rzh1SkdnWk56bVBoYWNGeU9OOWdJMTh2RWlXbHdkbC1qckVIUk1wY3dMXHUwMDNkczI1NjAiLCJpbWFnZS9wbmciLG51bGwsbnVsbCwwLG51bGwsImh0dHBzOi8vZHJpdmUuZ29vZ2xlLmNvbS9maWxlL2QvMTZxckI3NmdsaHpBeVZTcFRlcEEyQTB1SG1Zc3hXNmZCL3ZpZXciLG51bGwsImh0dHBzOi8vZHJpdmUuZ29vZ2xlLmNvbS91Yz9pZFx1MDAzZDE2cXJCNzZnbGh6QXlWU3BUZXBBMkEwdUhtWXN4VzZmQlx1MDAyNmV4cG9ydFx1MDAzZGRvd25sb2FkIixudWxsLDUsMCxudWxsLG51bGwsbnVsbCxbbnVsbCxudWxsLCIxNTk5OTIiXSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMCwicG5nIixudWxsLFtbIjBCeW90dlQ5b0hody1hWEV4YmtaT1VYbDBVWHBvUVhsc2IyY3ZjbE4wZDBwVlNFTkZQUSJdLFtdLFsiMTZxckI3NmdsaHpBeVZTcFRlcEEyQTB1SG1Zc3hXNmZCIl1dLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDEsbnVsbCwwXX07PC9zY3JpcHQ+PHNjcmlwdCBub25jZT0ibUgzcWVpalowN3h6ZDliSkYyTUswUSI+O3RoaXMuZ2Jhcl89e0NPTkZJRzpbW1swLCJ3d3cuZ3N0YXRpYy5jb20iLCJvZy5xdG0uZW5fVVMuU3pDUnpmbHlKb2suTyIsImJlIiwibmwiLCIyNSIsMCxbNCwyLCIiLCIiLCIiLCI0ODk4NjIyNzAiLCIwIl0sbnVsbCwiVmdHSFk3U0ZLLWpwX1FiMWpMdTRBZyIsbnVsbCwwLCJvZy5xdG0ueU1XMUhJbjlrRlUuTC5YLk8iLCJBQTJZclR0NEpPdnUtWEhpOFFtS3AzQU9hLVBRSG9HWGNRIiwiQUEyWXJUdXhEdE1JUTlSSTR6TGNCRm1vX2xTVHBWS2plQSIsIiIsMiwxLDIwMCwiQkVMIixudWxsLG51bGwsIjI1IiwiMjUiLDFdLG51bGwsWzEsMC4xMDAwMDAwMDE0OTAxMTYxLDIsMV0sWzEsMC4wMDEwMDAwMDAwNDc0OTc0NTEsMV0sWzAsMCwwLG51bGwsIiIsIiIsIiIsIiJdLFswLDAsIiIsMSwwLDAsMCwwLDAsMCxudWxsLDAsMCxudWxsLDAsMCxudWxsLG51bGwsMCwwLDAsIiIsIiIsIiIsIiIsIiIsIiIsbnVsbCwwLDAsMCwwLDAsbnVsbCxudWxsLG51bGwsInJnYmEoMzIsMzMsMzYsMSkiLCJyZ2JhKDI1NSwyNTUsMjU1LDEpIiwwLDAsMCxudWxsLG51bGwsMSwwLDBdLG51bGwsbnVsbCxbIjEiLCJnY2lfOTFmMzA3NTVkNmE2Yjc4N2RjYzJhNDA2MmU2ZTk4MjQuanMiLCJnb29nbGVhcGlzLmNsaWVudDpnYXBpLmlmcmFtZXMiLCIiLCJubCJdLG51bGwsbnVsbCxudWxsLG51bGwsWyJtOy9fL3Njcy9hYmMtc3RhdGljL18vanMvaz1nYXBpLmdhcGkuZW4uUGxwbndENEhZcm8uTy9kPTEvcnM9QUhwT29vLUQ0NTczbWQ1R21kSkhYMTVkMGxjM1NvT2JoQS9tPV9fZmVhdHVyZXNfXyIsImh0dHBzOi8vYXBpcy5nb29nbGUuY29tIiwiIiwiIiwiIiwiIixudWxsLDEsImVzX3BsdXNvbmVfZ2NfMjAyMjExMDEuMF9wMCIsIm5sIixudWxsLDBdLFswLjAwOTk5OTk5OTc3NjQ4MjU4MiwiYmUiLCIyNSIsW251bGwsIiIsIjAiLG51bGwsMSw1MTg0MDAwLG51bGwsbnVsbCwiIixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMCxudWxsLDAsMCwxLDAsMCwwLG51bGwsbnVsbCwwLDAsbnVsbCwwLDAsMCwwLDBdLG51bGwsbnVsbCxudWxsLDAsbnVsbCxudWxsLFsiNTA2MTQ1MSIsImdvb2dsZVxcLihjb218cnV8Y2F8Ynl8a3p8Y29tXFwubXh8Y29tXFwudHIpJCIsMV1dLFsxLDEsbnVsbCwyNzA0MywyNSwiQkVMIiwibmwiLCI0ODk4NjIyNzAuMCIsOCwwLjAwOTk5OTk5OTc3NjQ4MjU4MiwwLDAsbnVsbCxudWxsLG51bGwsbnVsbCwiIixudWxsLG51bGwsbnVsbCwiVmdHSFk3U0ZLLWpwX1FiMWpMdTRBZyIsMCwwLDAsbnVsbCwyLDUsInFyIiw3NCwwLDAsMCwwLDBdLFtbbnVsbCxudWxsLG51bGwsImh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL29nL18vanMvaz1vZy5xdG0uZW5fVVMuU3pDUnpmbHlKb2suTy9ydD1qL209cWFicixxX2RucCxxYXBpZC9leG09cWFhdyxxYWRkLHFhaWQscWVpbixxaGF3LHFoYnIscWhjaCxxaGdhLHFoaWQscWhpbixxaHByL2Q9MS9lZD0xL3JzPUFBMllyVHQ0Sk92dS1YSGk4UW1LcDNBT2EtUFFIb0dYY1EiXV1dXSx9O3RoaXMuZ2Jhcl89dGhpcy5nYmFyX3x8e307KGZ1bmN0aW9uKF8pe3ZhciB3aW5kb3c9dGhpczsKdHJ5ewovKgoKIENvcHlyaWdodCBUaGUgQ2xvc3VyZSBMaWJyYXJ5IEF1dGhvcnMuCiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAoqLwp2YXIga2EsemEsQWEsQmEsR2EsSWEsS2EsTGEsUmEsVWEsUWEsVmEsWWEsWmEsZGIsZWIsZmIsZ2IsaGIsaWIsa2IsbGIscGIscWI7Xy5hYT1mdW5jdGlvbihhLGIpe2lmKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKUVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsXy5hYSk7ZWxzZXt2YXIgYz1FcnJvcigpLnN0YWNrO2MmJih0aGlzLnN0YWNrPWMpfWEmJih0aGlzLm1lc3NhZ2U9U3RyaW5nKGEpKTt2b2lkIDAhPT1iJiYodGhpcy5jYXVzZT1iKX07Xy5iYT1mdW5jdGlvbigpe3ZhciBhPV8ubi5uYXZpZ2F0b3I7cmV0dXJuIGEmJihhPWEudXNlckFnZW50KT9hOiIifTtfLnA9ZnVuY3Rpb24oYSl7cmV0dXJuLTEhPV8uYmEoKS5pbmRleE9mKGEpfTtfLmNhPWZ1bmN0aW9uKCl7cmV0dXJuIF8ucCgiT3BlcmEiKX07Xy5kYT1mdW5jdGlvbigpe3JldHVybiBfLnAoIlRyaWRlbnQiKXx8Xy5wKCJNU0lFIil9O18uZWE9ZnVuY3Rpb24oKXtyZXR1cm4gXy5wKCJGaXJlZm94Iil8fF8ucCgiRnhpT1MiKX07Cl8uaGE9ZnVuY3Rpb24oKXtyZXR1cm4gXy5wKCJTYWZhcmkiKSYmIShfLmZhKCl8fF8ucCgiQ29hc3QiKXx8Xy5jYSgpfHxfLnAoIkVkZ2UiKXx8Xy5wKCJFZGcvIil8fF8ucCgiT1BSIil8fF8uZWEoKXx8Xy5wKCJTaWxrIil8fF8ucCgiQW5kcm9pZCIpKX07Xy5mYT1mdW5jdGlvbigpe3JldHVybihfLnAoIkNocm9tZSIpfHxfLnAoIkNyaU9TIikpJiYhXy5wKCJFZGdlIil8fF8ucCgiU2lsayIpfTtfLmlhPWZ1bmN0aW9uKCl7cmV0dXJuIF8ucCgiQW5kcm9pZCIpJiYhKF8uZmEoKXx8Xy5lYSgpfHxfLmNhKCl8fF8ucCgiU2lsayIpKX07a2E9ZnVuY3Rpb24oKXtyZXR1cm4gXy5wKCJpUGhvbmUiKSYmIV8ucCgiaVBvZCIpJiYhXy5wKCJpUGFkIil9O18ubGE9ZnVuY3Rpb24oKXtyZXR1cm4ga2EoKXx8Xy5wKCJpUGFkIil8fF8ucCgiaVBvZCIpfTsKXy5tYT1mdW5jdGlvbihhKXt2YXIgYj1hLmxlbmd0aDtpZigwPGIpe2Zvcih2YXIgYz1BcnJheShiKSxkPTA7ZDxiO2QrKyljW2RdPWFbZF07cmV0dXJuIGN9cmV0dXJuW119O18ubmE9ZnVuY3Rpb24oKXtyZXR1cm4tMSE9Xy5iYSgpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigid2Via2l0IikmJiFfLnAoIkVkZ2UiKX07Xy5wYT1mdW5jdGlvbihhKXtyZXR1cm4gb2EmJm51bGwhPWEmJmEgaW5zdGFuY2VvZiBVaW50OEFycmF5fTtfLnJhPWZ1bmN0aW9uKGEsYil7aWYocWEpcmV0dXJuIGFbcWFdfD1iO2lmKHZvaWQgMCE9PWEuUmIpcmV0dXJuIGEuUmJ8PWI7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoYSx7UmI6e3ZhbHVlOmIsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLGVudW1lcmFibGU6ITF9fSk7cmV0dXJuIGJ9O18uc2E9ZnVuY3Rpb24oYSxiKXtxYT9hW3FhXSYmKGFbcWFdJj1+Yik6dm9pZCAwIT09YS5SYiYmKGEuUmImPX5iKX07Cl8udGE9ZnVuY3Rpb24oYSl7dmFyIGI7cWE/Yj1hW3FhXTpiPWEuUmI7cmV0dXJuIG51bGw9PWI/MDpifTtfLnVhPWZ1bmN0aW9uKGEsYil7cWE/YVtxYV09Yjp2b2lkIDAhPT1hLlJiP2EuUmI9YjpPYmplY3QuZGVmaW5lUHJvcGVydGllcyhhLHtSYjp7dmFsdWU6Yixjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsZW51bWVyYWJsZTohMX19KX07Xy52YT1mdW5jdGlvbihhKXtfLnJhKGEsMSk7cmV0dXJuIGF9O18ud2E9ZnVuY3Rpb24oYSl7cmV0dXJuISEoXy50YShhKSYyKX07Xy54YT1mdW5jdGlvbihhKXtfLnJhKGEsMTYpO3JldHVybiBhfTtfLnlhPWZ1bmN0aW9uKGEsYil7Xy51YShiLChhfDApJi01MSl9O3phPWZ1bmN0aW9uKGEsYil7Xy51YShiLChhfDE4KSYtNDEpfTtBYT1mdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9PWEmJiJvYmplY3QiPT09dHlwZW9mIGEmJiFBcnJheS5pc0FycmF5KGEpJiZhLmNvbnN0cnVjdG9yPT09T2JqZWN0fTsKQmE9ZnVuY3Rpb24oYSl7dmFyIGI9YS5sZW5ndGg7KGI9Yj9hW2ItMV06dm9pZCAwKSYmQWEoYik/Yi5nPTE6KGI9e30sYS5wdXNoKChiLmc9MSxiKSkpfTtfLkRhPWZ1bmN0aW9uKGEsYil7Xy5DYT1iO2E9bmV3IGEoYik7Xy5DYT12b2lkIDA7cmV0dXJuIGF9O0dhPWZ1bmN0aW9uKGEpe3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSAibnVtYmVyIjpyZXR1cm4gaXNGaW5pdGUoYSk/YTpTdHJpbmcoYSk7Y2FzZSAib2JqZWN0IjppZihhKWlmKEFycmF5LmlzQXJyYXkoYSkpe2lmKDAhPT0oXy50YShhKSYxMjgpKXJldHVybiBhPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGEpLEJhKGEpLGF9ZWxzZXtpZihfLnBhKGEpKXJldHVybiBfLkVhKGEpO2lmKGEgaW5zdGFuY2VvZiBfLkZhKXt2YXIgYj1hLkJhO3JldHVybiBudWxsPT1iPyIiOiJzdHJpbmciPT09dHlwZW9mIGI/YjphLkJhPV8uRWEoYil9fX1yZXR1cm4gYX07CklhPWZ1bmN0aW9uKGEsYixjLGQpe2lmKG51bGwhPWEpe2lmKEFycmF5LmlzQXJyYXkoYSkpYT1fLkhhKGEsYixjLHZvaWQgMCE9PWQpO2Vsc2UgaWYoQWEoYSkpe3ZhciBlPXt9LGY7Zm9yKGYgaW4gYSllW2ZdPUlhKGFbZl0sYixjLGQpO2E9ZX1lbHNlIGE9YihhLGQpO3JldHVybiBhfX07Xy5IYT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1fLnRhKGEpO2Q9ZD8hIShlJjE2KTp2b2lkIDA7YT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhKTtmb3IodmFyIGY9MDtmPGEubGVuZ3RoO2YrKylhW2ZdPUlhKGFbZl0sYixjLGQpO2MoZSxhKTtyZXR1cm4gYX07S2E9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuZGU9PT1fLkphP2EudG9KU09OKCk6R2EoYSl9O0xhPWZ1bmN0aW9uKGEsYil7YSYxMjgmJkJhKGIpfTsKXy5OYT1mdW5jdGlvbihhLGIsYyxkKXthLkEmJihhLkE9dm9pZCAwKTtpZihiPj1hLm98fGQpcmV0dXJuIE1hKGEpW2JdPWMsYTthLnlhW2IrYS5GY109YzsoYz1hLmopJiZiIGluIGMmJmRlbGV0ZSBjW2JdO3JldHVybiBhfTtfLk9hPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG51bGw9PWE/YjphfTtSYT1mdW5jdGlvbihhKXt2YXIgYj1fLnRhKGEpO2lmKGImMilyZXR1cm4gYTthPV8uUGEoYSxRYSk7emEoYixhKTtPYmplY3QuZnJlZXplKGEpO3JldHVybiBhfTsKVWE9ZnVuY3Rpb24oYSxiLGMpe2M9dm9pZCAwPT09Yz96YTpjO2lmKG51bGwhPWEpe2lmKG9hJiZhIGluc3RhbmNlb2YgVWludDhBcnJheSlyZXR1cm4gYS5sZW5ndGg/bmV3IF8uRmEobmV3IFVpbnQ4QXJyYXkoYSksXy5TYSk6Xy5UYSgpO2lmKEFycmF5LmlzQXJyYXkoYSkpe3ZhciBkPV8udGEoYSk7aWYoZCYyKXJldHVybiBhO2lmKGImJiEoZCYzMikmJihkJjE2fHwwPT09ZCkpcmV0dXJuIF8udWEoYSxkfDIpLGE7YT1fLkhhKGEsVWEsYywhMCk7Yj1fLnRhKGEpO2ImNCYmYiYyJiZPYmplY3QuZnJlZXplKGEpO3JldHVybiBhfXJldHVybiBhLmRlPT09Xy5KYT9RYShhKTphfX07UWE9ZnVuY3Rpb24oYSl7aWYoXy53YShhLnlhKSlyZXR1cm4gYTthPVZhKGEsITApO18ucmEoYS55YSwyKTtyZXR1cm4gYX07ClZhPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS55YSxkPV8ueGEoW10pLGU9YS5jb25zdHJ1Y3Rvci5qO2UmJmQucHVzaChlKTswIT09KF8udGEoYykmMTI4KSYmQmEoZCk7Yj1ifHxhLmpjKCk/emE6Xy55YTtkPV8uRGEoYS5jb25zdHJ1Y3RvcixkKTthLm9jJiYoZC5vYz1hLm9jLnNsaWNlKCkpO2U9ISEoXy50YShjKSYxNik7Zm9yKHZhciBmPTA7ZjxjLmxlbmd0aDtmKyspe3ZhciBnPWNbZl07aWYoZj09PWMubGVuZ3RoLTEmJkFhKGcpKWZvcih2YXIgaCBpbiBnKXt2YXIgbD0raDtpZihOdW1iZXIuaXNOYU4obCkpTWEoZClbbF09Z1tsXTtlbHNle3ZhciBtPWdbaF0scj1hLlZhJiZhLlZhW2xdO3I/Xy5XYShkLGwsUmEociksITApOl8ucShkLGwsVWEobSxlLGIpLCEwKX19ZWxzZSBsPWYtYS5GYywobT1hLlZhJiZhLlZhW2xdKT9fLldhKGQsbCxSYShtKSwhMSk6Xy5xKGQsbCxVYShnLGUsYiksITEpfXJldHVybiBkfTsKXy5YYT1mdW5jdGlvbihhKXtpZighXy53YShhLnlhKSlyZXR1cm4gYTt2YXIgYj1WYShhLCExKTtiLkE9YTtyZXR1cm4gYn07WWE9ZnVuY3Rpb24oYSxiKXtpZihBcnJheS5pc0FycmF5KGEpKXt2YXIgYz1fLnRhKGEpLGQ9MTshYnx8YyYyfHwoZHw9MTYpOyhjJmQpIT09ZCYmXy51YShhLGN8ZCl9fTtaYT1mdW5jdGlvbihhLGIpe3JldHVybiBHYShiKX07Xy50PWZ1bmN0aW9uKGEsYil7cmV0dXJuIG51bGwhPWE/ISFhOiEhYn07Xy51PWZ1bmN0aW9uKGEsYil7dm9pZCAwPT1iJiYoYj0iIik7cmV0dXJuIG51bGwhPWE/YTpifTtfLiRhPWZ1bmN0aW9uKGEsYil7dm9pZCAwPT1iJiYoYj0wKTtyZXR1cm4gbnVsbCE9YT9hOmJ9O18uYWI9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZCBpbiBhKWIuY2FsbChjLGFbZF0sZCxhKX07Cl8uY2I9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGMsZCxlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7ZD1hcmd1bWVudHNbZV07Zm9yKGMgaW4gZClhW2NdPWRbY107Zm9yKHZhciBmPTA7ZjxiYi5sZW5ndGg7ZisrKWM9YmJbZl0sT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsYykmJihhW2NdPWRbY10pfX07ZGI9ZnVuY3Rpb24oYSl7dmFyIGI9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYjxhLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTphW2IrK119Ontkb25lOiEwfX19O2ViPSJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWMudmFsdWU7cmV0dXJuIGF9OwpmYj1mdW5jdGlvbihhKXthPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGM9YVtiXTtpZihjJiZjLk1hdGg9PU1hdGgpcmV0dXJuIGN9dGhyb3cgRXJyb3IoImEiKTt9O2diPWZiKHRoaXMpO2hiPWZ1bmN0aW9uKGEsYil7aWYoYilhOnt2YXIgYz1nYjthPWEuc3BsaXQoIi4iKTtmb3IodmFyIGQ9MDtkPGEubGVuZ3RoLTE7ZCsrKXt2YXIgZT1hW2RdO2lmKCEoZSBpbiBjKSlicmVhayBhO2M9Y1tlXX1hPWFbYS5sZW5ndGgtMV07ZD1jW2FdO2I9YihkKTtiIT1kJiZudWxsIT1iJiZlYihjLGEse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9fTsKaGIoIlN5bWJvbCIsZnVuY3Rpb24oYSl7aWYoYSlyZXR1cm4gYTt2YXIgYj1mdW5jdGlvbihmLGcpe3RoaXMuaj1mO2ViKHRoaXMsImRlc2NyaXB0aW9uIix7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmd9KX07Yi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5qfTt2YXIgYz0ianNjb21wX3N5bWJvbF8iKygxRTkqTWF0aC5yYW5kb20oKT4+PjApKyJfIixkPTAsZT1mdW5jdGlvbihmKXtpZih0aGlzIGluc3RhbmNlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJiIik7cmV0dXJuIG5ldyBiKGMrKGZ8fCIiKSsiXyIrZCsrLGYpfTtyZXR1cm4gZX0pOwpoYigiU3ltYm9sLml0ZXJhdG9yIixmdW5jdGlvbihhKXtpZihhKXJldHVybiBhO2E9U3ltYm9sKCJjIik7Zm9yKHZhciBiPSJBcnJheSBJbnQ4QXJyYXkgVWludDhBcnJheSBVaW50OENsYW1wZWRBcnJheSBJbnQxNkFycmF5IFVpbnQxNkFycmF5IEludDMyQXJyYXkgVWludDMyQXJyYXkgRmxvYXQzMkFycmF5IEZsb2F0NjRBcnJheSIuc3BsaXQoIiAiKSxjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWdiW2JbY11dOyJmdW5jdGlvbiI9PT10eXBlb2YgZCYmImZ1bmN0aW9uIiE9dHlwZW9mIGQucHJvdG90eXBlW2FdJiZlYihkLnByb3RvdHlwZSxhLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gaWIoZGIodGhpcykpfX0pfXJldHVybiBhfSk7aWI9ZnVuY3Rpb24oYSl7YT17bmV4dDphfTthW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc307cmV0dXJuIGF9OwpfLmpiPWZ1bmN0aW9uKGEpe3ZhciBiPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJmFbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gYj9iLmNhbGwoYSk6e25leHQ6ZGIoYSl9fTtrYj0iZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmNyZWF0ZT9PYmplY3QuY3JlYXRlOmZ1bmN0aW9uKGEpe3ZhciBiPWZ1bmN0aW9uKCl7fTtiLnByb3RvdHlwZT1hO3JldHVybiBuZXcgYn07aWYoImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZilsYj1PYmplY3Quc2V0UHJvdG90eXBlT2Y7ZWxzZXt2YXIgbWI7YTp7dmFyIG5iPXthOiEwfSxvYj17fTt0cnl7b2IuX19wcm90b19fPW5iO21iPW9iLmE7YnJlYWsgYX1jYXRjaChhKXt9bWI9ITF9bGI9bWI/ZnVuY3Rpb24oYSxiKXthLl9fcHJvdG9fXz1iO2lmKGEuX19wcm90b19fIT09Yil0aHJvdyBuZXcgVHlwZUVycm9yKCJkYCIrYSk7cmV0dXJuIGF9Om51bGx9cGI9bGI7Cl8udz1mdW5jdGlvbihhLGIpe2EucHJvdG90eXBlPWtiKGIucHJvdG90eXBlKTthLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1hO2lmKHBiKXBiKGEsYik7ZWxzZSBmb3IodmFyIGMgaW4gYilpZigicHJvdG90eXBlIiE9YylpZihPYmplY3QuZGVmaW5lUHJvcGVydGllcyl7dmFyIGQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLGMpO2QmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLGMsZCl9ZWxzZSBhW2NdPWJbY107YS5ZPWIucHJvdG90eXBlfTtxYj1mdW5jdGlvbihhLGIsYyl7aWYobnVsbD09YSl0aHJvdyBuZXcgVHlwZUVycm9yKCJlYCIrYyk7aWYoYiBpbnN0YW5jZW9mIFJlZ0V4cCl0aHJvdyBuZXcgVHlwZUVycm9yKCJmYCIrYyk7cmV0dXJuIGErIiJ9OwpoYigiU3RyaW5nLnByb3RvdHlwZS5zdGFydHNXaXRoIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9cWIodGhpcyxiLCJzdGFydHNXaXRoIiksZT1kLmxlbmd0aCxmPWIubGVuZ3RoO2M9TWF0aC5tYXgoMCxNYXRoLm1pbihjfDAsZC5sZW5ndGgpKTtmb3IodmFyIGc9MDtnPGYmJmM8ZTspaWYoZFtjKytdIT1iW2crK10pcmV0dXJuITE7cmV0dXJuIGc+PWZ9fSk7aGIoIkFycmF5LnByb3RvdHlwZS5maW5kIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIsYyl7YTp7dmFyIGQ9dGhpcztkIGluc3RhbmNlb2YgU3RyaW5nJiYoZD1TdHJpbmcoZCkpO2Zvcih2YXIgZT1kLmxlbmd0aCxmPTA7ZjxlO2YrKyl7dmFyIGc9ZFtmXTtpZihiLmNhbGwoYyxnLGYsZCkpe2I9ZzticmVhayBhfX1iPXZvaWQgMH1yZXR1cm4gYn19KTt2YXIgcmI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsYil9OwpoYigiV2Vha01hcCIsZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYigpe31mdW5jdGlvbiBjKGwpe3ZhciBtPXR5cGVvZiBsO3JldHVybiJvYmplY3QiPT09bSYmbnVsbCE9PWx8fCJmdW5jdGlvbiI9PT1tfWZ1bmN0aW9uIGQobCl7aWYoIXJiKGwsZikpe3ZhciBtPW5ldyBiO2ViKGwsZix7dmFsdWU6bX0pfX1mdW5jdGlvbiBlKGwpe3ZhciBtPU9iamVjdFtsXTttJiYoT2JqZWN0W2xdPWZ1bmN0aW9uKHIpe2lmKHIgaW5zdGFuY2VvZiBiKXJldHVybiByO09iamVjdC5pc0V4dGVuc2libGUocikmJmQocik7cmV0dXJuIG0ocil9KX1pZihmdW5jdGlvbigpe2lmKCFhfHwhT2JqZWN0LnNlYWwpcmV0dXJuITE7dHJ5e3ZhciBsPU9iamVjdC5zZWFsKHt9KSxtPU9iamVjdC5zZWFsKHt9KSxyPW5ldyBhKFtbbCwyXSxbbSwzXV0pO2lmKDIhPXIuZ2V0KGwpfHwzIT1yLmdldChtKSlyZXR1cm4hMTtyLmRlbGV0ZShsKTtyLnNldChtLDQpO3JldHVybiFyLmhhcyhsKSYmND09ci5nZXQobSl9Y2F0Y2godil7cmV0dXJuITF9fSgpKXJldHVybiBhOwp2YXIgZj0iJGpzY29tcF9oaWRkZW5fIitNYXRoLnJhbmRvbSgpO2UoImZyZWV6ZSIpO2UoInByZXZlbnRFeHRlbnNpb25zIik7ZSgic2VhbCIpO3ZhciBnPTAsaD1mdW5jdGlvbihsKXt0aGlzLmo9KGcrPU1hdGgucmFuZG9tKCkrMSkudG9TdHJpbmcoKTtpZihsKXtsPV8uamIobCk7Zm9yKHZhciBtOyEobT1sLm5leHQoKSkuZG9uZTspbT1tLnZhbHVlLHRoaXMuc2V0KG1bMF0sbVsxXSl9fTtoLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24obCxtKXtpZighYyhsKSl0aHJvdyBFcnJvcigiZyIpO2QobCk7aWYoIXJiKGwsZikpdGhyb3cgRXJyb3IoImhgIitsKTtsW2ZdW3RoaXMual09bTtyZXR1cm4gdGhpc307aC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGwpe3JldHVybiBjKGwpJiZyYihsLGYpP2xbZl1bdGhpcy5qXTp2b2lkIDB9O2gucHJvdG90eXBlLmhhcz1mdW5jdGlvbihsKXtyZXR1cm4gYyhsKSYmcmIobCxmKSYmcmIobFtmXSx0aGlzLmopfTtoLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24obCl7cmV0dXJuIGMobCkmJgpyYihsLGYpJiZyYihsW2ZdLHRoaXMuaik/ZGVsZXRlIGxbZl1bdGhpcy5qXTohMX07cmV0dXJuIGh9KTsKaGIoIk1hcCIsZnVuY3Rpb24oYSl7aWYoZnVuY3Rpb24oKXtpZighYXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGF8fCFhLnByb3RvdHlwZS5lbnRyaWVzfHwiZnVuY3Rpb24iIT10eXBlb2YgT2JqZWN0LnNlYWwpcmV0dXJuITE7dHJ5e3ZhciBoPU9iamVjdC5zZWFsKHt4OjR9KSxsPW5ldyBhKF8uamIoW1toLCJzIl1dKSk7aWYoInMiIT1sLmdldChoKXx8MSE9bC5zaXplfHxsLmdldCh7eDo0fSl8fGwuc2V0KHt4OjR9LCJ0IikhPWx8fDIhPWwuc2l6ZSlyZXR1cm4hMTt2YXIgbT1sLmVudHJpZXMoKSxyPW0ubmV4dCgpO2lmKHIuZG9uZXx8ci52YWx1ZVswXSE9aHx8InMiIT1yLnZhbHVlWzFdKXJldHVybiExO3I9bS5uZXh0KCk7cmV0dXJuIHIuZG9uZXx8NCE9ci52YWx1ZVswXS54fHwidCIhPXIudmFsdWVbMV18fCFtLm5leHQoKS5kb25lPyExOiEwfWNhdGNoKHYpe3JldHVybiExfX0oKSlyZXR1cm4gYTt2YXIgYj1uZXcgV2Vha01hcCxjPWZ1bmN0aW9uKGgpe3RoaXMubz17fTt0aGlzLmo9CmYoKTt0aGlzLnNpemU9MDtpZihoKXtoPV8uamIoaCk7Zm9yKHZhciBsOyEobD1oLm5leHQoKSkuZG9uZTspbD1sLnZhbHVlLHRoaXMuc2V0KGxbMF0sbFsxXSl9fTtjLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oaCxsKXtoPTA9PT1oPzA6aDt2YXIgbT1kKHRoaXMsaCk7bS5saXN0fHwobS5saXN0PXRoaXMub1ttLmlkXT1bXSk7bS5VYT9tLlVhLnZhbHVlPWw6KG0uVWE9e25leHQ6dGhpcy5qLGxjOnRoaXMuai5sYyxoZWFkOnRoaXMuaixrZXk6aCx2YWx1ZTpsfSxtLmxpc3QucHVzaChtLlVhKSx0aGlzLmoubGMubmV4dD1tLlVhLHRoaXMuai5sYz1tLlVhLHRoaXMuc2l6ZSsrKTtyZXR1cm4gdGhpc307Yy5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKGgpe2g9ZCh0aGlzLGgpO3JldHVybiBoLlVhJiZoLmxpc3Q/KGgubGlzdC5zcGxpY2UoaC5pbmRleCwxKSxoLmxpc3QubGVuZ3RofHxkZWxldGUgdGhpcy5vW2guaWRdLGguVWEubGMubmV4dD1oLlVhLm5leHQsaC5VYS5uZXh0LmxjPQpoLlVhLmxjLGguVWEuaGVhZD1udWxsLHRoaXMuc2l6ZS0tLCEwKTohMX07Yy5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLm89e307dGhpcy5qPXRoaXMuai5sYz1mKCk7dGhpcy5zaXplPTB9O2MucHJvdG90eXBlLmhhcz1mdW5jdGlvbihoKXtyZXR1cm4hIWQodGhpcyxoKS5VYX07Yy5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGgpe3JldHVybihoPWQodGhpcyxoKS5VYSkmJmgudmFsdWV9O2MucHJvdG90eXBlLmVudHJpZXM9ZnVuY3Rpb24oKXtyZXR1cm4gZSh0aGlzLGZ1bmN0aW9uKGgpe3JldHVybltoLmtleSxoLnZhbHVlXX0pfTtjLnByb3RvdHlwZS5rZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIGUodGhpcyxmdW5jdGlvbihoKXtyZXR1cm4gaC5rZXl9KX07Yy5wcm90b3R5cGUudmFsdWVzPWZ1bmN0aW9uKCl7cmV0dXJuIGUodGhpcyxmdW5jdGlvbihoKXtyZXR1cm4gaC52YWx1ZX0pfTtjLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKGgsbCl7Zm9yKHZhciBtPXRoaXMuZW50cmllcygpLApyOyEocj1tLm5leHQoKSkuZG9uZTspcj1yLnZhbHVlLGguY2FsbChsLHJbMV0sclswXSx0aGlzKX07Yy5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1jLnByb3RvdHlwZS5lbnRyaWVzO3ZhciBkPWZ1bmN0aW9uKGgsbCl7dmFyIG09bCYmdHlwZW9mIGw7Im9iamVjdCI9PW18fCJmdW5jdGlvbiI9PW0/Yi5oYXMobCk/bT1iLmdldChsKToobT0iIisgKytnLGIuc2V0KGwsbSkpOm09InBfIitsO3ZhciByPWgub1ttXTtpZihyJiZyYihoLm8sbSkpZm9yKGg9MDtoPHIubGVuZ3RoO2grKyl7dmFyIHY9cltoXTtpZihsIT09bCYmdi5rZXkhPT12LmtleXx8bD09PXYua2V5KXJldHVybntpZDptLGxpc3Q6cixpbmRleDpoLFVhOnZ9fXJldHVybntpZDptLGxpc3Q6cixpbmRleDotMSxVYTp2b2lkIDB9fSxlPWZ1bmN0aW9uKGgsbCl7dmFyIG09aC5qO3JldHVybiBpYihmdW5jdGlvbigpe2lmKG0pe2Zvcig7bS5oZWFkIT1oLmo7KW09bS5sYztmb3IoO20ubmV4dCE9bS5oZWFkOylyZXR1cm4gbT0KbS5uZXh0LHtkb25lOiExLHZhbHVlOmwobSl9O209bnVsbH1yZXR1cm57ZG9uZTohMCx2YWx1ZTp2b2lkIDB9fSl9LGY9ZnVuY3Rpb24oKXt2YXIgaD17fTtyZXR1cm4gaC5sYz1oLm5leHQ9aC5oZWFkPWh9LGc9MDtyZXR1cm4gY30pO2hiKCJOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiIsZnVuY3Rpb24oKXtyZXR1cm4gOTAwNzE5OTI1NDc0MDk5MX0pO2hiKCJOdW1iZXIuaXNOYU4iLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYil7cmV0dXJuIm51bWJlciI9PT10eXBlb2YgYiYmaXNOYU4oYil9fSk7CnZhciBzYj1mdW5jdGlvbihhLGIpe2EgaW5zdGFuY2VvZiBTdHJpbmcmJihhKz0iIik7dmFyIGM9MCxkPSExLGU9e25leHQ6ZnVuY3Rpb24oKXtpZighZCYmYzxhLmxlbmd0aCl7dmFyIGY9YysrO3JldHVybnt2YWx1ZTpiKGYsYVtmXSksZG9uZTohMX19ZD0hMDtyZXR1cm57ZG9uZTohMCx2YWx1ZTp2b2lkIDB9fX07ZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIGV9O3JldHVybiBlfTtoYigiQXJyYXkucHJvdG90eXBlLmVudHJpZXMiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oKXtyZXR1cm4gc2IodGhpcyxmdW5jdGlvbihiLGMpe3JldHVybltiLGNdfSl9fSk7CmhiKCJBcnJheS5mcm9tIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIsYyxkKXtjPW51bGwhPWM/YzpmdW5jdGlvbihoKXtyZXR1cm4gaH07dmFyIGU9W10sZj0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZiW1N5bWJvbC5pdGVyYXRvcl07aWYoImZ1bmN0aW9uIj09dHlwZW9mIGYpe2I9Zi5jYWxsKGIpO2Zvcih2YXIgZz0wOyEoZj1iLm5leHQoKSkuZG9uZTspZS5wdXNoKGMuY2FsbChkLGYudmFsdWUsZysrKSl9ZWxzZSBmb3IoZj1iLmxlbmd0aCxnPTA7ZzxmO2crKyllLnB1c2goYy5jYWxsKGQsYltnXSxnKSk7cmV0dXJuIGV9fSk7aGIoIkFycmF5LnByb3RvdHlwZS5rZXlzIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKCl7cmV0dXJuIHNiKHRoaXMsZnVuY3Rpb24oYil7cmV0dXJuIGJ9KX19KTsKaGIoIkFycmF5LnByb3RvdHlwZS52YWx1ZXMiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oKXtyZXR1cm4gc2IodGhpcyxmdW5jdGlvbihiLGMpe3JldHVybiBjfSl9fSk7aGIoIkFycmF5LnByb3RvdHlwZS5maWxsIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIsYyxkKXt2YXIgZT10aGlzLmxlbmd0aHx8MDswPmMmJihjPU1hdGgubWF4KDAsZStjKSk7aWYobnVsbD09ZHx8ZD5lKWQ9ZTtkPU51bWJlcihkKTswPmQmJihkPU1hdGgubWF4KDAsZStkKSk7Zm9yKGM9TnVtYmVyKGN8fDApO2M8ZDtjKyspdGhpc1tjXT1iO3JldHVybiB0aGlzfX0pO3ZhciB0Yj1mdW5jdGlvbihhKXtyZXR1cm4gYT9hOkFycmF5LnByb3RvdHlwZS5maWxsfTtoYigiSW50OEFycmF5LnByb3RvdHlwZS5maWxsIix0Yik7aGIoIlVpbnQ4QXJyYXkucHJvdG90eXBlLmZpbGwiLHRiKTtoYigiVWludDhDbGFtcGVkQXJyYXkucHJvdG90eXBlLmZpbGwiLHRiKTsKaGIoIkludDE2QXJyYXkucHJvdG90eXBlLmZpbGwiLHRiKTtoYigiVWludDE2QXJyYXkucHJvdG90eXBlLmZpbGwiLHRiKTtoYigiSW50MzJBcnJheS5wcm90b3R5cGUuZmlsbCIsdGIpO2hiKCJVaW50MzJBcnJheS5wcm90b3R5cGUuZmlsbCIsdGIpO2hiKCJGbG9hdDMyQXJyYXkucHJvdG90eXBlLmZpbGwiLHRiKTtoYigiRmxvYXQ2NEFycmF5LnByb3RvdHlwZS5maWxsIix0Yik7dmFyIHViPSJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ246ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MTtjPGFyZ3VtZW50cy5sZW5ndGg7YysrKXt2YXIgZD1hcmd1bWVudHNbY107aWYoZClmb3IodmFyIGUgaW4gZClyYihkLGUpJiYoYVtlXT1kW2VdKX1yZXR1cm4gYX07aGIoIk9iamVjdC5hc3NpZ24iLGZ1bmN0aW9uKGEpe3JldHVybiBhfHx1Yn0pOwpoYigiT2JqZWN0LmVudHJpZXMiLGZ1bmN0aW9uKGEpe3JldHVybiBhP2E6ZnVuY3Rpb24oYil7dmFyIGM9W10sZDtmb3IoZCBpbiBiKXJiKGIsZCkmJmMucHVzaChbZCxiW2RdXSk7cmV0dXJuIGN9fSk7aGIoIk9iamVjdC5pcyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe3JldHVybiBiPT09Yz8wIT09Ynx8MS9iPT09MS9jOmIhPT1iJiZjIT09Y319KTtoYigiQXJyYXkucHJvdG90eXBlLmluY2x1ZGVzIixmdW5jdGlvbihhKXtyZXR1cm4gYT9hOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9dGhpcztkIGluc3RhbmNlb2YgU3RyaW5nJiYoZD1TdHJpbmcoZCkpO3ZhciBlPWQubGVuZ3RoO2M9Y3x8MDtmb3IoMD5jJiYoYz1NYXRoLm1heChjK2UsMCkpO2M8ZTtjKyspe3ZhciBmPWRbY107aWYoZj09PWJ8fE9iamVjdC5pcyhmLGIpKXJldHVybiEwfXJldHVybiExfX0pOwpoYigiU3RyaW5nLnByb3RvdHlwZS5pbmNsdWRlcyIsZnVuY3Rpb24oYSl7cmV0dXJuIGE/YTpmdW5jdGlvbihiLGMpe3JldHVybi0xIT09cWIodGhpcyxiLCJpbmNsdWRlcyIpLmluZGV4T2YoYixjfHwwKX19KTsKdmFyIHhiLHliLEFiLEJiLENiO18udmI9Xy52Ynx8e307Xy5uPXRoaXN8fHNlbGY7Xy53Yj1mdW5jdGlvbihhKXt2YXIgYj10eXBlb2YgYTtyZXR1cm4ib2JqZWN0Ij09YiYmbnVsbCE9YXx8ImZ1bmN0aW9uIj09Yn07Xy56Yj1mdW5jdGlvbihhKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEseGIpJiZhW3hiXXx8KGFbeGJdPSsreWIpfTt4Yj0iY2xvc3VyZV91aWRfIisoMUU5Kk1hdGgucmFuZG9tKCk+Pj4wKTt5Yj0wO0FiPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYS5jYWxsLmFwcGx5KGEuYmluZCxhcmd1bWVudHMpfTsKQmI9ZnVuY3Rpb24oYSxiLGMpe2lmKCFhKXRocm93IEVycm9yKCk7aWYoMjxhcmd1bWVudHMubGVuZ3RoKXt2YXIgZD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMik7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtBcnJheS5wcm90b3R5cGUudW5zaGlmdC5hcHBseShlLGQpO3JldHVybiBhLmFwcGx5KGIsZSl9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiBhLmFwcGx5KGIsYXJndW1lbnRzKX19O18uej1mdW5jdGlvbihhLGIsYyl7RnVuY3Rpb24ucHJvdG90eXBlLmJpbmQmJi0xIT1GdW5jdGlvbi5wcm90b3R5cGUuYmluZC50b1N0cmluZygpLmluZGV4T2YoIm5hdGl2ZSBjb2RlIik/Xy56PUFiOl8uej1CYjtyZXR1cm4gXy56LmFwcGx5KG51bGwsYXJndW1lbnRzKX07Cl8uQT1mdW5jdGlvbihhLGIpe2E9YS5zcGxpdCgiLiIpO3ZhciBjPV8ubjthWzBdaW4gY3x8InVuZGVmaW5lZCI9PXR5cGVvZiBjLmV4ZWNTY3JpcHR8fGMuZXhlY1NjcmlwdCgidmFyICIrYVswXSk7Zm9yKHZhciBkO2EubGVuZ3RoJiYoZD1hLnNoaWZ0KCkpOylhLmxlbmd0aHx8dm9pZCAwPT09Yj9jW2RdJiZjW2RdIT09T2JqZWN0LnByb3RvdHlwZVtkXT9jPWNbZF06Yz1jW2RdPXt9OmNbZF09Yn07Xy5CPWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYygpe31jLnByb3RvdHlwZT1iLnByb3RvdHlwZTthLlk9Yi5wcm90b3R5cGU7YS5wcm90b3R5cGU9bmV3IGM7YS5wcm90b3R5cGUuY29uc3RydWN0b3I9YTthLlFrPWZ1bmN0aW9uKGQsZSxmKXtmb3IodmFyIGc9QXJyYXkoYXJndW1lbnRzLmxlbmd0aC0yKSxoPTI7aDxhcmd1bWVudHMubGVuZ3RoO2grKylnW2gtMl09YXJndW1lbnRzW2hdO3JldHVybiBiLnByb3RvdHlwZVtlXS5hcHBseShkLGcpfX07Q2I9ZnVuY3Rpb24oYSl7cmV0dXJuIGF9OwpfLkRiPWZ1bmN0aW9uKGEpe3ZhciBiPW51bGwsYz1fLm4udHJ1c3RlZFR5cGVzO2lmKCFjfHwhYy5jcmVhdGVQb2xpY3kpcmV0dXJuIGI7dHJ5e2I9Yy5jcmVhdGVQb2xpY3koYSx7Y3JlYXRlSFRNTDpDYixjcmVhdGVTY3JpcHQ6Q2IsY3JlYXRlU2NyaXB0VVJMOkNifSl9Y2F0Y2goZCl7Xy5uLmNvbnNvbGUmJl8ubi5jb25zb2xlLmVycm9yKGQubWVzc2FnZSl9cmV0dXJuIGJ9OwpfLkIoXy5hYSxFcnJvcik7Xy5hYS5wcm90b3R5cGUubmFtZT0iQ3VzdG9tRXJyb3IiOwpfLkViPVN0cmluZy5wcm90b3R5cGUudHJpbT9mdW5jdGlvbihhKXtyZXR1cm4gYS50cmltKCl9OmZ1bmN0aW9uKGEpe3JldHVybi9eW1xzXHhhMF0qKFtcc1xTXSo/KVtcc1x4YTBdKiQvLmV4ZWMoYSlbMV19OwpfLkZiPUFycmF5LnByb3RvdHlwZS5pbmRleE9mP2Z1bmN0aW9uKGEsYil7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoYSxiLHZvaWQgMCl9OmZ1bmN0aW9uKGEsYil7aWYoInN0cmluZyI9PT10eXBlb2YgYSlyZXR1cm4ic3RyaW5nIiE9PXR5cGVvZiBifHwxIT1iLmxlbmd0aD8tMTphLmluZGV4T2YoYiwwKTtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKylpZihjIGluIGEmJmFbY109PT1iKXJldHVybiBjO3JldHVybi0xfTtfLkdiPUFycmF5LnByb3RvdHlwZS5mb3JFYWNoP2Z1bmN0aW9uKGEsYixjKXtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGEsYixjKX06ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD1hLmxlbmd0aCxlPSJzdHJpbmciPT09dHlwZW9mIGE/YS5zcGxpdCgiIik6YSxmPTA7ZjxkO2YrKylmIGluIGUmJmIuY2FsbChjLGVbZl0sZixhKX07Cl8uSGI9QXJyYXkucHJvdG90eXBlLmZpbHRlcj9mdW5jdGlvbihhLGIsYyl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChhLGIsYyl9OmZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9YS5sZW5ndGgsZT1bXSxmPTAsZz0ic3RyaW5nIj09PXR5cGVvZiBhP2Euc3BsaXQoIiIpOmEsaD0wO2g8ZDtoKyspaWYoaCBpbiBnKXt2YXIgbD1nW2hdO2IuY2FsbChjLGwsaCxhKSYmKGVbZisrXT1sKX1yZXR1cm4gZX07Xy5QYT1BcnJheS5wcm90b3R5cGUubWFwP2Z1bmN0aW9uKGEsYixjKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKGEsYixjKX06ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD1hLmxlbmd0aCxlPUFycmF5KGQpLGY9InN0cmluZyI9PT10eXBlb2YgYT9hLnNwbGl0KCIiKTphLGc9MDtnPGQ7ZysrKWcgaW4gZiYmKGVbZ109Yi5jYWxsKGMsZltnXSxnLGEpKTtyZXR1cm4gZX07Cl8uSWI9QXJyYXkucHJvdG90eXBlLnJlZHVjZT9mdW5jdGlvbihhLGIsYyl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbChhLGIsYyl9OmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1jOygwLF8uR2IpKGEsZnVuY3Rpb24oZSxmKXtkPWIuY2FsbCh2b2lkIDAsZCxlLGYsYSl9KTtyZXR1cm4gZH07Xy5KYj1BcnJheS5wcm90b3R5cGUuc29tZT9mdW5jdGlvbihhLGIpe3JldHVybiBBcnJheS5wcm90b3R5cGUuc29tZS5jYWxsKGEsYix2b2lkIDApfTpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1hLmxlbmd0aCxkPSJzdHJpbmciPT09dHlwZW9mIGE/YS5zcGxpdCgiIik6YSxlPTA7ZTxjO2UrKylpZihlIGluIGQmJmIuY2FsbCh2b2lkIDAsZFtlXSxlLGEpKXJldHVybiEwO3JldHVybiExfTsKXy5LYj1mdW5jdGlvbihhKXtfLktiWyIgIl0oYSk7cmV0dXJuIGF9O18uS2JbIiAiXT1mdW5jdGlvbigpe307CnZhciBZYixaYixkYztfLkxiPV8uY2EoKTtfLkM9Xy5kYSgpO18uTWI9Xy5wKCJFZGdlIik7Xy5OYj1fLk1ifHxfLkM7Xy5PYj1fLnAoIkdlY2tvIikmJiFfLm5hKCkmJiEoXy5wKCJUcmlkZW50Iil8fF8ucCgiTVNJRSIpKSYmIV8ucCgiRWRnZSIpO18uUGI9Xy5uYSgpO18uUWI9Xy5wKCJNYWNpbnRvc2giKTtfLlJiPV8ucCgiV2luZG93cyIpO18uU2I9Xy5wKCJMaW51eCIpfHxfLnAoIkNyT1MiKTtfLlRiPV8ucCgiQW5kcm9pZCIpO18uVWI9a2EoKTtfLlZiPV8ucCgiaVBhZCIpO18uV2I9Xy5wKCJpUG9kIik7Xy5YYj1fLmxhKCk7WWI9ZnVuY3Rpb24oKXt2YXIgYT1fLm4uZG9jdW1lbnQ7cmV0dXJuIGE/YS5kb2N1bWVudE1vZGU6dm9pZCAwfTsKYTp7dmFyICRiPSIiLGFjPWZ1bmN0aW9uKCl7dmFyIGE9Xy5iYSgpO2lmKF8uT2IpcmV0dXJuL3J2OihbXlwpO10rKShcKXw7KS8uZXhlYyhhKTtpZihfLk1iKXJldHVybi9FZGdlXC8oW1xkXC5dKykvLmV4ZWMoYSk7aWYoXy5DKXJldHVybi9cYig/Ok1TSUV8cnYpWzogXShbXlwpO10rKShcKXw7KS8uZXhlYyhhKTtpZihfLlBiKXJldHVybi9XZWJLaXRcLyhcUyspLy5leGVjKGEpO2lmKF8uTGIpcmV0dXJuLyg/OlZlcnNpb24pWyBcL10/KFxTKykvLmV4ZWMoYSl9KCk7YWMmJigkYj1hYz9hY1sxXToiIik7aWYoXy5DKXt2YXIgYmM9WWIoKTtpZihudWxsIT1iYyYmYmM+cGFyc2VGbG9hdCgkYikpe1piPVN0cmluZyhiYyk7YnJlYWsgYX19WmI9JGJ9Xy5jYz1aYjtpZihfLm4uZG9jdW1lbnQmJl8uQyl7dmFyIGVjPVliKCk7ZGM9ZWM/ZWM6cGFyc2VJbnQoXy5jYywxMCl8fHZvaWQgMH1lbHNlIGRjPXZvaWQgMDtfLmZjPWRjOwpfLmdjPV8uZWEoKTtfLmhjPWthKCl8fF8ucCgiaVBvZCIpO18uaWM9Xy5wKCJpUGFkIik7Xy5qYz1fLmlhKCk7Xy5rYz1fLmZhKCk7Xy5sYz1fLmhhKCkmJiFfLmxhKCk7CnZhciBtYzttYz17fTtfLm5jPW51bGw7Xy5FYT1mdW5jdGlvbihhLGIpe3ZvaWQgMD09PWImJihiPTApO18ub2MoKTtiPW1jW2JdO2Zvcih2YXIgYz1BcnJheShNYXRoLmZsb29yKGEubGVuZ3RoLzMpKSxkPWJbNjRdfHwiIixlPTAsZj0wO2U8YS5sZW5ndGgtMjtlKz0zKXt2YXIgZz1hW2VdLGg9YVtlKzFdLGw9YVtlKzJdLG09YltnPj4yXTtnPWJbKGcmMyk8PDR8aD4+NF07aD1iWyhoJjE1KTw8MnxsPj42XTtsPWJbbCY2M107Y1tmKytdPW0rZytoK2x9bT0wO2w9ZDtzd2l0Y2goYS5sZW5ndGgtZSl7Y2FzZSAyOm09YVtlKzFdLGw9YlsobSYxNSk8PDJdfHxkO2Nhc2UgMTphPWFbZV0sY1tmXT1iW2E+PjJdK2JbKGEmMyk8PDR8bT4+NF0rbCtkfXJldHVybiBjLmpvaW4oIiIpfTsKXy5vYz1mdW5jdGlvbigpe2lmKCFfLm5jKXtfLm5jPXt9O2Zvcih2YXIgYT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkiLnNwbGl0KCIiKSxiPVsiKy89IiwiKy8iLCItXz0iLCItXy4iLCItXyJdLGM9MDs1PmM7YysrKXt2YXIgZD1hLmNvbmNhdChiW2NdLnNwbGl0KCIiKSk7bWNbY109ZDtmb3IodmFyIGU9MDtlPGQubGVuZ3RoO2UrKyl7dmFyIGY9ZFtlXTt2b2lkIDA9PT1fLm5jW2ZdJiYoXy5uY1tmXT1lKX19fX07CnZhciBvYTtvYT0idW5kZWZpbmVkIiE9PXR5cGVvZiBVaW50OEFycmF5O18uU2E9e307Cl8ucGM9ImZ1bmN0aW9uIj09PXR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5zbGljZTsKXy5xYz0idW5kZWZpbmVkIiE9PXR5cGVvZiBUZXh0RGVjb2RlcjtfLnJjPSJ1bmRlZmluZWQiIT09dHlwZW9mIFRleHRFbmNvZGVyOwp2YXIgc2M7Xy5GYT1mdW5jdGlvbihhLGIpe2lmKGIhPT1fLlNhKXRocm93IEVycm9yKCJ1Iik7dGhpcy5CYT1hO2lmKG51bGwhPWEmJjA9PT1hLmxlbmd0aCl0aHJvdyBFcnJvcigidiIpO307Xy5UYT1mdW5jdGlvbigpe3JldHVybiBzY3x8KHNjPW5ldyBfLkZhKG51bGwsXy5TYSkpfTtfLkZhLnByb3RvdHlwZS5oYz1mdW5jdGlvbigpe3JldHVybiBudWxsPT10aGlzLkJhfTsKdmFyIHFhPSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2woKT9TeW1ib2woKTp2b2lkIDA7CnZhciB0Yyx2YztfLkphPXt9O3ZjPVtdO18udWEodmMsMjMpO18udWM9T2JqZWN0LmZyZWV6ZSh2Yyk7Xy53Yz1mdW5jdGlvbihhKXtpZihfLndhKGEueWEpKXRocm93IEVycm9yKCJ4Iik7fTsKdmFyIE1hO01hPWZ1bmN0aW9uKGEpe3JldHVybiBhLmp8fChhLmo9YS55YVthLm8rYS5GY109e30pfTtfLkQ9ZnVuY3Rpb24oYSxiLGMpe3JldHVybi0xPT09Yj9udWxsOmI+PWEubz9hLmo/YS5qW2JdOnZvaWQgMDpjJiZhLmomJihjPWEualtiXSxudWxsIT1jKT9jOmEueWFbYithLkZjXX07Xy5xPWZ1bmN0aW9uKGEsYixjLGQpe18ud2MoYSk7cmV0dXJuIF8uTmEoYSxiLGMsZCl9O18ueGM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbnVsbCE9Xy5EKGEsYiwhMSl9O18uRT1mdW5jdGlvbihhLGIpe2E9Xy5EKGEsYik7cmV0dXJuIG51bGw9PWE/YTohIWF9OwpfLnljPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPV8uRChhLGMsZCk7dmFyIGY9ITE7dmFyIGc9bnVsbD09ZXx8Im9iamVjdCIhPT10eXBlb2YgZXx8KGY9QXJyYXkuaXNBcnJheShlKSl8fGUuZGUhPT1fLkphP2Y/bmV3IGIoZSk6dm9pZCAwOmU7ZyE9PWUmJm51bGwhPWcmJihfLk5hKGEsYyxnLGQpLF8ucmEoZy55YSxfLnRhKGEueWEpJi0zMykpO3JldHVybiBnfTtfLkY9ZnVuY3Rpb24oYSxiLGMsZCl7ZD12b2lkIDA9PT1kPyExOmQ7Yj1fLnljKGEsYixjLGQpO2lmKG51bGw9PWIpcmV0dXJuIGI7aWYoIV8ud2EoYS55YSkpe3ZhciBlPV8uWGEoYik7ZSE9PWImJihiPWUsXy5OYShhLGMsYixkKSl9cmV0dXJuIGJ9O18uemM9ZnVuY3Rpb24oYSxiLGMpe18ud2MoYSk7bnVsbD09YyYmKGM9dm9pZCAwKTtyZXR1cm4gXy5OYShhLGIsYyl9OwpfLldhPWZ1bmN0aW9uKGEsYixjLGQpe18ud2MoYSk7aWYobnVsbCE9Yyl7dmFyIGU9Xy52YShbXSk7Zm9yKHZhciBmPSExLGc9MDtnPGMubGVuZ3RoO2crKyllW2ddPWNbZ10ueWEsZj1mfHxfLndhKGVbZ10pO2EuVmF8fChhLlZhPXt9KTthLlZhW2JdPWM7Yz1lO2Y/Xy5zYShjLDgpOl8ucmEoYyw4KX1lbHNlIGEuVmEmJihhLlZhW2JdPXZvaWQgMCksZT1fLnVjO3JldHVybiBfLk5hKGEsYixlLGQpfTtfLkFjPWZ1bmN0aW9uKGEsYixjKXthPV8uRChhLGIpO3JldHVybiBfLk9hKG51bGw9PWE/YTorYSx2b2lkIDA9PT1jPzA6Yyl9O18uQmM9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBfLk9hKF8uRChhLGIpLHZvaWQgMD09PWM/MDpjKX07Cl8uSD1mdW5jdGlvbihhLGIsYyl7bnVsbD09YSYmKGE9Xy5DYSk7Xy5DYT12b2lkIDA7dmFyIGQ9dGhpcy5jb25zdHJ1Y3Rvci5vfHwwLGU9MDxkLGY9dGhpcy5jb25zdHJ1Y3Rvci5qLGc9ITE7aWYobnVsbD09YSl7YT1mP1tmXTpbXTt2YXIgaD0hMDtfLnVhKGEsNDgpfWVsc2V7aWYoIUFycmF5LmlzQXJyYXkoYSkpdGhyb3cgRXJyb3IoKTtpZihmJiZmIT09YVswXSl0aHJvdyBFcnJvcigpO3ZhciBsPV8ucmEoYSwwKSxtPWw7aWYoaD0wIT09KDE2Jm0pKShnPTAhPT0oMzImbSkpfHwobXw9MzIpO2lmKGUpaWYoMTI4Jm0pZD0wO2Vsc2V7aWYoMDxhLmxlbmd0aCl7dmFyIHI9YVthLmxlbmd0aC0xXTtpZihBYShyKSYmImciaW4gcil7ZD0wO218PTEyODtkZWxldGUgci5nO3ZhciB2PSEwLHk7Zm9yKHkgaW4gcil7dj0hMTticmVha312JiZhLnBvcCgpfX19ZWxzZSBpZigxMjgmbSl0aHJvdyBFcnJvcigpO2whPT1tJiZfLnVhKGEsbSl9dGhpcy5GYz0oZj8wOi0xKS1kO3RoaXMuVmE9dm9pZCAwOwp0aGlzLnlhPWE7YTp7Zj10aGlzLnlhLmxlbmd0aDtkPWYtMTtpZihmJiYoZj10aGlzLnlhW2RdLEFhKGYpKSl7dGhpcy5qPWY7dGhpcy5vPWQtdGhpcy5GYzticmVhayBhfXZvaWQgMCE9PWImJi0xPGI/KHRoaXMubz1NYXRoLm1heChiLGQrMS10aGlzLkZjKSx0aGlzLmo9dm9pZCAwKTp0aGlzLm89TnVtYmVyLk1BWF9WQUxVRX1pZighZSYmdGhpcy5qJiYiZyJpbiB0aGlzLmopdGhyb3cgRXJyb3IoIkIiKTtpZihjKXtiPWgmJiFnJiYhMDtlPXRoaXMubzt2YXIgeDtmb3IoaD0wO2g8Yy5sZW5ndGg7aCsrKWc9Y1toXSxnPGU/KGcrPXRoaXMuRmMsKGQ9YVtnXSk/WWEoZCxiKTphW2ddPV8udWMpOih4fHwoeD1NYSh0aGlzKSksKGQ9eFtnXSk/WWEoZCxiKTp4W2ddPV8udWMpfX07Xy5rPV8uSC5wcm90b3R5cGU7Xy5rLnRvSlNPTj1mdW5jdGlvbigpe3ZhciBhPXRoaXMueWE7cmV0dXJuIHRjP2E6Xy5IYShhLEthLExhKX07Cl8uay5FYT1mdW5jdGlvbigpe3RjPSEwO3RyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy50b0pTT04oKSxaYSl9ZmluYWxseXt0Yz0hMX19O18uay5qYz1mdW5jdGlvbigpe3JldHVybiBfLndhKHRoaXMueWEpfTtfLmsuZGU9Xy5KYTtfLmsudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy55YS50b1N0cmluZygpfTsKXy5DYz1TeW1ib2woKTtfLkRjPVN5bWJvbCgpO18uRWM9U3ltYm9sKCk7Xy5GYz1TeW1ib2woKTsKdmFyIEdjPWZ1bmN0aW9uKGEpe18uSC5jYWxsKHRoaXMsYSl9O18udyhHYyxfLkgpOwpfLkhjPWZ1bmN0aW9uKGEpe18uSC5jYWxsKHRoaXMsYSl9O18udyhfLkhjLF8uSCk7Xy5IYy5wcm90b3R5cGUuaGQ9ZnVuY3Rpb24oYSl7cmV0dXJuIF8ucSh0aGlzLDMsYSl9OwpfLkljPWZ1bmN0aW9uKGEpe18uSC5jYWxsKHRoaXMsYSl9O18udyhfLkljLF8uSCk7CnZhciBKYz1mdW5jdGlvbihhKXtfLkguY2FsbCh0aGlzLGEpfTtfLncoSmMsXy5IKTsKXy5LYz1mdW5jdGlvbihhKXtfLkguY2FsbCh0aGlzLGEpfTtfLncoXy5LYyxfLkgpO18uS2MucHJvdG90eXBlLmpkPWZ1bmN0aW9uKGEpe3JldHVybiBfLnEodGhpcywyNCxhKX07Cl8uTGM9ZnVuY3Rpb24oYSl7Xy5ILmNhbGwodGhpcyxhKX07Xy53KF8uTGMsXy5IKTsKXy5JPWZ1bmN0aW9uKCl7dGhpcy5HYj10aGlzLkdiO3RoaXMuTWE9dGhpcy5NYX07Xy5JLnByb3RvdHlwZS5HYj0hMTtfLkkucHJvdG90eXBlLmlzRGlzcG9zZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5HYn07Xy5JLnByb3RvdHlwZS50YT1mdW5jdGlvbigpe3RoaXMuR2J8fCh0aGlzLkdiPSEwLHRoaXMuUigpKX07Xy5JLnByb3RvdHlwZS5SPWZ1bmN0aW9uKCl7aWYodGhpcy5NYSlmb3IoO3RoaXMuTWEubGVuZ3RoOyl0aGlzLk1hLnNoaWZ0KCkoKX07CnZhciBNYz1mdW5jdGlvbihhKXtfLkkuY2FsbCh0aGlzKTt0aGlzLkE9YTt0aGlzLmo9W107dGhpcy5vPXt9fTtfLncoTWMsXy5JKTtNYy5wcm90b3R5cGUucmVzb2x2ZT1mdW5jdGlvbihhKXt2YXIgYj10aGlzLkE7YT1hLnNwbGl0KCIuIik7Zm9yKHZhciBjPWEubGVuZ3RoLGQ9MDtkPGM7KytkKWlmKGJbYVtkXV0pYj1iW2FbZF1dO2Vsc2UgcmV0dXJuIG51bGw7cmV0dXJuIGIgaW5zdGFuY2VvZiBGdW5jdGlvbj9iOm51bGx9O01jLnByb3RvdHlwZS53ZD1mdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLmoubGVuZ3RoLGI9dGhpcy5qLGM9W10sZD0wO2Q8YTsrK2Qpe3ZhciBlPWJbZF0uaigpLGY9dGhpcy5yZXNvbHZlKGUpO2lmKGYmJmYhPXRoaXMub1tlXSl0cnl7YltkXS53ZChmKX1jYXRjaChnKXt9ZWxzZSBjLnB1c2goYltkXSl9dGhpcy5qPWMuY29uY2F0KGIuc2xpY2UoYSkpfTsKdmFyIE5jPWZ1bmN0aW9uKGEpe18uSS5jYWxsKHRoaXMpO3RoaXMuQT1hO3RoaXMuQz10aGlzLmo9bnVsbDt0aGlzLkI9MDt0aGlzLkQ9e307dGhpcy5vPSExO2E9d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQ7MDw9YS5pbmRleE9mKCJNU0lFIikmJjA8PWEuaW5kZXhPZigiVHJpZGVudCIpJiYoYT0vXGIoPzpNU0lFfHJ2KVs6IF0oW15cKTtdKykoXCl8OykvLmV4ZWMoYSkpJiZhWzFdJiY5PnBhcnNlRmxvYXQoYVsxXSkmJih0aGlzLm89ITApfTtfLncoTmMsXy5JKTtOYy5wcm90b3R5cGUuRj1mdW5jdGlvbihhLGIpe3RoaXMuaj1iO3RoaXMuQz1hO2IucHJldmVudERlZmF1bHQ/Yi5wcmV2ZW50RGVmYXVsdCgpOmIucmV0dXJuVmFsdWU9ITF9OwpfLk9jPWZ1bmN0aW9uKGEpe18uSC5jYWxsKHRoaXMsYSl9O18udyhfLk9jLF8uSCk7Cl8uUGM9ZnVuY3Rpb24oYSl7Xy5ILmNhbGwodGhpcyxhKX07Xy53KF8uUGMsXy5IKTsKXy5RYz1mdW5jdGlvbigpe3RoaXMuZGF0YT17fX07Xy5RYy5wcm90b3R5cGUuaj1mdW5jdGlvbigpe3dpbmRvdy5jb25zb2xlJiZ3aW5kb3cuY29uc29sZS5sb2cmJndpbmRvdy5jb25zb2xlLmxvZygiTG9nIGRhdGE6ICIsdGhpcy5kYXRhKX07Xy5RYy5wcm90b3R5cGUuRWE9ZnVuY3Rpb24oYSl7dmFyIGI9W10sYztmb3IoYyBpbiB0aGlzLmRhdGEpYi5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChjKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyh0aGlzLmRhdGFbY10pKSk7cmV0dXJuKCJhdHlwPWkmeng9IisobmV3IERhdGUpLmdldFRpbWUoKSsiJiIrYi5qb2luKCImIikpLnN1YnN0cigwLGEpfTsKdmFyIFJjPWZ1bmN0aW9uKGEsYil7dGhpcy5kYXRhPXt9O3ZhciBjPV8uRihhLEpjLDgpfHxuZXcgSmM7d2luZG93Lmdvb2dsZSYmd2luZG93Lmdvb2dsZS5rRUkmJih0aGlzLmRhdGEuZWk9d2luZG93Lmdvb2dsZS5rRUkpO3RoaXMuZGF0YS5zZWk9Xy51KF8uRChhLDEwKSk7dGhpcy5kYXRhLm9nZj1fLnUoXy5EKGMsMykpO3RoaXMuZGF0YS5vZ3JwPSh3aW5kb3cuZ29vZ2xlJiZ3aW5kb3cuZ29vZ2xlLnNuPyEvLipocCQvLnRlc3Qod2luZG93Lmdvb2dsZS5zbik6Xy50KF8uRShhLDcpKSk/IjEiOiIiO3RoaXMuZGF0YS5vZ3Y9Xy51KF8uRChjLDYpKSsiLiIrXy51KF8uRChjLDcpKTt0aGlzLmRhdGEub2dkPV8udShfLkQoYSwyMSkpO3RoaXMuZGF0YS5vZ2M9Xy51KF8uRChhLDIwKSk7dGhpcy5kYXRhLm9nbD1fLnUoXy5EKGEsNSkpO2ImJih0aGlzLmRhdGEub2dndj1iKX07Xy53KFJjLF8uUWMpOwp2YXIgYmI9ImNvbnN0cnVjdG9yIGhhc093blByb3BlcnR5IGlzUHJvdG90eXBlT2YgcHJvcGVydHlJc0VudW1lcmFibGUgdG9Mb2NhbGVTdHJpbmcgdG9TdHJpbmcgdmFsdWVPZiIuc3BsaXQoIiAiKTsKXy5TYz1mdW5jdGlvbihhLGIsYyxkLGUpe1JjLmNhbGwodGhpcyxhLGIpO18uY2IodGhpcy5kYXRhLHtqZXhwaWQ6Xy51KF8uRChhLDkpKSxzcmNwZzoicHJvcD0iK18udShfLkQoYSw2KSksanNyOk1hdGgucm91bmQoMS9kKSxlbXNnOmMubmFtZSsiOiIrYy5tZXNzYWdlfSk7aWYoZSl7ZS5fc24mJihlLl9zbj0ib2cuIitlLl9zbik7Zm9yKHZhciBmIGluIGUpdGhpcy5kYXRhW2VuY29kZVVSSUNvbXBvbmVudChmKV09ZVtmXX19O18udyhfLlNjLFJjKTsKdmFyIFRjO18uVWM9ZnVuY3Rpb24oKXt2b2lkIDA9PT1UYyYmKFRjPV8uRGIoIm9nYi1xdG0jaHRtbCIpKTtyZXR1cm4gVGN9OwpfLlhjPWZ1bmN0aW9uKGEsYil7dGhpcy5qPWE9PT1fLlZjJiZifHwiIjt0aGlzLm89Xy5XY307Xy5YYy5wcm90b3R5cGUuUWI9ITA7Xy5YYy5wcm90b3R5cGUud2I9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5qfTtfLldjPXt9O18uVmM9e307CnZhciBZYztfLlpjPWZ1bmN0aW9uKGEsYil7dGhpcy5qPWI9PT1ZYz9hOiIifTtfLlpjLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmorIiJ9O18uWmMucHJvdG90eXBlLlFiPSEwO18uWmMucHJvdG90eXBlLndiPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuai50b1N0cmluZygpfTtfLmFkPWZ1bmN0aW9uKGEpe3JldHVybiBfLiRjKGEpLnRvU3RyaW5nKCl9O18uJGM9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBfLlpjJiZhLmNvbnN0cnVjdG9yPT09Xy5aYz9hLmo6InR5cGVfZXJyb3I6VHJ1c3RlZFJlc291cmNlVXJsIn07WWM9e307Xy5iZD1mdW5jdGlvbihhKXt2YXIgYj1fLlVjKCk7YT1iP2IuY3JlYXRlU2NyaXB0VVJMKGEpOmE7cmV0dXJuIG5ldyBfLlpjKGEsWWMpfTsKdmFyIGZkLGdkLGNkO18uZGQ9ZnVuY3Rpb24oYSxiKXt0aGlzLmo9Yj09PWNkP2E6IiJ9O18uZGQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuai50b1N0cmluZygpfTtfLmRkLnByb3RvdHlwZS5RYj0hMDtfLmRkLnByb3RvdHlwZS53Yj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmoudG9TdHJpbmcoKX07Xy5lZD1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIF8uZGQmJmEuY29uc3RydWN0b3I9PT1fLmRkP2EuajoidHlwZV9lcnJvcjpTYWZlVXJsIn07ZmQ9L15kYXRhOiguKik7YmFzZTY0LFthLXowLTkrXC9dKz0qJC9pO2dkPS9eKD86KD86aHR0cHM/fG1haWx0b3xmdHApOnxbXjovPyNdKig/OlsvPyNdfCQpKS9pOwpfLmlkPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBfLmRkKXJldHVybiBhO2E9Im9iamVjdCI9PXR5cGVvZiBhJiZhLlFiP2Eud2IoKTpTdHJpbmcoYSk7Z2QudGVzdChhKT9hPV8uaGQoYSk6KGE9U3RyaW5nKGEpLnJlcGxhY2UoLyglMEF8JTBEKS9nLCIiKSxhPWEubWF0Y2goZmQpP18uaGQoYSk6bnVsbCk7cmV0dXJuIGF9O18ua2Q9ZnVuY3Rpb24oYSl7aWYoYSBpbnN0YW5jZW9mIF8uZGQpcmV0dXJuIGE7YT0ib2JqZWN0Ij09dHlwZW9mIGEmJmEuUWI/YS53YigpOlN0cmluZyhhKTtnZC50ZXN0KGEpfHwoYT0iYWJvdXQ6aW52YWxpZCN6Q2xvc3VyZXoiKTtyZXR1cm4gXy5oZChhKX07Y2Q9e307Xy5oZD1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IF8uZGQoYSxjZCl9O18ubGQ9Xy5oZCgiYWJvdXQ6aW52YWxpZCN6Q2xvc3VyZXoiKTsKXy5tZD17fTtfLm5kPWZ1bmN0aW9uKGEsYil7dGhpcy5qPWI9PT1fLm1kP2E6IiI7dGhpcy5RYj0hMH07Xy5uZC5wcm90b3R5cGUud2I9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5qfTtfLm5kLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmoudG9TdHJpbmcoKX07Xy5vZD1uZXcgXy5uZCgiIixfLm1kKTtfLnBkPVJlZ0V4cCgiXlstLC5cIiclXyEjLyBhLXpBLVowLTlcXFtcXF1dKyQiKTtfLnFkPVJlZ0V4cCgiXFxiKHVybFxcKFsgXHRcbl0qKSgnWyAtJigtXFxbXFxdLX5dKid8XCJbICEjLVxcW1xcXS1+XSpcInxbISMtJiotXFxbXFxdLX5dKikoWyBcdFxuXSpcXCkpIiwiZyIpOwpfLnJkPVJlZ0V4cCgiXFxiKGNhbGN8Y3ViaWMtYmV6aWVyfGZpdC1jb250ZW50fGhzbHxoc2xhfGxpbmVhci1ncmFkaWVudHxtYXRyaXh8bWlubWF4fHJhZGlhbC1ncmFkaWVudHxyZXBlYXR8cmdifHJnYmF8KHJvdGF0ZXxzY2FsZXx0cmFuc2xhdGUpKFh8WXxafDNkKT98c3RlcHN8dmFyKVxcKFstKyovMC05YS16QS1aLiUjXFxbXFxdLCBdK1xcKSIsImciKTsKdmFyIHNkO3NkPXt9O18udGQ9ZnVuY3Rpb24oYSxiKXt0aGlzLmo9Yj09PXNkP2E6IiI7dGhpcy5RYj0hMH07Xy50ZC5wcm90b3R5cGUud2I9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5qLnRvU3RyaW5nKCl9O18udGQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuai50b1N0cmluZygpfTtfLnVkPWZ1bmN0aW9uKGEpe3JldHVybiBhIGluc3RhbmNlb2YgXy50ZCYmYS5jb25zdHJ1Y3Rvcj09PV8udGQ/YS5qOiJ0eXBlX2Vycm9yOlNhZmVIdG1sIn07Xy52ZD1mdW5jdGlvbihhKXt2YXIgYj1fLlVjKCk7YT1iP2IuY3JlYXRlSFRNTChhKTphO3JldHVybiBuZXcgXy50ZChhLHNkKX07Xy53ZD1uZXcgXy50ZChfLm4udHJ1c3RlZFR5cGVzJiZfLm4udHJ1c3RlZFR5cGVzLmVtcHR5SFRNTHx8IiIsc2QpO18ueGQ9Xy52ZCgiPGJyPiIpOwp2YXIgemQ7Xy55ZD1mdW5jdGlvbihhKXt2YXIgYj0hMSxjO3JldHVybiBmdW5jdGlvbigpe2J8fChjPWEoKSxiPSEwKTtyZXR1cm4gY319KGZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtiLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTthLmFwcGVuZENoaWxkKGIpO2I9YS5maXJzdENoaWxkLmZpcnN0Q2hpbGQ7YS5pbm5lckhUTUw9Xy51ZChfLndkKTtyZXR1cm4hYi5wYXJlbnRFbGVtZW50fSk7emQ9L15bXHcrL18tXStbPV17MCwyfSQvOwpfLkFkPWZ1bmN0aW9uKGEpe2E9KGF8fF8ubikuZG9jdW1lbnQ7cmV0dXJuIGEucXVlcnlTZWxlY3Rvcj8oYT1hLnF1ZXJ5U2VsZWN0b3IoJ3N0eWxlW25vbmNlXSxsaW5rW3JlbD0ic3R5bGVzaGVldCJdW25vbmNlXScpKSYmKGE9YS5ub25jZXx8YS5nZXRBdHRyaWJ1dGUoIm5vbmNlIikpJiZ6ZC50ZXN0KGEpP2E6IiI6IiJ9OwpfLkJkPVJlZ0V4cCgiXlxcc3szLDR9YXQoPzogKD86KC4qPylcXC4pPygoPzpuZXcgKT8oPzpbYS16QS1aXyRdW1xcdyRdKnw8YW5vbnltb3VzPikpKD86IFxcW2FzIChbYS16QS1aXyRdW1xcdyRdKilcXF0pPyk/ICg/OlxcKHVua25vd24gc291cmNlXFwpfFxcKG5hdGl2ZVxcKXxcXCgoPzpldmFsIGF0ICk/KCg/Omh0dHB8aHR0cHN8ZmlsZSk6Ly9bXlxccyldK3xqYXZhc2NyaXB0Oi4qKVxcKXwoKD86aHR0cHxodHRwc3xmaWxlKTovL1teXFxzKV0rfGphdmFzY3JpcHQ6LiopKSQiKTtfLkNkPVJlZ0V4cCgiXig/OiguKj8pXFwuKT8oW2EtekEtWl8kXVtcXHckXSooPzovLj88KT8pPyhcXCguKlxcKSk/QCg/OjowfCgoPzpodHRwfGh0dHBzfGZpbGUpOi8vW15cXHMpXSt8amF2YXNjcmlwdDouKikpJCIpOwp2YXIgRGQsR2QsRmQ7Xy5FZD1mdW5jdGlvbihhKXt2YXIgYj13aW5kb3cuZ29vZ2xlJiZ3aW5kb3cuZ29vZ2xlLmxvZ1VybD8iIjoiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbSI7Yis9Ii9nZW5fMjA0P3VzZV9jb3JwPW9uJiI7Yis9YS5FYSgyMDQwLWIubGVuZ3RoKTtEZChfLmlkKGIpfHxfLmxkKX07RGQ9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IEltYWdlLGM9RmQ7Yi5vbmVycm9yPWIub25sb2FkPWIub25hYm9ydD1mdW5jdGlvbigpe2MgaW4gR2QmJmRlbGV0ZSBHZFtjXX07R2RbRmQrK109YjtiLnNyYz1fLmVkKGEpfTtHZD1bXTtGZD0wOwpfLkhkPWZ1bmN0aW9uKGEpe18uSC5jYWxsKHRoaXMsYSl9O18udyhfLkhkLF8uSCk7Cl8uSWQ9ZnVuY3Rpb24oYSl7dmFyIGI9IkxjIjtpZihhLkxjJiZhLmhhc093blByb3BlcnR5KGIpKXJldHVybiBhLkxjO2I9bmV3IGE7cmV0dXJuIGEuTGM9Yn07Cl8uSmQ9ZnVuY3Rpb24oKXt0aGlzLmo9e307dGhpcy5vPXt9fTtfLkxkPWZ1bmN0aW9uKGEsYil7dmFyIGM9Xy5KZC5qKCk7aWYoYSBpbiBjLmope2lmKGMualthXSE9Yil0aHJvdyBuZXcgS2QoYSk7fWVsc2V7Yy5qW2FdPWI7aWYoYj1jLm9bYV0pZm9yKHZhciBkPTAsZT1iLmxlbmd0aDtkPGU7ZCsrKWJbZF0uaihjLmosYSk7ZGVsZXRlIGMub1thXX19O18uTmQ9ZnVuY3Rpb24oYSxiKXtpZihiIGluIGEuailyZXR1cm4gYS5qW2JdO3Rocm93IG5ldyBNZChiKTt9O18uSmQuaj1mdW5jdGlvbigpe3JldHVybiBfLklkKF8uSmQpfTt2YXIgT2Q9ZnVuY3Rpb24oKXtfLmFhLmNhbGwodGhpcyl9O18udyhPZCxfLmFhKTt2YXIgS2Q9ZnVuY3Rpb24oKXtfLmFhLmNhbGwodGhpcyl9O18udyhLZCxPZCk7dmFyIE1kPWZ1bmN0aW9uKCl7Xy5hYS5jYWxsKHRoaXMpfTtfLncoTWQsT2QpOwp2YXIgU2Q9ZnVuY3Rpb24oKXt2YXIgYT1QZDt0aGlzLkM9UmQ7dGhpcy5vPV8uJGEoXy5BYyhhLDIsLjAwMSksLjAwMSk7dGhpcy5EPV8udChfLkUoYSwxKSkmJk1hdGgucmFuZG9tKCk8dGhpcy5vO3RoaXMuRj1fLiRhKF8uQmMoYSwzLDEpLDEpO3RoaXMuQj0wO3RoaXMuaj10aGlzLkE9bnVsbH07U2QucHJvdG90eXBlLmxvZz1mdW5jdGlvbihhLGIpe2lmKHRoaXMuail7dmFyIGM9bmV3IEdjO18ucShjLDEsYS5tZXNzYWdlKTtfLnEoYywyLGEuc3RhY2spO18ucShjLDMsYS5saW5lTnVtYmVyKTtfLnEoYyw1LDEpO3ZhciBkPW5ldyBfLkhjO18uemMoZCw0MCxjKTt0aGlzLmoubG9nKDk4LGQpfXRyeXtpZih0aGlzLkQmJnRoaXMuQjx0aGlzLkYpe3RyeXt2YXIgZT0odGhpcy5BfHxfLk5kKF8uSmQuaigpLCJsbSIpKS5CKGEsYil9Y2F0Y2goZil7ZT1uZXcgXy5TYyh0aGlzLkMsInF1YW50dW06Z2FwaUJ1aWxkTGFiZWwiLGEsdGhpcy5vLGIpfV8uRWQoZSk7dGhpcy5CKyt9fWNhdGNoKGYpe319Owp2YXIgVGQ9WzEsMiwzLDQsNSw2LDksMTAsMTEsMTMsMTQsMjgsMjksMzAsMzQsMzUsMzcsMzgsMzksNDAsNDIsNDMsNDgsNDksNTAsNTEsNTIsNTMsNjIsNTAwXSxXZD1mdW5jdGlvbihhLGIsYyxkLGUsZil7UmMuY2FsbCh0aGlzLGEsYik7Xy5jYih0aGlzLmRhdGEse29nZTpkLG9nZXg6Xy51KF8uRChhLDkpKSxvZ3A6Xy51KF8uRChhLDYpKSxvZ3NyOk1hdGgucm91bmQoMS8oVWQoZCk/Xy4kYShfLkFjKGMsMywxKSk6Xy4kYShfLkFjKGMsMiwxRS00KSkpKSxvZ3VzOmV9KTtpZihmKXsib2d3ImluIGYmJih0aGlzLmRhdGEub2d3PWYub2d3LGRlbGV0ZSBmLm9ndyk7InZlZCJpbiBmJiYodGhpcy5kYXRhLnZlZD1mLnZlZCxkZWxldGUgZi52ZWQpO2E9W107Zm9yKHZhciBnIGluIGYpMCE9YS5sZW5ndGgmJmEucHVzaCgiLCIpLGEucHVzaChWZChnKSksYS5wdXNoKCIuIiksYS5wdXNoKFZkKGZbZ10pKTtmPWEuam9pbigiIik7IiIhPWYmJih0aGlzLmRhdGEub2dhZD1mKX19OwpfLncoV2QsUmMpO3ZhciBWZD1mdW5jdGlvbihhKXthPVN0cmluZyhhKTtyZXR1cm4gYS5yZXBsYWNlKCIuIiwiJTJFIikucmVwbGFjZSgiLCIsIiUyQyIpfSxVZD1mdW5jdGlvbihhKXtpZighWGQpe1hkPXt9O2Zvcih2YXIgYj0wO2I8VGQubGVuZ3RoO2IrKylYZFtUZFtiXV09ITB9cmV0dXJuISFYZFthXX0sWGQ9bnVsbDsKdmFyIFlkPWZ1bmN0aW9uKGEpe18uSC5jYWxsKHRoaXMsYSl9O18udyhZZCxfLkgpOwp2YXIgYmU9ZnVuY3Rpb24oKXt2YXIgYT1aZCxiPSRkLGM9YWU7dGhpcy5vPWE7dGhpcy5qPWI7dGhpcy5CPV8uJGEoXy5BYyhhLDIsMUUtNCksMUUtNCk7dGhpcy5EPV8uJGEoXy5BYyhhLDMsMSksMSk7Yj1NYXRoLnJhbmRvbSgpO3RoaXMuQT1fLnQoXy5FKGEsMSkpJiZiPHRoaXMuQjt0aGlzLkM9Xy50KF8uRShhLDEpKSYmYjx0aGlzLkQ7YT0wO18udChfLkUoYywxKSkmJihhfD0xKTtfLnQoXy5FKGMsMikpJiYoYXw9Mik7Xy50KF8uRShjLDMpKSYmKGF8PTQpO3RoaXMuRj1hfTtiZS5wcm90b3R5cGUubG9nPWZ1bmN0aW9uKGEsYil7dHJ5e2lmKFVkKGEpP3RoaXMuQzp0aGlzLkEpe3ZhciBjPW5ldyBXZCh0aGlzLmosInF1YW50dW06Z2FwaUJ1aWxkTGFiZWwiLHRoaXMubyxhLHRoaXMuRixiKTtfLkVkKGMpfX1jYXRjaChkKXt9fTsKXy5jZT1mdW5jdGlvbihhKXt0aGlzLkJhPWE7dGhpcy5qPXZvaWQgMDt0aGlzLm89W119O18uY2UucHJvdG90eXBlLnRoZW49ZnVuY3Rpb24oYSxiLGMpe3RoaXMuby5wdXNoKG5ldyBkZShhLGIsYykpO2VlKHRoaXMpfTtfLmNlLnByb3RvdHlwZS5yZXNvbHZlPWZ1bmN0aW9uKGEpe2lmKHZvaWQgMCE9PXRoaXMuQmF8fHZvaWQgMCE9PXRoaXMuail0aHJvdyBFcnJvcigiSiIpO3RoaXMuQmE9YTtlZSh0aGlzKX07Xy5jZS5wcm90b3R5cGUucmVqZWN0PWZ1bmN0aW9uKGEpe2lmKHZvaWQgMCE9PXRoaXMuQmF8fHZvaWQgMCE9PXRoaXMuail0aHJvdyBFcnJvcigiSiIpO3RoaXMuaj1hO2VlKHRoaXMpfTt2YXIgZWU9ZnVuY3Rpb24oYSl7aWYoMDxhLm8ubGVuZ3RoKXt2YXIgYj12b2lkIDAhPT1hLkJhLGM9dm9pZCAwIT09YS5qO2lmKGJ8fGMpe2I9Yj9hLkE6YS5CO2M9YS5vO2Eubz1bXTt0cnl7Xy5HYihjLGIsYSl9Y2F0Y2goZCl7Y29uc29sZS5lcnJvcihkKX19fX07Cl8uY2UucHJvdG90eXBlLkE9ZnVuY3Rpb24oYSl7YS5vJiZhLm8uY2FsbChhLmosdGhpcy5CYSl9O18uY2UucHJvdG90eXBlLkI9ZnVuY3Rpb24oYSl7YS5BJiZhLkEuY2FsbChhLmosdGhpcy5qKX07dmFyIGRlPWZ1bmN0aW9uKGEsYixjKXt0aGlzLm89YTt0aGlzLkE9Yjt0aGlzLmo9Y307Cl8uSj1mdW5jdGlvbigpe3RoaXMuQj1uZXcgXy5jZTt0aGlzLmo9bmV3IF8uY2U7dGhpcy5HPW5ldyBfLmNlO3RoaXMuRD1uZXcgXy5jZTt0aGlzLkY9bmV3IF8uY2U7dGhpcy5IPW5ldyBfLmNlO3RoaXMuQz1uZXcgXy5jZTt0aGlzLkE9bmV3IF8uY2U7dGhpcy5vPW5ldyBfLmNlO3RoaXMuSz1uZXcgXy5jZX07Xy5rPV8uSi5wcm90b3R5cGU7Xy5rLmRpPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuQn07Xy5rLm9pPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuan07Xy5rLnhpPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuR307Xy5rLm5pPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRH07Xy5rLnZpPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuRn07Xy5rLmtpPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSH07Xy5rLmxpPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuQ307Xy5rLlZoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuQX07Xy5rLlVoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub307Xy5KLmo9ZnVuY3Rpb24oKXtyZXR1cm4gXy5JZChfLkopfTsKdmFyIGZlPWZ1bmN0aW9uKGEpe18uSC5jYWxsKHRoaXMsYSl9O18udyhmZSxfLkgpO18uaGU9ZnVuY3Rpb24oKXtyZXR1cm4gXy5GKF8uZ2UsXy5LYywxKX07Xy5pZT1mdW5jdGlvbigpe3JldHVybiBfLkYoXy5nZSxfLkxjLDUpfTsKdmFyIGplO3dpbmRvdy5nYmFyXyYmd2luZG93LmdiYXJfLkNPTkZJRz9qZT13aW5kb3cuZ2Jhcl8uQ09ORklHWzBdfHx7fTpqZT1bXTtfLmdlPW5ldyBmZShqZSk7CnZhciBQZCxSZCwkZCxhZSxaZDtQZD1fLkYoXy5nZSxfLkhkLDMpfHxuZXcgXy5IZDtSZD1fLmhlKCl8fG5ldyBfLktjO18uSz1uZXcgU2Q7JGQ9Xy5oZSgpfHxuZXcgXy5LYzthZT1fLmllKCl8fG5ldyBfLkxjO1pkPV8uRihfLmdlLFlkLDQpfHxuZXcgWWQ7Xy5rZT1uZXcgYmU7Cl8uQSgiZ2Jhcl8uX0R1bXBFeGNlcHRpb24iLGZ1bmN0aW9uKGEpe18uSz9fLksubG9nKGEpOmNvbnNvbGUuZXJyb3IoYSl9KTsKXy5sZT1uZXcgTmMoXy5LKTsKXy5rZS5sb2coOCx7bToiQmFja0NvbXBhdCI9PWRvY3VtZW50LmNvbXBhdE1vZGU/InEiOiJzIn0pO18uQSgiZ2Jhci5BIixfLmNlKTtfLmNlLnByb3RvdHlwZS5hYT1fLmNlLnByb3RvdHlwZS50aGVuO18uQSgiZ2Jhci5CIixfLkopO18uSi5wcm90b3R5cGUuYmE9Xy5KLnByb3RvdHlwZS5vaTtfLkoucHJvdG90eXBlLmJiPV8uSi5wcm90b3R5cGUueGk7Xy5KLnByb3RvdHlwZS5iZD1fLkoucHJvdG90eXBlLnZpO18uSi5wcm90b3R5cGUuYmY9Xy5KLnByb3RvdHlwZS5kaTtfLkoucHJvdG90eXBlLmJnPV8uSi5wcm90b3R5cGUubmk7Xy5KLnByb3RvdHlwZS5iaD1fLkoucHJvdG90eXBlLmtpO18uSi5wcm90b3R5cGUuYmk9Xy5KLnByb3RvdHlwZS5saTtfLkoucHJvdG90eXBlLmJqPV8uSi5wcm90b3R5cGUuVmg7Xy5KLnByb3RvdHlwZS5iaz1fLkoucHJvdG90eXBlLlVoO18uQSgiZ2Jhci5hIixfLkouaigpKTt2YXIgbWU9bmV3IE1jKHdpbmRvdyk7Xy5MZCgiYXBpIixtZSk7CnZhciBuZT1fLmllKCl8fG5ldyBfLkxjO3dpbmRvdy5fX1BWVD1fLnUoXy5EKG5lLDgpKTtfLkxkKCJlcSIsXy5sZSk7Cgp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewp2YXIgb2U9ZnVuY3Rpb24oYSl7Xy5ILmNhbGwodGhpcyxhKX07Xy53KG9lLF8uSCk7CnZhciBwZT1mdW5jdGlvbigpe18uSS5jYWxsKHRoaXMpO3RoaXMubz1bXTt0aGlzLmo9W119O18udyhwZSxfLkkpO3BlLnByb3RvdHlwZS5BPWZ1bmN0aW9uKGEsYil7dGhpcy5vLnB1c2goe2ZlYXR1cmVzOmEsb3B0aW9uczpifSl9O3BlLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKGEsYixjKXt3aW5kb3cuZ2FwaT17fTt2YXIgZD13aW5kb3cuX19fanNsPXt9O2QuaD1fLnUoXy5EKGEsMSkpO18ueGMoYSwxMikmJihkLmRwbz1fLnQoXy5FKGEsMTIpKSk7ZC5tcz1fLnUoXy5EKGEsMikpO2QubT1fLnUoXy5EKGEsMykpO2QubD1bXTtfLkQoYiwxKSYmKGE9Xy5EKGIsMykpJiZ0aGlzLmoucHVzaChhKTtfLkQoYywxKSYmKGM9Xy5EKGMsMikpJiZ0aGlzLmoucHVzaChjKTtfLkEoImdhcGkubG9hZCIsKDAsXy56KSh0aGlzLkEsdGhpcykpO3JldHVybiB0aGlzfTsKdmFyIHFlPV8uRihfLmdlLF8uT2MsMTQpfHxuZXcgXy5PYyxyZT1fLkYoXy5nZSxfLlBjLDkpfHxuZXcgXy5QYyxzZT1uZXcgb2UsdGU9bmV3IHBlO3RlLmluaXQocWUscmUsc2UpO18uTGQoImdzIix0ZSk7Cgp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KfSkodGhpcy5nYmFyXyk7Ci8vIEdvb2dsZSBJbmMuCjwvc2NyaXB0PjxzdHlsZSBub25jZT0iMUdJRGxKUGZsTDNsdXlvTkdzVy1pUSI+LmdiXzJhOm5vdCguZ2JfSWQpe2ZvbnQ6MTNweC8yN3B4IFJvYm90byxBcmlhbCxzYW5zLXNlcmlmO3otaW5kZXg6OTg2fUAtd2Via2l0LWtleWZyYW1lcyBnYl9fYXswJXtvcGFjaXR5OjB9NTAle29wYWNpdHk6MX19QC1tb3ota2V5ZnJhbWVzIGdiX19hezAle29wYWNpdHk6MH01MCV7b3BhY2l0eToxfX1ALW8ta2V5ZnJhbWVzIGdiX19hezAle29wYWNpdHk6MH01MCV7b3BhY2l0eToxfX1Aa2V5ZnJhbWVzIGdiX19hezAle29wYWNpdHk6MH01MCV7b3BhY2l0eToxfX1hLmdiX1h7Ym9yZGVyOm5vbmU7Y29sb3I6IzQyODVmNDtjdXJzb3I6ZGVmYXVsdDtmb250LXdlaWdodDpib2xkO291dGxpbmU6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOmNlbnRlcjt0ZXh0LWRlY29yYXRpb246bm9uZTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7d2hpdGUtc3BhY2U6bm93cmFwOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmV9YS5nYl9YOmhvdmVyOmFmdGVyLGEuZ2JfWDpmb2N1czphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEyKTtjb250ZW50OiIiO2hlaWdodDoxMDAlO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlfWEuZ2JfWDpob3ZlcixhLmdiX1g6Zm9jdXN7dGV4dC1kZWNvcmF0aW9uOm5vbmV9YS5nYl9YOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTUzLDE1MywxNTMsLjQpO3RleHQtZGVjb3JhdGlvbjpub25lfWEuZ2JfWntiYWNrZ3JvdW5kLWNvbG9yOiM0Mjg1ZjQ7Y29sb3I6I2ZmZn1hLmdiX1o6YWN0aXZle2JhY2tncm91bmQtY29sb3I6IzAwNDNiMn0uZ2JfMHstbW96LWJveC1zaGFkb3c6MCAxcHggMXB4IHJnYmEoMCwwLDAsLjE2KTstd2Via2l0LWJveC1zaGFkb3c6MCAxcHggMXB4IHJnYmEoMCwwLDAsLjE2KTtib3gtc2hhZG93OjAgMXB4IDFweCByZ2JhKDAsMCwwLC4xNil9LmdiX1gsLmdiX1osLmdiXzEsLmdiXzJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7bGluZS1oZWlnaHQ6MjhweDtwYWRkaW5nOjAgMTJweDstbW96LWJvcmRlci1yYWRpdXM6MnB4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czoycHg7Ym9yZGVyLXJhZGl1czoycHh9LmdiXzF7YmFja2dyb3VuZDojZjhmOGY4O2JvcmRlcjoxcHggc29saWQgI2M2YzZjNn0uZ2JfMntiYWNrZ3JvdW5kOiNmOGY4Zjh9LmdiXzEsI2diIGEuZ2JfMS5nYl8xLC5nYl8ye2NvbG9yOiM2NjY7Y3Vyc29yOmRlZmF1bHQ7dGV4dC1kZWNvcmF0aW9uOm5vbmV9I2diIGEuZ2JfMi5nYl8ye2N1cnNvcjpkZWZhdWx0O3RleHQtZGVjb3JhdGlvbjpub25lfS5nYl8ye2JvcmRlcjoxcHggc29saWQgIzQyODVmNDtmb250LXdlaWdodDpib2xkO291dGxpbmU6bm9uZTtiYWNrZ3JvdW5kOiM0Mjg1ZjQ7YmFja2dyb3VuZDotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsIzQzODdmZCwjNDY4M2VhKTtiYWNrZ3JvdW5kOi1tcy1saW5lYXItZ3JhZGllbnQodG9wLCM0Mzg3ZmQsIzQ2ODNlYSk7YmFja2dyb3VuZDotby1saW5lYXItZ3JhZGllbnQodG9wLCM0Mzg3ZmQsIzQ2ODNlYSk7YmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIzQzODdmZCwjNDY4M2VhKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0b3AsIzQzODdmZCwjNDY4M2VhKTtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9IzQzODdmZCxlbmRDb2xvcnN0cj0jNDY4M2VhLEdyYWRpZW50VHlwZT0wKX0jZ2IgYS5nYl8yLmdiXzJ7Y29sb3I6I2ZmZn0uZ2JfMjpob3ZlcnstbW96LWJveC1zaGFkb3c6MCAxcHggMCByZ2JhKDAsMCwwLC4xNSk7LXdlYmtpdC1ib3gtc2hhZG93OjAgMXB4IDAgcmdiYSgwLDAsMCwuMTUpO2JveC1zaGFkb3c6MCAxcHggMCByZ2JhKDAsMCwwLC4xNSl9LmdiXzI6YWN0aXZley1tb3otYm94LXNoYWRvdzppbnNldCAwIDJweCAwIHJnYmEoMCwwLDAsLjE1KTstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAycHggMCByZ2JhKDAsMCwwLC4xNSk7Ym94LXNoYWRvdzppbnNldCAwIDJweCAwIHJnYmEoMCwwLDAsLjE1KTtiYWNrZ3JvdW5kOiMzYzc4ZGM7YmFja2dyb3VuZDotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsIzNjN2FlNCwjM2Y3NmQzKTtiYWNrZ3JvdW5kOi1tcy1saW5lYXItZ3JhZGllbnQodG9wLCMzYzdhZTQsIzNmNzZkMyk7YmFja2dyb3VuZDotby1saW5lYXItZ3JhZGllbnQodG9wLCMzYzdhZTQsIzNmNzZkMyk7YmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIzNjN2FlNCwjM2Y3NmQzKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0b3AsIzNjN2FlNCwjM2Y3NmQzKTtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9IzNjN2FlNCxlbmRDb2xvcnN0cj0jM2Y3NmQzLEdyYWRpZW50VHlwZT0wKX0jZ2IgLmdiXzR7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI2RhZGNlMDtjb2xvcjojMWE3M2U4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3RleHQtZGVjb3JhdGlvbjpub25lfSNnYiAuZ2JfNDpob3ZlcntiYWNrZ3JvdW5kOiNmOGZiZmY7Ym9yZGVyLWNvbG9yOiNkYWRjZTA7Y29sb3I6IzE3NGVhNn0jZ2IgLmdiXzQ6Zm9jdXN7YmFja2dyb3VuZDojZjRmOGZmO2NvbG9yOiMxNzRlYTY7b3V0bGluZToxcHggc29saWQgIzE3NGVhNn0jZ2IgLmdiXzQ6YWN0aXZlLCNnYiAuZ2JfNDpmb2N1czphY3RpdmV7YmFja2dyb3VuZDojZWNmM2ZlO2NvbG9yOiMxNzRlYTZ9I2diIC5nYl80LmdiXzV7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MXB4IHNvbGlkICM1ZjYzNjg7Y29sb3I6IzhhYjRmODt0ZXh0LWRlY29yYXRpb246bm9uZX0jZ2IgLmdiXzQuZ2JfNTpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjA0KTtjb2xvcjojZThlYWVkfSNnYiAuZ2JfNC5nYl81OmZvY3Vze2JhY2tncm91bmQ6cmdiYSgyMzIsMjM0LDIzNywuMTIpO2NvbG9yOiNlOGVhZWQ7b3V0bGluZToxcHggc29saWQgI2U4ZWFlZH0jZ2IgLmdiXzQuZ2JfNTphY3RpdmUsI2diIC5nYl80LmdiXzU6Zm9jdXM6YWN0aXZle2JhY2tncm91bmQ6cmdiYSgyMzIsMjM0LDIzNywuMSk7Y29sb3I6I2U4ZWFlZH0uZ2JfQWF7ZGlzcGxheTpub25lIWltcG9ydGFudH0uZ2JfQmF7dmlzaWJpbGl0eTpoaWRkZW59LmdiX2hke2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uZ2JfemYgLmdiX1Vhe2JvdHRvbTotM3B4O3JpZ2h0Oi01cHh9LmdiX0Fme3Bvc2l0aW9uOnJlbGF0aXZlfS5nYl9Be2Rpc3BsYXk6aW5saW5lLWJsb2NrO291dGxpbmU6bm9uZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7LW1vei1ib3JkZXItcmFkaXVzOjJweDstd2Via2l0LWJvcmRlci1yYWRpdXM6MnB4O2JvcmRlci1yYWRpdXM6MnB4Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtoZWlnaHQ6NDBweDt3aWR0aDo0MHB4O2NvbG9yOiMwMDA7Y3Vyc29yOnBvaW50ZXI7dGV4dC1kZWNvcmF0aW9uOm5vbmV9I2diI2diIGEuZ2JfQXtjb2xvcjojMDAwO2N1cnNvcjpwb2ludGVyO3RleHQtZGVjb3JhdGlvbjpub25lfS5nYl80YXtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZmZmO2JvcmRlci1zdHlsZTpkYXNoZWQgZGFzaGVkIHNvbGlkO2JvcmRlci13aWR0aDowIDguNXB4IDguNXB4O2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjExLjVweDt0b3A6NDNweDt6LWluZGV4OjE7aGVpZ2h0OjA7d2lkdGg6MDstd2Via2l0LWFuaW1hdGlvbjpnYl9fYSAuMnM7LW1vei1hbmltYXRpb246Z2JfX2EgLjJzOy1vLWFuaW1hdGlvbjpnYl9fYSAuMnM7YW5pbWF0aW9uOmdiX19hIC4yc30uZ2JfNWF7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1zdHlsZTpkYXNoZWQgZGFzaGVkIHNvbGlkO2JvcmRlci13aWR0aDowIDguNXB4IDguNXB4O2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjExLjVweDt6LWluZGV4OjE7aGVpZ2h0OjA7d2lkdGg6MDstd2Via2l0LWFuaW1hdGlvbjpnYl9fYSAuMnM7LW1vei1hbmltYXRpb246Z2JfX2EgLjJzOy1vLWFuaW1hdGlvbjpnYl9fYSAuMnM7YW5pbWF0aW9uOmdiX19hIC4ycztib3JkZXItYm90dG9tLWNvbG9yOiNjY2M7Ym9yZGVyLWJvdHRvbS1jb2xvcjpyZ2JhKDAsMCwwLC4yKTt0b3A6NDJweH14Oi1vLXByZWZvY3VzLGRpdi5nYl81YXtib3JkZXItYm90dG9tLWNvbG9yOiNjY2N9LmdiX0N7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI2NjYztib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuMik7Y29sb3I6IzAwMDstd2Via2l0LWJveC1zaGFkb3c6MCAycHggMTBweCByZ2JhKDAsMCwwLC4yKTstbW96LWJveC1zaGFkb3c6MCAycHggMTBweCByZ2JhKDAsMCwwLC4yKTtib3gtc2hhZG93OjAgMnB4IDEwcHggcmdiYSgwLDAsMCwuMik7ZGlzcGxheTpub25lO291dGxpbmU6bm9uZTtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6OHB4O3RvcDo2MnB4Oy13ZWJraXQtYW5pbWF0aW9uOmdiX19hIC4yczstbW96LWFuaW1hdGlvbjpnYl9fYSAuMnM7LW8tYW5pbWF0aW9uOmdiX19hIC4yczthbmltYXRpb246Z2JfX2EgLjJzOy1tb3otYm9yZGVyLXJhZGl1czoycHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjJweDtib3JkZXItcmFkaXVzOjJweDstbW96LXVzZXItc2VsZWN0OnRleHQ7LW1zLXVzZXItc2VsZWN0OnRleHQ7LXdlYmtpdC11c2VyLXNlbGVjdDp0ZXh0fS5nYl9oZC5nYl9sYSAuZ2JfNGEsLmdiX2hkLmdiX2xhIC5nYl81YSwuZ2JfaGQuZ2JfbGEgLmdiX0MsLmdiX2xhLmdiX0N7ZGlzcGxheTpibG9ja30uZ2JfaGQuZ2JfbGEuZ2JfQmYgLmdiXzRhLC5nYl9oZC5nYl9sYS5nYl9CZiAuZ2JfNWF7ZGlzcGxheTpub25lfS5nYl9DZntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDo4cHg7dG9wOjYycHg7ei1pbmRleDotMX0uZ2JfSmEgLmdiXzRhLC5nYl9KYSAuZ2JfNWEsLmdiX0phIC5nYl9De21hcmdpbi10b3A6LTEwcHh9LmdiX2hkOmZpcnN0LWNoaWxkLCNnYnNmdzpmaXJzdC1jaGlsZCsuZ2JfaGR7cGFkZGluZy1sZWZ0OjRweH0uZ2JfcGEuZ2JfUmUgLmdiX2hkOmZpcnN0LWNoaWxke3BhZGRpbmctbGVmdDowfS5nYl9TZXtwb3NpdGlvbjpyZWxhdGl2ZX0uZ2JfU2MgLmdiX1NlLC5nYl9aZCAuZ2JfU2V7ZmxvYXQ6cmlnaHR9LmdiX0F7cGFkZGluZzo4cHg7Y3Vyc29yOnBvaW50ZXJ9LmdiX3BhIC5nYl85Yzpub3QoLmdiX1gpOmZvY3VzIGltZ3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjIwKTtvdXRsaW5lOm5vbmU7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjUwJTstbW96LWJvcmRlci1yYWRpdXM6NTAlO2JvcmRlci1yYWRpdXM6NTAlfS5nYl9UZSBidXR0b24gc3ZnLC5nYl9Bey13ZWJraXQtYm9yZGVyLXJhZGl1czo1MCU7LW1vei1ib3JkZXItcmFkaXVzOjUwJTtib3JkZXItcmFkaXVzOjUwJX0uZ2JfVGUgYnV0dG9uOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkgc3ZnLC5nYl9UZSBidXR0b246aG92ZXIgc3ZnLC5nYl9UZSBidXR0b246YWN0aXZlIHN2ZywuZ2JfQTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpLC5nYl9BOmhvdmVyLC5nYl9BOmFjdGl2ZSwuZ2JfQVthcmlhLWV4cGFuZGVkPXRydWVde291dGxpbmU6bm9uZX0uZ2JfQmMgLmdiX1RlLmdiX1VlIGJ1dHRvbjpmb2N1cy12aXNpYmxlIHN2ZywuZ2JfVGUgYnV0dG9uOmZvY3VzLXZpc2libGUgc3ZnLC5nYl9BOmZvY3VzLXZpc2libGV7b3V0bGluZToxcHggc29saWQgIzIwMjEyNH0uZ2JfQmMgLmdiX1RlIGJ1dHRvbjpmb2N1cy12aXNpYmxlIHN2ZywuZ2JfQmMgLmdiX0E6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOjFweCBzb2xpZCAjZjFmM2Y0fUBtZWRpYSAoZm9yY2VkLWNvbG9yczphY3RpdmUpey5nYl9CYyAuZ2JfVGUuZ2JfVWUgYnV0dG9uOmZvY3VzLXZpc2libGUgc3ZnLC5nYl9UZSBidXR0b246Zm9jdXMtdmlzaWJsZSBzdmcsLmdiX0JjIC5nYl9UZSBidXR0b246Zm9jdXMtdmlzaWJsZSBzdmd7b3V0bGluZToxcHggc29saWQgY3VycmVudGNvbG9yfX0uZ2JfQmMgLmdiX1RlLmdiX1VlIGJ1dHRvbjpmb2N1cyBzdmcsLmdiX0JjIC5nYl9UZS5nYl9VZSBidXR0b246Zm9jdXM6aG92ZXIgc3ZnLC5nYl9UZSBidXR0b246Zm9jdXMgc3ZnLC5nYl9UZSBidXR0b246Zm9jdXM6aG92ZXIgc3ZnLC5nYl9BOmZvY3VzLC5nYl9BOmZvY3VzOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSg2MCw2NCw2NywuMSl9LmdiX0JjIC5nYl9UZS5nYl9VZSBidXR0b246YWN0aXZlIHN2ZywuZ2JfVGUgYnV0dG9uOmFjdGl2ZSBzdmcsLmdiX0E6YWN0aXZle2JhY2tncm91bmQtY29sb3I6cmdiYSg2MCw2NCw2NywuMTIpfS5nYl9CYyAuZ2JfVGUuZ2JfVWUgYnV0dG9uOmhvdmVyIHN2ZywuZ2JfVGUgYnV0dG9uOmhvdmVyIHN2ZywuZ2JfQTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoNjAsNjQsNjcsLjA4KX0uZ2JfamEgLmdiX0EuZ2JfTWE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uZ2JfQVthcmlhLWV4cGFuZGVkPXRydWVdLC5nYl9BOmhvdmVyW2FyaWEtZXhwYW5kZWQ9dHJ1ZV17YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDk1LDk5LDEwNCwuMjQpfS5nYl9BW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0gLmdiX1ZlLC5nYl9BW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0gLmdiX1dle2ZpbGw6IzVmNjM2ODtvcGFjaXR5OjF9LmdiX0JjIC5nYl9UZSBidXR0b246aG92ZXIgc3ZnLC5nYl9CYyAuZ2JfQTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjMyLDIzNCwyMzcsLjA4KX0uZ2JfQmMgLmdiX1RlIGJ1dHRvbjpmb2N1cyBzdmcsLmdiX0JjIC5nYl9UZSBidXR0b246Zm9jdXM6aG92ZXIgc3ZnLC5nYl9CYyAuZ2JfQTpmb2N1cywuZ2JfQmMgLmdiX0E6Zm9jdXM6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIzMiwyMzQsMjM3LC4xMCl9LmdiX0JjIC5nYl9UZSBidXR0b246YWN0aXZlIHN2ZywuZ2JfQmMgLmdiX0E6YWN0aXZle2JhY2tncm91bmQtY29sb3I6cmdiYSgyMzIsMjM0LDIzNywuMTIpfS5nYl9CYyAuZ2JfQVthcmlhLWV4cGFuZGVkPXRydWVdLC5nYl9CYyAuZ2JfQTpob3ZlclthcmlhLWV4cGFuZGVkPXRydWVde2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTIpfS5nYl9CYyAuZ2JfQVthcmlhLWV4cGFuZGVkPXRydWVdIC5nYl9WZSwuZ2JfQmMgLmdiX0FbYXJpYS1leHBhbmRlZD10cnVlXSAuZ2JfV2V7ZmlsbDojZmZmO29wYWNpdHk6MX0uZ2JfaGR7cGFkZGluZzo0cHh9LmdiX3BhLmdiX1JlIC5nYl9oZHtwYWRkaW5nOjRweCAycHh9LmdiX3BhLmdiX1JlIC5nYl9OYS5nYl9oZHtwYWRkaW5nLWxlZnQ6NnB4fS5nYl9De3otaW5kZXg6OTkxO2xpbmUtaGVpZ2h0Om5vcm1hbH0uZ2JfQy5nYl9YZXtsZWZ0OjhweDtyaWdodDphdXRvfUBtZWRpYSAobWF4LXdpZHRoOjM1MHB4KXsuZ2JfQy5nYl9YZXtsZWZ0OjB9fS5nYl9aZSAuZ2JfQ3t0b3A6NTZweH0uZ2JfeiAuZ2JfQSwuZ2JfQiAuZ2JfeiAuZ2JfQXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC0yOXB4fS5nYl9nIC5nYl96IC5nYl9Be2JhY2tncm91bmQtcG9zaXRpb246LTI5cHggLTI5cHg7b3BhY2l0eToxfS5nYl96IC5nYl9BLC5nYl96IC5nYl9BOmhvdmVyLC5nYl96IC5nYl9BOmZvY3Vze29wYWNpdHk6MX0uZ2JfSmR7ZGlzcGxheTpub25lfS5nYl8xY3tmb250LWZhbWlseTpHb29nbGUgU2FucyxSb2JvdG8sSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjIwcHg7Zm9udC13ZWlnaHQ6NDAwO2xldHRlci1zcGFjaW5nOjAuMjVweDtsaW5lLWhlaWdodDo0OHB4O21hcmdpbi1ib3R0b206MnB4O29wYWNpdHk6MTtvdmVyZmxvdzpoaWRkZW47cGFkZGluZy1sZWZ0OjE2cHg7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7dG9wOjJweDt3aGl0ZS1zcGFjZTpub3dyYXA7LW1zLWZsZXg6MSAxIGF1dG87LXdlYmtpdC1mbGV4OjEgMSBhdXRvO2ZsZXg6MSAxIGF1dG99LmdiXzFjLmdiXzJje2NvbG9yOiMzYzQwNDN9LmdiX3BhLmdiX3FhIC5nYl8xY3ttYXJnaW4tYm90dG9tOjB9LmdiXzNjLmdiXzRjIC5nYl8xY3twYWRkaW5nLWxlZnQ6NHB4fS5nYl9wYS5nYl9xYSAuZ2JfNWN7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0ycHh9LmdiX3Bhe2NvbG9yOmJsYWNrO21pbi13aWR0aDozMjBweDtwb3NpdGlvbjpyZWxhdGl2ZTstbW96LXRyYW5zaXRpb246Ym94LXNoYWRvdyAyNTBtczstbXMtdHJhbnNpdGlvbjpib3gtc2hhZG93IDI1MG1zOy1vLXRyYW5zaXRpb246Ym94LXNoYWRvdyAyNTBtczstd2Via2l0LXRyYW5zaXRpb246Ym94LXNoYWRvdyAyNTBtczt0cmFuc2l0aW9uOmJveC1zaGFkb3cgMjUwbXN9LmdiX3BhLmdiX0tje21pbi13aWR0aDoyNDBweH0uZ2JfcGEuZ2JfS2QgLmdiX0xke2Rpc3BsYXk6bm9uZX0uZ2JfcGEuZ2JfS2QgLmdiX01ke2hlaWdodDo1NnB4fWhlYWRlci5nYl9wYXtkaXNwbGF5OmJsb2NrfS5nYl9wYSBzdmd7ZmlsbDpjdXJyZW50Q29sb3J9LmdiX05ke3Bvc2l0aW9uOmZpeGVkO3RvcDowO3dpZHRoOjEwMCV9LmdiX09key13ZWJraXQtYm94LXNoYWRvdzowcHggNHB4IDVweCAwcHggcmdiYSgwLDAsMCwuMTQpLDBweCAxcHggMTBweCAwcHggcmdiYSgwLDAsMCwuMTIpLDBweCAycHggNHB4IC0xcHggcmdiYSgwLDAsMCwuMik7LW1vei1ib3gtc2hhZG93OjBweCA0cHggNXB4IDBweCByZ2JhKDAsMCwwLC4xNCksMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsMCwwLC4xMiksMHB4IDJweCA0cHggLTFweCByZ2JhKDAsMCwwLC4yKTtib3gtc2hhZG93OjBweCA0cHggNXB4IDBweCByZ2JhKDAsMCwwLC4xNCksMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsMCwwLC4xMiksMHB4IDJweCA0cHggLTFweCByZ2JhKDAsMCwwLC4yKX0uZ2JfUGR7aGVpZ2h0OjY0cHh9LmdiX01key13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotbW96LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOnNwYWNlLWJldHdlZW47LW1zLWZsZXgtcGFjazpqdXN0aWZ5Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47bWluLXdpZHRoOi13ZWJraXQtbWluLWNvbnRlbnQ7bWluLXdpZHRoOi1tb3otbWluLWNvbnRlbnQ7bWluLXdpZHRoOi1tcy1taW4tY29udGVudDttaW4td2lkdGg6bWluLWNvbnRlbnR9LmdiX3BhOm5vdCguZ2JfcWEpIC5nYl9NZHtwYWRkaW5nOjhweH0uZ2JfcGEuZ2JfUWQgLmdiX01key1tcy1mbGV4OjEgMCBhdXRvOy13ZWJraXQtZmxleDoxIDAgYXV0bztmbGV4OjEgMCBhdXRvfS5nYl9wYSAuZ2JfTWQuZ2JfUmQuZ2JfU2R7bWluLXdpZHRoOjB9LmdiX3BhLmdiX3FhIC5nYl9NZHtwYWRkaW5nOjRweDtwYWRkaW5nLWxlZnQ6OHB4O21pbi13aWR0aDowfS5nYl9MZHtoZWlnaHQ6NDhweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2hpdGUtc3BhY2U6bm93cmFwOy1tcy1mbGV4LWFsaWduOmNlbnRlcjstbW96LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1vei1ib3g7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LW1vei11c2VyLXNlbGVjdDotbW96LW5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lfS5nYl9VZD4uZ2JfTGR7ZGlzcGxheTp0YWJsZS1jZWxsO3dpZHRoOjEwMCV9LmdiXzNje3BhZGRpbmctcmlnaHQ6MzBweDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1zLWZsZXg6MSAwIGF1dG87LXdlYmtpdC1mbGV4OjEgMCBhdXRvO2ZsZXg6MSAwIGF1dG99LmdiX3BhLmdiX3FhIC5nYl8zY3twYWRkaW5nLXJpZ2h0OjE0cHh9LmdiX1Zkey1tcy1mbGV4OjEgMSAxMDAlOy13ZWJraXQtZmxleDoxIDEgMTAwJTtmbGV4OjEgMSAxMDAlfS5nYl9WZD46b25seS1jaGlsZHtkaXNwbGF5OmlubGluZS1ibG9ja30uZ2JfV2QuZ2JfVGN7cGFkZGluZy1sZWZ0OjRweH0uZ2JfV2QuZ2JfWGQsLmdiX3BhLmdiX1FkIC5nYl9XZCwuZ2JfcGEuZ2JfcWE6bm90KC5nYl9aZCkgLmdiX1dke3BhZGRpbmctbGVmdDowfS5nYl9wYS5nYl9xYSAuZ2JfV2QuZ2JfWGR7cGFkZGluZy1yaWdodDowfS5nYl9wYS5nYl9xYSAuZ2JfV2QuZ2JfWGQgLmdiX2phe21hcmdpbi1sZWZ0OjEwcHh9LmdiX1Rje2Rpc3BsYXk6aW5saW5lfS5nYl9wYS5nYl9OYyAuZ2JfV2QuZ2JfMGQsLmdiX3BhLmdiX1pkIC5nYl9XZC5nYl8wZHtwYWRkaW5nLWxlZnQ6MnB4fS5nYl8xY3tkaXNwbGF5OmlubGluZS1ibG9ja30uZ2JfV2R7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2hlaWdodDo0OHB4O2xpbmUtaGVpZ2h0Om5vcm1hbDtwYWRkaW5nOjAgNHB4O3BhZGRpbmctbGVmdDozMHB4Oy1tcy1mbGV4OjAgMCBhdXRvOy13ZWJraXQtZmxleDowIDAgYXV0bztmbGV4OjAgMCBhdXRvOy13ZWJraXQtYm94LXBhY2s6ZmxleC1lbmQ7LW1zLWZsZXgtcGFjazplbmQ7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5nYl9aZHtoZWlnaHQ6NDhweH0uZ2JfcGEuZ2JfWmR7bWluLXdpZHRoOmluaXRpYWw7bWluLXdpZHRoOmF1dG99LmdiX1pkIC5nYl9XZHtmbG9hdDpyaWdodDtwYWRkaW5nLWxlZnQ6MzJweH0uZ2JfWmQgLmdiX1dkLmdiXzFke3BhZGRpbmctbGVmdDowfS5nYl8yZHtmb250LXNpemU6MTRweDttYXgtd2lkdGg6MjAwcHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MCAxMnB4O3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwOy1tb3otdXNlci1zZWxlY3Q6dGV4dDstbXMtdXNlci1zZWxlY3Q6dGV4dDstd2Via2l0LXVzZXItc2VsZWN0OnRleHR9LmdiXzNkey13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC40czstby10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjRzO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuNHN9LmdiXzRke2NvbG9yOmJsYWNrfS5nYl9CY3tjb2xvcjp3aGl0ZX0uZ2JfcGEgYSwuZ2JfSGMgYXtjb2xvcjppbmhlcml0fS5nYl9xe2NvbG9yOnJnYmEoMCwwLDAsLjg3KX0uZ2JfcGEgc3ZnLC5nYl9IYyBzdmcsLmdiXzNjIC5nYl81ZCwuZ2JfU2MgLmdiXzVke2NvbG9yOiM1ZjYzNjg7b3BhY2l0eToxfS5nYl9CYyBzdmcsLmdiX0hjLmdiX0xjIHN2ZywuZ2JfQmMgLmdiXzNjIC5nYl81ZCwuZ2JfQmMgLmdiXzNjIC5nYl9BYywuZ2JfQmMgLmdiXzNjIC5nYl81YywuZ2JfSGMuZ2JfTGMgLmdiXzVke2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC44Nyl9LmdiX0JjIC5nYl8zYyAuZ2JfemM6bm90KC5nYl82ZCl7b3BhY2l0eTowLjg3fS5nYl8yY3tjb2xvcjppbmhlcml0O29wYWNpdHk6MTt0ZXh0LXJlbmRlcmluZzpvcHRpbWl6ZUxlZ2liaWxpdHk7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGV9LmdiX0JjIC5nYl8yYywuZ2JfNGQgLmdiXzJje29wYWNpdHk6MX0uZ2JfN2R7cG9zaXRpb246cmVsYXRpdmV9LmdiXzhke2ZvbnQtZmFtaWx5OmFyaWFsLHNhbnMtc2VyaWY7bGluZS1oZWlnaHQ6bm9ybWFsO3BhZGRpbmctcmlnaHQ6MTVweH1hLmdiX2Qsc3Bhbi5nYl9ke2NvbG9yOnJnYmEoMCwwLDAsLjg3KTt0ZXh0LWRlY29yYXRpb246bm9uZX0uZ2JfQmMgYS5nYl9kLC5nYl9CYyBzcGFuLmdiX2R7Y29sb3I6d2hpdGV9YS5nYl9kOmZvY3Vze291dGxpbmUtb2Zmc2V0OjJweH1hLmdiX2Q6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uZ2JfZXtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nLWxlZnQ6MTVweH0uZ2JfZSAuZ2JfZHtkaXNwbGF5OmlubGluZS1ibG9jaztsaW5lLWhlaWdodDoyNHB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uZ2JfOWR7Zm9udC1mYW1pbHk6R29vZ2xlIFNhbnMsUm9ib3RvLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXNpemU6MTRweDtsZXR0ZXItc3BhY2luZzowLjI1cHg7bGluZS1oZWlnaHQ6MTZweDttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDo4cHg7bWluLXdpZHRoOjk2cHg7cGFkZGluZzo5cHggMjNweDt0ZXh0LWFsaWduOmNlbnRlcjt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7LW1vei1ib3JkZXItcmFkaXVzOjRweDstd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4O2JvcmRlci1yYWRpdXM6NHB4Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH0uZ2JfcGEuZ2JfWmQgLmdiXzlke21hcmdpbi1sZWZ0OjhweH0jZ2IgYS5nYl8yLmdiXzIuZ2JfOWR7Y3Vyc29yOnBvaW50ZXJ9LmdiXzIuZ2JfOWQ6aG92ZXJ7YmFja2dyb3VuZDojMWI2NmM5Oy13ZWJraXQtYm94LXNoYWRvdzowIDFweCAzcHggMXB4IHJnYmEoNjYsNjQsNjcsLjE1KSwwIDFweCAycHggMCByZ2JhKDYwLDY0LDY3LC4zKTstbW96LWJveC1zaGFkb3c6MCAxcHggM3B4IDFweCByZ2JhKDY2LDY0LDY3LC4xNSksMCAxcHggMnB4IDAgcmdiYSg2MCw2NCw2NywuMyk7Ym94LXNoYWRvdzowIDFweCAzcHggMXB4IHJnYmEoNjYsNjQsNjcsLjE1KSwwIDFweCAycHggMCByZ2JhKDYwLDY0LDY3LC4zKX0uZ2JfMi5nYl85ZDpmb2N1cywuZ2JfMi5nYl85ZDpob3Zlcjpmb2N1c3tiYWNrZ3JvdW5kOiMxYzVmYmE7LXdlYmtpdC1ib3gtc2hhZG93OjAgMXB4IDNweCAxcHggcmdiYSg2Niw2NCw2NywuMTUpLDAgMXB4IDJweCAwIHJnYmEoNjAsNjQsNjcsLjMpOy1tb3otYm94LXNoYWRvdzowIDFweCAzcHggMXB4IHJnYmEoNjYsNjQsNjcsLjE1KSwwIDFweCAycHggMCByZ2JhKDYwLDY0LDY3LC4zKTtib3gtc2hhZG93OjAgMXB4IDNweCAxcHggcmdiYSg2Niw2NCw2NywuMTUpLDAgMXB4IDJweCAwIHJnYmEoNjAsNjQsNjcsLjMpfS5nYl8yLmdiXzlkOmFjdGl2ZXtiYWNrZ3JvdW5kOiMxYjYzYzE7LXdlYmtpdC1ib3gtc2hhZG93OjAgMXB4IDNweCAxcHggcmdiYSg2Niw2NCw2NywuMTUpLDAgMXB4IDJweCAwIHJnYmEoNjAsNjQsNjcsLjMpOy1tb3otYm94LXNoYWRvdzowIDFweCAzcHggMXB4IHJnYmEoNjYsNjQsNjcsLjE1KSwwIDFweCAycHggMCByZ2JhKDYwLDY0LDY3LC4zKTtib3gtc2hhZG93OjAgMXB4IDNweCAxcHggcmdiYSg2Niw2NCw2NywuMTUpLDAgMXB4IDJweCAwIHJnYmEoNjAsNjQsNjcsLjMpfS5nYl85ZHtiYWNrZ3JvdW5kOiMxYTczZTg7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudH0uZ2JfcGEuZ2JfcWEgLmdiXzlke3BhZGRpbmc6OXB4IDE1cHg7bWluLXdpZHRoOjgwcHh9LmdiX2Fle3RleHQtYWxpZ246bGVmdH0jZ2IgLmdiX0JjIGEuZ2JfOWQ6bm90KC5nYl81KSwjZ2IuZ2JfQmMgYS5nYl85ZHtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLWNvbG9yOiNkYWRjZTA7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7LW1vei1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lO2NvbG9yOiMxYTczZTh9I2diIGEuZ2JfMi5nYl81LmdiXzlke2JhY2tncm91bmQ6IzhhYjRmODtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50Oy13ZWJraXQtYm94LXNoYWRvdzpub25lOy1tb3otYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZTtjb2xvcjojMjAyMTI0fSNnYiAuZ2JfQmMgYS5nYl85ZDpob3Zlcjpub3QoLmdiXzUpLCNnYi5nYl9CYyBhLmdiXzlkOmhvdmVye2JhY2tncm91bmQ6I2Y4ZmJmZjtib3JkZXItY29sb3I6I2NjZTBmY30jZ2IgYS5nYl8yLmdiXzUuZ2JfOWQ6aG92ZXJ7YmFja2dyb3VuZDojOTNiYWY5O2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDstd2Via2l0LWJveC1zaGFkb3c6MCAxcHggM3B4IDFweCByZ2JhKDAsMCwwLC4xNSksMCAxcHggMnB4IHJnYmEoMCwwLDAsLjMpOy1tb3otYm94LXNoYWRvdzowIDFweCAzcHggMXB4IHJnYmEoMCwwLDAsLjE1KSwwIDFweCAycHggcmdiYSgwLDAsMCwuMyk7Ym94LXNoYWRvdzowIDFweCAzcHggMXB4IHJnYmEoMCwwLDAsLjE1KSwwIDFweCAycHggcmdiYSgwLDAsMCwuMyl9I2diIC5nYl9CYyBhLmdiXzlkOmZvY3VzOm5vdCguZ2JfNSksI2diIC5nYl9CYyBhLmdiXzlkOmZvY3VzOmhvdmVyOm5vdCguZ2JfNSksI2diLmdiX0JjIGEuZ2JfOWQ6Zm9jdXM6bm90KC5nYl81KSwjZ2IuZ2JfQmMgYS5nYl85ZDpmb2N1czpob3Zlcjpub3QoLmdiXzUpe2JhY2tncm91bmQ6I2Y0ZjhmZjtvdXRsaW5lOjFweCBzb2xpZCAjYzlkZGZjfSNnYiBhLmdiXzIuZ2JfNS5nYl85ZDpmb2N1cywjZ2IgYS5nYl8yLmdiXzUuZ2JfOWQ6Zm9jdXM6aG92ZXJ7YmFja2dyb3VuZDojYTZjNmZhO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDstd2Via2l0LWJveC1zaGFkb3c6bm9uZTstbW96LWJveC1zaGFkb3c6bm9uZTtib3gtc2hhZG93Om5vbmV9I2diIC5nYl9CYyBhLmdiXzlkOmFjdGl2ZTpub3QoLmdiXzUpLCNnYi5nYl9CYyBhLmdiXzlkOmFjdGl2ZXtiYWNrZ3JvdW5kOiNlY2YzZmV9I2diIGEuZ2JfMi5nYl81LmdiXzlkOmFjdGl2ZXtiYWNrZ3JvdW5kOiNhMWMzZjk7LXdlYmtpdC1ib3gtc2hhZG93OjAgMXB4IDJweCByZ2JhKDYwLDY0LDY3LC4zKSwwIDJweCA2cHggMnB4IHJnYmEoNjAsNjQsNjcsLjE1KTstbW96LWJveC1zaGFkb3c6MCAxcHggMnB4IHJnYmEoNjAsNjQsNjcsLjMpLDAgMnB4IDZweCAycHggcmdiYSg2MCw2NCw2NywuMTUpO2JveC1zaGFkb3c6MCAxcHggMnB4IHJnYmEoNjAsNjQsNjcsLjMpLDAgMnB4IDZweCAycHggcmdiYSg2MCw2NCw2NywuMTUpfS5nYl9qYXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjg4KTtib3JkZXI6MXB4IHNvbGlkICNkYWRjZTA7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21heC1oZWlnaHQ6NDhweDtvdmVyZmxvdzpoaWRkZW47b3V0bGluZTpub25lO3BhZGRpbmc6MDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2lkdGg6MTM0cHg7LW1vei1ib3JkZXItcmFkaXVzOjhweDstd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4O2JvcmRlci1yYWRpdXM6OHB4fS5nYl9qYS5nYl81e2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOjFweCBzb2xpZCAjNWY2MzY4fS5nYl9rYXtkaXNwbGF5OmluaGVyaXR9LmdiX2phLmdiXzUgLmdiX2the2JhY2tncm91bmQ6I2ZmZjstd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4Oy1tb3otYm9yZGVyLXJhZGl1czo0cHg7Ym9yZGVyLXJhZGl1czo0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7bGVmdDo4cHg7bWFyZ2luLXJpZ2h0OjVweDtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOjNweDt0b3A6LTFweH0uZ2JfamE6aG92ZXJ7Ym9yZGVyOjFweCBzb2xpZCAjZDJlM2ZjO2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDgsMjUwLDI1NSwuODgpfS5nYl9qYS5nYl81OmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDEsMjQzLDI0NCwuMDQpO2JvcmRlcjoxcHggc29saWQgIzVmNjM2OH0uZ2JfamE6Zm9jdXMtdmlzaWJsZSwuZ2JfamE6Zm9jdXN7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1KTtvdXRsaW5lOjFweCBzb2xpZCAjMjAyMTI0Oy1tb3otYm94LXNoYWRvdzowcHggMXB4IDJweCAwcHggcmdiYSg2MCw2NCw2NywuMyksMHB4IDFweCAzcHggMXB4IHJnYmEoNjAsNjQsNjcsLjE1KTstd2Via2l0LWJveC1zaGFkb3c6MHB4IDFweCAycHggMHB4IHJnYmEoNjAsNjQsNjcsLjMpLDBweCAxcHggM3B4IDFweCByZ2JhKDYwLDY0LDY3LC4xNSk7Ym94LXNoYWRvdzowcHggMXB4IDJweCAwcHggcmdiYSg2MCw2NCw2NywuMyksMHB4IDFweCAzcHggMXB4IHJnYmEoNjAsNjQsNjcsLjE1KX0uZ2JfamEuZ2JfNTpmb2N1cy12aXNpYmxlLC5nYl9qYS5nYl81OmZvY3Vze2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDEsMjQzLDI0NCwuMTIpO291dGxpbmU6MXB4IHNvbGlkICNmMWYzZjQ7LW1vei1ib3gtc2hhZG93OjAgMXB4IDNweCAxcHggcmdiYSgwLDAsMCwuMTUpLDAgMXB4IDJweCAwIHJnYmEoMCwwLDAsLjMpOy13ZWJraXQtYm94LXNoYWRvdzowIDFweCAzcHggMXB4IHJnYmEoMCwwLDAsLjE1KSwwIDFweCAycHggMCByZ2JhKDAsMCwwLC4zKTtib3gtc2hhZG93OjAgMXB4IDNweCAxcHggcmdiYSgwLDAsMCwuMTUpLDAgMXB4IDJweCAwIHJnYmEoMCwwLDAsLjMpfS5nYl9qYS5nYl81OmFjdGl2ZSwuZ2JfamEuZ2JfbGEuZ2JfNTpmb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQxLDI0MywyNDQsLjEpO2JvcmRlcjoxcHggc29saWQgIzVmNjM2OH0uZ2JfbWF7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZy1ib3R0b206MnB4O3BhZGRpbmctbGVmdDo3cHg7cGFkZGluZy10b3A6MnB4O3RleHQtYWxpZ246Y2VudGVyO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtsaW5lLWhlaWdodDozMnB4O3dpZHRoOjc4cHh9LmdiX2phLmdiXzUgLmdiX21he2xpbmUtaGVpZ2h0OjI2cHg7bWFyZ2luLWxlZnQ6MDtwYWRkaW5nLWJvdHRvbTowO3BhZGRpbmctbGVmdDowO3BhZGRpbmctdG9wOjA7d2lkdGg6NzJweH0uZ2JfbWEuZ2JfbmF7YmFja2dyb3VuZC1jb2xvcjojZjFmM2Y0Oy13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7LW1vei1ib3JkZXItcmFkaXVzOjRweDtib3JkZXItcmFkaXVzOjRweDttYXJnaW4tbGVmdDo4cHg7cGFkZGluZy1sZWZ0OjB9LmdiX21hLmdiX25hIC5nYl9vYXt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmdiX3BhOm5vdCguZ2JfcWEpIC5nYl9qYXttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDo0cHh9LmdiX3Jhe21heC1oZWlnaHQ6MzJweDt3aWR0aDo3OHB4fS5nYl9qYS5nYl81IC5nYl9yYXttYXgtaGVpZ2h0OjI2cHg7d2lkdGg6NzJweH0uZ2JfQ2F7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6MzJweCAzMnB4Oy1vLWJhY2tncm91bmQtc2l6ZTozMnB4IDMycHg7YmFja2dyb3VuZC1zaXplOjMycHggMzJweDtib3JkZXI6MDstd2Via2l0LWJvcmRlci1yYWRpdXM6NTAlOy1tb3otYm9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyLXJhZGl1czo1MCU7ZGlzcGxheTpibG9jazttYXJnaW46MHB4O3Bvc2l0aW9uOnJlbGF0aXZlO2hlaWdodDozMnB4O3dpZHRoOjMycHg7ei1pbmRleDowfS5nYl9EYXtiYWNrZ3JvdW5kLWNvbG9yOiNlOGYwZmU7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDMyLDMzLDM2LC4wOCk7cG9zaXRpb246cmVsYXRpdmV9LmdiX0RhLmdiX0Nhe2hlaWdodDozMHB4O3dpZHRoOjMwcHh9LmdiX0RhLmdiX0NhOmhvdmVyLC5nYl9EYS5nYl9DYTphY3RpdmV7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7LW1vei1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lfS5nYl9FYXtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOm5vbmU7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjUwJTstbW96LWJvcmRlci1yYWRpdXM6NTAlO2JvcmRlci1yYWRpdXM6NTAlO2JvdHRvbToycHg7LXdlYmtpdC1ib3gtc2hhZG93OjBweCAxcHggMnB4IDBweCByZ2JhKDYwLDY0LDY3LC4zMCksMHB4IDFweCAzcHggMXB4IHJnYmEoNjAsNjQsNjcsLjE1KTstbW96LWJveC1zaGFkb3c6MHB4IDFweCAycHggMHB4IHJnYmEoNjAsNjQsNjcsLjMwKSwwcHggMXB4IDNweCAxcHggcmdiYSg2MCw2NCw2NywuMTUpO2JveC1zaGFkb3c6MHB4IDFweCAycHggMHB4IHJnYmEoNjAsNjQsNjcsLjMwKSwwcHggMXB4IDNweCAxcHggcmdiYSg2MCw2NCw2NywuMTUpO2hlaWdodDoxNHB4O21hcmdpbjoycHg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt3aWR0aDoxNHB4fS5nYl9GYXtjb2xvcjojMWY3MWU3O2ZvbnQ6NDAwIDIycHgvMzJweCBHb29nbGUgU2FucyxSb2JvdG8sSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7dGV4dC1hbGlnbjpjZW50ZXI7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfUBtZWRpYSAobWluLXJlc29sdXRpb246MS4yNWRwcHgpLCgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOjUvNCksKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzoxLjI1KSwobWluLWRldmljZS1waXhlbC1yYXRpbzoxLjI1KXsuZ2JfQ2E6OmJlZm9yZSwuZ2JfSGE6OmJlZm9yZXtkaXNwbGF5OmlubGluZS1ibG9jazstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSguNSk7LW1vei10cmFuc2Zvcm06c2NhbGUoLjUpOy1tcy10cmFuc2Zvcm06c2NhbGUoLjUpOy1vLXRyYW5zZm9ybTpzY2FsZSguNSk7dHJhbnNmb3JtOnNjYWxlKC41KTstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46bGVmdCAwOy1tb3otdHJhbnNmb3JtLW9yaWdpbjpsZWZ0IDA7LW1zLXRyYW5zZm9ybS1vcmlnaW46bGVmdCAwOy1vLXRyYW5zZm9ybS1vcmlnaW46bGVmdCAwO3RyYW5zZm9ybS1vcmlnaW46bGVmdCAwfS5nYl9pIC5nYl9IYTo6YmVmb3Jley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDAuNDE2NjY2NjY3KTstbW96LXRyYW5zZm9ybTpzY2FsZSgwLjQxNjY2NjY2Nyk7LW1zLXRyYW5zZm9ybTpzY2FsZSgwLjQxNjY2NjY2Nyk7LW8tdHJhbnNmb3JtOnNjYWxlKDAuNDE2NjY2NjY3KTt0cmFuc2Zvcm06c2NhbGUoMC40MTY2NjY2NjcpfX0uZ2JfQ2E6aG92ZXIsLmdiX0NhOmZvY3Vzey1tb3otYm94LXNoYWRvdzowIDFweCAwIHJnYmEoMCwwLDAsLjE1KTstd2Via2l0LWJveC1zaGFkb3c6MCAxcHggMCByZ2JhKDAsMCwwLC4xNSk7Ym94LXNoYWRvdzowIDFweCAwIHJnYmEoMCwwLDAsLjE1KX0uZ2JfQ2E6YWN0aXZley1tb3otYm94LXNoYWRvdzppbnNldCAwIDJweCAwIHJnYmEoMCwwLDAsLjE1KTstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAycHggMCByZ2JhKDAsMCwwLC4xNSk7Ym94LXNoYWRvdzppbnNldCAwIDJweCAwIHJnYmEoMCwwLDAsLjE1KX0uZ2JfQ2E6YWN0aXZlOjphZnRlcntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjEpOy13ZWJraXQtYm9yZGVyLXJhZGl1czo1MCU7LW1vei1ib3JkZXItcmFkaXVzOjUwJTtib3JkZXItcmFkaXVzOjUwJTtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEwMCV9LmdiX0lhe2N1cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0OjQwcHg7bWluLXdpZHRoOjMwcHg7b3BhY2l0eTouNzU7b3ZlcmZsb3c6aGlkZGVuO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTstby10ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9LmdiX0EuZ2JfSWF7d2lkdGg6YXV0b30uZ2JfSWE6aG92ZXIsLmdiX0lhOmZvY3Vze29wYWNpdHk6Ljg1fS5nYl9KYSAuZ2JfSWEsLmdiX0phIC5nYl9LYXtsaW5lLWhlaWdodDoyNnB4fSNnYiNnYi5nYl9KYSBhLmdiX0lhLC5nYl9KYSAuZ2JfS2F7Zm9udC1zaXplOjExcHg7aGVpZ2h0OmF1dG99LmdiX0xhe2JvcmRlci10b3A6NHB4IHNvbGlkICMwMDA7Ym9yZGVyLWxlZnQ6NHB4IGRhc2hlZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6NHB4IGRhc2hlZCB0cmFuc3BhcmVudDtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tbGVmdDo2cHg7b3BhY2l0eTouNzU7dmVydGljYWwtYWxpZ246bWlkZGxlfS5nYl9NYTpob3ZlciAuZ2JfTGF7b3BhY2l0eTouODV9LmdiX2phPi5nYl9OYXtwYWRkaW5nOjNweCAzcHggM3B4IDRweH0uZ2JfT2EuZ2JfQmF7Y29sb3I6I2ZmZn0uZ2JfQ2EuZ2JfUGF7Y2xpcC1wYXRoOnBhdGgoJ00xNiAwQzI0LjgzNjYgMCAzMiA3LjE2MzQ0IDMyIDE2QzMyIDE2LjQ5NjQgMzEuOTc3NCAxNi45ODc1IDMxLjkzMzIgMTcuNDcyM0MzMC41MTY2IDE2LjU0MTEgMjguODIxNSAxNiAyNyAxNkMyMi4wMjk0IDE2IDE4IDIwLjAyOTQgMTggMjVDMTggMjcuNDY3MSAxOC45OTI3IDI5LjcwMjQgMjAuNjAwNCAzMS4zMjgyQzE5LjE0NDMgMzEuNzY1MyAxNy41OTk2IDMyIDE2IDMyQzcuMTYzNDQgMzIgMCAyNC44MzY2IDAgMTZDMCA3LjE2MzQ0IDcuMTYzNDQgMCAxNiAwWicpfS5nYl9RYXstd2Via2l0LWJvcmRlci1yYWRpdXM6NTAlOy1tb3otYm9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyLXJhZGl1czo1MCU7LXdlYmtpdC1ib3gtc2hhZG93OjBweCAxcHggMnB4IDBweCByZ2JhKDYwLDY0LDY3LC4zMCksMHB4IDFweCAzcHggMXB4IHJnYmEoNjAsNjQsNjcsLjE1KTstbW96LWJveC1zaGFkb3c6MHB4IDFweCAycHggMHB4IHJnYmEoNjAsNjQsNjcsLjMwKSwwcHggMXB4IDNweCAxcHggcmdiYSg2MCw2NCw2NywuMTUpO2JveC1zaGFkb3c6MHB4IDFweCAycHggMHB4IHJnYmEoNjAsNjQsNjcsLjMwKSwwcHggMXB4IDNweCAxcHggcmdiYSg2MCw2NCw2NywuMTUpO21hcmdpbjoycHh9LmdiX1Jhe2ZpbGw6I2Y5YWIwMH0uZ2JfNSAuZ2JfUmF7ZmlsbDojZmRkNjYzfS5nYl9TYT4uZ2JfUmF7ZmlsbDojZDkzMDI1fS5nYl81IC5nYl9TYT4uZ2JfUmF7ZmlsbDojZjI4YjgyfS5nYl9TYT4uZ2JfVGF7ZmlsbDp3aGl0ZX0uZ2JfVGEsLmdiXzUgLmdiX1NhPi5nYl9UYXtmaWxsOiMyMDIxMjR9LmdiX1Vhey13ZWJraXQtYm9yZGVyLXJhZGl1czo1MCU7LW1vei1ib3JkZXItcmFkaXVzOjUwJTtib3JkZXItcmFkaXVzOjUwJTtib3R0b206MnB4O2hlaWdodDoxOHB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjBweDt3aWR0aDoxOHB4fS5nYl9nIC5nYl9JYSwuZ2JfZyAuZ2JfTGF7b3BhY2l0eToxfSNnYiNnYi5nYl9nLmdiX2cgYS5nYl9JYSwjZ2IjZ2IgLmdiX2cuZ2JfZyBhLmdiX0lhe2NvbG9yOiNmZmZ9LmdiX2cuZ2JfZyAuZ2JfTGF7Ym9yZGVyLXRvcC1jb2xvcjojZmZmO29wYWNpdHk6MX0uZ2JfQiAuZ2JfQ2E6aG92ZXIsLmdiX2cgLmdiX0NhOmhvdmVyLC5nYl9CIC5nYl9DYTpmb2N1cywuZ2JfZyAuZ2JfQ2E6Zm9jdXN7LW1vei1ib3gtc2hhZG93OjAgMXB4IDAgcmdiYSgwLDAsMCwuMTUpLDAgMXB4IDJweCByZ2JhKDAsMCwwLC4yKTstd2Via2l0LWJveC1zaGFkb3c6MCAxcHggMCByZ2JhKDAsMCwwLC4xNSksMCAxcHggMnB4IHJnYmEoMCwwLDAsLjIpO2JveC1zaGFkb3c6MCAxcHggMCByZ2JhKDAsMCwwLC4xNSksMCAxcHggMnB4IHJnYmEoMCwwLDAsLjIpfS5nYl9WYSAuZ2JfTmEsLmdiX1dhIC5nYl9OYXtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxcHh9LmdiX05hLmdiX2YsLmdiX1hhLmdiX2YsLmdiX01hLmdiX2Z7LXdlYmtpdC1mbGV4OjAgMSBhdXRvO2ZsZXg6MCAxIGF1dG87LXdlYmtpdC1mbGV4OjAgMSBtYWluLXNpemU7ZmxleDowIDEgbWFpbi1zaXplfS5nYl9aYS5nYl8wYSAuZ2JfSWF7d2lkdGg6MzBweCFpbXBvcnRhbnR9LmdiXzFhe2hlaWdodDo0MHB4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0Oi01cHg7dG9wOi01cHg7d2lkdGg6NDBweH0uZ2JfMmEgLmdiXzFhLC5nYl8zYSAuZ2JfMWF7cmlnaHQ6MDt0b3A6MH0uZ2JfTmEgLmdiX0F7cGFkZGluZzo0cHh9LmdiX2Nle2Rpc3BsYXk6bm9uZX1zZW50aW5lbHt9PC9zdHlsZT48L2hlYWQ+PGJvZHkgZGlyPSJsdHIiIHJvbGU9ImFwcGxpY2F0aW9uIiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9zY2hlbWEub3JnL0NyZWF0aXZlV29yay9GaWxlT2JqZWN0Ij48ZGl2IHN0eWxlPSJkaXNwbGF5Om5vbmUiPjxkaXYgaWQ9Im9uZS1nb29nbGUtYmFyIiBjbGFzcz0ibmRmSEZiLWM0WVpEYy1Xb2FsMGMtamNKenllLVpNdjN1IG5kZkhGYi1jNFlaRGMtbjFVdVgtQnoxMTJjIj48ZGl2IGNsYXNzPSJnYl9wYSBnYl9aZCBnYl8yYSIgaWQ9ImdiIj48ZGl2IGNsYXNzPSJnYl9XZCBnYl9aYSBnYl9MZCIgbmctbm9uLWJpbmRhYmxlPSIiIGRhdGEtb2dzci11cD0iIiBzdHlsZT0icGFkZGluZzowIj48ZGl2IGNsYXNzPSJnYl9TZSIgc3R5bGU9ImRpc3BsYXk6YmxvY2siPjxkaXYgY2xhc3M9ImdiX1RjIj48L2Rpdj48YSBjbGFzcz0iZ2JfMiBnYl8zIGdiXzlkIGdiXzljIiBocmVmPSJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vU2VydmljZUxvZ2luP3NlcnZpY2U9d2lzZSZhbXA7cGFzc2l2ZT0xMjA5NjAwJmFtcDtjb250aW51ZT1odHRwczovL2RyaXZlLmdvb2dsZS5jb20vZmlsZS9kLzE2cXJCNzZnbGh6QXlWU3BUZXBBMkEwdUhtWXN4VzZmQi92aWV3P3VzcCUzRHNoYXJpbmcmYW1wO2ZvbGxvd3VwPWh0dHBzOi8vZHJpdmUuZ29vZ2xlLmNvbS9maWxlL2QvMTZxckI3NmdsaHpBeVZTcFRlcEEyQTB1SG1Zc3hXNmZCL3ZpZXc/dXNwJTNEc2hhcmluZyZhbXA7ZWM9R0FaQUdRIiB0YXJnZXQ9Il90b3AiPklubG9nZ2VuPC9hPjwvZGl2PjwvZGl2PjwvZGl2PjxzY3JpcHQgbm9uY2U9Im1IM3FlaWpaMDd4emQ5YkpGMk1LMFEiPnRoaXMuZ2Jhcl89dGhpcy5nYmFyX3x8e307KGZ1bmN0aW9uKF8pe3ZhciB3aW5kb3c9dGhpczsKdHJ5ewpfLnVlPWZ1bmN0aW9uKGEsYixjKXtpZighYS5vKWlmKGMgaW5zdGFuY2VvZiBBcnJheSl7Yz1fLmpiKGMpO2Zvcih2YXIgZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpXy51ZShhLGIsZC52YWx1ZSl9ZWxzZXtkPSgwLF8ueikoYS5GLGEsYik7dmFyIGU9YS5CK2M7YS5CKys7Yi5zZXRBdHRyaWJ1dGUoImRhdGEtZXFpZCIsZSk7YS5EW2VdPWQ7YiYmYi5hZGRFdmVudExpc3RlbmVyP2IuYWRkRXZlbnRMaXN0ZW5lcihjLGQsITEpOmImJmIuYXR0YWNoRXZlbnQ/Yi5hdHRhY2hFdmVudCgib24iK2MsZCk6YS5BLmxvZyhFcnJvcigiRWAiK2IpKX19OwoKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy52ZT1mdW5jdGlvbigpe2lmKCFfLm4uYWRkRXZlbnRMaXN0ZW5lcnx8IU9iamVjdC5kZWZpbmVQcm9wZXJ0eSlyZXR1cm4hMTt2YXIgYT0hMSxiPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwicGFzc2l2ZSIse2dldDpmdW5jdGlvbigpe2E9ITB9fSk7dHJ5e18ubi5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IixmdW5jdGlvbigpe30sYiksXy5uLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLGZ1bmN0aW9uKCl7fSxiKX1jYXRjaChjKXt9cmV0dXJuIGF9KCk7Cl8ud2U9Xy5QYj8id2Via2l0VHJhbnNpdGlvbkVuZCI6InRyYW5zaXRpb25lbmQiOwoKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIHhlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5nYl96IC5nYl9BIikseWU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2diLmdiX0tjIik7eGUmJiF5ZSYmXy51ZShfLmxlLHhlLCJjbGljayIpOwoKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIGhpPWZ1bmN0aW9uKGEpe18uSS5jYWxsKHRoaXMpO3RoaXMuQz1hO3RoaXMuQT1udWxsO3RoaXMubz17fTt0aGlzLkQ9e307dGhpcy5qPXt9O3RoaXMuQj1udWxsfTtfLncoaGksXy5JKTtfLmlpPWZ1bmN0aW9uKGEpe2lmKGEuQSlyZXR1cm4gYS5BO2Zvcih2YXIgYiBpbiBhLmopaWYoYS5qW2JdLk9lKCkmJmEualtiXS5LYigpKXJldHVybiBhLmpbYl07cmV0dXJuIG51bGx9O18uaz1oaS5wcm90b3R5cGU7Xy5rLm1mPWZ1bmN0aW9uKGEpe2EmJl8uaWkodGhpcykmJmEhPV8uaWkodGhpcykmJl8uaWkodGhpcykuSmQoITEpO3RoaXMuQT1hfTtfLmsubmc9ZnVuY3Rpb24oYSl7YT10aGlzLmpbYV18fGE7cmV0dXJuIF8uaWkodGhpcyk9PWF9O18uay55ZT1mdW5jdGlvbihhLGIpe2I9Yi5SYygpO2lmKHRoaXMub1thXSYmdGhpcy5vW2FdW2JdKWZvcih2YXIgYz0wO2M8dGhpcy5vW2FdW2JdLmxlbmd0aDtjKyspdHJ5e3RoaXMub1thXVtiXVtjXSgpfWNhdGNoKGQpe3RoaXMuQy5sb2coZCl9fTsKXy5rLkFoPWZ1bmN0aW9uKGEpe3JldHVybiF0aGlzLkRbYS5SYygpXX07Xy5rLkdnPWZ1bmN0aW9uKGEpe3RoaXMualthXSYmKF8uaWkodGhpcykmJl8uaWkodGhpcykuUmMoKT09YXx8dGhpcy5qW2FdLkpkKCEwKSl9O18uay5XYT1mdW5jdGlvbihhKXt0aGlzLkI9YTtmb3IodmFyIGIgaW4gdGhpcy5qKXRoaXMualtiXS5PZSgpJiZ0aGlzLmpbYl0uV2EoYSl9O18uay5oZj1mdW5jdGlvbihhKXt0aGlzLmpbYS5SYygpXT1hfTtfLmsuSWM9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW4gdGhpcy5qP3RoaXMualthXTpudWxsfTt2YXIgamk9bmV3IGhpKF8uSyk7Xy5MZCgiZGQiLGppKTsKCn1jYXRjaChlKXtfLl9EdW1wRXhjZXB0aW9uKGUpfQp0cnl7CnZhciBLaj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuZ2JfTmEgLmdiX0EiKSxMaj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjZ2IuZ2JfS2MiKTtLaiYmIUxqJiZfLnVlKF8ubGUsS2osImNsaWNrIik7Cgp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KfSkodGhpcy5nYmFyXyk7Ci8vIEdvb2dsZSBJbmMuCjwvc2NyaXB0PjwvZGl2PjwvZGl2PjxtZXRhIGl0ZW1wcm9wPSJuYW1lIiBjb250ZW50PSJwYXN0ZWQgaW1hZ2UgMC5wbmciPjxtZXRhIGl0ZW1wcm9wPSJmYXZpY29uVXJsIiBjb250ZW50PSJodHRwczovL3NzbC5nc3RhdGljLmNvbS9pbWFnZXMvYnJhbmRpbmcvcHJvZHVjdC8xeC9kcml2ZV8yMDIwcTRfMzJkcC5wbmciPjxtZXRhIGl0ZW1wcm9wPSJ1cmwiIGNvbnRlbnQ9Imh0dHBzOi8vZHJpdmUuZ29vZ2xlLmNvbS9maWxlL2QvMTZxckI3NmdsaHpBeVZTcFRlcEEyQTB1SG1Zc3hXNmZCL3ZpZXc/dXNwPXNoYXJpbmcmYW1wO3VzcD1lbWJlZF9nb29nbGVwbHVzIj48ZGl2IG5nLW5vbi1iaW5kYWJsZT0iIj48L2Rpdj48c2NyaXB0IG5vbmNlPSJtSDNxZWlqWjA3eHpkOWJKRjJNSzBRIj50aGlzLmdiYXJfPXRoaXMuZ2Jhcl98fHt9OyhmdW5jdGlvbihfKXt2YXIgd2luZG93PXRoaXM7CnRyeXsKXy56ZT1mdW5jdGlvbihhLGIpe3JldHVybiAwPD0oMCxfLkZiKShhLGIpfTtfLkFlPWZ1bmN0aW9uKGEpe3ZhciBiPXR5cGVvZiBhO3JldHVybiJvYmplY3QiIT1iP2I6YT9BcnJheS5pc0FycmF5KGEpPyJhcnJheSI6YjoibnVsbCJ9O18uQmU9ZnVuY3Rpb24oYSl7dmFyIGI9Xy5BZShhKTtyZXR1cm4iYXJyYXkiPT1ifHwib2JqZWN0Ij09YiYmIm51bWJlciI9PXR5cGVvZiBhLmxlbmd0aH07Xy5DZT1mdW5jdGlvbihhLGIpe3ZhciBjPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZD1jLnNsaWNlKCk7ZC5wdXNoLmFwcGx5KGQsYXJndW1lbnRzKTtyZXR1cm4gYS5hcHBseSh0aGlzLGQpfX07CnRyeXsobmV3IHNlbGYuT2Zmc2NyZWVuQ2FudmFzKDAsMCkpLmdldENvbnRleHQoIjJkIil9Y2F0Y2goYSl7fV8uRGU9Xy5DfHxfLlBiOwpfLkVlPWZ1bmN0aW9uKGEsYil7dGhpcy53aWR0aD1hO3RoaXMuaGVpZ2h0PWJ9O18uaz1fLkVlLnByb3RvdHlwZTtfLmsuYXNwZWN0UmF0aW89ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53aWR0aC90aGlzLmhlaWdodH07Xy5rLmhjPWZ1bmN0aW9uKCl7cmV0dXJuISh0aGlzLndpZHRoKnRoaXMuaGVpZ2h0KX07Xy5rLmNlaWw9ZnVuY3Rpb24oKXt0aGlzLndpZHRoPU1hdGguY2VpbCh0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLmNlaWwodGhpcy5oZWlnaHQpO3JldHVybiB0aGlzfTtfLmsuZmxvb3I9ZnVuY3Rpb24oKXt0aGlzLndpZHRoPU1hdGguZmxvb3IodGhpcy53aWR0aCk7dGhpcy5oZWlnaHQ9TWF0aC5mbG9vcih0aGlzLmhlaWdodCk7cmV0dXJuIHRoaXN9O18uay5yb3VuZD1mdW5jdGlvbigpe3RoaXMud2lkdGg9TWF0aC5yb3VuZCh0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLnJvdW5kKHRoaXMuaGVpZ2h0KTtyZXR1cm4gdGhpc307CnZhciBHZSxKZTtfLkZlPWZ1bmN0aW9uKGEsYil7cmV0dXJuKGJ8fGRvY3VtZW50KS5nZXRFbGVtZW50c0J5VGFnTmFtZShTdHJpbmcoYSkpfTtfLkhlPWZ1bmN0aW9uKGEsYil7Xy5hYihiLGZ1bmN0aW9uKGMsZCl7YyYmIm9iamVjdCI9PXR5cGVvZiBjJiZjLlFiJiYoYz1jLndiKCkpOyJzdHlsZSI9PWQ/YS5zdHlsZS5jc3NUZXh0PWM6ImNsYXNzIj09ZD9hLmNsYXNzTmFtZT1jOiJmb3IiPT1kP2EuaHRtbEZvcj1jOkdlLmhhc093blByb3BlcnR5KGQpP2Euc2V0QXR0cmlidXRlKEdlW2RdLGMpOjA9PWQubGFzdEluZGV4T2YoImFyaWEtIiwwKXx8MD09ZC5sYXN0SW5kZXhPZigiZGF0YS0iLDApP2Euc2V0QXR0cmlidXRlKGQsYyk6YVtkXT1jfSl9OwpHZT17Y2VsbHBhZGRpbmc6ImNlbGxQYWRkaW5nIixjZWxsc3BhY2luZzoiY2VsbFNwYWNpbmciLGNvbHNwYW46ImNvbFNwYW4iLGZyYW1lYm9yZGVyOiJmcmFtZUJvcmRlciIsaGVpZ2h0OiJoZWlnaHQiLG1heGxlbmd0aDoibWF4TGVuZ3RoIixub25jZToibm9uY2UiLHJvbGU6InJvbGUiLHJvd3NwYW46InJvd1NwYW4iLHR5cGU6InR5cGUiLHVzZW1hcDoidXNlTWFwIix2YWxpZ246InZBbGlnbiIsd2lkdGg6IndpZHRoIn07Xy5LZT1mdW5jdGlvbihhLGIpe3ZhciBjPWJbMV0sZD1fLkllKGEsU3RyaW5nKGJbMF0pKTtjJiYoInN0cmluZyI9PT10eXBlb2YgYz9kLmNsYXNzTmFtZT1jOkFycmF5LmlzQXJyYXkoYyk/ZC5jbGFzc05hbWU9Yy5qb2luKCIgIik6Xy5IZShkLGMpKTsyPGIubGVuZ3RoJiZKZShhLGQsYik7cmV0dXJuIGR9OwpKZT1mdW5jdGlvbihhLGIsYyl7ZnVuY3Rpb24gZChoKXtoJiZiLmFwcGVuZENoaWxkKCJzdHJpbmciPT09dHlwZW9mIGg/YS5jcmVhdGVUZXh0Tm9kZShoKTpoKX1mb3IodmFyIGU9MjtlPGMubGVuZ3RoO2UrKyl7dmFyIGY9Y1tlXTtpZighXy5CZShmKXx8Xy53YihmKSYmMDxmLm5vZGVUeXBlKWQoZik7ZWxzZXthOntpZihmJiYibnVtYmVyIj09dHlwZW9mIGYubGVuZ3RoKXtpZihfLndiKGYpKXt2YXIgZz0iZnVuY3Rpb24iPT10eXBlb2YgZi5pdGVtfHwic3RyaW5nIj09dHlwZW9mIGYuaXRlbTticmVhayBhfWlmKCJmdW5jdGlvbiI9PT10eXBlb2YgZil7Zz0iZnVuY3Rpb24iPT10eXBlb2YgZi5pdGVtO2JyZWFrIGF9fWc9ITF9Xy5HYihnP18ubWEoZik6ZixkKX19fTtfLkxlPWZ1bmN0aW9uKGEpe3JldHVybiBfLkllKGRvY3VtZW50LGEpfTsKXy5JZT1mdW5jdGlvbihhLGIpe2I9U3RyaW5nKGIpOyJhcHBsaWNhdGlvbi94aHRtbCt4bWwiPT09YS5jb250ZW50VHlwZSYmKGI9Yi50b0xvd2VyQ2FzZSgpKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KGIpfTtfLk1lPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYjtiPWEuZmlyc3RDaGlsZDspYS5yZW1vdmVDaGlsZChiKX07Xy5OZT1mdW5jdGlvbihhKXtyZXR1cm4gXy53YihhKSYmMT09YS5ub2RlVHlwZX07Xy5PZT1mdW5jdGlvbihhKXtyZXR1cm4gOT09YS5ub2RlVHlwZT9hOmEub3duZXJEb2N1bWVudHx8YS5kb2N1bWVudH07Xy5QZT1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wO2E7KXtpZihiKGEpKXJldHVybiBhO2E9YS5wYXJlbnROb2RlO2MrK31yZXR1cm4gbnVsbH07Cgp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLmNmPWZ1bmN0aW9uKGEpe3JldHVybi9eW1xzXHhhMF0qJC8udGVzdChhKX07Xy5kZj1mdW5jdGlvbihhKXtfLkguY2FsbCh0aGlzLGEpfTtfLncoXy5kZixfLkgpO18uZWY9ZnVuY3Rpb24oYSl7cmV0dXJuIF8uTmQoXy5KZC5qKCksYSl9OwoKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIFBqLFFqO1BqPS9eKFtePyNdKikoXD9bXiNdKik/KCNbXHNcU10qKT8vO1FqPWZ1bmN0aW9uKGEsYixjKXtpZihudWxsPT1jKXJldHVybiBiO2lmKCJzdHJpbmciPT09dHlwZW9mIGMpcmV0dXJuIGM/YStlbmNvZGVVUklDb21wb25lbnQoYyk6IiI7Zm9yKHZhciBkIGluIGMpaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGMsZCkpe3ZhciBlPWNbZF07ZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdO2Zvcih2YXIgZj0wO2Y8ZS5sZW5ndGg7ZisrKXt2YXIgZz1lW2ZdO251bGwhPWcmJihifHwoYj1hKSxiKz0oYi5sZW5ndGg+YS5sZW5ndGg/IiYiOiIiKStlbmNvZGVVUklDb21wb25lbnQoZCkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoZykpKX19cmV0dXJuIGJ9O18uUmo9ZnVuY3Rpb24oYSxiKXthPVBqLmV4ZWMoXy5hZChhKSk7dmFyIGM9YVszXXx8IiI7cmV0dXJuIF8uYmQoYVsxXStRaigiPyIsYVsyXXx8IiIsYikrUWooIiMiLGMpKX07Cgp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewpfLlNqPWZ1bmN0aW9uKGEsYixjKXthLnJlbD1jOy0xIT1jLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigic3R5bGVzaGVldCIpPyhhLmhyZWY9Xy5hZChiKSwoYj1fLkFkKGEub3duZXJEb2N1bWVudCYmYS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3KSkmJmEuc2V0QXR0cmlidXRlKCJub25jZSIsYikpOmEuaHJlZj1iIGluc3RhbmNlb2YgXy5aYz9fLmFkKGIpOmIgaW5zdGFuY2VvZiBfLmRkP18uZWQoYik6Xy5lZChfLmtkKGIpKX07Cgp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KdHJ5ewovKgoKIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wCiovCnZhciBUajt0cnl7bmV3IFVSTCgiczovL2ciKSxUaj0hMH1jYXRjaChhKXtUaj0hMX1fLlVqPVRqOwoKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKXy5Waj1mdW5jdGlvbihhKXt2YXIgYixjLGQ9bnVsbD09KGM9KGI9KGEub3duZXJEb2N1bWVudCYmYS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHx3aW5kb3cpLmRvY3VtZW50KS5xdWVyeVNlbGVjdG9yKT92b2lkIDA6Yy5jYWxsKGIsInNjcmlwdFtub25jZV0iKTsoYj1kP2Qubm9uY2V8fGQuZ2V0QXR0cmlidXRlKCJub25jZSIpfHwiIjoiIikmJmEuc2V0QXR0cmlidXRlKCJub25jZSIsYil9OwoKfWNhdGNoKGUpe18uX0R1bXBFeGNlcHRpb24oZSl9CnRyeXsKdmFyIFdqPWZ1bmN0aW9uKGEsYixjKXtfLmtlLmxvZyg0Nix7YXR0OmEsbWF4OmIsdXJsOmN9KX0sWWo9ZnVuY3Rpb24oYSxiLGMpe18ua2UubG9nKDQ3LHthdHQ6YSxtYXg6Yix1cmw6Y30pO2E8Yj9YaihhKzEsYik6Xy5LLmxvZyhFcnJvcigiaGFgIithKyJgIitiKSx7dXJsOmN9KX0sWGo9ZnVuY3Rpb24oYSxiKXtpZihaail7dmFyIGM9Xy5MZSgiU0NSSVBUIik7Yy5hc3luYz0hMDtjLnR5cGU9InRleHQvamF2YXNjcmlwdCI7Yy5jaGFyc2V0PSJVVEYtOCI7Yy5zcmM9Xy4kYyhaaik7Xy5WaihjKTtjLm9ubG9hZD1fLkNlKFdqLGEsYixjLnNyYyk7Yy5vbmVycm9yPV8uQ2UoWWosYSxiLGMuc3JjKTtfLmtlLmxvZyg0NSx7YXR0OmEsbWF4OmIsdXJsOmMuc3JjfSk7Xy5GZSgiSEVBRCIpWzBdLmFwcGVuZENoaWxkKGMpfX0sYWs9ZnVuY3Rpb24oYSl7Xy5ILmNhbGwodGhpcyxhKX07Xy53KGFrLF8uSCk7CnZhciBiaz1fLkYoXy5nZSxhaywxNyl8fG5ldyBhayxjayxaaj0oY2s9Xy5GKGJrLF8uSWMsMSkpP18uYmQoXy5EKGNrLDQpfHwiIik6bnVsbCxkayxlaz0oZGs9Xy5GKGJrLF8uSWMsMikpP18uYmQoXy5EKGRrLDQpfHwiIik6bnVsbCxmaz1mdW5jdGlvbigpe1hqKDEsMik7aWYoZWspe3ZhciBhPV8uTGUoIkxJTksiKTthLnNldEF0dHJpYnV0ZSgidHlwZSIsInRleHQvY3NzIik7Xy5TaihhLGVrLCJzdHlsZXNoZWV0Iik7dmFyIGI9Xy5BZCgpO2ImJmEuc2V0QXR0cmlidXRlKCJub25jZSIsYik7Xy5GZSgiSEVBRCIpWzBdLmFwcGVuZENoaWxkKGEpfX07CihmdW5jdGlvbigpe3ZhciBhPV8uaGUoKTtpZihfLkUoYSwxOCkpZmsoKTtlbHNle3ZhciBiPV8uRChhLDE5KXx8MDt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXt3aW5kb3cuc2V0VGltZW91dChmayxiKX0pfX0pKCk7Cgp9Y2F0Y2goZSl7Xy5fRHVtcEV4Y2VwdGlvbihlKX0KfSkodGhpcy5nYmFyXyk7Ci8vIEdvb2dsZSBJbmMuCjwvc2NyaXB0PjxzY3JpcHQgaWQ9ImJhc2UtanMiIGFzeW5jIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nc3RhdGljLmNvbS9fL2FwcHMtZmlsZXZpZXcvXy9qcy9rPWFwcHMtZmlsZXZpZXcudi5ubC5vUlBrLUNYQVY5NC5PL2FtPUFCQS9kPTEvcnM9QU8wMDM5c0NJXzZxSmllWmJlbUU4WVFZdTJSZXR5X044dy9tPXYsd2IiIG5vbmNlPSJtSDNxZWlqWjA3eHpkOWJKRjJNSzBRIj48L3NjcmlwdD48L2JvZHk+PC9odG1sPg==