PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9IlVU Ri04Ij4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwg aW5pdGlhbC1zY2FsZT0xLjAiPgo8dGl0bGU+VGhlIEFlZ2VhbiBDb2xsZWN0aW9uIOKAlCBLYXN0 ZWwgSmV3ZWxyeTwvdGl0bGU+CjxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJLYXN0 ZWwncyBBZWdlYW4gQ29sbGVjdGlvbiDigJQgMThrIGdvbGQgYW5kIGRpYW1vbmRzIHNjdWxwdGVk IGJ5IHRoZSBzZWEuIERpc2NvdmVyIHRoZSBBZWdlYW4gQmFuZ2xlLCBkaWFtb25kIGhvb3BzLCB3 YXZlIHJpbmdzIGFuZCBtb3JlLiI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6 Ly9mb250cy5nb29nbGVhcGlzLmNvbSI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0 cHM6Ly9mb250cy5nc3RhdGljLmNvbSIgY3Jvc3NvcmlnaW4+CjxsaW5rIGhyZWY9Imh0dHBzOi8v Zm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9TWFyY2VsbHVzJmZhbWlseT1Db3Jtb3Jh bnQrR2FyYW1vbmQ6aXRhbCx3Z2h0QDAsNDAwOzAsNTAwOzEsNDAwOzEsNTAwJmZhbWlseT1Kb3N0 OndnaHRAMzAwOzQwMDs1MDAmZGlzcGxheT1zd2FwIiByZWw9InN0eWxlc2hlZXQiPgo8c3R5bGU+ Cjpyb290ewogIC0tYWJ5c3M6IzBCMUQyNzsKICAtLXNlYTojMTUzMTQwOwogIC0tcG9yY2VsYWlu OiNGNkY0RUY7CiAgLS1zYW5kOiNFREU4REU7CiAgLS1nb2xkOiNDNEExNUY7CiAgLS1nb2xkLWRl ZXA6IzlBN0IzRTsKICAtLW1pc3Q6IzkzQTlCMTsKICAtLWluazojMUQyQTMxOwogIC0taGFpcmxp bmU6cmdiYSgxOTYsMTYxLDk1LC4zNSk7Cn0KKnttYXJnaW46MDtwYWRkaW5nOjA7Ym94LXNpemlu Zzpib3JkZXItYm94fQpodG1se3Njcm9sbC1iZWhhdmlvcjpzbW9vdGh9CmJvZHl7CiAgZm9udC1m YW1pbHk6J0pvc3QnLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6MzAwO2NvbG9yOnZhcigtLWluayk7 CiAgYmFja2dyb3VuZDp2YXIoLS1wb3JjZWxhaW4pOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50 aWFsaWFzZWQ7b3ZlcmZsb3cteDpoaWRkZW47Cn0KaW1ne2Rpc3BsYXk6YmxvY2s7bWF4LXdpZHRo OjEwMCV9CmF7Y29sb3I6aW5oZXJpdDt0ZXh0LWRlY29yYXRpb246bm9uZX0KLnJ2e29wYWNpdHk6 MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgyNnB4KTt0cmFuc2l0aW9uOm9wYWNpdHkgMS4xcyBjdWJp Yy1iZXppZXIoLjIyLC42MSwuMzYsMSksdHJhbnNmb3JtIDEuMXMgY3ViaWMtYmV6aWVyKC4yMiwu NjEsLjM2LDEpfQoucnYuaW57b3BhY2l0eToxO3RyYW5zZm9ybTpub25lfQoucnYuZDF7dHJhbnNp dGlvbi1kZWxheTouMTVzfS5ydi5kMnt0cmFuc2l0aW9uLWRlbGF5Oi4zc30ucnYuZDN7dHJhbnNp dGlvbi1kZWxheTouNDVzfS5ydi5kNHt0cmFuc2l0aW9uLWRlbGF5Oi42c30KQG1lZGlhIChwcmVm ZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7CiAgLnJ2e29wYWNpdHk6MTt0cmFuc2Zvcm06bm9u ZTt0cmFuc2l0aW9uOm5vbmV9CiAgKnthbmltYXRpb246bm9uZSFpbXBvcnRhbnQ7dHJhbnNpdGlv bjpub25lIWltcG9ydGFudH0KfQpuYXZ7CiAgcG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDow O3JpZ2h0OjA7ei1pbmRleDo1MDsKICBkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1 c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOwogIHBhZGRpbmc6MjZweCBjbGFtcCgyNHB4LDV2 dyw2NHB4KTsKfQoud29yZG1hcmt7Zm9udC1mYW1pbHk6J01hcmNlbGx1cycsc2VyaWY7Zm9udC1z aXplOjIycHg7bGV0dGVyLXNwYWNpbmc6LjQyZW07Y29sb3I6I2ZmZjtwYWRkaW5nLWxlZnQ6LjQy ZW19Ci5uYXZsaW5rc3tkaXNwbGF5OmZsZXg7Z2FwOjM4cHh9Ci5uYXZsaW5rcyBhe2ZvbnQtc2l6 ZToxMXB4O2xldHRlci1zcGFjaW5nOi4yOGVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xv cjpyZ2JhKDI1NSwyNTUsMjU1LC44Mik7Zm9udC13ZWlnaHQ6NDAwO3Bvc2l0aW9uOnJlbGF0aXZl O3BhZGRpbmc6NHB4IDB9Ci5uYXZsaW5rcyBhOjphZnRlcntjb250ZW50OicnO3Bvc2l0aW9uOmFi c29sdXRlO2xlZnQ6MDtib3R0b206MDt3aWR0aDowO2hlaWdodDoxcHg7YmFja2dyb3VuZDp2YXIo LS1nb2xkKTt0cmFuc2l0aW9uOndpZHRoIC40cyBlYXNlfQoubmF2bGlua3MgYTpob3Zlcjo6YWZ0 ZXIsLm5hdmxpbmtzIGE6Zm9jdXMtdmlzaWJsZTo6YWZ0ZXJ7d2lkdGg6MTAwJX0KYTpmb2N1cy12 aXNpYmxlLGJ1dHRvbjpmb2N1cy12aXNpYmxle291dGxpbmU6MXB4IHNvbGlkIHZhcigtLWdvbGQp O291dGxpbmUtb2Zmc2V0OjRweH0KQG1lZGlhKG1heC13aWR0aDo3NjBweCl7Lm5hdmxpbmtze2Rp c3BsYXk6bm9uZX19Ci5oZXJve3Bvc2l0aW9uOnJlbGF0aXZlO21pbi1oZWlnaHQ6NzYwcHg7ZGlz cGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczo0NiUgNTQlO2JhY2tncm91bmQ6dmFyKC0t YWJ5c3MpfQouaGVyby1wYW5lbHsKICBwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7Zmxl eC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7CiAgcGFkZGluZzoxMjBw eCBjbGFtcCgyOHB4LDV2dyw3MnB4KSA5MHB4O3otaW5kZXg6MzsKfQouZXllYnJvd3sKICBmb250 LXNpemU6MTFweDtsZXR0ZXItc3BhY2luZzouNDRlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7 Y29sb3I6dmFyKC0tZ29sZCk7CiAgZm9udC13ZWlnaHQ6NDAwO2Rpc3BsYXk6ZmxleDthbGlnbi1p dGVtczpjZW50ZXI7Z2FwOjE4cHg7Cn0KLmV5ZWJyb3c6OmJlZm9yZXtjb250ZW50OicnO3dpZHRo OjQ0cHg7aGVpZ2h0OjFweDtiYWNrZ3JvdW5kOnZhcigtLWdvbGQpfQouaGVybyBoMXsKICBmb250 LWZhbWlseTonTWFyY2VsbHVzJyxzZXJpZjtmb250LXdlaWdodDo0MDA7Y29sb3I6I2ZmZjsKICBm b250LXNpemU6Y2xhbXAoNTZweCw3LjJ2dywxMTZweCk7bGluZS1oZWlnaHQ6Ljk4O2xldHRlci1z cGFjaW5nOi4wMmVtOwogIG1hcmdpbjoyOHB4IDAgOHB4Owp9Ci5oZXJvIGgxIC50aGlue2Rpc3Bs YXk6YmxvY2s7Zm9udC1zaXplOi40MmVtO2xldHRlci1zcGFjaW5nOi4zZW07Y29sb3I6dmFyKC0t bWlzdCk7bWFyZ2luLXRvcDoxNHB4O2ZvbnQtZmFtaWx5OidDb3Jtb3JhbnQgR2FyYW1vbmQnLHNl cmlmO2ZvbnQtc3R5bGU6aXRhbGljO3RleHQtdHJhbnNmb3JtOm5vbmV9Ci53YXZlLWxpbmV7d2lk dGg6bWluKDM0MHB4LDcwJSk7bWFyZ2luOjMwcHggMCAzNHB4fQoud2F2ZS1saW5lIHBhdGh7c3Ry b2tlOnZhcigtLWdvbGQpO3N0cm9rZS13aWR0aDoxLjY7ZmlsbDpub25lO3N0cm9rZS1kYXNoYXJy YXk6NjAwO3N0cm9rZS1kYXNob2Zmc2V0OjYwMDthbmltYXRpb246ZHJhdyAyLjZzIC45cyBjdWJp Yy1iZXppZXIoLjQsMCwuMiwxKSBmb3J3YXJkc30KQGtleWZyYW1lcyBkcmF3e3Rve3N0cm9rZS1k YXNob2Zmc2V0OjB9fQouaGVybyBwLmxlZGV7Y29sb3I6dmFyKC0tbWlzdCk7Zm9udC1zaXplOjE2 cHg7bGluZS1oZWlnaHQ6MS44NTttYXgtd2lkdGg6NDRjaDtsZXR0ZXItc3BhY2luZzouMDJlbX0K Lmhlcm8tY3Rhe21hcmdpbi10b3A6NDRweDtkaXNwbGF5OmZsZXg7Z2FwOjI2cHg7YWxpZ24taXRl bXM6Y2VudGVyO2ZsZXgtd3JhcDp3cmFwfQouYnRuewogIGRpc3BsYXk6aW5saW5lLWJsb2NrO2Zv bnQtc2l6ZToxMXB4O2xldHRlci1zcGFjaW5nOi4zZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNl O2ZvbnQtd2VpZ2h0OjQwMDsKICBwYWRkaW5nOjE3cHggNDJweDtib3JkZXI6MXB4IHNvbGlkIHZh cigtLWdvbGQpO2NvbG9yOnZhcigtLWdvbGQpOwogIHBvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93 OmhpZGRlbjt0cmFuc2l0aW9uOmNvbG9yIC40NXMgZWFzZTt6LWluZGV4OjE7Cn0KLmJ0bjo6YmVm b3Jle2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtiYWNrZ3JvdW5kOnZhcigt LWdvbGQpO3RyYW5zZm9ybTpzY2FsZVgoMCk7dHJhbnNmb3JtLW9yaWdpbjpsZWZ0O3RyYW5zaXRp b246dHJhbnNmb3JtIC40NXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7ei1pbmRleDotMX0KLmJ0 bjpob3Zlcjo6YmVmb3JlLC5idG46Zm9jdXMtdmlzaWJsZTo6YmVmb3Jle3RyYW5zZm9ybTpzY2Fs ZVgoMSl9Ci5idG46aG92ZXIsLmJ0bjpmb2N1cy12aXNpYmxle2NvbG9yOnZhcigtLWFieXNzKX0K LmJ0bi5naG9zdHtib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMzUpO2NvbG9yOnJnYmEo MjU1LDI1NSwyNTUsLjg1KX0KLmJ0bi5naG9zdDo6YmVmb3Jle2JhY2tncm91bmQ6I2ZmZn0uYnRu Lmdob3N0OmhvdmVye2NvbG9yOnZhcigtLWFieXNzKX0KLmhlcm8taW1ne3Bvc2l0aW9uOnJlbGF0 aXZlO292ZXJmbG93OmhpZGRlbn0KLmhlcm8taW1nIGltZ3t3aWR0aDoxMDAlO2hlaWdodDoxMDAl O29iamVjdC1maXQ6Y292ZXI7b2JqZWN0LXBvc2l0aW9uOmNlbnRlciAyNCU7YW5pbWF0aW9uOmti IDE4cyBlYXNlLW91dCBmb3J3YXJkc30KQGtleWZyYW1lcyBrYntmcm9te3RyYW5zZm9ybTpzY2Fs ZSgxLjEpfXRve3RyYW5zZm9ybTpzY2FsZSgxKX19Ci5oZXJvLWltZzo6YmVmb3Jle2NvbnRlbnQ6 Jyc7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt6LWluZGV4OjI7YmFja2dyb3VuZDpsaW5lYXIt Z3JhZGllbnQoOTBkZWcsdmFyKC0tYWJ5c3MpIDAlLHJnYmEoMTEsMjksMzksLjQyKSAyNiUscmdi YSgxMSwyOSwzOSwwKSA1NSUpfQouaGVyby1pbWc6OmFmdGVye2NvbnRlbnQ6Jyc7cG9zaXRpb246 YWJzb2x1dGU7aW5zZXQ6MDt6LWluZGV4OjI7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMGRl ZyxyZ2JhKDExLDI5LDM5LC41NSkgMCUscmdiYSgxMSwyOSwzOSwwKSAzMiUpfQoud29ybnsKICBw b3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjQ7cmlnaHQ6Y2xhbXAoMjBweCw0dncsNTRweCk7Ym90 dG9tOjM0cHg7dGV4dC1hbGlnbjpyaWdodDsKICBmb250LXNpemU6MTAuNXB4O2xldHRlci1zcGFj aW5nOi4zZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUs Ljc1KTsKfQoud29ybiBzdHJvbmd7ZGlzcGxheTpibG9jaztmb250LWZhbWlseTonQ29ybW9yYW50 IEdhcmFtb25kJyxzZXJpZjtmb250LXN0eWxlOml0YWxpYztmb250LXdlaWdodDo1MDA7dGV4dC10 cmFuc2Zvcm06bm9uZTtsZXR0ZXItc3BhY2luZzouMDZlbTtmb250LXNpemU6MTdweDtjb2xvcjoj ZmZmO21hcmdpbi10b3A6NXB4fQouc2Nyb2xsY3Vle3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6NTAl O2JvdHRvbToyNnB4O3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO3otaW5kZXg6NTt3aWR0aDox cHg7aGVpZ2h0OjU2cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodmFyKC0tZ29sZCksdHJh bnNwYXJlbnQpO2FuaW1hdGlvbjpjdWUgMi40cyBlYXNlLWluLW91dCBpbmZpbml0ZX0KQGtleWZy YW1lcyBjdWV7MCUsMTAwJXtvcGFjaXR5Oi45O3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHNj YWxlWSgxKX01MCV7b3BhY2l0eTouMzU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgc2NhbGVZ KC42KX19CkBtZWRpYShtYXgtd2lkdGg6OTAwcHgpewogIC5oZXJve2dyaWQtdGVtcGxhdGUtY29s dW1uczoxZnI7bWluLWhlaWdodDowfQogIC5oZXJvLWltZ3tvcmRlcjotMTtoZWlnaHQ6NDYwcHg7 bWluLWhlaWdodDowfQogIC5oZXJvLWltZzo6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRp ZW50KDBkZWcsdmFyKC0tYWJ5c3MpIDAlLHJnYmEoMTEsMjksMzksLjE1KSA0MCUscmdiYSgxMSwy OSwzOSwwKSA3MCUpfQogIC5oZXJvLXBhbmVse3BhZGRpbmc6NDRweCAyOHB4IDgwcHh9CiAgLnNj cm9sbGN1ZXtkaXNwbGF5Om5vbmV9Cn0Kc2VjdGlvbntwYWRkaW5nOmNsYW1wKDkwcHgsMTF2dywx NTBweCkgY2xhbXAoMjRweCw2dncsODBweCl9Ci5jZW50ZXJ7bWF4LXdpZHRoOjgyMHB4O21hcmdp bjowIGF1dG87dGV4dC1hbGlnbjpjZW50ZXJ9Ci5raWNrZXJ7Zm9udC1zaXplOjExcHg7bGV0dGVy LXNwYWNpbmc6LjQ0ZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2NvbG9yOnZhcigtLWdvbGQt ZGVlcCk7Zm9udC13ZWlnaHQ6NDAwO21hcmdpbi1ib3R0b206MjZweH0KLmludHJvLWxlZGV7CiAg Zm9udC1mYW1pbHk6J0Nvcm1vcmFudCBHYXJhbW9uZCcsc2VyaWY7Zm9udC1zdHlsZTppdGFsaWM7 Zm9udC13ZWlnaHQ6NDAwOwogIGZvbnQtc2l6ZTpjbGFtcCgyNnB4LDMuNHZ3LDQwcHgpO2xpbmUt aGVpZ2h0OjEuNDU7Y29sb3I6dmFyKC0taW5rKTsKfQouaW50cm8tbGVkZSBlbXtjb2xvcjp2YXIo LS1nb2xkLWRlZXApfQouaW50cm8tYm9keXttYXJnaW4tdG9wOjM0cHg7Zm9udC1zaXplOjE2LjVw eDtsaW5lLWhlaWdodDoyLjE7Y29sb3I6IzRBNTc1RTttYXgtd2lkdGg6NThjaDttYXJnaW4tbGVm dDphdXRvO21hcmdpbi1yaWdodDphdXRvO2xldHRlci1zcGFjaW5nOi4wMmVtfQojY29sbGVjdGlv biAua2lja2Vye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50 OmNlbnRlcjtnYXA6MjRweDttYXJnaW4tYm90dG9tOjM0cHh9CiNjb2xsZWN0aW9uIC5raWNrZXI6 OmJlZm9yZSwjY29sbGVjdGlvbiAua2lja2VyOjphZnRlcntjb250ZW50OicnO3dpZHRoOjU4cHg7 aGVpZ2h0OjFweDtiYWNrZ3JvdW5kOnZhcigtLWdvbGQpfQouZGl2aWRlci13YXZle3dpZHRoOjE3 MHB4O21hcmdpbjo1MnB4IGF1dG8gMDtvcGFjaXR5Oi44NX0KLmRpdmlkZXItd2F2ZSBwYXRoe3N0 cm9rZTp2YXIoLS1nb2xkKTtzdHJva2Utd2lkdGg6MS40O2ZpbGw6bm9uZX0KLmZlYXR1cmVke2Jh Y2tncm91bmQ6dmFyKC0tc2FuZCk7fQouZmVhdHVyZWQtZ3JpZHttYXgtd2lkdGg6MTI0MHB4O21h cmdpbjowIGF1dG87ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxLjE1ZnIgLjg1 ZnI7Z2FwOmNsYW1wKDQwcHgsNnZ3LDk2cHgpO2FsaWduLWl0ZW1zOmNlbnRlcn0KLmZyYW1le3Bv c2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOiNmZmZ9Ci5mcmFtZTo6 YWZ0ZXJ7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDoxNHB4O2JvcmRlcjoxcHgg c29saWQgdmFyKC0taGFpcmxpbmUpO3BvaW50ZXItZXZlbnRzOm5vbmV9Ci5mcmFtZSAuZ3RyYWNr IGltZ3t0cmFuc2l0aW9uOm9wYWNpdHkgLjdzIGVhc2UsIHRyYW5zZm9ybSAxLjRzIGN1YmljLWJl emllciguMjIsLjYxLC4zNiwxKX0KLmZyYW1lOmhvdmVyIC5ndHJhY2sgaW1nLm9ue3RyYW5zZm9y bTpzY2FsZSgxLjA1KX0KLnBudW17Zm9udC1mYW1pbHk6J0Nvcm1vcmFudCBHYXJhbW9uZCcsc2Vy aWY7Zm9udC1zdHlsZTppdGFsaWM7Zm9udC1zaXplOjIwcHg7Y29sb3I6dmFyKC0tZ29sZC1kZWVw KTtsZXR0ZXItc3BhY2luZzouMDhlbX0KLnBuYW1le2ZvbnQtZmFtaWx5OidNYXJjZWxsdXMnLHNl cmlmO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6Y2xhbXAoMzRweCwzLjZ2dyw1MnB4KTtsZXR0 ZXItc3BhY2luZzouMDRlbTtjb2xvcjp2YXIoLS1pbmspO21hcmdpbjoxNHB4IDAgMjBweH0KLnBk ZXNje2ZvbnQtc2l6ZToxNS41cHg7bGluZS1oZWlnaHQ6Mjtjb2xvcjojNEE1NzVFO2xldHRlci1z cGFjaW5nOi4wMmVtO21heC13aWR0aDo0OGNofQoucG1ldGF7bWFyZ2luOjM0cHggMCAzOHB4O2Rp c3BsYXk6Z3JpZDtnYXA6MTRweH0KLnBtZXRhIGRpdntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250 ZW50OnNwYWNlLWJldHdlZW47Z2FwOjIwcHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgy OSw0Miw0OSwuMTIpO3BhZGRpbmctYm90dG9tOjEzcHg7Zm9udC1zaXplOjEycHg7bGV0dGVyLXNw YWNpbmc6LjIyZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfQoucG1ldGEgc3BhbjpsYXN0LWNo aWxke2NvbG9yOnZhcigtLWdvbGQtZGVlcCk7dGV4dC10cmFuc2Zvcm06bm9uZTtsZXR0ZXItc3Bh Y2luZzouMDRlbTtmb250LXNpemU6MTMuNXB4fQouYnRuLmRhcmt7Ym9yZGVyLWNvbG9yOnZhcigt LWluayk7Y29sb3I6dmFyKC0taW5rKX0KLmJ0bi5kYXJrOjpiZWZvcmV7YmFja2dyb3VuZDp2YXIo LS1pbmspfQouYnRuLmRhcms6aG92ZXIsLmJ0bi5kYXJrOmZvY3VzLXZpc2libGV7Y29sb3I6dmFy KC0tcG9yY2VsYWluKX0KQG1lZGlhKG1heC13aWR0aDo5MDBweCl7LmZlYXR1cmVkLWdyaWR7Z3Jp ZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn19Ci5jYXJkIC5mcmFtZXttYXJnaW4tYm90dG9tOjMwcHh9 Ci5jYXJkIC5wbmFtZXtmb250LXNpemU6Y2xhbXAoMjZweCwyLjZ2dywzNHB4KTttYXJnaW46MTBw eCAwIDE0cHh9Ci5jYXJkIC5wZGVzY3tmb250LXNpemU6MTQuNXB4O21heC13aWR0aDpub25lfQou Y2FyZCAuc2hvcHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTRw eDttYXJnaW4tdG9wOjIycHg7Zm9udC1zaXplOjExcHg7bGV0dGVyLXNwYWNpbmc6LjNlbTt0ZXh0 LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6dmFyKC0tZ29sZC1kZWVwKTtmb250LXdlaWdodDo0 MDB9Ci5jYXJkIC5zaG9wOjphZnRlcntjb250ZW50OicnO3dpZHRoOjM4cHg7aGVpZ2h0OjFweDti YWNrZ3JvdW5kOnZhcigtLWdvbGQtZGVlcCk7dHJhbnNpdGlvbjp3aWR0aCAuNHMgZWFzZX0KLmNh cmQgLnNob3A6aG92ZXI6OmFmdGVye3dpZHRoOjYwcHh9Ci5wcmljZXtmb250LWZhbWlseTonQ29y bW9yYW50IEdhcmFtb25kJyxzZXJpZjtmb250LXN0eWxlOml0YWxpYztmb250LXNpemU6MTlweDtj b2xvcjp2YXIoLS1pbmspO21hcmdpbi10b3A6MTZweH0KLmdhbHtwb3NpdGlvbjpyZWxhdGl2ZX0K LmdhbCAuZ3RyYWNre3Bvc2l0aW9uOnJlbGF0aXZlO2FzcGVjdC1yYXRpbzoxLzE7b3ZlcmZsb3c6 aGlkZGVufQouZ2FsIC5ndHJhY2sgaW1ne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7d2lkdGg6 MTAwJTtoZWlnaHQ6MTAwJTtvYmplY3QtZml0OmNvdmVyO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9w YWNpdHkgLjdzIGVhc2V9Ci5nYWwgLmd0cmFjayBpbWcub257b3BhY2l0eToxfQouZ2FsIC5ndHJh Y2sgaW1nW2RhdGEtaz0ia2FseXBzbyJde29iamVjdC1maXQ6Y29udGFpbjtwYWRkaW5nOjM0cHg7 Ym94LXNpemluZzpib3JkZXItYm94O2JhY2tncm91bmQ6I2ZmZn0KQG1lZGlhKG1heC13aWR0aDo2 NDBweCl7LmdhbCAuZ3RyYWNrIGltZ1tkYXRhLWs9ImthbHlwc28iXXtwYWRkaW5nOjI2cHh9fQou Z25hdnsKICBwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01 MCUpO3otaW5kZXg6NTsKICB3aWR0aDo0MnB4O2hlaWdodDo0MnB4O2JvcmRlcjoxcHggc29saWQg cmdiYSgyOSw0Miw0OSwuMik7YmFja2dyb3VuZDpyZ2JhKDI0NiwyNDQsMjM5LC44OCk7CiAgY29s b3I6dmFyKC0taW5rKTtmb250LXNpemU6MThweDtsaW5lLWhlaWdodDoxO2N1cnNvcjpwb2ludGVy O2ZvbnQtZmFtaWx5OidKb3N0JyxzYW5zLXNlcmlmOwogIGRpc3BsYXk6ZmxleDthbGlnbi1pdGVt czpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjNz LGJvcmRlci1jb2xvciAuM3Msb3BhY2l0eSAuM3M7CiAgb3BhY2l0eTowOwp9Ci5nYWw6aG92ZXIg LmduYXYsLmduYXY6Zm9jdXMtdmlzaWJsZXtvcGFjaXR5OjF9Ci5nbmF2OmhvdmVye2JhY2tncm91 bmQ6dmFyKC0tZ29sZCk7Ym9yZGVyLWNvbG9yOnZhcigtLWdvbGQpO2NvbG9yOiNmZmZ9Ci5nbmF2 LnByZXZ7bGVmdDoxMnB4fS5nbmF2Lm5leHR7cmlnaHQ6MTJweH0KLmdkb3Rze3Bvc2l0aW9uOmFi c29sdXRlO2xlZnQ6MDtyaWdodDowO2JvdHRvbToxNHB4O3otaW5kZXg6NTtkaXNwbGF5OmZsZXg7 Z2FwOjhweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfQouZ2RvdHMgYnV0dG9ue3dpZHRoOjdweDto ZWlnaHQ6N3B4O2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjoxcHggc29saWQgdmFyKC0tZ29sZC1k ZWVwKTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MDt0cmFu c2l0aW9uOmJhY2tncm91bmQgLjNzfQouZ2RvdHMgYnV0dG9uLm9ue2JhY2tncm91bmQ6dmFyKC0t Z29sZC1kZWVwKX0KLmdhbC5zaW5nbGUgLmduYXYsLmdhbC5zaW5nbGUgLmdkb3Rze2Rpc3BsYXk6 bm9uZX0KQG1lZGlhKGhvdmVyOm5vbmUpey5nYWwgLmduYXZ7b3BhY2l0eToxfX0KLmNncmlke21h eC13aWR0aDoxMjQwcHg7bWFyZ2luOjAgYXV0bztkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1j b2x1bW5zOnJlcGVhdCgzLDFmcik7Z2FwOmNsYW1wKDMycHgsNHZ3LDU2cHgpIGNsYW1wKDI4cHgs My41dncsNDRweCl9CkBtZWRpYShtYXgtd2lkdGg6MTAyMHB4KXsuY2dyaWR7Z3JpZC10ZW1wbGF0 ZS1jb2x1bW5zOjFmciAxZnJ9fQpAbWVkaWEobWF4LXdpZHRoOjY0MHB4KXsuY2dyaWR7Z3JpZC10 ZW1wbGF0ZS1jb2x1bW5zOjFmcn19Ci5zZWFiYW5ke2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50 KDE2MGRlZyx2YXIoLS1hYnlzcykgMCUsdmFyKC0tc2VhKSAxMDAlKTtwb3NpdGlvbjpyZWxhdGl2 ZTtvdmVyZmxvdzpoaWRkZW47dGV4dC1hbGlnbjpjZW50ZXJ9Ci5zZWFiYW5kOjpiZWZvcmV7CiAg Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDotNDAlO29wYWNpdHk6LjE0OwogIGJh Y2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgNjAlIDQwJSBhdCAzMCUgNDAlLHZhcigt LWdvbGQpLHRyYW5zcGFyZW50IDYwJSksCiAgICAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoZWxs aXBzZSA1MCUgMzUlIGF0IDcyJSA2NSUsIzNFN0E4Qyx0cmFuc3BhcmVudCA2MCUpOwogIGFuaW1h dGlvbjpjYXVzdGljIDI2cyBlYXNlLWluLW91dCBpbmZpbml0ZSBhbHRlcm5hdGU7Cn0KQGtleWZy YW1lcyBjYXVzdGlje2Zyb217dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNCUsLTMlKSBzY2FsZSgxKX10 b3t0cmFuc2Zvcm06dHJhbnNsYXRlKDUlLDQlKSBzY2FsZSgxLjEyKX19Ci5zZWFiYW5kIC5pbm5l cntwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjI7bWF4LXdpZHRoOjg0MHB4O21hcmdpbjowIGF1 dG99Ci5zZWFiYW5kIC5raWNrZXJ7Y29sb3I6dmFyKC0tZ29sZCl9Ci5zZWFiYW5kIGJsb2NrcXVv dGV7CiAgZm9udC1mYW1pbHk6J0Nvcm1vcmFudCBHYXJhbW9uZCcsc2VyaWY7Zm9udC1zdHlsZTpp dGFsaWM7Zm9udC13ZWlnaHQ6NDAwOwogIGZvbnQtc2l6ZTpjbGFtcCgyOHB4LDR2dyw0NnB4KTts aW5lLWhlaWdodDoxLjQ7Y29sb3I6I2ZmZjsKfQouc2VhYmFuZCAuYXR0cnttYXJnaW4tdG9wOjMw cHg7Zm9udC1zaXplOjExcHg7bGV0dGVyLXNwYWNpbmc6LjRlbTt0ZXh0LXRyYW5zZm9ybTp1cHBl cmNhc2U7Y29sb3I6dmFyKC0tbWlzdCl9Ci5jcmFmdC1jb2xze3Bvc2l0aW9uOnJlbGF0aXZlO3ot aW5kZXg6MjttYXgtd2lkdGg6MTAwMHB4O21hcmdpbjo3MHB4IGF1dG8gMDtkaXNwbGF5OmdyaWQ7 Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLDFmcik7Z2FwOjQ0cHg7dGV4dC1hbGlnbjpj ZW50ZXJ9Ci5jcmFmdC1jb2xzIGgze2ZvbnQtZmFtaWx5OidNYXJjZWxsdXMnLHNlcmlmO2ZvbnQt d2VpZ2h0OjQwMDtmb250LXNpemU6MTlweDtsZXR0ZXItc3BhY2luZzouMTRlbTtjb2xvcjojZmZm O21hcmdpbjowIDAgMTRweH0KLmNyYWZ0LWNvbHMgcHtmb250LXNpemU6MTMuNXB4O2xpbmUtaGVp Z2h0OjEuOTU7Y29sb3I6dmFyKC0tbWlzdCk7bGV0dGVyLXNwYWNpbmc6LjAzZW19Ci5jcmFmdC1j b2xzIC5nbHlwaHt3aWR0aDo0NHB4O21hcmdpbjowIGF1dG8gMjJweH0KLmNyYWZ0LWNvbHMgLmds eXBoIHBhdGgsLmNyYWZ0LWNvbHMgLmdseXBoIGNpcmNsZXtzdHJva2U6dmFyKC0tZ29sZCk7c3Ry b2tlLXdpZHRoOjEuMztmaWxsOm5vbmV9CkBtZWRpYShtYXgtd2lkdGg6NzYwcHgpey5jcmFmdC1j b2xze2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7Z2FwOjUycHh9fQouY3Rhe3RleHQtYWxpZ246 Y2VudGVyfQouY3RhIGgye2ZvbnQtZmFtaWx5OidNYXJjZWxsdXMnLHNlcmlmO2ZvbnQtd2VpZ2h0 OjQwMDtmb250LXNpemU6Y2xhbXAoMzRweCw0LjZ2dyw1OHB4KTtsZXR0ZXItc3BhY2luZzouMDVl bTtjb2xvcjp2YXIoLS1pbmspO21hcmdpbi1ib3R0b206MjJweH0KLmN0YSBwe2ZvbnQtc2l6ZTox NXB4O2xpbmUtaGVpZ2h0OjI7Y29sb3I6IzRBNTc1RTttYXgtd2lkdGg6NTJjaDttYXJnaW46MCBh dXRvIDQ0cHg7bGV0dGVyLXNwYWNpbmc6LjAyZW19Ci5jdGEgLmhlcm8tY3Rhe2p1c3RpZnktY29u dGVudDpjZW50ZXI7bWFyZ2luLXRvcDowfQpmb290ZXJ7YmFja2dyb3VuZDp2YXIoLS1hYnlzcyk7 cGFkZGluZzo3MHB4IGNsYW1wKDI0cHgsNnZ3LDgwcHgpIDQ0cHg7dGV4dC1hbGlnbjpjZW50ZXJ9 CmZvb3RlciAud29yZG1hcmt7Zm9udC1zaXplOjI2cHg7ZGlzcGxheTpibG9jazttYXJnaW4tYm90 dG9tOjI2cHh9CmZvb3RlciAudGFne2ZvbnQtZmFtaWx5OidDb3Jtb3JhbnQgR2FyYW1vbmQnLHNl cmlmO2ZvbnQtc3R5bGU6aXRhbGljO2NvbG9yOnZhcigtLW1pc3QpO2ZvbnQtc2l6ZToxNnB4O21h cmdpbi1ib3R0b206MzZweH0KZm9vdGVyIC5mbmF2e2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRl bnQ6Y2VudGVyO2dhcDozNHB4O2ZsZXgtd3JhcDp3cmFwO21hcmdpbi1ib3R0b206NDRweH0KZm9v dGVyIC5mbmF2IGF7Zm9udC1zaXplOjEwLjVweDtsZXR0ZXItc3BhY2luZzouMjhlbTt0ZXh0LXRy YW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNil9CmZvb3RlciAuZm5h diBhOmhvdmVye2NvbG9yOnZhcigtLWdvbGQpfQpmb290ZXIgLmxlZ2Fse2ZvbnQtc2l6ZToxMC41 cHg7bGV0dGVyLXNwYWNpbmc6LjE2ZW07Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMzIpfQoua21v ZGFse3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt3aWR0aDoxMDAlO2Rpc3BsYXk6bm9uZTt6LWlu ZGV4OjIwMH0KLmttb2RhbC5vcGVue2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVz dGlmeS1jb250ZW50OmNlbnRlcn0KLmttb2RhbCAua2JhY2t7cG9zaXRpb246YWJzb2x1dGU7aW5z ZXQ6MDtiYWNrZ3JvdW5kOnJnYmEoMTEsMjksMzksLjU1KTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigz cHgpfQoua3BhbmVse3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbjowO3dpZHRoOm1pbigxMDYwcHgs OTIlKTttYXgtaGVpZ2h0OmNhbGMoMTAwJSAtIDQ4cHgpO292ZXJmbG93OmF1dG87YmFja2dyb3Vu ZDp2YXIoLS1wb3JjZWxhaW4pO2JveC1zaGFkb3c6MCAzMHB4IDgwcHggcmdiYSgwLDAsMCwuMzUp fQoua2Nsb3Nle3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxNHB4O3JpZ2h0OjE0cHg7ei1pbmRleDo1 O3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI5LDQyLDQ5LC4y NSk7YmFja2dyb3VuZDp2YXIoLS1wb3JjZWxhaW4pO2ZvbnQtc2l6ZToyMHB4O2N1cnNvcjpwb2lu dGVyO2ZvbnQtZmFtaWx5OidKb3N0JyxzYW5zLXNlcmlmfQoua2Nsb3NlOmhvdmVye2JhY2tncm91 bmQ6dmFyKC0tZ29sZCk7Ym9yZGVyLWNvbG9yOnZhcigtLWdvbGQpO2NvbG9yOiNmZmZ9Ci5rZ3Jp ZHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnJ9Ci5raW5mb3twYWRk aW5nOjQ0cHggNDRweCA0MHB4fQoua2luZm8gLmtuYW1le2ZvbnQtZmFtaWx5OidNYXJjZWxsdXMn LHNlcmlmO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6Y2xhbXAoMjhweCwzdncsMzhweCk7bGV0 dGVyLXNwYWNpbmc6LjA0ZW07bWFyZ2luOjZweCAwIDZweH0KLmtpbmZvIC5rcHJpY2V7Zm9udC1m YW1pbHk6J0Nvcm1vcmFudCBHYXJhbW9uZCcsc2VyaWY7Zm9udC1zdHlsZTppdGFsaWM7Zm9udC1z aXplOjI0cHg7Y29sb3I6dmFyKC0tZ29sZC1kZWVwKTttYXJnaW4tYm90dG9tOjIwcHh9Ci5raW5m byAua2Rlc2N7Zm9udC1zaXplOjE0LjVweDtsaW5lLWhlaWdodDoxLjk1O2NvbG9yOiM0QTU3NUU7 bGV0dGVyLXNwYWNpbmc6LjAyZW07bWFyZ2luLWJvdHRvbToyNnB4fQoua21ldGF7ZGlzcGxheTpn cmlkO2dhcDoxMXB4O21hcmdpbi1ib3R0b206MzBweH0KLmttZXRhIGRpdntkaXNwbGF5OmZsZXg7 anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjE4cHg7Ym9yZGVyLWJvdHRvbToxcHgg c29saWQgcmdiYSgyOSw0Miw0OSwuMTIpO3BhZGRpbmctYm90dG9tOjEwcHg7Zm9udC1zaXplOjEx cHg7bGV0dGVyLXNwYWNpbmc6LjJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9Ci5rbWV0YSBz cGFuOmxhc3QtY2hpbGR7Y29sb3I6dmFyKC0tZ29sZC1kZWVwKTt0ZXh0LXRyYW5zZm9ybTpub25l O2xldHRlci1zcGFjaW5nOi4wNGVtO2ZvbnQtc2l6ZToxM3B4O3RleHQtYWxpZ246cmlnaHR9Ci5r bm90ZXN7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6Mjtjb2xvcjojN2Q4YTkxO2xldHRlci1z cGFjaW5nOi4wM2VtO21hcmdpbi10b3A6MjJweH0KLmthZGR7d2lkdGg6MTAwJTtwYWRkaW5nOjE4 cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1pbmspO2JhY2tncm91bmQ6dmFyKC0taW5rKTtjb2xv cjp2YXIoLS1wb3JjZWxhaW4pO2ZvbnQtZmFtaWx5OidKb3N0JyxzYW5zLXNlcmlmO2ZvbnQtc2l6 ZToxMnB4O2xldHRlci1zcGFjaW5nOi4zZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2N1cnNv cjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuM3MsYm9yZGVyLWNvbG9yIC4zc30KLmth ZGQ6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1nb2xkLWRlZXApO2JvcmRlci1jb2xvcjp2YXIoLS1n b2xkLWRlZXApfQoua2FkZC5hZGRlZHtiYWNrZ3JvdW5kOnZhcigtLWdvbGQpO2JvcmRlci1jb2xv cjp2YXIoLS1nb2xkKTtjb2xvcjp2YXIoLS1hYnlzcyl9Ci5rY2FydC1yb3d7ZGlzcGxheTpmbGV4 O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTZw eDtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDI5LDQyLDQ5LC4xMik7cGFkZGluZzoxNnB4 IDB9Ci5rY2FydC1yb3cgLm57Zm9udC1mYW1pbHk6J01hcmNlbGx1cycsc2VyaWY7Zm9udC1zaXpl OjE3cHh9Ci5rY2FydC1yb3cgLnB7Zm9udC1mYW1pbHk6J0Nvcm1vcmFudCBHYXJhbW9uZCcsc2Vy aWY7Zm9udC1zdHlsZTppdGFsaWM7Zm9udC1zaXplOjE3cHg7Y29sb3I6dmFyKC0tZ29sZC1kZWVw KX0KLmtjYXJ0LXJvdyBidXR0b257Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDpub25lO2NvbG9yOiNh NTU7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOjExcHg7bGV0dGVyLXNwYWNpbmc6LjJlbTt0ZXh0 LXRyYW5zZm9ybTp1cHBlcmNhc2U7Zm9udC1mYW1pbHk6J0pvc3QnLHNhbnMtc2VyaWZ9Ci5rdG90 YWx7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2ZvbnQtc2l6ZTox M3B4O2xldHRlci1zcGFjaW5nOi4yNGVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtwYWRkaW5n OjIycHggMCAyNnB4fQoua3RvdGFsIHNwYW46bGFzdC1jaGlsZHtmb250LWZhbWlseTonQ29ybW9y YW50IEdhcmFtb25kJyxzZXJpZjtmb250LXN0eWxlOml0YWxpYztmb250LXNpemU6MjJweDtjb2xv cjp2YXIoLS1pbmspO2xldHRlci1zcGFjaW5nOi4wMmVtfQoua3RvYXN0e3Bvc2l0aW9uOmFic29s dXRlO2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO2JhY2tncm91bmQ6dmFyKC0t YWJ5c3MpO2NvbG9yOiNmZmY7Zm9udC1zaXplOjExLjVweDtsZXR0ZXItc3BhY2luZzouMjJlbTt0 ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7cGFkZGluZzoxNHB4IDI2cHg7ei1pbmRleDozMDA7ZGlz cGxheTpub25lfQoua2NhcnRsaW5re2N1cnNvcjpwb2ludGVyfQoubWhpZGV7ZGlzcGxheTpub25l IWltcG9ydGFudH0KW2RhdGEtcHJvZF0gLmZyYW1le2N1cnNvcjpwb2ludGVyfQpbZGF0YS1wcm9k XSAucG5hbWV7Y3Vyc29yOnBvaW50ZXJ9Ci5rbWV0YWx7ZGlzcGxheTpmbGV4O2dhcDoxMnB4O21h cmdpbjowIDAgMzRweH0KLmtncmlkIC5rbWV0YWx7bWFyZ2luOjAgMCAyNHB4fQoua21ldGFsYnRu e3BhZGRpbmc6MTNweCAyNHB4O2JvcmRlcjoxcHggc29saWQgcmdiYSgyOSw0Miw0OSwuMyk7YmFj a2dyb3VuZDp0cmFuc3BhcmVudDtmb250LWZhbWlseTonSm9zdCcsc2Fucy1zZXJpZjtmb250LXNp emU6MTFweDtsZXR0ZXItc3BhY2luZzouMjRlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y3Vy c29yOnBvaW50ZXI7Y29sb3I6dmFyKC0taW5rKTt0cmFuc2l0aW9uOmFsbCAuM3N9Ci5rbWV0YWxi dG46aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWdvbGQtZGVlcCl9Ci5rbWV0YWxidG4ub257Ym9y ZGVyLWNvbG9yOnZhcigtLWdvbGQtZGVlcCk7YmFja2dyb3VuZDp2YXIoLS1nb2xkLWRlZXApO2Nv bG9yOiNmZmZ9Ci5rZm9ybXtkaXNwbGF5OmdyaWQ7Z2FwOjE2cHg7bWFyZ2luLXRvcDoyNnB4fQou a2Zvcm0gbGFiZWx7Zm9udC1zaXplOjEwLjVweDtsZXR0ZXItc3BhY2luZzouMjRlbTt0ZXh0LXRy YW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6IzdkOGE5MTtkaXNwbGF5OmJsb2NrO21hcmdpbi1ib3R0 b206N3B4fQoua2Zvcm0gaW5wdXQsLmtmb3JtIHRleHRhcmVhe3dpZHRoOjEwMCU7cGFkZGluZzox NHB4IDE2cHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI5LDQyLDQ5LC4yNSk7YmFja2dyb3VuZDoj ZmZmO2ZvbnQtZmFtaWx5OidKb3N0JyxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2NvbG9yOnZh cigtLWluayk7bGV0dGVyLXNwYWNpbmc6LjAyZW19Ci5rZm9ybSBpbnB1dDpmb2N1cywua2Zvcm0g dGV4dGFyZWE6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlci1jb2xvcjp2YXIoLS1nb2xkLWRlZXAp fQoua2Zvcm0gdGV4dGFyZWF7bWluLWhlaWdodDo5NnB4O3Jlc2l6ZTp2ZXJ0aWNhbH0KLmtmb3Jt IC5rcm93e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6MTZw eH0KLmtlcnJ7Y29sb3I6I2EzMztmb250LXNpemU6MTJweDtsZXR0ZXItc3BhY2luZzouMDZlbTtk aXNwbGF5Om5vbmU7bWFyZ2luLXRvcDo0cHh9Ci5raHB7cG9zaXRpb246YWJzb2x1dGU7bGVmdDot OTk5OXB4O29wYWNpdHk6MDtoZWlnaHQ6MDtvdmVyZmxvdzpoaWRkZW59Ci5rZm9ybSBzZWxlY3R7 d2lkdGg6MTAwJTtwYWRkaW5nOjE0cHggMTZweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjksNDIs NDksLjI1KTtiYWNrZ3JvdW5kOiNmZmY7Zm9udC1mYW1pbHk6J0pvc3QnLHNhbnMtc2VyaWY7Zm9u dC1zaXplOjE0cHg7Y29sb3I6dmFyKC0taW5rKTtsZXR0ZXItc3BhY2luZzouMDJlbTthcHBlYXJh bmNlOm5vbmU7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0 PXV0ZjgsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzEw JyBoZWlnaHQ9JzYnJTNFJTNDcGF0aCBkPSdNMCAwbDUgNiA1LTZ6JyBmaWxsPSclMjM5QTdCM0Un LyUzRSUzQy9zdmclM0UiKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1w b3NpdGlvbjpyaWdodCAxNnB4IGNlbnRlcn0KLmtmb3JtIHNlbGVjdDpmb2N1c3tvdXRsaW5lOm5v bmU7Ym9yZGVyLWNvbG9yOnZhcigtLWdvbGQtZGVlcCl9Ci5rZm9ybSBpbnB1dFt0eXBlPWRhdGVd e2NvbG9yOnZhcigtLWluayl9Ci5rYm9vay1ncmlke2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRl LWNvbHVtbnM6LjhmciAxLjJmcjttaW4taGVpZ2h0OjUyMHB4fQoua2Jvb2stc2lkZXtiYWNrZ3Jv dW5kOmxpbmVhci1ncmFkaWVudCgxNjVkZWcsdmFyKC0tYWJ5c3MpIDAlLHZhcigtLXNlYSkgMTAw JSk7Y29sb3I6I2ZmZjtwYWRkaW5nOjQ4cHggMzhweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rp b246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXJ9Ci5rYm9vay1zaWRlIC5raWNrZXJ7Y29s b3I6dmFyKC0tZ29sZCk7bWFyZ2luLWJvdHRvbToyMHB4fQoua2Jvb2stc2lkZSBoM3tmb250LWZh bWlseTonTWFyY2VsbHVzJyxzZXJpZjtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOmNsYW1wKDI0 cHgsMi40dncsMzJweCk7bGV0dGVyLXNwYWNpbmc6LjA0ZW07bWFyZ2luLWJvdHRvbToxNnB4fQou a2Jvb2stc2lkZSBwe2ZvbnQtc2l6ZToxMy41cHg7bGluZS1oZWlnaHQ6MS45NTtjb2xvcjp2YXIo LS1taXN0KTtsZXR0ZXItc3BhY2luZzouMDNlbX0KLmtib29rLXNpZGUgdWx7bGlzdC1zdHlsZTpu b25lO21hcmdpbi10b3A6MjZweDtkaXNwbGF5OmdyaWQ7Z2FwOjEycHh9Ci5rYm9vay1zaWRlIGxp e2ZvbnQtc2l6ZToxMXB4O2xldHRlci1zcGFjaW5nOi4yMmVtO3RleHQtdHJhbnNmb3JtOnVwcGVy Y2FzZTtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC44NSk7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1z OmNlbnRlcjtnYXA6MTJweH0KLmtib29rLXNpZGUgbGk6OmJlZm9yZXtjb250ZW50OicnO3dpZHRo OjE4cHg7aGVpZ2h0OjFweDtiYWNrZ3JvdW5kOnZhcigtLWdvbGQpfQoua2Jvb2stc2lkZSAua2Fk ZHJ7bWFyZ2luLXRvcDozMHB4O2ZvbnQtZmFtaWx5OidDb3Jtb3JhbnQgR2FyYW1vbmQnLHNlcmlm O2ZvbnQtc3R5bGU6aXRhbGljO2ZvbnQtc2l6ZToxNnB4O2NvbG9yOiNmZmZ9CkBtZWRpYShtYXgt d2lkdGg6ODQwcHgpey5rYm9vay1ncmlke2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnJ9Lmtib29r LXNpZGV7cGFkZGluZzozNHB4IDI4cHg7bWluLWhlaWdodDowfX0KQG1lZGlhKG1heC13aWR0aDo2 MDBweCl7Lmtmb3JtIC5rcm93e2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnJ9fQpAbWVkaWEobWF4 LXdpZHRoOjg0MHB4KXsua2dyaWR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn0ua2luZm97cGFk ZGluZzozMHB4IDI0cHggMzRweH19Cjwvc3R5bGU+CjxzdHlsZT4KLmt3c29sZHtkaXNwbGF5Omlu bGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLWxlZnQ6MTBweDtwYWRkaW5n OjRweCA4cHggM3B4O2JvcmRlcjoxcHggc29saWQgY3VycmVudENvbG9yO2ZvbnQtZmFtaWx5OidK b3N0JyxzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTBweDtsaW5lLWhlaWdo dDoxO2xldHRlci1zcGFjaW5nOi4yNGVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjoj OEE2RDNCO29wYWNpdHk6Ljl9Ci5rd2J1c3l7b3BhY2l0eTouNjtjdXJzb3I6cHJvZ3Jlc3MgIWlt cG9ydGFudH0KLmt3bWV0YXtmb250LXNpemU6MTJweDtsZXR0ZXItc3BhY2luZzouMDhlbTtvcGFj aXR5Oi42NTttYXJnaW4tdG9wOjJweH0KLmt3Y29sbHtmb250LXNpemU6MTBweDtsZXR0ZXItc3Bh Y2luZzouMjJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7b3BhY2l0eTouNTU7bWFyZ2luLXRv cDozcHh9Cjwvc3R5bGU+CjxzY3JpcHQ+Ci8qIEthc3RlbCB4IFdvb0NvbW1lcmNlIGJyaWRnZSB2 MgogICBXb29Db21tZXJjZSdzIGNhcnQgaXMgdGhlIE9ORSBjYXJ0IGZvciB0aGUgd2hvbGUgc2l0 ZS4gRXZlcnkgcGFnZToKICAgLSBmaW5kcyBpdHMgcGllY2VzIGluIFdvb0NvbW1lcmNlIGJ5IHJl ZmVyZW5jZSAoU0tVKSBhbmQgbWFya3Mgc29sZCBvbmVzLAogICAtIGFkZHMgcGllY2VzIHN0cmFp Z2h0IGludG8gdGhlIFdvb0NvbW1lcmNlIGNhcnQsCiAgIC0gc2hvd3MgdGhlIGZ1bGwgV29vQ29t bWVyY2UgY2FydCAoZXZlcnkgY29sbGVjdGlvbikgaW4gaXRzIG93biBjYXJ0IHBhbmVsLCB3aXRo IFJlbW92ZSwKICAgLSBrZWVwcyB0aGUgaGVhZGVyIGNvdW50IGluIHN0ZXAsIGFuZCBzZW5kcyBD aGVja291dCB0byBXb29Db21tZXJjZSBjaGVja291dC4gKi8KKGZ1bmN0aW9uKCl7CiAgdmFyIEFQ ST0nL3dwLWpzb24vd2Mvc3RvcmUvdjEvJzsKICB2YXIgTUFQPXt9LCBSRUFEWT1mYWxzZSwgUT1b XSwgTk9OQ0U9JycsIENBUlQ9e2l0ZW1zOltdLGNvdW50OjAsdG90YWw6JzAnLHVuaXQ6Mixsb2Fk ZWQ6ZmFsc2V9LCBTVUJTPVtdOwoKICBmdW5jdGlvbiBkb25lKCl7UkVBRFk9dHJ1ZTt2YXIgcT1R O1E9W107cS5mb3JFYWNoKGZ1bmN0aW9uKGYpe3RyeXtmKCk7fWNhdGNoKGUpe2NvbnNvbGUud2Fy bihlKTt9fSk7fQogIGZ1bmN0aW9uIG9uUmVhZHkoZil7aWYoUkVBRFkpe3RyeXtmKCk7fWNhdGNo KGUpe2NvbnNvbGUud2FybihlKTt9fWVsc2V7US5wdXNoKGYpO319CiAgZnVuY3Rpb24gbG9hZChz a3VzKXsKICAgIHZhciBsaXN0PVtdOyhza3VzfHxbXSkuZm9yRWFjaChmdW5jdGlvbihzKXtpZihz JiZsaXN0LmluZGV4T2Yocyk8MClsaXN0LnB1c2gocyk7fSk7CiAgICByZWZyZXNoKCk7CiAgICBp ZighbGlzdC5sZW5ndGgpe2RvbmUoKTtyZXR1cm47fQogICAgZmV0Y2goQVBJKydwcm9kdWN0cz9w ZXJfcGFnZT0xMDAmc2t1PScrZW5jb2RlVVJJQ29tcG9uZW50KGxpc3Quam9pbignLCcpKSx7Y3Jl ZGVudGlhbHM6J3NhbWUtb3JpZ2luJ30pCiAgICAgIC50aGVuKGZ1bmN0aW9uKHIpe2lmKCFyLm9r KXRocm93IG5ldyBFcnJvcignSFRUUCAnK3Iuc3RhdHVzKTtyZXR1cm4gci5qc29uKCk7fSkKICAg ICAgLnRoZW4oZnVuY3Rpb24oYSl7KGF8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHApe2lmKHAmJnAu c2t1KU1BUFtwLnNrdV09cDt9KTsKICAgICAgICBjb25zb2xlLmluZm8oJ0thc3RlbCBzaG9wOiAn K09iamVjdC5rZXlzKE1BUCkubGVuZ3RoKycgb2YgJytsaXN0Lmxlbmd0aCsnIHBpZWNlcyBmb3Vu ZCBpbiBXb29Db21tZXJjZScpO2RvbmUoKTt9KQogICAgICAuY2F0Y2goZnVuY3Rpb24oZSl7Y29u c29sZS53YXJuKCdLYXN0ZWwgc2hvcDogcHJvZHVjdCBsb29rdXAgZmFpbGVkJyxlKTtkb25lKCk7 fSk7CiAgfQogIGZ1bmN0aW9uIGdldChzKXtyZXR1cm4gTUFQW3NdfHxudWxsO30KICBmdW5jdGlv biBpc1NvbGQocyl7dmFyIHA9TUFQW3NdO3JldHVybiAhIShwJiZwLmlzX2luX3N0b2NrPT09ZmFs c2UpO30KICBmdW5jdGlvbiBidXlhYmxlKHMpe3ZhciBwPU1BUFtzXTtyZXR1cm4gISEocCYmcC5p c19wdXJjaGFzYWJsZSYmcC5wcmljZXMmJnAucHJpY2VzLnByaWNlKTt9CgogIC8qIC0tLS0tLS0t LS0gdGhlIHNoYXJlZCBjYXJ0IC0tLS0tLS0tLS0gKi8KICBmdW5jdGlvbiBzZXRDYXJ0KGMpewog ICAgaWYoIWMpcmV0dXJuOwogICAgdmFyIHQ9Yy50b3RhbHN8fHt9OwogICAgQ0FSVD17aXRlbXM6 Yy5pdGVtc3x8W10sY291bnQ6Yy5pdGVtc19jb3VudHx8MCx0b3RhbDp0LnRvdGFsX2l0ZW1zfHwn MCcsdW5pdDoodC5jdXJyZW5jeV9taW5vcl91bml0PT1udWxsPzI6dC5jdXJyZW5jeV9taW5vcl91 bml0KSxsb2FkZWQ6dHJ1ZX07CiAgICBTVUJTLmZvckVhY2goZnVuY3Rpb24oZil7dHJ5e2YoQ0FS VCk7fWNhdGNoKGUpe2NvbnNvbGUud2FybihlKTt9fSk7CiAgfQogIGZ1bmN0aW9uIG9uQ2FydChm KXtTVUJTLnB1c2goZik7aWYoQ0FSVC5sb2FkZWQpe3RyeXtmKENBUlQpO31jYXRjaChlKXtjb25z b2xlLndhcm4oZSk7fX19CiAgZnVuY3Rpb24gdGFrZU5vbmNlKHIpe3ZhciBuPXIuaGVhZGVycy5n ZXQoJ05vbmNlJyl8fHIuaGVhZGVycy5nZXQoJ1gtV0MtU3RvcmUtQVBJLU5vbmNlJyk7aWYobilO T05DRT1uO30KICBmdW5jdGlvbiByZWZyZXNoKCl7CiAgICByZXR1cm4gZmV0Y2goQVBJKydjYXJ0 Jyx7Y3JlZGVudGlhbHM6J3NhbWUtb3JpZ2luJyxjYWNoZTonbm8tc3RvcmUnfSkKICAgICAgLnRo ZW4oZnVuY3Rpb24ocil7dGFrZU5vbmNlKHIpO3JldHVybiByLmpzb24oKTt9KQogICAgICAudGhl bihmdW5jdGlvbihjKXtzZXRDYXJ0KGMpO3JldHVybiBjO30pCiAgICAgIC5jYXRjaChmdW5jdGlv bihlKXtjb25zb2xlLndhcm4oJ0thc3RlbCBzaG9wOiBjYXJ0IHVuYXZhaWxhYmxlJyxlKTt9KTsK ICB9CiAgZnVuY3Rpb24gcG9zdChwYXRoLGJvZHkscmV0cmllZCl7CiAgICB2YXIgcD1OT05DRT9Q cm9taXNlLnJlc29sdmUoKTpyZWZyZXNoKCk7CiAgICByZXR1cm4gcC50aGVuKGZ1bmN0aW9uKCl7 CiAgICAgIHJldHVybiBmZXRjaChBUEkrcGF0aCx7bWV0aG9kOidQT1NUJyxjcmVkZW50aWFsczon c2FtZS1vcmlnaW4nLGhlYWRlcnM6eydDb250ZW50LVR5cGUnOidhcHBsaWNhdGlvbi9qc29uJywn Tm9uY2UnOk5PTkNFfSxib2R5OkpTT04uc3RyaW5naWZ5KGJvZHkpfSk7CiAgICB9KS50aGVuKGZ1 bmN0aW9uKHIpewogICAgICB0YWtlTm9uY2Uocik7CiAgICAgIGlmKChyLnN0YXR1cz09PTQwMXx8 ci5zdGF0dXM9PT00MDMpJiYhcmV0cmllZCl7Tk9OQ0U9Jyc7cmV0dXJuIHBvc3QocGF0aCxib2R5 LHRydWUpO30KICAgICAgcmV0dXJuIHIuanNvbigpLnRoZW4oZnVuY3Rpb24oail7aWYoIXIub2sp dGhyb3cgbmV3IEVycm9yKChqJiZqLm1lc3NhZ2UpfHwoJ0hUVFAgJytyLnN0YXR1cykpO3JldHVy biBqO30pOwogICAgfSk7CiAgfQogIGZ1bmN0aW9uIHRlbGxIZWFkZXIoZXZ0KXsKICAgIC8qIGFz ayB0aGUgc2l0ZSdzIG93biBtaW5pLWNhcnQgKHRvcCByaWdodCkgdG8gcmVmcmVzaCAqLwogICAg dHJ5e3ZhciBQPXdpbmRvdy5wYXJlbnQ7CiAgICAgIGlmKFAmJlAhPT13aW5kb3cpewogICAgICAg IHRyeXtQLmRvY3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVudChuZXcgUC5FdmVudChldnQse2J1YmJs ZXM6dHJ1ZX0pKTt9Y2F0Y2goZSl7fQogICAgICAgIHRyeXtpZihQLmpRdWVyeSlQLmpRdWVyeShQ LmRvY3VtZW50LmJvZHkpLnRyaWdnZXIoZXZ0PT09J3djLWJsb2Nrc19hZGRlZF90b19jYXJ0Jz8n d2NfZnJhZ21lbnRfcmVmcmVzaCc6J3djX2ZyYWdtZW50X3JlZnJlc2gnKTt9Y2F0Y2goZSl7fQog ICAgICAgIHRyeXtpZihQLndwJiZQLndwLmRhdGEpUC53cC5kYXRhLmRpc3BhdGNoKCd3Yy9zdG9y ZS9jYXJ0JykuaW52YWxpZGF0ZVJlc29sdXRpb25Gb3JTdG9yZSgpO31jYXRjaChlKXt9CiAgICAg IH19Y2F0Y2goZSl7fQogIH0KICBmdW5jdGlvbiBpbkNhcnQocyl7dmFyIHA9TUFQW3NdO3JldHVy biBDQVJULml0ZW1zLnNvbWUoZnVuY3Rpb24oaXQpe3JldHVybiBpdC5za3U9PT1zfHwocCYmaXQu aWQ9PT1wLmlkKTt9KTt9CiAgZnVuY3Rpb24gYnVzeShidG4sb24sbGFiZWwpewogICAgaWYoIWJ0 bilyZXR1cm47CiAgICBpZihvbil7YnRuLnNldEF0dHJpYnV0ZSgnZGF0YS1rd2xhYmVsJyxidG4u aW5uZXJIVE1MKTtidG4uaW5uZXJIVE1MPWxhYmVsfHwnQWRkaW5n4oCmJztidG4uY2xhc3NMaXN0 LmFkZCgna3didXN5Jyk7YnRuLmRpc2FibGVkPXRydWU7fQogICAgZWxzZXt2YXIgbD1idG4uZ2V0 QXR0cmlidXRlKCdkYXRhLWt3bGFiZWwnKTtpZihsIT09bnVsbClidG4uaW5uZXJIVE1MPWw7YnRu LmNsYXNzTGlzdC5yZW1vdmUoJ2t3YnVzeScpO2J0bi5kaXNhYmxlZD1mYWxzZTt9CiAgfQogIC8q IGFkZCBvbmUgcGllY2UuIG9rKCkgcnVucyBvbmNlIGl0IGlzIGluIHRoZSBjYXJ0OyBtaXNzaW5n KCkgcnVucyBpZiB0aGUgcGllY2UgaXMgbm90IHNvbGQgb25saW5lICovCiAgZnVuY3Rpb24gYWRk KHNrdSxidG4sb2ssbWlzc2luZyl7CiAgICBvblJlYWR5KGZ1bmN0aW9uKCl7CiAgICAgIGlmKCFi dXlhYmxlKHNrdSkpe2NvbnNvbGUuaW5mbygnS2FzdGVsIHNob3A6ICcrc2t1Kycgbm90IHB1cmNo YXNhYmxlIG9ubGluZSwgdXNpbmcgZW5xdWlyeScpO2lmKG1pc3NpbmcpbWlzc2luZygpO3JldHVy bjt9CiAgICAgIGlmKGlzU29sZChza3UpKXt3aW5kb3cuYWxlcnQoJ1dlIGFyZSBzb3JyeSDigJQg dGhpcyBwaWVjZSBoYXMganVzdCBiZWVuIGFjcXVpcmVkLicpO3JldHVybjt9CiAgICAgIGlmKGlu Q2FydChza3UpKXtpZihvaylvaygpO3JldHVybjt9CiAgICAgIGlmKGJ0biYmYnRuLmRpc2FibGVk KXJldHVybjsKICAgICAgYnVzeShidG4sdHJ1ZSk7CiAgICAgIHBvc3QoJ2NhcnQvYWRkLWl0ZW0n LHtpZDpNQVBbc2t1XS5pZCxxdWFudGl0eToxfSkKICAgICAgICAudGhlbihmdW5jdGlvbihjKXtz ZXRDYXJ0KGMpO2J1c3koYnRuLGZhbHNlKTt0ZWxsSGVhZGVyKCd3Yy1ibG9ja3NfYWRkZWRfdG9f Y2FydCcpO2lmKG9rKW9rKCk7fSkKICAgICAgICAuY2F0Y2goZnVuY3Rpb24oZSl7YnVzeShidG4s ZmFsc2UpO2NvbnNvbGUud2FybignS2FzdGVsIHNob3A6IGFkZCBmYWlsZWQnLGUpOwogICAgICAg ICAgcmVmcmVzaCgpLnRoZW4oZnVuY3Rpb24oKXtpZihpbkNhcnQoc2t1KSl7aWYob2spb2soKTt9 ZWxzZXt3aW5kb3cuYWxlcnQoJ1RoaXMgcGllY2UgY291bGQgbm90IGJlIGFkZGVkIHRvIHlvdXIg Y2FydC4gUGxlYXNlIHRyeSBhZ2Fpbiwgb3IgY29udGFjdCB0aGUgYXRlbGllci4nKTt9fSk7fSk7 CiAgICB9KTsKICB9CiAgZnVuY3Rpb24gcmVtb3ZlKGtleSxidG4pewogICAgYnVzeShidG4sdHJ1 ZSwnUmVtb3ZpbmfigKYnKTsKICAgIHJldHVybiBwb3N0KCdjYXJ0L3JlbW92ZS1pdGVtJyx7a2V5 OmtleX0pCiAgICAgIC50aGVuKGZ1bmN0aW9uKGMpe3NldENhcnQoYyk7dGVsbEhlYWRlcignd2Mt YmxvY2tzX3JlbW92ZWRfZnJvbV9jYXJ0Jyk7fSkKICAgICAgLmNhdGNoKGZ1bmN0aW9uKGUpe2J1 c3koYnRuLGZhbHNlKTtjb25zb2xlLndhcm4oJ0thc3RlbCBzaG9wOiByZW1vdmUgZmFpbGVkJyxl KTtyZXR1cm4gcmVmcmVzaCgpO30pOwogIH0KICBmdW5jdGlvbiBtb25leShtaW5vcix1bml0KXsK ICAgIHZhciB1PSh1bml0PT1udWxsP0NBUlQudW5pdDp1bml0KTt2YXIgbj1OdW1iZXIobWlub3J8 fDApL01hdGgucG93KDEwLHUpOwogICAgcmV0dXJuICckJytuLnRvTG9jYWxlU3RyaW5nKCdlbi1V Uycse21pbmltdW1GcmFjdGlvbkRpZ2l0czoobiUxPzI6MCksbWF4aW11bUZyYWN0aW9uRGlnaXRz OjJ9KTsKICB9CiAgZnVuY3Rpb24gaXRlbVByaWNlKGl0KXtyZXR1cm4gbW9uZXkoaXQucHJpY2Vz P2l0LnByaWNlcy5wcmljZTowLGl0LnByaWNlcz9pdC5wcmljZXMuY3VycmVuY3lfbWlub3JfdW5p dDpudWxsKTt9CiAgZnVuY3Rpb24gaXRlbUltZyhpdCl7dmFyIGltPWl0LmltYWdlcyYmaXQuaW1h Z2VzWzBdO3JldHVybiBpbT8oaW0udGh1bWJuYWlsfHxpbS5zcmN8fCcnKTonJzt9CiAgZnVuY3Rp b24gaXRlbU1ldGEoaXQpe3JldHVybiBpdC5za3V8fCcnO30KICBmdW5jdGlvbiBnbyh1KXt0cnl7 d2luZG93LnRvcC5sb2NhdGlvbi5ocmVmPXU7fWNhdGNoKGUpe3dpbmRvdy5sb2NhdGlvbi5ocmVm PXU7fX0KICBmdW5jdGlvbiBjaGVja291dCgpe2dvKCcvY2hlY2tvdXQvJyk7fQoKICAvKiAtLS0t LS0tLS0tIHNvbGQgLyBidXR0b24gaGVscGVycyAtLS0tLS0tLS0tICovCiAgZnVuY3Rpb24gbWFy ayhidG4sc2t1LHNvbGRMYWJlbCl7CiAgICBpZighYnRuKXJldHVybjtzb2xkTGFiZWw9c29sZExh YmVsfHwnQWNxdWlyZWQnOwogICAgaWYoaXNTb2xkKHNrdSkpewogICAgICBpZihidG4uaW5uZXJI VE1MIT09c29sZExhYmVsKWJ0bi5zZXRBdHRyaWJ1dGUoJ2RhdGEta3dsYWJlbCcsYnRuLmlubmVy SFRNTCk7CiAgICAgIGJ0bi5pbm5lckhUTUw9c29sZExhYmVsO2J0bi5kaXNhYmxlZD10cnVlO2J0 bi5zdHlsZS5vcGFjaXR5PScuNTUnO2J0bi5zdHlsZS5jdXJzb3I9J2RlZmF1bHQnOwogICAgfWVs c2V7CiAgICAgIGlmKGJ0bi5pbm5lckhUTUw9PT1zb2xkTGFiZWwpe3ZhciBsPWJ0bi5nZXRBdHRy aWJ1dGUoJ2RhdGEta3dsYWJlbCcpO2lmKGwhPT1udWxsKWJ0bi5pbm5lckhUTUw9bDt9CiAgICAg IGJ0bi5kaXNhYmxlZD1mYWxzZTtidG4uc3R5bGUub3BhY2l0eT0nJztidG4uc3R5bGUuY3Vyc29y PScnOwogICAgfQogIH0KICBmdW5jdGlvbiBiYWRnZShlbCl7aWYoZWwmJiFlbC5xdWVyeVNlbGVj dG9yKCcua3dzb2xkJykpe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtzLmNs YXNzTmFtZT0na3dzb2xkJztzLnRleHRDb250ZW50PSdTb2xkJztlbC5hcHBlbmRDaGlsZChzKTt9 fQogIGZ1bmN0aW9uIGVucXVpcmUobmFtZSxza3UpewogICAgZ28oJ21haWx0bzphdGVsaWVyQGth c3RlbGpld2VscnkuY29tP3N1YmplY3Q9JytlbmNvZGVVUklDb21wb25lbnQoJ0VucXVpcnkg4oCU ICcrbmFtZSkrJyZib2R5PScrZW5jb2RlVVJJQ29tcG9uZW50KCdEZWFyIE1haXNvbiBLYXN0ZWws XG5cbkkgd291bGQgbGlrZSB0byBlbnF1aXJlIGFib3V0ICcrbmFtZSsoc2t1PycgKCcrc2t1Kycp JzonJykrJy5cblxuS2luZCByZWdhcmRzJykpOwogIH0KCiAgLyoga2VlcCBldmVyeSBwYWdlIGlu IHN0ZXAgd2hlbiB0aGUgdmlzaXRvciBjb21lcyBiYWNrIHdpdGggQmFjay9Gb3J3YXJkIG9yIHN3 aXRjaGVzIHRhYnMgKi8KICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGFnZXNob3cnLGZ1bmN0 aW9uKGUpe2lmKGUucGVyc2lzdGVkKXJlZnJlc2goKTt9KTsKICBkb2N1bWVudC5hZGRFdmVudExp c3RlbmVyKCd2aXNpYmlsaXR5Y2hhbmdlJyxmdW5jdGlvbigpe2lmKGRvY3VtZW50LnZpc2liaWxp dHlTdGF0ZT09PSd2aXNpYmxlJylyZWZyZXNoKCk7fSk7CgogIHdpbmRvdy5LVz17bG9hZDpsb2Fk LGdldDpnZXQsaXNTb2xkOmlzU29sZCxidXlhYmxlOmJ1eWFibGUsb25SZWFkeTpvblJlYWR5LG9u Q2FydDpvbkNhcnQscmVmcmVzaDpyZWZyZXNoLAogICAgYWRkOmFkZCxyZW1vdmU6cmVtb3ZlLGlu Q2FydDppbkNhcnQsbW9uZXk6bW9uZXksaXRlbVByaWNlOml0ZW1QcmljZSxpdGVtSW1nOml0ZW1J bWcsaXRlbU1ldGE6aXRlbU1ldGEsCiAgICBjaGVja291dDpjaGVja291dCxtYXJrOm1hcmssYmFk Z2U6YmFkZ2UsZW5xdWlyZTplbnF1aXJlLGdvOmdvLGNhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gQ0FS VDt9fTsKfSkoKTsKPC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHk+Cgo8bmF2IGlkPSJuYXYiPgogIDxh IGNsYXNzPSJ3b3JkbWFyayIgaHJlZj0iIyI+S0FTVEVMPC9hPgogIDxkaXYgY2xhc3M9Im5hdmxp bmtzIj4KICAgIDxhIGhyZWY9IiNjb2xsZWN0aW9uIj5Db2xsZWN0aW9uczwvYT4KICAgIDxhIGhy ZWY9IiNjcmFmdCI+Q3JhZnRzbWFuc2hpcDwvYT4KICAgIDxhIGhyZWY9IiMiPk1haXNvbjwvYT4K ICAgIDxhIGhyZWY9IiN2aXNpdCI+QXBwb2ludG1lbnRzPC9hPgogICAgPGEgY2xhc3M9ImtjYXJ0 bGluayIgaWQ9ImtjYXJ0LW9wZW4iPkNhcnQgKDxzcGFuIGlkPSJrY2FydC1uIj4wPC9zcGFuPik8 L2E+CiAgPC9kaXY+CjwvbmF2PgoKPGhlYWRlciBjbGFzcz0iaGVybyI+CiAgPGRpdiBjbGFzcz0i aGVyby1wYW5lbCI+CiAgICA8ZGl2IGNsYXNzPSJleWVicm93IHJ2IGluIj5UaGUgTmV3IENvbGxl Y3Rpb248L2Rpdj4KICAgIDxoMSBjbGFzcz0icnYgaW4gZDEiPkFFR0VBTgogICAgICA8c3BhbiBj bGFzcz0idGhpbiI+d2hlcmUgZ29sZCBsZWFybnMgdGhlIGxhbmd1YWdlIG9mIHdhdGVyPC9zcGFu PgogICAgPC9oMT4KICAgIDxzdmcgY2xhc3M9IndhdmUtbGluZSIgdmlld0JveD0iMCAwIDM0MCAy NCIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICA8cGF0aCBkPSJNMiAxMiBDIDMwIDIsIDU1IDIy LCA4NSAxMiBTIDE0MCAyLCAxNzAgMTIgUyAyMjUgMjIsIDI1NSAxMiBTIDMxMCAyLCAzMzggMTIi Lz4KICAgIDwvc3ZnPgogICAgPHAgY2xhc3M9ImxlZGUgcnYgaW4gZDIiPlNjdWxwdGVkIGJ5IHRo ZSBtZWV0aW5nIG9mIHNlYSBhbmQgbGlnaHQsIHRoZSBBZWdlYW4gQ29sbGVjdGlvbiByZW5kZXJz IHRoZSBldGVybmFsIG1vdGlvbiBvZiB0aGUgQ3ljbGFkZXMgaW4gMTgta2FyYXQgZ29sZCBhbmQg ZGlhbW9uZHMg4oCUIGVhY2ggcGllY2UgYSB3YXZlLCBoZWxkIHN0aWxsLjwvcD4KICAgIDxkaXYg Y2xhc3M9Imhlcm8tY3RhIHJ2IGluIGQzIj4KICAgICAgPGEgY2xhc3M9ImJ0biIgaHJlZj0iI2Nv bGxlY3Rpb24iPkRpc2NvdmVyIHRoZSBDb2xsZWN0aW9uPC9hPgogICAgICA8YSBjbGFzcz0iYnRu IGdob3N0IiBocmVmPSIjIiBkYXRhLWJvb2s9IjEiPkJvb2sgYSBQcml2YXRlIFZpZXdpbmc8L2E+ CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJoZXJvLWltZyI+CiAgICA8aW1nIHNy Yz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFBQUFBQ0g1QkFFS0FBRUFMQUFB QUFBQkFBRUFBQUlDVEFFQU93PT0iIGRhdGEtaz0iaGVybzIiIGFsdD0iTW9kZWwgaW4gdGhlIHNl YSB3ZWFyaW5nIHRoZSBBZWdlYW4gV2F2ZSBOZWNrbGFjZSBhbmQgQWVnZWFuIERpYW1vbmQgSG9v cCBpbiAxOGsgZ29sZCIgZmV0Y2hwcmlvcml0eT0iaGlnaCI+CiAgICA8ZGl2IGNsYXNzPSJ3b3Ju Ij5Xb3JuPHN0cm9uZz5UaGUgQWVnZWFuIFdhdmUgTmVja2xhY2U8L3N0cm9uZz48L2Rpdj4KICA8 L2Rpdj4KICA8ZGl2IGNsYXNzPSJzY3JvbGxjdWUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2Rpdj4K PC9oZWFkZXI+Cgo8c2VjdGlvbiBjbGFzcz0iY2VudGVyIiBpZD0iY29sbGVjdGlvbiI+CiAgPGRp diBjbGFzcz0ia2lja2VyIHJ2Ij5UaGUgQWVnZWFuIENvbGxlY3Rpb248L2Rpdj4KICA8cCBjbGFz cz0iaW50cm8tbGVkZSBydiBkMSI+RHJhd2luZyBvbiB0aGUgaXNsYW5kcyB3aGVyZSA8ZW0+bWFy YmxlIG1lZXRzIHdhdGVyPC9lbT4sIGVhY2ggQWVnZWFuIHBpZWNlIGlzIGNhcnZlZCwgY2FzdCBh bmQgaGFuZC1maW5pc2hlZCBpbiBvdXIgYXRlbGllci48L3A+CiAgPHAgY2xhc3M9ImludHJvLWJv ZHkgcnYgZDIiPlVuZHVsYXRpbmcgc2lsaG91ZXR0ZXMgdHJhY2UgdGhlIHN3ZWxsIG9mIHRoZSBv cGVuIHNlYTsgZGlhbW9uZHMg4oCUIGJhZ3VldHRlLCBtYXJxdWlzZSBhbmQgYnJpbGxpYW50IOKA lCBzY2F0dGVyIGFjcm9zcyBwb2xpc2hlZCBnb2xkIGxpa2Ugc3VubGlnaHQgYnJlYWtpbmcgb24g dGhlIHN1cmZhY2UuPC9wPgogIDxzdmcgY2xhc3M9ImRpdmlkZXItd2F2ZSBydiBkMyIgdmlld0Jv eD0iMCAwIDEyMCAxNiIgYXJpYS1oaWRkZW49InRydWUiPgogICAgPHBhdGggZD0iTTIgOCBDIDE0 IDIsIDI0IDE0LCAzOCA4IFMgNjAgMiwgNzQgOCBTIDEwMCAxNCwgMTE4IDgiLz4KICA8L3N2Zz4K PC9zZWN0aW9uPgoKPHNlY3Rpb24gY2xhc3M9ImZlYXR1cmVkIj4KICA8ZGl2IGNsYXNzPSJmZWF0 dXJlZC1ncmlkIiBkYXRhLXByb2Q9ImJhbmdsZSI+CiAgICA8ZGl2IGNsYXNzPSJmcmFtZSBnYWwg cnYiPgogICAgICA8ZGl2IGNsYXNzPSJndHJhY2siPjxpbWcgc3JjPSJkYXRhOmltYWdlL2dpZjti YXNlNjQsUjBsR09EbGhBUUFCQUFBQUFDSDVCQUVLQUFFQUxBQUFBQUFCQUFFQUFBSUNUQUVBT3c9 PSIgZGF0YS1rPSJiYW5nbGUiIGRhdGEtbWV0YWw9InciIGFsdD0iQWVnZWFuIGJhbmdsZSBpbiAx OGsgd2hpdGUgZ29sZCB3aXRoIHNjYXR0ZXJlZCBtaXhlZC1jdXQgZGlhbW9uZHMiIGNsYXNzPSJv biIgbG9hZGluZz0ibGF6eSI+PGltZyBzcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0Rs aEFRQUJBQUFBQUNINUJBRUtBQUVBTEFBQUFBQUJBQUVBQUFJQ1RBRUFPdz09IiBkYXRhLWs9ImJh bmdsZS1tb2RlbC13IiBkYXRhLW1ldGFsPSJ3IiBhbHQ9IkFlZ2VhbiBiYW5nbGUgaW4gd2hpdGUg Z29sZCB3b3JuIG9uIHRoZSB3cmlzdCIgbG9hZGluZz0ibGF6eSI+PGltZyBzcmM9ImRhdGE6aW1h Z2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBQUFBQUNINUJBRUtBQUVBTEFBQUFBQUJBQUVBQUFJ Q1RBRUFPdz09IiBkYXRhLWs9ImJhbmdsZS1ibHVlLXciIGRhdGEtbWV0YWw9InciIGFsdD0iQWVn ZWFuIGJhbmdsZSBpbiB3aGl0ZSBnb2xkIG9uIGJsdWUgc2lsayIgbG9hZGluZz0ibGF6eSI+PGlt ZyBzcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBQUFBQUNINUJBRUtBQUVB TEFBQUFBQUJBQUVBQUFJQ1RBRUFPdz09IiBkYXRhLWs9ImJhbmdsZS1tb2RlbC15IiBkYXRhLW1l dGFsPSJ5IiBhbHQ9IkFlZ2VhbiBiYW5nbGUgaW4geWVsbG93IGdvbGQgd29ybiBvbiB0aGUgd3Jp c3QiIGxvYWRpbmc9ImxhenkiPjxpbWcgc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09E bGhBUUFCQUFBQUFDSDVCQUVLQUFFQUxBQUFBQUFCQUFFQUFBSUNUQUVBT3c9PSIgZGF0YS1rPSJi YW5nbGUtYmx1ZS15IiBkYXRhLW1ldGFsPSJ5IiBhbHQ9IkFlZ2VhbiBiYW5nbGUgaW4geWVsbG93 IGdvbGQgb24gYmx1ZSBzaWxrIiBsb2FkaW5nPSJsYXp5Ij48L2Rpdj4KICAgICAgPGJ1dHRvbiBj bGFzcz0iZ25hdiBwcmV2IiBhcmlhLWxhYmVsPSJQcmV2aW91cyBpbWFnZSI+JiM4MjQ5OzwvYnV0 dG9uPgogICAgICA8YnV0dG9uIGNsYXNzPSJnbmF2IG5leHQiIGFyaWEtbGFiZWw9Ik5leHQgaW1h Z2UiPiYjODI1MDs8L2J1dHRvbj4KICAgICAgPGRpdiBjbGFzcz0iZ2RvdHMiPjwvZGl2PgogICAg PC9kaXY+CiAgICA8ZGl2PgogICAgICA8ZGl2IGNsYXNzPSJwbnVtIHJ2Ij5JICYjMTgzOyBUaGUg U2lnbmF0dXJlIFBpZWNlPC9kaXY+CiAgICAgIDxoMiBjbGFzcz0icG5hbWUgcnYgZDEiPkFlZ2Vh biBCYW5nbGU8L2gyPgogICAgICA8cCBjbGFzcz0icGRlc2MgcnYgZDIiPjE4ayBnb2xkIHRoYXQg cmlzZXMgYW5kIGZhbGxzIGxpa2UgdGhlIHdhdGVyLjwvcD4KICAgICAgPGRpdiBjbGFzcz0icG1l dGEgcnYgZDMiPgogICAgICAgIDxkaXY+PHNwYW4+TWV0YWw8L3NwYW4+PHNwYW4+MThrIFdoaXRl IG9yIFllbGxvdyBHb2xkPC9zcGFuPjwvZGl2PgogICAgICAgIDxkaXY+PHNwYW4+RGlhbW9uZHM8 L3NwYW4+PHNwYW4+My4wNyBjdCAmIzE4MzsgTXVsdGktU2hhcGUgU2NhdHRlcmVkPC9zcGFuPjwv ZGl2PgogICAgICAgIDxkaXY+PHNwYW4+UmVmZXJlbmNlPC9zcGFuPjxzcGFuPkIxMDA2NFcgLyBC MTAwNjRXWTwvc3Bhbj48L2Rpdj4KICAgICAgICA8ZGl2PjxzcGFuPlByaWNlPC9zcGFuPjxzcGFu PiQyMSw4MDA8L3NwYW4+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJrbWV0 YWwgcnYgZDMiPgogICAgICAgIDxidXR0b24gY2xhc3M9ImttZXRhbGJ0biBvbiIgZGF0YS1tZXRh bC1jaG9pY2U9InciPldoaXRlIEdvbGQ8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJr bWV0YWxidG4iIGRhdGEtbWV0YWwtY2hvaWNlPSJ5Ij5ZZWxsb3cgR29sZDwvYnV0dG9uPgogICAg ICA8L2Rpdj4KICAgICAgPGEgY2xhc3M9ImJ0biBkYXJrIHJ2IGQ0IiBocmVmPSIjIiBkYXRhLXBp ZD0iYmFuZ2xlIj5WaWV3IHRoZSBBZWdlYW4gQmFuZ2xlPC9hPgogICAgPC9kaXY+CiAgPC9kaXY+ Cjwvc2VjdGlvbj4KCjxzZWN0aW9uPgogIDxkaXYgY2xhc3M9ImNncmlkIj4KICAgIDxkaXYgY2xh c3M9ImNhcmQiIGRhdGEtcHJvZD0ia3ltYSI+CiAgICAgIDxkaXYgY2xhc3M9ImZyYW1lIGdhbCBy diI+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3RyYWNrIj48aW1nIHNyYz0iZGF0YTppbWFnZS9naWY7 YmFzZTY0LFIwbEdPRGxoQVFBQkFBQUFBQ0g1QkFFS0FBRUFMQUFBQUFBQkFBRUFBQUlDVEFFQU93 PT0iIGRhdGEtaz0iZWFycmluZ3MiIGFsdD0iQWVnZWFuIGRpYW1vbmQgaG9vcCBlYXJyaW5ncyBp biAxOGsgeWVsbG93IGdvbGQgd2l0aCBwYXYmIzIzMzsgZGlhbW9uZHMiIGNsYXNzPSJvbiIgbG9h ZGluZz0ibGF6eSI+PGltZyBzcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJB QUFBQUNINUJBRUtBQUVBTEFBQUFBQUJBQUVBQUFJQ1RBRUFPdz09IiBkYXRhLWs9ImVhcnJpbmdz LW1vZGVsIiBhbHQ9IkFlZ2VhbiBkaWFtb25kIGhvb3AgZWFycmluZyBpbiBwYXYmIzIzMzsgZGlh bW9uZHMgd29ybiBvbiB0aGUgZWFyIiBsb2FkaW5nPSJsYXp5Ij48aW1nIHNyYz0iZGF0YTppbWFn ZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFBQUFBQ0g1QkFFS0FBRUFMQUFBQUFBQkFBRUFBQUlD VEFFQU93PT0iIGRhdGEtaz0iZWFycmluZ3MtYmx1ZSIgYWx0PSJBZWdlYW4gZGlhbW9uZCBob29w cyBvbiBibHVlIHNpbGsiIGxvYWRpbmc9ImxhenkiPjwvZGl2PgogICAgICAgIDxidXR0b24gY2xh c3M9ImduYXYgcHJldiIgYXJpYS1sYWJlbD0iUHJldmlvdXMgaW1hZ2UiPiYjODI0OTs8L2J1dHRv bj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJnbmF2IG5leHQiIGFyaWEtbGFiZWw9Ik5leHQgaW1h Z2UiPiYjODI1MDs8L2J1dHRvbj4KICAgICAgICA8ZGl2IGNsYXNzPSJnZG90cyI+PC9kaXY+CiAg ICAgIDwvZGl2PgogICAgICA8aDMgY2xhc3M9InBuYW1lIHJ2IGQxIj5BZWdlYW4gRGlhbW9uZCBI b29wPC9oMz4KICAgICAgPHAgY2xhc3M9InBkZXNjIHJ2IGQyIj5BIGN1cnJlbnQgb2YgcGF2JiMy MzM7IGRpYW1vbmRzIHdyYXBzIHRocm91Z2ggcG9saXNoZWQgMThrIHllbGxvdyBnb2xkIOKAlCB0 d28gdGlkZXMgcGFzc2luZyBpbiBhIHNpbmdsZSwgZmx1aWQgZ2VzdHVyZS4gMi4wOCBjdCB0b3Rh bC48L3A+CiAgICAgIDxkaXYgY2xhc3M9InByaWNlIHJ2IGQyIj4kOCw3MjAgJm5ic3A7JiMxODM7 Jm5ic3A7IDxzcGFuIHN0eWxlPSJmb250LXNpemU6MTNweDtsZXR0ZXItc3BhY2luZzouMTRlbTtj b2xvcjojN2Q4YTkxOyI+RTEwNDUwWTwvc3Bhbj48L2Rpdj4KICAgICAgPGEgY2xhc3M9InNob3Ag cnYgZDMiIGhyZWY9IiMiIGRhdGEtcGlkPSJreW1hIj5TaG9wIFRoaXMgUGllY2U8L2E+CiAgICA8 L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNhcmQiIGRhdGEtcHJvZD0ibmVyZWlkIj4KICAgICAgPGRp diBjbGFzcz0iZnJhbWUgZ2FsIHJ2Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJndHJhY2siPjxpbWcg c3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUFBQUFDSDVCQUVLQUFFQUxB QUFBQUFCQUFFQUFBSUNUQUVBT3c9PSIgZGF0YS1rPSJlOTc4NHkiIGFsdD0iQWVnZWFuIHBlYmJs ZSBkaWFtb25kIGVhcnJpbmdzIGluIDE4ayB5ZWxsb3cgZ29sZCB3aXRoIHNjYXR0ZXJlZCBkaWFt b25kcyIgY2xhc3M9Im9uIiBsb2FkaW5nPSJsYXp5Ij48L2Rpdj4KICAgICAgICA8YnV0dG9uIGNs YXNzPSJnbmF2IHByZXYiIGFyaWEtbGFiZWw9IlByZXZpb3VzIGltYWdlIj4mIzgyNDk7PC9idXR0 b24+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZ25hdiBuZXh0IiBhcmlhLWxhYmVsPSJOZXh0IGlt YWdlIj4mIzgyNTA7PC9idXR0b24+CiAgICAgICAgPGRpdiBjbGFzcz0iZ2RvdHMiPjwvZGl2Pgog ICAgICA8L2Rpdj4KICAgICAgPGgzIGNsYXNzPSJwbmFtZSBydiBkMSI+QWVnZWFuIFBlYmJsZSBE aWFtb25kIEVhcnJpbmdzPC9oMz4KICAgICAgPHAgY2xhc3M9InBkZXNjIHJ2IGQyIj5PcGVuIGxv b3BzIG9mIDE4ayB5ZWxsb3cgZ29sZCBjdXJsIGxpa2Ugc2VhIGZvYW0sIHRyYWlsZWQgYnkgYSBk cmlmdCBvZiBwcm9uZy1zZXQgYnJpbGxpYW50IGRpYW1vbmRzLiAxLjYwIGN0IHRvdGFsLjwvcD4K ICAgICAgPGRpdiBjbGFzcz0icHJpY2UgcnYgZDIiPiQxMiwwODAgJm5ic3A7JiMxODM7Jm5ic3A7 IDxzcGFuIHN0eWxlPSJmb250LXNpemU6MTNweDtsZXR0ZXItc3BhY2luZzouMTRlbTtjb2xvcjoj N2Q4YTkxOyI+RTk3ODRZPC9zcGFuPjwvZGl2PgogICAgICA8YSBjbGFzcz0ic2hvcCBydiBkMyIg aHJlZj0iIyIgZGF0YS1waWQ9Im5lcmVpZCI+U2hvcCBUaGlzIFBpZWNlPC9hPgogICAgPC9kaXY+ CiAgICA8ZGl2IGNsYXNzPSJjYXJkIiBkYXRhLXByb2Q9ImRlbG9zLWUiPgogICAgICA8ZGl2IGNs YXNzPSJmcmFtZSBnYWwgcnYiPgogICAgICAgIDxkaXYgY2xhc3M9Imd0cmFjayI+PGltZyBzcmM9 ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBQUFBQUNINUJBRUtBQUVBTEFBQUFB QUJBQUVBQUFJQ1RBRUFPdz09IiBkYXRhLWs9ImUxMDM1NWwiIGFsdD0iQWVnZWFuIGRpYW1vbmQg ZG9tZSBlYXJyaW5ncyBpbiAxOGsgeWVsbG93IGdvbGQiIGNsYXNzPSJvbiIgbG9hZGluZz0ibGF6 eSI+PGltZyBzcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBQUFBQUNINUJB RUtBQUVBTEFBQUFBQUJBQUVBQUFJQ1RBRUFPdz09IiBkYXRhLWs9ImUxMDM1NWwtYmx1ZSIgYWx0 PSJBZWdlYW4gZGlhbW9uZCBkb21lIGVhcnJpbmdzIG9uIGJsdWUgc2lsayIgbG9hZGluZz0ibGF6 eSI+PC9kaXY+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZ25hdiBwcmV2IiBhcmlhLWxhYmVsPSJQ cmV2aW91cyBpbWFnZSI+JiM4MjQ5OzwvYnV0dG9uPgogICAgICAgIDxidXR0b24gY2xhc3M9Imdu YXYgbmV4dCIgYXJpYS1sYWJlbD0iTmV4dCBpbWFnZSI+JiM4MjUwOzwvYnV0dG9uPgogICAgICAg IDxkaXYgY2xhc3M9Imdkb3RzIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxoMyBjbGFzcz0i cG5hbWUgcnYgZDEiPkFlZ2VhbiBEaWFtb25kIERvbWUgRWFycmluZ3M8L2gzPgogICAgICA8cCBj bGFzcz0icGRlc2MgcnYgZDIiPlRlYXJkcm9wcyBvZiBvcGVud29yayBnb2xkLCBiYW5kZWQgaW4g YWx0ZXJuYXRpbmcgcG9saXNoZWQgY2hldnJvbnMgYW5kIGNoYW5uZWxzIG9mIHBhdiYjMjMzOyDi gJQgbGlnaHQgcGFzc2VzIHN0cmFpZ2h0IHRocm91Z2guIDIuMjggY3QgdG90YWwuPC9wPgogICAg ICA8ZGl2IGNsYXNzPSJwcmljZSBydiBkMiI+JDEyLDM5NSAmbmJzcDsmIzE4MzsmbmJzcDsgPHNw YW4gc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2xldHRlci1zcGFjaW5nOi4xNGVtO2NvbG9yOiM3ZDhh OTE7Ij5FMTAzNTVMPC9zcGFuPjwvZGl2PgogICAgICA8YSBjbGFzcz0ic2hvcCBydiBkMyIgaHJl Zj0iIyIgZGF0YS1waWQ9ImRlbG9zLWUiPlNob3AgVGhpcyBQaWVjZTwvYT4KICAgIDwvZGl2Pgog ICAgPGRpdiBjbGFzcz0iY2FyZCIgZGF0YS1wcm9kPSJjeWNsYWRlcy1lIj4KICAgICAgPGRpdiBj bGFzcz0iZnJhbWUgZ2FsIHJ2Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJndHJhY2siPjxpbWcgc3Jj PSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUFBQUFDSDVCQUVLQUFFQUxBQUFB QUFCQUFFQUFBSUNUQUVBT3c9PSIgZGF0YS1rPSJlNDY5NjZsIiBhbHQ9IkFlZ2VhbiB0ZXh0dXJl ZCBkaWFtb25kIGVhcnJpbmdzIGluIDE4ayB5ZWxsb3cgZ29sZCB3aXRoIHNjYXR0ZXJlZCBkaWFt b25kcyIgY2xhc3M9Im9uIiBsb2FkaW5nPSJsYXp5Ij48aW1nIHNyYz0iZGF0YTppbWFnZS9naWY7 YmFzZTY0LFIwbEdPRGxoQVFBQkFBQUFBQ0g1QkFFS0FBRUFMQUFBQUFBQkFBRUFBQUlDVEFFQU93 PT0iIGRhdGEtaz0iZTQ2OTY2bC1ibHVlIiBhbHQ9IkFlZ2VhbiB0ZXh0dXJlZCBkaWFtb25kIGVh cnJpbmdzIG9uIGJsdWUgc2lsayIgbG9hZGluZz0ibGF6eSI+PC9kaXY+CiAgICAgICAgPGJ1dHRv biBjbGFzcz0iZ25hdiBwcmV2IiBhcmlhLWxhYmVsPSJQcmV2aW91cyBpbWFnZSI+JiM4MjQ5Ozwv YnV0dG9uPgogICAgICAgIDxidXR0b24gY2xhc3M9ImduYXYgbmV4dCIgYXJpYS1sYWJlbD0iTmV4 dCBpbWFnZSI+JiM4MjUwOzwvYnV0dG9uPgogICAgICAgIDxkaXYgY2xhc3M9Imdkb3RzIj48L2Rp dj4KICAgICAgPC9kaXY+CiAgICAgIDxoMyBjbGFzcz0icG5hbWUgcnYgZDEiPkFlZ2VhbiBUZXh0 dXJlZCBEaWFtb25kIEVhcnJpbmdzPC9oMz4KICAgICAgPHAgY2xhc3M9InBkZXNjIHJ2IGQyIj5U aGUgcmluZydzIHJpcHBsZWQgY29tcGFuaW9uIOKAlCBmbHV0ZWQgMThrIGdvbGQgY2Fycnlpbmcg YSBzcHJheSBvZiBtYXJxdWlzZSwgcGVhciBhbmQgYnJpbGxpYW50IGRpYW1vbmRzLiAyLjQwIGN0 IHRvdGFsLjwvcD4KICAgICAgPGRpdiBjbGFzcz0icHJpY2UgcnYgZDIiPiQxMiwwODAgJm5ic3A7 JiMxODM7Jm5ic3A7IDxzcGFuIHN0eWxlPSJmb250LXNpemU6MTNweDtsZXR0ZXItc3BhY2luZzou MTRlbTtjb2xvcjojN2Q4YTkxOyI+RTQ2OTY2TDwvc3Bhbj48L2Rpdj4KICAgICAgPGEgY2xhc3M9 InNob3AgcnYgZDMiIGhyZWY9IiMiIGRhdGEtcGlkPSJjeWNsYWRlcy1lIj5TaG9wIFRoaXMgUGll Y2U8L2E+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNhcmQiIGRhdGEtcHJvZD0iZGVsb3Mt ciI+CiAgICAgIDxkaXYgY2xhc3M9ImZyYW1lIGdhbCBydiI+CiAgICAgICAgPGRpdiBjbGFzcz0i Z3RyYWNrIj48aW1nIHNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFBQUFB Q0g1QkFFS0FBRUFMQUFBQUFBQkFBRUFBQUlDVEFFQU93PT0iIGRhdGEtaz0icjEwMzU1eSIgYWx0 PSJBZWdlYW4gZG9tZSByaW5nIGluIDE4ayB5ZWxsb3cgZ29sZCIgY2xhc3M9Im9uIiBsb2FkaW5n PSJsYXp5Ij48aW1nIHNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFBQUFB Q0g1QkFFS0FBRUFMQUFBQUFBQkFBRUFBQUlDVEFFQU93PT0iIGRhdGEtaz0icjEwMzU1eS1ibHVl IiBhbHQ9IkFlZ2VhbiBkb21lIHJpbmcgb24gYmx1ZSBzaWxrIiBsb2FkaW5nPSJsYXp5Ij48L2Rp dj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJnbmF2IHByZXYiIGFyaWEtbGFiZWw9IlByZXZpb3Vz IGltYWdlIj4mIzgyNDk7PC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZ25hdiBuZXh0 IiBhcmlhLWxhYmVsPSJOZXh0IGltYWdlIj4mIzgyNTA7PC9idXR0b24+CiAgICAgICAgPGRpdiBj bGFzcz0iZ2RvdHMiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGgzIGNsYXNzPSJwbmFtZSBy diBkMSI+QWVnZWFuIERvbWUgUmluZzwvaDM+CiAgICAgIDxwIGNsYXNzPSJwZGVzYyBydiBkMiI+ QSBkb21lIG9mIG9wZW4gZ29sZCByaWJzLCBldmVyeSBzZWNvbmQgb25lIHNldCB3aXRoIGEgZmlu ZSBsaW5lIG9mIHBhdiYjMjMzOyDigJQgYXJjaGl0ZWN0dXJlIGF0IHRoZSBzY2FsZSBvZiBhIGZp bmdlcnRpcC4gMS4xNCBjdCB0b3RhbC48L3A+CiAgICAgIDxkaXYgY2xhc3M9InByaWNlIHJ2IGQy Ij4kNyw1NDAgJm5ic3A7JiMxODM7Jm5ic3A7IDxzcGFuIHN0eWxlPSJmb250LXNpemU6MTNweDts ZXR0ZXItc3BhY2luZzouMTRlbTtjb2xvcjojN2Q4YTkxOyI+UjEwMzU1WTwvc3Bhbj48L2Rpdj4K ICAgICAgPGEgY2xhc3M9InNob3AgcnYgZDMiIGhyZWY9IiMiIGRhdGEtcGlkPSJkZWxvcy1yIj5T aG9wIFRoaXMgUGllY2U8L2E+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNhcmQiIGRhdGEt cHJvZD0iY3ljbGFkZXMtciI+CiAgICAgIDxkaXYgY2xhc3M9ImZyYW1lIGdhbCBydiI+CiAgICAg ICAgPGRpdiBjbGFzcz0iZ3RyYWNrIj48aW1nIHNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIw bEdPRGxoQVFBQkFBQUFBQ0g1QkFFS0FBRUFMQUFBQUFBQkFBRUFBQUlDVEFFQU93PT0iIGRhdGEt az0icmluZyIgYWx0PSJBZWdlYW4gdGV4dHVyZWQgZGlhbW9uZCByaW5nIGluIGZsdXRlZCAxOGsg eWVsbG93IGdvbGQgd2l0aCBzY2F0dGVyZWQgZGlhbW9uZHMiIGNsYXNzPSJvbiIgbG9hZGluZz0i bGF6eSI+PGltZyBzcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBQUFBQUNI NUJBRUtBQUVBTEFBQUFBQUJBQUVBQUFJQ1RBRUFPdz09IiBkYXRhLWs9InJpbmctYmx1ZSIgYWx0 PSJBZWdlYW4gdGV4dHVyZWQgZGlhbW9uZCByaW5nIG9uIGJsdWUgc2lsayIgbG9hZGluZz0ibGF6 eSI+PC9kaXY+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZ25hdiBwcmV2IiBhcmlhLWxhYmVsPSJQ cmV2aW91cyBpbWFnZSI+JiM4MjQ5OzwvYnV0dG9uPgogICAgICAgIDxidXR0b24gY2xhc3M9Imdu YXYgbmV4dCIgYXJpYS1sYWJlbD0iTmV4dCBpbWFnZSI+JiM4MjUwOzwvYnV0dG9uPgogICAgICAg IDxkaXYgY2xhc3M9Imdkb3RzIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxoMyBjbGFzcz0i cG5hbWUgcnYgZDEiPkFlZ2VhbiBUZXh0dXJlZCBEaWFtb25kIFJpbmc8L2gzPgogICAgICA8cCBj bGFzcz0icGRlc2MgcnYgZDIiPkZsdXRlZCBnb2xkLCByaXBwbGVkIGxpa2Ugd2luZCBvdmVyIHdh dGVyLCBjYXJyaWVzIGEgZHJpZnQgb2YgbWFycXVpc2UsIHBlYXIgYW5kIGJyaWxsaWFudCBkaWFt b25kcyDigJQgc2VhIHNwcmF5IGNhdWdodCBtaWQtYWlyLiAwLjkxIGN0IHRvdGFsLjwvcD4KICAg ICAgPGRpdiBjbGFzcz0icHJpY2UgcnYgZDIiPiQ1LDcyMCAmbmJzcDsmIzE4MzsmbmJzcDsgPHNw YW4gc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2xldHRlci1zcGFjaW5nOi4xNGVtO2NvbG9yOiM3ZDhh OTE7Ij5SNDY5NjZMPC9zcGFuPjwvZGl2PgogICAgICA8YSBjbGFzcz0ic2hvcCBydiBkMyIgaHJl Zj0iIyIgZGF0YS1waWQ9ImN5Y2xhZGVzLXIiPlNob3AgVGhpcyBQaWVjZTwvYT4KICAgIDwvZGl2 PgogICAgPGRpdiBjbGFzcz0iY2FyZCIgZGF0YS1wcm9kPSJuYWlhZCI+CiAgICAgIDxkaXYgY2xh c3M9ImZyYW1lIGdhbCBydiI+CiAgICAgICAgPGRpdiBjbGFzcz0iZ3RyYWNrIj48aW1nIHNyYz0i ZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFBQUFBQ0g1QkFFS0FBRUFMQUFBQUFB QkFBRUFBQUlDVEFFQU93PT0iIGRhdGEtaz0icjQ3MDI3eSIgYWx0PSJBZWdlYW4gYXN5bW1ldHJp Y2FsIHdhdmUgcmluZyBpbiBwb2xpc2hlZCAxOGsgeWVsbG93IGdvbGQgd2l0aCBtYXJxdWlzZSBk aWFtb25kcyIgY2xhc3M9Im9uIiBsb2FkaW5nPSJsYXp5Ij48aW1nIHNyYz0iZGF0YTppbWFnZS9n aWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFBQUFBQ0g1QkFFS0FBRUFMQUFBQUFBQkFBRUFBQUlDVEFF QU93PT0iIGRhdGEtaz0icjQ3MDI3eS1tb2RlbCIgYWx0PSJBZWdlYW4gYXN5bW1ldHJpY2FsIHdh dmUgcmluZyB3b3JuIG9uIHRoZSBoYW5kIiBsb2FkaW5nPSJsYXp5Ij48aW1nIHNyYz0iZGF0YTpp bWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFBQUFBQ0g1QkFFS0FBRUFMQUFBQUFBQkFBRUFB QUlDVEFFQU93PT0iIGRhdGEtaz0icjQ3MDI3eS1ibHVlIiBhbHQ9IkFlZ2VhbiBhc3ltbWV0cmlj YWwgd2F2ZSByaW5nIG9uIGJsdWUgc2lsayIgbG9hZGluZz0ibGF6eSI+PC9kaXY+CiAgICAgICAg PGJ1dHRvbiBjbGFzcz0iZ25hdiBwcmV2IiBhcmlhLWxhYmVsPSJQcmV2aW91cyBpbWFnZSI+JiM4 MjQ5OzwvYnV0dG9uPgogICAgICAgIDxidXR0b24gY2xhc3M9ImduYXYgbmV4dCIgYXJpYS1sYWJl bD0iTmV4dCBpbWFnZSI+JiM4MjUwOzwvYnV0dG9uPgogICAgICAgIDxkaXYgY2xhc3M9Imdkb3Rz Ij48L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxoMyBjbGFzcz0icG5hbWUgcnYgZDEiPkFlZ2Vh biBBc3ltbWV0cmljYWwgV2F2ZSBSaW5nPC9oMz4KICAgICAgPHAgY2xhc3M9InBkZXNjIHJ2IGQy Ij5BIHNtb290aCBzd2VsbCBvZiBwb2xpc2hlZCAxOGsgZ29sZCwgY3Jvc3NlZCBieSBhIGdhcmxh bmQgb2YgbWFycXVpc2UgYW5kIHBlYXIgZGlhbW9uZHMg4oCUIHF1aWV0IHdhdGVyLCB0aGVuIGxp Z2h0LiAxLjkzIGN0IHRvdGFsLjwvcD4KICAgICAgPGRpdiBjbGFzcz0icHJpY2UgcnYgZDIiPiQ3 LDY4MCAmbmJzcDsmIzE4MzsmbmJzcDsgPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2xldHRl ci1zcGFjaW5nOi4xNGVtO2NvbG9yOiM3ZDhhOTE7Ij5SNDcwMjdZPC9zcGFuPjwvZGl2PgogICAg ICA8YSBjbGFzcz0ic2hvcCBydiBkMyIgaHJlZj0iIyIgZGF0YS1waWQ9Im5haWFkIj5TaG9wIFRo aXMgUGllY2U8L2E+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNhcmQiIGRhdGEtcHJvZD0i dGhhbGFzc2EtciI+CiAgICAgIDxkaXYgY2xhc3M9ImZyYW1lIGdhbCBydiI+CiAgICAgICAgPGRp diBjbGFzcz0iZ3RyYWNrIj48aW1nIHNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxo QVFBQkFBQUFBQ0g1QkFFS0FBRUFMQUFBQUFBQkFBRUFBQUlDVEFFQU93PT0iIGRhdGEtaz0icjQ3 MDYxeSIgZGF0YS1tZXRhbD0ieSIgYWx0PSJBZWdlYW4gd2F2ZSBiYW5kIHJpbmcgaW4gMThrIHll bGxvdyBnb2xkIHdpdGggcGF2JiMyMzM7IGFuZCBwZWFyIGRpYW1vbmRzIiBjbGFzcz0ib24iIGxv YWRpbmc9ImxhenkiPjxpbWcgc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFC QUFBQUFDSDVCQUVLQUFFQUxBQUFBQUFCQUFFQUFBSUNUQUVBT3c9PSIgZGF0YS1rPSJyNDcwNjF5 LWJsdWUiIGRhdGEtbWV0YWw9InkiIGFsdD0iQWVnZWFuIHdhdmUgYmFuZCByaW5nIGluIHllbGxv dyBnb2xkIG9uIGJsdWUgc2lsayIgbG9hZGluZz0ibGF6eSI+PGltZyBzcmM9ImRhdGE6aW1hZ2Uv Z2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBQUFBQUNINUJBRUtBQUVBTEFBQUFBQUJBQUVBQUFJQ1RB RUFPdz09IiBkYXRhLWs9InI0NzA2MXciIGRhdGEtbWV0YWw9InciIGFsdD0iQWVnZWFuIHdhdmUg YmFuZCByaW5nIGluIDE4ayB3aGl0ZSBnb2xkIiBsb2FkaW5nPSJsYXp5Ij48aW1nIHNyYz0iZGF0 YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFBQUFBQ0g1QkFFS0FBRUFMQUFBQUFBQkFB RUFBQUlDVEFFQU93PT0iIGRhdGEtaz0icjQ3MDYxdy1ibHVlIiBkYXRhLW1ldGFsPSJ3IiBhbHQ9 IkFlZ2VhbiB3YXZlIGJhbmQgcmluZyBpbiB3aGl0ZSBnb2xkIG9uIGJsdWUgc2lsayIgbG9hZGlu Zz0ibGF6eSI+PC9kaXY+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZ25hdiBwcmV2IiBhcmlhLWxh YmVsPSJQcmV2aW91cyBpbWFnZSI+JiM4MjQ5OzwvYnV0dG9uPgogICAgICAgIDxidXR0b24gY2xh c3M9ImduYXYgbmV4dCIgYXJpYS1sYWJlbD0iTmV4dCBpbWFnZSI+JiM4MjUwOzwvYnV0dG9uPgog ICAgICAgIDxkaXYgY2xhc3M9Imdkb3RzIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxoMyBj bGFzcz0icG5hbWUgcnYgZDEiPkFlZ2VhbiBXYXZlIEJhbmQgUmluZzwvaDM+CiAgICAgIDxwIGNs YXNzPSJwZGVzYyBydiBkMiI+VGhlIHNpZ25hdHVyZSB3YXZlLCBtYWRlIHRvIGJlIHdvcm4gZGFp bHkuIFR3aW4gcGF2JiMyMzM7IGNyZXN0cyBicmVhayBhcm91bmQgYSBsaW5lIG9mIHBlYXIgZGlh bW9uZHMg4oCUIGluIHllbGxvdyBvciB3aGl0ZSBnb2xkLiAxLjQwJiM4MjExOzEuNjAgY3QgdG90 YWwuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJwcmljZSBydiBkMiI+JDgsNDAwICZuYnNwOyYjMTgz OyZuYnNwOyA8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEzcHg7bGV0dGVyLXNwYWNpbmc6LjE0ZW07 Y29sb3I6IzdkOGE5MTsiPlI0NzA2MVkgLyBSNDcwNjFXPC9zcGFuPjwvZGl2PgogICAgICA8YSBj bGFzcz0ic2hvcCBydiBkMyIgaHJlZj0iIyIgZGF0YS1waWQ9InRoYWxhc3NhLXIiPlNob3AgVGhp cyBQaWVjZTwvYT4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iY2FyZCIgZGF0YS1wcm9kPSJk eW8iPgogICAgICA8ZGl2IGNsYXNzPSJmcmFtZSBnYWwgcnYiPgogICAgICAgIDxkaXYgY2xhc3M9 Imd0cmFjayI+PGltZyBzcmM9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBQUFB QUNINUJBRUtBQUVBTEFBQUFBQUJBQUVBQUFJQ1RBRUFPdz09IiBkYXRhLWs9InI0NzMxNHkiIGFs dD0iQWVnZWFuIHR3byBzdG9uZSByaW5nIHdpdGggdHdvIHJvdW5kIGRpYW1vbmRzIGluIDE4ayB5 ZWxsb3cgZ29sZCIgY2xhc3M9Im9uIiBsb2FkaW5nPSJsYXp5Ij48aW1nIHNyYz0iZGF0YTppbWFn ZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFBQUFBQ0g1QkFFS0FBRUFMQUFBQUFBQkFBRUFBQUlD VEFFQU93PT0iIGRhdGEtaz0icjQ3MzE0eS1tb2RlbCIgYWx0PSJBZWdlYW4gdHdvIHN0b25lIHJp bmcgc3RhY2sgd29ybiBvbiB0aGUgaGFuZCIgbG9hZGluZz0ibGF6eSI+PC9kaXY+CiAgICAgICAg PGJ1dHRvbiBjbGFzcz0iZ25hdiBwcmV2IiBhcmlhLWxhYmVsPSJQcmV2aW91cyBpbWFnZSI+JiM4 MjQ5OzwvYnV0dG9uPgogICAgICAgIDxidXR0b24gY2xhc3M9ImduYXYgbmV4dCIgYXJpYS1sYWJl bD0iTmV4dCBpbWFnZSI+JiM4MjUwOzwvYnV0dG9uPgogICAgICAgIDxkaXYgY2xhc3M9Imdkb3Rz Ij48L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxoMyBjbGFzcz0icG5hbWUgcnYgZDEiPkFlZ2Vh biBUd28gU3RvbmUgUmluZzwvaDM+CiAgICAgIDxwIGNsYXNzPSJwZGVzYyBydiBkMiI+VHdvIGJy aWxsaWFudCBkaWFtb25kcyBwYXNzIGxpa2UgY3VycmVudHMgaW4gMThrIGdvbGQg4oCUIHNob3du IHN0YWNrZWQgd2l0aCBpdHMgcGF2JiMyMzM7IGJhbmQuIDEuMDMgY3Qgc29saXRhaXJlcyAmIzE4 MzsgMC40MiBjdCBwYXYmIzIzMzsuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJwcmljZSBydiBkMiI+ JDgsMTIwICZuYnNwOyYjMTgzOyZuYnNwOyA8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEzcHg7bGV0 dGVyLXNwYWNpbmc6LjE0ZW07Y29sb3I6IzdkOGE5MTsiPlI0NzMxNFk8L3NwYW4+PC9kaXY+CiAg ICAgIDxhIGNsYXNzPSJzaG9wIHJ2IGQzIiBocmVmPSIjIiBkYXRhLXBpZD0iZHlvIj5TaG9wIFRo aXMgUGllY2U8L2E+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNhcmQiIGRhdGEtcHJvZD0i bWF0aSI+CiAgICAgIDxkaXYgY2xhc3M9ImZyYW1lIGdhbCBydiI+CiAgICAgICAgPGRpdiBjbGFz cz0iZ3RyYWNrIj48aW1nIHNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFB QUFBQ0g1QkFFS0FBRUFMQUFBQUFBQkFBRUFBQUlDVEFFQU93PT0iIGRhdGEtaz0ibWF0aSIgYWx0 PSJBZWdlYW4gZXZpbCBleWUgcGVuZGFudCBuZWNrbGFjZSB3aXRoIHNhcHBoaXJlIGV5ZSBhbmQg ZGlhbW9uZCBsYXNoZXMgaW4gMThrIHllbGxvdyBnb2xkIiBjbGFzcz0ib24iIGxvYWRpbmc9Imxh enkiPjxpbWcgc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUFBQUFDSDVC QUVLQUFFQUxBQUFBQUFCQUFFQUFBSUNUQUVBT3c9PSIgZGF0YS1rPSJtYXRpLW1vZGVsIiBhbHQ9 IkFlZ2VhbiBldmlsIGV5ZSBwZW5kYW50IHdvcm4gb24gdGhlIG5lY2siIGxvYWRpbmc9Imxhenki PjxpbWcgc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUFBQUFDSDVCQUVL QUFFQUxBQUFBQUFCQUFFQUFBSUNUQUVBT3c9PSIgZGF0YS1rPSJtYXRpLWJsdWUiIGFsdD0iQWVn ZWFuIGV2aWwgZXllIHBlbmRhbnQgb24gYmx1ZSBzaWxrIiBsb2FkaW5nPSJsYXp5Ij48L2Rpdj4K ICAgICAgICA8YnV0dG9uIGNsYXNzPSJnbmF2IHByZXYiIGFyaWEtbGFiZWw9IlByZXZpb3VzIGlt YWdlIj4mIzgyNDk7PC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZ25hdiBuZXh0IiBh cmlhLWxhYmVsPSJOZXh0IGltYWdlIj4mIzgyNTA7PC9idXR0b24+CiAgICAgICAgPGRpdiBjbGFz cz0iZ2RvdHMiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGgzIGNsYXNzPSJwbmFtZSBydiBk MSI+QWVnZWFuIEV2aWwgRXllIFBlbmRhbnQ8L2gzPgogICAgICA8cCBjbGFzcz0icGRlc2MgcnYg ZDIiPlRoZSBBZWdlYW4mIzgyMTc7cyBvbGRlc3QgdGFsaXNtYW4g4oCUIGEgc2FwcGhpcmUgZXll IHJpbmdlZCBpbiBkaWFtb25kcywgbGFzaGVzIG9mIGdvbGQgYW5kIGJlemVsLXNldCBicmlsbGlh bnRzLiAwLjY4IGN0IHRvdGFsLjwvcD4KICAgICAgPGRpdiBjbGFzcz0icHJpY2UgcnYgZDIiPiQy LDkwMDwvZGl2PgogICAgICA8YSBjbGFzcz0ic2hvcCBydiBkMyIgaHJlZj0iIyIgZGF0YS1waWQ9 Im1hdGkiPlNob3AgVGhpcyBQaWVjZTwvYT4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iY2Fy ZCIgZGF0YS1wcm9kPSJrYWx5cHNvIj4KICAgICAgPGRpdiBjbGFzcz0iZnJhbWUgZ2FsIHJ2Ij4K ICAgICAgICA8ZGl2IGNsYXNzPSJndHJhY2siPjxpbWcgc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNl NjQsUjBsR09EbGhBUUFCQUFBQUFDSDVCQUVLQUFFQUxBQUFBQUFCQUFFQUFBSUNUQUVBT3c9PSIg ZGF0YS1rPSJrYWx5cHNvIiBhbHQ9IkFlZ2VhbiB3YXZlIG5lY2tsYWNlIHdpdGggY3Jvc3Npbmcg cGF2JiMyMzM7IGRpYW1vbmQgd2F2ZXMgaW4gMThrIHllbGxvdyBnb2xkIiBjbGFzcz0ib24iIGxv YWRpbmc9ImxhenkiPjxpbWcgc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFC QUFBQUFDSDVCQUVLQUFFQUxBQUFBQUFCQUFFQUFBSUNUQUVBT3c9PSIgZGF0YS1rPSJrYWx5cHNv LW1vZGVsIiBhbHQ9IkFlZ2VhbiB3YXZlIG5lY2tsYWNlIHdvcm4gb24gdGhlIG5lY2siIGxvYWRp bmc9ImxhenkiPjwvZGl2PgogICAgICAgIDxidXR0b24gY2xhc3M9ImduYXYgcHJldiIgYXJpYS1s YWJlbD0iUHJldmlvdXMgaW1hZ2UiPiYjODI0OTs8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIGNs YXNzPSJnbmF2IG5leHQiIGFyaWEtbGFiZWw9Ik5leHQgaW1hZ2UiPiYjODI1MDs8L2J1dHRvbj4K ICAgICAgICA8ZGl2IGNsYXNzPSJnZG90cyI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8aDMg Y2xhc3M9InBuYW1lIHJ2IGQxIj5BZWdlYW4gV2F2ZSBOZWNrbGFjZTwvaDM+CiAgICAgIDxwIGNs YXNzPSJwZGVzYyBydiBkMiI+VHdvIHBhdiYjMjMzOyB3YXZlcyBjcm9zcyBhdCB0aGUgdGhyb2F0 IGFib3ZlIGEgcmliYmVkIGdvbGQgY29sbGFyLCBtZWV0aW5nIGF0IGEgc2luZ2xlIHBlYXIgZGlh bW9uZC4gNi4wMCBjdCB0b3RhbC48L3A+CiAgICAgIDxkaXYgY2xhc3M9InByaWNlIHJ2IGQyIj4k NTgsMDAwICZuYnNwOyYjMTgzOyZuYnNwOyA8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEzcHg7bGV0 dGVyLXNwYWNpbmc6LjE0ZW07Y29sb3I6IzdkOGE5MTsiPk41NDAtMTY8L3NwYW4+PC9kaXY+CiAg ICAgIDxhIGNsYXNzPSJzaG9wIHJ2IGQzIiBocmVmPSIjIiBkYXRhLXBpZD0ia2FseXBzbyI+U2hv cCBUaGlzIFBpZWNlPC9hPgogICAgPC9kaXY+CiAgPC9kaXY+Cjwvc2VjdGlvbj4KCjxzZWN0aW9u IGNsYXNzPSJzZWFiYW5kIiBpZD0iY3JhZnQiPgogIDxkaXYgY2xhc3M9ImlubmVyIj4KICAgIDxk aXYgY2xhc3M9ImtpY2tlciBydiI+Q3JhZnRzbWFuc2hpcDwvZGl2PgogICAgPGJsb2NrcXVvdGUg Y2xhc3M9InJ2IGQxIj4iV2UgZG8gbm90IGltaXRhdGUgdGhlIHNlYS4gV2UgYXNrIHRoZSBnb2xk IHRvIHJlbWVtYmVyIGl0LiI8L2Jsb2NrcXVvdGU+CiAgICA8ZGl2IGNsYXNzPSJhdHRyIHJ2IGQy Ij5NYXJpYSBSZXNzICYjMTgzOyBGb3VuZGVyLCBLYXN0ZWw8L2Rpdj4KICA8L2Rpdj4KICA8ZGl2 IGNsYXNzPSJjcmFmdC1jb2xzIj4KICAgIDxkaXYgY2xhc3M9InJ2Ij4KICAgICAgPHN2ZyBjbGFz cz0iZ2x5cGgiIHZpZXdCb3g9IjAgMCA0NCA0NCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9 Ik00IDIyIEMgMTIgMTIsIDE4IDMyLCAyNiAyMiBTIDM4IDEyLCA0MCAyMiIvPjxwYXRoIGQ9Ik00 IDMwIEMgMTIgMjAsIDE4IDQwLCAyNiAzMCBTIDM4IDIwLCA0MCAzMCIvPjwvc3ZnPgogICAgICA8 aDM+U0NVTFBURUQgRk9STTwvaDM+CiAgICAgIDxwPkV2ZXJ5IHNpbGhvdWV0dGUgYmVnaW5zIGFz IGEgaGFuZC1jYXJ2ZWQgd2F4LCByZWZpbmVkIHVudGlsIHRoZSBjdXJ2ZSBob2xkcyB0aGUgZXhh Y3QgdGVuc2lvbiBvZiBhIGJyZWFraW5nIHdhdmUuPC9wPgogICAgPC9kaXY+CiAgICA8ZGl2IGNs YXNzPSJydiBkMSI+CiAgICAgIDxzdmcgY2xhc3M9ImdseXBoIiB2aWV3Qm94PSIwIDAgNDQgNDQi IGFyaWEtaGlkZGVuPSJ0cnVlIj48Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSI5Ii8+PHBhdGgg ZD0iTTIyIDQgTDIyIDEwIE0yMiAzNCBMMjIgNDAgTTQgMjIgTDEwIDIyIE0zNCAyMiBMNDAgMjIi Lz48L3N2Zz4KICAgICAgPGgzPlNDQVRURVJFRCBMSUdIVDwvaDM+CiAgICAgIDxwPkRpYW1vbmRz IGFyZSBzZXQgZnJlZSBvZiByaWdpZCByb3dzIOKAlCBwbGFjZWQgb25lIGJ5IG9uZSwgdGhlIHdh eSBzdW5saWdodCBsYW5kcyBvbiBtb3Zpbmcgd2F0ZXIuIE5vIHR3byBwaWVjZXMgc2NhdHRlciBh bGlrZS48L3A+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InJ2IGQyIj4KICAgICAgPHN2ZyBj bGFzcz0iZ2x5cGgiIHZpZXdCb3g9IjAgMCA0NCA0NCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRo IGQ9Ik0yMiA1IEwzNiAxNSBMMzYgMzMgTDIyIDQxIEw4IDMzIEw4IDE1IFoiLz48cGF0aCBkPSJN MjIgNSBMMjIgMjMgTDM2IDMzIE0yMiAyMyBMOCAzMyIvPjwvc3ZnPgogICAgICA8aDM+MTgtS0FS QVQgUFJPTUlTRTwvaDM+CiAgICAgIDxwPlJlc3BvbnNpYmx5IHNvdXJjZWQgZ29sZCBhbmQgR0lB LWdyYWRlZCBkaWFtb25kcywgZmluaXNoZWQgYW5kIGhhbGxtYXJrZWQgaW4gdGhlIEthc3RlbCBh dGVsaWVyLiBHdWFyYW50ZWVkIGZvciBsaWZlLjwvcD4KICAgIDwvZGl2PgogIDwvZGl2Pgo8L3Nl Y3Rpb24+Cgo8c2VjdGlvbiBjbGFzcz0iY3RhIiBpZD0idmlzaXQiPgogIDxkaXYgY2xhc3M9Imtp Y2tlciBydiI+UHJpdmF0ZSBBcHBvaW50bWVudHM8L2Rpdj4KICA8aDIgY2xhc3M9InJ2IGQxIj5F eHBlcmllbmNlIHRoZSBBZWdlYW48L2gyPgogIDxwIGNsYXNzPSJydiBkMiI+TWVldCB0aGUgY29s bGVjdGlvbiBpbiBwZXJzb24uIE91ciBzcGVjaWFsaXN0cyB3aWxsIGd1aWRlIHlvdSB0aHJvdWdo IGVhY2ggcGllY2Ug4oCUIGFuZCwgc2hvdWxkIHlvdSB3aXNoLCBiZWdpbiBhIGNvbW1pc3Npb24g ZW50aXJlbHkgeW91ciBvd24uPC9wPgogIDxkaXYgY2xhc3M9Imhlcm8tY3RhIHJ2IGQzIj4KICAg IDxhIGNsYXNzPSJidG4gZGFyayIgaHJlZj0iIyIgZGF0YS1ib29rPSIxIj5Cb29rIGFuIEFwcG9p bnRtZW50PC9hPgogICAgPGEgY2xhc3M9ImJ0biBkYXJrIiBocmVmPSJtYWlsdG86bXJlc3NAa2Fz dGVsamV3ZWxyeS5jb20iIHN0eWxlPSJib3JkZXItY29sb3I6dHJhbnNwYXJlbnQiPkNvbnRhY3Qg dGhlIEF0ZWxpZXIgJiM4NTk0OzwvYT4KICA8L2Rpdj4KPC9zZWN0aW9uPgoKPGZvb3Rlcj4KICA8 c3BhbiBjbGFzcz0id29yZG1hcmsiPktBU1RFTDwvc3Bhbj4KICA8ZGl2IGNsYXNzPSJ0YWciPkZp bmUgamV3ZWxyeSwgbWFkZSB0byBiZSByZW1lbWJlcmVkLjwvZGl2PgogIDxkaXYgY2xhc3M9ImZu YXYiPgogICAgPGEgaHJlZj0iIyI+Q29sbGVjdGlvbnM8L2E+PGEgaHJlZj0iIyI+QmVzcG9rZTwv YT48YSBocmVmPSIjIj5DYXJlICZhbXA7IFJlcGFpcjwvYT48YSBocmVmPSIjIj5TaGlwcGluZyAm YW1wOyBSZXR1cm5zPC9hPjxhIGhyZWY9IiMiPkNvbnRhY3Q8L2E+CiAgPC9kaXY+CiAgPGRpdiBj bGFzcz0ibGVnYWwiPiYjMTY5OyAyMDI2IEthc3RlbCBKZXdlbHJ5LiBBbGwgcmlnaHRzIHJlc2Vy dmVkLjwvZGl2Pgo8L2Zvb3Rlcj4KCjxkaXYgY2xhc3M9Imttb2RhbCIgaWQ9Imttb2RhbCIgcm9s ZT0iZGlhbG9nIiBhcmlhLW1vZGFsPSJ0cnVlIj4KICA8ZGl2IGNsYXNzPSJrYmFjayIgaWQ9Imti YWNrIj48L2Rpdj4KICA8ZGl2IGNsYXNzPSJrcGFuZWwiPgogICAgPGJ1dHRvbiBjbGFzcz0ia2Ns b3NlIiBpZD0ia2Nsb3NlIiBhcmlhLWxhYmVsPSJDbG9zZSI+JiMyMTU7PC9idXR0b24+CiAgICA8 ZGl2IGlkPSJrcGFuZWwtYm9keSI+PC9kaXY+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0ia3RvYXN0 IiBpZD0ia3RvYXN0Ij5BZGRlZCB0byB5b3VyIGNhcnQ8L2Rpdj4KPC9kaXY+CjxzY3JpcHQ+Ci8v IGhlaWdodCByZXBvcnRlciBmaXJzdDogbXVzdCBzdXJ2aXZlIGFueSBsYXRlciBlcnJvcgpmdW5j dGlvbiBrYXN0ZWxQb3N0KCl7cGFyZW50LnBvc3RNZXNzYWdlKHtrYXN0ZWxBZWdlYW5IOmRvY3Vt ZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHR9LCcqJyk7fQp3aW5kb3cuYWRkRXZlbnRM aXN0ZW5lcignbG9hZCcsa2FzdGVsUG9zdCk7CndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNp emUnLGthc3RlbFBvc3QpOwpzZXRJbnRlcnZhbChrYXN0ZWxQb3N0LDEwMDApOwovLyByZXZlYWxz CmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ydjpub3QoLmluKScpLmZvckVhY2goZnVuY3Rp b24oZWwpe2VsLmNsYXNzTGlzdC5hZGQoJ2luJyl9KTsKLy8gaW1hZ2UgZ2FsbGVyaWVzCmRvY3Vt ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5nYWwnKS5mb3JFYWNoKGZ1bmN0aW9uKGcpe2luaXRHYWwo Zyl9KTsKZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmdhbCcpLmZvckVhY2goZnVuY3Rpb24o Zyl7aWYoZy5xdWVyeVNlbGVjdG9yKCdpbWdbZGF0YS1tZXRhbF0nKSlzZXRNZXRhbChnLCd3Jyl9 KTsKCnZhciBLUFJPRFVDVFM9ewogImJhbmdsZSI6eyJuYW1lIjoiQWVnZWFuIEJhbmdsZSIsInBy aWNlIjoyMTgwMCwicmVmIjoiQjEwMDY0VyAvIEIxMDA2NFdZIiwibWV0YWwiOiIxOGsgV2hpdGUg b3IgWWVsbG93IEdvbGQiLCJjdCI6IjMuMDcgY3QgXHUwMGI3IE11bHRpLVNoYXBlIFNjYXR0ZXJl ZCIsImRlc2MiOiIxOGsgZ29sZCB0aGF0IHJpc2VzIGFuZCBmYWxscyBsaWtlIHRoZSB3YXRlci4g SGluZ2VkIGNsb3N1cmUgd2l0aCBoaWRkZW4gY2xhc3AuIn0sCiAia3ltYSI6eyJuYW1lIjoiQWVn ZWFuIERpYW1vbmQgSG9vcCIsInByaWNlIjo4NzIwLCJyZWYiOiJFMTA0NTBZIiwibWV0YWwiOiIx OGsgWWVsbG93IEdvbGQiLCJjdCI6IjIuMDggY3QgXHUwMGI3IFJvdW5kIEJyaWxsaWFudCIsImRl c2MiOiJBIGN1cnJlbnQgb2YgcGF2XHUwMGU5IGRpYW1vbmRzIHdyYXBzIHRocm91Z2ggcG9saXNo ZWQgZ29sZCBcdTIwMTQgdHdvIHRpZGVzIHBhc3NpbmcgaW4gYSBzaW5nbGUsIGZsdWlkIGdlc3R1 cmUuIFRocmVlIHJvd3Mgb2YgbWljcm8tc2V0IGJyaWxsaWFudHMgZm9sbG93IHRoZSB0d2lzdCBv ZiB0aGUgaG9vcC4gU2VjdXJlIGhpbmdlZCBodWdnaWUgY2xvc3VyZSwgZW5ncmF2ZWQgS0FTVEVM IGluc2lkZS4ifSwKICJuZXJlaWQiOnsibmFtZSI6IkFlZ2VhbiBQZWJibGUgRGlhbW9uZCBFYXJy aW5ncyIsInByaWNlIjoxMjA4MCwicmVmIjoiRTk3ODRZIiwibWV0YWwiOiIxOGsgWWVsbG93IEdv bGQiLCJjdCI6IjEuNjAgY3QgXHUwMGI3IFJvdW5kIEJyaWxsaWFudCIsImRlc2MiOiJPcGVuIGxv b3BzIG9mIGdvbGQgY3VybCBsaWtlIHNlYSBmb2FtLCB0cmFpbGVkIGJ5IGEgZHJpZnQgb2YgcHJv bmctc2V0IGJyaWxsaWFudCBkaWFtb25kcyB0aGF0IGFwcGVhciB0byBmbG9hdCBmcmVlIG9mIHRo ZSBtZXRhbC4gTGlnaHQgcGFzc2VzIHRocm91Z2ggdGhlIG9wZW4gc2lsaG91ZXR0ZSB3aXRoIGV2 ZXJ5IHR1cm4gb2YgdGhlIGhlYWQuIFBvc3QgYmFja3Mgd2l0aCBsYXJnZSBmcmljdGlvbiBjbHV0 Y2hlcy4ifSwKICJkZWxvcy1lIjp7Im5hbWUiOiJBZWdlYW4gRGlhbW9uZCBEb21lIEVhcnJpbmdz IiwicHJpY2UiOjEyMzk1LCJyZWYiOiJFMTAzNTVMIiwibWV0YWwiOiIxOGsgWWVsbG93IEdvbGQi LCJjdCI6IjIuMjggY3QgXHUwMGI3IFJvdW5kIEJyaWxsaWFudCIsImRlc2MiOiJUZWFyZHJvcHMg b2Ygb3BlbndvcmsgZ29sZCwgYmFuZGVkIGluIGFsdGVybmF0aW5nIHBvbGlzaGVkIGNoZXZyb25z IGFuZCBjaGFubmVscyBvZiBwYXZcdTAwZTkuIFRoZSBwaWVyY2VkIHN0cnVjdHVyZSBrZWVwcyB0 aGVtIGZlYXRoZXJsaWdodCBhdCBmdWxsIHByZXNlbmNlLiBPbWVnYS1jbGlwIGJhY2tzIGZvciBh bGwtZGF5IGNvbWZvcnQuIn0sCiAiY3ljbGFkZXMtZSI6eyJuYW1lIjoiQWVnZWFuIFRleHR1cmVk IERpYW1vbmQgRWFycmluZ3MiLCJwcmljZSI6MTIwODAsInJlZiI6IkU0Njk2NkwiLCJtZXRhbCI6 IjE4ayBZZWxsb3cgR29sZCIsImN0IjoiMi40MCBjdCBcdTAwYjcgTWl4ZWQgQ3V0cyIsImRlc2Mi OiJUaGUgcmluZydzIHJpcHBsZWQgY29tcGFuaW9uIFx1MjAxNCBmbHV0ZWQgZ29sZCBjYXJyeWlu ZyBhIHNwcmF5IG9mIG1hcnF1aXNlLCBwZWFyIGFuZCBicmlsbGlhbnQgZGlhbW9uZHMgYWNyb3Nz IGl0cyB3YXZlcyBsaWtlIHNlYSBzcHJheSBjYXVnaHQgbWlkLWFpci4gRWFjaCB3aXJlIGlzIGRy YXduIGFuZCBzaGFwZWQgYnkgaGFuZCBiZWZvcmUgc2V0dGluZy4ifSwKICJkZWxvcy1yIjp7Im5h bWUiOiJBZWdlYW4gRG9tZSBSaW5nIiwicHJpY2UiOjc1NDAsInJlZiI6IlIxMDM1NVkiLCJtZXRh bCI6IjE4ayBZZWxsb3cgR29sZCIsImN0IjoiMS4xNCBjdCBcdTAwYjcgUm91bmQgQnJpbGxpYW50 IiwiZGVzYyI6IkEgZG9tZSBvZiBvcGVuIGdvbGQgcmlicywgZXZlcnkgc2Vjb25kIG9uZSBzZXQg d2l0aCBhIGZpbmUgbGluZSBvZiBwYXZcdTAwZTkgXHUyMDE0IGFyY2hpdGVjdHVyZSBhdCB0aGUg c2NhbGUgb2YgYSBmaW5nZXJ0aXAuIFRoZSBvcGVud29yayBrZWVwcyBpdCBsaWdodDsgdGhlIGRv bWUga2VlcHMgaXQgY29tbWFuZGluZy4ifSwKICJjeWNsYWRlcy1yIjp7Im5hbWUiOiJBZWdlYW4g VGV4dHVyZWQgRGlhbW9uZCBSaW5nIiwicHJpY2UiOjU3MjAsInJlZiI6IlI0Njk2NkwiLCJtZXRh bCI6IjE4ayBZZWxsb3cgR29sZCIsImN0IjoiMC45MSBjdCBcdTAwYjcgTWl4ZWQgQ3V0cyIsImRl c2MiOiJGbHV0ZWQgZ29sZCwgcmlwcGxlZCBsaWtlIHdpbmQgb3ZlciB3YXRlciwgY2FycmllcyBh IGRyaWZ0IG9mIG1hcnF1aXNlLCBwZWFyIGFuZCBicmlsbGlhbnQgZGlhbW9uZHMuIE5vIHR3byBz dG9uZXMgc2l0IGF0IHRoZSBzYW1lIGFuZ2xlIFx1MjAxNCBzZXQgb25lIGJ5IG9uZSwgdGhlIHdh eSBsaWdodCBsYW5kcyBvbiBtb3Zpbmcgd2F0ZXIuIn0sCiAibmFpYWQiOnsibmFtZSI6IkFlZ2Vh biBBc3ltbWV0cmljYWwgV2F2ZSBSaW5nIiwicHJpY2UiOjc2ODAsInJlZiI6IlI0NzAyN1kiLCJt ZXRhbCI6IjE4ayBZZWxsb3cgR29sZCIsImN0IjoiMS45MyBjdCBcdTAwYjcgTWFycXVpc2UsIFBl YXIgJiBCcmlsbGlhbnQiLCJkZXNjIjoiQSBzbW9vdGggc3dlbGwgb2YgcG9saXNoZWQgZ29sZCwg Y3Jvc3NlZCBieSBhIGdhcmxhbmQgb2YgbWFycXVpc2UgYW5kIHBlYXIgZGlhbW9uZHMgXHUyMDE0 IHF1aWV0IHdhdGVyLCB0aGVuIGxpZ2h0LiBUaGUgaGlnaC1wb2xpc2ggZG9tZSBpcyBmaW5pc2hl ZCBieSBoYW5kIHRvIGEgbWlycm9yIHN1cmZhY2UuIn0sCiAidGhhbGFzc2EtciI6eyJuYW1lIjoi QWVnZWFuIFdhdmUgQmFuZCBSaW5nIiwicHJpY2UiOjg0MDAsInJlZiI6IlI0NzA2MVkgLyBSNDcw NjFXIiwibWV0YWwiOiIxOGsgWWVsbG93IG9yIFdoaXRlIEdvbGQiLCJjdCI6IjEuNDBcdTIwMTMx LjYwIGN0IFx1MDBiNyBQZWFyIFNvbGl0YWlyZXMgJiBQYXZcdTAwZTkiLCJkZXNjIjoiVGhlIHNp Z25hdHVyZSB3YXZlLCBtYWRlIHRvIGJlIHdvcm4gZGFpbHkuIFR3aW4gcGF2XHUwMGU5IGNyZXN0 cyBicmVhayBhcm91bmQgYSBsaW5lIG9mIHBlYXIgZGlhbW9uZCBzb2xpdGFpcmVzLiBDaG9vc2Ug eWVsbG93IG9yIHdoaXRlIGdvbGQgXHUyMDE0IGJvdGggc2hvd24gaW4gdGhlIGdhbGxlcnkuIn0s CiAiZHlvIjp7Im5hbWUiOiJBZWdlYW4gVHdvIFN0b25lIFJpbmciLCJwcmljZSI6ODEyMCwicmVm IjoiUjQ3MzE0WSIsIm1ldGFsIjoiMThrIFllbGxvdyAmIFdoaXRlIEdvbGQiLCJjdCI6IjEuMDMg Y3QgU29saXRhaXJlcyBcdTAwYjcgMC40MiBjdCBQYXZcdTAwZTkiLCJkZXNjIjoiVHdvIGJyaWxs aWFudCBkaWFtb25kcyBwYXNzIGxpa2UgY3VycmVudHMgYXJvdW5kIGEgcmliYm9uIG9mIGdvbGQu IFNob3duIHN0YWNrZWQgd2l0aCBpdHMgd2hpdGUtZ29sZCBwYXZcdTAwZTkgYmFuZCwgc29sZCBz ZXBhcmF0ZWx5IG9yIGFzIGEgc2V0LiJ9LAogIm1hdGkiOnsibmFtZSI6IkFlZ2VhbiBFdmlsIEV5 ZSBQZW5kYW50IiwicHJpY2UiOjI5MDAsInJlZiI6IiIsIm1ldGFsIjoiMThrIFllbGxvdyBHb2xk ICYgU2FwcGhpcmUiLCJjdCI6IjAuNjggY3QgXHUwMGI3IEJyaWxsaWFudCArIE1hcnF1aXNlIFNh cHBoaXJlIiwiZGVzYyI6IlRoZSBBZWdlYW4ncyBvbGRlc3QgdGFsaXNtYW4gXHUyMDE0IGEgbWFy cXVpc2Ugc2FwcGhpcmUgZXllIHJpbmdlZCBpbiBkaWFtb25kcywgd2l0aCBsYXNoZXMgb2YgZ29s ZCBhbmQgYmV6ZWwtc2V0IGJyaWxsaWFudHMgYmVuZWF0aC4gV29ybiBmb3IgcHJvdGVjdGlvbiBz aW5jZSBhbnRpcXVpdHk7IG1hZGUgdG8gYmUgd29ybiBldmVyeSBkYXkuIDQ1IGNtIGFkanVzdGFi bGUgY2hhaW4uIn0sCiAia2FseXBzbyI6eyJuYW1lIjoiQWVnZWFuIFdhdmUgTmVja2xhY2UiLCJw cmljZSI6NTgwMDAsInJlZiI6Ik41NDAtMTYiLCJtZXRhbCI6IjE4ayBZZWxsb3cgR29sZCIsImN0 IjoiNi4wMCBjdCBcdTAwYjcgUGF2XHUwMGU5ICsgTWFycXVpc2UiLCJkZXNjIjoiVHdvIHBhdlx1 MDBlOSB3YXZlcyBjcm9zcyBhdCB0aGUgdGhyb2F0IGFib3ZlIGEgcmliYmVkIGdvbGQgY29sbGFy LCBtZWV0aW5nIGF0IGEgc2luZ2xlIGFydGljdWxhdGVkIG1hcnF1aXNlIGRpYW1vbmQgdGhhdCBt b3ZlcyBhcyB5b3UgZG8uIFNpeCBjYXJhdHMgb2YgZGlhbW9uZHMgXHUyMDE0IGEgc3RhdGVtZW50 IG1hZGUgZm9yIGJhcmUgc2hvdWxkZXJzIGFuZCBjYW5kbGVsaWdodC4ifSwKfTsKdmFyIEtDQVJU PVtdOwp2YXIgQUVNRVRBTD17J2JhbmdsZSc6e3c6J0IxMDA2NFcnLHk6J0IxMDA2NFdZJ30sJ3Ro YWxhc3NhLXInOnt3OidSNDcwNjFXJyx5OidSNDcwNjFZJ319OwpmdW5jdGlvbiBhZVNrdShlKXt2 YXIgYT1TdHJpbmcoZSkuc3BsaXQoJ3wnKSxwaWQ9YVswXSxtPWFbMV0sbW09QUVNRVRBTFtwaWRd O2lmKG1tKXJldHVybiBtbVttfHwndyddfHxtbS53O2lmKHBpZD09PSdtYXRpJylyZXR1cm4gJ0tT VEwtQUUtTUFUSSc7cmV0dXJuIEtQUk9EVUNUU1twaWRdP0tQUk9EVUNUU1twaWRdLnJlZjonJzt9 CmZ1bmN0aW9uIGFlQWxsKHBpZCl7dmFyIG1tPUFFTUVUQUxbcGlkXTtyZXR1cm4gbW0/W21tLncs bW0ueV06W2FlU2t1KHBpZCldO30KZnVuY3Rpb24gYWVBbGxTb2xkKHBpZCl7cmV0dXJuIGFlQWxs KHBpZCkuZXZlcnkoZnVuY3Rpb24oeCl7cmV0dXJuIEtXLmlzU29sZCh4KTt9KTt9CmZ1bmN0aW9u IGFlTWV0YWxMYWJlbChlKXt2YXIgYT1TdHJpbmcoZSkuc3BsaXQoJ3wnKTtyZXR1cm4gKEFFTUVU QUxbYVswXV0mJmFbMV0pPyhhWzFdPT09J3cnPycgXHUwMGI3IFdoaXRlIEdvbGQnOicgXHUwMGI3 IFllbGxvdyBHb2xkJyk6Jyc7fQpmdW5jdGlvbiBtb25leShuKXtyZXR1cm4gJyQnK24udG9Mb2Nh bGVTdHJpbmcoJ2VuLVVTJyk7fQpmdW5jdGlvbiB2aXNpYmxlSW1ncyhnKXtyZXR1cm4gW10uZmls dGVyLmNhbGwoZy5xdWVyeVNlbGVjdG9yQWxsKCcuZ3RyYWNrIGltZycpLGZ1bmN0aW9uKGltKXty ZXR1cm4gIWltLmNsYXNzTGlzdC5jb250YWlucygnbWhpZGUnKX0pO30KZnVuY3Rpb24gc2V0TWV0 YWwoZyxtKXsKICBbXS5mb3JFYWNoLmNhbGwoZy5xdWVyeVNlbGVjdG9yQWxsKCcuZ3RyYWNrIGlt ZycpLGZ1bmN0aW9uKGltKXsKICAgIHZhciBtbT1pbS5nZXRBdHRyaWJ1dGUoJ2RhdGEtbWV0YWwn KTsKICAgIGlmKG1tKWltLmNsYXNzTGlzdC50b2dnbGUoJ21oaWRlJyxtbSE9PW0pOwogIH0pOwog IGluaXRHYWwoZyk7Cn0KZnVuY3Rpb24gaW5pdEdhbChnKXsKICB2YXIgaW1ncz12aXNpYmxlSW1n cyhnKTsKICBbXS5mb3JFYWNoLmNhbGwoZy5xdWVyeVNlbGVjdG9yQWxsKCcuZ3RyYWNrIGltZycp LGZ1bmN0aW9uKGltKXtpbS5jbGFzc0xpc3QucmVtb3ZlKCdvbicpfSk7CiAgaWYoaW1ncy5sZW5n dGgpaW1nc1swXS5jbGFzc0xpc3QuYWRkKCdvbicpOwogIGlmKGltZ3MubGVuZ3RoPDIpe2cuY2xh c3NMaXN0LmFkZCgnc2luZ2xlJyk7cmV0dXJuO30KICBnLmNsYXNzTGlzdC5yZW1vdmUoJ3Npbmds ZScpOwogIHZhciBkb3RzPWcucXVlcnlTZWxlY3RvcignLmdkb3RzJyksaT0wOwogIGRvdHMuaW5u ZXJIVE1MPScnOwogIGltZ3MuZm9yRWFjaChmdW5jdGlvbihfLG4pe3ZhciBiPWRvY3VtZW50LmNy ZWF0ZUVsZW1lbnQoJ2J1dHRvbicpO2Iuc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywnSW1hZ2Ug JysobisxKSk7aWYobj09PTApYi5jbGFzc0xpc3QuYWRkKCdvbicpO2IuYWRkRXZlbnRMaXN0ZW5l cignY2xpY2snLGZ1bmN0aW9uKCl7Z28obil9KTtkb3RzLmFwcGVuZENoaWxkKGIpO30pOwogIGZ1 bmN0aW9uIGdvKG4pe2k9KG4raW1ncy5sZW5ndGgpJWltZ3MubGVuZ3RoO2ltZ3MuZm9yRWFjaChm dW5jdGlvbihpbSxrKXtpbS5jbGFzc0xpc3QudG9nZ2xlKCdvbicsaz09PWkpfSk7ZG90cy5xdWVy eVNlbGVjdG9yQWxsKCdidXR0b24nKS5mb3JFYWNoKGZ1bmN0aW9uKGIsayl7Yi5jbGFzc0xpc3Qu dG9nZ2xlKCdvbicsaz09PWkpfSk7fQogIGcucXVlcnlTZWxlY3RvcignLmduYXYucHJldicpLm9u Y2xpY2s9ZnVuY3Rpb24oKXtnbyhpLTEpfTsKICBnLnF1ZXJ5U2VsZWN0b3IoJy5nbmF2Lm5leHQn KS5vbmNsaWNrPWZ1bmN0aW9uKCl7Z28oaSsxKX07Cn0KdmFyIGttb2RhbD1kb2N1bWVudC5nZXRF bGVtZW50QnlJZCgna21vZGFsJyksa2JvZHk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2twYW5l bC1ib2R5Jyk7CmZ1bmN0aW9uIGtPcGVuKGh0bWwpewogIGtib2R5LmlubmVySFRNTD1odG1sOwog IGttb2RhbC5jbGFzc0xpc3QuYWRkKCdvcGVuJyk7CiAgcGFyZW50LnBvc3RNZXNzYWdlKHtrYXN0 ZWxNb2RhbE9wZW46dHJ1ZX0sJyonKTsKICB2YXIgZz1rYm9keS5xdWVyeVNlbGVjdG9yKCcuZ2Fs Jyk7aWYoZylpbml0R2FsKGcpOwp9CmZ1bmN0aW9uIGtDbG9zZSgpe2ttb2RhbC5jbGFzc0xpc3Qu cmVtb3ZlKCdvcGVuJyk7cGFyZW50LnBvc3RNZXNzYWdlKHtrYXN0ZWxNb2RhbE9wZW46ZmFsc2V9 LCcqJyk7fQppZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna2Nsb3NlJykpZG9jdW1lbnQuZ2V0 RWxlbWVudEJ5SWQoJ2tjbG9zZScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxrQ2xvc2UpOwpp Zihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna2JhY2snKSlkb2N1bWVudC5nZXRFbGVtZW50QnlJ ZCgna2JhY2snKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsa0Nsb3NlKTsKZG9jdW1lbnQuYWRk RXZlbnRMaXN0ZW5lcigna2V5ZG93bicsZnVuY3Rpb24oZSl7aWYoZS5rZXk9PT0nRXNjYXBlJylr Q2xvc2UoKTt9KTsKd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLGZ1bmN0aW9uKGUp ewogIGlmKGUuZGF0YSYmdHlwZW9mIGUuZGF0YS5rYXN0ZWxNb2RhbFRvcD09PSdudW1iZXInKXsK ICAgIGttb2RhbC5zdHlsZS50b3A9TWF0aC5tYXgoMCxlLmRhdGEua2FzdGVsTW9kYWxUb3ApKydw eCc7CiAgICBrbW9kYWwuc3R5bGUuaGVpZ2h0PWUuZGF0YS5rYXN0ZWxNb2RhbEgrJ3B4JzsKICB9 Cn0pOwpmdW5jdGlvbiBwcm9kdWN0SFRNTChwaWQpewogIHZhciBQPUtQUk9EVUNUU1twaWRdOwog IHZhciBzcmM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtcHJvZD0iJytwaWQrJyJdIC5n dHJhY2snKTsKICB2YXIgaW1ncz1zcmM/c3JjLmlubmVySFRNTDonJzsKICB2YXIgaGFzTWV0YWw9 c3JjJiZzcmMucXVlcnlTZWxlY3RvcignaW1nW2RhdGEtbWV0YWxdJyk7CiAgdmFyIGN1cj0ndyc7 CiAgaWYoaGFzTWV0YWwpe3ZhciB3aW1nPXNyYy5xdWVyeVNlbGVjdG9yKCdpbWdbZGF0YS1tZXRh bD1cdTAwMjJ3XHUwMDIyXScpO2lmKHdpbWcmJndpbWcuY2xhc3NMaXN0LmNvbnRhaW5zKCdtaGlk ZScpKWN1cj0neSc7fQogIHZhciByZWY9UC5yZWY/JzxkaXY+PHNwYW4+UmVmZXJlbmNlPC9zcGFu PjxzcGFuPicrUC5yZWYrJzwvc3Bhbj48L2Rpdj4nOicnOwogIHJldHVybiAnPGRpdiBjbGFzcz0i a2dyaWQiPicKICAgKyc8ZGl2IGNsYXNzPSJmcmFtZSBnYWwiPjxkaXYgY2xhc3M9Imd0cmFjayI+ JytpbWdzKyc8L2Rpdj4nCiAgICsnPGJ1dHRvbiBjbGFzcz0iZ25hdiBwcmV2IiBhcmlhLWxhYmVs PSJQcmV2aW91cyBpbWFnZSI+JiM4MjQ5OzwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImduYXYgbmV4 dCIgYXJpYS1sYWJlbD0iTmV4dCBpbWFnZSI+JiM4MjUwOzwvYnV0dG9uPjxkaXYgY2xhc3M9Imdk b3RzIj48L2Rpdj48L2Rpdj4nCiAgICsnPGRpdiBjbGFzcz0ia2luZm8iPicKICAgKyc8ZGl2IGNs YXNzPSJraWNrZXIiPlRoZSBBZWdlYW4gQ29sbGVjdGlvbjwvZGl2PicKICAgKyc8ZGl2IGNsYXNz PSJrbmFtZSI+JytQLm5hbWUrJzwvZGl2PicKICAgKyc8ZGl2IGNsYXNzPSJrcHJpY2UiPicrbW9u ZXkoUC5wcmljZSkrJzwvZGl2PicKICAgKyc8ZGl2IGNsYXNzPSJrZGVzYyI+JytQLmRlc2MrJzwv ZGl2PicKICAgKyc8ZGl2IGNsYXNzPSJrbWV0YSI+PGRpdj48c3Bhbj5NZXRhbDwvc3Bhbj48c3Bh bj4nK1AubWV0YWwrJzwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuPkRpYW1vbmRzPC9zcGFuPjxzcGFu PicrUC5jdCsnPC9zcGFuPjwvZGl2PicrcmVmKyc8L2Rpdj4nCiAgICsoaGFzTWV0YWw/JzxkaXYg Y2xhc3M9ImttZXRhbCI+PGJ1dHRvbiBjbGFzcz0ia21ldGFsYnRuJysoY3VyPT09J3cnPycgb24n OicnKSsnIiBkYXRhLW1ldGFsLWNob2ljZT0idyI+V2hpdGUgR29sZDwvYnV0dG9uPjxidXR0b24g Y2xhc3M9ImttZXRhbGJ0bicrKGN1cj09PSd5Jz8nIG9uJzonJykrJyIgZGF0YS1tZXRhbC1jaG9p Y2U9InkiPlllbGxvdyBHb2xkPC9idXR0b24+PC9kaXY+JzonJykKICAgKyhhZUFsbFNvbGQocGlk KT8nPGJ1dHRvbiBjbGFzcz0ia2FkZCIgZGlzYWJsZWQgc3R5bGU9Im9wYWNpdHk6LjU1O2N1cnNv cjpkZWZhdWx0Ij5BY3F1aXJlZDwvYnV0dG9uPic6JzxidXR0b24gY2xhc3M9ImthZGQiIGRhdGEt YWRkPSInK3BpZCsnIj5BZGQgdG8gQ2FydCAmbmJzcDtcdTAwYjcmbmJzcDsgJyttb25leShQLnBy aWNlKSsnPC9idXR0b24+JykKICAgKyc8ZGl2IGNsYXNzPSJrbm90ZXMiPk1hZGUgdG8gb3JkZXIg aW4gM1x1MjAxMzQgd2Vla3MgXHUwMGI3IENvbXBsaW1lbnRhcnkgaW5zdXJlZCBzaGlwcGluZyAm YW1wOyAzMC1kYXkgcmV0dXJucyBcdTAwYjcgR0lBLWdyYWRlZCwgcmVzcG9uc2libHkgc291cmNl ZCBkaWFtb25kcyBcdTAwYjcgS2FzdGVsIGxpZmV0aW1lIGd1YXJhbnRlZTwvZGl2PicKICAgKyc8 L2Rpdj48L2Rpdj4nOwp9CmZ1bmN0aW9uIHNpdGVPcmlnaW4oKXt0cnl7cmV0dXJuIHBhcmVudC5s b2NhdGlvbi5vcmlnaW47fWNhdGNoKGUpe3JldHVybiB3aW5kb3cubG9jYXRpb24ub3JpZ2luO319 CmZ1bmN0aW9uIGJvb2tpbmdIVE1MKCl7CiAgdmFyIGQ9bmV3IERhdGUoKTt2YXIgaXNvPWQuZ2V0 RnVsbFllYXIoKSsnLScrU3RyaW5nKGQuZ2V0TW9udGgoKSsxKS5wYWRTdGFydCgyLCcwJykrJy0n K1N0cmluZyhkLmdldERhdGUoKSkucGFkU3RhcnQoMiwnMCcpOwogIHZhciBwaWVjZXM9T2JqZWN0 LmtleXMoS1BST0RVQ1RTKS5tYXAoZnVuY3Rpb24oayl7cmV0dXJuICc8b3B0aW9uIHZhbHVlPSIn K0tQUk9EVUNUU1trXS5uYW1lKyciPicrS1BST0RVQ1RTW2tdLm5hbWUrJzwvb3B0aW9uPid9KS5q b2luKCcnKTsKICB2YXIgdGltZXM9WycxMDowMCBBTScsJzExOjMwIEFNJywnMTowMCBQTScsJzI6 MzAgUE0nLCc0OjAwIFBNJywnNTozMCBQTSddLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gJzxvcHRp b24gdmFsdWU9IicrdCsnIj4nK3QrJzwvb3B0aW9uPid9KS5qb2luKCcnKTsKICByZXR1cm4gJzxk aXYgY2xhc3M9Imtib29rLWdyaWQiPicKICAgKyc8ZGl2IGNsYXNzPSJrYm9vay1zaWRlIj4nCiAg ICsnPGRpdiBjbGFzcz0ia2lja2VyIj5Qcml2YXRlIEFwcG9pbnRtZW50czwvZGl2PicKICAgKyc8 aDM+QW4gaG91ciB3aXRoIHRoZSBBZWdlYW4sIGRldm90ZWQgZW50aXJlbHkgdG8geW91PC9oMz4n CiAgICsnPHA+TWVldCB0aGUgY29sbGVjdGlvbiBwaWVjZSBieSBwaWVjZSB3aXRoIGEgS2FzdGVs IHNwZWNpYWxpc3QgXHUyMDE0IHRyeSBldmVyeXRoaW5nIG9uLCBleHBsb3JlIHNpemluZyBhbmQg bWV0YWxzLCBhbmQgdGFrZSBhbGwgdGhlIHRpbWUgeW91IG5lZWQuPC9wPicKICAgKyc8dWw+PGxp PkNvbXBsaW1lbnRhcnksIG5vIG9ibGlnYXRpb248L2xpPjxsaT5JbiBwZXJzb24gb3IgdmlydHVh bDwvbGk+PGxpPkNoYW1wYWduZSBvbiBhcnJpdmFsPC9saT48L3VsPicKICAgKyc8ZGl2IGNsYXNz PSJrYWRkciI+VGhlIEthc3RlbCBBdGVsaWVyIFx1MDBiNyBIaWdobGFuZCBQYXJrLCBJbGxpbm9p czwvZGl2PicKICAgKyc8L2Rpdj4nCiAgICsnPGRpdiBjbGFzcz0ia2luZm8iPicKICAgKyc8ZGl2 IGNsYXNzPSJrbmFtZSIgc3R5bGU9ImZvbnQtc2l6ZToyNnB4OyI+Qm9vayBhIFByaXZhdGUgVmll d2luZzwvZGl2PicKICAgKyc8ZGl2IGNsYXNzPSJrZm9ybSI+JwogICArJzxkaXYgY2xhc3M9Imty b3ciPjxkaXY+PGxhYmVsIGZvcj0ia2ItbmFtZSI+TmFtZTwvbGFiZWw+PGlucHV0IGlkPSJrYi1u YW1lIiB0eXBlPSJ0ZXh0IiBhdXRvY29tcGxldGU9Im5hbWUiPjwvZGl2PicKICAgKyc8ZGl2Pjxs YWJlbCBmb3I9ImtiLWVtYWlsIj5FbWFpbDwvbGFiZWw+PGlucHV0IGlkPSJrYi1lbWFpbCIgdHlw ZT0iZW1haWwiIGF1dG9jb21wbGV0ZT0iZW1haWwiPjwvZGl2PjwvZGl2PicKICAgKyc8ZGl2IGNs YXNzPSJrcm93Ij48ZGl2PjxsYWJlbCBmb3I9ImtiLXBob25lIj5QaG9uZSAob3B0aW9uYWwpPC9s YWJlbD48aW5wdXQgaWQ9ImtiLXBob25lIiB0eXBlPSJ0ZWwiIGF1dG9jb21wbGV0ZT0idGVsIj48 L2Rpdj4nCiAgICsnPGRpdj48bGFiZWwgZm9yPSJrYi10eXBlIj5BcHBvaW50bWVudCB0eXBlPC9s YWJlbD48c2VsZWN0IGlkPSJrYi10eXBlIj48b3B0aW9uIHZhbHVlPSJJbiBwZXJzb24gYXQgdGhl IGF0ZWxpZXIiPkluIHBlcnNvbiBhdCB0aGUgYXRlbGllcjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9 IlZpcnR1YWwgYXBwb2ludG1lbnQiPlZpcnR1YWwgYXBwb2ludG1lbnQ8L29wdGlvbj48L3NlbGVj dD48L2Rpdj48L2Rpdj4nCiAgICsnPGRpdj48bGFiZWwgZm9yPSJrYi1waWVjZSI+UGllY2Ugb2Yg aW50ZXJlc3Q8L2xhYmVsPjxzZWxlY3QgaWQ9ImtiLXBpZWNlIj48b3B0aW9uIHZhbHVlPSJUaGUg ZnVsbCBjb2xsZWN0aW9uIj5UaGUgZnVsbCBjb2xsZWN0aW9uPC9vcHRpb24+JytwaWVjZXMrJzwv c2VsZWN0PjwvZGl2PicKICAgKyc8ZGl2IGNsYXNzPSJrcm93Ij48ZGl2PjxsYWJlbCBmb3I9Imti LWRhdGUiPlByZWZlcnJlZCBkYXRlPC9sYWJlbD48aW5wdXQgaWQ9ImtiLWRhdGUiIHR5cGU9ImRh dGUiIG1pbj0iJytpc28rJyI+PC9kaXY+JwogICArJzxkaXY+PGxhYmVsIGZvcj0ia2ItdGltZSI+ UHJlZmVycmVkIHRpbWU8L2xhYmVsPjxzZWxlY3QgaWQ9ImtiLXRpbWUiPicrdGltZXMrJzwvc2Vs ZWN0PjwvZGl2PjwvZGl2PicKICAgKyc8ZGl2PjxsYWJlbCBmb3I9ImtiLW1zZyI+QW55dGhpbmcg d2Ugc2hvdWxkIGtub3c/IChvcHRpb25hbCk8L2xhYmVsPjx0ZXh0YXJlYSBpZD0ia2ItbXNnIj48 L3RleHRhcmVhPjwvZGl2PicKICAgKyc8ZGl2IGNsYXNzPSJraHAiPjxsYWJlbCBmb3I9ImtiLWNv bXBhbnkiPkNvbXBhbnk8L2xhYmVsPjxpbnB1dCBpZD0ia2ItY29tcGFueSIgdHlwZT0idGV4dCIg dGFiaW5kZXg9Ii0xIiBhdXRvY29tcGxldGU9Im9mZiI+PC9kaXY+JwogICArJzxkaXYgY2xhc3M9 ImtlcnIiIGlkPSJrYi1lcnIiPlBsZWFzZSBhZGQgeW91ciBuYW1lLCBhIHZhbGlkIGVtYWlsIGFk ZHJlc3MsIGFuZCBhIHByZWZlcnJlZCBkYXRlLjwvZGl2PicKICAgKyc8YnV0dG9uIGNsYXNzPSJr YWRkIiBpZD0ia2Jvb2stc2VuZCI+UmVxdWVzdCBBcHBvaW50bWVudDwvYnV0dG9uPicKICAgKyc8 L2Rpdj4nCiAgICsnPGRpdiBjbGFzcz0ia25vdGVzIj5BIHNwZWNpYWxpc3QgY29uZmlybXMgd2l0 aGluIG9uZSBidXNpbmVzcyBkYXkgXHUwMGI3IFByZWZlciBlbWFpbD8gbXJlc3NAa2FzdGVsamV3 ZWxyeS5jb208L2Rpdj4nCiAgICsnPC9kaXY+PC9kaXY+JzsKfQpmdW5jdGlvbiBib29raW5nU2Vu ZChidG4pewogIHZhciB2PWZ1bmN0aW9uKGlkKXt2YXIgZWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5 SWQoaWQpO3JldHVybiBlbD9lbC52YWx1ZTonJzt9OwogIHZhciBuYW1lPXYoJ2tiLW5hbWUnKSxl bWFpbD12KCdrYi1lbWFpbCcpLHBob25lPXYoJ2tiLXBob25lJyksdHlwZT12KCdrYi10eXBlJyks CiAgICAgIHBpZWNlPXYoJ2tiLXBpZWNlJyksZGF0ZT12KCdrYi1kYXRlJyksdGltZT12KCdrYi10 aW1lJyksbXNnPXYoJ2tiLW1zZycpLGhwPXYoJ2tiLWNvbXBhbnknKTsKICB2YXIgZXJyPWRvY3Vt ZW50LmdldEVsZW1lbnRCeUlkKCdrYi1lcnInKTsKICBpZighbmFtZS50cmltKCl8fCEvXlteXHNA XStAW15cc0BdK1wuW15cc0BdKyQvLnRlc3QoZW1haWwpfHwhZGF0ZSl7aWYoZXJyKWVyci5zdHls ZS5kaXNwbGF5PSdibG9jayc7cmV0dXJuO30KICBpZihlcnIpZXJyLnN0eWxlLmRpc3BsYXk9J25v bmUnOwogIGJ0bi5kaXNhYmxlZD10cnVlO2J0bi50ZXh0Q29udGVudD0nU2VuZGluZ1x1MjAyNic7 CiAgdmFyIGZkPW5ldyBGb3JtRGF0YSgpOwogIGZkLmFwcGVuZCgnYWN0aW9uJywna2FzdGVsX3Zp ZXdpbmcnKTsKICBmZC5hcHBlbmQoJ25hbWUnLG5hbWUpO2ZkLmFwcGVuZCgnZW1haWwnLGVtYWls KTtmZC5hcHBlbmQoJ3Bob25lJyxwaG9uZSk7CiAgZmQuYXBwZW5kKCd0eXBlJyx0eXBlKTtmZC5h cHBlbmQoJ3BpZWNlJyxwaWVjZSk7CiAgZmQuYXBwZW5kKCdkYXRlJyxkYXRlKTtmZC5hcHBlbmQo J3RpbWUnLHRpbWUpO2ZkLmFwcGVuZCgnbWVzc2FnZScsbXNnKTtmZC5hcHBlbmQoJ2NvbXBhbnkn LGhwKTsKICBmZXRjaChzaXRlT3JpZ2luKCkrJy93cC1hZG1pbi9hZG1pbi1hamF4LnBocCcse21l dGhvZDonUE9TVCcsYm9keTpmZH0pCiAgICAudGhlbihmdW5jdGlvbihyKXtpZighci5vayl0aHJv dyBuZXcgRXJyb3IoJ2h0dHAgJytyLnN0YXR1cyk7cmV0dXJuIHIuanNvbigpO30pCiAgICAudGhl bihmdW5jdGlvbihqKXsKICAgICAgaWYoaiYmai5zdWNjZXNzPT09ZmFsc2UpdGhyb3cgbmV3IEVy cm9yKCdzZXJ2ZXInKTsKICAgICAga2JvZHkuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJraW5mbyIg c3R5bGU9InBhZGRpbmc6NjBweCA0NHB4O3RleHQtYWxpZ246Y2VudGVyOyI+PGRpdiBjbGFzcz0i a2lja2VyIj5UaGFuayB5b3U8L2Rpdj48ZGl2IGNsYXNzPSJrbmFtZSI+WW91ciByZXF1ZXN0IGhh cyBiZWVuIHJlY2VpdmVkPC9kaXY+PGRpdiBjbGFzcz0ia2Rlc2MiIHN0eWxlPSJtYXJnaW4tdG9w OjE2cHg7Ij5BIEthc3RlbCBzcGVjaWFsaXN0IHdpbGwgYmUgaW4gdG91Y2ggd2l0aGluIG9uZSBi dXNpbmVzcyBkYXkgdG8gY29uZmlybSB5b3VyIHByaXZhdGUgdmlld2luZyBvbiAnK2RhdGUrJyBh dCAnK3RpbWUrJy48L2Rpdj48L2Rpdj4nOwogICAgfSkKICAgIC5jYXRjaChmdW5jdGlvbihlKXsK ICAgICAgY29uc29sZS5lcnJvcignS0FTVEVMIGJvb2tpbmc6JyxlKTsKICAgICAgdmFyIG1haWw9 J21haWx0bzptcmVzc0BrYXN0ZWxqZXdlbHJ5LmNvbT9zdWJqZWN0PScrZW5jb2RlVVJJQ29tcG9u ZW50KCdQcml2YXRlIFZpZXdpbmcgUmVxdWVzdCBcdTIwMTQgJytuYW1lKQogICAgICAgICsnJmJv ZHk9JytlbmNvZGVVUklDb21wb25lbnQoJ05hbWU6ICcrbmFtZSsnXG5FbWFpbDogJytlbWFpbCsn XG5QaG9uZTogJytwaG9uZSsnXG5UeXBlOiAnK3R5cGUrJ1xuUGllY2Ugb2YgaW50ZXJlc3Q6ICcr cGllY2UrJ1xuUHJlZmVycmVkOiAnK2RhdGUrJyBhdCAnK3RpbWUrJ1xuXG4nK21zZyk7CiAgICAg IGtib2R5LmlubmVySFRNTD0nPGRpdiBjbGFzcz0ia2luZm8iIHN0eWxlPSJwYWRkaW5nOjYwcHgg NDRweDt0ZXh0LWFsaWduOmNlbnRlcjsiPjxkaXYgY2xhc3M9ImtpY2tlciI+QWxtb3N0IHRoZXJl PC9kaXY+PGRpdiBjbGFzcz0ia25hbWUiPk9uZSBtb3JlIHN0ZXA8L2Rpdj48ZGl2IGNsYXNzPSJr ZGVzYyIgc3R5bGU9Im1hcmdpbi10b3A6MTZweDsiPldlIGNvdWxkblx1MjAxOXQgc2VuZCB5b3Vy IHJlcXVlc3QgYXV0b21hdGljYWxseS4gVGFwIGJlbG93IGFuZCB5b3VyIGVtYWlsIGFwcCB3aWxs IG9wZW4gd2l0aCBldmVyeXRoaW5nIHByZS1maWxsZWQgXHUyMDE0IGp1c3QgcHJlc3Mgc2VuZC48 L2Rpdj48YSBjbGFzcz0iYnRuIGRhcmsiIHN0eWxlPSJtYXJnaW4tdG9wOjEwcHg7ZGlzcGxheTpp bmxpbmUtYmxvY2s7IiBocmVmPSInK21haWwrJyI+RW1haWwgWW91ciBSZXF1ZXN0PC9hPjwvZGl2 Pic7CiAgICB9KTsKfQpmdW5jdGlvbiBib29raW5nU2VuZChidG4pewogIHZhciBuYW1lPShkb2N1 bWVudC5nZXRFbGVtZW50QnlJZCgna2ItbmFtZScpfHx7fSkudmFsdWV8fCcnOwogIHZhciBlbWFp bD0oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2tiLWVtYWlsJyl8fHt9KS52YWx1ZXx8Jyc7CiAg dmFyIHBob25lPShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna2ItcGhvbmUnKXx8e30pLnZhbHVl fHwnJzsKICB2YXIgZGF0ZT0oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2tiLWRhdGUnKXx8e30p LnZhbHVlfHwnJzsKICB2YXIgbXNnPShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna2ItbXNnJyl8 fHt9KS52YWx1ZXx8Jyc7CiAgdmFyIGhwPShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna2ItY29t cGFueScpfHx7fSkudmFsdWV8fCcnOwogIHZhciBlcnI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo J2tiLWVycicpOwogIGlmKCFuYW1lLnRyaW0oKXx8IS9eW15cc0BdK0BbXlxzQF0rXC5bXlxzQF0r JC8udGVzdChlbWFpbCkpe2lmKGVycillcnIuc3R5bGUuZGlzcGxheT0nYmxvY2snO3JldHVybjt9 CiAgaWYoZXJyKWVyci5zdHlsZS5kaXNwbGF5PSdub25lJzsKICBidG4uZGlzYWJsZWQ9dHJ1ZTti dG4udGV4dENvbnRlbnQ9J1NlbmRpbmdcdTIwMjYnOwogIHZhciBmZD1uZXcgRm9ybURhdGEoKTsK ICBmZC5hcHBlbmQoJ2FjdGlvbicsJ2thc3RlbF92aWV3aW5nJyk7CiAgZmQuYXBwZW5kKCduYW1l JyxuYW1lKTtmZC5hcHBlbmQoJ2VtYWlsJyxlbWFpbCk7ZmQuYXBwZW5kKCdwaG9uZScscGhvbmUp OwogIGZkLmFwcGVuZCgnZGF0ZScsZGF0ZSk7ZmQuYXBwZW5kKCdtZXNzYWdlJyxtc2cpO2ZkLmFw cGVuZCgnY29tcGFueScsaHApOwogIGZldGNoKHNpdGVPcmlnaW4oKSsnL3dwLWFkbWluL2FkbWlu LWFqYXgucGhwJyx7bWV0aG9kOidQT1NUJyxib2R5OmZkfSkKICAgIC50aGVuKGZ1bmN0aW9uKHIp e2lmKCFyLm9rKXRocm93IG5ldyBFcnJvcignaHR0cCAnK3Iuc3RhdHVzKTtyZXR1cm4gci5qc29u KCk7fSkKICAgIC50aGVuKGZ1bmN0aW9uKGopewogICAgICBpZihqJiZqLnN1Y2Nlc3M9PT1mYWxz ZSl0aHJvdyBuZXcgRXJyb3IoJ3NlcnZlcicpOwogICAgICBrYm9keS5pbm5lckhUTUw9JzxkaXYg Y2xhc3M9ImtpbmZvIiBzdHlsZT0icGFkZGluZzo2MHB4IDQ0cHg7dGV4dC1hbGlnbjpjZW50ZXI7 Ij48ZGl2IGNsYXNzPSJraWNrZXIiPlRoYW5rIHlvdTwvZGl2PjxkaXYgY2xhc3M9ImtuYW1lIj5Z b3VyIHJlcXVlc3QgaGFzIGJlZW4gcmVjZWl2ZWQ8L2Rpdj48ZGl2IGNsYXNzPSJrZGVzYyIgc3R5 bGU9Im1hcmdpbi10b3A6MTZweDsiPkEgS2FzdGVsIHNwZWNpYWxpc3Qgd2lsbCBiZSBpbiB0b3Vj aCB3aXRoaW4gb25lIGJ1c2luZXNzIGRheSB0byBjb25maXJtIHlvdXIgcHJpdmF0ZSB2aWV3aW5n LjwvZGl2PjwvZGl2Pic7CiAgICB9KQogICAgLmNhdGNoKGZ1bmN0aW9uKGUpewogICAgICBjb25z b2xlLmVycm9yKCdLQVNURUwgYm9va2luZzonLGUpOwogICAgICB2YXIgbWFpbD0nbWFpbHRvOm1y ZXNzQGthc3RlbGpld2VscnkuY29tP3N1YmplY3Q9JytlbmNvZGVVUklDb21wb25lbnQoJ1ByaXZh dGUgVmlld2luZyBSZXF1ZXN0IFx1MjAxNCAnK25hbWUpCiAgICAgICAgKycmYm9keT0nK2VuY29k ZVVSSUNvbXBvbmVudCgnTmFtZTogJytuYW1lKydcbkVtYWlsOiAnK2VtYWlsKydcblBob25lOiAn K3Bob25lKydcblByZWZlcnJlZCBkYXRlOiAnK2RhdGUrJ1xuXG4nK21zZyk7CiAgICAgIGtib2R5 LmlubmVySFRNTD0nPGRpdiBjbGFzcz0ia2luZm8iIHN0eWxlPSJwYWRkaW5nOjYwcHggNDRweDt0 ZXh0LWFsaWduOmNlbnRlcjsiPjxkaXYgY2xhc3M9ImtpY2tlciI+QWxtb3N0IHRoZXJlPC9kaXY+ PGRpdiBjbGFzcz0ia25hbWUiPk9uZSBtb3JlIHN0ZXA8L2Rpdj48ZGl2IGNsYXNzPSJrZGVzYyIg c3R5bGU9Im1hcmdpbi10b3A6MTZweDsiPldlIGNvdWxkblx1MjAxOXQgc2VuZCB5b3VyIHJlcXVl c3QgYXV0b21hdGljYWxseS4gVGFwIGJlbG93IGFuZCB5b3VyIGVtYWlsIGFwcCB3aWxsIG9wZW4g d2l0aCBldmVyeXRoaW5nIHByZS1maWxsZWQgXHUyMDE0IGp1c3QgcHJlc3Mgc2VuZC48L2Rpdj48 YSBjbGFzcz0iYnRuIGRhcmsiIHN0eWxlPSJtYXJnaW4tdG9wOjEwcHg7ZGlzcGxheTppbmxpbmUt YmxvY2s7IiBocmVmPSInK21haWwrJyI+RW1haWwgWW91ciBSZXF1ZXN0PC9hPjwvZGl2Pic7CiAg ICB9KTsKfQpmdW5jdGlvbiBjYXJ0SFRNTCgpewogIHZhciBDPUtXLmNhcnQoKTsKICBpZighQy5p dGVtcy5sZW5ndGgpe3JldHVybiAnPGRpdiBjbGFzcz0ia2luZm8iIHN0eWxlPSJwYWRkaW5nOjYw cHggNDRweDt0ZXh0LWFsaWduOmNlbnRlcjsiPjxkaXYgY2xhc3M9ImtuYW1lIj5Zb3VyIGNhcnQg aXMgZW1wdHk8L2Rpdj48ZGl2IGNsYXNzPSJrZGVzYyIgc3R5bGU9Im1hcmdpbi10b3A6MTRweDsi PkV2ZXJ5IEFlZ2VhbiBwaWVjZSBpcyBtYWRlIHRvIG9yZGVyIGluIHRoZSBLYXN0ZWwgYXRlbGll ci48L2Rpdj48L2Rpdj4nO30KICB2YXIgcm93cz1DLml0ZW1zLm1hcChmdW5jdGlvbihpdCl7CiAg ICByZXR1cm4gJzxkaXYgY2xhc3M9ImtjYXJ0LXJvdyI+PHNwYW4gY2xhc3M9Im4iPicraXQubmFt ZSsnPHNwYW4gY2xhc3M9Imt3bWV0YSIgc3R5bGU9ImRpc3BsYXk6YmxvY2siPicrS1cuaXRlbU1l dGEoaXQpKyc8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJwIj4nK0tXLml0ZW1QcmljZShpdCkr Jzwvc3Bhbj48YnV0dG9uIGRhdGEta3dybT0iJytpdC5rZXkrJyI+UmVtb3ZlPC9idXR0b24+PC9k aXY+Jzt9KS5qb2luKCcnKTsKICByZXR1cm4gJzxkaXYgY2xhc3M9ImtpbmZvIj48ZGl2IGNsYXNz PSJraWNrZXIiPllvdXIgQ2FydDwvZGl2Picrcm93cwogICArJzxkaXYgY2xhc3M9Imt0b3RhbCI+ PHNwYW4+U3VidG90YWw8L3NwYW4+PHNwYW4+JytLVy5tb25leShDLnRvdGFsKSsnPC9zcGFuPjwv ZGl2PicKICAgKyc8YnV0dG9uIGNsYXNzPSJrYWRkIiBkYXRhLWNoZWNrb3V0PSIxIj5Qcm9jZWVk IHRvIENoZWNrb3V0PC9idXR0b24+JwogICArJzxkaXYgY2xhc3M9Imtub3RlcyI+VGF4ZXMgYW5k IGFueSBkdXRpZXMgYXJlIGNhbGN1bGF0ZWQgYXQgY2hlY2tvdXQuPC9kaXY+PC9kaXY+JzsKfQpm dW5jdGlvbiB1cGRhdGVDb3VudCgpe2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdrY2FydC1uJyku dGV4dENvbnRlbnQ9S1cuY2FydCgpLmNvdW50O30KS1cub25DYXJ0KHVwZGF0ZUNvdW50KTsKdmFy IHRvYXN0VD1udWxsOwpmdW5jdGlvbiB0b2FzdChtc2cpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1l bnRCeUlkKCdrdG9hc3QnKTt0LnRleHRDb250ZW50PW1zZzt0LnN0eWxlLmRpc3BsYXk9J2Jsb2Nr Jzt0LnN0eWxlLnRvcD0ocGFyc2VJbnQoa21vZGFsLnN0eWxlLnRvcHx8MCkrMjQpKydweCc7Y2xl YXJUaW1lb3V0KHRvYXN0VCk7dG9hc3RUPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LnN0eWxlLmRp c3BsYXk9J25vbmUnfSwyMjAwKTt9CmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxm dW5jdGlvbihldil7CiAgdmFyIHQ9ZXYudGFyZ2V0OwogIHZhciBtYj10LmNsb3Nlc3Q/dC5jbG9z ZXN0KCdbZGF0YS1tZXRhbC1jaG9pY2VdJyk6bnVsbDsKICBpZihtYil7CiAgICBldi5wcmV2ZW50 RGVmYXVsdCgpOwogICAgdmFyIHdyYXA9bWIuY2xvc2VzdCgnLmtncmlkJyl8fG1iLmNsb3Nlc3Qo Jy5mZWF0dXJlZC1ncmlkJyk7CiAgICB2YXIgZz13cmFwP3dyYXAucXVlcnlTZWxlY3RvcignLmdh bCcpOm51bGw7CiAgICBpZihnKXNldE1ldGFsKGcsbWIuZ2V0QXR0cmlidXRlKCdkYXRhLW1ldGFs LWNob2ljZScpKTsKICAgIHZhciBzaWJzPW1iLnBhcmVudE5vZGUucXVlcnlTZWxlY3RvckFsbCgn W2RhdGEtbWV0YWwtY2hvaWNlXScpOwogICAgW10uZm9yRWFjaC5jYWxsKHNpYnMsZnVuY3Rpb24o Yil7Yi5jbGFzc0xpc3QudG9nZ2xlKCdvbicsYj09PW1iKX0pOwogICAgcmV0dXJuOwogIH0KICB2 YXIgYms9dC5jbG9zZXN0P3QuY2xvc2VzdCgnW2RhdGEtYm9va10nKTpudWxsOwogIGlmKGJrKXtl di5wcmV2ZW50RGVmYXVsdCgpO2tPcGVuKGJvb2tpbmdIVE1MKCkpO3JldHVybjt9CiAgaWYodC5p ZD09PSdrYm9vay1zZW5kJyl7ZXYucHJldmVudERlZmF1bHQoKTtib29raW5nU2VuZCh0KTtyZXR1 cm47fQogIHZhciBwaWRFbD10LmNsb3Nlc3Q/dC5jbG9zZXN0KCdbZGF0YS1waWRdJyk6bnVsbDsK ICBpZihwaWRFbCl7ZXYucHJldmVudERlZmF1bHQoKTtrT3Blbihwcm9kdWN0SFRNTChwaWRFbC5n ZXRBdHRyaWJ1dGUoJ2RhdGEtcGlkJykpKTtyZXR1cm47fQogIGlmKHQuaWQ9PT0na2NhcnQtb3Bl bicpe2V2LnByZXZlbnREZWZhdWx0KCk7a09wZW4oY2FydEhUTUwoKSk7S1cucmVmcmVzaCgpLnRo ZW4oZnVuY3Rpb24oKXtpZihrbW9kYWwuY2xhc3NMaXN0LmNvbnRhaW5zKCdvcGVuJykpe2lmKGti b2R5LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWNoZWNrb3V0XSxbZGF0YS1rd3JtXScpfHxrYm9keS50 ZXh0Q29udGVudC5pbmRleE9mKCdZb3VyIGNhcnQgaXMgZW1wdHknKT49MClrYm9keS5pbm5lckhU TUw9Y2FydEhUTUwoKTt9fSk7cmV0dXJuO30KICBpZih0LmdldEF0dHJpYnV0ZSYmdC5nZXRBdHRy aWJ1dGUoJ2RhdGEta3dybScpKXtldi5wcmV2ZW50RGVmYXVsdCgpO0tXLnJlbW92ZSh0LmdldEF0 dHJpYnV0ZSgnZGF0YS1rd3JtJyksdCkudGhlbihmdW5jdGlvbigpe2tib2R5LmlubmVySFRNTD1j YXJ0SFRNTCgpO30pO3JldHVybjt9CiAgaWYodC5nZXRBdHRyaWJ1dGUmJnQuZ2V0QXR0cmlidXRl KCdkYXRhLWFkZCcpKXsKICAgIHZhciBfdz10LmNsb3Nlc3QoJy5rZ3JpZCcpfHx0LmNsb3Nlc3Qo Jy5mZWF0dXJlZC1ncmlkJyk7dmFyIF9vbj1fdz9fdy5xdWVyeVNlbGVjdG9yKCcua21ldGFsYnRu Lm9uJyk6bnVsbDsKICAgIHZhciBfZT10LmdldEF0dHJpYnV0ZSgnZGF0YS1hZGQnKSsoX29uPyd8 Jytfb24uZ2V0QXR0cmlidXRlKCdkYXRhLW1ldGFsLWNob2ljZScpOicnKSxfcz1hZVNrdShfZSk7 CiAgICBpZihLVy5pc1NvbGQoX3MpKXt0b2FzdCgnVGhpcyBwaWVjZSBoYXMgYmVlbiBhY3F1aXJl ZCcpO3JldHVybjt9CiAgICBLVy5hZGQoX3MsdCxmdW5jdGlvbigpe3QuY2xhc3NMaXN0LmFkZCgn YWRkZWQnKTt0LmlubmVySFRNTD0nQWRkZWQgdG8gQ2FydCBcdTI3MTMnO3NldFRpbWVvdXQoZnVu Y3Rpb24oKXtrT3BlbihjYXJ0SFRNTCgpKTt9LDkwMCk7fSwKICAgICAgZnVuY3Rpb24oKXt2YXIg UDA9S1BST0RVQ1RTW19lLnNwbGl0KCd8JylbMF1dO0tXLmVucXVpcmUoUDAubmFtZSthZU1ldGFs TGFiZWwoX2UpLF9zKTt9KTsKICAgIHJldHVybjsKICB9CiAgaWYodC5nZXRBdHRyaWJ1dGUmJnQu aGFzQXR0cmlidXRlKCdkYXRhLXJtJykpewogICAgS0NBUlQuc3BsaWNlKHBhcnNlSW50KHQuZ2V0 QXR0cmlidXRlKCdkYXRhLXJtJyksMTApLDEpO3VwZGF0ZUNvdW50KCk7a09wZW4oY2FydEhUTUwo KSk7cmV0dXJuOwogIH0KICB2YXIgZnI9dC5jbG9zZXN0P3QuY2xvc2VzdCgnW2RhdGEtcHJvZF0g LmZyYW1lLCBbZGF0YS1wcm9kXSAucG5hbWUnKTpudWxsOwogIGlmKGZyICYmICEodC5jbG9zZXN0 JiYodC5jbG9zZXN0KCcuZ25hdicpfHx0LmNsb3Nlc3QoJy5nZG90cycpfHx0LmNsb3Nlc3QoJ2En KXx8dC5jbG9zZXN0KCdbZGF0YS1tZXRhbC1jaG9pY2VdJykpKSl7CiAgICB2YXIgY2FyZD1mci5j bG9zZXN0KCdbZGF0YS1wcm9kXScpOwogICAgdmFyIHBwPWNhcmQ/Y2FyZC5nZXRBdHRyaWJ1dGUo J2RhdGEtcHJvZCcpOm51bGw7CiAgICBpZihwcCYmS1BST0RVQ1RTW3BwXSl7ZXYucHJldmVudERl ZmF1bHQoKTtrT3Blbihwcm9kdWN0SFRNTChwcCkpO3JldHVybjt9CiAgfQogIGlmKHQuZ2V0QXR0 cmlidXRlJiZ0Lmhhc0F0dHJpYnV0ZSgnZGF0YS1jaGVja291dCcpKXsKICAgIEtXLmNoZWNrb3V0 KCk7CiAgICByZXR1cm47CiAgfQp9LHRydWUpOwovKiBXb29Db21tZXJjZTogbG9vayB1cCBldmVy eSByZWZlcmVuY2UsIG1hcmsgc29sZCBwaWVjZXMgKi8KKGZ1bmN0aW9uKCl7dmFyIGFsbD1bXTtP YmplY3Qua2V5cyhLUFJPRFVDVFMpLmZvckVhY2goZnVuY3Rpb24ocGlkKXthbGw9YWxsLmNvbmNh dChhZUFsbChwaWQpKTt9KTtLVy5sb2FkKGFsbCk7CktXLm9uUmVhZHkoZnVuY3Rpb24oKXtbXS5m b3JFYWNoLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtcHJvZF0nKSxmdW5j dGlvbihjKXt2YXIgcGlkPWMuZ2V0QXR0cmlidXRlKCdkYXRhLXByb2QnKTsKICBpZihLUFJPRFVD VFNbcGlkXSYmYWVBbGxTb2xkKHBpZCkpS1cuYmFkZ2UoYy5xdWVyeVNlbGVjdG9yKCcucG5hbWUn KXx8Yyk7fSk7fSk7fSkoKTsKLy8gc2FmZSBsaW5rIGhhbmRsaW5nIChwcmV2ZW50cyBhYm91dDpi bGFuayBuYXZpZ2F0aW9ucyBmcm9tIGluc2lkZSBzcmNkb2MpCmRvY3VtZW50LmFkZEV2ZW50TGlz dGVuZXIoJ2NsaWNrJyxmdW5jdGlvbihldil7CiAgdmFyIGE9ZXYudGFyZ2V0LmNsb3Nlc3Q/ZXYu dGFyZ2V0LmNsb3Nlc3QoJ2EnKTpudWxsOwogIGlmKCFhKXJldHVybjsKICB2YXIgaHJlZj1hLmdl dEF0dHJpYnV0ZSgnaHJlZicpfHwnJzsKICBpZihocmVmPT09Jyd8fGhyZWY9PT0nIycpe2V2LnBy ZXZlbnREZWZhdWx0KCk7cmV0dXJuO30KICBpZihocmVmLmNoYXJBdCgwKT09PScjJyl7CiAgICBl di5wcmV2ZW50RGVmYXVsdCgpOwogICAgdmFyIGVsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGhy ZWYuc2xpY2UoMSkpOwogICAgaWYoZWwpe3BhcmVudC5wb3N0TWVzc2FnZSh7a2FzdGVsU2Nyb2xs OmVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCt3aW5kb3cucGFnZVlPZmZzZXR9LCcqJyk7 fQogICAgcmV0dXJuOwogIH0KICBpZigvXmh0dHBzPzovaS50ZXN0KGhyZWYpKXtldi5wcmV2ZW50 RGVmYXVsdCgpO3RyeXt3aW5kb3cudG9wLmxvY2F0aW9uLmhyZWY9aHJlZjt9Y2F0Y2goZSl7d2lu ZG93Lm9wZW4oaHJlZiwnX2JsYW5rJyk7fX0KfSx0cnVlKTsKPC9zY3JpcHQ+CjwvYm9keT4KPC9o dG1sPgo=