PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgo8aHRtbCBsYW5nPSJkYSI+CjxoZWFkPgogIDx0aXRsZT5EQS5PcGVuT2ZmaWNlLm9yZyAtIEZlamxyYXBwb3J0ZXJpbmc8L3RpdGxlPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWlzby04ODU5LTEiIC8+CgogIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPCEtLQpmdW5jdGlvbiBhZGRFbmdpbmUoc3JjLGljb24sbmFtZSxjYXQpCnsKICBpZiAoKHR5cGVvZiB3aW5kb3cuc2lkZWJhciA9PSAib2JqZWN0IikgJiYgKHR5cGVvZgogIHdpbmRvdy5zaWRlYmFyLmFkZFNlYXJjaEVuZ2luZSA9PSAiZnVuY3Rpb24iKSkKICB7CiAgICB3aW5kb3cuc2lkZWJhci5hZGRTZWFyY2hFbmdpbmUoCiAgICAgIHNyYywKICAgICAgaWNvbiwKICAgICAgbmFtZSwKICAgICAgY2F0KTsKICB9CiAgZWxzZQogIHsKICAgIGFsZXJ0KCdZb3UgbXVzdCBmaXJzdCBnZXQgRmlyZWZveCBhdCB3d3cuZ2V0ZmlyZWZveC5jb20nKTsKICB9Cn0KLy8tLT4KPC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHk+CjxkaXYgaWQ9ImRhbnNraW5kaG9sZCI+CjxpbWcgc3R5bGU9ImZsb2F0OnJpZ2h0IiBzcmM9ImltYWdlcy9idWcucG5nIiBhbHQ9IkZlamxyYXBwb3J0ZXJpbmciIC8+CjxoMj5GZWpscmFwcG9ydGVyaW5nPC9oMj4KPGgzPkZlamwgaSBkZW4gZGFuc2tlIG9yZGJvZyB0aWwgc3RhdmVrb250cm9sPC9oMz4KCjxwPkRldCBzZWx2c3TmbmRpZ2UgcHJvamVrdCBTdGF2ZWtvbnRyb2xkZW4gdmFyZXRhZ2VyIHVkdmlrbGluZ2VuIGFmIG9yZGJvZ2VuLCBkZXIgYnJ1Z2VzIHRpbCBzdGF2ZWtvbnRyb2wgaSBPcGVuT2ZmaWNlLm9yZy4gRHUga2FuIHJhcHBvcnRlcmUgZmVqbCBvZyBtYW5nbGVyIGkgb3JkYm9nZW4gZGlyZWt0ZSB0aWwgPGEgaHJlZj0iaHR0cDovL3d3dy5zdGF2ZWtvbnRyb2xkZW4uZGsiPlN0YXZla29udHJvbGRlbjwvYT4uPC9wPgoKPGgzPk92ZXJz5nR0ZWxzZXNmZWpsIGkgT3Blbk9mZmljZS5vcmc8L2gzPgo8cD5GZWpsIG9nIG1hbmdsZXIgaSBkZW4gZGFuc2tlIG92ZXJz5nR0ZWxzZSBrYW4gbPhiZW5kZSByYXBwb3J0ZXJlcyB0aWwgPGEgaHJlZj0iYWJvdXQtbWFpbGluZ2xpc3QuaHRtbCI+ZS1wb3N0bGlzdGVuIGRhbnNrJiM2NDtkYS5vcGVub2ZmaWNlLm9yZzwvYT4uIEb4bGdlbmRlIGVyIGVuIGd1aWRlIHRpbCwgaHZvcmRhbiBkdSByYXBwb3J0ZXJlciBmZWpsLCBtYW5nbGVyIG9nIPhuc2tlciB0aWwgc2VsdmUgcHJvZ3JhbW1ldCBPcGVuT2ZmaWNlLm9yZy48L3A+Cgo8aDM+RmVqbHJhcHBvcnRlcmluZ3N25nJrdPhqZXQgSXNzdWV6aWxsYSAoPGEgaHJlZj0iamF2YXNjcmlwdDphZGRFbmdpbmUoJ2h0dHA6Ly9kYS5vcGVub2ZmaWNlLm9yZy9PT28tSXNzdWV6aWxsYS5zcmMnLCAnaHR0cDovL2RhLm9wZW5vZmZpY2Uub3JnL09Pby1Jc3N1ZXppbGxhLnBuZycsICdPT28tSXNzdWV6aWxsYScsICdPT28gSXNzdWV6aWxsYSBTdW1tYXJ5JykiPklzc3VlemlsbGEtc/hnZXBsdWdpbiB0aWwgTW96aWxsYSBGaXJlZm94PC9hPik8L2gzPgo8cD5TZWx2IGZvbGssIGRlciBpa2tlIGVyIHByb2dyYW1t+HJlciBlbGxlciB1ZHZpa2xlcmUga2FuIGhq5mxwZSB0aWwgbWVkIGF0IGZvcmJlZHJlIGtvbnRvcnBha2tlbiBPcGVuT2ZmaWNlLm9yZyBmLmVrcy4gdmVkIGF0IApyYXBwb3J0ZXJlIG9tIGZlamwsIG1hbmdsZXIgb2cgaWTpZXIgdGlsIGZvcmJlZHJpbmdlciB0aWwgdWR2aWtsZXJuZS4gRmVqbHJhcHBvcnRlcmluZ2VyIGVyIG74ZHZlbmRpZ2UgZm9yIHVkdmlrbGVybmUsIG9nIGFsbGUgZmVqbHJhcHBvcnRlcmluZ2VyIGJlaGFuZGxlcyBzZXJp+HN0LjwvcD4KCjxwPk9wZW5PZmZpY2Uub3JnIGFudmVuZGVyIGZlamxyYXBwb3J0ZXJpbmdzduZrdPhqZXQgSXNzdWV6aWxsYSwgZGVyIGVuIGluc3RhbGxhdGlvbiBhZiA8YSBocmVmPSJodHRwOi8vd3d3LmJ1Z3ppbGxhLm9yZyI+QnVnemlsbGE8L2E+LCBzb20gYmwuYS4gTW96aWxsYSBicnVnZXIuIFNwcm9nZXQgaSBJc3N1ZXppbGxhIGVyIGFsdGlkIGVuZ2Vsc2suIERldCBlbmdlbHNrZSBvcmQgImlzc3VlIiBiZXR5ZGVyIGkgZGVubmUgc2FtbWVuaOZuZyBub2dldCBpIHJldG5pbmdlbiBhZiAicHJvYmxlbSIuCgo8cD5O5XIgZHUgc3T4ZGVyIHDlIGV0IHByb2JsZW0gdmVkIGJydWcgZWxsZXIgZXZhbHVlcmluZyBhZiBPcGVuT2ZmaWNlLm9yZywgb2cgZHUgbWlzdOZua2VyIGF0IGZlamxlbiBlbGxlciBtYW5nbGVuIHNreWxkZXMgcHJvZ3JhbW1ldCwgc+Uga2FuIGR1IGJpZHJhZ2UgdGlsIHByb2pla3RldCBvZyBrb250b3JwYWtrZW4gdmVkIGF0IG1lbGRlIGZlamxlbiAtIGFsdHPlICJjb21taXQgYW4gaXNzdWUiIHDlIGVuZ2Vsc2suIER1IGL4ciBmb3Jz+GdlIGF0IHbmcmVzIHPlIHBy5mNpcyBzb20gbXVsaWd0LCBu5XIgZHUgcmFwcG9ydGVyZXIgZmVqbCwgbWFuZ2xlciBvZyD4bnNrZXIgdGlsIGZvcmJlZHJpbmdlci4gT2Z0ZXN0IHZpbCBkaW4gZmVqbHJhcHBvcnQgb2dz5SBibGl2ZSBkaXNrdXRlcmV0IG7mcm1lcmUsIHPlIHVkdmlrbGVybmUga2FuIGZpbmRlIGZyZW0gdGlsLCBodmVtIGRlciBza2FsIHDldGFnZSBzaWcgb3BnYXZlLiBEdSBza2FsIGRlcmZvciB25nJlIGluZHN0aWxsZXQgcOUgYXQgYmVzdmFyZSBzcPhyZ3Nt5WwgZnJhIHVkdmlrbGVybmUgb2cgaGrmbHBlIGRlbSBmcmVtIHRpbCBhdCBmb3JzdOUgcHLmY2lzdCwgaHZhZCBkaW4gZmVqbHJhcHBvcnRlcmluZyBvbWhhbmRsZXIuPC9wPgoKPHA+Rm9yIGF0IGt1bm5lIHJhcHBvcnRlcmUgZmVqbCwgc2thbCBkdSB25nJlIDxhIGhyZWY9Imh0dHA6Ly93d3cub3Blbm9mZmljZS5vcmcvc2VydmxldHMvSm9pbiI+cmVnaXN0cmVyZXQ8L2E+IAptZWRsZW0gYWYgT3Blbk9mZmljZS5vcmctcHJvamVrdGV0LiBEZXR0ZSBrcuZ2ZXIgaWtrZSBhbmRldCBlbmQsIGF0IGRpbiBlLXBvc3RhZHJlc3NlIGVyIGtlbmR0IGFmIHByb2pla3RldCwgc29tIGf4ciBkZXQgbXVsaWd0IAphdCBob2xkZSBkaWcgb3BkYXRlcmV0IHZpYSBlLXBvc3QuIE7lciBkdSByYXBwb3J0ZXJlciBmZWpsLCBtYW5nbGVyIGVsbGVyIPhuc2tlciB0aWwgZm9yYmVkcmluZ2VyIHNrYWwgZHUgduZyZSAKPGEgaHJlZj0iaHR0cDovL3d3dy5vcGVub2ZmaWNlLm9yZy9zZXJ2bGV0cy9UTG9naW4iPmxvZ2dldCBpbmQ8L2E+LjwvcD4gCgo8cD5EZXQga2FuIHNrZSwgYXQgZW4gYW5kZW4gYnJ1Z2VyIGFsbGVyZWRlIGhhciBtZWxkdCBvbSBsaWduZW5kZSBmZWpsLCBtYW5nbGVyIGVsbGVyIPhuc2tlIHRpbCBmb3JiZWRyaW5nLiBG+HIgZHUgYW5tZWxkZXIgZW4gZmVqbCBlbGxlciBtYW5nZWwgYW5iZWZhbGVzIGRldCBkZXJmb3IsIGF0IGR1IGb4cnN0IHP4Z2VyIGVmdGVyIGVuIGxpZ25lbmRlIGZlamxyYXBwb3J0ZXJpbmcgcOUgPGEgaHJlZj0iaHR0cDovL3FhLm9wZW5vZmZpY2Uub3JnL2lzc3VlX2hhbmRsaW5nL3ByZV9zdWJtaXNzaW9uLmh0bWwiPklzc3VlemlsbGFzIHNpbXBsZSBz+Gdlc2lkZTwvYT4gZWxsZXIgPGEgaHJlZj0iaHR0cDovL3d3dy5vcGVub2ZmaWNlLm9yZy9pc3N1ZXMvcXVlcnkuY2dpIj5Jc3N1ZXppbGxhcyBhdmFuY2VyZWRlIHP4Z2VzaWRlPC9hPi4gRXIgZmVqbGVuIHJhcHBvcnRlcmV0IGthbiBkdSBtYXJrZXJlIGRpbiBvcGJha25pbmcgdGlsLCBhdCBmZWpsZW4gYmxpdmVyIHJldHRldCB2ZWQgYXQgc3RlbW1lIC0gVm90ZSAtIHDlIElzc3VldC4g2G5za2VyIGR1IGF0IGb4bGdlIHVkdmlrbGluZ2VuIGkgZmVqbGVuLCBrYW4gZHUgc2tyaXZlIGRpbiBlLXBvc3QtYWRyZXNzZSBpIGZlbHRldCBDQzogb2cgZGVybuZzdCB0cnlra2UgRW50ZXIuPC9wPgoKPHA+SHZpcyBkZXIgaWtrZSBlciBub2dlbiBwcm9ibGVtZXIgcOUgZGVuIGZyZW1rb21uZSBsaXN0ZSwgc29tIHBhc3NlciBtZWQgcHJvYmxlbWV0LCBz5SBrYW4gZHUgZm9ydHPmdHRlIG1lZCBkaW4gZmVqbHJhcHBvcnRlcmluZyB2ZWQgYXQga2xpa2tlIHDlIDxhIGhyZWY9Imh0dHA6Ly9xYS5vcGVub2ZmaWNlLm9yZy9pc3N1ZV9oYW5kbGluZy9zdWJtaXNzaW9uX2dhdGV3YXkuaHRtbCI+R28gb24gLSBzdWJtaXQgdGhlIGlzc3VlPC9hPi48L3A+Cgo8cD5BbmdpdiBudSBkZW4gZGVsIGFmIE9wZW5PZmZpY2Uub3JnLCBzb20gZHUgbWVuZXIgcHJvYmxlbWV0IGj4cmVyIHRpbC48L3A+Cgo8cD5VZGZ5bGQgb3BseXNuaW5nZXIgb20gcHJvYmxlbWV0IC0gaGVsc3Qgc+UgZGVsdGFsamVyZXQgc29tIG11bGlndDo8L3A+Cjx1bD4KPGxpPkluc3RydWt0aW9uZXIgaSBodm9yZGFuIHVkdmlrbGVybmUgc2VsdiBrYW4gb3BsZXZlIHByb2JsZW1ldC48L2xpPgo8bGk+SHZpbGtlIHRhc3RldHJ5aywgbWVudXB1bmt0ZXIsIG11c2VrbGlrIG0udi4gZvhydGUgdGlsIHByb2JsZW1ldC48L2xpPgo8bGk+TOZnIGV2ZW50dWVsdCBmaWxlciBvcCwgc29tIHZpc2VyIHByb2JsZW1ldCAoZG9rdW1lbnRlciBlbGxlciBncmFmaWtmaWxlciBtZWQgc2vmcm1kdW1wcykuPC9saT4KPC91bD4KCjxwPkzmcyBldmVudHVlbHQgdmVqbGVkbmluZ2VuIDxhIGhyZWY9Imh0dHA6Ly9xYS5vcGVub2ZmaWNlLm9yZy9pc3N1ZV9oYW5kbGluZy9iYXNpY19ydWxlcy5odG1sIj5CYXNpYyBJc3N1ZVRyYWNrZXIgcnVsZXM8L2E+IChw5SBlbmdlbHNrKSBm+HIgZHUgYWZnaXZlciBlbiBmZWpscmFwcG9ydC48L3A+Cgo8cD5BZnNsdXRuaW5nc3ZpcyBza2FsIGR1IHbmcmUgb3Bt5nJrc29tIHDlLCBhdCBlbiBmZWpscmFwcG9ydCBiYXNlcmV0IHDlIGJydWcgYWYgZGVuIGRhbnNrZSB1ZGdhdmUgYWYgT3Blbk9mZmljZS5vcmcsIGthbiBn+HJlIGRldCAKdmFuc2tlbGlndCBhdCBiZXNrcml2ZSBwcm9ibGVtZXQgcOUgZW5nZWxzaywgZGEgZGV0IGlra2UgZXIgaW5kbHlzZW5kZSBmb3IgdWR2aWtsZXJuZSAoZWxsZXIgZGlnKSBodmFkIG1lbnVlciwgZGlhbG9nYm9rc2UgbS52LiBoZWRkZXIgcOUgCmVuZ2Vsc2suIFPlIGFuZ2l2IHRyaW4gZm9yIHRyaW4sIGh2YWQgZHUgaGFyIHZhbGd0IC0gZXZlbnR1ZWx0IG1lZCBkaW4gZWdlbiBlbmdlbHNrZSBvdmVyc+Z0dGVsc2UuIEYuZWtzLjwvcD4gCgo8YmxvY2txdW90ZT4KPHA+LSBDaG9vc2UgdGhlIG1lbnVpdGVtICJGaWxlciIgKGVuZy4gRmlsZXMpPGJyIC8+Ci0gQ2hvb3NlIHRoZSBpdGVtICJHZW0gc29tLi4uIiAoZW5nLiAiU2F2ZSBhcy4uLiIpPC9wPgo8L2Jsb2NrcXVvdGU+Cgo8cD5WaWwgZHUgaGF2ZSBoauZscCB0aWwgYXQgcmFwcG9ydGVyZSBlbiBmZWpsLCBtYW5nZWwgb2cgaWTpIGVsbGVyIGJsb3QgZGlza3V0ZXJlIGRlbiwgaW5kZW4gZHUgcmFwcG9ydGVyZXIgZGVuLCBrYW4gZHUgc2tyaXZlIGV0IGluZGzmZyBpIDxhIGhyZWY9Imh0dHA6Ly93d3cub29vZm9ydW0uZGsvdmlld2ZvcnVtLnBocD9mPTgiPkRhbnNrIE9wZW5PZmZpY2Uub3JnLWZvcnVtcyAnRmVqbCBvZyBtYW5nbGVyJzwvYT4uPC9wPgoKPGgzPkt2YWxpdGV0c3Npa3JpbmcgYWYgT3Blbk9mZmljZS5vcmc8L2gzPgo8cD5BcmJlamRldCBtZWQgYXQga3ZhbGl0ZXRzc2lrcmUgT3Blbk9mZmljZS5vcmcgZ2VuZXJlbHQgZXIgYmVza3JldmV0IHDlIDxhIGhyZWY9Imh0dHA6Ly9xYS5vcGVub2ZmaWNlLm9yZy8iPlFBLXByb2pla3RldHMgc2lkZXI8L2E+IChw5SBlbmdlbHNrKS4gSGVyIGthbiBkdSBvZ3PlIGzmc2UgbWVyZSBvbSwgaHZvcmRhbiBkdSBkZWx0YWdlciBpIGRlbiBpbnRlcm5hdGlvbmFsZSBrdmFsaXRldHNzaWtyaW5nLiAKRHUga2FuIGhq5mxwZSB0aWwgbWVkIGt2YWxpdGV0c3Npa3JpbmdlbiBhZiBkZW4gZGFuc2tlIHVkZ2F2ZSB2ZWQgYXQgdGlsbWVsZGUgZGlnIDxhIGhyZWY9ImFib3V0LW1haWxpbmdsaXN0Lmh0bWwiPmUtcG9zdGxpc3RlbiBkYW5zayYjNjQ7ZGEub3Blbm9mZmljZS5vcmc8L2E+LiBJc+ZyIGJydWdlcmUgYWYgTWFjIE9TIFggb2cgRnJlZUJTRCBvcGZvcmRyZXMgdGlsIGF0IGhq5mxwZSB0aWwuPC9wPgoKPHA+PGk+T3BkYXRlcmV0IDIuIG5vdmVtYmVyPC9pPjwvcD4KPC9kaXY+CjwvYm9keT4KPC9odG1sPgo=