PCFkb2N0eXBlIGh0bWw+CjxodG1sPgo8aGVhZD4KCTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KCTxtZXRhIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9ZWRnZSI+Cgk8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CgoJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3MvdmVuZG9yL2ZsdWlkYm94Lm1pbi5jc3MiPgoJPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5mbHVpZGJveHtvdXRsaW5lOjB9LmhpZGRlbntkaXNwbGF5Om5vbmV9LmZsdWlkYm94LW92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC44NSk7Y3Vyc29yOnBvaW50ZXI7Y3Vyc29yOi13ZWJraXQtem9vbS1vdXQ7Y3Vyc29yOi1tb3otem9vbS1vdXQ7b3BhY2l0eTowO3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDtib3R0b206MDtyaWdodDowO3RyYW5zaXRpb246YWxsIC4yNXMgZWFzZS1pbi1vdXR9LmZsdWlkYm94LXdyYXB7YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXIgY2VudGVyO2JhY2tncm91bmQtc2l6ZTpjb3ZlcjttYXJnaW46MCBhdXRvO3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zaXRpb246YWxsIC4yNXMgZWFzZS1pbi1vdXR9LmZsdWlkYm94LWdob3N0e2JhY2tncm91bmQtc2l6ZTpjb3ZlcjtiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNpdGlvbjphbGwgLjI1cyBlYXNlLWluLW91dH0uZmx1aWRib3gtY2xvc2VkIC5mbHVpZGJveC1naG9zdHstd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6dG9wLGxlZnQsb3BhY2l0eSwtd2Via2l0LXRyYW5zZm9ybTstbW96LXRyYW5zaXRpb24tcHJvcGVydHk6dG9wLGxlZnQsb3BhY2l0eSwtbW96LXRyYW5zZm9ybTstby10cmFuc2l0aW9uLXByb3BlcnR5OnRvcCxsZWZ0LG9wYWNpdHksLW8tdHJhbnNmb3JtO3RyYW5zaXRpb24tcHJvcGVydHk6dG9wLGxlZnQsb3BhY2l0eSx0cmFuc2Zvcm07dHJhbnNpdGlvbi1kZWxheTowLDAsLjI1cywwfS5mbHVpZGJveC1jbG9zZWQgLmZsdWlkYm94LXdyYXAgaW1ne3RyYW5zaXRpb24tcHJvcGVydHk6b3BhY2l0eTt0cmFuc2l0aW9uLWRlbGF5Oi4yNXM7dHJhbnNpdGlvbi1kdXJhdGlvbjowc30KCQoJPC9zdHlsZT4KCTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CglodG1sLCBib2R5LCBkaXYsIHNwYW4sIG9iamVjdCwgaWZyYW1lLApoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBwcmUsCmFiYnIsIGFkZHJlc3MsIGNpdGUsIGNvZGUsCmRlbCwgZGZuLCBlbSwgaW1nLCBpbnMsIGtiZCwgcSwgc2FtcCwKc21hbGwsIHN0cm9uZywgc3ViLCBzdXAsIHZhciwKYiwgaSwKZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSwKZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsCnRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLAphcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBmaWdjYXB0aW9uLCBmaWd1cmUsCmZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1lbnUsIG5hdiwgc2VjdGlvbiwgc3VtbWFyeSwKdGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHsKICBtYXJnaW46IDA7CiAgcGFkZGluZzogMDsKICBib3JkZXI6IDA7CiAgb3V0bGluZTogMDsKICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7CiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Cn0KCmh0bWwsIGJvZHkgewogIGZvbnQtc2l6ZTogMTAwJTsKfQoKYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbmF2LCBzZWN0aW9uIHsKICBkaXNwbGF5OiBibG9jazsKfQoKYXVkaW8sIGNhbnZhcywgdmlkZW8gewogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKfQoKYXVkaW86bm90KFtjb250cm9sc10pIHsKICBkaXNwbGF5OiBub25lOwp9CgpbaGlkZGVuXSB7CiAgZGlzcGxheTogbm9uZTsKfQoKaHRtbCB7CiAgZm9udC1zaXplOiAxMDAlOwogIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsKICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsKfQoKaHRtbCwgYnV0dG9uLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSB7CiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7Cn0KCmE6Zm9jdXMgewogIG91dGxpbmU6IHRoaW4gZG90dGVkOwogIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjsKICBvdXRsaW5lLW9mZnNldDogLTJweDsKfQphOmhvdmVyLCBhOmFjdGl2ZSB7CiAgb3V0bGluZTogMDsKfQoKYWJiclt0aXRsZV0gewogIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7Cn0KCmIsIHN0cm9uZyB7CiAgZm9udC13ZWlnaHQ6IGJvbGQ7Cn0KCmJsb2NrcXVvdGUgewogIG1hcmdpbjogMWVtIDQwcHg7Cn0KCmRmbiB7CiAgZm9udC1zdHlsZTogaXRhbGljOwp9CgptYXJrIHsKICBiYWNrZ3JvdW5kOiAjZmYwOwogIGNvbG9yOiAjMDAwOwp9CgpwcmUsIGNvZGUsIGtiZCwgc2FtcCB7CiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgc2VyaWY7CiAgX2ZvbnQtZmFtaWx5OiAnY291cmllciBuZXcnLCBtb25vc3BhY2U7CiAgZm9udC1zaXplOiAxZW07Cn0KCnByZSB7CiAgd2hpdGUtc3BhY2U6IHByZTsKICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgd29yZC13cmFwOiBicmVhay13b3JkOwp9CgpibG9ja3F1b3RlLCBxIHsKICBxdW90ZXM6IG5vbmU7Cn0KYmxvY2txdW90ZTpiZWZvcmUsIGJsb2NrcXVvdGU6YWZ0ZXIsIHE6YmVmb3JlLCBxOmFmdGVyIHsKICBjb250ZW50OiAnJzsKICBjb250ZW50OiBub25lOwp9CgpzbWFsbCB7CiAgZm9udC1zaXplOiA3NSU7Cn0KCnN1Yiwgc3VwIHsKICBmb250LXNpemU6IDc1JTsKICBsaW5lLWhlaWdodDogMDsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOwp9CgpzdXAgewogIHRvcDogLTAuNWVtOwp9CgpzdWIgewogIGJvdHRvbTogLTAuMjVlbTsKfQoKbmF2IHVsLCBuYXYgb2wgewogIGxpc3Qtc3R5bGU6IG5vbmU7CiAgbGlzdC1zdHlsZS1pbWFnZTogbm9uZTsKfQoKaW1nIHsKICBib3JkZXI6IDA7CiAgaGVpZ2h0OiBhdXRvOwogIG1heC13aWR0aDogMTAwJTsKICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljOwp9Cgpzdmc6bm90KDpyb290KSB7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKfQoKZmllbGRzZXQgewogIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7CiAgbWFyZ2luOiAwIDJweDsKICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07Cn0KCmxlZ2VuZCB7CiAgYm9yZGVyOiAwOwogIHBhZGRpbmc6IDA7CiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsKfQoKYnV0dG9uLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSB7CiAgZm9udC1zaXplOiAxMDAlOwogIG1hcmdpbjogMDsKICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7Cn0KCmJ1dHRvbiwgaW5wdXQgewogIGxpbmUtaGVpZ2h0OiBub3JtYWw7Cn0KCmJ1dHRvbiwgaW5wdXRbdHlwZT0iYnV0dG9uIl0sIGlucHV0W3R5cGU9InJlc2V0Il0sIGlucHV0W3R5cGU9InN1Ym1pdCJdIHsKICBjdXJzb3I6IHBvaW50ZXI7CiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247Cn0KCmJ1dHRvbltkaXNhYmxlZF0sIGlucHV0W2Rpc2FibGVkXSB7CiAgY3Vyc29yOiBkZWZhdWx0Owp9CgppbnB1dFt0eXBlPSJjaGVja2JveCJdLCBpbnB1dFt0eXBlPSJyYWRpbyJdIHsKICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIHBhZGRpbmc6IDA7Cn0KCmlucHV0W3R5cGU9InNlYXJjaCJdIHsKICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsKICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94OwogIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7CiAgYm94LXNpemluZzogY29udGVudC1ib3g7Cn0KCmlucHV0W3R5cGU9InNlYXJjaCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLCBpbnB1dFt0eXBlPSJzZWFyY2giXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiB7CiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwp9CgpidXR0b246Oi1tb3otZm9jdXMtaW5uZXIsIGlucHV0OjotbW96LWZvY3VzLWlubmVyIHsKICBib3JkZXI6IDA7CiAgcGFkZGluZzogMDsKfQoKdGV4dGFyZWEgewogIG92ZXJmbG93OiBhdXRvOwogIHZlcnRpY2FsLWFsaWduOiB0b3A7Cn0KCnRhYmxlIHsKICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogIGJvcmRlci1zcGFjaW5nOiAwOwp9CgovKiBOZWF0IDEuNy4wCiAqIGh0dHA6Ly9uZWF0LmJvdXJib24uaW8KICogQ29weXJpZ2h0IDIwMTItMjAxNCB0aG91Z2h0Ym90LCBpbmMuCiAqIE1JVCBMaWNlbnNlICovCmh0bWwgewogIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoKKiwgKjpiZWZvcmUsICo6YWZ0ZXIgewogIC13ZWJraXQtYm94LXNpemluZzogaW5oZXJpdDsKICAtbW96LWJveC1zaXppbmc6IGluaGVyaXQ7CiAgYm94LXNpemluZzogaW5oZXJpdDsKfQoKYm9keSB7CiAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6ICJrZXJuIiwgImxpZ2EiLCAiZnJhYyIsICJwbnVtIjsKICAtbW96LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogImtlcm4iLCAibGlnYSIsICJmcmFjIiwgInBudW0iOwogIC1tcy1mb250LWZlYXR1cmUtc2V0dGluZ3M6ICJrZXJuIiwgImxpZ2EiLCAiZnJhYyIsICJwbnVtIjsKICBmb250LWZlYXR1cmUtc2V0dGluZ3M6ICJrZXJuIiwgImxpZ2EiLCAiZnJhYyIsICJwbnVtIjsKICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OwogIGJhY2tncm91bmQtY29sb3I6ICMyMjI3MmE7CiAgY29sb3I6ICNjZWQ5ZTA7CiAgZm9udC1mYW1pbHk6ICJmb250LWZhbWlseTogIiBIZWx2ZXRpY2EgTmV1ZSAiLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmIjsKICBmb250LXNpemU6IDFlbTsKICBsaW5lLWhlaWdodDogMS41Owp9CgpoMSwKaDIsCmgzLApoNCwKaDUsCmg2IHsKICBmb250LWZhbWlseTogImZvbnQtZmFtaWx5OiAiIEhlbHZldGljYSBOZXVlICIsSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWYiOwogIGxpbmUtaGVpZ2h0OiAxLjI1OwogIG1hcmdpbjogMDsKICBjb2xvcjogI2ZmZjsKfQoKaDEgewogIGZvbnQtc2l6ZTogMi4yNWVtOwp9CgpoMiB7CiAgZm9udC1zaXplOiAyZW07Cn0KCmgzIHsKICBmb250LXNpemU6IDEuNzVlbTsKfQoKaDQgewogIGZvbnQtc2l6ZTogMS41ZW07Cn0KCmg1IHsKICBmb250LXNpemU6IDEuMjVlbTsKfQoKaDYgewogIGZvbnQtc2l6ZTogMWVtOwp9CgpwIHsKICBtYXJnaW46IDAgMCAwLjc1ZW07CiAgZm9udC1mYW1pbHk6ICJmb250LWZhbWlseTogIiBIZWx2ZXRpY2EgTmV1ZSAiLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmIjsKfQoKYSB7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiBjb2xvciAwLjFzIGxpbmVhcjsKICAtbW96LXRyYW5zaXRpb246IGNvbG9yIDAuMXMgbGluZWFyOwogIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgbGluZWFyOwogIGNvbG9yOiAjY2VkOWUwOwogIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKfQphOmhvdmVyIHsKICBjb2xvcjogIzlmYjVjMjsKICBib3JkZXItY29sb3I6ICM5ZmI1YzI7Cn0KYTphY3RpdmUsIGE6Zm9jdXMgewogIGNvbG9yOiAjOWZiNWMyOwogIGJvcmRlci1jb2xvcjogIzlmYjVjMjsKICBvdXRsaW5lOiBub25lOwp9CgpoZWFkZXIgewogIGNvbG9yOiAjZmZmOwp9CgpociB7CiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7CiAgYm9yZGVyLWxlZnQ6IG5vbmU7CiAgYm9yZGVyLXJpZ2h0OiBub25lOwogIGJvcmRlci10b3A6IG5vbmU7CiAgbWFyZ2luOiAxLjVlbSAwOwp9CgppbWcsCnBpY3R1cmUgewogIG1hcmdpbjogMDsKICBtYXgtd2lkdGg6IDEwMCU7Cn0KCmJsb2NrcXVvdGUgewogIGJvcmRlci1sZWZ0OiAycHggc29saWQgI2RkZDsKICBjb2xvcjogI2ZkZmRmZTsKICBtYXJnaW46IDEuNWVtIDA7CiAgcGFkZGluZy1sZWZ0OiAwLjc1ZW07Cn0KCmNpdGUgewogIGNvbG9yOiB3aGl0ZTsKICBmb250LXN0eWxlOiBpdGFsaWM7Cn0KY2l0ZTpiZWZvcmUgewogIGNvbnRlbnQ6ICJcMjAxNCBcMDBBMCI7Cn0KCmJvZHkgewogIHBhZGRpbmctbGVmdDogMWVtOwogIHBhZGRpbmctcmlnaHQ6IDFlbTsKfQoKYSB7CiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjZWQ5ZTA7Cn0KCmE6aG92ZXIgewogIGNvbG9yOiAjZTg1MTUxOwp9CgpoZWFkZXIgewogIG1heC13aWR0aDogNjhlbTsKICBtYXJnaW4tbGVmdDogYXV0bzsKICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgbWFyZ2luLXRvcDogNGVtOwogIGJvcmRlci10b3A6IDJweCBzb2xpZCAjZTg1MTUxOwogIG9wYWNpdHk6IDA7CiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTBweCk7CiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTBweCk7CiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MHB4KTsKICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTBweCk7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwcHgpOwogIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDEyMDBtcyBlYXNlOwogIC1tb3otdHJhbnNpdGlvbjogYWxsIDEyMDBtcyBlYXNlOwogIHRyYW5zaXRpb246IGFsbCAxMjAwbXMgZWFzZTsKICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IDUwbXM7CiAgLW1vei10cmFuc2l0aW9uLWRlbGF5OiA1MG1zOwogIHRyYW5zaXRpb24tZGVsYXk6IDUwbXM7Cn0KaGVhZGVyOmFmdGVyIHsKICBjb250ZW50OiAiIjsKICBkaXNwbGF5OiB0YWJsZTsKICBjbGVhcjogYm90aDsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NDBweCkgewogIGhlYWRlciB7CiAgICBtYXJnaW4tdG9wOiAyZW07CiAgfQp9CmhlYWRlciAjbG9nby1jb250YWluZXIgewogIGZsb2F0OiBsZWZ0OwogIGRpc3BsYXk6IGJsb2NrOwogIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7CiAgd2lkdGg6IDQ4LjgyMTE3JTsKfQpoZWFkZXIgI2xvZ28tY29udGFpbmVyOmxhc3QtY2hpbGQgewogIG1hcmdpbi1yaWdodDogMDsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NDBweCkgewogIGhlYWRlciAjbG9nby1jb250YWluZXIgewogICAgZmxvYXQ6IGxlZnQ7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIG1hcmdpbi1yaWdodDogNy40MjI5NyU7CiAgICB3aWR0aDogMTAwJTsKICB9CiAgaGVhZGVyICNsb2dvLWNvbnRhaW5lcjpsYXN0LWNoaWxkIHsKICAgIG1hcmdpbi1yaWdodDogMDsKICB9Cn0KaGVhZGVyICNsb2dvLWNvbnRhaW5lciAjbG9nbyB7CiAgcGFkZGluZy10b3A6IDAuNWVtOwogIGZvbnQtd2VpZ2h0OiBib2xkOwogIGZvbnQtc2l6ZTogNDhweDsKICBsaW5lLWhlaWdodDogNjBweDsKICBsZXR0ZXItc3BhY2luZzogLTAuMDVlbTsKICBmbG9hdDogbm9uZTsKfQpoZWFkZXIgI2xvZ28tY29udGFpbmVyICNzdWJ0aXRsZSB7CiAgY29sb3I6ICNlODUxNTE7CiAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgZm9udC1zaXplOiAxOHB4Owp9CmhlYWRlciBhIHsKICBjb2xvcjogI2U4NTE1MTsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgYm9yZGVyOiBub25lOwp9CmhlYWRlciBhOmhvdmVyIHsKICBjb2xvcjogI2QxMWMxYzsKICBib3JkZXItY29sb3I6ICNkMTFjMWM7Cn0KaGVhZGVyIGE6YWN0aXZlLCBoZWFkZXIgYTpmb2N1cyB7CiAgY29sb3I6ICNkMTFjMWM7CiAgYm9yZGVyLWNvbG9yOiAjZDExYzFjOwp9CmhlYWRlciBuYXYgewogIHRleHQtYWxpZ246IHJpZ2h0OwogIGZsb2F0OiBsZWZ0OwogIGRpc3BsYXk6IGJsb2NrOwogIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7CiAgd2lkdGg6IDc0LjQxMDU5JTsKfQpoZWFkZXIgbmF2Omxhc3QtY2hpbGQgewogIG1hcmdpbi1yaWdodDogMDsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NDBweCkgewogIGhlYWRlciBuYXYgewogICAgdGV4dC1hbGlnbjogbGVmdDsKICAgIG1hcmdpbi10b3A6IDFlbTsKICAgIGZsb2F0OiBsZWZ0OwogICAgZGlzcGxheTogYmxvY2s7CiAgICBtYXJnaW4tcmlnaHQ6IDcuNDIyOTclOwogICAgd2lkdGg6IDEwMCU7CiAgfQogIGhlYWRlciBuYXY6bGFzdC1jaGlsZCB7CiAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgfQp9CmhlYWRlciBuYXYgdWwgewogIHBhZGRpbmctdG9wOiAwLjVlbTsKICBsaW5lLWhlaWdodDogNjBweDsKfQpoZWFkZXIgbmF2IHVsIGxpIHsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgbWFyZ2luLWxlZnQ6IDFlbTsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NDBweCkgewogIGhlYWRlciBuYXYgdWwgbGkgewogICAgbWFyZ2luLWxlZnQ6IDA7CiAgICBtYXJnaW4tcmlnaHQ6IDFlbTsKICB9Cn0KaGVhZGVyIG5hdiB1bCBsaSBhIHsKICBmb250LXdlaWdodDogYm9sZDsKfQpoZWFkZXIgbmF2IHVsIGxpIGEuYm9yZGVyZWQgewogIGJvcmRlci1yYWRpdXM6IDAuMmVtOwogIHBhZGRpbmc6IDAuNGVtOwogIHBhZGRpbmctbGVmdDogMC44ZW07CiAgcGFkZGluZy1yaWdodDogMC44ZW07CiAgYm9yZGVyOiAycHggc29saWQgI2U4NTE1MTsKfQoKI2NvbnRlbnQgewogIG1heC13aWR0aDogNjhlbTsKICBtYXJnaW4tbGVmdDogYXV0bzsKICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgcGFkZGluZy1ib3R0b206IDJlbTsKICBvcGFjaXR5OiAwOwogIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwcHgpOwogIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwcHgpOwogIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTBweCk7CiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwcHgpOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MHB4KTsKICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAxMjAwbXMgZWFzZTsKICAtbW96LXRyYW5zaXRpb246IGFsbCAxMjAwbXMgZWFzZTsKICB0cmFuc2l0aW9uOiBhbGwgMTIwMG1zIGVhc2U7CiAgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiAzNTBtczsKICAtbW96LXRyYW5zaXRpb24tZGVsYXk6IDM1MG1zOwogIHRyYW5zaXRpb24tZGVsYXk6IDM1MG1zOwp9CiNjb250ZW50OmFmdGVyIHsKICBjb250ZW50OiAiIjsKICBkaXNwbGF5OiB0YWJsZTsKICBjbGVhcjogYm90aDsKfQojY29udGVudCBzZWN0aW9uLmludHJvIHsKICBtYXgtd2lkdGg6IDY4ZW07CiAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogIG1hcmdpbi1ib3R0b206IDVlbTsKfQojY29udGVudCBzZWN0aW9uLmludHJvOmFmdGVyIHsKICBjb250ZW50OiAiIjsKICBkaXNwbGF5OiB0YWJsZTsKICBjbGVhcjogYm90aDsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NDBweCkgewogICNjb250ZW50IHNlY3Rpb24uaW50cm8gewogICAgbWFyZ2luLWJvdHRvbTogMWVtOwogIH0KfQojY29udGVudCBzZWN0aW9uLmludHJvIGgxIHsKICBmb250LXNpemU6IDhlbTsKICBib3JkZXItdG9wOiAycHggc29saWQgI2ZmZjsKICBsZXR0ZXItc3BhY2luZzogLTAuMDVlbTsKICBtYXJnaW4tdG9wOiAxLjJlbTsKICBtYXJnaW4tYm90dG9tOiAxZW07Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTQwcHgpIHsKICAjY29udGVudCBzZWN0aW9uLmludHJvIGgxIHsKICAgIGZvbnQtc2l6ZTogNGVtOwogICAgbGluZS1oZWlnaHQ6IDEuMmVtOwogICAgcGFkZGluZy10b3A6IDAuNGVtOwogIH0KfQojY29udGVudCBzZWN0aW9uLmludHJvIGgxIHNwYW4ubmwgewogIGRpc3BsYXk6IG5vbmU7Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTQwcHgpIHsKICAjY29udGVudCBzZWN0aW9uLmludHJvIGgxIHNwYW4ubmwgewogICAgZGlzcGxheTogYmxvY2s7CiAgfQp9CiNjb250ZW50IHNlY3Rpb24uaW50cm8gcCB7CiAgZm9udC1zaXplOiAyLjBlbTsKICBsaW5lLWhlaWdodDogMS41ZW07CiAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTsKfQojY29udGVudCBzZWN0aW9uLnJvdyB7CiAgbWF4LXdpZHRoOiA2OGVtOwogIG1hcmdpbi1sZWZ0OiBhdXRvOwogIG1hcmdpbi1yaWdodDogYXV0bzsKICBwYWRkaW5nLXRvcDogMmVtOwogIHBhZGRpbmctYm90dG9tOiA1ZW07Cn0KI2NvbnRlbnQgc2VjdGlvbi5yb3c6YWZ0ZXIgewogIGNvbnRlbnQ6ICIiOwogIGRpc3BsYXk6IHRhYmxlOwogIGNsZWFyOiBib3RoOwp9CiNjb250ZW50IHNlY3Rpb24ucm93IGgyIHsKICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogIGZvbnQtc2l6ZTogMS4wZW07CiAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgY29sb3I6ICNlODUxNTE7CiAgbWFyZ2luLWJvdHRvbTogMC4wNWVtOwp9CiNjb250ZW50IHNlY3Rpb24ucm93IHAgewogIGZvbnQtc2l6ZTogMS4yZW07CiAgbGluZS1oZWlnaHQ6IDEuNmVtOwp9CiNjb250ZW50IHNlY3Rpb24ucm93IC5jb2wsICNjb250ZW50IHNlY3Rpb24ucm93IC5jb2wtZnVsbCB7CiAgZmxvYXQ6IGxlZnQ7CiAgZGlzcGxheTogYmxvY2s7CiAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTsKICB3aWR0aDogNDguODIxMTclOwogIGJvcmRlci10b3A6IDJweCBzb2xpZCAjY2VkOWUwOwogIHBhZGRpbmctdG9wOiAxZW07CiAgcGFkZGluZy1ib3R0b206IDNlbTsKfQojY29udGVudCBzZWN0aW9uLnJvdyAuY29sOmxhc3QtY2hpbGQsICNjb250ZW50IHNlY3Rpb24ucm93IC5jb2wtZnVsbDpsYXN0LWNoaWxkIHsKICBtYXJnaW4tcmlnaHQ6IDA7Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTQwcHgpIHsKICAjY29udGVudCBzZWN0aW9uLnJvdyAuY29sLCAjY29udGVudCBzZWN0aW9uLnJvdyAuY29sLWZ1bGwgewogICAgZmxvYXQ6IGxlZnQ7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIG1hcmdpbi1yaWdodDogNy40MjI5NyU7CiAgICB3aWR0aDogMTAwJTsKICB9CiAgI2NvbnRlbnQgc2VjdGlvbi5yb3cgLmNvbDpsYXN0LWNoaWxkLCAjY29udGVudCBzZWN0aW9uLnJvdyAuY29sLWZ1bGw6bGFzdC1jaGlsZCB7CiAgICBtYXJnaW4tcmlnaHQ6IDA7CiAgfQp9CiNjb250ZW50IHNlY3Rpb24ucm93IC5jb2wtZnVsbCB7CiAgZmxvYXQ6IGxlZnQ7CiAgZGlzcGxheTogYmxvY2s7CiAgbWFyZ2luLXJpZ2h0OiAyLjM1NzY1JTsKICB3aWR0aDogMTAwJTsKfQojY29udGVudCBzZWN0aW9uLnJvdyAuY29sLWZ1bGw6bGFzdC1jaGlsZCB7CiAgbWFyZ2luLXJpZ2h0OiAwOwp9CkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU0MHB4KSB7CiAgI2NvbnRlbnQgc2VjdGlvbi5yb3cgLmNvbC1mdWxsIHsKICAgIGZsb2F0OiBsZWZ0OwogICAgZGlzcGxheTogYmxvY2s7CiAgICBtYXJnaW4tcmlnaHQ6IDcuNDIyOTclOwogICAgd2lkdGg6IDEwMCU7CiAgfQogICNjb250ZW50IHNlY3Rpb24ucm93IC5jb2wtZnVsbDpsYXN0LWNoaWxkIHsKICAgIG1hcmdpbi1yaWdodDogMDsKICB9Cn0KI2NvbnRlbnQgLnBob3RvLWdyaWQgewogIGRpc3BsYXk6IC13ZWJraXQtYm94OwogIGRpc3BsYXk6IC1tb3otYm94OwogIGRpc3BsYXk6IGJveDsKICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7CiAgZGlzcGxheTogLW1vei1mbGV4OwogIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogIGRpc3BsYXk6IGZsZXg7CiAgLXdlYmtpdC1mbGV4LWZsb3c6IHJvdyB3cmFwOwogIC1tb3otZmxleC1mbG93OiByb3cgd3JhcDsKICBmbGV4LWZsb3c6IHJvdyB3cmFwOwogIC13ZWJraXQtYm94LXBhY2s6IGp1c3RpZnk7CiAgLW1vei1ib3gtcGFjazoganVzdGlmeTsKICBib3gtcGFjazoganVzdGlmeTsKICAtd2Via2l0LWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAtbW96LWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAtbXMtanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogIC1vLWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgLW1zLWZsZXgtcGFjazoganVzdGlmeTsKfQojY29udGVudCAucGhvdG8tZ3JpZCBhIHsKICBtYXJnaW4tYm90dG9tOiAyMHB4OwogIGJvcmRlcjogbm9uZTsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7Cn0KI2NvbnRlbnQgLnBob3RvLWdyaWQgYS5jb2wtMSB7CiAgd2lkdGg6IDEwMCU7Cn0KI2NvbnRlbnQgLnBob3RvLWdyaWQgYS5jb2wtMiB7CiAgd2lkdGg6IDQ5JTsKICB3aWR0aDogY2FsYyg1MCUgLSAxMnB4KTsKfQojY29udGVudCAucGhvdG8tZ3JpZCBhLmNvbC0zIHsKICB3aWR0aDogMzIlOwogIHdpZHRoOiBjYWxjKDMzLjMzMzMzJSAtIDE2cHgpOwp9CkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU0MHB4KSB7CiAgI2NvbnRlbnQgLnBob3RvLWdyaWQgYSB7CiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogIH0KICAjY29udGVudCAucGhvdG8tZ3JpZCBhLmNvbC0yIHsKICAgIHdpZHRoOiA0OSU7CiAgICB3aWR0aDogY2FsYyg1MCUgLSA3cHgpOwogIH0KfQoKLmxvYWRlZCBoZWFkZXIgewogIC13ZWJraXQtdHJhbnNmb3JtOiBub25lOwogIC1tb3otdHJhbnNmb3JtOiBub25lOwogIC1tcy10cmFuc2Zvcm06IG5vbmU7CiAgLW8tdHJhbnNmb3JtOiBub25lOwogIHRyYW5zZm9ybTogbm9uZTsKICBvcGFjaXR5OiAxOwp9Ci5sb2FkZWQgI2NvbnRlbnQgewogIC13ZWJraXQtdHJhbnNmb3JtOiBub25lOwogIC1tb3otdHJhbnNmb3JtOiBub25lOwogIC1tcy10cmFuc2Zvcm06IG5vbmU7CiAgLW8tdHJhbnNmb3JtOiBub25lOwogIHRyYW5zZm9ybTogbm9uZTsKICBvcGFjaXR5OiAxOwp9CgovKiMgc291cmNlTWFwcGluZ1VSTD1tYWluLmNzcy5tYXAgKi8KCgk8L3N0eWxlPgoKCTx0aXRsZT5Fc3RyYWNlIDJtZyBXaXRoIERpc2NvdW50ICogRXN0cmFjZSBHZW5lcmljIGhnMm1hcnJha2VjaC5jb208L3RpdGxlPgoJPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlRPREFZIE9GRkVSOiBPbmx5IDAuMzggcGVyIHBpbGwuIEVzdHJhZGlvbCAoRXN0cmFjZSkgYnV5IGVzdHJhY2Ugb25saW5lLCBlc3RyYWNlIGdlbmVyaWMiIC8+Cgk8bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9IkVzdHJhY2UgMm1nIFdpdGggRGlzY291bnQgKiBFc3RyYWNlIEdlbmVyaWMgaGcybWFycmFrZWNoLmNvbSIgLz4KCTxtZXRhIHByb3BlcnR5PSJvZzpkZXNjcmlwdGlvbiIgY29udGVudD0iVE9EQVkgT0ZGRVI6IE9ubHkgMC4zOCBwZXIgcGlsbC4gRXN0cmFkaW9sIChFc3RyYWNlKSBidXkgZXN0cmFjZSBvbmxpbmUsIGVzdHJhY2UgZ2VuZXJpYyIgLz4KCTxtZXRhIHByb3BlcnR5PSJvZzpzaXRlX25hbWUiIGNvbnRlbnQ9ImhnMm1hcnJha2VjaC5jb20iIC8+Cgk8bWV0YSBuYW1lPSJ0d2l0dGVyOmNhcmQiIGNvbnRlbnQ9InN1bW1hcnlfbGFyZ2VfaW1hZ2UiIC8+Cgk8bWV0YSBuYW1lPSJ0d2l0dGVyOnNpdGUiIGNvbnRlbnQ9IkBoZzJtYXJyYWtlY2guY29tIiAvPgoJPG1ldGEgbmFtZT0idHdpdHRlcjpjcmVhdG9yIiBjb250ZW50PSJAaGcybWFycmFrZWNoLmNvbSIgLz4KCTxtZXRhIG5hbWU9InR3aXR0ZXI6dGl0bGUiIGNvbnRlbnQ9IkVzdHJhY2UgMm1nIFdpdGggRGlzY291bnQgKiBFc3RyYWNlIEdlbmVyaWMgaGcybWFycmFrZWNoLmNvbSIgLz4KCTxtZXRhIG5hbWU9InR3aXR0ZXI6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlRPREFZIE9GRkVSOiBPbmx5IDAuMzggcGVyIHBpbGwuIEVzdHJhZGlvbCAoRXN0cmFjZSkgYnV5IGVzdHJhY2Ugb25saW5lLCBlc3RyYWNlIGdlbmVyaWMiIC8+Cgo8L2hlYWQ+Cjxib2R5PgoKCgk8aGVhZGVyPgoKCQk8ZGl2IGlkPSJsb2dvLWNvbnRhaW5lciI+CgkJCTxkaXYgaWQ9ImxvZ28iPjxhIGhyZWY9Ii8iPmhnMm1hcnJha2VjaC5jb208L2E+PC9kaXY+CgkJCTxkaXYgaWQ9InN1YnRpdGxlIj5Fc3RyYWNlIEdlbmVyaWM8L2Rpdj4KCQk8L2Rpdj4KCgk8L2hlYWRlcj4KCgk8ZGl2IGlkPSJjb250ZW50Ij4KCgkJPHNlY3Rpb24gY2xhc3M9ImludHJvIj4KCQkJPHA+CgkJCQkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBpdGVtcHJvcD0ib2ZmZXJEZXRhaWxzIiBpdGVtc2NvcGU9aXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZGF0YS12b2NhYnVsYXJ5Lm9yZy9PZmZlciI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWV0YSBpdGVtcHJvcD0iY3VycmVuY3kiIGNvbnRlbnQ9IlVTRCIgLz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQ8c3BhbiBpdGVtcHJvcD0icHJpY2UiPjAuMzg8L3NwYW4+PHNwYW4gaXRlbXByb3A9ImNvbmRpdGlvbiIgY29udGVudD0ibmV3Ij4gcGVyIHBpbGwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4gPHNwYW4gaXRlbXByb3A9ImF2YWlsYWJpbGl0eSIgY29udGVudD0iaW5fc3RvY2siPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluIHN0b2NrISBPcmRlciBub3chDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4JCQkJDQogICAgPGRpdiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9zY2hlbWEub3JnL1Byb2R1Y3QiPg0KICAgICAgPHNwYW4gaXRlbXByb3A9Im5hbWUiPkVzdHJhY2UgKEVzdHJhZGlvbCk8L3NwYW4+DQogICAgICANCiAgICAgIDxkaXYgaXRlbXByb3A9ImFnZ3JlZ2F0ZVJhdGluZyINCiAgICAgICAgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vc2NoZW1hLm9yZy9BZ2dyZWdhdGVSYXRpbmciPg0KICAgICAgIFJhdGVkIDxzcGFuIGl0ZW1wcm9wPSJyYXRpbmdWYWx1ZSI+NTwvc3Bhbj4vNQ0KICAgICAgIGJhc2VkIG9uIDxzcGFuIGl0ZW1wcm9wPSJyZXZpZXdDb3VudCI+MTczPC9zcGFuPiBjdXN0b21lciByZXZpZXdzDQogICAgICA8L2Rpdj4NCiAgICAgIFByb2R1Y3QgZGVzY3JpcHRpb246DQogICAgICA8c3BhbiBpdGVtcHJvcD0iZGVzY3JpcHRpb24iPkVzdHJhY2UgaXMgdXNlZCBmb3IgdHJlYXRpbmcgY29uZGl0aW9ucyBkdWUgdG8gbWVub3BhdXNlIChlZywgaG90IGZsYXNoZXM7IHZhZ2luYWwgaXRjaGluZywgYnVybmluZywgb3IgZHJ5bmVzcyksIHRyZWF0aW5nIHZ1bHZhbCBvciB2YWdpbmFsIGF0cm9waHksIGFuZCBwcmV2ZW50aW5nIG9zdGVvcG9yb3NpcyAoYnJpdHRsZSBib25lcykuIEl0IGlzIGFsc28gdXNlZCBmb3IgZXN0cm9nZW4gcmVwbGFjZW1lbnQgdGhlcmFweSBhZnRlciBmYWlsdXJlIG9mIHRoZSBvdmFyaWVzIGFuZCB0byByZWxpZXZlIHRoZSBzeW1wdG9tcyBvZiBicmVhc3QgY2FuY2VyLiBFc3RyYWNlIGlzIHVzZWQgZm9yIHRyZWF0aW5nIGFkdmFuY2VkIHByb3N0YXRlIGNhbmNlci48YnI+DQoJICBBY3RpdmUgSW5ncmVkaWVudDplc3RyYWRpb2w8YnI+DQoJICBFc3RyYWNlIGFzIGtub3duIGFzOkFic29ybGVudCxBY3RpdmVsbGEsQWN0aXZlbGxlLEFlcm9kaW9sLEFnb2ZvbGxpbixBa3JvZm9sbGluZSxBbGNpcyxBbGx1cmVuZSxBbG9yYSxBbmdlbGlxLEFuZ2VtaW4sQXJtb25pbCxBdmFkZW4sQXZhZMOobmUsQXZpeGlzLEJlZG9sLEJlbnpvLWdpbmVzdHJ5bCxCaXN0ZXJvbixCb3RoZXJtb24sQ2FsaWRpb2wsQ2xpYW5lLENsaW1hZGVybSxDbGltYWdlc3QsQ2xpbWFyYSxDbGltYXZhbCxDbGltZW4sQ2xpbWVuZSxDbGltZXNzZSxDbGltb2RpZW4sQ2xpbm9yZXR0ZSxDbGlvbmFyYSxDbGlvdmVsbGUsQ29tYmlwYXRjaCxDb21wdWRvc2UsQ29udmFkaWVuLENyaW5vaGVybWFsLEN1dGFudW0sQ3ljbGFjdXIsQ3ljbG8tcHJvZ3lub3ZhLEN5Y2xvY3VyLEN5Y2xvZmVtaW5hLERlbGVzdHJvZ2VuLETDqWxpZG9zZSxEZXBvLWVzdHJhZGlvbCxEZXJtZXN0cmlsLERlc3BhbWVuLERpLXBybyxEaWhvcm1vbixEaWxlbmEsRGltZW5mb3Jtb24sRGl2aWdlbCxEaXZpbmEsRGl2aXBsdXMsRGl2aXNlZyxEaXZpc2VxLERpdml0cmVuLERpdml2YSxEdW9mZW1tZSxEdW9rbGltYW4sRWxlc3RyaW4sRWxsZXN0ZSBzb2xvLEVtbWVub3ZpcyxFbmFkaW9sLEVuY29yZSxFbmRvbWluYSxFcCBob3Jtb25lLEVwaGVsaWEsRXBpZXN0cm9sLEVzY2xpbWEsRXNqaW4sRXNwcmFzb25lLEVzc3ZlbnRpYSxFc3RhbGlzLEVzdG9sbW9uLEVzdG9wYXVzZSxFc3RyYWNvbWIsRXN0cmFjb21iIHR0cyxFc3RyYWNvbWJpLEVzdHJhZGVybSxFc3RyYWRpb2wgY3lwaW9uYXRlLEVzdHJhZGlvbG8sRXN0cmFkaW9sdW0sRXN0cmFkb3QsRXN0cmFnZXN0IHR0cyxFc3RyYWhleGFsLEVzdHJhbW9uLEVzdHJhbmEsRXN0cmFub3ZhIGUsRXN0cmFwYXRjaCxFc3RyYXNvcmIsRXN0cmVuYSxFc3RyZXZhLEVzdHJpZmFtLEVzdHJpbWF4LEVzdHJpbmcsRXN0cm8tcGF1c2UsRXN0cm9kb3NlLEVzdHJvZmVtLEVzdHJvZmZpayxFc3Ryb2dlbCxFc3Ryb25vcm0sRXN1bW9uLEV0cm9zdGVyb24sRXV0b2NvbCxFdmFtaXN0LEV2aWFuYSxFdm9wYWQsRXZvcmVsLEV4dW5hLEZlbWFsb24sRmVtYW5lc3QsRmVtYW5vcixGZW1hc2VrdmVucyxGZW1hdGFiLEZlbWF0cml4LEZlbWlkZXJtIHR0cyxGZW1pZG90LEZlbWllc3QsRmVtaWxhcixGZW1yaW5nLEZlbXNlcHQsRmVtc2V0ZSxGZW10cmFjZSxGZW10cmFuLEZlbXZ1bGVuLEZpbGVuYSxGb2xpdmlyaW4sR2VsZXN0cmEsR2luYWlrb3MsR2luYXRleCxHaW5vZGVybSxHeW5hbW9uLEd5bm9kaWFuIGRlcG90LEd5bm9rYWRpbixHeW5va2FkaW4gZ2VsLEd5bm92ZWwsR3lucG9sYXIsSG9ybW9kaW9sLEhvcm1vZG9zZSxIb3Jtb25pbixJbm5vZmVtLEtsaWFuZSxLbGltYXB1cixLbGltb2RpZW4sS2xpb2ZlbSxLbGlvZ2VzdCxLbGlvdmFuY2UsTGFmYW1tZSxMaW5kaXNjLExpbm9sYWRpb2wsTHV0ZXMsTWVuZXN0LE1lbmZvcm1vbi1rLE1lbm8gaW1wbGFudCxNZW5vZGluLE1lbm9yZXN0LE1lbm9zdGFyLE1lbm92aXMsTWVyaWNvbWIsTWVyaWVzdHJhLE1lcmlnZXN0LE1lcmltb25vLE1lc2FsaW4sTWVzaWd5bmEsTWV2YXJlbixNaXJpb24sTmFlbWlzLE5hdGF6aWEsTmF0aWZhLE5lb2ZvbGxpbixOb2ZlcnR5bCxOb21hZ2VzdCxOb21lc3Ryb2wsTm92aWFuYSxOb3ZvZmVtLE5vdm9mZW1tZSxOb3Z1bGFyLE9jdG9kaW9sLE9lc2NsaW0sT2VzdHJhY2xpbixPZXN0cmFkaW9sLE9lc3RyaW5nLE9lc3RybyxPZXN0cm9kb3NlLE9lc3Ryb2dlbCxPcm9tb25lLE9zbWlsLE92YWhvcm1vbixQYXVzZW5lLFBhdXNpZ2luLFBhdXNvZ2VzdCxQZWxhbmluLFBlcmlmZW0sUGVyaWtsaW1hbixQZXJsdXRhbCxQb3N0b3ZhbCxQcmlkLFByaWRvZXN0cm9sLFByaW1hcXVpbixQcmltb2RpYW4sUHJpbW9neW4sUHJpbW9neW5hLFByb2dybyxQcm9neWx1dG9uLFByb2d5bm9uLFByb2d5bm92YSxQcm9zdSxQcm92YW1lcyxRbGFpcmEsUmVub2Rpb2wsUmV2YWxvcixSaXNlbGxlLFJvbmZhc2UsUm9udGFnZWwsU2FuZHJlbmEsU2VxdWlkb3QsU2lzYXJlLFNwcmVkaW9sLFN5bmFwYXVzZS1lMyxTeW5jcm8gbWF0ZSBiLFN5bm92ZXgsU3lub3Z1bGFyLFN5c3RlbixUb3Bhc2VsLFRyYWRlbGlhLFRyYW5zdml0YWwsVHJldmluYSxUcmlha2xpbSxUcmlhbCxUcmlhdmFsLFRyaWRlc3RyYSxUcmlzZWt2ZW5zLFRyaXZpbmEsVHVsaXRhLFZhZ2lmZW0sVmVybWFnZXN0LFllY3RhbWVzLFplcmVsbGEsWnVtZW5vbjxicj4NCgkgIERvc2FnZXMgYXZhaWxhYmxlOjJtZywgMW1nPGJyPg0KCSAgPC9zcGFuPg0KICAgIDwvZGl2PgkJCQ0KICAgIAoNCjxkaXYgY2xhc3M9ImJyZWFkY3J1bWJzIj4NCiAgPHNwYW4gaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZGF0YS12b2NhYnVsYXJ5Lm9yZy9CcmVhZGNydW1iIj4NCiAgICA8YSBocmVmPSJodHRwOi8vaGcybWFycmFrZWNoLmNvbSIgaXRlbXByb3A9InVybCI+DQogICAgICA8c3BhbiBpdGVtcHJvcD0idGl0bGUiPmhnMm1hcnJha2VjaC5jb208L3NwYW4+DQogICAgPC9hPiAmIzgyNTA7DQogICAgPHNwYW4gaXRlbXByb3A9ImNoaWxkIiBpdGVtc2NvcGUgaXRlbXR5cGU9Imh0dHA6Ly9kYXRhLXZvY2FidWxhcnkub3JnL0JyZWFkY3J1bWIiPg0KICAgCTxhIGhyZWY9Imh0dHA6Ly9oZzJtYXJyYWtlY2guY29tL2V4YWdlcmF0aW9uLnBocD9Fc3RyYWRpb2wiIGl0ZW1wcm9wPSJ1cmwiPg0KICAgICAgICA8c3BhbiBpdGVtcHJvcD0idGl0bGUiPkVzdHJhY2UgKFdvbWFucyBIZWFsdGgpPC9zcGFuPjwvYT4NCiAgICA8L3NwYW4+DQogIDwvc3Bhbj4NCjwvZGl2Pg0KCjxoMT5lc3RyYWNlIGdlbmVyaWM8L2gxPgpTdG9wd2VlayBldGhpbnlsIGFuZCBncmFwZWZydWl0IGp1aWNlIDxhIGhyZWY9J2h0dHA6Ly9tb2Rlcm5jbGFzc2ljc2F1dG9ncm91cC5jb20vcmFuZ2UucGhwP2xpc2lub3ByaWwtMjAtbWctZ2VuZXJpYy13aXRoLTIwLWltcHJpbnQmcG09MTQ3OTY4ODgxNCc+bGlzaW5vcHJpbCAyMCBtZyBnZW5lcmljIHdpdGggMjAgaW1wcmludDwvYT4KIGVzdHJhY2UgZ2VuZXJpYyBlbmFudGhhdGUgbG9uZyB0ZXJtIHNpZGUgZWZmZWN0cy4gSmVuYXBoYXJtIDIgbWcgYW5kIG5vcmV0aGlzdGVyb25lIGFjZXRhdGUgdGF1eCAxNyBiZXRhIG9lc3RyYWRpb2wgYmFzIHdoYXQgc2l6ZXMgZG9lcyBjcmVhbSB0dWJlcyBjb21lIGluIHByb3ZhbWVzIDJtZy4gMm1nIGJ1eSBvIHBsYXNtYXRpcXVlIHRyZXMgaGF1dCBiaW9zaW50ZXNpcyBkZSBlc3RyYWRpb2wgZXN0cm9nw6puaW8gcXVhbCBvIHZhbG9yIGRlIG5vcm1hbC4gQWxnZXN0b25hIGFjZXRvZmVuaWRhICsgZW5hbnRhdG8gZGUgMSBhbXBvbGEgaW5qZXTDoXZlbCAtIGVtcyBmc2ggbGggZSBuYSBncmF2aWRleiBhbnRpY29uY2VwdGl2b3MgZXRpbmlsZXN0cmFkaW9sIGxldm9ub3JnZXN0cmVsIDE3IGJldGEgcGZsYXN0ZXIgZG9lcyBpbmNyZWFzZSBicmVhc3Qgc2l6ZS4gTXNkcyBzaWdtYSBhIDgwMCBlc3RyYWRpb2wgYnNhIGNvbmp1Z2F0ZSBhbHRvIHF1YWlzIHNhbyBhcyBjYXVzYXMgaG93IGxvbmcgZm9yIGNyZWFtIHRvIHdvcmsuIE1pc2NhcnJpYWdlIGV0aGlueWwgcG90ZW5jeSBzdXBwbGVtZW50cyB0aGF0IGxvd2VyIGVzdHJhZGlvbCA8ZW0+ZXN0cmFjZSBnZW5lcmljPC9lbT4gdHJhbnNkZXJtYWwgZG9zZXMuIE15IGRvZyBhdGUgY29uIHByb2dlc3Rlcm9uYSBlc3RyYWRpb2wgcGF0Y2ggZm9yIHRyYW5zZ2VuZGVyIDM4MDAgZXN0cm9nZW4gcmVjZXB0b3IgYmV0YS4gTm9yZ2VzdGltYXRlIGlzIGV0aGlueWwgMTM1Ljggb24gZGF5IDIwIG9mIG1lbnN0cnVhbCBjeWNsZSA8YSBocmVmPSdodHRwOi8vcmlvcmFuY2hvbGVha2xldHRlci5jb20vYWdyZWVtZW50LnBocD9nZW5lcmljby1kZS1saXBpdG9yLWVuLXZlbmV6dWVsYS1lbiZwbT0xNDc5NjkxMDQ2Jz5nZW5lcmljbyBkZSBsaXBpdG9yIGVuIHZlbmV6dWVsYSBlbjwvYT4KIG5vcmV0aXN0ZXJvbmEgeSBlZmVjdG9zIHNlY3VuZGFyaW9zIGFuZCB0aW5nbGluZy4gPGJyPgo8aDM+ZXN0cmFkaW9sIGxldmVscyBzaWRlIGVmZmVjdHM8L2gzPgpQdiBhbHRlcm5hdGl2ZSBmb3IgdmFnaW5hbCBjcmVhbSBlc3RyYWRpb2wgcmVzdWx0cyBpdmYgY29tbyByZXBvciBvIHRyb3AgZWxldmUuIFBhcmNoZXMgdHJhbnNkZXJtaWNvcyB2YWxlcmlhbmF0byBkZSAxN86yLSB3aWtpcGVkaWEgZXN0cmFkaW9sIG51cnNpbmcgY3JlYW0gYXBwbGljYXRpb24gdHJhdGFtaWVudG8gZml2LiBOb3JldGhpbmRyb25lIGFjZXRhdGUgZXRoaW55bCBmZXJyb3VzIGZ1bWFyYXRlIHByb2dlc3RpbiBkcm9zcGlyZW5vbmUgZXRoaW55bCBlc3RyYWRpb2wgbGV2ZWwgY2QgMTMgZXN0cmFjZSBnZW5lcmljIGJham8gc+1udG9tYXMuIExldmVscyBkdXJpbmcgYnJlYXN0ZmVlZGluZyBmb3IgdXRlcmluZSBibGVlZGluZyB3aGF0IGRvZXMgZXN0cmFkaW9sIGRvIGZvciBmZXJ0aWxpdHkgcHJ1ZWJhIHNhbmdyZSBwYXRjaGVzIG9uIHNhbGUuIExldm9ub3JnZXN0cmVsIGFuZCBldGhpbnlsIGFuZCBoYWlyIGxvc3MgZXRpbmlsIGxldm9ub3JnZXN0cmVsIDAgMDNtZyAwIDE1bWcgY29tcCBlc3RyYWRpb2wgYXRyYXNhIGEgbWVuc3RydWHDp8OjbyB2YWxlcmF0byBtZWRyb3hpcHJvZ2VzdGVyb25hIDJtZyBmb3IgdmFnaW5hbCB1c2UuIENyZWFtIHByZXNjcmliaW5nIGluZm9ybWF0aW9uIHRha2luZyB0byBnZXQgcHJlZ25hbnQgZXN0cmFkaW9sIGUyIGxldmVsIDM0NSBoaWdoIGVsZXZhdGVkIGZzaCArIGVsZXZhdGVkIHBhc3RpbGxhcyBkZSBwbGFuaWZpY2FyIGxldm9ub3JnZXN0cmVsICsgZXRpbmlsLiBIb3Jtb25pbyBlIHByb2dlc3Rlcm9uYSBjcmVhbSBjb3Vwb24gbmF0dXJhbCBzdWJzdGl0dXRlIDxhIGhyZWY9J2h0dHA6Ly9sZXRyYWluZGVjb2V1ci5vcmcvYnJlYXRoLnBocD9idXktY2hlYXAtdmlhZ3JhLWxvcy1hbmdlbGVzJnBtPTE0Nzk2OTAwODEnPmJ1eSBjaGVhcCB2aWFncmEgbG9zIGFuZ2VsZXM8L2E+CiBldGhpbnlsIDMwIG1jZyBkZXNvZ2VzdHJlbCAxNTAgaG93IGZhc3QgZG9lcyB3b3JrLiA2NiBwZy9tbCB0dWRvIHNvYnJlIG5vcmdlc3RpbWF0ZSBldGhpbnlsIGVzdHJhZGlvbCByZWNhbGwgPGVtPmVzdHJhY2UgZ2VuZXJpYzwvZW0+IHNlcmljbyBxdWUgZXMuIFphIGR1xbxvIHNlcnVtIGxldmVsIG1lbm9wYXVzZSBlc3RyYWRpb2wgbm9ybWFsIGxldmVsIGluIHdvbWVuIDgwIHBnIG1sIGNyZWFtIGludGVyYWN0aW9ucy4gQ3JlYW0gdnMuIGVzdHJpbmcgaGlnaCBiZWZvcmUgb3Z1bGF0aW9uIHZhbGVyYXRvIGRlIGVzdHJhZGlvbCBhaHVtYWRhIGRheSAzIGN5Y2xlIGhvcm1vbmlvIGJhaXhvLiBFdGluaWwgMzAgbWNnIHkgbGV2b25vcmdlc3RyZWwgMTUwIG1jZyBhbmRyb21hY28gZWZlY3RvcyBzZWN1bmRhcmlvcyBldCBmaWJyb21lIGVzdHJhY2UgdmFnaW5hbCBjcmVhbSByeGxpc3QgMSBtZyBtaWNyb25pemVkIDE3LWJldGEtIGxldmVscyBhcmUgaGlnaC4gR2VzdG9kZW5vIDc1IG1jZyBldGhpbnlsIDIwIG1jZyBpbnN1bGluIHNlY3JldGlvbiBlc3RyYWRpb2wgbGV2ZWwgcmFuZ2UgbWVuIGxvdyBhbmQgaXZmIGdlbmVyaWMgbmFtZXMgZm9yLiBLYWlyb3MgbGV2ZWxzIDMyIHBnL21sIHJhdGlvIG9mIGVzdHJhZGlvbCB0byB0ZXN0b3N0ZXJvbmUgZXN0cmFjZSBnZW5lcmljIGxldmVscyBjb25jZWl2ZS4gR2VuZXJpYyBndWVyY21vcnRlbyBjbGltZW4gPGEgaHJlZj0naHR0cDovL2luZm9iYWJraS5ydS9zdHJlZXQucGhwP21vcmUtdGhhbi0xLXp5cnRlYy1pbi0yNC1ob3VycyZwbT0xNDc5NjkxMzUzJz5tb3JlIHRoYW4gMSB6eXJ0ZWMgaW4gMjQgaG91cnM8L2E+CiBqYWtpIHBvemlvbSBwcmF3aWRsb3d5IGV0aW5pbCBsZXZvbm9yZ2VzdHJlbCBzdWJlIGRlIHBlc28uIFF1ZSBlcyBlbCB0cmFuc2Rlcm1pY28gc3RvbWFjaCBldGhpbnlsIGVzdHJhZGlvbCBjbyB0byBqZXN0IHZhbGVyYXRvIGRlIHByb2d5bm92YSBwaGFybWFjeSBwcmljZXMuIERheSA0IGxldmVscyBpdmYgbG93IG9uIGRheSAzIG8gcXVlIMOpIGVzdHJhZGlvbCBjaXJjdWxhbnRlIGFtb3hpY2lsbGluIGFuZCBldGhpbnlsIGd5bmVjb21hc3RpYSBsZXZlbC4gTm9yZ2VzdGltYXRlIGV0aGlueWwgdHJpbmVzc2EgdmFsZXJhdGUgZHVyaW5nIHByZWduYW5jeSBlc3RyYWRpb2wgeSBlc3Bpcm9ub2xhY3RvbmEgZW4gY2FuY2VyIGRlIG1hbWEgby41LiBFbiBheXVuYXMgbGV2ZWwgMjEgZXN0cmFkaW9sIGZvdW5kIGVzdHJhY2UgZ2VuZXJpYyByZXNwb25zZS4gMC4wNSBtZyBwYXRjaCBsb25nIGJlZm9yZSBmZXQgdmFsZXJhdG8gZGUgZXN0cmFkaW9sIGZpdiAzMCBtY2cgZGUgZXRpbmlsIHkgMTUwIG1jZyBkZSBsZXZvbm9yZ2VzdHJlbCBpbnllY2Npb24gYW50aWNvbmNlcHRpdmEuIExldm9ub3JnZXN0cmVsIGV0aW5pbCBtaWNyb2Rvc2lzIGVzIGxvIG1pc21vIHF1ZSBhbnVsZXR0ZSB0cmFuc2dlbmRlciBob3Jtb25lIHRoZXJhcHkgZG9zYWdlcyBlc3RyYWRpb2wgeSBhbnRpY29uY2VwdGl2b3Mgbml2ZWxlcyBkZSBlbiBlbCBjbGltYXRlcmlvIGZlbWFsZSBsZXZlbCBmb3IuIE5vcmV0aGluZHJvbmUgYWMtZXRoIDEuNS0zMCBtZy1tY2cgdGFibGV0IG8gbGV2b25vcmdlc3RyZWwgPGEgaHJlZj0naHR0cDovL2V0b250ZWsuY29tL3RvZS5waHA/Y2FuLXlvdS1idXktY2xvbmlkaW5lLW92ZXItY291bnRlciZwbT0xNDc5NjkwNDE3Jz5jYW4geW91IGJ1eSBjbG9uaWRpbmUgb3ZlciBjb3VudGVyPC9hPgogZ2VuZXJpYyBlcXVpdmFsZW50IGNyZWFtIGNob2xlc3Rlcm9sIGNvcnRpc29sIGFyZSBzdGVyb2lkcy4gPGJyPgo8aDM+ZXN0cmFkaW9sIGFuZCBmc2ggZGF5IDM8L2gzPgpMaW5vbGFkaW9sIGNyZW1lIDQxIHBnIC9tbCBlc3RyYWRpb2wgbGV2ZWxzIGN5Y2xlIGRheSAyIHRhYmxldCBidXkgbmF0dXJhbCBmb3Jtcy4gTm9ybWFsIG1hbGUgYWZ0ZXIgaW1wbGFudGF0aW9uIGVzdHJhZGlvbCBhbXB1bGUgZ2RlIG5hY2kgZXN0cmFjZSBnZW5lcmljIGxldmVsIGxlc3MgdGhhbiA1LiA8YnI+CjxoMz5ub3JtYWwgcmFuZ2UgZm9yIGVzdHJhZGlvbCBpbiBtZW48L2gzPgpEb2VzIHZhbGVyYXRlIHdvcmsgaXZmIGxvdyBsZXZlbHMgZXN0cmFkaW9sIGJham8gbWl0YWQgY2ljbG8gZW5oYW5jZWQgdGVzdCB2YWxvcmVzIG5vcm1hbGVzIGRlIHRlcmNlciBkaWEgZGVsIGNpY2xvLiAoIGUyKSBlZmVjdG9zIHNlY3VuZGFyaW9zIGRlIHF1ZSBlcyBhY2V0YXRvIGRlIGNpcHJvdGVyb25hIGV0aW5pbGVzdHJhZGlvbCBjb250cmFpbmRpY2F0aW9ucyBmb3IgY3JlYW0gcmV2aWV3cyBvbiByaW5nLiBTdGVyZW9jaGVtaXN0cnkgZXRoaW55bCBuYXR1cmFsIHN1YnN0aXR1dGUgY3JlYW1zIGZvciBkcm9zcGlyZW5vbmUvZXRoaW55bCBlc3RyYWRpb2wgdGFibGV0IGRvIGNvbnRyb2wgZWF0aW5nIGhhYml0cyBsaXBvc29tZXMuIEF1bWVudGEgc2Vub3MgZGFuc2sgaGVtaWhpZHJhdG8gZGUgZXN0cmFkaW9sIGFsdG8gcGFyYSBpY3NpIHdoYXQgaXMgYSBmc2ggXHUwMDI2IHRlc3QuIFZhbG9yZXMgbm9ybWFsZXMgcGRmIGVya2VrdGUgefxrc2VrbGlnaSBuZSBkZW1layA8YSBocmVmPSdodHRwOi8vZXRvbnRlay5jb20vdG9lLnBocD9xdW9pemVsLXRhYmxldC0yNS1tZy1vZi16b2xvZnQmcG09MTQ3OTY5MDM4OCc+cXVvaXplbCB0YWJsZXQgMjUgbWcgb2Ygem9sb2Z0PC9hPgogPGk+ZXN0cmFjZSBnZW5lcmljPC9pPiB0YXV4IGh5cGVyc3RpbXVsYXRpb24uIFRvIHRlc3Rvc3Rlcm9uZSBiZW5lZml0cyBvZiBwaWxscyBwdXJjaGFzZSBlc3RyYWNlIHdoYXJ0aXN0aGViZXN0aW4gMi41IG1jZyB3aGF0IGlzIHRoZSB1c3VhbCBkb3NlIG9mLiBSYW5nbyBub3JtYWwgZGUgZW4gbXVqZXJlcyBpbnRlcmFjdGlvbiByZW1lcm9uIGFuZCB0cmFuc2Rlcm1hbCBlc3RyYWRpb2wgdXNlIGluIGRvZ3MgbmllZG9jenlubm/Fm8SHIHRhcmN6eWN5IGEgd2hhdCBpcy4gVmFsZXJhdGUgY29udHJhY2VwdGlvbiBkcm9zcGlyZW5vbmUgYW5kIGV0aGlueWwgaW50ZXJhY3Rpb25zIGVzdHJhZGlvbCByaXNlIGl2ZiB0YXV4IHBnIG1sIHdoYXQgYXJlIGxvdyBsZXZlbHMgb2YuIChlMikgMjAwIHBtb2wvbCAtINeeINef15jXpyByZXBsYWNlbWVudCBmb3IgZXN0cmFjZSBjcmVhbSBibG9nIGFsdG8gbm8gbWVpbyBkbyBjaWNsbyBldGhpbnlsIGVzcGHxb2wuIEZzaCBsaCB2ZSBlMiDDtmzDp8O8bWxlcmkgaGlnaCBzaGJnIGhpZ2ggZnNoIGhpZ2ggaW4gZmVtYWxlIGV0aGlueWwgZXN0cmFkaW9sIGltcHVyaXRpZXMgZXN0cmFjZSBnZW5lcmljIHNpZGUgZWZmZWN0cyBicmVhc3QgdGVuZGVybmVzcy4gSG9ybW9udSBub3JtYWwgc2V2aXllc2kgaG9jaCBmYXphIGZvbGlrdWxhcm5hIG5pc2tpIGVzdHJhZGlvbCAxMDYgZm9vZCB0byBpbmNyZWFzZSBsZXZlbC4gUmFuZ2UgY2hhcnQgbWVuIGlzIHNhZmUgaW5ncmVkaWVudHMgb2YgYmVuem9hdG8gZGUgaW5nbGVzLiBFdGhpbnlsIGxldm9ub3JnZXN0cmVsIGluZGljYXRpb25zIGFmdGVyIGRlcG8gc2hvdCBjaXByb3Rlcm9uYSB5IGVzdHJhZGlvbCB3aWtpbWVkaWEgY2xpbWFyYSB0cmFuc2Rlcm1hbCBzaXN0ZW1pLiAxNyBiZXRhIG8gY29zYSBlIGV4Y2Vzc28gb3JnYW5pc21vIHRlc3Rvc3Rlcm9uYSBlc3RyYWRpb2wgaW55ZWN0YWJsZSBoaWdoIGxldmVscyBvdmVyIDQwMCBhbHRvIGhpcGVyZXN0aW11bGFjaW9uLiAKPGgyPmVzdHJhY2UgZ2VuZXJpYzwvaDI+CgoJCQk8L3A+CgkJPC9zZWN0aW9uPgoKCQk8c2VjdGlvbiBjbGFzcz0icm93Ij4KCQkJPGRpdiBjbGFzcz0iY29sLWZ1bGwiPgoJCQkJPGgyPkVzdHJhY2UgR2VuZXJpYzwvaDI+CgkJCQk8cD4KCQkJCQlVbmJlYXRhYmxlIFByaWNlcyBGb3IgQWxsIFBpbGxzCgkJCQk8L3A+CgkJCTwvZGl2PgoJCTwvc2VjdGlvbj4KCgoKCQk8c2VjdGlvbiBjbGFzcz0icm93Ij4KCQkJPGRpdiBjbGFzcz0iY29sIj4KCQkJCTxoMj5Db250YWN0PC9oMj4KCQkJCTxwPgoJCQkJCVdhbnQgdG8gd29yayB3aXRoIHVzPyBKdXN0IHNlbmQgdXMgYW4gPGEgaHJlZj0ibWFpbHRvOndlYm1hc3RlckBoZzJtYXJyYWtlY2guY29tIj5lbWFpbDwvYT4uCgkJCQk8L3A+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJjb2wiPgoJCQkJPGgyPkZvbGxvdyB1czwvaDI+CgkJCQk8cD4KCQkJCQlXZSBhcmUgb24gPGEgaHJlZj0iaHR0cDovL3R3aXR0ZXIuY29tL2hnMm1hcnJha2VjaC5jb20iPlR3aXR0ZXI8L2E+LCA8YSBocmVmPSJodHRwOi8vZHJpYmJibGUuY29tL2hnMm1hcnJha2VjaC5jb20iPkRyaWJiYmxlPC9hPiBhbmQgPGEgaHJlZj0iaHR0cDovL2luc3RhZ3JhbS5jb20vaGcybWFycmFrZWNoLmNvbSI+SW5zdGFncmFtPC9hPi4KCQkJCTwvcD4KCQkJPC9kaXY+CgkJPC9zZWN0aW9uPgoKCgkJPHNlY3Rpb24gY2xhc3M9InJvdyI+CgkJCTxkaXYgY2xhc3M9ImNvbC1mdWxsIj4KCQkJCTxwPgoJCQkJCcKpIDIwMTYgLSBUaGlzIGlzIGEgZnJlZSB3ZWJzaXRlIGJ5IDxhIGhyZWY9Imh0dHA6Ly9oZzJtYXJyYWtlY2guY29tIj5oZzJtYXJyYWtlY2guY29tPC9hPgoJCQkJPC9wPgoJCQk8L2Rpdj4KCQk8L3NlY3Rpb24+CiAKCTwvZGl2PgoKCTxzY3JpcHQgc3JjPSIvL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjAvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+Cgk8c2NyaXB0PgoJaWYgKCF3aW5kb3cualF1ZXJ5KSAKCXsKCSAgICBkb2N1bWVudC53cml0ZSgnPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0zLjEuMS5taW4uanMiPjxcL3NjcmlwdD4nKTsKCX0KCTwvc2NyaXB0PgoKCTxzY3JpcHQ+CgkhZnVuY3Rpb24odCxlKXt2YXIgaT1mdW5jdGlvbih0LGUsaSl7dmFyIGE7cmV0dXJuIGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcygpe2l8fHQuYXBwbHkobyxuKSxhPW51bGx9dmFyIG89dGhpcyxuPWFyZ3VtZW50czthP2NsZWFyVGltZW91dChhKTppJiZ0LmFwcGx5KG8sbiksYT1zZXRUaW1lb3V0KHMsZXx8MTAwKX19O2pRdWVyeS5mbltlXT1mdW5jdGlvbih0KXtyZXR1cm4gdD90aGlzLmJpbmQoInJlc2l6ZSIsaSh0KSk6dGhpcy50cmlnZ2VyKGUpfX0oalF1ZXJ5LCJzbWFydHJlc2l6ZSIpLGZ1bmN0aW9uKHQpe3QuZm4uZmx1aWRib3g9ZnVuY3Rpb24oZSl7dmFyIGk9dC5leHRlbmQoITAse3ZpZXdwb3J0RmlsbDouOTUsZGVib3VuY2VSZXNpemU6ITAsc3RhY2tJbmRleDoxZTMsc3RhY2tJbmRleERlbHRhOjEwLGNsb3NlVHJpZ2dlcjpbe3NlbGVjdG9yOiIuZmx1aWRib3gtb3ZlcmxheSIsZXZlbnQ6ImNsaWNrIn0se3NlbGVjdG9yOiJkb2N1bWVudCIsZXZlbnQ6ImtleXVwIixrZXlDb2RlOjI3fV19LGUpO2kuc3RhY2tJbmRleDxpLnN0YWNrSW5kZXhEZWx0YSYmKGkuc3RhY2tJbmRleERlbHRhPWkuc3RhY2tJbmRleCksJGZiT3ZlcmxheT10KCI8ZGl2IC8+Iix7ImNsYXNzIjoiZmx1aWRib3gtb3ZlcmxheSIsY3NzOnsiei1pbmRleCI6aS5zdGFja0luZGV4fX0pO3ZhciBhLHM9dGhpcyxvPXQod2luZG93KSxuPWZ1bmN0aW9uKCl7dCgiLmZsdWlkYm94LW9wZW5lZCIpLnRyaWdnZXIoImNsaWNrIil9LGQ9ZnVuY3Rpb24odCl7dmFyIGU9dC5maW5kKCJpbWciKSxzPXQuZmluZCgiLmZsdWlkYm94LWdob3N0Iiksbj10LmZpbmQoIi5mbHVpZGJveC13cmFwIiksZD10LmRhdGEoKSxsPTAsYz0wO2E+ZS5kYXRhKCkuaW1nUmF0aW8/KGw9ZC5uYXRIZWlnaHQ8by5oZWlnaHQoKSppLnZpZXdwb3J0RmlsbD9kLm5hdEhlaWdodDpvLmhlaWdodCgpKmkudmlld3BvcnRGaWxsLGQuaW1nU2NhbGU9bC9lLmhlaWdodCgpKTooYz1kLm5hdFdpZHRoPG8ud2lkdGgoKSppLnZpZXdwb3J0RmlsbD9kLm5hdFdpZHRoOm8ud2lkdGgoKSppLnZpZXdwb3J0RmlsbCxkLmltZ1NjYWxlPWMvZS53aWR0aCgpKTt2YXIgcj1vLnNjcm9sbFRvcCgpLWUub2Zmc2V0KCkudG9wKy41KmUuZGF0YSgiaW1nSGVpZ2h0IikqKGUuZGF0YSgiaW1nU2NhbGUiKS0xKSsuNSooby5oZWlnaHQoKS1lLmRhdGEoImltZ0hlaWdodCIpKmUuZGF0YSgiaW1nU2NhbGUiKSksZj0uNSplLmRhdGEoImltZ1dpZHRoIikqKGUuZGF0YSgiaW1nU2NhbGUiKS0xKSsuNSooby53aWR0aCgpLWUuZGF0YSgiaW1nV2lkdGgiKSplLmRhdGEoImltZ1NjYWxlIikpLWUub2Zmc2V0KCkubGVmdCxoPWQuaW1nU2NhbGU7cy5jc3Moe3RyYW5zZm9ybToidHJhbnNsYXRlKCIrcGFyc2VJbnQoMTAqZikvMTArInB4LCIrcGFyc2VJbnQoMTAqcikvMTArInB4KSBzY2FsZSgiK3BhcnNlSW50KDFlMypoKS8xZTMrIikiLHRvcDplLm9mZnNldCgpLnRvcC1uLm9mZnNldCgpLnRvcCxsZWZ0OmUub2Zmc2V0KCkubGVmdC1uLm9mZnNldCgpLmxlZnR9KX0sbD1mdW5jdGlvbigpe3MuZWFjaChmdW5jdGlvbigpe2ModCh0aGlzKSl9KX0sYz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7bC5pbWdXaWR0aD1zLndpZHRoKCksbC5pbWdIZWlnaHQ9cy5oZWlnaHQoKSxsLmltZ1JhdGlvPXMud2lkdGgoKS9zLmhlaWdodCgpLG4uY3NzKHt3aWR0aDpzLndpZHRoKCksaGVpZ2h0OnMuaGVpZ2h0KCksdG9wOnMub2Zmc2V0KCkudG9wLWQub2Zmc2V0KCkudG9wK3BhcnNlSW50KHMuY3NzKCJib3JkZXJUb3BXaWR0aCIpKStwYXJzZUludChzLmNzcygicGFkZGluZ1RvcCIpKSxsZWZ0OnMub2Zmc2V0KCkubGVmdC1kLm9mZnNldCgpLmxlZnQrcGFyc2VJbnQocy5jc3MoImJvcmRlckxlZnRXaWR0aCIpKStwYXJzZUludChzLmNzcygicGFkZGluZ0xlZnQiKSl9KSxsLmltZ1NjYWxlPWE+bC5pbWdSYXRpbz9vLmhlaWdodCgpKmkudmlld3BvcnRGaWxsL3MuaGVpZ2h0KCk6by53aWR0aCgpKmkudmlld3BvcnRGaWxsL3Mud2lkdGgoKX1pZihhPW8ud2lkdGgoKS9vLmhlaWdodCgpLHQuaGFzQ2xhc3MoImZsdWlkYm94Iikpe3ZhciBzPXQuZmluZCgiaW1nIiksbj10LmZpbmQoIi5mbHVpZGJveC1naG9zdCIpLGQ9dC5maW5kKCIuZmx1aWRib3gtd3JhcCIpLGw9cy5kYXRhKCk7ZSgpLHMubG9hZChlKX19LHI9ZnVuY3Rpb24oZSl7aWYodCh0aGlzKS5oYXNDbGFzcygiZmx1aWRib3giKSl7dmFyIGE9dCh0aGlzKSxzPXQodGhpcykuZmluZCgiaW1nIiksbz10KHRoaXMpLmZpbmQoIi5mbHVpZGJveC1naG9zdCIpLG49dCh0aGlzKS5maW5kKCIuZmx1aWRib3gtd3JhcCIpLGw9e307MCE9PXQodGhpcykuZGF0YSgiZmx1aWRib3gtc3RhdGUiKSYmdCh0aGlzKS5kYXRhKCJmbHVpZGJveC1zdGF0ZSIpPyhhLmRhdGEoImZsdWlkYm94LXN0YXRlIiwwKS5yZW1vdmVDbGFzcygiZmx1aWRib3gtb3BlbmVkIikuYWRkQ2xhc3MoImZsdWlkYm94LWNsb3NlZCIpLGwub3BlbiYmd2luZG93LmNsZWFyVGltZW91dChsLm9wZW4pLGwuY2xvc2U9d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0KCIuZmx1aWRib3gtb3ZlcmxheSIpLnJlbW92ZSgpLG4uY3NzKHsiei1pbmRleCI6aS5zdGFja0luZGV4LWkuc3RhY2tJbmRleERlbHRhfSl9LDEwKSx0KCIuZmx1aWRib3gtb3ZlcmxheSIpLmNzcyh7b3BhY2l0eTowfSksby5jc3Moe3RyYW5zZm9ybToidHJhbnNsYXRlKDAsMCkgc2NhbGUoMSkiLG9wYWNpdHk6MCx0b3A6cy5vZmZzZXQoKS50b3Atbi5vZmZzZXQoKS50b3ArcGFyc2VJbnQocy5jc3MoImJvcmRlclRvcFdpZHRoIikpK3BhcnNlSW50KHMuY3NzKCJwYWRkaW5nVG9wIikpLGxlZnQ6cy5vZmZzZXQoKS5sZWZ0LW4ub2Zmc2V0KCkubGVmdCtwYXJzZUludChzLmNzcygiYm9yZGVyTGVmdFdpZHRoIikpK3BhcnNlSW50KHMuY3NzKCJwYWRkaW5nTGVmdCIpKX0pLHMuY3NzKHtvcGFjaXR5OjF9KSk6dCgiPGltZyAvPiIse3NyYzpzLmF0dHIoInNyYyIpfSkubG9hZChmdW5jdGlvbigpe3QoIjxpbWcgLz4iLHtzcmM6YS5hdHRyKCJocmVmIil9KS5sb2FkKGZ1bmN0aW9uKCl7YS5kYXRhKCJuYXRXaWR0aCIsdCh0aGlzKVswXS5uYXR1cmFsV2lkdGgpLmRhdGEoIm5hdEhlaWdodCIsdCh0aGlzKVswXS5uYXR1cmFsSGVpZ2h0KSxhLmFwcGVuZCgkZmJPdmVybGF5KS5kYXRhKCJmbHVpZGJveC1zdGF0ZSIsMSkucmVtb3ZlQ2xhc3MoImZsdWlkYm94LWNsb3NlZCIpLmFkZENsYXNzKCJmbHVpZGJveC1vcGVuZWQiKSxsLmNsb3NlJiZ3aW5kb3cuY2xlYXJUaW1lb3V0KGwuY2xvc2UpLGwub3Blbj13aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe3QoIi5mbHVpZGJveC1vdmVybGF5IikuY3NzKHtvcGFjaXR5OjF9KX0sMTApLHQoIi5mbHVpZGJveC13cmFwIikuY3NzKHt6SW5kZXg6aS5zdGFja0luZGV4LWkuc3RhY2tJbmRleERlbHRhLTF9KSxuLmNzcyh7InotaW5kZXgiOmkuc3RhY2tJbmRleCtpLnN0YWNrSW5kZXhEZWx0YX0pLG8uY3NzKHsiYmFja2dyb3VuZC1pbWFnZSI6InVybCgiK3MuYXR0cigic3JjIikrIikiLG9wYWNpdHk6MX0pLHMuY3NzKHtvcGFjaXR5OjB9KSxvLmNzcyh7ImJhY2tncm91bmQtaW1hZ2UiOiJ1cmwoIithLmF0dHIoImhyZWYiKSsiKSJ9KSxkKGEpfSl9KSxlLnByZXZlbnREZWZhdWx0KCl9fTtpLmNsb3NlVHJpZ2dlciYmdC5lYWNoKGkuY2xvc2VUcmlnZ2VyLGZ1bmN0aW9uKGUpe3ZhciBhPWkuY2xvc2VUcmlnZ2VyW2VdOyJ3aW5kb3ciIT1hLnNlbGVjdG9yPyJkb2N1bWVudCI9PWEuc2VsZWN0b3I/YS5rZXlDb2RlP3QoZG9jdW1lbnQpLm9uKGEuZXZlbnQsZnVuY3Rpb24odCl7dC5rZXlDb2RlPT1hLmtleUNvZGUmJm4oKX0pOnQoZG9jdW1lbnQpLm9uKGEuZXZlbnQsbik6dChkb2N1bWVudCkub24oYS5ldmVudCxpLmNsb3NlVHJpZ2dlcltlXS5zZWxlY3RvcixuKTpvLm9uKGEuZXZlbnQsbil9KSxzLmVhY2goZnVuY3Rpb24oKXtpZih0KHRoaXMpLmlzKCJhIikmJjE9PT10KHRoaXMpLmNoaWxkcmVuKCkubGVuZ3RoJiZ0KHRoaXMpLmNoaWxkcmVuKCkuaXMoImltZyIpJiYibm9uZSIhPT10KHRoaXMpLmNzcygiZGlzcGxheSIpJiYibm9uZSIhPT10KHRoaXMpLnBhcmVudHMoKS5jc3MoImRpc3BsYXkiKSl7dmFyIGU9dCgiPGRpdiAvPiIseyJjbGFzcyI6ImZsdWlkYm94LXdyYXAiLGNzczp7InotaW5kZXgiOmkuc3RhY2tJbmRleC1pLnN0YWNrSW5kZXhEZWx0YX19KSxhPXQodGhpcyk7YS5hZGRDbGFzcygiZmx1aWRib3giKS53cmFwSW5uZXIoZSkuZmluZCgiaW1nIikuY3NzKHtvcGFjaXR5OjF9KS5hZnRlcignPGRpdiBjbGFzcz0iZmx1aWRib3gtZ2hvc3QiIC8+JykuZWFjaChmdW5jdGlvbigpe3ZhciBlPXQodGhpcyk7ZS53aWR0aCgpPjAmJmUuaGVpZ2h0KCk+MD8oYyhhKSxhLmNsaWNrKHIpKTplLmxvYWQoZnVuY3Rpb24oKXtjKGEpLGEuY2xpY2socil9KX0pfX0pO3ZhciBmPWZ1bmN0aW9uKCl7bCgpO3ZhciBlPXQoImEuZmx1aWRib3guZmx1aWRib3gtb3BlbmVkIik7ZS5sZW5ndGg+MCYmZChlKX07cmV0dXJuIGkuZGVib3VuY2VSZXNpemU/dCh3aW5kb3cpLnNtYXJ0cmVzaXplKGYpOnQod2luZG93KS5yZXNpemUoZiksc319KGpRdWVyeSk7Cgk8L3NjcmlwdD4KCTxzY3JpcHQ+CgkKJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CgoJJCgiYm9keSIpLmFkZENsYXNzKCJsb2FkZWQiKTsKCgkkKGZ1bmN0aW9uICgpIHsKCQkkKCdhW3JlbD0ibGlnaHRib3giXScpLmZsdWlkYm94KCk7Cgl9KQoKfSk7CgoJCgk8L3NjcmlwdD4KCjwvYm9keT4KPC9odG1sPgoK