Você está aqui: Página Inicial > Órgãos > Secretaria de Política Econômica - SPE > Informativo PIM HTML

Informativo PIM HTML

última modificação 27/11/2019 15h14

text/html Informativo - PIM.html — 928 KB

Conteúdo do arquivo

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="pandoc" />

<meta name="viewport" content="width=device-width, initial-scale=1">

<meta name="author" content="Ministério da Economia - Secretaria de Política Econômica" />


<title>Produção Industrial Mensal - PIM</title>

<script src="data:application/x-javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEFkZCBhIG1ldGhvZCB0byBkZWxlZ2F0b3IgdGhhdCwgd2hlbiBpbnZva2VkLCBjYWxscwogIC8vIGRlbGVnYXRlZS5tZXRob2ROYW1lLiBJZiB0aGVyZSBpcyBubyBzdWNoIG1ldGhvZCBvbgogIC8vIHRoZSBkZWxlZ2F0ZWUsIGJ1dCB0aGVyZSB3YXMgb25lIG9uIGRlbGVnYXRvciBiZWZvcmUKICAvLyBkZWxlZ2F0ZU1ldGhvZCB3YXMgY2FsbGVkLCB0aGVuIHRoZSBvcmlnaW5hbCB2ZXJzaW9uCiAgLy8gaXMgaW52b2tlZCBpbnN0ZWFkLgogIC8vIEZvciBleGFtcGxlOgogIC8vCiAgLy8gdmFyIGEgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2ExJyk7IH0KICAvLyAgIG1ldGhvZDI6IGZ1bmN0aW9uKCkgeyBjb25zb2xlLmxvZygnYTInKTsgfQogIC8vIH07CiAgLy8gdmFyIGIgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2IxJyk7IH0KICAvLyB9OwogIC8vIGRlbGVnYXRlTWV0aG9kKGEsIGIsICJtZXRob2QxIik7CiAgLy8gZGVsZWdhdGVNZXRob2QoYSwgYiwgIm1ldGhvZDIiKTsKICAvLyBhLm1ldGhvZDEoKTsKICAvLyBhLm1ldGhvZDIoKTsKICAvLwogIC8vIFRoZSBvdXRwdXQgd291bGQgYmUgImIxIiwgImEyIi4KICBmdW5jdGlvbiBkZWxlZ2F0ZU1ldGhvZChkZWxlZ2F0b3IsIGRlbGVnYXRlZSwgbWV0aG9kTmFtZSkgewogICAgdmFyIGluaGVyaXRlZCA9IGRlbGVnYXRvclttZXRob2ROYW1lXTsKICAgIGRlbGVnYXRvclttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkgewogICAgICB2YXIgdGFyZ2V0ID0gZGVsZWdhdGVlOwogICAgICB2YXIgbWV0aG9kID0gZGVsZWdhdGVlW21ldGhvZE5hbWVdOwoKICAgICAgLy8gVGhlIG1ldGhvZCBkb2Vzbid0IGV4aXN0IG9uIHRoZSBkZWxlZ2F0ZWUuIEluc3RlYWQsCiAgICAgIC8vIGNhbGwgdGhlIG1ldGhvZCBvbiB0aGUgZGVsZWdhdG9yLCBpZiBpdCBleGlzdHMuCiAgICAgIGlmICghbWV0aG9kKSB7CiAgICAgICAgdGFyZ2V0ID0gZGVsZWdhdG9yOwogICAgICAgIG1ldGhvZCA9IGluaGVyaXRlZDsKICAgICAgfQoKICAgICAgaWYgKG1ldGhvZCkgewogICAgICAgIHJldHVybiBtZXRob2QuYXBwbHkodGFyZ2V0LCBhcmd1bWVudHMpOwogICAgICB9CiAgICB9OwogIH0KCiAgLy8gSW1wbGVtZW50IGEgdmFndWUgZmFjc2ltaWxpZSBvZiBqUXVlcnkncyBkYXRhIG1ldGhvZAogIGZ1bmN0aW9uIGVsZW1lbnREYXRhKGVsLCBuYW1lLCB2YWx1ZSkgewogICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMikgewogICAgICByZXR1cm4gZWxbImh0bWx3aWRnZXRfZGF0YV8iICsgbmFtZV07CiAgICB9IGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMykgewogICAgICBlbFsiaHRtbHdpZGdldF9kYXRhXyIgKyBuYW1lXSA9IHZhbHVlOwogICAgICByZXR1cm4gZWw7CiAgICB9IGVsc2UgewogICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIGVsZW1lbnREYXRhOiAiICsKICAgICAgICBhcmd1bWVudHMubGVuZ3RoKTsKICAgIH0KICB9CgogIC8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzQ0NjE3MC9lc2NhcGUtc3RyaW5nLWZvci11c2UtaW4tamF2YXNjcmlwdC1yZWdleAogIGZ1bmN0aW9uIGVzY2FwZVJlZ0V4cChzdHIpIHsKICAgIHJldHVybiBzdHIucmVwbGFjZSgvW1wtXFtcXVwvXHtcfVwoXClcKlwrXD9cLlxcXF5cJFx8XS9nLCAiXFwkJiIpOwogIH0KCiAgZnVuY3Rpb24gaGFzQ2xhc3MoZWwsIGNsYXNzTmFtZSkgewogICAgdmFyIHJlID0gbmV3IFJlZ0V4cCgiXFxiIiArIGVzY2FwZVJlZ0V4cChjbGFzc05hbWUpICsgIlxcYiIpOwogICAgcmV0dXJuIHJlLnRlc3QoZWwuY2xhc3NOYW1lKTsKICB9CgogIC8vIGVsZW1lbnRzIC0gYXJyYXkgKG9yIGFycmF5LWxpa2Ugb2JqZWN0KSBvZiBIVE1MIGVsZW1lbnRzCiAgLy8gY2xhc3NOYW1lIC0gY2xhc3MgbmFtZSB0byB0ZXN0IGZvcgogIC8vIGluY2x1ZGUgLSBpZiB0cnVlLCBvbmx5IHJldHVybiBlbGVtZW50cyB3aXRoIGdpdmVuIGNsYXNzTmFtZTsKICAvLyAgIGlmIGZhbHNlLCBvbmx5IHJldHVybiBlbGVtZW50cyAqd2l0aG91dCogZ2l2ZW4gY2xhc3NOYW1lCiAgZnVuY3Rpb24gZmlsdGVyQnlDbGFzcyhlbGVtZW50cywgY2xhc3NOYW1lLCBpbmNsdWRlKSB7CiAgICB2YXIgcmVzdWx0cyA9IFtdOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykgewogICAgICBpZiAoaGFzQ2xhc3MoZWxlbWVudHNbaV0sIGNsYXNzTmFtZSkgPT0gaW5jbHVkZSkKICAgICAgICByZXN1bHRzLnB1c2goZWxlbWVudHNbaV0pOwogICAgfQogICAgcmV0dXJuIHJlc3VsdHM7CiAgfQoKICBmdW5jdGlvbiBvbihvYmosIGV2ZW50TmFtZSwgZnVuYykgewogICAgaWYgKG9iai5hZGRFdmVudExpc3RlbmVyKSB7CiAgICAgIG9iai5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgZnVuYywgZmFsc2UpOwogICAgfSBlbHNlIGlmIChvYmouYXR0YWNoRXZlbnQpIHsKICAgICAgb2JqLmF0dGFjaEV2ZW50KGV2ZW50TmFtZSwgZnVuYyk7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBvZmYob2JqLCBldmVudE5hbWUsIGZ1bmMpIHsKICAgIGlmIChvYmoucmVtb3ZlRXZlbnRMaXN0ZW5lcikKICAgICAgb2JqLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBmdW5jLCBmYWxzZSk7CiAgICBlbHNlIGlmIChvYmouZGV0YWNoRXZlbnQpIHsKICAgICAgb2JqLmRldGFjaEV2ZW50KGV2ZW50TmFtZSwgZnVuYyk7CiAgICB9CiAgfQoKICAvLyBUcmFuc2xhdGUgYXJyYXkgb2YgdmFsdWVzIHRvIHRvcC9yaWdodC9ib3R0b20vbGVmdCwgYXMgdXN1YWwgd2l0aAogIC8vIHRoZSAicGFkZGluZyIgQ1NTIHByb3BlcnR5CiAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL3BhZGRpbmcKICBmdW5jdGlvbiB1bnBhY2tQYWRkaW5nKHZhbHVlKSB7CiAgICBpZiAodHlwZW9mKHZhbHVlKSA9PT0gIm51bWJlciIpCiAgICAgIHZhbHVlID0gW3ZhbHVlXTsKICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDEpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMF0sIGJvdHRvbTogdmFsdWVbMF0sIGxlZnQ6IHZhbHVlWzBdfTsKICAgIH0KICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDIpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMV0sIGJvdHRvbTogdmFsdWVbMF0sIGxlZnQ6IHZhbHVlWzFdfTsKICAgIH0KICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDMpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMV0sIGJvdHRvbTogdmFsdWVbMl0sIGxlZnQ6IHZhbHVlWzFdfTsKICAgIH0KICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDQpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMV0sIGJvdHRvbTogdmFsdWVbMl0sIGxlZnQ6IHZhbHVlWzNdfTsKICAgIH0KICB9CgogIC8vIENvbnZlcnQgYW4gdW5wYWNrZWQgcGFkZGluZyBvYmplY3QgdG8gYSBDU1MgdmFsdWUKICBmdW5jdGlvbiBwYWRkaW5nVG9Dc3MocGFkZGluZ09iaikgewogICAgcmV0dXJuIHBhZGRpbmdPYmoudG9wICsgInB4ICIgKyBwYWRkaW5nT2JqLnJpZ2h0ICsgInB4ICIgKyBwYWRkaW5nT2JqLmJvdHRvbSArICJweCAiICsgcGFkZGluZ09iai5sZWZ0ICsgInB4IjsKICB9CgogIC8vIE1ha2VzIGEgbnVtYmVyIHN1aXRhYmxlIGZvciBDU1MKICBmdW5jdGlvbiBweCh4KSB7CiAgICBpZiAodHlwZW9mKHgpID09PSAibnVtYmVyIikKICAgICAgcmV0dXJuIHggKyAicHgiOwogICAgZWxzZQogICAgICByZXR1cm4geDsKICB9CgogIC8vIFJldHJpZXZlcyBydW50aW1lIHdpZGdldCBzaXppbmcgaW5mb3JtYXRpb24gZm9yIGFuIGVsZW1lbnQuCiAgLy8gVGhlIHJldHVybiB2YWx1ZSBpcyBlaXRoZXIgbnVsbCwgb3IgYW4gb2JqZWN0IHdpdGggZmlsbCwgcGFkZGluZywKICAvLyBkZWZhdWx0V2lkdGgsIGRlZmF1bHRIZWlnaHQgZmllbGRzLgogIGZ1bmN0aW9uIHNpemluZ1BvbGljeShlbCkgewogICAgdmFyIHNpemluZ0VsID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigic2NyaXB0W2RhdGEtZm9yPSciICsgZWwuaWQgKyAiJ11bdHlwZT0nYXBwbGljYXRpb24vaHRtbHdpZGdldC1zaXppbmcnXSIpOwogICAgaWYgKCFzaXppbmdFbCkKICAgICAgcmV0dXJuIG51bGw7CiAgICB2YXIgc3AgPSBKU09OLnBhcnNlKHNpemluZ0VsLnRleHRDb250ZW50IHx8IHNpemluZ0VsLnRleHQgfHwgInt9Iik7CiAgICBpZiAodmlld2VyTW9kZSkgewogICAgICByZXR1cm4gc3Audmlld2VyOwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuIHNwLmJyb3dzZXI7CiAgICB9CiAgfQoKICAvLyBAcGFyYW0gdGFza3MgQXJyYXkgb2Ygc3RyaW5ncyAob3IgZmFsc3kgdmFsdWUsIGluIHdoaWNoIGNhc2Ugbm8tb3ApLgogIC8vICAgRWFjaCBlbGVtZW50IG11c3QgYmUgYSB2YWxpZCBKYXZhU2NyaXB0IGV4cHJlc3Npb24gdGhhdCB5aWVsZHMgYQogIC8vICAgZnVuY3Rpb24uIE9yLCBjYW4gYmUgYW4gYXJyYXkgb2Ygb2JqZWN0cyB3aXRoICJjb2RlIiBhbmQgImRhdGEiCiAgLy8gICBwcm9wZXJ0aWVzOyBpbiB0aGlzIGNhc2UsIHRoZSAiY29kZSIgcHJvcGVydHkgc2hvdWxkIGJlIGEgc3RyaW5nCiAgLy8gICBvZiBKUyB0aGF0J3MgYW4gZXhwciB0aGF0IHlpZWxkcyBhIGZ1bmN0aW9uLCBhbmQgImRhdGEiIHNob3VsZCBiZQogIC8vICAgYW4gb2JqZWN0IHRoYXQgd2lsbCBiZSBhZGRlZCBhcyBhbiBhZGRpdGlvbmFsIGFyZ3VtZW50IHdoZW4gdGhhdAogIC8vICAgZnVuY3Rpb24gaXMgY2FsbGVkLgogIC8vIEBwYXJhbSB0YXJnZXQgVGhlIG9iamVjdCB0aGF0IHdpbGwgYmUgInRoaXMiIGZvciBlYWNoIGZ1bmN0aW9uCiAgLy8gICBleGVjdXRpb24uCiAgLy8gQHBhcmFtIGFyZ3MgQXJyYXkgb2YgYXJndW1lbnRzIHRvIGJlIHBhc3NlZCB0byB0aGUgZnVuY3Rpb25zLiAoVGhlCiAgLy8gICBzYW1lIGFyZ3VtZW50cyB3aWxsIGJlIHBhc3NlZCB0byBhbGwgZnVuY3Rpb25zLikKICBmdW5jdGlvbiBldmFsQW5kUnVuKHRhc2tzLCB0YXJnZXQsIGFyZ3MpIHsKICAgIGlmICh0YXNrcykgewogICAgICBmb3JFYWNoKHRhc2tzLCBmdW5jdGlvbih0YXNrKSB7CiAgICAgICAgdmFyIHRoZXNlQXJncyA9IGFyZ3M7CiAgICAgICAgaWYgKHR5cGVvZih0YXNrKSA9PT0gIm9iamVjdCIpIHsKICAgICAgICAgIHRoZXNlQXJncyA9IHRoZXNlQXJncy5jb25jYXQoW3Rhc2suZGF0YV0pOwogICAgICAgICAgdGFzayA9IHRhc2suY29kZTsKICAgICAgICB9CiAgICAgICAgdmFyIHRhc2tGdW5jID0gZXZhbCgiKCIgKyB0YXNrICsgIikiKTsKICAgICAgICBpZiAodHlwZW9mKHRhc2tGdW5jKSAhPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUYXNrIG11c3QgYmUgYSBmdW5jdGlvbiEgU291cmNlOlxuIiArIHRhc2spOwogICAgICAgIH0KICAgICAgICB0YXNrRnVuYy5hcHBseSh0YXJnZXQsIHRoZXNlQXJncyk7CiAgICAgIH0pOwogICAgfQogIH0KCiAgZnVuY3Rpb24gaW5pdFNpemluZyhlbCkgewogICAgdmFyIHNpemluZyA9IHNpemluZ1BvbGljeShlbCk7CiAgICBpZiAoIXNpemluZykKICAgICAgcmV0dXJuOwoKICAgIHZhciBjZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaHRtbHdpZGdldF9jb250YWluZXIiKTsKICAgIGlmICghY2VsKQogICAgICByZXR1cm47CgogICAgaWYgKHR5cGVvZihzaXppbmcucGFkZGluZykgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUubWFyZ2luID0gIjAiOwogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmcgPSBwYWRkaW5nVG9Dc3ModW5wYWNrUGFkZGluZyhzaXppbmcucGFkZGluZykpOwogICAgfQoKICAgIGlmIChzaXppbmcuZmlsbCkgewogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gImhpZGRlbiI7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMTAwJSI7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjEwMCUiOwogICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUud2lkdGggPSAiMTAwJSI7CiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5oZWlnaHQgPSAiMTAwJSI7CiAgICAgIGlmIChjZWwpIHsKICAgICAgICBjZWwuc3R5bGUucG9zaXRpb24gPSAiYWJzb2x1dGUiOwogICAgICAgIHZhciBwYWQgPSB1bnBhY2tQYWRkaW5nKHNpemluZy5wYWRkaW5nKTsKICAgICAgICBjZWwuc3R5bGUudG9wID0gcGFkLnRvcCArICJweCI7CiAgICAgICAgY2VsLnN0eWxlLnJpZ2h0ID0gcGFkLnJpZ2h0ICsgInB4IjsKICAgICAgICBjZWwuc3R5bGUuYm90dG9tID0gcGFkLmJvdHRvbSArICJweCI7CiAgICAgICAgY2VsLnN0eWxlLmxlZnQgPSBwYWQubGVmdCArICJweCI7CiAgICAgICAgZWwuc3R5bGUud2lkdGggPSAiMTAwJSI7CiAgICAgICAgZWwuc3R5bGUuaGVpZ2h0ID0gIjEwMCUiOwogICAgICB9CgogICAgICByZXR1cm4gewogICAgICAgIGdldFdpZHRoOiBmdW5jdGlvbigpIHsgcmV0dXJuIGNlbC5vZmZzZXRXaWR0aDsgfSwKICAgICAgICBnZXRIZWlnaHQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gY2VsLm9mZnNldEhlaWdodDsgfQogICAgICB9OwoKICAgIH0gZWxzZSB7CiAgICAgIGVsLnN0eWxlLndpZHRoID0gcHgoc2l6aW5nLndpZHRoKTsKICAgICAgZWwuc3R5bGUuaGVpZ2h0ID0gcHgoc2l6aW5nLmhlaWdodCk7CgogICAgICByZXR1cm4gewogICAgICAgIGdldFdpZHRoOiBmdW5jdGlvbigpIHsgcmV0dXJuIGVsLm9mZnNldFdpZHRoOyB9LAogICAgICAgIGdldEhlaWdodDogZnVuY3Rpb24oKSB7IHJldHVybiBlbC5vZmZzZXRIZWlnaHQ7IH0KICAgICAgfTsKICAgIH0KICB9CgogIC8vIERlZmF1bHQgaW1wbGVtZW50YXRpb25zIGZvciBtZXRob2RzCiAgdmFyIGRlZmF1bHRzID0gewogICAgZmluZDogZnVuY3Rpb24oc2NvcGUpIHsKICAgICAgcmV0dXJuIHF1ZXJ5U2VsZWN0b3JBbGwoc2NvcGUsICIuIiArIHRoaXMubmFtZSk7CiAgICB9LAogICAgcmVuZGVyRXJyb3I6IGZ1bmN0aW9uKGVsLCBlcnIpIHsKICAgICAgdmFyICRlbCA9ICQoZWwpOwoKICAgICAgdGhpcy5jbGVhckVycm9yKGVsKTsKCiAgICAgIC8vIEFkZCBhbGwgdGhlc2UgZXJyb3IgY2xhc3NlcywgYXMgU2hpbnkgZG9lcwogICAgICB2YXIgZXJyQ2xhc3MgPSAic2hpbnktb3V0cHV0LWVycm9yIjsKICAgICAgaWYgKGVyci50eXBlICE9PSBudWxsKSB7CiAgICAgICAgLy8gdXNlIHRoZSBjbGFzc2VzIG9mIHRoZSBlcnJvciBjb25kaXRpb24gYXMgQ1NTIGNsYXNzIG5hbWVzCiAgICAgICAgZXJyQ2xhc3MgPSBlcnJDbGFzcyArICIgIiArICQubWFwKGFzQXJyYXkoZXJyLnR5cGUpLCBmdW5jdGlvbih0eXBlKSB7CiAgICAgICAgICByZXR1cm4gZXJyQ2xhc3MgKyAiLSIgKyB0eXBlOwogICAgICAgIH0pLmpvaW4oIiAiKTsKICAgICAgfQogICAgICBlcnJDbGFzcyA9IGVyckNsYXNzICsgIiBodG1sd2lkZ2V0cy1lcnJvciI7CgogICAgICAvLyBJcyBlbCBpbmxpbmUgb3IgYmxvY2s/IElmIGlubGluZSBvciBpbmxpbmUtYmxvY2ssIGp1c3QgZGlzcGxheTpub25lIGl0CiAgICAgIC8vIGFuZCBhZGQgYW4gaW5saW5lIGVycm9yLgogICAgICB2YXIgZGlzcGxheSA9ICRlbC5jc3MoImRpc3BsYXkiKTsKICAgICAgJGVsLmRhdGEoInJlc3RvcmUtZGlzcGxheS1tb2RlIiwgZGlzcGxheSk7CgogICAgICBpZiAoZGlzcGxheSA9PT0gImlubGluZSIgfHwgZGlzcGxheSA9PT0gImlubGluZS1ibG9jayIpIHsKICAgICAgICAkZWwuaGlkZSgpOwogICAgICAgIGlmIChlcnIubWVzc2FnZSAhPT0gIiIpIHsKICAgICAgICAgIHZhciBlcnJvclNwYW4gPSAkKCI8c3Bhbj4iKS5hZGRDbGFzcyhlcnJDbGFzcyk7CiAgICAgICAgICBlcnJvclNwYW4udGV4dChlcnIubWVzc2FnZSk7CiAgICAgICAgICAkZWwuYWZ0ZXIoZXJyb3JTcGFuKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoZGlzcGxheSA9PT0gImJsb2NrIikgewogICAgICAgIC8vIElmIGJsb2NrLCBhZGQgYW4gZXJyb3IganVzdCBhZnRlciB0aGUgZWwsIHNldCB2aXNpYmlsaXR5Om5vbmUgb24gdGhlCiAgICAgICAgLy8gZWwsIGFuZCBwb3NpdGlvbiB0aGUgZXJyb3IgdG8gYmUgb24gdG9wIG9mIHRoZSBlbC4KICAgICAgICAvLyBNYXJrIGl0IHdpdGggYSB1bmlxdWUgSUQgYW5kIENTUyBjbGFzcyBzbyB3ZSBjYW4gcmVtb3ZlIGl0IGxhdGVyLgogICAgICAgICRlbC5jc3MoInZpc2liaWxpdHkiLCAiaGlkZGVuIik7CiAgICAgICAgaWYgKGVyci5tZXNzYWdlICE9PSAiIikgewogICAgICAgICAgdmFyIGVycm9yRGl2ID0gJCgiPGRpdj4iKS5hZGRDbGFzcyhlcnJDbGFzcykuY3NzKCJwb3NpdGlvbiIsICJhYnNvbHV0ZSIpCiAgICAgICAgICAgIC5jc3MoInRvcCIsIGVsLm9mZnNldFRvcCkKICAgICAgICAgICAgLmNzcygibGVmdCIsIGVsLm9mZnNldExlZnQpCiAgICAgICAgICAgIC8vIHNldHRpbmcgd2lkdGggY2FuIHB1c2ggb3V0IHRoZSBwYWdlIHNpemUsIGZvcmNpbmcgb3RoZXJ3aXNlCiAgICAgICAgICAgIC8vIHVubmVjZXNzYXJ5IHNjcm9sbGJhcnMgdG8gYXBwZWFyIGFuZCBtYWtpbmcgaXQgaW1wb3NzaWJsZSBmb3IKICAgICAgICAgICAgLy8gdGhlIGVsZW1lbnQgdG8gc2hyaW5rOyBzbyB1c2UgbWF4LXdpZHRoIGluc3RlYWQKICAgICAgICAgICAgLmNzcygibWF4V2lkdGgiLCBlbC5vZmZzZXRXaWR0aCkKICAgICAgICAgICAgLmNzcygiaGVpZ2h0IiwgZWwub2Zmc2V0SGVpZ2h0KTsKICAgICAgICAgIGVycm9yRGl2LnRleHQoZXJyLm1lc3NhZ2UpOwogICAgICAgICAgJGVsLmFmdGVyKGVycm9yRGl2KTsKCiAgICAgICAgICAvLyBSZWFsbHkgZHVtYiB3YXkgdG8ga2VlcCB0aGUgc2l6ZS9wb3NpdGlvbiBvZiB0aGUgZXJyb3IgaW4gc3luYyB3aXRoCiAgICAgICAgICAvLyB0aGUgcGFyZW50IGVsZW1lbnQgYXMgdGhlIHdpbmRvdyBpcyByZXNpemVkIG9yIHdoYXRldmVyLgogICAgICAgICAgdmFyIGludElkID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmICghZXJyb3JEaXZbMF0ucGFyZW50RWxlbWVudCkgewogICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50SWQpOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBlcnJvckRpdgogICAgICAgICAgICAgIC5jc3MoInRvcCIsIGVsLm9mZnNldFRvcCkKICAgICAgICAgICAgICAuY3NzKCJsZWZ0IiwgZWwub2Zmc2V0TGVmdCkKICAgICAgICAgICAgICAuY3NzKCJtYXhXaWR0aCIsIGVsLm9mZnNldFdpZHRoKQogICAgICAgICAgICAgIC5jc3MoImhlaWdodCIsIGVsLm9mZnNldEhlaWdodCk7CiAgICAgICAgICB9LCA1MDApOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIGNsZWFyRXJyb3I6IGZ1bmN0aW9uKGVsKSB7CiAgICAgIHZhciAkZWwgPSAkKGVsKTsKICAgICAgdmFyIGRpc3BsYXkgPSAkZWwuZGF0YSgicmVzdG9yZS1kaXNwbGF5LW1vZGUiKTsKICAgICAgJGVsLmRhdGEoInJlc3RvcmUtZGlzcGxheS1tb2RlIiwgbnVsbCk7CgogICAgICBpZiAoZGlzcGxheSA9PT0gImlubGluZSIgfHwgZGlzcGxheSA9PT0gImlubGluZS1ibG9jayIpIHsKICAgICAgICBpZiAoZGlzcGxheSkKICAgICAgICAgICRlbC5jc3MoImRpc3BsYXkiLCBkaXNwbGF5KTsKICAgICAgICAkKGVsLm5leHRTaWJsaW5nKS5maWx0ZXIoIi5odG1sd2lkZ2V0cy1lcnJvciIpLnJlbW92ZSgpOwogICAgICB9IGVsc2UgaWYgKGRpc3BsYXkgPT09ICJibG9jayIpewogICAgICAgICRlbC5jc3MoInZpc2liaWxpdHkiLCAiaW5oZXJpdCIpOwogICAgICAgICQoZWwubmV4dFNpYmxpbmcpLmZpbHRlcigiLmh0bWx3aWRnZXRzLWVycm9yIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0sCiAgICBzaXppbmc6IHt9CiAgfTsKCiAgLy8gQ2FsbGVkIGJ5IHdpZGdldCBiaW5kaW5ncyB0byByZWdpc3RlciBhIG5ldyB0eXBlIG9mIHdpZGdldC4gVGhlIGRlZmluaXRpb24KICAvLyBvYmplY3QgY2FuIGNvbnRhaW4gdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOgogIC8vIC0gbmFtZSAocmVxdWlyZWQpIC0gQSBzdHJpbmcgaW5kaWNhdGluZyB0aGUgYmluZGluZyBuYW1lLCB3aGljaCB3aWxsIGJlCiAgLy8gICB1c2VkIGJ5IGRlZmF1bHQgYXMgdGhlIENTUyBjbGFzc25hbWUgdG8gbG9vayBmb3IuCiAgLy8gLSBpbml0aWFsaXplIChvcHRpb25hbCkgLSBBIGZ1bmN0aW9uKGVsKSB0aGF0IHdpbGwgYmUgY2FsbGVkIG9uY2UgcGVyCiAgLy8gICB3aWRnZXQgZWxlbWVudDsgaWYgYSB2YWx1ZSBpcyByZXR1cm5lZCwgaXQgd2lsbCBiZSBwYXNzZWQgYXMgdGhlIHRoaXJkCiAgLy8gICB2YWx1ZSB0byByZW5kZXJWYWx1ZS4KICAvLyAtIHJlbmRlclZhbHVlIChyZXF1aXJlZCkgLSBBIGZ1bmN0aW9uKGVsLCBkYXRhLCBpbml0VmFsdWUpIHRoYXQgd2lsbCBiZQogIC8vICAgY2FsbGVkIHdpdGggZGF0YS4gU3RhdGljIGNvbnRleHRzIHdpbGwgY2F1c2UgdGhpcyB0byBiZSBjYWxsZWQgb25jZSBwZXIKICAvLyAgIGVsZW1lbnQ7IFNoaW55IGFwcHMgd2lsbCBjYXVzZSB0aGlzIHRvIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBwZXIKICAvLyAgIGVsZW1lbnQsIGFzIHRoZSBkYXRhIGNoYW5nZXMuCiAgd2luZG93LkhUTUxXaWRnZXRzLndpZGdldCA9IGZ1bmN0aW9uKGRlZmluaXRpb24pIHsKICAgIGlmICghZGVmaW5pdGlvbi5uYW1lKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiV2lkZ2V0IG11c3QgaGF2ZSBhIG5hbWUiKTsKICAgIH0KICAgIGlmICghZGVmaW5pdGlvbi50eXBlKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiV2lkZ2V0IG11c3QgaGF2ZSBhIHR5cGUiKTsKICAgIH0KICAgIC8vIEN1cnJlbnRseSB3ZSBvbmx5IHN1cHBvcnQgb3V0cHV0IHdpZGdldHMKICAgIGlmIChkZWZpbml0aW9uLnR5cGUgIT09ICJvdXRwdXQiKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHdpZGdldCB0eXBlICciICsgZGVmaW5pdGlvbi50eXBlICsgIiciKTsKICAgIH0KICAgIC8vIFRPRE86IFZlcmlmeSB0aGF0IC5uYW1lIGlzIGEgdmFsaWQgQ1NTIGNsYXNzbmFtZQoKICAgIC8vIFN1cHBvcnQgbmV3LXN0eWxlIGluc3RhbmNlLWJvdW5kIGRlZmluaXRpb25zLiBPbGQtc3R5bGUgY2xhc3MtYm91bmQKICAgIC8vIGRlZmluaXRpb25zIGhhdmUgb25lIHdpZGdldCAib2JqZWN0IiBwZXIgd2lkZ2V0IHBlciB0eXBlL2NsYXNzIG9mCiAgICAvLyB3aWRnZXQ7IHRoZSByZW5kZXJWYWx1ZSBhbmQgcmVzaXplIG1ldGhvZHMgb24gc3VjaCB3aWRnZXQgb2JqZWN0cwogICAgLy8gdGFrZSBlbCBhbmQgaW5zdGFuY2UgYXJndW1lbnRzLCBiZWNhdXNlIHRoZSB3aWRnZXQgb2JqZWN0IGNhbid0CiAgICAvLyBzdG9yZSB0aGVtLiBOZXctc3R5bGUgaW5zdGFuY2UtYm91bmQgZGVmaW5pdGlvbnMgaGF2ZSBvbmUgd2lkZ2V0CiAgICAvLyBvYmplY3QgcGVyIHdpZGdldCBpbnN0YW5jZTsgdGhlIGRlZmluaXRpb24gdGhhdCdzIHBhc3NlZCBpbiBkb2Vzbid0CiAgICAvLyBwcm92aWRlIHJlbmRlclZhbHVlIG9yIHJlc2l6ZSBtZXRob2RzIGF0IGFsbCwganVzdCB0aGUgc2luZ2xlIG1ldGhvZAogICAgLy8gICBmYWN0b3J5KGVsLCB3aWR0aCwgaGVpZ2h0KQogICAgLy8gd2hpY2ggcmV0dXJucyBhbiBvYmplY3QgdGhhdCBoYXMgcmVuZGVyVmFsdWUoeCkgYW5kIHJlc2l6ZSh3LCBoKS4KICAgIC8vIFRoaXMgZW5hYmxlcyBhIGZhciBtb3JlIG5hdHVyYWwgcHJvZ3JhbW1pbmcgc3R5bGUgZm9yIHRoZSB3aWRnZXQKICAgIC8vIGF1dGhvciwgd2hvIGNhbiBzdG9yZSBwZXItaW5zdGFuY2Ugc3RhdGUgdXNpbmcgZWl0aGVyIE9PLXN0eWxlCiAgICAvLyBpbnN0YW5jZSBmaWVsZHMgb3IgZnVuY3Rpb25hbC1zdHlsZSBjbG9zdXJlIHZhcmlhYmxlcyAoSSBndWVzcyB0aGlzCiAgICAvLyBpcyBpbiBjb250cmFzdCB0byB3aGF0IGNhbiBvbmx5IGJlIGNhbGxlZCBDLXN0eWxlIHBzZXVkby1PTyB3aGljaCBpcwogICAgLy8gd2hhdCB3ZSByZXF1aXJlZCBiZWZvcmUpLgogICAgaWYgKGRlZmluaXRpb24uZmFjdG9yeSkgewogICAgICBkZWZpbml0aW9uID0gY3JlYXRlTGVnYWN5RGVmaW5pdGlvbkFkYXB0ZXIoZGVmaW5pdGlvbik7CiAgICB9CgogICAgaWYgKCFkZWZpbml0aW9uLnJlbmRlclZhbHVlKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiV2lkZ2V0IG11c3QgaGF2ZSBhIHJlbmRlclZhbHVlIGZ1bmN0aW9uIik7CiAgICB9CgogICAgLy8gRm9yIHN0YXRpYyByZW5kZXJpbmcgKG5vbi1TaGlueSksIHVzZSBhIHNpbXBsZSB3aWRnZXQgcmVnaXN0cmF0aW9uCiAgICAvLyBzY2hlbWUuIFdlIGFsc28gdXNlIHRoaXMgc2NoZW1lIGZvciBTaGlueSBhcHBzL2RvY3VtZW50cyB0aGF0IGFsc28KICAgIC8vIGNvbnRhaW4gc3RhdGljIHdpZGdldHMuCiAgICB3aW5kb3cuSFRNTFdpZGdldHMud2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cy53aWRnZXRzIHx8IFtdOwogICAgLy8gTWVyZ2UgZGVmYXVsdHMgaW50byB0aGUgZGVmaW5pdGlvbjsgZG9uJ3QgbXV0YXRlIHRoZSBvcmlnaW5hbCBkZWZpbml0aW9uLgogICAgdmFyIHN0YXRpY0JpbmRpbmcgPSBleHRlbmQoe30sIGRlZmF1bHRzLCBkZWZpbml0aW9uKTsKICAgIG92ZXJyaWRlTWV0aG9kKHN0YXRpY0JpbmRpbmcsICJmaW5kIiwgZnVuY3Rpb24oc3VwZXJmdW5jKSB7CiAgICAgIHJldHVybiBmdW5jdGlvbihzY29wZSkgewogICAgICAgIHZhciByZXN1bHRzID0gc3VwZXJmdW5jKHNjb3BlKTsKICAgICAgICAvLyBGaWx0ZXIgb3V0IFNoaW55IG91dHB1dHMsIHdlIG9ubHkgd2FudCB0aGUgc3RhdGljIGtpbmQKICAgICAgICByZXR1cm4gZmlsdGVyQnlDbGFzcyhyZXN1bHRzLCAiaHRtbC13aWRnZXQtb3V0cHV0IiwgZmFsc2UpOwogICAgICB9OwogICAgfSk7CiAgICB3aW5kb3cuSFRNTFdpZGdldHMud2lkZ2V0cy5wdXNoKHN0YXRpY0JpbmRpbmcpOwoKICAgIGlmIChzaGlueU1vZGUpIHsKICAgICAgLy8gU2hpbnkgaXMgcnVubmluZy4gUmVnaXN0ZXIgdGhlIGRlZmluaXRpb24gd2l0aCBhbiBvdXRwdXQgYmluZGluZy4KICAgICAgLy8gVGhlIGRlZmluaXRpb24gaXRzZWxmIHdpbGwgbm90IGJlIHRoZSBvdXRwdXQgYmluZGluZywgaW5zdGVhZAogICAgICAvLyB3ZSB3aWxsIG1ha2UgYW4gb3V0cHV0IGJpbmRpbmcgb2JqZWN0IHRoYXQgZGVsZWdhdGVzIHRvIHRoZQogICAgICAvLyBkZWZpbml0aW9uLiBUaGlzIGlzIGJlY2F1c2Ugd2UgZm9vbGlzaGx5IHVzZWQgdGhlIHNhbWUgbWV0aG9kCiAgICAgIC8vIG5hbWUgKHJlbmRlclZhbHVlKSBmb3IgaHRtbHdpZGdldHMgZGVmaW5pdGlvbiBhbmQgU2hpbnkgYmluZGluZ3MKICAgICAgLy8gYnV0IHRoZXkgYWN0dWFsbHkgaGF2ZSBxdWl0ZSBkaWZmZXJlbnQgc2VtYW50aWNzICh0aGUgU2hpbnkKICAgICAgLy8gYmluZGluZ3MgcmVjZWl2ZSBkYXRhIHRoYXQgaW5jbHVkZXMgbG90cyBvZiBtZXRhZGF0YSB0aGF0IGl0CiAgICAgIC8vIHN0cmlwcyBvZmYgYmVmb3JlIGNhbGxpbmcgaHRtbHdpZGdldHMgcmVuZGVyVmFsdWUpLiBXZSBjYW4ndAogICAgICAvLyBqdXN0IGlnbm9yZSB0aGUgZGlmZmVyZW5jZSBiZWNhdXNlIGluIHNvbWUgd2lkZ2V0cyBpdCdzIGhlbHBmdWwKICAgICAgLy8gdG8gY2FsbCB0aGlzLnJlbmRlclZhbHVlKCkgZnJvbSBpbnNpZGUgb2YgcmVzaXplKCksIGFuZCBpZgogICAgICAvLyB3ZSdyZSBub3QgZGVsZWdhdGluZywgdGhlbiB0aGF0IGNhbGwgd2lsbCBnbyB0byB0aGUgU2hpbnkKICAgICAgLy8gdmVyc2lvbiBpbnN0ZWFkIG9mIHRoZSBodG1sd2lkZ2V0cyB2ZXJzaW9uLgoKICAgICAgLy8gTWVyZ2UgZGVmYXVsdHMgd2l0aCBkZWZpbml0aW9uLCB3aXRob3V0IG11dGF0aW5nIGVpdGhlci4KICAgICAgdmFyIGJpbmRpbmdEZWYgPSBleHRlbmQoe30sIGRlZmF1bHRzLCBkZWZpbml0aW9uKTsKCiAgICAgIC8vIFRoaXMgb2JqZWN0IHdpbGwgYmUgb3VyIGFjdHVhbCBTaGlueSBiaW5kaW5nLgogICAgICB2YXIgc2hpbnlCaW5kaW5nID0gbmV3IFNoaW55Lk91dHB1dEJpbmRpbmcoKTsKCiAgICAgIC8vIFdpdGggYSBmZXcgZXhjZXB0aW9ucywgd2UnbGwgd2FudCB0byBzaW1wbHkgdXNlIHRoZSBiaW5kaW5nRGVmJ3MKICAgICAgLy8gdmVyc2lvbiBvZiBtZXRob2RzIGlmIHRoZXkgYXJlIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIGZhbGwgYmFjayB0bwogICAgICAvLyBTaGlueSdzIGRlZmF1bHRzLiBOT1RFOiBJZiBTaGlueSdzIG91dHB1dCBiaW5kaW5ncyBnYWluIGFkZGl0aW9uYWwKICAgICAgLy8gbWV0aG9kcyBpbiB0aGUgZnV0dXJlLCBhbmQgd2Ugd2FudCB0aGVtIHRvIGJlIG92ZXJyaWRlYWJsZSBieQogICAgICAvLyBIVE1MV2lkZ2V0IGJpbmRpbmcgZGVmaW5pdGlvbnMsIHRoZW4gd2UnbGwgbmVlZCB0byBhZGQgdGhlbSB0byB0aGlzCiAgICAgIC8vIGxpc3QuCiAgICAgIGRlbGVnYXRlTWV0aG9kKHNoaW55QmluZGluZywgYmluZGluZ0RlZiwgImdldElkIik7CiAgICAgIGRlbGVnYXRlTWV0aG9kKHNoaW55QmluZGluZywgYmluZGluZ0RlZiwgIm9uVmFsdWVDaGFuZ2UiKTsKICAgICAgZGVsZWdhdGVNZXRob2Qoc2hpbnlCaW5kaW5nLCBiaW5kaW5nRGVmLCAib25WYWx1ZUVycm9yIik7CiAgICAgIGRlbGVnYXRlTWV0aG9kKHNoaW55QmluZGluZywgYmluZGluZ0RlZiwgInJlbmRlckVycm9yIik7CiAgICAgIGRlbGVnYXRlTWV0aG9kKHNoaW55QmluZGluZywgYmluZGluZ0RlZiwgImNsZWFyRXJyb3IiKTsKICAgICAgZGVsZWdhdGVNZXRob2Qoc2hpbnlCaW5kaW5nLCBiaW5kaW5nRGVmLCAic2hvd1Byb2dyZXNzIik7CgogICAgICAvLyBUaGUgZmluZCwgcmVuZGVyVmFsdWUsIGFuZCByZXNpemUgYXJlIGhhbmRsZWQgZGlmZmVyZW50bHksIGJlY2F1c2Ugd2UKICAgICAgLy8gd2FudCB0byBhY3R1YWxseSBkZWNvcmF0ZSB0aGUgYmVoYXZpb3Igb2YgdGhlIGJpbmRpbmdEZWYgbWV0aG9kcy4KCiAgICAgIHNoaW55QmluZGluZy5maW5kID0gZnVuY3Rpb24oc2NvcGUpIHsKICAgICAgICB2YXIgcmVzdWx0cyA9IGJpbmRpbmdEZWYuZmluZChzY29wZSk7CgogICAgICAgIC8vIE9ubHkgcmV0dXJuIGVsZW1lbnRzIHRoYXQgYXJlIFNoaW55IG91dHB1dHMsIG5vdCBzdGF0aWMgb25lcwogICAgICAgIHZhciBkeW5hbWljUmVzdWx0cyA9IHJlc3VsdHMuZmlsdGVyKCIuaHRtbC13aWRnZXQtb3V0cHV0Iik7CgogICAgICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB3aGF0ZXZlciBjYXVzZWQgU2hpbnkgdG8gdGhpbmsgdGhlcmUgbWlnaHQgYmUKICAgICAgICAvLyBuZXcgZHluYW1pYyBvdXRwdXRzLCBhbHNvIGNhdXNlZCB0aGVyZSB0byBiZSBuZXcgc3RhdGljIG91dHB1dHMuCiAgICAgICAgLy8gU2luY2UgdGhlcmUgbWlnaHQgYmUgbG90cyBvZiBkaWZmZXJlbnQgaHRtbHdpZGdldHMgYmluZGluZ3MsIHdlCiAgICAgICAgLy8gc2NoZWR1bGUgZXhlY3V0aW9uIGZvciBsYXRlci0tbm8gbmVlZCB0byBzdGF0aWNSZW5kZXIgbXVsdGlwbGUKICAgICAgICAvLyB0aW1lcy4KICAgICAgICBpZiAocmVzdWx0cy5sZW5ndGggIT09IGR5bmFtaWNSZXN1bHRzLmxlbmd0aCkKICAgICAgICAgIHNjaGVkdWxlU3RhdGljUmVuZGVyKCk7CgogICAgICAgIHJldHVybiBkeW5hbWljUmVzdWx0czsKICAgICAgfTsKCiAgICAgIC8vIFdyYXAgcmVuZGVyVmFsdWUgdG8gaGFuZGxlIGluaXRpYWxpemF0aW9uLCB3aGljaCB1bmZvcnR1bmF0ZWx5IGlzbid0CiAgICAgIC8vIHN1cHBvcnRlZCBuYXRpdmVseSBieSBTaGlueSBhdCB0aGUgdGltZSBvZiB0aGlzIHdyaXRpbmcuCgogICAgICBzaGlueUJpbmRpbmcucmVuZGVyVmFsdWUgPSBmdW5jdGlvbihlbCwgZGF0YSkgewogICAgICAgIFNoaW55LnJlbmRlckRlcGVuZGVuY2llcyhkYXRhLmRlcHMpOwogICAgICAgIC8vIFJlc29sdmUgc3RyaW5ncyBtYXJrZWQgYXMgamF2YXNjcmlwdCBsaXRlcmFscyB0byBvYmplY3RzCiAgICAgICAgaWYgKCEoZGF0YS5ldmFscyBpbnN0YW5jZW9mIEFycmF5KSkgZGF0YS5ldmFscyA9IFtkYXRhLmV2YWxzXTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgZGF0YS5ldmFscyAmJiBpIDwgZGF0YS5ldmFscy5sZW5ndGg7IGkrKykgewogICAgICAgICAgd2luZG93LkhUTUxXaWRnZXRzLmV2YWx1YXRlU3RyaW5nTWVtYmVyKGRhdGEueCwgZGF0YS5ldmFsc1tpXSk7CiAgICAgICAgfQogICAgICAgIGlmICghYmluZGluZ0RlZi5yZW5kZXJPbk51bGxWYWx1ZSkgewogICAgICAgICAgaWYgKGRhdGEueCA9PT0gbnVsbCkgewogICAgICAgICAgICBlbC5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGVsLnN0eWxlLnZpc2liaWxpdHkgPSAiaW5oZXJpdCI7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICghZWxlbWVudERhdGEoZWwsICJpbml0aWFsaXplZCIpKSB7CiAgICAgICAgICBpbml0U2l6aW5nKGVsKTsKCiAgICAgICAgICBlbGVtZW50RGF0YShlbCwgImluaXRpYWxpemVkIiwgdHJ1ZSk7CiAgICAgICAgICBpZiAoYmluZGluZ0RlZi5pbml0aWFsaXplKSB7CiAgICAgICAgICAgIHZhciByZXN1bHQgPSBiaW5kaW5nRGVmLmluaXRpYWxpemUoZWwsIGVsLm9mZnNldFdpZHRoLAogICAgICAgICAgICAgIGVsLm9mZnNldEhlaWdodCk7CiAgICAgICAgICAgIGVsZW1lbnREYXRhKGVsLCAiaW5pdF9yZXN1bHQiLCByZXN1bHQpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBiaW5kaW5nRGVmLnJlbmRlclZhbHVlKGVsLCBkYXRhLngsIGVsZW1lbnREYXRhKGVsLCAiaW5pdF9yZXN1bHQiKSk7CiAgICAgICAgZXZhbEFuZFJ1bihkYXRhLmpzSG9va3MucmVuZGVyLCBlbGVtZW50RGF0YShlbCwgImluaXRfcmVzdWx0IiksIFtlbCwgZGF0YS54XSk7CiAgICAgIH07CgogICAgICAvLyBPbmx5IG92ZXJyaWRlIHJlc2l6ZSBpZiBiaW5kaW5nRGVmIGltcGxlbWVudHMgaXQKICAgICAgaWYgKGJpbmRpbmdEZWYucmVzaXplKSB7CiAgICAgICAgc2hpbnlCaW5kaW5nLnJlc2l6ZSA9IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0KSB7CiAgICAgICAgICAvLyBTaGlueSBjYW4gY2FsbCByZXNpemUgYmVmb3JlIGluaXRpYWxpemUvcmVuZGVyVmFsdWUgaGF2ZSBiZWVuCiAgICAgICAgICAvLyBjYWxsZWQsIHdoaWNoIGRvZXNuJ3QgbWFrZSBzZW5zZSBmb3Igd2lkZ2V0cy4KICAgICAgICAgIGlmIChlbGVtZW50RGF0YShlbCwgImluaXRpYWxpemVkIikpIHsKICAgICAgICAgICAgYmluZGluZ0RlZi5yZXNpemUoZWwsIHdpZHRoLCBoZWlnaHQsIGVsZW1lbnREYXRhKGVsLCAiaW5pdF9yZXN1bHQiKSk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgfQoKICAgICAgU2hpbnkub3V0cHV0QmluZGluZ3MucmVnaXN0ZXIoc2hpbnlCaW5kaW5nLCBiaW5kaW5nRGVmLm5hbWUpOwogICAgfQogIH07CgogIHZhciBzY2hlZHVsZVN0YXRpY1JlbmRlclRpbWVySWQgPSBudWxsOwogIGZ1bmN0aW9uIHNjaGVkdWxlU3RhdGljUmVuZGVyKCkgewogICAgaWYgKCFzY2hlZHVsZVN0YXRpY1JlbmRlclRpbWVySWQpIHsKICAgICAgc2NoZWR1bGVTdGF0aWNSZW5kZXJUaW1lcklkID0gc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICBzY2hlZHVsZVN0YXRpY1JlbmRlclRpbWVySWQgPSBudWxsOwogICAgICAgIHdpbmRvdy5IVE1MV2lkZ2V0cy5zdGF0aWNSZW5kZXIoKTsKICAgICAgfSwgMSk7CiAgICB9CiAgfQoKICAvLyBSZW5kZXIgc3RhdGljIHdpZGdldHMgYWZ0ZXIgdGhlIGRvY3VtZW50IGZpbmlzaGVzIGxvYWRpbmcKICAvLyBTdGF0aWNhbGx5IHJlbmRlciBhbGwgZWxlbWVudHMgdGhhdCBhcmUgb2YgdGhpcyB3aWRnZXQncyBjbGFzcwogIHdpbmRvdy5IVE1MV2lkZ2V0cy5zdGF0aWNSZW5kZXIgPSBmdW5jdGlvbigpIHsKICAgIHZhciBiaW5kaW5ncyA9IHdpbmRvdy5IVE1MV2lkZ2V0cy53aWRnZXRzIHx8IFtdOwogICAgZm9yRWFjaChiaW5kaW5ncywgZnVuY3Rpb24oYmluZGluZykgewogICAgICB2YXIgbWF0Y2hlcyA9IGJpbmRpbmcuZmluZChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpOwogICAgICBmb3JFYWNoKG1hdGNoZXMsIGZ1bmN0aW9uKGVsKSB7CiAgICAgICAgdmFyIHNpemVPYmogPSBpbml0U2l6aW5nKGVsLCBiaW5kaW5nKTsKCiAgICAgICAgaWYgKGhhc0NsYXNzKGVsLCAiaHRtbC13aWRnZXQtc3RhdGljLWJvdW5kIikpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgZWwuY2xhc3NOYW1lID0gZWwuY2xhc3NOYW1lICsgIiBodG1sLXdpZGdldC1zdGF0aWMtYm91bmQiOwoKICAgICAgICB2YXIgaW5pdFJlc3VsdDsKICAgICAgICBpZiAoYmluZGluZy5pbml0aWFsaXplKSB7CiAgICAgICAgICBpbml0UmVzdWx0ID0gYmluZGluZy5pbml0aWFsaXplKGVsLAogICAgICAgICAgICBzaXplT2JqID8gc2l6ZU9iai5nZXRXaWR0aCgpIDogZWwub2Zmc2V0V2lkdGgsCiAgICAgICAgICAgIHNpemVPYmogPyBzaXplT2JqLmdldEhlaWdodCgpIDogZWwub2Zmc2V0SGVpZ2h0CiAgICAgICAgICApOwogICAgICAgICAgZWxlbWVudERhdGEoZWwsICJpbml0X3Jlc3VsdCIsIGluaXRSZXN1bHQpOwogICAgICAgIH0KCiAgICAgICAgaWYgKGJpbmRpbmcucmVzaXplKSB7CiAgICAgICAgICB2YXIgbGFzdFNpemUgPSB7CiAgICAgICAgICAgIHc6IHNpemVPYmogPyBzaXplT2JqLmdldFdpZHRoKCkgOiBlbC5vZmZzZXRXaWR0aCwKICAgICAgICAgICAgaDogc2l6ZU9iaiA/IHNpemVPYmouZ2V0SGVpZ2h0KCkgOiBlbC5vZmZzZXRIZWlnaHQKICAgICAgICAgIH07CiAgICAgICAgICB2YXIgcmVzaXplSGFuZGxlciA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgdmFyIHNpemUgPSB7CiAgICAgICAgICAgICAgdzogc2l6ZU9iaiA/IHNpemVPYmouZ2V0V2lkdGgoKSA6IGVsLm9mZnNldFdpZHRoLAogICAgICAgICAgICAgIGg6IHNpemVPYmogPyBzaXplT2JqLmdldEhlaWdodCgpIDogZWwub2Zmc2V0SGVpZ2h0CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGlmIChzaXplLncgPT09IDAgJiYgc2l6ZS5oID09PSAwKQogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgaWYgKHNpemUudyA9PT0gbGFzdFNpemUudyAmJiBzaXplLmggPT09IGxhc3RTaXplLmgpCiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBsYXN0U2l6ZSA9IHNpemU7CiAgICAgICAgICAgIGJpbmRpbmcucmVzaXplKGVsLCBzaXplLncsIHNpemUuaCwgaW5pdFJlc3VsdCk7CiAgICAgICAgICB9OwoKICAgICAgICAgIG9uKHdpbmRvdywgInJlc2l6ZSIsIHJlc2l6ZUhhbmRsZXIpOwoKICAgICAgICAgIC8vIFRoaXMgaXMgbmVlZGVkIGZvciBjYXNlcyB3aGVyZSB3ZSdyZSBydW5uaW5nIGluIGEgU2hpbnkKICAgICAgICAgIC8vIGFwcCwgYnV0IHRoZSB3aWRnZXQgaXRzZWxmIGlzIG5vdCBhIFNoaW55IG91dHB1dCwgYnV0CiAgICAgICAgICAvLyByYXRoZXIgYSBzaW1wbGUgc3RhdGljIHdpZGdldC4gT25lIGV4YW1wbGUgb2YgdGhpcyBpcwogICAgICAgICAgLy8gYW4gcm1hcmtkb3duIGRvY3VtZW50IHRoYXQgaGFzIHJ1bnRpbWU6c2hpbnkgYW5kIHdpZGdldAogICAgICAgICAgLy8gdGhhdCBpc24ndCBpbiBhIHJlbmRlciBmdW5jdGlvbi4gU2hpbnkgb25seSBrbm93cyB0bwogICAgICAgICAgLy8gY2FsbCByZXNpemUgaGFuZGxlcnMgZm9yIFNoaW55IG91dHB1dHMsIG5vdCBmb3Igc3RhdGljCiAgICAgICAgICAvLyB3aWRnZXRzLCBzbyB3ZSBkbyBpdCBvdXJzZWx2ZXMuCiAgICAgICAgICBpZiAod2luZG93LmpRdWVyeSkgewogICAgICAgICAgICB3aW5kb3cualF1ZXJ5KGRvY3VtZW50KS5vbigKICAgICAgICAgICAgICAic2hvd24uaHRtbHdpZGdldHMgc2hvd24uYnMudGFiLmh0bWx3aWRnZXRzIHNob3duLmJzLmNvbGxhcHNlLmh0bWx3aWRnZXRzIiwKICAgICAgICAgICAgICByZXNpemVIYW5kbGVyCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHdpbmRvdy5qUXVlcnkoZG9jdW1lbnQpLm9uKAogICAgICAgICAgICAgICJoaWRkZW4uaHRtbHdpZGdldHMgaGlkZGVuLmJzLnRhYi5odG1sd2lkZ2V0cyBoaWRkZW4uYnMuY29sbGFwc2UuaHRtbHdpZGdldHMiLAogICAgICAgICAgICAgIHJlc2l6ZUhhbmRsZXIKICAgICAgICAgICAgKTsKICAgICAgICAgIH0KCiAgICAgICAgICAvLyBUaGlzIGlzIG5lZWRlZCBmb3IgdGhlIHNwZWNpZmljIGNhc2Ugb2YgaW9zbGlkZXMsIHdoaWNoCiAgICAgICAgICAvLyBmbGlwcyBzbGlkZXMgYmV0d2VlbiBkaXNwbGF5Om5vbmUgYW5kIGRpc3BsYXk6YmxvY2suCiAgICAgICAgICAvLyBJZGVhbGx5IHdlIHdvdWxkIG5vdCBoYXZlIHRvIGhhdmUgaW9zbGlkZS1zcGVjaWZpYyBjb2RlCiAgICAgICAgICAvLyBoZXJlLCBidXQgcmF0aGVyIGhhdmUgaW9zbGlkZXMgcmFpc2UgYSBnZW5lcmljIGV2ZW50LAogICAgICAgICAgLy8gYnV0IHRoZSBybWFya2Rvd24gcGFja2FnZSBqdXN0IHdlbnQgdG8gQ1JBTiBzbyB0aGUKICAgICAgICAgIC8vIHdpbmRvdyB0byBnZXR0aW5nIHRoYXQgZml4ZWQgbWF5IGJlIGxvbmcuCiAgICAgICAgICBpZiAod2luZG93LmFkZEV2ZW50TGlzdGVuZXIpIHsKICAgICAgICAgICAgLy8gSXQncyBPSyB0byBsaW1pdCB0aGlzIHRvIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyCiAgICAgICAgICAgIC8vIGJyb3dzZXJzIGJlY2F1c2UgaW9zbGlkZXMgaXRzZWxmIG9ubHkgc3VwcG9ydHMKICAgICAgICAgICAgLy8gc3VjaCBicm93c2Vycy4KICAgICAgICAgICAgb24oZG9jdW1lbnQsICJzbGlkZWVudGVyIiwgcmVzaXplSGFuZGxlcik7CiAgICAgICAgICAgIG9uKGRvY3VtZW50LCAic2xpZGVsZWF2ZSIsIHJlc2l6ZUhhbmRsZXIpOwogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgdmFyIHNjcmlwdERhdGEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJzY3JpcHRbZGF0YS1mb3I9JyIgKyBlbC5pZCArICInXVt0eXBlPSdhcHBsaWNhdGlvbi9qc29uJ10iKTsKICAgICAgICBpZiAoc2NyaXB0RGF0YSkgewogICAgICAgICAgdmFyIGRhdGEgPSBKU09OLnBhcnNlKHNjcmlwdERhdGEudGV4dENvbnRlbnQgfHwgc2NyaXB0RGF0YS50ZXh0KTsKICAgICAgICAgIC8vIFJlc29sdmUgc3RyaW5ncyBtYXJrZWQgYXMgamF2YXNjcmlwdCBsaXRlcmFscyB0byBvYmplY3RzCiAgICAgICAgICBpZiAoIShkYXRhLmV2YWxzIGluc3RhbmNlb2YgQXJyYXkpKSBkYXRhLmV2YWxzID0gW2RhdGEuZXZhbHNdOwogICAgICAgICAgZm9yICh2YXIgayA9IDA7IGRhdGEuZXZhbHMgJiYgayA8IGRhdGEuZXZhbHMubGVuZ3RoOyBrKyspIHsKICAgICAgICAgICAgd2luZG93LkhUTUxXaWRnZXRzLmV2YWx1YXRlU3RyaW5nTWVtYmVyKGRhdGEueCwgZGF0YS5ldmFsc1trXSk7CiAgICAgICAgICB9CiAgICAgICAgICBiaW5kaW5nLnJlbmRlclZhbHVlKGVsLCBkYXRhLngsIGluaXRSZXN1bHQpOwogICAgICAgICAgZXZhbEFuZFJ1bihkYXRhLmpzSG9va3MucmVuZGVyLCBpbml0UmVzdWx0LCBbZWwsIGRhdGEueF0pOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9KTsKCiAgICBpbnZva2VQb3N0UmVuZGVySGFuZGxlcnMoKTsKICB9CgogIC8vIFdhaXQgdW50aWwgYWZ0ZXIgdGhlIGRvY3VtZW50IGhhcyBsb2FkZWQgdG8gcmVuZGVyIHRoZSB3aWRnZXRzLgogIGlmIChkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKSB7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgZnVuY3Rpb24oKSB7CiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCBhcmd1bWVudHMuY2FsbGVlLCBmYWxzZSk7CiAgICAgIHdpbmRvdy5IVE1MV2lkZ2V0cy5zdGF0aWNSZW5kZXIoKTsKICAgIH0sIGZhbHNlKTsKICB9IGVsc2UgaWYgKGRvY3VtZW50LmF0dGFjaEV2ZW50KSB7CiAgICBkb2N1bWVudC5hdHRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIiwgZnVuY3Rpb24oKSB7CiAgICAgIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSAiY29tcGxldGUiKSB7CiAgICAgICAgZG9jdW1lbnQuZGV0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsIGFyZ3VtZW50cy5jYWxsZWUpOwogICAgICAgIHdpbmRvdy5IVE1MV2lkZ2V0cy5zdGF0aWNSZW5kZXIoKTsKICAgICAgfQogICAgfSk7CiAgfQoKCiAgd2luZG93LkhUTUxXaWRnZXRzLmdldEF0dGFjaG1lbnRVcmwgPSBmdW5jdGlvbihkZXBuYW1lLCBrZXkpIHsKICAgIC8vIElmIG5vIGtleSwgZGVmYXVsdCB0byB0aGUgZmlyc3QgaXRlbQogICAgaWYgKHR5cGVvZihrZXkpID09PSAidW5kZWZpbmVkIikKICAgICAga2V5ID0gMTsKCiAgICB2YXIgbGluayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRlcG5hbWUgKyAiLSIgKyBrZXkgKyAiLWF0dGFjaG1lbnQiKTsKICAgIGlmICghbGluaykgewogICAgICB0aHJvdyBuZXcgRXJyb3IoIkF0dGFjaG1lbnQgIiArIGRlcG5hbWUgKyAiLyIgKyBrZXkgKyAiIG5vdCBmb3VuZCBpbiBkb2N1bWVudCIpOwogICAgfQogICAgcmV0dXJuIGxpbmsuZ2V0QXR0cmlidXRlKCJocmVmIik7CiAgfTsKCiAgd2luZG93LkhUTUxXaWRnZXRzLmRhdGFmcmFtZVRvRDMgPSBmdW5jdGlvbihkZikgewogICAgdmFyIG5hbWVzID0gW107CiAgICB2YXIgbGVuZ3RoOwogICAgZm9yICh2YXIgbmFtZSBpbiBkZikgewogICAgICAgIGlmIChkZi5oYXNPd25Qcm9wZXJ0eShuYW1lKSkKICAgICAgICAgICAgbmFtZXMucHVzaChuYW1lKTsKICAgICAgICBpZiAodHlwZW9mKGRmW25hbWVdKSAhPT0gIm9iamVjdCIgfHwgdHlwZW9mKGRmW25hbWVdLmxlbmd0aCkgPT09ICJ1bmRlZmluZWQiKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQWxsIGZpZWxkcyBtdXN0IGJlIGFycmF5cyIpOwogICAgICAgIH0gZWxzZSBpZiAodHlwZW9mKGxlbmd0aCkgIT09ICJ1bmRlZmluZWQiICYmIGxlbmd0aCAhPT0gZGZbbmFtZV0ubGVuZ3RoKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQWxsIGZpZWxkcyBtdXN0IGJlIGFycmF5cyBvZiB0aGUgc2FtZSBsZW5ndGgiKTsKICAgICAgICB9CiAgICAgICAgbGVuZ3RoID0gZGZbbmFtZV0ubGVuZ3RoOwogICAgfQogICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgIHZhciBpdGVtOwogICAgZm9yICh2YXIgcm93ID0gMDsgcm93IDwgbGVuZ3RoOyByb3crKykgewogICAgICAgIGl0ZW0gPSB7fTsKICAgICAgICBmb3IgKHZhciBjb2wgPSAwOyBjb2wgPCBuYW1lcy5sZW5ndGg7IGNvbCsrKSB7CiAgICAgICAgICAgIGl0ZW1bbmFtZXNbY29sXV0gPSBkZltuYW1lc1tjb2xdXVtyb3ddOwogICAgICAgIH0KICAgICAgICByZXN1bHRzLnB1c2goaXRlbSk7CiAgICB9CiAgICByZXR1cm4gcmVzdWx0czsKICB9OwoKICB3aW5kb3cuSFRNTFdpZGdldHMudHJhbnNwb3NlQXJyYXkyRCA9IGZ1bmN0aW9uKGFycmF5KSB7CiAgICAgIGlmIChhcnJheS5sZW5ndGggPT09IDApIHJldHVybiBhcnJheTsKICAgICAgdmFyIG5ld0FycmF5ID0gYXJyYXlbMF0ubWFwKGZ1bmN0aW9uKGNvbCwgaSkgewogICAgICAgICAgcmV0dXJuIGFycmF5Lm1hcChmdW5jdGlvbihyb3cpIHsKICAgICAgICAgICAgICByZXR1cm4gcm93W2ldCiAgICAgICAgICB9KQogICAgICB9KTsKICAgICAgcmV0dXJuIG5ld0FycmF5OwogIH07CiAgLy8gU3BsaXQgdmFsdWUgYXQgc3BsaXRDaGFyLCBidXQgYWxsb3cgc3BsaXRDaGFyIHRvIGJlIGVzY2FwZWQKICAvLyB1c2luZyBlc2NhcGVDaGFyLiBBbnkgb3RoZXIgY2hhcmFjdGVycyBlc2NhcGVkIGJ5IGVzY2FwZUNoYXIKICAvLyB3aWxsIGJlIGluY2x1ZGVkIGFzIHVzdWFsIChpbmNsdWRpbmcgZXNjYXBlQ2hhciBpdHNlbGYpLgogIGZ1bmN0aW9uIHNwbGl0V2l0aEVzY2FwZSh2YWx1ZSwgc3BsaXRDaGFyLCBlc2NhcGVDaGFyKSB7CiAgICB2YXIgcmVzdWx0cyA9IFtdOwogICAgdmFyIGVzY2FwZU1vZGUgPSBmYWxzZTsKICAgIHZhciBjdXJyZW50UmVzdWx0ID0gIiI7CiAgICBmb3IgKHZhciBwb3MgPSAwOyBwb3MgPCB2YWx1ZS5sZW5ndGg7IHBvcysrKSB7CiAgICAgIGlmICghZXNjYXBlTW9kZSkgewogICAgICAgIGlmICh2YWx1ZVtwb3NdID09PSBzcGxpdENoYXIpIHsKICAgICAgICAgIHJlc3VsdHMucHVzaChjdXJyZW50UmVzdWx0KTsKICAgICAgICAgIGN1cnJlbnRSZXN1bHQgPSAiIjsKICAgICAgICB9IGVsc2UgaWYgKHZhbHVlW3Bvc10gPT09IGVzY2FwZUNoYXIpIHsKICAgICAgICAgIGVzY2FwZU1vZGUgPSB0cnVlOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjdXJyZW50UmVzdWx0ICs9IHZhbHVlW3Bvc107CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGN1cnJlbnRSZXN1bHQgKz0gdmFsdWVbcG9zXTsKICAgICAgICBlc2NhcGVNb2RlID0gZmFsc2U7CiAgICAgIH0KICAgIH0KICAgIGlmIChjdXJyZW50UmVzdWx0ICE9PSAiIikgewogICAgICByZXN1bHRzLnB1c2goY3VycmVudFJlc3VsdCk7CiAgICB9CiAgICByZXR1cm4gcmVzdWx0czsKICB9CiAgLy8gRnVuY3Rpb24gYXV0aG9yZWQgYnkgWWlodWkvSkogQWxsYWlyZQogIHdpbmRvdy5IVE1MV2lkZ2V0cy5ldmFsdWF0ZVN0cmluZ01lbWJlciA9IGZ1bmN0aW9uKG8sIG1lbWJlcikgewogICAgdmFyIHBhcnRzID0gc3BsaXRXaXRoRXNjYXBlKG1lbWJlciwgJy4nLCAnXFwnKTsKICAgIGZvciAodmFyIGkgPSAwLCBsID0gcGFydHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7CiAgICAgIHZhciBwYXJ0ID0gcGFydHNbaV07CiAgICAgIC8vIHBhcnQgbWF5IGJlIGEgY2hhcmFjdGVyIG9yICdudW1lcmljJyBtZW1iZXIgbmFtZQogICAgICBpZiAobyAhPT0gbnVsbCAmJiB0eXBlb2YgbyA9PT0gIm9iamVjdCIgJiYgcGFydCBpbiBvKSB7CiAgICAgICAgaWYgKGkgPT0gKGwgLSAxKSkgeyAvLyBpZiB3ZSBhcmUgYXQgdGhlIGVuZCBvZiB0aGUgbGluZSB0aGVuIGV2YWx1bGF0ZQogICAgICAgICAgaWYgKHR5cGVvZiBvW3BhcnRdID09PSAic3RyaW5nIikKICAgICAgICAgICAgb1twYXJ0XSA9IGV2YWwoIigiICsgb1twYXJ0XSArICIpIik7CiAgICAgICAgfSBlbHNlIHsgLy8gb3RoZXJ3aXNlIGNvbnRpbnVlIHRvIG5leHQgZW1iZWRkZWQgb2JqZWN0CiAgICAgICAgICBvID0gb1twYXJ0XTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9OwoKICAvLyBSZXRyaWV2ZSB0aGUgSFRNTFdpZGdldCBpbnN0YW5jZSAoaS5lLiB0aGUgcmV0dXJuIHZhbHVlIG9mIGFuCiAgLy8gSFRNTFdpZGdldCBiaW5kaW5nJ3MgaW5pdGlhbGl6ZSgpIG9yIGZhY3RvcnkoKSBmdW5jdGlvbikKICAvLyBhc3NvY2lhdGVkIHdpdGggYW4gZWxlbWVudCwgb3IgbnVsbCBpZiBub25lLgogIHdpbmRvdy5IVE1MV2lkZ2V0cy5nZXRJbnN0YW5jZSA9IGZ1bmN0aW9uKGVsKSB7CiAgICByZXR1cm4gZWxlbWVudERhdGEoZWwsICJpbml0X3Jlc3VsdCIpOwogIH07CgogIC8vIEZpbmRzIHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBzY29wZSB0aGF0IG1hdGNoZXMgdGhlIHNlbGVjdG9yLAogIC8vIGFuZCByZXR1cm5zIHRoZSBIVE1MV2lkZ2V0IGluc3RhbmNlIChpLmUuIHRoZSByZXR1cm4gdmFsdWUgb2YKICAvLyBhbiBIVE1MV2lkZ2V0IGJpbmRpbmcncyBpbml0aWFsaXplKCkgb3IgZmFjdG9yeSgpIGZ1bmN0aW9uKQogIC8vIGFzc29jaWF0ZWQgd2l0aCB0aGF0IGVsZW1lbnQsIGlmIGFueS4gSWYgbm8gZWxlbWVudCBtYXRjaGVzIHRoZQogIC8vIHNlbGVjdG9yLCBvciB0aGUgZmlyc3QgbWF0Y2hpbmcgZWxlbWVudCBoYXMgbm8gSFRNTFdpZGdldAogIC8vIGluc3RhbmNlIGFzc29jaWF0ZWQgd2l0aCBpdCwgdGhlbiBudWxsIGlzIHJldHVybmVkLgogIC8vCiAgLy8gVGhlIHNjb3BlIGFyZ3VtZW50IGlzIG9wdGlvbmFsLCBhbmQgZGVmYXVsdHMgdG8gd2luZG93LmRvY3VtZW50LgogIHdpbmRvdy5IVE1MV2lkZ2V0cy5maW5kID0gZnVuY3Rpb24oc2NvcGUsIHNlbGVjdG9yKSB7CiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAxKSB7CiAgICAgIHNlbGVjdG9yID0gc2NvcGU7CiAgICAgIHNjb3BlID0gZG9jdW1lbnQ7CiAgICB9CgogICAgdmFyIGVsID0gc2NvcGUucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7CiAgICBpZiAoZWwgPT09IG51bGwpIHsKICAgICAgcmV0dXJuIG51bGw7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gd2luZG93LkhUTUxXaWRnZXRzLmdldEluc3RhbmNlKGVsKTsKICAgIH0KICB9OwoKICAvLyBGaW5kcyBhbGwgZWxlbWVudHMgaW4gdGhlIHNjb3BlIHRoYXQgbWF0Y2ggdGhlIHNlbGVjdG9yLCBhbmQKICAvLyByZXR1cm5zIHRoZSBIVE1MV2lkZ2V0IGluc3RhbmNlcyAoaS5lLiB0aGUgcmV0dXJuIHZhbHVlcyBvZgogIC8vIGFuIEhUTUxXaWRnZXQgYmluZGluZydzIGluaXRpYWxpemUoKSBvciBmYWN0b3J5KCkgZnVuY3Rpb24pCiAgLy8gYXNzb2NpYXRlZCB3aXRoIHRoZSBlbGVtZW50cywgaW4gYW4gYXJyYXkuIElmIGVsZW1lbnRzIHRoYXQKICAvLyBtYXRjaCB0aGUgc2VsZWN0b3IgZG9uJ3QgaGF2ZSBhbiBhc3NvY2lhdGVkIEhUTUxXaWRnZXQKICAvLyBpbnN0YW5jZSwgdGhlIHJldHVybmVkIGFycmF5IHdpbGwgY29udGFpbiBudWxscy4KICAvLwogIC8vIFRoZSBzY29wZSBhcmd1bWVudCBpcyBvcHRpb25hbCwgYW5kIGRlZmF1bHRzIHRvIHdpbmRvdy5kb2N1bWVudC4KICB3aW5kb3cuSFRNTFdpZGdldHMuZmluZEFsbCA9IGZ1bmN0aW9uKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMSkgewogICAgICBzZWxlY3RvciA9IHNjb3BlOwogICAgICBzY29wZSA9IGRvY3VtZW50OwogICAgfQoKICAgIHZhciBub2RlcyA9IHNjb3BlLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpOwogICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKICAgICAgcmVzdWx0cy5wdXNoKHdpbmRvdy5IVE1MV2lkZ2V0cy5nZXRJbnN0YW5jZShub2Rlc1tpXSkpOwogICAgfQogICAgcmV0dXJuIHJlc3VsdHM7CiAgfTsKCiAgdmFyIHBvc3RSZW5kZXJIYW5kbGVycyA9IFtdOwogIGZ1bmN0aW9uIGludm9rZVBvc3RSZW5kZXJIYW5kbGVycygpIHsKICAgIHdoaWxlIChwb3N0UmVuZGVySGFuZGxlcnMubGVuZ3RoKSB7CiAgICAgIHZhciBoYW5kbGVyID0gcG9zdFJlbmRlckhhbmRsZXJzLnNoaWZ0KCk7CiAgICAgIGlmIChoYW5kbGVyKSB7CiAgICAgICAgaGFuZGxlcigpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZWdpc3RlciB0aGUgZ2l2ZW4gY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgaW52b2tlZCBhZnRlciB0aGUKICAvLyBuZXh0IHRpbWUgc3RhdGljIHdpZGdldHMgYXJlIHJlbmRlcmVkLgogIHdpbmRvdy5IVE1MV2lkZ2V0cy5hZGRQb3N0UmVuZGVySGFuZGxlciA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7CiAgICBwb3N0UmVuZGVySGFuZGxlcnMucHVzaChjYWxsYmFjayk7CiAgfTsKCiAgLy8gVGFrZXMgYSBuZXctc3R5bGUgaW5zdGFuY2UtYm91bmQgZGVmaW5pdGlvbiwgYW5kIHJldHVybnMgYW4KICAvLyBvbGQtc3R5bGUgY2xhc3MtYm91bmQgZGVmaW5pdGlvbi4gVGhpcyBzYXZlcyB1cyBmcm9tIGhhdmluZwogIC8vIHRvIHJld3JpdGUgYWxsIHRoZSBsb2dpYyBpbiB0aGlzIGZpbGUgdG8gYWNjb21vZGF0ZSBib3RoCiAgLy8gdHlwZXMgb2YgZGVmaW5pdGlvbnMuCiAgZnVuY3Rpb24gY3JlYXRlTGVnYWN5RGVmaW5pdGlvbkFkYXB0ZXIoZGVmbikgewogICAgdmFyIHJlc3VsdCA9IHsKICAgICAgbmFtZTogZGVmbi5uYW1lLAogICAgICB0eXBlOiBkZWZuLnR5cGUsCiAgICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0KSB7CiAgICAgICAgcmV0dXJuIGRlZm4uZmFjdG9yeShlbCwgd2lkdGgsIGhlaWdodCk7CiAgICAgIH0sCiAgICAgIHJlbmRlclZhbHVlOiBmdW5jdGlvbihlbCwgeCwgaW5zdGFuY2UpIHsKICAgICAgICByZXR1cm4gaW5zdGFuY2UucmVuZGVyVmFsdWUoeCk7CiAgICAgIH0sCiAgICAgIHJlc2l6ZTogZnVuY3Rpb24oZWwsIHdpZHRoLCBoZWlnaHQsIGluc3RhbmNlKSB7CiAgICAgICAgcmV0dXJuIGluc3RhbmNlLnJlc2l6ZSh3aWR0aCwgaGVpZ2h0KTsKICAgICAgfQogICAgfTsKCiAgICBpZiAoZGVmbi5maW5kKQogICAgICByZXN1bHQuZmluZCA9IGRlZm4uZmluZDsKICAgIGlmIChkZWZuLnJlbmRlckVycm9yKQogICAgICByZXN1bHQucmVuZGVyRXJyb3IgPSBkZWZuLnJlbmRlckVycm9yOwogICAgaWYgKGRlZm4uY2xlYXJFcnJvcikKICAgICAgcmVzdWx0LmNsZWFyRXJyb3IgPSBkZWZuLmNsZWFyRXJyb3I7CgogICAgcmV0dXJuIHJlc3VsdDsKICB9Cn0pKCk7Cgo="></script>
<script src="data:application/x-javascript;base64,LyohIGpRdWVyeSB2MS4xMS4xIHwgKGMpIDIwMDUsIDIwMTQgalF1ZXJ5IEZvdW5kYXRpb24sIEluYy4gfCBqcXVlcnkub3JnL2xpY2Vuc2UgKi8KIWZ1bmN0aW9uKGEsYil7Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9YS5kb2N1bWVudD9iKGEsITApOmZ1bmN0aW9uKGEpe2lmKCFhLmRvY3VtZW50KXRocm93IG5ldyBFcnJvcigialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudCIpO3JldHVybiBiKGEpfTpiKGEpfSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dGhpcyxmdW5jdGlvbihhLGIpe3ZhciBjPVtdLGQ9Yy5zbGljZSxlPWMuY29uY2F0LGY9Yy5wdXNoLGc9Yy5pbmRleE9mLGg9e30saT1oLnRvU3RyaW5nLGo9aC5oYXNPd25Qcm9wZXJ0eSxrPXt9LGw9IjEuMTEuMSIsbT1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgbS5mbi5pbml0KGEsYil9LG49L15bXHNcdUZFRkZceEEwXSt8W1xzXHVGRUZGXHhBMF0rJC9nLG89L14tbXMtLyxwPS8tKFtcZGEtel0pL2dpLHE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi50b1VwcGVyQ2FzZSgpfTttLmZuPW0ucHJvdG90eXBlPXtqcXVlcnk6bCxjb25zdHJ1Y3RvcjptLHNlbGVjdG9yOiIiLGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gZC5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWE/MD5hP3RoaXNbYSt0aGlzLmxlbmd0aF06dGhpc1thXTpkLmNhbGwodGhpcyl9LHB1c2hTdGFjazpmdW5jdGlvbihhKXt2YXIgYj1tLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxhKTtyZXR1cm4gYi5wcmV2T2JqZWN0PXRoaXMsYi5jb250ZXh0PXRoaXMuY29udGV4dCxifSxlYWNoOmZ1bmN0aW9uKGEsYil7cmV0dXJuIG0uZWFjaCh0aGlzLGEsYil9LG1hcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2sobS5tYXAodGhpcyxmdW5jdGlvbihiLGMpe3JldHVybiBhLmNhbGwoYixjLGIpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhkLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGVxOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMubGVuZ3RoLGM9K2ErKDA+YT9iOjApO3JldHVybiB0aGlzLnB1c2hTdGFjayhjPj0wJiZiPmM/W3RoaXNbY11dOltdKX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldk9iamVjdHx8dGhpcy5jb25zdHJ1Y3RvcihudWxsKX0scHVzaDpmLHNvcnQ6Yy5zb3J0LHNwbGljZTpjLnNwbGljZX0sbS5leHRlbmQ9bS5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgYSxiLGMsZCxlLGYsZz1hcmd1bWVudHNbMF18fHt9LGg9MSxpPWFyZ3VtZW50cy5sZW5ndGgsaj0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgZyYmKGo9ZyxnPWFyZ3VtZW50c1toXXx8e30saCsrKSwib2JqZWN0Ij09dHlwZW9mIGd8fG0uaXNGdW5jdGlvbihnKXx8KGc9e30pLGg9PT1pJiYoZz10aGlzLGgtLSk7aT5oO2grKylpZihudWxsIT0oZT1hcmd1bWVudHNbaF0pKWZvcihkIGluIGUpYT1nW2RdLGM9ZVtkXSxnIT09YyYmKGomJmMmJihtLmlzUGxhaW5PYmplY3QoYyl8fChiPW0uaXNBcnJheShjKSkpPyhiPyhiPSExLGY9YSYmbS5pc0FycmF5KGEpP2E6W10pOmY9YSYmbS5pc1BsYWluT2JqZWN0KGEpP2E6e30sZ1tkXT1tLmV4dGVuZChqLGYsYykpOnZvaWQgMCE9PWMmJihnW2RdPWMpKTtyZXR1cm4gZ30sbS5leHRlbmQoe2V4cGFuZG86ImpRdWVyeSIrKGwrTWF0aC5yYW5kb20oKSkucmVwbGFjZSgvXEQvZywiIiksaXNSZWFkeTohMCxlcnJvcjpmdW5jdGlvbihhKXt0aHJvdyBuZXcgRXJyb3IoYSl9LG5vb3A6ZnVuY3Rpb24oKXt9LGlzRnVuY3Rpb246ZnVuY3Rpb24oYSl7cmV0dXJuImZ1bmN0aW9uIj09PW0udHlwZShhKX0saXNBcnJheTpBcnJheS5pc0FycmF5fHxmdW5jdGlvbihhKXtyZXR1cm4iYXJyYXkiPT09bS50eXBlKGEpfSxpc1dpbmRvdzpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9YSYmYT09YS53aW5kb3d9LGlzTnVtZXJpYzpmdW5jdGlvbihhKXtyZXR1cm4hbS5pc0FycmF5KGEpJiZhLXBhcnNlRmxvYXQoYSk+PTB9LGlzRW1wdHlPYmplY3Q6ZnVuY3Rpb24oYSl7dmFyIGI7Zm9yKGIgaW4gYSlyZXR1cm4hMTtyZXR1cm4hMH0saXNQbGFpbk9iamVjdDpmdW5jdGlvbihhKXt2YXIgYjtpZighYXx8Im9iamVjdCIhPT1tLnR5cGUoYSl8fGEubm9kZVR5cGV8fG0uaXNXaW5kb3coYSkpcmV0dXJuITE7dHJ5e2lmKGEuY29uc3RydWN0b3ImJiFqLmNhbGwoYSwiY29uc3RydWN0b3IiKSYmIWouY2FsbChhLmNvbnN0cnVjdG9yLnByb3RvdHlwZSwiaXNQcm90b3R5cGVPZiIpKXJldHVybiExfWNhdGNoKGMpe3JldHVybiExfWlmKGsub3duTGFzdClmb3IoYiBpbiBhKXJldHVybiBqLmNhbGwoYSxiKTtmb3IoYiBpbiBhKTtyZXR1cm4gdm9pZCAwPT09Ynx8ai5jYWxsKGEsYil9LHR5cGU6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE/YSsiIjoib2JqZWN0Ij09dHlwZW9mIGF8fCJmdW5jdGlvbiI9PXR5cGVvZiBhP2hbaS5jYWxsKGEpXXx8Im9iamVjdCI6dHlwZW9mIGF9LGdsb2JhbEV2YWw6ZnVuY3Rpb24oYil7YiYmbS50cmltKGIpJiYoYS5leGVjU2NyaXB0fHxmdW5jdGlvbihiKXthLmV2YWwuY2FsbChhLGIpfSkoYil9LGNhbWVsQ2FzZTpmdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKG8sIm1zLSIpLnJlcGxhY2UocCxxKX0sbm9kZU5hbWU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09Yi50b0xvd2VyQ2FzZSgpfSxlYWNoOmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlPTAsZj1hLmxlbmd0aCxnPXIoYSk7aWYoYyl7aWYoZyl7Zm9yKDtmPmU7ZSsrKWlmKGQ9Yi5hcHBseShhW2VdLGMpLGQ9PT0hMSlicmVha31lbHNlIGZvcihlIGluIGEpaWYoZD1iLmFwcGx5KGFbZV0sYyksZD09PSExKWJyZWFrfWVsc2UgaWYoZyl7Zm9yKDtmPmU7ZSsrKWlmKGQ9Yi5jYWxsKGFbZV0sZSxhW2VdKSxkPT09ITEpYnJlYWt9ZWxzZSBmb3IoZSBpbiBhKWlmKGQ9Yi5jYWxsKGFbZV0sZSxhW2VdKSxkPT09ITEpYnJlYWs7cmV0dXJuIGF9LHRyaW06ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE/IiI6KGErIiIpLnJlcGxhY2UobiwiIil9LG1ha2VBcnJheTpmdW5jdGlvbihhLGIpe3ZhciBjPWJ8fFtdO3JldHVybiBudWxsIT1hJiYocihPYmplY3QoYSkpP20ubWVyZ2UoYywic3RyaW5nIj09dHlwZW9mIGE/W2FdOmEpOmYuY2FsbChjLGEpKSxjfSxpbkFycmF5OmZ1bmN0aW9uKGEsYixjKXt2YXIgZDtpZihiKXtpZihnKXJldHVybiBnLmNhbGwoYixhLGMpO2ZvcihkPWIubGVuZ3RoLGM9Yz8wPmM/TWF0aC5tYXgoMCxkK2MpOmM6MDtkPmM7YysrKWlmKGMgaW4gYiYmYltjXT09PWEpcmV0dXJuIGN9cmV0dXJuLTF9LG1lcmdlOmZ1bmN0aW9uKGEsYil7dmFyIGM9K2IubGVuZ3RoLGQ9MCxlPWEubGVuZ3RoO3doaWxlKGM+ZClhW2UrK109YltkKytdO2lmKGMhPT1jKXdoaWxlKHZvaWQgMCE9PWJbZF0pYVtlKytdPWJbZCsrXTtyZXR1cm4gYS5sZW5ndGg9ZSxhfSxncmVwOmZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQsZT1bXSxmPTAsZz1hLmxlbmd0aCxoPSFjO2c+ZjtmKyspZD0hYihhW2ZdLGYpLGQhPT1oJiZlLnB1c2goYVtmXSk7cmV0dXJuIGV9LG1hcDpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZj0wLGc9YS5sZW5ndGgsaD1yKGEpLGk9W107aWYoaClmb3IoO2c+ZjtmKyspZD1iKGFbZl0sZixjKSxudWxsIT1kJiZpLnB1c2goZCk7ZWxzZSBmb3IoZiBpbiBhKWQ9YihhW2ZdLGYsYyksbnVsbCE9ZCYmaS5wdXNoKGQpO3JldHVybiBlLmFwcGx5KFtdLGkpfSxndWlkOjEscHJveHk6ZnVuY3Rpb24oYSxiKXt2YXIgYyxlLGY7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBiJiYoZj1hW2JdLGI9YSxhPWYpLG0uaXNGdW5jdGlvbihhKT8oYz1kLmNhbGwoYXJndW1lbnRzLDIpLGU9ZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBseShifHx0aGlzLGMuY29uY2F0KGQuY2FsbChhcmd1bWVudHMpKSl9LGUuZ3VpZD1hLmd1aWQ9YS5ndWlkfHxtLmd1aWQrKyxlKTp2b2lkIDB9LG5vdzpmdW5jdGlvbigpe3JldHVybituZXcgRGF0ZX0sc3VwcG9ydDprfSksbS5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIi5zcGxpdCgiICIpLGZ1bmN0aW9uKGEsYil7aFsiW29iamVjdCAiK2IrIl0iXT1iLnRvTG93ZXJDYXNlKCl9KTtmdW5jdGlvbiByKGEpe3ZhciBiPWEubGVuZ3RoLGM9bS50eXBlKGEpO3JldHVybiJmdW5jdGlvbiI9PT1jfHxtLmlzV2luZG93KGEpPyExOjE9PT1hLm5vZGVUeXBlJiZiPyEwOiJhcnJheSI9PT1jfHwwPT09Ynx8Im51bWJlciI9PXR5cGVvZiBiJiZiPjAmJmItMSBpbiBhfXZhciBzPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHU9InNpenpsZSIrLW5ldyBEYXRlLHY9YS5kb2N1bWVudCx3PTAseD0wLHk9Z2IoKSx6PWdiKCksQT1nYigpLEI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT09PWImJihsPSEwKSwwfSxDPSJ1bmRlZmluZWQiLEQ9MTw8MzEsRT17fS5oYXNPd25Qcm9wZXJ0eSxGPVtdLEc9Ri5wb3AsSD1GLnB1c2gsST1GLnB1c2gsSj1GLnNsaWNlLEs9Ri5pbmRleE9mfHxmdW5jdGlvbihhKXtmb3IodmFyIGI9MCxjPXRoaXMubGVuZ3RoO2M+YjtiKyspaWYodGhpc1tiXT09PWEpcmV0dXJuIGI7cmV0dXJuLTF9LEw9ImNoZWNrZWR8c2VsZWN0ZWR8YXN5bmN8YXV0b2ZvY3VzfGF1dG9wbGF5fGNvbnRyb2xzfGRlZmVyfGRpc2FibGVkfGhpZGRlbnxpc21hcHxsb29wfG11bHRpcGxlfG9wZW58cmVhZG9ubHl8cmVxdWlyZWR8c2NvcGVkIixNPSJbXFx4MjBcXHRcXHJcXG5cXGZdIixOPSIoPzpcXFxcLnxbXFx3LV18W15cXHgwMC1cXHhhMF0pKyIsTz1OLnJlcGxhY2UoInciLCJ3IyIpLFA9IlxcWyIrTSsiKigiK04rIikoPzoiK00rIiooWypeJHwhfl0/PSkiK00rIiooPzonKCg/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcInwoIitPKyIpKXwpIitNKyIqXFxdIixRPSI6KCIrTisiKSg/OlxcKCgoJygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCIpfCgoPzpcXFxcLnxbXlxcXFwoKVtcXF1dfCIrUCsiKSopfC4qKVxcKXwpIixSPW5ldyBSZWdFeHAoIl4iK00rIit8KCg/Ol58W15cXFxcXSkoPzpcXFxcLikqKSIrTSsiKyQiLCJnIiksUz1uZXcgUmVnRXhwKCJeIitNKyIqLCIrTSsiKiIpLFQ9bmV3IFJlZ0V4cCgiXiIrTSsiKihbPit+XXwiK00rIikiK00rIioiKSxVPW5ldyBSZWdFeHAoIj0iK00rIiooW15cXF0nXCJdKj8pIitNKyIqXFxdIiwiZyIpLFY9bmV3IFJlZ0V4cChRKSxXPW5ldyBSZWdFeHAoIl4iK08rIiQiKSxYPXtJRDpuZXcgUmVnRXhwKCJeIygiK04rIikiKSxDTEFTUzpuZXcgUmVnRXhwKCJeXFwuKCIrTisiKSIpLFRBRzpuZXcgUmVnRXhwKCJeKCIrTi5yZXBsYWNlKCJ3IiwidyoiKSsiKSIpLEFUVFI6bmV3IFJlZ0V4cCgiXiIrUCksUFNFVURPOm5ldyBSZWdFeHAoIl4iK1EpLENISUxEOm5ldyBSZWdFeHAoIl46KG9ubHl8Zmlyc3R8bGFzdHxudGh8bnRoLWxhc3QpLShjaGlsZHxvZi10eXBlKSg/OlxcKCIrTSsiKihldmVufG9kZHwoKFsrLV18KShcXGQqKW58KSIrTSsiKig/OihbKy1dfCkiK00rIiooXFxkKyl8KSkiK00rIipcXCl8KSIsImkiKSxib29sOm5ldyBSZWdFeHAoIl4oPzoiK0wrIikkIiwiaSIpLG5lZWRzQ29udGV4dDpuZXcgUmVnRXhwKCJeIitNKyIqWz4rfl18OihldmVufG9kZHxlcXxndHxsdHxudGh8Zmlyc3R8bGFzdCkoPzpcXCgiK00rIiooKD86LVxcZCk/XFxkKikiK00rIipcXCl8KSg/PVteLV18JCkiLCJpIil9LFk9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSxaPS9eaFxkJC9pLCQ9L15bXntdK1x7XHMqXFtuYXRpdmUgXHcvLF89L14oPzojKFtcdy1dKyl8KFx3Kyl8XC4oW1x3LV0rKSkkLyxhYj0vWyt+XS8sYmI9Lyd8XFwvZyxjYj1uZXcgUmVnRXhwKCJcXFxcKFtcXGRhLWZdezEsNn0iK00rIj98KCIrTSsiKXwuKSIsImlnIiksZGI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSIweCIrYi02NTUzNjtyZXR1cm4gZCE9PWR8fGM/YjowPmQ/U3RyaW5nLmZyb21DaGFyQ29kZShkKzY1NTM2KTpTdHJpbmcuZnJvbUNoYXJDb2RlKGQ+PjEwfDU1Mjk2LDEwMjMmZHw1NjMyMCl9O3RyeXtJLmFwcGx5KEY9Si5jYWxsKHYuY2hpbGROb2Rlcyksdi5jaGlsZE5vZGVzKSxGW3YuY2hpbGROb2Rlcy5sZW5ndGhdLm5vZGVUeXBlfWNhdGNoKGViKXtJPXthcHBseTpGLmxlbmd0aD9mdW5jdGlvbihhLGIpe0guYXBwbHkoYSxKLmNhbGwoYikpfTpmdW5jdGlvbihhLGIpe3ZhciBjPWEubGVuZ3RoLGQ9MDt3aGlsZShhW2MrK109YltkKytdKTthLmxlbmd0aD1jLTF9fX1mdW5jdGlvbiBmYihhLGIsZCxlKXt2YXIgZixoLGosayxsLG8scixzLHcseDtpZigoYj9iLm93bmVyRG9jdW1lbnR8fGI6dikhPT1uJiZtKGIpLGI9Ynx8bixkPWR8fFtdLCFhfHwic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIGQ7aWYoMSE9PShrPWIubm9kZVR5cGUpJiY5IT09aylyZXR1cm5bXTtpZihwJiYhZSl7aWYoZj1fLmV4ZWMoYSkpaWYoaj1mWzFdKXtpZig5PT09ayl7aWYoaD1iLmdldEVsZW1lbnRCeUlkKGopLCFofHwhaC5wYXJlbnROb2RlKXJldHVybiBkO2lmKGguaWQ9PT1qKXJldHVybiBkLnB1c2goaCksZH1lbHNlIGlmKGIub3duZXJEb2N1bWVudCYmKGg9Yi5vd25lckRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGopKSYmdChiLGgpJiZoLmlkPT09ailyZXR1cm4gZC5wdXNoKGgpLGR9ZWxzZXtpZihmWzJdKXJldHVybiBJLmFwcGx5KGQsYi5nZXRFbGVtZW50c0J5VGFnTmFtZShhKSksZDtpZigoaj1mWzNdKSYmYy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lJiZiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUpcmV0dXJuIEkuYXBwbHkoZCxiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoaikpLGR9aWYoYy5xc2EmJighcXx8IXEudGVzdChhKSkpe2lmKHM9cj11LHc9Yix4PTk9PT1rJiZhLDE9PT1rJiYib2JqZWN0IiE9PWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSl7bz1nKGEpLChyPWIuZ2V0QXR0cmlidXRlKCJpZCIpKT9zPXIucmVwbGFjZShiYiwiXFwkJiIpOmIuc2V0QXR0cmlidXRlKCJpZCIscykscz0iW2lkPSciK3MrIiddICIsbD1vLmxlbmd0aDt3aGlsZShsLS0pb1tsXT1zK3FiKG9bbF0pO3c9YWIudGVzdChhKSYmb2IoYi5wYXJlbnROb2RlKXx8Yix4PW8uam9pbigiLCIpfWlmKHgpdHJ5e3JldHVybiBJLmFwcGx5KGQsdy5xdWVyeVNlbGVjdG9yQWxsKHgpKSxkfWNhdGNoKHkpe31maW5hbGx5e3J8fGIucmVtb3ZlQXR0cmlidXRlKCJpZCIpfX19cmV0dXJuIGkoYS5yZXBsYWNlKFIsIiQxIiksYixkLGUpfWZ1bmN0aW9uIGdiKCl7dmFyIGE9W107ZnVuY3Rpb24gYihjLGUpe3JldHVybiBhLnB1c2goYysiICIpPmQuY2FjaGVMZW5ndGgmJmRlbGV0ZSBiW2Euc2hpZnQoKV0sYltjKyIgIl09ZX1yZXR1cm4gYn1mdW5jdGlvbiBoYihhKXtyZXR1cm4gYVt1XT0hMCxhfWZ1bmN0aW9uIGliKGEpe3ZhciBiPW4uY3JlYXRlRWxlbWVudCgiZGl2Iik7dHJ5e3JldHVybiEhYShiKX1jYXRjaChjKXtyZXR1cm4hMX1maW5hbGx5e2IucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGIpLGI9bnVsbH19ZnVuY3Rpb24gamIoYSxiKXt2YXIgYz1hLnNwbGl0KCJ8IiksZT1hLmxlbmd0aDt3aGlsZShlLS0pZC5hdHRySGFuZGxlW2NbZV1dPWJ9ZnVuY3Rpb24ga2IoYSxiKXt2YXIgYz1iJiZhLGQ9YyYmMT09PWEubm9kZVR5cGUmJjE9PT1iLm5vZGVUeXBlJiYofmIuc291cmNlSW5kZXh8fEQpLSh+YS5zb3VyY2VJbmRleHx8RCk7aWYoZClyZXR1cm4gZDtpZihjKXdoaWxlKGM9Yy5uZXh0U2libGluZylpZihjPT09YilyZXR1cm4tMTtyZXR1cm4gYT8xOi0xfWZ1bmN0aW9uIGxiKGEpe3JldHVybiBmdW5jdGlvbihiKXt2YXIgYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PWMmJmIudHlwZT09PWF9fWZ1bmN0aW9uIG1iKGEpe3JldHVybiBmdW5jdGlvbihiKXt2YXIgYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuKCJpbnB1dCI9PT1jfHwiYnV0dG9uIj09PWMpJiZiLnR5cGU9PT1hfX1mdW5jdGlvbiBuYihhKXtyZXR1cm4gaGIoZnVuY3Rpb24oYil7cmV0dXJuIGI9K2IsaGIoZnVuY3Rpb24oYyxkKXt2YXIgZSxmPWEoW10sYy5sZW5ndGgsYiksZz1mLmxlbmd0aDt3aGlsZShnLS0pY1tlPWZbZ11dJiYoY1tlXT0hKGRbZV09Y1tlXSkpfSl9KX1mdW5jdGlvbiBvYihhKXtyZXR1cm4gYSYmdHlwZW9mIGEuZ2V0RWxlbWVudHNCeVRhZ05hbWUhPT1DJiZhfWM9ZmIuc3VwcG9ydD17fSxmPWZiLmlzWE1MPWZ1bmN0aW9uKGEpe3ZhciBiPWEmJihhLm93bmVyRG9jdW1lbnR8fGEpLmRvY3VtZW50RWxlbWVudDtyZXR1cm4gYj8iSFRNTCIhPT1iLm5vZGVOYW1lOiExfSxtPWZiLnNldERvY3VtZW50PWZ1bmN0aW9uKGEpe3ZhciBiLGU9YT9hLm93bmVyRG9jdW1lbnR8fGE6dixnPWUuZGVmYXVsdFZpZXc7cmV0dXJuIGUhPT1uJiY5PT09ZS5ub2RlVHlwZSYmZS5kb2N1bWVudEVsZW1lbnQ/KG49ZSxvPWUuZG9jdW1lbnRFbGVtZW50LHA9IWYoZSksZyYmZyE9PWcudG9wJiYoZy5hZGRFdmVudExpc3RlbmVyP2cuYWRkRXZlbnRMaXN0ZW5lcigidW5sb2FkIixmdW5jdGlvbigpe20oKX0sITEpOmcuYXR0YWNoRXZlbnQmJmcuYXR0YWNoRXZlbnQoIm9udW5sb2FkIixmdW5jdGlvbigpe20oKX0pKSxjLmF0dHJpYnV0ZXM9aWIoZnVuY3Rpb24oYSl7cmV0dXJuIGEuY2xhc3NOYW1lPSJpIiwhYS5nZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIpfSksYy5nZXRFbGVtZW50c0J5VGFnTmFtZT1pYihmdW5jdGlvbihhKXtyZXR1cm4gYS5hcHBlbmRDaGlsZChlLmNyZWF0ZUNvbW1lbnQoIiIpKSwhYS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aH0pLGMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZT0kLnRlc3QoZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKSYmaWIoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaW5uZXJIVE1MPSI8ZGl2IGNsYXNzPSdhJz48L2Rpdj48ZGl2IGNsYXNzPSdhIGknPjwvZGl2PiIsYS5maXJzdENoaWxkLmNsYXNzTmFtZT0iaSIsMj09PWEuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiaSIpLmxlbmd0aH0pLGMuZ2V0QnlJZD1pYihmdW5jdGlvbihhKXtyZXR1cm4gby5hcHBlbmRDaGlsZChhKS5pZD11LCFlLmdldEVsZW1lbnRzQnlOYW1lfHwhZS5nZXRFbGVtZW50c0J5TmFtZSh1KS5sZW5ndGh9KSxjLmdldEJ5SWQ/KGQuZmluZC5JRD1mdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBiLmdldEVsZW1lbnRCeUlkIT09QyYmcCl7dmFyIGM9Yi5nZXRFbGVtZW50QnlJZChhKTtyZXR1cm4gYyYmYy5wYXJlbnROb2RlP1tjXTpbXX19LGQuZmlsdGVyLklEPWZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZShjYixkYik7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiBhLmdldEF0dHJpYnV0ZSgiaWQiKT09PWJ9fSk6KGRlbGV0ZSBkLmZpbmQuSUQsZC5maWx0ZXIuSUQ9ZnVuY3Rpb24oYSl7dmFyIGI9YS5yZXBsYWNlKGNiLGRiKTtyZXR1cm4gZnVuY3Rpb24oYSl7dmFyIGM9dHlwZW9mIGEuZ2V0QXR0cmlidXRlTm9kZSE9PUMmJmEuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKTtyZXR1cm4gYyYmYy52YWx1ZT09PWJ9fSksZC5maW5kLlRBRz1jLmdldEVsZW1lbnRzQnlUYWdOYW1lP2Z1bmN0aW9uKGEsYil7cmV0dXJuIHR5cGVvZiBiLmdldEVsZW1lbnRzQnlUYWdOYW1lIT09Qz9iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpOnZvaWQgMH06ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPVtdLGU9MCxmPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYSk7aWYoIioiPT09YSl7d2hpbGUoYz1mW2UrK10pMT09PWMubm9kZVR5cGUmJmQucHVzaChjKTtyZXR1cm4gZH1yZXR1cm4gZn0sZC5maW5kLkNMQVNTPWMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmZnVuY3Rpb24oYSxiKXtyZXR1cm4gdHlwZW9mIGIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSE9PUMmJnA/Yi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGEpOnZvaWQgMH0scj1bXSxxPVtdLChjLnFzYT0kLnRlc3QoZS5xdWVyeVNlbGVjdG9yQWxsKSkmJihpYihmdW5jdGlvbihhKXthLmlubmVySFRNTD0iPHNlbGVjdCBtc2FsbG93Y2xpcD0nJz48b3B0aW9uIHNlbGVjdGVkPScnPjwvb3B0aW9uPjwvc2VsZWN0PiIsYS5xdWVyeVNlbGVjdG9yQWxsKCJbbXNhbGxvd2NsaXBePScnXSIpLmxlbmd0aCYmcS5wdXNoKCJbKl4kXT0iK00rIiooPzonJ3xcIlwiKSIpLGEucXVlcnlTZWxlY3RvckFsbCgiW3NlbGVjdGVkXSIpLmxlbmd0aHx8cS5wdXNoKCJcXFsiK00rIiooPzp2YWx1ZXwiK0wrIikiKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIjpjaGVja2VkIikubGVuZ3RofHxxLnB1c2goIjpjaGVja2VkIil9KSxpYihmdW5jdGlvbihhKXt2YXIgYj1lLmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Yi5zZXRBdHRyaWJ1dGUoInR5cGUiLCJoaWRkZW4iKSxhLmFwcGVuZENoaWxkKGIpLnNldEF0dHJpYnV0ZSgibmFtZSIsIkQiKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIltuYW1lPWRdIikubGVuZ3RoJiZxLnB1c2goIm5hbWUiK00rIipbKl4kfCF+XT89IiksYS5xdWVyeVNlbGVjdG9yQWxsKCI6ZW5hYmxlZCIpLmxlbmd0aHx8cS5wdXNoKCI6ZW5hYmxlZCIsIjpkaXNhYmxlZCIpLGEucXVlcnlTZWxlY3RvckFsbCgiKiw6eCIpLHEucHVzaCgiLC4qOiIpfSkpLChjLm1hdGNoZXNTZWxlY3Rvcj0kLnRlc3Qocz1vLm1hdGNoZXN8fG8ud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxvLm1vek1hdGNoZXNTZWxlY3Rvcnx8by5vTWF0Y2hlc1NlbGVjdG9yfHxvLm1zTWF0Y2hlc1NlbGVjdG9yKSkmJmliKGZ1bmN0aW9uKGEpe2MuZGlzY29ubmVjdGVkTWF0Y2g9cy5jYWxsKGEsImRpdiIpLHMuY2FsbChhLCJbcyE9JyddOngiKSxyLnB1c2goIiE9IixRKX0pLHE9cS5sZW5ndGgmJm5ldyBSZWdFeHAocS5qb2luKCJ8IikpLHI9ci5sZW5ndGgmJm5ldyBSZWdFeHAoci5qb2luKCJ8IikpLGI9JC50ZXN0KG8uY29tcGFyZURvY3VtZW50UG9zaXRpb24pLHQ9Ynx8JC50ZXN0KG8uY29udGFpbnMpP2Z1bmN0aW9uKGEsYil7dmFyIGM9OT09PWEubm9kZVR5cGU/YS5kb2N1bWVudEVsZW1lbnQ6YSxkPWImJmIucGFyZW50Tm9kZTtyZXR1cm4gYT09PWR8fCEoIWR8fDEhPT1kLm5vZGVUeXBlfHwhKGMuY29udGFpbnM/Yy5jb250YWlucyhkKTphLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYxNiZhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGQpKSl9OmZ1bmN0aW9uKGEsYil7aWYoYil3aGlsZShiPWIucGFyZW50Tm9kZSlpZihiPT09YSlyZXR1cm4hMDtyZXR1cm4hMX0sQj1iP2Z1bmN0aW9uKGEsYil7aWYoYT09PWIpcmV0dXJuIGw9ITAsMDt2YXIgZD0hYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbi0hYi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbjtyZXR1cm4gZD9kOihkPShhLm93bmVyRG9jdW1lbnR8fGEpPT09KGIub3duZXJEb2N1bWVudHx8Yik/YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKToxLDEmZHx8IWMuc29ydERldGFjaGVkJiZiLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGEpPT09ZD9hPT09ZXx8YS5vd25lckRvY3VtZW50PT09diYmdCh2LGEpPy0xOmI9PT1lfHxiLm93bmVyRG9jdW1lbnQ9PT12JiZ0KHYsYik/MTprP0suY2FsbChrLGEpLUsuY2FsbChrLGIpOjA6NCZkPy0xOjEpfTpmdW5jdGlvbihhLGIpe2lmKGE9PT1iKXJldHVybiBsPSEwLDA7dmFyIGMsZD0wLGY9YS5wYXJlbnROb2RlLGc9Yi5wYXJlbnROb2RlLGg9W2FdLGk9W2JdO2lmKCFmfHwhZylyZXR1cm4gYT09PWU/LTE6Yj09PWU/MTpmPy0xOmc/MTprP0suY2FsbChrLGEpLUsuY2FsbChrLGIpOjA7aWYoZj09PWcpcmV0dXJuIGtiKGEsYik7Yz1hO3doaWxlKGM9Yy5wYXJlbnROb2RlKWgudW5zaGlmdChjKTtjPWI7d2hpbGUoYz1jLnBhcmVudE5vZGUpaS51bnNoaWZ0KGMpO3doaWxlKGhbZF09PT1pW2RdKWQrKztyZXR1cm4gZD9rYihoW2RdLGlbZF0pOmhbZF09PT12Py0xOmlbZF09PT12PzE6MH0sZSk6bn0sZmIubWF0Y2hlcz1mdW5jdGlvbihhLGIpe3JldHVybiBmYihhLG51bGwsbnVsbCxiKX0sZmIubWF0Y2hlc1NlbGVjdG9yPWZ1bmN0aW9uKGEsYil7aWYoKGEub3duZXJEb2N1bWVudHx8YSkhPT1uJiZtKGEpLGI9Yi5yZXBsYWNlKFUsIj0nJDEnXSIpLCEoIWMubWF0Y2hlc1NlbGVjdG9yfHwhcHx8ciYmci50ZXN0KGIpfHxxJiZxLnRlc3QoYikpKXRyeXt2YXIgZD1zLmNhbGwoYSxiKTtpZihkfHxjLmRpc2Nvbm5lY3RlZE1hdGNofHxhLmRvY3VtZW50JiYxMSE9PWEuZG9jdW1lbnQubm9kZVR5cGUpcmV0dXJuIGR9Y2F0Y2goZSl7fXJldHVybiBmYihiLG4sbnVsbCxbYV0pLmxlbmd0aD4wfSxmYi5jb250YWlucz1mdW5jdGlvbihhLGIpe3JldHVybihhLm93bmVyRG9jdW1lbnR8fGEpIT09biYmbShhKSx0KGEsYil9LGZiLmF0dHI9ZnVuY3Rpb24oYSxiKXsoYS5vd25lckRvY3VtZW50fHxhKSE9PW4mJm0oYSk7dmFyIGU9ZC5hdHRySGFuZGxlW2IudG9Mb3dlckNhc2UoKV0sZj1lJiZFLmNhbGwoZC5hdHRySGFuZGxlLGIudG9Mb3dlckNhc2UoKSk/ZShhLGIsIXApOnZvaWQgMDtyZXR1cm4gdm9pZCAwIT09Zj9mOmMuYXR0cmlidXRlc3x8IXA/YS5nZXRBdHRyaWJ1dGUoYik6KGY9YS5nZXRBdHRyaWJ1dGVOb2RlKGIpKSYmZi5zcGVjaWZpZWQ/Zi52YWx1ZTpudWxsfSxmYi5lcnJvcj1mdW5jdGlvbihhKXt0aHJvdyBuZXcgRXJyb3IoIlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrYSl9LGZiLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oYSl7dmFyIGIsZD1bXSxlPTAsZj0wO2lmKGw9IWMuZGV0ZWN0RHVwbGljYXRlcyxrPSFjLnNvcnRTdGFibGUmJmEuc2xpY2UoMCksYS5zb3J0KEIpLGwpe3doaWxlKGI9YVtmKytdKWI9PT1hW2ZdJiYoZT1kLnB1c2goZikpO3doaWxlKGUtLSlhLnNwbGljZShkW2VdLDEpfXJldHVybiBrPW51bGwsYX0sZT1mYi5nZXRUZXh0PWZ1bmN0aW9uKGEpe3ZhciBiLGM9IiIsZD0wLGY9YS5ub2RlVHlwZTtpZihmKXtpZigxPT09Znx8OT09PWZ8fDExPT09Zil7aWYoInN0cmluZyI9PXR5cGVvZiBhLnRleHRDb250ZW50KXJldHVybiBhLnRleHRDb250ZW50O2ZvcihhPWEuZmlyc3RDaGlsZDthO2E9YS5uZXh0U2libGluZyljKz1lKGEpfWVsc2UgaWYoMz09PWZ8fDQ9PT1mKXJldHVybiBhLm5vZGVWYWx1ZX1lbHNlIHdoaWxlKGI9YVtkKytdKWMrPWUoYik7cmV0dXJuIGN9LGQ9ZmIuc2VsZWN0b3JzPXtjYWNoZUxlbmd0aDo1MCxjcmVhdGVQc2V1ZG86aGIsbWF0Y2g6WCxhdHRySGFuZGxlOnt9LGZpbmQ6e30scmVsYXRpdmU6eyI+Ijp7ZGlyOiJwYXJlbnROb2RlIixmaXJzdDohMH0sIiAiOntkaXI6InBhcmVudE5vZGUifSwiKyI6e2RpcjoicHJldmlvdXNTaWJsaW5nIixmaXJzdDohMH0sIn4iOntkaXI6InByZXZpb3VzU2libGluZyJ9fSxwcmVGaWx0ZXI6e0FUVFI6ZnVuY3Rpb24oYSl7cmV0dXJuIGFbMV09YVsxXS5yZXBsYWNlKGNiLGRiKSxhWzNdPShhWzNdfHxhWzRdfHxhWzVdfHwiIikucmVwbGFjZShjYixkYiksIn49Ij09PWFbMl0mJihhWzNdPSIgIithWzNdKyIgIiksYS5zbGljZSgwLDQpfSxDSElMRDpmdW5jdGlvbihhKXtyZXR1cm4gYVsxXT1hWzFdLnRvTG93ZXJDYXNlKCksIm50aCI9PT1hWzFdLnNsaWNlKDAsMyk/KGFbM118fGZiLmVycm9yKGFbMF0pLGFbNF09KyhhWzRdP2FbNV0rKGFbNl18fDEpOjIqKCJldmVuIj09PWFbM118fCJvZGQiPT09YVszXSkpLGFbNV09KyhhWzddK2FbOF18fCJvZGQiPT09YVszXSkpOmFbM10mJmZiLmVycm9yKGFbMF0pLGF9LFBTRVVETzpmdW5jdGlvbihhKXt2YXIgYixjPSFhWzZdJiZhWzJdO3JldHVybiBYLkNISUxELnRlc3QoYVswXSk/bnVsbDooYVszXT9hWzJdPWFbNF18fGFbNV18fCIiOmMmJlYudGVzdChjKSYmKGI9ZyhjLCEwKSkmJihiPWMuaW5kZXhPZigiKSIsYy5sZW5ndGgtYiktYy5sZW5ndGgpJiYoYVswXT1hWzBdLnNsaWNlKDAsYiksYVsyXT1jLnNsaWNlKDAsYikpLGEuc2xpY2UoMCwzKSl9fSxmaWx0ZXI6e1RBRzpmdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2UoY2IsZGIpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIioiPT09YT9mdW5jdGlvbigpe3JldHVybiEwfTpmdW5jdGlvbihhKXtyZXR1cm4gYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09Yn19LENMQVNTOmZ1bmN0aW9uKGEpe3ZhciBiPXlbYSsiICJdO3JldHVybiBifHwoYj1uZXcgUmVnRXhwKCIoXnwiK00rIikiK2ErIigiK00rInwkKSIpKSYmeShhLGZ1bmN0aW9uKGEpe3JldHVybiBiLnRlc3QoInN0cmluZyI9PXR5cGVvZiBhLmNsYXNzTmFtZSYmYS5jbGFzc05hbWV8fHR5cGVvZiBhLmdldEF0dHJpYnV0ZSE9PUMmJmEuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIil9KX0sQVRUUjpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGZ1bmN0aW9uKGQpe3ZhciBlPWZiLmF0dHIoZCxhKTtyZXR1cm4gbnVsbD09ZT8iIT0iPT09YjpiPyhlKz0iIiwiPSI9PT1iP2U9PT1jOiIhPSI9PT1iP2UhPT1jOiJePSI9PT1iP2MmJjA9PT1lLmluZGV4T2YoYyk6Iio9Ij09PWI/YyYmZS5pbmRleE9mKGMpPi0xOiIkPSI9PT1iP2MmJmUuc2xpY2UoLWMubGVuZ3RoKT09PWM6In49Ij09PWI/KCIgIitlKyIgIikuaW5kZXhPZihjKT4tMToifD0iPT09Yj9lPT09Y3x8ZS5zbGljZSgwLGMubGVuZ3RoKzEpPT09YysiLSI6ITEpOiEwfX0sQ0hJTEQ6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj0ibnRoIiE9PWEuc2xpY2UoMCwzKSxnPSJsYXN0IiE9PWEuc2xpY2UoLTQpLGg9Im9mLXR5cGUiPT09YjtyZXR1cm4gMT09PWQmJjA9PT1lP2Z1bmN0aW9uKGEpe3JldHVybiEhYS5wYXJlbnROb2RlfTpmdW5jdGlvbihiLGMsaSl7dmFyIGosayxsLG0sbixvLHA9ZiE9PWc/Im5leHRTaWJsaW5nIjoicHJldmlvdXNTaWJsaW5nIixxPWIucGFyZW50Tm9kZSxyPWgmJmIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxzPSFpJiYhaDtpZihxKXtpZihmKXt3aGlsZShwKXtsPWI7d2hpbGUobD1sW3BdKWlmKGg/bC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09cjoxPT09bC5ub2RlVHlwZSlyZXR1cm4hMTtvPXA9Im9ubHkiPT09YSYmIW8mJiJuZXh0U2libGluZyJ9cmV0dXJuITB9aWYobz1bZz9xLmZpcnN0Q2hpbGQ6cS5sYXN0Q2hpbGRdLGcmJnMpe2s9cVt1XXx8KHFbdV09e30pLGo9a1thXXx8W10sbj1qWzBdPT09dyYmalsxXSxtPWpbMF09PT13JiZqWzJdLGw9biYmcS5jaGlsZE5vZGVzW25dO3doaWxlKGw9KytuJiZsJiZsW3BdfHwobT1uPTApfHxvLnBvcCgpKWlmKDE9PT1sLm5vZGVUeXBlJiYrK20mJmw9PT1iKXtrW2FdPVt3LG4sbV07YnJlYWt9fWVsc2UgaWYocyYmKGo9KGJbdV18fChiW3VdPXt9KSlbYV0pJiZqWzBdPT09dyltPWpbMV07ZWxzZSB3aGlsZShsPSsrbiYmbCYmbFtwXXx8KG09bj0wKXx8by5wb3AoKSlpZigoaD9sLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1yOjE9PT1sLm5vZGVUeXBlKSYmKyttJiYocyYmKChsW3VdfHwobFt1XT17fSkpW2FdPVt3LG1dKSxsPT09YikpYnJlYWs7cmV0dXJuIG0tPWUsbT09PWR8fG0lZD09PTAmJm0vZD49MH19fSxQU0VVRE86ZnVuY3Rpb24oYSxiKXt2YXIgYyxlPWQucHNldWRvc1thXXx8ZC5zZXRGaWx0ZXJzW2EudG9Mb3dlckNhc2UoKV18fGZiLmVycm9yKCJ1bnN1cHBvcnRlZCBwc2V1ZG86ICIrYSk7cmV0dXJuIGVbdV0/ZShiKTplLmxlbmd0aD4xPyhjPVthLGEsIiIsYl0sZC5zZXRGaWx0ZXJzLmhhc093blByb3BlcnR5KGEudG9Mb3dlckNhc2UoKSk/aGIoZnVuY3Rpb24oYSxjKXt2YXIgZCxmPWUoYSxiKSxnPWYubGVuZ3RoO3doaWxlKGctLSlkPUsuY2FsbChhLGZbZ10pLGFbZF09IShjW2RdPWZbZ10pfSk6ZnVuY3Rpb24oYSl7cmV0dXJuIGUoYSwwLGMpfSk6ZX19LHBzZXVkb3M6e25vdDpoYihmdW5jdGlvbihhKXt2YXIgYj1bXSxjPVtdLGQ9aChhLnJlcGxhY2UoUiwiJDEiKSk7cmV0dXJuIGRbdV0/aGIoZnVuY3Rpb24oYSxiLGMsZSl7dmFyIGYsZz1kKGEsbnVsbCxlLFtdKSxoPWEubGVuZ3RoO3doaWxlKGgtLSkoZj1nW2hdKSYmKGFbaF09IShiW2hdPWYpKX0pOmZ1bmN0aW9uKGEsZSxmKXtyZXR1cm4gYlswXT1hLGQoYixudWxsLGYsYyksIWMucG9wKCl9fSksaGFzOmhiKGZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihiKXtyZXR1cm4gZmIoYSxiKS5sZW5ndGg+MH19KSxjb250YWluczpoYihmdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oYil7cmV0dXJuKGIudGV4dENvbnRlbnR8fGIuaW5uZXJUZXh0fHxlKGIpKS5pbmRleE9mKGEpPi0xfX0pLGxhbmc6aGIoZnVuY3Rpb24oYSl7cmV0dXJuIFcudGVzdChhfHwiIil8fGZiLmVycm9yKCJ1bnN1cHBvcnRlZCBsYW5nOiAiK2EpLGE9YS5yZXBsYWNlKGNiLGRiKS50b0xvd2VyQ2FzZSgpLGZ1bmN0aW9uKGIpe3ZhciBjO2RvIGlmKGM9cD9iLmxhbmc6Yi5nZXRBdHRyaWJ1dGUoInhtbDpsYW5nIil8fGIuZ2V0QXR0cmlidXRlKCJsYW5nIikpcmV0dXJuIGM9Yy50b0xvd2VyQ2FzZSgpLGM9PT1hfHwwPT09Yy5pbmRleE9mKGErIi0iKTt3aGlsZSgoYj1iLnBhcmVudE5vZGUpJiYxPT09Yi5ub2RlVHlwZSk7cmV0dXJuITF9fSksdGFyZ2V0OmZ1bmN0aW9uKGIpe3ZhciBjPWEubG9jYXRpb24mJmEubG9jYXRpb24uaGFzaDtyZXR1cm4gYyYmYy5zbGljZSgxKT09PWIuaWR9LHJvb3Q6ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1vfSxmb2N1czpmdW5jdGlvbihhKXtyZXR1cm4gYT09PW4uYWN0aXZlRWxlbWVudCYmKCFuLmhhc0ZvY3VzfHxuLmhhc0ZvY3VzKCkpJiYhIShhLnR5cGV8fGEuaHJlZnx8fmEudGFiSW5kZXgpfSxlbmFibGVkOmZ1bmN0aW9uKGEpe3JldHVybiBhLmRpc2FibGVkPT09ITF9LGRpc2FibGVkOmZ1bmN0aW9uKGEpe3JldHVybiBhLmRpc2FibGVkPT09ITB9LGNoZWNrZWQ6ZnVuY3Rpb24oYSl7dmFyIGI9YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiJpbnB1dCI9PT1iJiYhIWEuY2hlY2tlZHx8Im9wdGlvbiI9PT1iJiYhIWEuc2VsZWN0ZWR9LHNlbGVjdGVkOmZ1bmN0aW9uKGEpe3JldHVybiBhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4LGEuc2VsZWN0ZWQ9PT0hMH0sZW1wdHk6ZnVuY3Rpb24oYSl7Zm9yKGE9YS5maXJzdENoaWxkO2E7YT1hLm5leHRTaWJsaW5nKWlmKGEubm9kZVR5cGU8NilyZXR1cm4hMTtyZXR1cm4hMH0scGFyZW50OmZ1bmN0aW9uKGEpe3JldHVybiFkLnBzZXVkb3MuZW1wdHkoYSl9LGhlYWRlcjpmdW5jdGlvbihhKXtyZXR1cm4gWi50ZXN0KGEubm9kZU5hbWUpfSxpbnB1dDpmdW5jdGlvbihhKXtyZXR1cm4gWS50ZXN0KGEubm9kZU5hbWUpfSxidXR0b246ZnVuY3Rpb24oYSl7dmFyIGI9YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiJpbnB1dCI9PT1iJiYiYnV0dG9uIj09PWEudHlwZXx8ImJ1dHRvbiI9PT1ifSx0ZXh0OmZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiJpbnB1dCI9PT1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkmJiJ0ZXh0Ij09PWEudHlwZSYmKG51bGw9PShiPWEuZ2V0QXR0cmlidXRlKCJ0eXBlIikpfHwidGV4dCI9PT1iLnRvTG93ZXJDYXNlKCkpfSxmaXJzdDpuYihmdW5jdGlvbigpe3JldHVyblswXX0pLGxhc3Q6bmIoZnVuY3Rpb24oYSxiKXtyZXR1cm5bYi0xXX0pLGVxOm5iKGZ1bmN0aW9uKGEsYixjKXtyZXR1cm5bMD5jP2MrYjpjXX0pLGV2ZW46bmIoZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MDtiPmM7Yys9MilhLnB1c2goYyk7cmV0dXJuIGF9KSxvZGQ6bmIoZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MTtiPmM7Yys9MilhLnB1c2goYyk7cmV0dXJuIGF9KSxsdDpuYihmdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPTA+Yz9jK2I6YzstLWQ+PTA7KWEucHVzaChkKTtyZXR1cm4gYX0pLGd0Om5iKGZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MD5jP2MrYjpjOysrZDxiOylhLnB1c2goZCk7cmV0dXJuIGF9KX19LGQucHNldWRvcy5udGg9ZC5wc2V1ZG9zLmVxO2ZvcihiIGlue3JhZGlvOiEwLGNoZWNrYm94OiEwLGZpbGU6ITAscGFzc3dvcmQ6ITAsaW1hZ2U6ITB9KWQucHNldWRvc1tiXT1sYihiKTtmb3IoYiBpbntzdWJtaXQ6ITAscmVzZXQ6ITB9KWQucHNldWRvc1tiXT1tYihiKTtmdW5jdGlvbiBwYigpe31wYi5wcm90b3R5cGU9ZC5maWx0ZXJzPWQucHNldWRvcyxkLnNldEZpbHRlcnM9bmV3IHBiLGc9ZmIudG9rZW5pemU9ZnVuY3Rpb24oYSxiKXt2YXIgYyxlLGYsZyxoLGksaixrPXpbYSsiICJdO2lmKGspcmV0dXJuIGI/MDprLnNsaWNlKDApO2g9YSxpPVtdLGo9ZC5wcmVGaWx0ZXI7d2hpbGUoaCl7KCFjfHwoZT1TLmV4ZWMoaCkpKSYmKGUmJihoPWguc2xpY2UoZVswXS5sZW5ndGgpfHxoKSxpLnB1c2goZj1bXSkpLGM9ITEsKGU9VC5leGVjKGgpKSYmKGM9ZS5zaGlmdCgpLGYucHVzaCh7dmFsdWU6Yyx0eXBlOmVbMF0ucmVwbGFjZShSLCIgIil9KSxoPWguc2xpY2UoYy5sZW5ndGgpKTtmb3IoZyBpbiBkLmZpbHRlcikhKGU9WFtnXS5leGVjKGgpKXx8altnXSYmIShlPWpbZ10oZSkpfHwoYz1lLnNoaWZ0KCksZi5wdXNoKHt2YWx1ZTpjLHR5cGU6ZyxtYXRjaGVzOmV9KSxoPWguc2xpY2UoYy5sZW5ndGgpKTtpZighYylicmVha31yZXR1cm4gYj9oLmxlbmd0aDpoP2ZiLmVycm9yKGEpOnooYSxpKS5zbGljZSgwKX07ZnVuY3Rpb24gcWIoYSl7Zm9yKHZhciBiPTAsYz1hLmxlbmd0aCxkPSIiO2M+YjtiKyspZCs9YVtiXS52YWx1ZTtyZXR1cm4gZH1mdW5jdGlvbiByYihhLGIsYyl7dmFyIGQ9Yi5kaXIsZT1jJiYicGFyZW50Tm9kZSI9PT1kLGY9eCsrO3JldHVybiBiLmZpcnN0P2Z1bmN0aW9uKGIsYyxmKXt3aGlsZShiPWJbZF0paWYoMT09PWIubm9kZVR5cGV8fGUpcmV0dXJuIGEoYixjLGYpfTpmdW5jdGlvbihiLGMsZyl7dmFyIGgsaSxqPVt3LGZdO2lmKGcpe3doaWxlKGI9YltkXSlpZigoMT09PWIubm9kZVR5cGV8fGUpJiZhKGIsYyxnKSlyZXR1cm4hMH1lbHNlIHdoaWxlKGI9YltkXSlpZigxPT09Yi5ub2RlVHlwZXx8ZSl7aWYoaT1iW3VdfHwoYlt1XT17fSksKGg9aVtkXSkmJmhbMF09PT13JiZoWzFdPT09ZilyZXR1cm4galsyXT1oWzJdO2lmKGlbZF09aixqWzJdPWEoYixjLGcpKXJldHVybiEwfX19ZnVuY3Rpb24gc2IoYSl7cmV0dXJuIGEubGVuZ3RoPjE/ZnVuY3Rpb24oYixjLGQpe3ZhciBlPWEubGVuZ3RoO3doaWxlKGUtLSlpZighYVtlXShiLGMsZCkpcmV0dXJuITE7cmV0dXJuITB9OmFbMF19ZnVuY3Rpb24gdGIoYSxiLGMpe2Zvcih2YXIgZD0wLGU9Yi5sZW5ndGg7ZT5kO2QrKylmYihhLGJbZF0sYyk7cmV0dXJuIGN9ZnVuY3Rpb24gdWIoYSxiLGMsZCxlKXtmb3IodmFyIGYsZz1bXSxoPTAsaT1hLmxlbmd0aCxqPW51bGwhPWI7aT5oO2grKykoZj1hW2hdKSYmKCFjfHxjKGYsZCxlKSkmJihnLnB1c2goZiksaiYmYi5wdXNoKGgpKTtyZXR1cm4gZ31mdW5jdGlvbiB2YihhLGIsYyxkLGUsZil7cmV0dXJuIGQmJiFkW3VdJiYoZD12YihkKSksZSYmIWVbdV0mJihlPXZiKGUsZikpLGhiKGZ1bmN0aW9uKGYsZyxoLGkpe3ZhciBqLGssbCxtPVtdLG49W10sbz1nLmxlbmd0aCxwPWZ8fHRiKGJ8fCIqIixoLm5vZGVUeXBlP1toXTpoLFtdKSxxPSFhfHwhZiYmYj9wOnViKHAsbSxhLGgsaSkscj1jP2V8fChmP2E6b3x8ZCk/W106ZzpxO2lmKGMmJmMocSxyLGgsaSksZCl7aj11YihyLG4pLGQoaixbXSxoLGkpLGs9ai5sZW5ndGg7d2hpbGUoay0tKShsPWpba10pJiYocltuW2tdXT0hKHFbbltrXV09bCkpfWlmKGYpe2lmKGV8fGEpe2lmKGUpe2o9W10saz1yLmxlbmd0aDt3aGlsZShrLS0pKGw9cltrXSkmJmoucHVzaChxW2tdPWwpO2UobnVsbCxyPVtdLGosaSl9az1yLmxlbmd0aDt3aGlsZShrLS0pKGw9cltrXSkmJihqPWU/Sy5jYWxsKGYsbCk6bVtrXSk+LTEmJihmW2pdPSEoZ1tqXT1sKSl9fWVsc2Ugcj11YihyPT09Zz9yLnNwbGljZShvLHIubGVuZ3RoKTpyKSxlP2UobnVsbCxnLHIsaSk6SS5hcHBseShnLHIpfSl9ZnVuY3Rpb24gd2IoYSl7Zm9yKHZhciBiLGMsZSxmPWEubGVuZ3RoLGc9ZC5yZWxhdGl2ZVthWzBdLnR5cGVdLGg9Z3x8ZC5yZWxhdGl2ZVsiICJdLGk9Zz8xOjAsaz1yYihmdW5jdGlvbihhKXtyZXR1cm4gYT09PWJ9LGgsITApLGw9cmIoZnVuY3Rpb24oYSl7cmV0dXJuIEsuY2FsbChiLGEpPi0xfSxoLCEwKSxtPVtmdW5jdGlvbihhLGMsZCl7cmV0dXJuIWcmJihkfHxjIT09ail8fCgoYj1jKS5ub2RlVHlwZT9rKGEsYyxkKTpsKGEsYyxkKSl9XTtmPmk7aSsrKWlmKGM9ZC5yZWxhdGl2ZVthW2ldLnR5cGVdKW09W3JiKHNiKG0pLGMpXTtlbHNle2lmKGM9ZC5maWx0ZXJbYVtpXS50eXBlXS5hcHBseShudWxsLGFbaV0ubWF0Y2hlcyksY1t1XSl7Zm9yKGU9KytpO2Y+ZTtlKyspaWYoZC5yZWxhdGl2ZVthW2VdLnR5cGVdKWJyZWFrO3JldHVybiB2YihpPjEmJnNiKG0pLGk+MSYmcWIoYS5zbGljZSgwLGktMSkuY29uY2F0KHt2YWx1ZToiICI9PT1hW2ktMl0udHlwZT8iKiI6IiJ9KSkucmVwbGFjZShSLCIkMSIpLGMsZT5pJiZ3YihhLnNsaWNlKGksZSkpLGY+ZSYmd2IoYT1hLnNsaWNlKGUpKSxmPmUmJnFiKGEpKX1tLnB1c2goYyl9cmV0dXJuIHNiKG0pfWZ1bmN0aW9uIHhiKGEsYil7dmFyIGM9Yi5sZW5ndGg+MCxlPWEubGVuZ3RoPjAsZj1mdW5jdGlvbihmLGcsaCxpLGspe3ZhciBsLG0sbyxwPTAscT0iMCIscj1mJiZbXSxzPVtdLHQ9aix1PWZ8fGUmJmQuZmluZC5UQUcoIioiLGspLHY9dys9bnVsbD09dD8xOk1hdGgucmFuZG9tKCl8fC4xLHg9dS5sZW5ndGg7Zm9yKGsmJihqPWchPT1uJiZnKTtxIT09eCYmbnVsbCE9KGw9dVtxXSk7cSsrKXtpZihlJiZsKXttPTA7d2hpbGUobz1hW20rK10paWYobyhsLGcsaCkpe2kucHVzaChsKTticmVha31rJiYodz12KX1jJiYoKGw9IW8mJmwpJiZwLS0sZiYmci5wdXNoKGwpKX1pZihwKz1xLGMmJnEhPT1wKXttPTA7d2hpbGUobz1iW20rK10pbyhyLHMsZyxoKTtpZihmKXtpZihwPjApd2hpbGUocS0tKXJbcV18fHNbcV18fChzW3FdPUcuY2FsbChpKSk7cz11YihzKX1JLmFwcGx5KGkscyksayYmIWYmJnMubGVuZ3RoPjAmJnArYi5sZW5ndGg+MSYmZmIudW5pcXVlU29ydChpKX1yZXR1cm4gayYmKHc9dixqPXQpLHJ9O3JldHVybiBjP2hiKGYpOmZ9cmV0dXJuIGg9ZmIuY29tcGlsZT1mdW5jdGlvbihhLGIpe3ZhciBjLGQ9W10sZT1bXSxmPUFbYSsiICJdO2lmKCFmKXtifHwoYj1nKGEpKSxjPWIubGVuZ3RoO3doaWxlKGMtLSlmPXdiKGJbY10pLGZbdV0/ZC5wdXNoKGYpOmUucHVzaChmKTtmPUEoYSx4YihlLGQpKSxmLnNlbGVjdG9yPWF9cmV0dXJuIGZ9LGk9ZmIuc2VsZWN0PWZ1bmN0aW9uKGEsYixlLGYpe3ZhciBpLGosayxsLG0sbj0iZnVuY3Rpb24iPT10eXBlb2YgYSYmYSxvPSFmJiZnKGE9bi5zZWxlY3Rvcnx8YSk7aWYoZT1lfHxbXSwxPT09by5sZW5ndGgpe2lmKGo9b1swXT1vWzBdLnNsaWNlKDApLGoubGVuZ3RoPjImJiJJRCI9PT0oaz1qWzBdKS50eXBlJiZjLmdldEJ5SWQmJjk9PT1iLm5vZGVUeXBlJiZwJiZkLnJlbGF0aXZlW2pbMV0udHlwZV0pe2lmKGI9KGQuZmluZC5JRChrLm1hdGNoZXNbMF0ucmVwbGFjZShjYixkYiksYil8fFtdKVswXSwhYilyZXR1cm4gZTtuJiYoYj1iLnBhcmVudE5vZGUpLGE9YS5zbGljZShqLnNoaWZ0KCkudmFsdWUubGVuZ3RoKX1pPVgubmVlZHNDb250ZXh0LnRlc3QoYSk/MDpqLmxlbmd0aDt3aGlsZShpLS0pe2lmKGs9altpXSxkLnJlbGF0aXZlW2w9ay50eXBlXSlicmVhaztpZigobT1kLmZpbmRbbF0pJiYoZj1tKGsubWF0Y2hlc1swXS5yZXBsYWNlKGNiLGRiKSxhYi50ZXN0KGpbMF0udHlwZSkmJm9iKGIucGFyZW50Tm9kZSl8fGIpKSl7aWYoai5zcGxpY2UoaSwxKSxhPWYubGVuZ3RoJiZxYihqKSwhYSlyZXR1cm4gSS5hcHBseShlLGYpLGU7YnJlYWt9fX1yZXR1cm4obnx8aChhLG8pKShmLGIsIXAsZSxhYi50ZXN0KGEpJiZvYihiLnBhcmVudE5vZGUpfHxiKSxlfSxjLnNvcnRTdGFibGU9dS5zcGxpdCgiIikuc29ydChCKS5qb2luKCIiKT09PXUsYy5kZXRlY3REdXBsaWNhdGVzPSEhbCxtKCksYy5zb3J0RGV0YWNoZWQ9aWIoZnVuY3Rpb24oYSl7cmV0dXJuIDEmYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihuLmNyZWF0ZUVsZW1lbnQoImRpdiIpKX0pLGliKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlubmVySFRNTD0iPGEgaHJlZj0nIyc+PC9hPiIsIiMiPT09YS5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgiaHJlZiIpfSl8fGpiKCJ0eXBlfGhyZWZ8aGVpZ2h0fHdpZHRoIixmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGM/dm9pZCAwOmEuZ2V0QXR0cmlidXRlKGIsInR5cGUiPT09Yi50b0xvd2VyQ2FzZSgpPzE6Mil9KSxjLmF0dHJpYnV0ZXMmJmliKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlubmVySFRNTD0iPGlucHV0Lz4iLGEuZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwiIiksIiI9PT1hLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpfSl8fGpiKCJ2YWx1ZSIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBjfHwiaW5wdXQiIT09YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpP3ZvaWQgMDphLmRlZmF1bHRWYWx1ZX0pLGliKGZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1hLmdldEF0dHJpYnV0ZSgiZGlzYWJsZWQiKX0pfHxqYihMLGZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4gYz92b2lkIDA6YVtiXT09PSEwP2IudG9Mb3dlckNhc2UoKTooZD1hLmdldEF0dHJpYnV0ZU5vZGUoYikpJiZkLnNwZWNpZmllZD9kLnZhbHVlOm51bGx9KSxmYn0oYSk7bS5maW5kPXMsbS5leHByPXMuc2VsZWN0b3JzLG0uZXhwclsiOiJdPW0uZXhwci5wc2V1ZG9zLG0udW5pcXVlPXMudW5pcXVlU29ydCxtLnRleHQ9cy5nZXRUZXh0LG0uaXNYTUxEb2M9cy5pc1hNTCxtLmNvbnRhaW5zPXMuY29udGFpbnM7dmFyIHQ9bS5leHByLm1hdGNoLm5lZWRzQ29udGV4dCx1PS9ePChcdyspXHMqXC8/Pig/OjxcL1wxPnwpJC8sdj0vXi5bXjojXFtcLixdKiQvO2Z1bmN0aW9uIHcoYSxiLGMpe2lmKG0uaXNGdW5jdGlvbihiKSlyZXR1cm4gbS5ncmVwKGEsZnVuY3Rpb24oYSxkKXtyZXR1cm4hIWIuY2FsbChhLGQsYSkhPT1jfSk7aWYoYi5ub2RlVHlwZSlyZXR1cm4gbS5ncmVwKGEsZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1iIT09Y30pO2lmKCJzdHJpbmciPT10eXBlb2YgYil7aWYodi50ZXN0KGIpKXJldHVybiBtLmZpbHRlcihiLGEsYyk7Yj1tLmZpbHRlcihiLGEpfXJldHVybiBtLmdyZXAoYSxmdW5jdGlvbihhKXtyZXR1cm4gbS5pbkFycmF5KGEsYik+PTAhPT1jfSl9bS5maWx0ZXI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWJbMF07cmV0dXJuIGMmJihhPSI6bm90KCIrYSsiKSIpLDE9PT1iLmxlbmd0aCYmMT09PWQubm9kZVR5cGU/bS5maW5kLm1hdGNoZXNTZWxlY3RvcihkLGEpP1tkXTpbXTptLmZpbmQubWF0Y2hlcyhhLG0uZ3JlcChiLGZ1bmN0aW9uKGEpe3JldHVybiAxPT09YS5ub2RlVHlwZX0pKX0sbS5mbi5leHRlbmQoe2ZpbmQ6ZnVuY3Rpb24oYSl7dmFyIGIsYz1bXSxkPXRoaXMsZT1kLmxlbmd0aDtpZigic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIHRoaXMucHVzaFN0YWNrKG0oYSkuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKGI9MDtlPmI7YisrKWlmKG0uY29udGFpbnMoZFtiXSx0aGlzKSlyZXR1cm4hMH0pKTtmb3IoYj0wO2U+YjtiKyspbS5maW5kKGEsZFtiXSxjKTtyZXR1cm4gYz10aGlzLnB1c2hTdGFjayhlPjE/bS51bmlxdWUoYyk6YyksYy5zZWxlY3Rvcj10aGlzLnNlbGVjdG9yP3RoaXMuc2VsZWN0b3IrIiAiK2E6YSxjfSxmaWx0ZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHcodGhpcyxhfHxbXSwhMSkpfSxub3Q6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHcodGhpcyxhfHxbXSwhMCkpfSxpczpmdW5jdGlvbihhKXtyZXR1cm4hIXcodGhpcywic3RyaW5nIj09dHlwZW9mIGEmJnQudGVzdChhKT9tKGEpOmF8fFtdLCExKS5sZW5ndGh9fSk7dmFyIHgseT1hLmRvY3VtZW50LHo9L14oPzpccyooPFtcd1xXXSs+KVtePl0qfCMoW1x3LV0qKSkkLyxBPW0uZm4uaW5pdD1mdW5jdGlvbihhLGIpe3ZhciBjLGQ7aWYoIWEpcmV0dXJuIHRoaXM7aWYoInN0cmluZyI9PXR5cGVvZiBhKXtpZihjPSI8Ij09PWEuY2hhckF0KDApJiYiPiI9PT1hLmNoYXJBdChhLmxlbmd0aC0xKSYmYS5sZW5ndGg+PTM/W251bGwsYSxudWxsXTp6LmV4ZWMoYSksIWN8fCFjWzFdJiZiKXJldHVybiFifHxiLmpxdWVyeT8oYnx8eCkuZmluZChhKTp0aGlzLmNvbnN0cnVjdG9yKGIpLmZpbmQoYSk7aWYoY1sxXSl7aWYoYj1iIGluc3RhbmNlb2YgbT9iWzBdOmIsbS5tZXJnZSh0aGlzLG0ucGFyc2VIVE1MKGNbMV0sYiYmYi5ub2RlVHlwZT9iLm93bmVyRG9jdW1lbnR8fGI6eSwhMCkpLHUudGVzdChjWzFdKSYmbS5pc1BsYWluT2JqZWN0KGIpKWZvcihjIGluIGIpbS5pc0Z1bmN0aW9uKHRoaXNbY10pP3RoaXNbY10oYltjXSk6dGhpcy5hdHRyKGMsYltjXSk7cmV0dXJuIHRoaXN9aWYoZD15LmdldEVsZW1lbnRCeUlkKGNbMl0pLGQmJmQucGFyZW50Tm9kZSl7aWYoZC5pZCE9PWNbMl0pcmV0dXJuIHguZmluZChhKTt0aGlzLmxlbmd0aD0xLHRoaXNbMF09ZH1yZXR1cm4gdGhpcy5jb250ZXh0PXksdGhpcy5zZWxlY3Rvcj1hLHRoaXN9cmV0dXJuIGEubm9kZVR5cGU/KHRoaXMuY29udGV4dD10aGlzWzBdPWEsdGhpcy5sZW5ndGg9MSx0aGlzKTptLmlzRnVuY3Rpb24oYSk/InVuZGVmaW5lZCIhPXR5cGVvZiB4LnJlYWR5P3gucmVhZHkoYSk6YShtKToodm9pZCAwIT09YS5zZWxlY3RvciYmKHRoaXMuc2VsZWN0b3I9YS5zZWxlY3Rvcix0aGlzLmNvbnRleHQ9YS5jb250ZXh0KSxtLm1ha2VBcnJheShhLHRoaXMpKX07QS5wcm90b3R5cGU9bS5mbix4PW0oeSk7dmFyIEI9L14oPzpwYXJlbnRzfHByZXYoPzpVbnRpbHxBbGwpKS8sQz17Y2hpbGRyZW46ITAsY29udGVudHM6ITAsbmV4dDohMCxwcmV2OiEwfTttLmV4dGVuZCh7ZGlyOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1bXSxlPWFbYl07d2hpbGUoZSYmOSE9PWUubm9kZVR5cGUmJih2b2lkIDA9PT1jfHwxIT09ZS5ub2RlVHlwZXx8IW0oZSkuaXMoYykpKTE9PT1lLm5vZGVUeXBlJiZkLnB1c2goZSksZT1lW2JdO3JldHVybiBkfSxzaWJsaW5nOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdO2E7YT1hLm5leHRTaWJsaW5nKTE9PT1hLm5vZGVUeXBlJiZhIT09YiYmYy5wdXNoKGEpO3JldHVybiBjfX0pLG0uZm4uZXh0ZW5kKHtoYXM6ZnVuY3Rpb24oYSl7dmFyIGIsYz1tKGEsdGhpcyksZD1jLmxlbmd0aDtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oKXtmb3IoYj0wO2Q+YjtiKyspaWYobS5jb250YWlucyh0aGlzLGNbYl0pKXJldHVybiEwfSl9LGNsb3Nlc3Q6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGMsZD0wLGU9dGhpcy5sZW5ndGgsZj1bXSxnPXQudGVzdChhKXx8InN0cmluZyIhPXR5cGVvZiBhP20oYSxifHx0aGlzLmNvbnRleHQpOjA7ZT5kO2QrKylmb3IoYz10aGlzW2RdO2MmJmMhPT1iO2M9Yy5wYXJlbnROb2RlKWlmKGMubm9kZVR5cGU8MTEmJihnP2cuaW5kZXgoYyk+LTE6MT09PWMubm9kZVR5cGUmJm0uZmluZC5tYXRjaGVzU2VsZWN0b3IoYyxhKSkpe2YucHVzaChjKTticmVha31yZXR1cm4gdGhpcy5wdXNoU3RhY2soZi5sZW5ndGg+MT9tLnVuaXF1ZShmKTpmKX0saW5kZXg6ZnVuY3Rpb24oYSl7cmV0dXJuIGE/InN0cmluZyI9PXR5cGVvZiBhP20uaW5BcnJheSh0aGlzWzBdLG0oYSkpOm0uaW5BcnJheShhLmpxdWVyeT9hWzBdOmEsdGhpcyk6dGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlP3RoaXMuZmlyc3QoKS5wcmV2QWxsKCkubGVuZ3RoOi0xfSxhZGQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2sobS51bmlxdWUobS5tZXJnZSh0aGlzLmdldCgpLG0oYSxiKSkpKX0sYWRkQmFjazpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hZGQobnVsbD09YT90aGlzLnByZXZPYmplY3Q6dGhpcy5wcmV2T2JqZWN0LmZpbHRlcihhKSl9fSk7ZnVuY3Rpb24gRChhLGIpe2RvIGE9YVtiXTt3aGlsZShhJiYxIT09YS5ub2RlVHlwZSk7cmV0dXJuIGF9bS5lYWNoKHtwYXJlbnQ6ZnVuY3Rpb24oYSl7dmFyIGI9YS5wYXJlbnROb2RlO3JldHVybiBiJiYxMSE9PWIubm9kZVR5cGU/YjpudWxsfSxwYXJlbnRzOmZ1bmN0aW9uKGEpe3JldHVybiBtLmRpcihhLCJwYXJlbnROb2RlIil9LHBhcmVudHNVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIG0uZGlyKGEsInBhcmVudE5vZGUiLGMpfSxuZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBEKGEsIm5leHRTaWJsaW5nIil9LHByZXY6ZnVuY3Rpb24oYSl7cmV0dXJuIEQoYSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRBbGw6ZnVuY3Rpb24oYSl7cmV0dXJuIG0uZGlyKGEsIm5leHRTaWJsaW5nIil9LHByZXZBbGw6ZnVuY3Rpb24oYSl7cmV0dXJuIG0uZGlyKGEsInByZXZpb3VzU2libGluZyIpfSxuZXh0VW50aWw6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBtLmRpcihhLCJuZXh0U2libGluZyIsYyl9LHByZXZVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIG0uZGlyKGEsInByZXZpb3VzU2libGluZyIsYyl9LHNpYmxpbmdzOmZ1bmN0aW9uKGEpe3JldHVybiBtLnNpYmxpbmcoKGEucGFyZW50Tm9kZXx8e30pLmZpcnN0Q2hpbGQsYSl9LGNoaWxkcmVuOmZ1bmN0aW9uKGEpe3JldHVybiBtLnNpYmxpbmcoYS5maXJzdENoaWxkKX0sY29udGVudHM6ZnVuY3Rpb24oYSl7cmV0dXJuIG0ubm9kZU5hbWUoYSwiaWZyYW1lIik/YS5jb250ZW50RG9jdW1lbnR8fGEuY29udGVudFdpbmRvdy5kb2N1bWVudDptLm1lcmdlKFtdLGEuY2hpbGROb2Rlcyl9fSxmdW5jdGlvbihhLGIpe20uZm5bYV09ZnVuY3Rpb24oYyxkKXt2YXIgZT1tLm1hcCh0aGlzLGIsYyk7cmV0dXJuIlVudGlsIiE9PWEuc2xpY2UoLTUpJiYoZD1jKSxkJiYic3RyaW5nIj09dHlwZW9mIGQmJihlPW0uZmlsdGVyKGQsZSkpLHRoaXMubGVuZ3RoPjEmJihDW2FdfHwoZT1tLnVuaXF1ZShlKSksQi50ZXN0KGEpJiYoZT1lLnJldmVyc2UoKSkpLHRoaXMucHVzaFN0YWNrKGUpfX0pO3ZhciBFPS9cUysvZyxGPXt9O2Z1bmN0aW9uIEcoYSl7dmFyIGI9RlthXT17fTtyZXR1cm4gbS5lYWNoKGEubWF0Y2goRSl8fFtdLGZ1bmN0aW9uKGEsYyl7YltjXT0hMH0pLGJ9bS5DYWxsYmFja3M9ZnVuY3Rpb24oYSl7YT0ic3RyaW5nIj09dHlwZW9mIGE/RlthXXx8RyhhKTptLmV4dGVuZCh7fSxhKTt2YXIgYixjLGQsZSxmLGcsaD1bXSxpPSFhLm9uY2UmJltdLGo9ZnVuY3Rpb24obCl7Zm9yKGM9YS5tZW1vcnkmJmwsZD0hMCxmPWd8fDAsZz0wLGU9aC5sZW5ndGgsYj0hMDtoJiZlPmY7ZisrKWlmKGhbZl0uYXBwbHkobFswXSxsWzFdKT09PSExJiZhLnN0b3BPbkZhbHNlKXtjPSExO2JyZWFrfWI9ITEsaCYmKGk/aS5sZW5ndGgmJmooaS5zaGlmdCgpKTpjP2g9W106ay5kaXNhYmxlKCkpfSxrPXthZGQ6ZnVuY3Rpb24oKXtpZihoKXt2YXIgZD1oLmxlbmd0aDshZnVuY3Rpb24gZihiKXttLmVhY2goYixmdW5jdGlvbihiLGMpe3ZhciBkPW0udHlwZShjKTsiZnVuY3Rpb24iPT09ZD9hLnVuaXF1ZSYmay5oYXMoYyl8fGgucHVzaChjKTpjJiZjLmxlbmd0aCYmInN0cmluZyIhPT1kJiZmKGMpfSl9KGFyZ3VtZW50cyksYj9lPWgubGVuZ3RoOmMmJihnPWQsaihjKSl9cmV0dXJuIHRoaXN9LHJlbW92ZTpmdW5jdGlvbigpe3JldHVybiBoJiZtLmVhY2goYXJndW1lbnRzLGZ1bmN0aW9uKGEsYyl7dmFyIGQ7d2hpbGUoKGQ9bS5pbkFycmF5KGMsaCxkKSk+LTEpaC5zcGxpY2UoZCwxKSxiJiYoZT49ZCYmZS0tLGY+PWQmJmYtLSl9KSx0aGlzfSxoYXM6ZnVuY3Rpb24oYSl7cmV0dXJuIGE/bS5pbkFycmF5KGEsaCk+LTE6ISghaHx8IWgubGVuZ3RoKX0sZW1wdHk6ZnVuY3Rpb24oKXtyZXR1cm4gaD1bXSxlPTAsdGhpc30sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiBoPWk9Yz12b2lkIDAsdGhpc30sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4haH0sbG9jazpmdW5jdGlvbigpe3JldHVybiBpPXZvaWQgMCxjfHxrLmRpc2FibGUoKSx0aGlzfSxsb2NrZWQ6ZnVuY3Rpb24oKXtyZXR1cm4haX0sZmlyZVdpdGg6ZnVuY3Rpb24oYSxjKXtyZXR1cm4haHx8ZCYmIWl8fChjPWN8fFtdLGM9W2EsYy5zbGljZT9jLnNsaWNlKCk6Y10sYj9pLnB1c2goYyk6aihjKSksdGhpc30sZmlyZTpmdW5jdGlvbigpe3JldHVybiBrLmZpcmVXaXRoKHRoaXMsYXJndW1lbnRzKSx0aGlzfSxmaXJlZDpmdW5jdGlvbigpe3JldHVybiEhZH19O3JldHVybiBrfSxtLmV4dGVuZCh7RGVmZXJyZWQ6ZnVuY3Rpb24oYSl7dmFyIGI9W1sicmVzb2x2ZSIsImRvbmUiLG0uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLCJyZXNvbHZlZCJdLFsicmVqZWN0IiwiZmFpbCIsbS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksInJlamVjdGVkIl0sWyJub3RpZnkiLCJwcm9ncmVzcyIsbS5DYWxsYmFja3MoIm1lbW9yeSIpXV0sYz0icGVuZGluZyIsZD17c3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gY30sYWx3YXlzOmZ1bmN0aW9uKCl7cmV0dXJuIGUuZG9uZShhcmd1bWVudHMpLmZhaWwoYXJndW1lbnRzKSx0aGlzfSx0aGVuOmZ1bmN0aW9uKCl7dmFyIGE9YXJndW1lbnRzO3JldHVybiBtLkRlZmVycmVkKGZ1bmN0aW9uKGMpe20uZWFjaChiLGZ1bmN0aW9uKGIsZil7dmFyIGc9bS5pc0Z1bmN0aW9uKGFbYl0pJiZhW2JdO2VbZlsxXV0oZnVuY3Rpb24oKXt2YXIgYT1nJiZnLmFwcGx5KHRoaXMsYXJndW1lbnRzKTthJiZtLmlzRnVuY3Rpb24oYS5wcm9taXNlKT9hLnByb21pc2UoKS5kb25lKGMucmVzb2x2ZSkuZmFpbChjLnJlamVjdCkucHJvZ3Jlc3MoYy5ub3RpZnkpOmNbZlswXSsiV2l0aCJdKHRoaXM9PT1kP2MucHJvbWlzZSgpOnRoaXMsZz9bYV06YXJndW1lbnRzKX0pfSksYT1udWxsfSkucHJvbWlzZSgpfSxwcm9taXNlOmZ1bmN0aW9uKGEpe3JldHVybiBudWxsIT1hP20uZXh0ZW5kKGEsZCk6ZH19LGU9e307cmV0dXJuIGQucGlwZT1kLnRoZW4sbS5lYWNoKGIsZnVuY3Rpb24oYSxmKXt2YXIgZz1mWzJdLGg9ZlszXTtkW2ZbMV1dPWcuYWRkLGgmJmcuYWRkKGZ1bmN0aW9uKCl7Yz1ofSxiWzFeYV1bMl0uZGlzYWJsZSxiWzJdWzJdLmxvY2spLGVbZlswXV09ZnVuY3Rpb24oKXtyZXR1cm4gZVtmWzBdKyJXaXRoIl0odGhpcz09PWU/ZDp0aGlzLGFyZ3VtZW50cyksdGhpc30sZVtmWzBdKyJXaXRoIl09Zy5maXJlV2l0aH0pLGQucHJvbWlzZShlKSxhJiZhLmNhbGwoZSxlKSxlfSx3aGVuOmZ1bmN0aW9uKGEpe3ZhciBiPTAsYz1kLmNhbGwoYXJndW1lbnRzKSxlPWMubGVuZ3RoLGY9MSE9PWV8fGEmJm0uaXNGdW5jdGlvbihhLnByb21pc2UpP2U6MCxnPTE9PT1mP2E6bS5EZWZlcnJlZCgpLGg9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBmdW5jdGlvbihlKXtiW2FdPXRoaXMsY1thXT1hcmd1bWVudHMubGVuZ3RoPjE/ZC5jYWxsKGFyZ3VtZW50cyk6ZSxjPT09aT9nLm5vdGlmeVdpdGgoYixjKTotLWZ8fGcucmVzb2x2ZVdpdGgoYixjKX19LGksaixrO2lmKGU+MSlmb3IoaT1uZXcgQXJyYXkoZSksaj1uZXcgQXJyYXkoZSksaz1uZXcgQXJyYXkoZSk7ZT5iO2IrKyljW2JdJiZtLmlzRnVuY3Rpb24oY1tiXS5wcm9taXNlKT9jW2JdLnByb21pc2UoKS5kb25lKGgoYixrLGMpKS5mYWlsKGcucmVqZWN0KS5wcm9ncmVzcyhoKGIsaixpKSk6LS1mO3JldHVybiBmfHxnLnJlc29sdmVXaXRoKGssYyksZy5wcm9taXNlKCl9fSk7dmFyIEg7bS5mbi5yZWFkeT1mdW5jdGlvbihhKXtyZXR1cm4gbS5yZWFkeS5wcm9taXNlKCkuZG9uZShhKSx0aGlzfSxtLmV4dGVuZCh7aXNSZWFkeTohMSxyZWFkeVdhaXQ6MSxob2xkUmVhZHk6ZnVuY3Rpb24oYSl7YT9tLnJlYWR5V2FpdCsrOm0ucmVhZHkoITApfSxyZWFkeTpmdW5jdGlvbihhKXtpZihhPT09ITA/IS0tbS5yZWFkeVdhaXQ6IW0uaXNSZWFkeSl7aWYoIXkuYm9keSlyZXR1cm4gc2V0VGltZW91dChtLnJlYWR5KTttLmlzUmVhZHk9ITAsYSE9PSEwJiYtLW0ucmVhZHlXYWl0PjB8fChILnJlc29sdmVXaXRoKHksW21dKSxtLmZuLnRyaWdnZXJIYW5kbGVyJiYobSh5KS50cmlnZ2VySGFuZGxlcigicmVhZHkiKSxtKHkpLm9mZigicmVhZHkiKSkpfX19KTtmdW5jdGlvbiBJKCl7eS5hZGRFdmVudExpc3RlbmVyPyh5LnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLEosITEpLGEucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIsSiwhMSkpOih5LmRldGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLEopLGEuZGV0YWNoRXZlbnQoIm9ubG9hZCIsSikpfWZ1bmN0aW9uIEooKXsoeS5hZGRFdmVudExpc3RlbmVyfHwibG9hZCI9PT1ldmVudC50eXBlfHwiY29tcGxldGUiPT09eS5yZWFkeVN0YXRlKSYmKEkoKSxtLnJlYWR5KCkpfW0ucmVhZHkucHJvbWlzZT1mdW5jdGlvbihiKXtpZighSClpZihIPW0uRGVmZXJyZWQoKSwiY29tcGxldGUiPT09eS5yZWFkeVN0YXRlKXNldFRpbWVvdXQobS5yZWFkeSk7ZWxzZSBpZih5LmFkZEV2ZW50TGlzdGVuZXIpeS5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixKLCExKSxhLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLEosITEpO2Vsc2V7eS5hdHRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIixKKSxhLmF0dGFjaEV2ZW50KCJvbmxvYWQiLEopO3ZhciBjPSExO3RyeXtjPW51bGw9PWEuZnJhbWVFbGVtZW50JiZ5LmRvY3VtZW50RWxlbWVudH1jYXRjaChkKXt9YyYmYy5kb1Njcm9sbCYmIWZ1bmN0aW9uIGUoKXtpZighbS5pc1JlYWR5KXt0cnl7Yy5kb1Njcm9sbCgibGVmdCIpfWNhdGNoKGEpe3JldHVybiBzZXRUaW1lb3V0KGUsNTApfUkoKSxtLnJlYWR5KCl9fSgpfXJldHVybiBILnByb21pc2UoYil9O3ZhciBLPSJ1bmRlZmluZWQiLEw7Zm9yKEwgaW4gbShrKSlicmVhaztrLm93bkxhc3Q9IjAiIT09TCxrLmlubGluZUJsb2NrTmVlZHNMYXlvdXQ9ITEsbShmdW5jdGlvbigpe3ZhciBhLGIsYyxkO2M9eS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdLGMmJmMuc3R5bGUmJihiPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksZD15LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGQuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyOjA7d2lkdGg6MDtoZWlnaHQ6MDt0b3A6MDtsZWZ0Oi05OTk5cHgiLGMuYXBwZW5kQ2hpbGQoZCkuYXBwZW5kQ2hpbGQoYiksdHlwZW9mIGIuc3R5bGUuem9vbSE9PUsmJihiLnN0eWxlLmNzc1RleHQ9ImRpc3BsYXk6aW5saW5lO21hcmdpbjowO2JvcmRlcjowO3BhZGRpbmc6MXB4O3dpZHRoOjFweDt6b29tOjEiLGsuaW5saW5lQmxvY2tOZWVkc0xheW91dD1hPTM9PT1iLm9mZnNldFdpZHRoLGEmJihjLnN0eWxlLnpvb209MSkpLGMucmVtb3ZlQ2hpbGQoZCkpfSksZnVuY3Rpb24oKXt2YXIgYT15LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKG51bGw9PWsuZGVsZXRlRXhwYW5kbyl7ay5kZWxldGVFeHBhbmRvPSEwO3RyeXtkZWxldGUgYS50ZXN0fWNhdGNoKGIpe2suZGVsZXRlRXhwYW5kbz0hMX19YT1udWxsfSgpLG0uYWNjZXB0RGF0YT1mdW5jdGlvbihhKXt2YXIgYj1tLm5vRGF0YVsoYS5ub2RlTmFtZSsiICIpLnRvTG93ZXJDYXNlKCldLGM9K2Eubm9kZVR5cGV8fDE7cmV0dXJuIDEhPT1jJiY5IT09Yz8hMTohYnx8YiE9PSEwJiZhLmdldEF0dHJpYnV0ZSgiY2xhc3NpZCIpPT09Yn07dmFyIE09L14oPzpce1tcd1xXXSpcfXxcW1tcd1xXXSpcXSkkLyxOPS8oW0EtWl0pL2c7ZnVuY3Rpb24gTyhhLGIsYyl7aWYodm9pZCAwPT09YyYmMT09PWEubm9kZVR5cGUpe3ZhciBkPSJkYXRhLSIrYi5yZXBsYWNlKE4sIi0kMSIpLnRvTG93ZXJDYXNlKCk7aWYoYz1hLmdldEF0dHJpYnV0ZShkKSwic3RyaW5nIj09dHlwZW9mIGMpe3RyeXtjPSJ0cnVlIj09PWM/ITA6ImZhbHNlIj09PWM/ITE6Im51bGwiPT09Yz9udWxsOitjKyIiPT09Yz8rYzpNLnRlc3QoYyk/bS5wYXJzZUpTT04oYyk6Y31jYXRjaChlKXt9bS5kYXRhKGEsYixjKX1lbHNlIGM9dm9pZCAwfXJldHVybiBjfWZ1bmN0aW9uIFAoYSl7dmFyIGI7Zm9yKGIgaW4gYSlpZigoImRhdGEiIT09Ynx8IW0uaXNFbXB0eU9iamVjdChhW2JdKSkmJiJ0b0pTT04iIT09YilyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBRKGEsYixkLGUpe2lmKG0uYWNjZXB0RGF0YShhKSl7dmFyIGYsZyxoPW0uZXhwYW5kbyxpPWEubm9kZVR5cGUsaj1pP20uY2FjaGU6YSxrPWk/YVtoXTphW2hdJiZoOwppZihrJiZqW2tdJiYoZXx8altrXS5kYXRhKXx8dm9pZCAwIT09ZHx8InN0cmluZyIhPXR5cGVvZiBiKXJldHVybiBrfHwoaz1pP2FbaF09Yy5wb3AoKXx8bS5ndWlkKys6aCksaltrXXx8KGpba109aT97fTp7dG9KU09OOm0ubm9vcH0pLCgib2JqZWN0Ij09dHlwZW9mIGJ8fCJmdW5jdGlvbiI9PXR5cGVvZiBiKSYmKGU/altrXT1tLmV4dGVuZChqW2tdLGIpOmpba10uZGF0YT1tLmV4dGVuZChqW2tdLmRhdGEsYikpLGc9altrXSxlfHwoZy5kYXRhfHwoZy5kYXRhPXt9KSxnPWcuZGF0YSksdm9pZCAwIT09ZCYmKGdbbS5jYW1lbENhc2UoYildPWQpLCJzdHJpbmciPT10eXBlb2YgYj8oZj1nW2JdLG51bGw9PWYmJihmPWdbbS5jYW1lbENhc2UoYildKSk6Zj1nLGZ9fWZ1bmN0aW9uIFIoYSxiLGMpe2lmKG0uYWNjZXB0RGF0YShhKSl7dmFyIGQsZSxmPWEubm9kZVR5cGUsZz1mP20uY2FjaGU6YSxoPWY/YVttLmV4cGFuZG9dOm0uZXhwYW5kbztpZihnW2hdKXtpZihiJiYoZD1jP2dbaF06Z1toXS5kYXRhKSl7bS5pc0FycmF5KGIpP2I9Yi5jb25jYXQobS5tYXAoYixtLmNhbWVsQ2FzZSkpOmIgaW4gZD9iPVtiXTooYj1tLmNhbWVsQ2FzZShiKSxiPWIgaW4gZD9bYl06Yi5zcGxpdCgiICIpKSxlPWIubGVuZ3RoO3doaWxlKGUtLSlkZWxldGUgZFtiW2VdXTtpZihjPyFQKGQpOiFtLmlzRW1wdHlPYmplY3QoZCkpcmV0dXJufShjfHwoZGVsZXRlIGdbaF0uZGF0YSxQKGdbaF0pKSkmJihmP20uY2xlYW5EYXRhKFthXSwhMCk6ay5kZWxldGVFeHBhbmRvfHxnIT1nLndpbmRvdz9kZWxldGUgZ1toXTpnW2hdPW51bGwpfX19bS5leHRlbmQoe2NhY2hlOnt9LG5vRGF0YTp7ImFwcGxldCAiOiEwLCJlbWJlZCAiOiEwLCJvYmplY3QgIjoiY2xzaWQ6RDI3Q0RCNkUtQUU2RC0xMWNmLTk2QjgtNDQ0NTUzNTQwMDAwIn0saGFzRGF0YTpmdW5jdGlvbihhKXtyZXR1cm4gYT1hLm5vZGVUeXBlP20uY2FjaGVbYVttLmV4cGFuZG9dXTphW20uZXhwYW5kb10sISFhJiYhUChhKX0sZGF0YTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIFEoYSxiLGMpfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFIoYSxiKX0sX2RhdGE6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBRKGEsYixjLCEwKX0sX3JlbW92ZURhdGE6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gUihhLGIsITApfX0pLG0uZm4uZXh0ZW5kKHtkYXRhOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGY9dGhpc1swXSxnPWYmJmYuYXR0cmlidXRlcztpZih2b2lkIDA9PT1hKXtpZih0aGlzLmxlbmd0aCYmKGU9bS5kYXRhKGYpLDE9PT1mLm5vZGVUeXBlJiYhbS5fZGF0YShmLCJwYXJzZWRBdHRycyIpKSl7Yz1nLmxlbmd0aDt3aGlsZShjLS0pZ1tjXSYmKGQ9Z1tjXS5uYW1lLDA9PT1kLmluZGV4T2YoImRhdGEtIikmJihkPW0uY2FtZWxDYXNlKGQuc2xpY2UoNSkpLE8oZixkLGVbZF0pKSk7bS5fZGF0YShmLCJwYXJzZWRBdHRycyIsITApfXJldHVybiBlfXJldHVybiJvYmplY3QiPT10eXBlb2YgYT90aGlzLmVhY2goZnVuY3Rpb24oKXttLmRhdGEodGhpcyxhKX0pOmFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goZnVuY3Rpb24oKXttLmRhdGEodGhpcyxhLGIpfSk6Zj9PKGYsYSxtLmRhdGEoZixhKSk6dm9pZCAwfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXttLnJlbW92ZURhdGEodGhpcyxhKX0pfX0pLG0uZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuIGE/KGI9KGJ8fCJmeCIpKyJxdWV1ZSIsZD1tLl9kYXRhKGEsYiksYyYmKCFkfHxtLmlzQXJyYXkoYyk/ZD1tLl9kYXRhKGEsYixtLm1ha2VBcnJheShjKSk6ZC5wdXNoKGMpKSxkfHxbXSk6dm9pZCAwfSxkZXF1ZXVlOmZ1bmN0aW9uKGEsYil7Yj1ifHwiZngiO3ZhciBjPW0ucXVldWUoYSxiKSxkPWMubGVuZ3RoLGU9Yy5zaGlmdCgpLGY9bS5fcXVldWVIb29rcyhhLGIpLGc9ZnVuY3Rpb24oKXttLmRlcXVldWUoYSxiKX07ImlucHJvZ3Jlc3MiPT09ZSYmKGU9Yy5zaGlmdCgpLGQtLSksZSYmKCJmeCI9PT1iJiZjLnVuc2hpZnQoImlucHJvZ3Jlc3MiKSxkZWxldGUgZi5zdG9wLGUuY2FsbChhLGcsZikpLCFkJiZmJiZmLmVtcHR5LmZpcmUoKX0sX3F1ZXVlSG9va3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iKyJxdWV1ZUhvb2tzIjtyZXR1cm4gbS5fZGF0YShhLGMpfHxtLl9kYXRhKGEsYyx7ZW1wdHk6bS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IikuYWRkKGZ1bmN0aW9uKCl7bS5fcmVtb3ZlRGF0YShhLGIrInF1ZXVlIiksbS5fcmVtb3ZlRGF0YShhLGMpfSl9KX19KSxtLmZuLmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24oYSxiKXt2YXIgYz0yO3JldHVybiJzdHJpbmciIT10eXBlb2YgYSYmKGI9YSxhPSJmeCIsYy0tKSxhcmd1bWVudHMubGVuZ3RoPGM/bS5xdWV1ZSh0aGlzWzBdLGEpOnZvaWQgMD09PWI/dGhpczp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1tLnF1ZXVlKHRoaXMsYSxiKTttLl9xdWV1ZUhvb2tzKHRoaXMsYSksImZ4Ij09PWEmJiJpbnByb2dyZXNzIiE9PWNbMF0mJm0uZGVxdWV1ZSh0aGlzLGEpfSl9LGRlcXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe20uZGVxdWV1ZSh0aGlzLGEpfSl9LGNsZWFyUXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucXVldWUoYXx8ImZ4IixbXSl9LHByb21pc2U6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPTEsZT1tLkRlZmVycmVkKCksZj10aGlzLGc9dGhpcy5sZW5ndGgsaD1mdW5jdGlvbigpey0tZHx8ZS5yZXNvbHZlV2l0aChmLFtmXSl9OyJzdHJpbmciIT10eXBlb2YgYSYmKGI9YSxhPXZvaWQgMCksYT1hfHwiZngiO3doaWxlKGctLSljPW0uX2RhdGEoZltnXSxhKyJxdWV1ZUhvb2tzIiksYyYmYy5lbXB0eSYmKGQrKyxjLmVtcHR5LmFkZChoKSk7cmV0dXJuIGgoKSxlLnByb21pc2UoYil9fSk7dmFyIFM9L1srLV0/KD86XGQqXC58KVxkKyg/OltlRV1bKy1dP1xkK3wpLy5zb3VyY2UsVD1bIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLFU9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1ifHxhLCJub25lIj09PW0uY3NzKGEsImRpc3BsYXkiKXx8IW0uY29udGFpbnMoYS5vd25lckRvY3VtZW50LGEpfSxWPW0uYWNjZXNzPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcpe3ZhciBoPTAsaT1hLmxlbmd0aCxqPW51bGw9PWM7aWYoIm9iamVjdCI9PT1tLnR5cGUoYykpe2U9ITA7Zm9yKGggaW4gYyltLmFjY2VzcyhhLGIsaCxjW2hdLCEwLGYsZyl9ZWxzZSBpZih2b2lkIDAhPT1kJiYoZT0hMCxtLmlzRnVuY3Rpb24oZCl8fChnPSEwKSxqJiYoZz8oYi5jYWxsKGEsZCksYj1udWxsKTooaj1iLGI9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBqLmNhbGwobShhKSxjKX0pKSxiKSlmb3IoO2k+aDtoKyspYihhW2hdLGMsZz9kOmQuY2FsbChhW2hdLGgsYihhW2hdLGMpKSk7cmV0dXJuIGU/YTpqP2IuY2FsbChhKTppP2IoYVswXSxjKTpmfSxXPS9eKD86Y2hlY2tib3h8cmFkaW8pJC9pOyFmdW5jdGlvbigpe3ZhciBhPXkuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxiPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksYz15LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtpZihiLmlubmVySFRNTD0iICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2EnPmE8L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IixrLmxlYWRpbmdXaGl0ZXNwYWNlPTM9PT1iLmZpcnN0Q2hpbGQubm9kZVR5cGUsay50Ym9keT0hYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKS5sZW5ndGgsay5odG1sU2VyaWFsaXplPSEhYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpLmxlbmd0aCxrLmh0bWw1Q2xvbmU9Ijw6bmF2PjwvOm5hdj4iIT09eS5jcmVhdGVFbGVtZW50KCJuYXYiKS5jbG9uZU5vZGUoITApLm91dGVySFRNTCxhLnR5cGU9ImNoZWNrYm94IixhLmNoZWNrZWQ9ITAsYy5hcHBlbmRDaGlsZChhKSxrLmFwcGVuZENoZWNrZWQ9YS5jaGVja2VkLGIuaW5uZXJIVE1MPSI8dGV4dGFyZWE+eDwvdGV4dGFyZWE+IixrLm5vQ2xvbmVDaGVja2VkPSEhYi5jbG9uZU5vZGUoITApLmxhc3RDaGlsZC5kZWZhdWx0VmFsdWUsYy5hcHBlbmRDaGlsZChiKSxiLmlubmVySFRNTD0iPGlucHV0IHR5cGU9J3JhZGlvJyBjaGVja2VkPSdjaGVja2VkJyBuYW1lPSd0Jy8+IixrLmNoZWNrQ2xvbmU9Yi5jbG9uZU5vZGUoITApLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmNoZWNrZWQsay5ub0Nsb25lRXZlbnQ9ITAsYi5hdHRhY2hFdmVudCYmKGIuYXR0YWNoRXZlbnQoIm9uY2xpY2siLGZ1bmN0aW9uKCl7ay5ub0Nsb25lRXZlbnQ9ITF9KSxiLmNsb25lTm9kZSghMCkuY2xpY2soKSksbnVsbD09ay5kZWxldGVFeHBhbmRvKXtrLmRlbGV0ZUV4cGFuZG89ITA7dHJ5e2RlbGV0ZSBiLnRlc3R9Y2F0Y2goZCl7ay5kZWxldGVFeHBhbmRvPSExfX19KCksZnVuY3Rpb24oKXt2YXIgYixjLGQ9eS5jcmVhdGVFbGVtZW50KCJkaXYiKTtmb3IoYiBpbntzdWJtaXQ6ITAsY2hhbmdlOiEwLGZvY3VzaW46ITB9KWM9Im9uIitiLChrW2IrIkJ1YmJsZXMiXT1jIGluIGEpfHwoZC5zZXRBdHRyaWJ1dGUoYywidCIpLGtbYisiQnViYmxlcyJdPWQuYXR0cmlidXRlc1tjXS5leHBhbmRvPT09ITEpO2Q9bnVsbH0oKTt2YXIgWD0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYSkkL2ksWT0vXmtleS8sWj0vXig/Om1vdXNlfHBvaW50ZXJ8Y29udGV4dG1lbnUpfGNsaWNrLywkPS9eKD86Zm9jdXNpbmZvY3VzfGZvY3Vzb3V0Ymx1cikkLyxfPS9eKFteLl0qKSg/OlwuKC4rKXwpJC87ZnVuY3Rpb24gYWIoKXtyZXR1cm4hMH1mdW5jdGlvbiBiYigpe3JldHVybiExfWZ1bmN0aW9uIGNiKCl7dHJ5e3JldHVybiB5LmFjdGl2ZUVsZW1lbnR9Y2F0Y2goYSl7fX1tLmV2ZW50PXtnbG9iYWw6e30sYWRkOmZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGYsZyxoLGksaixrLGwsbixvLHAscSxyPW0uX2RhdGEoYSk7aWYocil7Yy5oYW5kbGVyJiYoaT1jLGM9aS5oYW5kbGVyLGU9aS5zZWxlY3RvciksYy5ndWlkfHwoYy5ndWlkPW0uZ3VpZCsrKSwoZz1yLmV2ZW50cyl8fChnPXIuZXZlbnRzPXt9KSwoaz1yLmhhbmRsZSl8fChrPXIuaGFuZGxlPWZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgbT09PUt8fGEmJm0uZXZlbnQudHJpZ2dlcmVkPT09YS50eXBlP3ZvaWQgMDptLmV2ZW50LmRpc3BhdGNoLmFwcGx5KGsuZWxlbSxhcmd1bWVudHMpfSxrLmVsZW09YSksYj0oYnx8IiIpLm1hdGNoKEUpfHxbIiJdLGg9Yi5sZW5ndGg7d2hpbGUoaC0tKWY9Xy5leGVjKGJbaF0pfHxbXSxvPXE9ZlsxXSxwPShmWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksbyYmKGo9bS5ldmVudC5zcGVjaWFsW29dfHx7fSxvPShlP2ouZGVsZWdhdGVUeXBlOmouYmluZFR5cGUpfHxvLGo9bS5ldmVudC5zcGVjaWFsW29dfHx7fSxsPW0uZXh0ZW5kKHt0eXBlOm8sb3JpZ1R5cGU6cSxkYXRhOmQsaGFuZGxlcjpjLGd1aWQ6Yy5ndWlkLHNlbGVjdG9yOmUsbmVlZHNDb250ZXh0OmUmJm0uZXhwci5tYXRjaC5uZWVkc0NvbnRleHQudGVzdChlKSxuYW1lc3BhY2U6cC5qb2luKCIuIil9LGkpLChuPWdbb10pfHwobj1nW29dPVtdLG4uZGVsZWdhdGVDb3VudD0wLGouc2V0dXAmJmouc2V0dXAuY2FsbChhLGQscCxrKSE9PSExfHwoYS5hZGRFdmVudExpc3RlbmVyP2EuYWRkRXZlbnRMaXN0ZW5lcihvLGssITEpOmEuYXR0YWNoRXZlbnQmJmEuYXR0YWNoRXZlbnQoIm9uIitvLGspKSksai5hZGQmJihqLmFkZC5jYWxsKGEsbCksbC5oYW5kbGVyLmd1aWR8fChsLmhhbmRsZXIuZ3VpZD1jLmd1aWQpKSxlP24uc3BsaWNlKG4uZGVsZWdhdGVDb3VudCsrLDAsbCk6bi5wdXNoKGwpLG0uZXZlbnQuZ2xvYmFsW29dPSEwKTthPW51bGx9fSxyZW1vdmU6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZixnLGgsaSxqLGssbCxuLG8scCxxLHI9bS5oYXNEYXRhKGEpJiZtLl9kYXRhKGEpO2lmKHImJihrPXIuZXZlbnRzKSl7Yj0oYnx8IiIpLm1hdGNoKEUpfHxbIiJdLGo9Yi5sZW5ndGg7d2hpbGUoai0tKWlmKGg9Xy5leGVjKGJbal0pfHxbXSxvPXE9aFsxXSxwPShoWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksbyl7bD1tLmV2ZW50LnNwZWNpYWxbb118fHt9LG89KGQ/bC5kZWxlZ2F0ZVR5cGU6bC5iaW5kVHlwZSl8fG8sbj1rW29dfHxbXSxoPWhbMl0mJm5ldyBSZWdFeHAoIihefFxcLikiK3Auam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIiksaT1mPW4ubGVuZ3RoO3doaWxlKGYtLSlnPW5bZl0sIWUmJnEhPT1nLm9yaWdUeXBlfHxjJiZjLmd1aWQhPT1nLmd1aWR8fGgmJiFoLnRlc3QoZy5uYW1lc3BhY2UpfHxkJiZkIT09Zy5zZWxlY3RvciYmKCIqKiIhPT1kfHwhZy5zZWxlY3Rvcil8fChuLnNwbGljZShmLDEpLGcuc2VsZWN0b3ImJm4uZGVsZWdhdGVDb3VudC0tLGwucmVtb3ZlJiZsLnJlbW92ZS5jYWxsKGEsZykpO2kmJiFuLmxlbmd0aCYmKGwudGVhcmRvd24mJmwudGVhcmRvd24uY2FsbChhLHAsci5oYW5kbGUpIT09ITF8fG0ucmVtb3ZlRXZlbnQoYSxvLHIuaGFuZGxlKSxkZWxldGUga1tvXSl9ZWxzZSBmb3IobyBpbiBrKW0uZXZlbnQucmVtb3ZlKGEsbytiW2pdLGMsZCwhMCk7bS5pc0VtcHR5T2JqZWN0KGspJiYoZGVsZXRlIHIuaGFuZGxlLG0uX3JlbW92ZURhdGEoYSwiZXZlbnRzIikpfX0sdHJpZ2dlcjpmdW5jdGlvbihiLGMsZCxlKXt2YXIgZixnLGgsaSxrLGwsbixvPVtkfHx5XSxwPWouY2FsbChiLCJ0eXBlIik/Yi50eXBlOmIscT1qLmNhbGwoYiwibmFtZXNwYWNlIik/Yi5uYW1lc3BhY2Uuc3BsaXQoIi4iKTpbXTtpZihoPWw9ZD1kfHx5LDMhPT1kLm5vZGVUeXBlJiY4IT09ZC5ub2RlVHlwZSYmISQudGVzdChwK20uZXZlbnQudHJpZ2dlcmVkKSYmKHAuaW5kZXhPZigiLiIpPj0wJiYocT1wLnNwbGl0KCIuIikscD1xLnNoaWZ0KCkscS5zb3J0KCkpLGc9cC5pbmRleE9mKCI6Iik8MCYmIm9uIitwLGI9YlttLmV4cGFuZG9dP2I6bmV3IG0uRXZlbnQocCwib2JqZWN0Ij09dHlwZW9mIGImJmIpLGIuaXNUcmlnZ2VyPWU/MjozLGIubmFtZXNwYWNlPXEuam9pbigiLiIpLGIubmFtZXNwYWNlX3JlPWIubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK3Euam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIik6bnVsbCxiLnJlc3VsdD12b2lkIDAsYi50YXJnZXR8fChiLnRhcmdldD1kKSxjPW51bGw9PWM/W2JdOm0ubWFrZUFycmF5KGMsW2JdKSxrPW0uZXZlbnQuc3BlY2lhbFtwXXx8e30sZXx8IWsudHJpZ2dlcnx8ay50cmlnZ2VyLmFwcGx5KGQsYykhPT0hMSkpe2lmKCFlJiYhay5ub0J1YmJsZSYmIW0uaXNXaW5kb3coZCkpe2ZvcihpPWsuZGVsZWdhdGVUeXBlfHxwLCQudGVzdChpK3ApfHwoaD1oLnBhcmVudE5vZGUpO2g7aD1oLnBhcmVudE5vZGUpby5wdXNoKGgpLGw9aDtsPT09KGQub3duZXJEb2N1bWVudHx8eSkmJm8ucHVzaChsLmRlZmF1bHRWaWV3fHxsLnBhcmVudFdpbmRvd3x8YSl9bj0wO3doaWxlKChoPW9bbisrXSkmJiFiLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYi50eXBlPW4+MT9pOmsuYmluZFR5cGV8fHAsZj0obS5fZGF0YShoLCJldmVudHMiKXx8e30pW2IudHlwZV0mJm0uX2RhdGEoaCwiaGFuZGxlIiksZiYmZi5hcHBseShoLGMpLGY9ZyYmaFtnXSxmJiZmLmFwcGx5JiZtLmFjY2VwdERhdGEoaCkmJihiLnJlc3VsdD1mLmFwcGx5KGgsYyksYi5yZXN1bHQ9PT0hMSYmYi5wcmV2ZW50RGVmYXVsdCgpKTtpZihiLnR5cGU9cCwhZSYmIWIuaXNEZWZhdWx0UHJldmVudGVkKCkmJighay5fZGVmYXVsdHx8ay5fZGVmYXVsdC5hcHBseShvLnBvcCgpLGMpPT09ITEpJiZtLmFjY2VwdERhdGEoZCkmJmcmJmRbcF0mJiFtLmlzV2luZG93KGQpKXtsPWRbZ10sbCYmKGRbZ109bnVsbCksbS5ldmVudC50cmlnZ2VyZWQ9cDt0cnl7ZFtwXSgpfWNhdGNoKHIpe31tLmV2ZW50LnRyaWdnZXJlZD12b2lkIDAsbCYmKGRbZ109bCl9cmV0dXJuIGIucmVzdWx0fX0sZGlzcGF0Y2g6ZnVuY3Rpb24oYSl7YT1tLmV2ZW50LmZpeChhKTt2YXIgYixjLGUsZixnLGg9W10saT1kLmNhbGwoYXJndW1lbnRzKSxqPShtLl9kYXRhKHRoaXMsImV2ZW50cyIpfHx7fSlbYS50eXBlXXx8W10saz1tLmV2ZW50LnNwZWNpYWxbYS50eXBlXXx8e307aWYoaVswXT1hLGEuZGVsZWdhdGVUYXJnZXQ9dGhpcywhay5wcmVEaXNwYXRjaHx8ay5wcmVEaXNwYXRjaC5jYWxsKHRoaXMsYSkhPT0hMSl7aD1tLmV2ZW50LmhhbmRsZXJzLmNhbGwodGhpcyxhLGopLGI9MDt3aGlsZSgoZj1oW2IrK10pJiYhYS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKXthLmN1cnJlbnRUYXJnZXQ9Zi5lbGVtLGc9MDt3aGlsZSgoZT1mLmhhbmRsZXJzW2crK10pJiYhYS5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpKSghYS5uYW1lc3BhY2VfcmV8fGEubmFtZXNwYWNlX3JlLnRlc3QoZS5uYW1lc3BhY2UpKSYmKGEuaGFuZGxlT2JqPWUsYS5kYXRhPWUuZGF0YSxjPSgobS5ldmVudC5zcGVjaWFsW2Uub3JpZ1R5cGVdfHx7fSkuaGFuZGxlfHxlLmhhbmRsZXIpLmFwcGx5KGYuZWxlbSxpKSx2b2lkIDAhPT1jJiYoYS5yZXN1bHQ9Yyk9PT0hMSYmKGEucHJldmVudERlZmF1bHQoKSxhLnN0b3BQcm9wYWdhdGlvbigpKSl9cmV0dXJuIGsucG9zdERpc3BhdGNoJiZrLnBvc3REaXNwYXRjaC5jYWxsKHRoaXMsYSksYS5yZXN1bHR9fSxoYW5kbGVyczpmdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxmLGc9W10saD1iLmRlbGVnYXRlQ291bnQsaT1hLnRhcmdldDtpZihoJiZpLm5vZGVUeXBlJiYoIWEuYnV0dG9ufHwiY2xpY2siIT09YS50eXBlKSlmb3IoO2khPXRoaXM7aT1pLnBhcmVudE5vZGV8fHRoaXMpaWYoMT09PWkubm9kZVR5cGUmJihpLmRpc2FibGVkIT09ITB8fCJjbGljayIhPT1hLnR5cGUpKXtmb3IoZT1bXSxmPTA7aD5mO2YrKylkPWJbZl0sYz1kLnNlbGVjdG9yKyIgIix2b2lkIDA9PT1lW2NdJiYoZVtjXT1kLm5lZWRzQ29udGV4dD9tKGMsdGhpcykuaW5kZXgoaSk+PTA6bS5maW5kKGMsdGhpcyxudWxsLFtpXSkubGVuZ3RoKSxlW2NdJiZlLnB1c2goZCk7ZS5sZW5ndGgmJmcucHVzaCh7ZWxlbTppLGhhbmRsZXJzOmV9KX1yZXR1cm4gaDxiLmxlbmd0aCYmZy5wdXNoKHtlbGVtOnRoaXMsaGFuZGxlcnM6Yi5zbGljZShoKX0pLGd9LGZpeDpmdW5jdGlvbihhKXtpZihhW20uZXhwYW5kb10pcmV0dXJuIGE7dmFyIGIsYyxkLGU9YS50eXBlLGY9YSxnPXRoaXMuZml4SG9va3NbZV07Z3x8KHRoaXMuZml4SG9va3NbZV09Zz1aLnRlc3QoZSk/dGhpcy5tb3VzZUhvb2tzOlkudGVzdChlKT90aGlzLmtleUhvb2tzOnt9KSxkPWcucHJvcHM/dGhpcy5wcm9wcy5jb25jYXQoZy5wcm9wcyk6dGhpcy5wcm9wcyxhPW5ldyBtLkV2ZW50KGYpLGI9ZC5sZW5ndGg7d2hpbGUoYi0tKWM9ZFtiXSxhW2NdPWZbY107cmV0dXJuIGEudGFyZ2V0fHwoYS50YXJnZXQ9Zi5zcmNFbGVtZW50fHx5KSwzPT09YS50YXJnZXQubm9kZVR5cGUmJihhLnRhcmdldD1hLnRhcmdldC5wYXJlbnROb2RlKSxhLm1ldGFLZXk9ISFhLm1ldGFLZXksZy5maWx0ZXI/Zy5maWx0ZXIoYSxmKTphfSxwcm9wczoiYWx0S2V5IGJ1YmJsZXMgY2FuY2VsYWJsZSBjdHJsS2V5IGN1cnJlbnRUYXJnZXQgZXZlbnRQaGFzZSBtZXRhS2V5IHJlbGF0ZWRUYXJnZXQgc2hpZnRLZXkgdGFyZ2V0IHRpbWVTdGFtcCB2aWV3IHdoaWNoIi5zcGxpdCgiICIpLGZpeEhvb2tzOnt9LGtleUhvb2tzOntwcm9wczoiY2hhciBjaGFyQ29kZSBrZXkga2V5Q29kZSIuc3BsaXQoIiAiKSxmaWx0ZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbnVsbD09YS53aGljaCYmKGEud2hpY2g9bnVsbCE9Yi5jaGFyQ29kZT9iLmNoYXJDb2RlOmIua2V5Q29kZSksYX19LG1vdXNlSG9va3M6e3Byb3BzOiJidXR0b24gYnV0dG9ucyBjbGllbnRYIGNsaWVudFkgZnJvbUVsZW1lbnQgb2Zmc2V0WCBvZmZzZXRZIHBhZ2VYIHBhZ2VZIHNjcmVlblggc2NyZWVuWSB0b0VsZW1lbnQiLnNwbGl0KCIgIiksZmlsdGVyOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGY9Yi5idXR0b24sZz1iLmZyb21FbGVtZW50O3JldHVybiBudWxsPT1hLnBhZ2VYJiZudWxsIT1iLmNsaWVudFgmJihkPWEudGFyZ2V0Lm93bmVyRG9jdW1lbnR8fHksZT1kLmRvY3VtZW50RWxlbWVudCxjPWQuYm9keSxhLnBhZ2VYPWIuY2xpZW50WCsoZSYmZS5zY3JvbGxMZWZ0fHxjJiZjLnNjcm9sbExlZnR8fDApLShlJiZlLmNsaWVudExlZnR8fGMmJmMuY2xpZW50TGVmdHx8MCksYS5wYWdlWT1iLmNsaWVudFkrKGUmJmUuc2Nyb2xsVG9wfHxjJiZjLnNjcm9sbFRvcHx8MCktKGUmJmUuY2xpZW50VG9wfHxjJiZjLmNsaWVudFRvcHx8MCkpLCFhLnJlbGF0ZWRUYXJnZXQmJmcmJihhLnJlbGF0ZWRUYXJnZXQ9Zz09PWEudGFyZ2V0P2IudG9FbGVtZW50OmcpLGEud2hpY2h8fHZvaWQgMD09PWZ8fChhLndoaWNoPTEmZj8xOjImZj8zOjQmZj8yOjApLGF9fSxzcGVjaWFsOntsb2FkOntub0J1YmJsZTohMH0sZm9jdXM6e3RyaWdnZXI6ZnVuY3Rpb24oKXtpZih0aGlzIT09Y2IoKSYmdGhpcy5mb2N1cyl0cnl7cmV0dXJuIHRoaXMuZm9jdXMoKSwhMX1jYXRjaChhKXt9fSxkZWxlZ2F0ZVR5cGU6ImZvY3VzaW4ifSxibHVyOnt0cmlnZ2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXM9PT1jYigpJiZ0aGlzLmJsdXI/KHRoaXMuYmx1cigpLCExKTp2b2lkIDB9LGRlbGVnYXRlVHlwZToiZm9jdXNvdXQifSxjbGljazp7dHJpZ2dlcjpmdW5jdGlvbigpe3JldHVybiBtLm5vZGVOYW1lKHRoaXMsImlucHV0IikmJiJjaGVja2JveCI9PT10aGlzLnR5cGUmJnRoaXMuY2xpY2s/KHRoaXMuY2xpY2soKSwhMSk6dm9pZCAwfSxfZGVmYXVsdDpmdW5jdGlvbihhKXtyZXR1cm4gbS5ub2RlTmFtZShhLnRhcmdldCwiYSIpfX0sYmVmb3JldW5sb2FkOntwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oYSl7dm9pZCAwIT09YS5yZXN1bHQmJmEub3JpZ2luYWxFdmVudCYmKGEub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZT1hLnJlc3VsdCl9fX0sc2ltdWxhdGU6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9bS5leHRlbmQobmV3IG0uRXZlbnQsYyx7dHlwZTphLGlzU2ltdWxhdGVkOiEwLG9yaWdpbmFsRXZlbnQ6e319KTtkP20uZXZlbnQudHJpZ2dlcihlLG51bGwsYik6bS5ldmVudC5kaXNwYXRjaC5jYWxsKGIsZSksZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmYy5wcmV2ZW50RGVmYXVsdCgpfX0sbS5yZW1vdmVFdmVudD15LnJlbW92ZUV2ZW50TGlzdGVuZXI/ZnVuY3Rpb24oYSxiLGMpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lciYmYS5yZW1vdmVFdmVudExpc3RlbmVyKGIsYywhMSl9OmZ1bmN0aW9uKGEsYixjKXt2YXIgZD0ib24iK2I7YS5kZXRhY2hFdmVudCYmKHR5cGVvZiBhW2RdPT09SyYmKGFbZF09bnVsbCksYS5kZXRhY2hFdmVudChkLGMpKX0sbS5FdmVudD1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgbS5FdmVudD8oYSYmYS50eXBlPyh0aGlzLm9yaWdpbmFsRXZlbnQ9YSx0aGlzLnR5cGU9YS50eXBlLHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPWEuZGVmYXVsdFByZXZlbnRlZHx8dm9pZCAwPT09YS5kZWZhdWx0UHJldmVudGVkJiZhLnJldHVyblZhbHVlPT09ITE/YWI6YmIpOnRoaXMudHlwZT1hLGImJm0uZXh0ZW5kKHRoaXMsYiksdGhpcy50aW1lU3RhbXA9YSYmYS50aW1lU3RhbXB8fG0ubm93KCksdm9pZCh0aGlzW20uZXhwYW5kb109ITApKTpuZXcgbS5FdmVudChhLGIpfSxtLkV2ZW50LnByb3RvdHlwZT17aXNEZWZhdWx0UHJldmVudGVkOmJiLGlzUHJvcGFnYXRpb25TdG9wcGVkOmJiLGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOmJiLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPWFiLGEmJihhLnByZXZlbnREZWZhdWx0P2EucHJldmVudERlZmF1bHQoKTphLnJldHVyblZhbHVlPSExKX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9YWIsYSYmKGEuc3RvcFByb3BhZ2F0aW9uJiZhLnN0b3BQcm9wYWdhdGlvbigpLGEuY2FuY2VsQnViYmxlPSEwKX0sc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ9YWIsYSYmYS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24mJmEuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksdGhpcy5zdG9wUHJvcGFnYXRpb24oKX19LG0uZWFjaCh7bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCIscG9pbnRlcmVudGVyOiJwb2ludGVyb3ZlciIscG9pbnRlcmxlYXZlOiJwb2ludGVyb3V0In0sZnVuY3Rpb24oYSxiKXttLmV2ZW50LnNwZWNpYWxbYV09e2RlbGVnYXRlVHlwZTpiLGJpbmRUeXBlOmIsaGFuZGxlOmZ1bmN0aW9uKGEpe3ZhciBjLGQ9dGhpcyxlPWEucmVsYXRlZFRhcmdldCxmPWEuaGFuZGxlT2JqO3JldHVybighZXx8ZSE9PWQmJiFtLmNvbnRhaW5zKGQsZSkpJiYoYS50eXBlPWYub3JpZ1R5cGUsYz1mLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLGEudHlwZT1iKSxjfX19KSxrLnN1Ym1pdEJ1YmJsZXN8fChtLmV2ZW50LnNwZWNpYWwuc3VibWl0PXtzZXR1cDpmdW5jdGlvbigpe3JldHVybiBtLm5vZGVOYW1lKHRoaXMsImZvcm0iKT8hMTp2b2lkIG0uZXZlbnQuYWRkKHRoaXMsImNsaWNrLl9zdWJtaXQga2V5cHJlc3MuX3N1Ym1pdCIsZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQsYz1tLm5vZGVOYW1lKGIsImlucHV0Iil8fG0ubm9kZU5hbWUoYiwiYnV0dG9uIik/Yi5mb3JtOnZvaWQgMDtjJiYhbS5fZGF0YShjLCJzdWJtaXRCdWJibGVzIikmJihtLmV2ZW50LmFkZChjLCJzdWJtaXQuX3N1Ym1pdCIsZnVuY3Rpb24oYSl7YS5fc3VibWl0X2J1YmJsZT0hMH0pLG0uX2RhdGEoYywic3VibWl0QnViYmxlcyIsITApKX0pfSxwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oYSl7YS5fc3VibWl0X2J1YmJsZSYmKGRlbGV0ZSBhLl9zdWJtaXRfYnViYmxlLHRoaXMucGFyZW50Tm9kZSYmIWEuaXNUcmlnZ2VyJiZtLmV2ZW50LnNpbXVsYXRlKCJzdWJtaXQiLHRoaXMucGFyZW50Tm9kZSxhLCEwKSl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7cmV0dXJuIG0ubm9kZU5hbWUodGhpcywiZm9ybSIpPyExOnZvaWQgbS5ldmVudC5yZW1vdmUodGhpcywiLl9zdWJtaXQiKX19KSxrLmNoYW5nZUJ1YmJsZXN8fChtLmV2ZW50LnNwZWNpYWwuY2hhbmdlPXtzZXR1cDpmdW5jdGlvbigpe3JldHVybiBYLnRlc3QodGhpcy5ub2RlTmFtZSk/KCgiY2hlY2tib3giPT09dGhpcy50eXBlfHwicmFkaW8iPT09dGhpcy50eXBlKSYmKG0uZXZlbnQuYWRkKHRoaXMsInByb3BlcnR5Y2hhbmdlLl9jaGFuZ2UiLGZ1bmN0aW9uKGEpeyJjaGVja2VkIj09PWEub3JpZ2luYWxFdmVudC5wcm9wZXJ0eU5hbWUmJih0aGlzLl9qdXN0X2NoYW5nZWQ9ITApfSksbS5ldmVudC5hZGQodGhpcywiY2xpY2suX2NoYW5nZSIsZnVuY3Rpb24oYSl7dGhpcy5fanVzdF9jaGFuZ2VkJiYhYS5pc1RyaWdnZXImJih0aGlzLl9qdXN0X2NoYW5nZWQ9ITEpLG0uZXZlbnQuc2ltdWxhdGUoImNoYW5nZSIsdGhpcyxhLCEwKX0pKSwhMSk6dm9pZCBtLmV2ZW50LmFkZCh0aGlzLCJiZWZvcmVhY3RpdmF0ZS5fY2hhbmdlIixmdW5jdGlvbihhKXt2YXIgYj1hLnRhcmdldDtYLnRlc3QoYi5ub2RlTmFtZSkmJiFtLl9kYXRhKGIsImNoYW5nZUJ1YmJsZXMiKSYmKG0uZXZlbnQuYWRkKGIsImNoYW5nZS5fY2hhbmdlIixmdW5jdGlvbihhKXshdGhpcy5wYXJlbnROb2RlfHxhLmlzU2ltdWxhdGVkfHxhLmlzVHJpZ2dlcnx8bS5ldmVudC5zaW11bGF0ZSgiY2hhbmdlIix0aGlzLnBhcmVudE5vZGUsYSwhMCl9KSxtLl9kYXRhKGIsImNoYW5nZUJ1YmJsZXMiLCEwKSl9KX0saGFuZGxlOmZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0O3JldHVybiB0aGlzIT09Ynx8YS5pc1NpbXVsYXRlZHx8YS5pc1RyaWdnZXJ8fCJyYWRpbyIhPT1iLnR5cGUmJiJjaGVja2JveCIhPT1iLnR5cGU/YS5oYW5kbGVPYmouaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dm9pZCAwfSx0ZWFyZG93bjpmdW5jdGlvbigpe3JldHVybiBtLmV2ZW50LnJlbW92ZSh0aGlzLCIuX2NoYW5nZSIpLCFYLnRlc3QodGhpcy5ub2RlTmFtZSl9fSksay5mb2N1c2luQnViYmxlc3x8bS5lYWNoKHtmb2N1czoiZm9jdXNpbiIsYmx1cjoiZm9jdXNvdXQifSxmdW5jdGlvbihhLGIpe3ZhciBjPWZ1bmN0aW9uKGEpe20uZXZlbnQuc2ltdWxhdGUoYixhLnRhcmdldCxtLmV2ZW50LmZpeChhKSwhMCl9O20uZXZlbnQuc3BlY2lhbFtiXT17c2V0dXA6ZnVuY3Rpb24oKXt2YXIgZD10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMsZT1tLl9kYXRhKGQsYik7ZXx8ZC5hZGRFdmVudExpc3RlbmVyKGEsYywhMCksbS5fZGF0YShkLGIsKGV8fDApKzEpfSx0ZWFyZG93bjpmdW5jdGlvbigpe3ZhciBkPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcyxlPW0uX2RhdGEoZCxiKS0xO2U/bS5fZGF0YShkLGIsZSk6KGQucmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGMsITApLG0uX3JlbW92ZURhdGEoZCxiKSl9fX0pLG0uZm4uZXh0ZW5kKHtvbjpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmLGc7aWYoIm9iamVjdCI9PXR5cGVvZiBhKXsic3RyaW5nIiE9dHlwZW9mIGImJihjPWN8fGIsYj12b2lkIDApO2ZvcihmIGluIGEpdGhpcy5vbihmLGIsYyxhW2ZdLGUpO3JldHVybiB0aGlzfWlmKG51bGw9PWMmJm51bGw9PWQ/KGQ9YixjPWI9dm9pZCAwKTpudWxsPT1kJiYoInN0cmluZyI9PXR5cGVvZiBiPyhkPWMsYz12b2lkIDApOihkPWMsYz1iLGI9dm9pZCAwKSksZD09PSExKWQ9YmI7ZWxzZSBpZighZClyZXR1cm4gdGhpcztyZXR1cm4gMT09PWUmJihnPWQsZD1mdW5jdGlvbihhKXtyZXR1cm4gbSgpLm9mZihhKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sZC5ndWlkPWcuZ3VpZHx8KGcuZ3VpZD1tLmd1aWQrKykpLHRoaXMuZWFjaChmdW5jdGlvbigpe20uZXZlbnQuYWRkKHRoaXMsYSxkLGMsYil9KX0sb25lOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLm9uKGEsYixjLGQsMSl9LG9mZjpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZTtpZihhJiZhLnByZXZlbnREZWZhdWx0JiZhLmhhbmRsZU9iailyZXR1cm4gZD1hLmhhbmRsZU9iaixtKGEuZGVsZWdhdGVUYXJnZXQpLm9mZihkLm5hbWVzcGFjZT9kLm9yaWdUeXBlKyIuIitkLm5hbWVzcGFjZTpkLm9yaWdUeXBlLGQuc2VsZWN0b3IsZC5oYW5kbGVyKSx0aGlzO2lmKCJvYmplY3QiPT10eXBlb2YgYSl7Zm9yKGUgaW4gYSl0aGlzLm9mZihlLGIsYVtlXSk7cmV0dXJuIHRoaXN9cmV0dXJuKGI9PT0hMXx8ImZ1bmN0aW9uIj09dHlwZW9mIGIpJiYoYz1iLGI9dm9pZCAwKSxjPT09ITEmJihjPWJiKSx0aGlzLmVhY2goZnVuY3Rpb24oKXttLmV2ZW50LnJlbW92ZSh0aGlzLGEsYyxiKX0pfSx0cmlnZ2VyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe20uZXZlbnQudHJpZ2dlcihhLGIsdGhpcyl9KX0sdHJpZ2dlckhhbmRsZXI6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzWzBdO3JldHVybiBjP20uZXZlbnQudHJpZ2dlcihhLGIsYywhMCk6dm9pZCAwfX0pO2Z1bmN0aW9uIGRiKGEpe3ZhciBiPWViLnNwbGl0KCJ8IiksYz1hLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtpZihjLmNyZWF0ZUVsZW1lbnQpd2hpbGUoYi5sZW5ndGgpYy5jcmVhdGVFbGVtZW50KGIucG9wKCkpO3JldHVybiBjfXZhciBlYj0iYWJicnxhcnRpY2xlfGFzaWRlfGF1ZGlvfGJkaXxjYW52YXN8ZGF0YXxkYXRhbGlzdHxkZXRhaWxzfGZpZ2NhcHRpb258ZmlndXJlfGZvb3RlcnxoZWFkZXJ8aGdyb3VwfG1hcmt8bWV0ZXJ8bmF2fG91dHB1dHxwcm9ncmVzc3xzZWN0aW9ufHN1bW1hcnl8dGltZXx2aWRlbyIsZmI9LyBqUXVlcnlcZCs9Iig/Om51bGx8XGQrKSIvZyxnYj1uZXcgUmVnRXhwKCI8KD86IitlYisiKVtcXHMvPl0iLCJpIiksaGI9L15ccysvLGliPS88KD8hYXJlYXxicnxjb2x8ZW1iZWR8aHJ8aW1nfGlucHV0fGxpbmt8bWV0YXxwYXJhbSkoKFtcdzpdKylbXj5dKilcLz4vZ2ksamI9LzwoW1x3Ol0rKS8sa2I9Lzx0Ym9keS9pLGxiPS88fCYjP1x3KzsvLG1iPS88KD86c2NyaXB0fHN0eWxlfGxpbmspL2ksbmI9L2NoZWNrZWRccyooPzpbXj1dfD1ccyouY2hlY2tlZC4pL2ksb2I9L14kfFwvKD86amF2YXxlY21hKXNjcmlwdC9pLHBiPS9edHJ1ZVwvKC4qKS8scWI9L15ccyo8ISg/OlxbQ0RBVEFcW3wtLSl8KD86XF1cXXwtLSk+XHMqJC9nLHJiPXtvcHRpb246WzEsIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz4iLCI8L3NlbGVjdD4iXSxsZWdlbmQ6WzEsIjxmaWVsZHNldD4iLCI8L2ZpZWxkc2V0PiJdLGFyZWE6WzEsIjxtYXA+IiwiPC9tYXA+Il0scGFyYW06WzEsIjxvYmplY3Q+IiwiPC9vYmplY3Q+Il0sdGhlYWQ6WzEsIjx0YWJsZT4iLCI8L3RhYmxlPiJdLHRyOlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXSxjb2w6WzIsIjx0YWJsZT48dGJvZHk+PC90Ym9keT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdLHRkOlszLCI8dGFibGU+PHRib2R5Pjx0cj4iLCI8L3RyPjwvdGJvZHk+PC90YWJsZT4iXSxfZGVmYXVsdDprLmh0bWxTZXJpYWxpemU/WzAsIiIsIiJdOlsxLCJYPGRpdj4iLCI8L2Rpdj4iXX0sc2I9ZGIoeSksdGI9c2IuYXBwZW5kQ2hpbGQoeS5jcmVhdGVFbGVtZW50KCJkaXYiKSk7cmIub3B0Z3JvdXA9cmIub3B0aW9uLHJiLnRib2R5PXJiLnRmb290PXJiLmNvbGdyb3VwPXJiLmNhcHRpb249cmIudGhlYWQscmIudGg9cmIudGQ7ZnVuY3Rpb24gdWIoYSxiKXt2YXIgYyxkLGU9MCxmPXR5cGVvZiBhLmdldEVsZW1lbnRzQnlUYWdOYW1lIT09Sz9hLmdldEVsZW1lbnRzQnlUYWdOYW1lKGJ8fCIqIik6dHlwZW9mIGEucXVlcnlTZWxlY3RvckFsbCE9PUs/YS5xdWVyeVNlbGVjdG9yQWxsKGJ8fCIqIik6dm9pZCAwO2lmKCFmKWZvcihmPVtdLGM9YS5jaGlsZE5vZGVzfHxhO251bGwhPShkPWNbZV0pO2UrKykhYnx8bS5ub2RlTmFtZShkLGIpP2YucHVzaChkKTptLm1lcmdlKGYsdWIoZCxiKSk7cmV0dXJuIHZvaWQgMD09PWJ8fGImJm0ubm9kZU5hbWUoYSxiKT9tLm1lcmdlKFthXSxmKTpmfWZ1bmN0aW9uIHZiKGEpe1cudGVzdChhLnR5cGUpJiYoYS5kZWZhdWx0Q2hlY2tlZD1hLmNoZWNrZWQpfWZ1bmN0aW9uIHdiKGEsYil7cmV0dXJuIG0ubm9kZU5hbWUoYSwidGFibGUiKSYmbS5ub2RlTmFtZSgxMSE9PWIubm9kZVR5cGU/YjpiLmZpcnN0Q2hpbGQsInRyIik/YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKVswXXx8YS5hcHBlbmRDaGlsZChhLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGJvZHkiKSk6YX1mdW5jdGlvbiB4YihhKXtyZXR1cm4gYS50eXBlPShudWxsIT09bS5maW5kLmF0dHIoYSwidHlwZSIpKSsiLyIrYS50eXBlLGF9ZnVuY3Rpb24geWIoYSl7dmFyIGI9cGIuZXhlYyhhLnR5cGUpO3JldHVybiBiP2EudHlwZT1iWzFdOmEucmVtb3ZlQXR0cmlidXRlKCJ0eXBlIiksYX1mdW5jdGlvbiB6YihhLGIpe2Zvcih2YXIgYyxkPTA7bnVsbCE9KGM9YVtkXSk7ZCsrKW0uX2RhdGEoYywiZ2xvYmFsRXZhbCIsIWJ8fG0uX2RhdGEoYltkXSwiZ2xvYmFsRXZhbCIpKX1mdW5jdGlvbiBBYihhLGIpe2lmKDE9PT1iLm5vZGVUeXBlJiZtLmhhc0RhdGEoYSkpe3ZhciBjLGQsZSxmPW0uX2RhdGEoYSksZz1tLl9kYXRhKGIsZiksaD1mLmV2ZW50cztpZihoKXtkZWxldGUgZy5oYW5kbGUsZy5ldmVudHM9e307Zm9yKGMgaW4gaClmb3IoZD0wLGU9aFtjXS5sZW5ndGg7ZT5kO2QrKyltLmV2ZW50LmFkZChiLGMsaFtjXVtkXSl9Zy5kYXRhJiYoZy5kYXRhPW0uZXh0ZW5kKHt9LGcuZGF0YSkpfX1mdW5jdGlvbiBCYihhLGIpe3ZhciBjLGQsZTtpZigxPT09Yi5ub2RlVHlwZSl7aWYoYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksIWsubm9DbG9uZUV2ZW50JiZiW20uZXhwYW5kb10pe2U9bS5fZGF0YShiKTtmb3IoZCBpbiBlLmV2ZW50cyltLnJlbW92ZUV2ZW50KGIsZCxlLmhhbmRsZSk7Yi5yZW1vdmVBdHRyaWJ1dGUobS5leHBhbmRvKX0ic2NyaXB0Ij09PWMmJmIudGV4dCE9PWEudGV4dD8oeGIoYikudGV4dD1hLnRleHQseWIoYikpOiJvYmplY3QiPT09Yz8oYi5wYXJlbnROb2RlJiYoYi5vdXRlckhUTUw9YS5vdXRlckhUTUwpLGsuaHRtbDVDbG9uZSYmYS5pbm5lckhUTUwmJiFtLnRyaW0oYi5pbm5lckhUTUwpJiYoYi5pbm5lckhUTUw9YS5pbm5lckhUTUwpKToiaW5wdXQiPT09YyYmVy50ZXN0KGEudHlwZSk/KGIuZGVmYXVsdENoZWNrZWQ9Yi5jaGVja2VkPWEuY2hlY2tlZCxiLnZhbHVlIT09YS52YWx1ZSYmKGIudmFsdWU9YS52YWx1ZSkpOiJvcHRpb24iPT09Yz9iLmRlZmF1bHRTZWxlY3RlZD1iLnNlbGVjdGVkPWEuZGVmYXVsdFNlbGVjdGVkOigiaW5wdXQiPT09Y3x8InRleHRhcmVhIj09PWMpJiYoYi5kZWZhdWx0VmFsdWU9YS5kZWZhdWx0VmFsdWUpfX1tLmV4dGVuZCh7Y2xvbmU6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnLGgsaT1tLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKTtpZihrLmh0bWw1Q2xvbmV8fG0uaXNYTUxEb2MoYSl8fCFnYi50ZXN0KCI8IithLm5vZGVOYW1lKyI+Iik/Zj1hLmNsb25lTm9kZSghMCk6KHRiLmlubmVySFRNTD1hLm91dGVySFRNTCx0Yi5yZW1vdmVDaGlsZChmPXRiLmZpcnN0Q2hpbGQpKSwhKGsubm9DbG9uZUV2ZW50JiZrLm5vQ2xvbmVDaGVja2VkfHwxIT09YS5ub2RlVHlwZSYmMTEhPT1hLm5vZGVUeXBlfHxtLmlzWE1MRG9jKGEpKSlmb3IoZD11YihmKSxoPXViKGEpLGc9MDtudWxsIT0oZT1oW2ddKTsrK2cpZFtnXSYmQmIoZSxkW2ddKTtpZihiKWlmKGMpZm9yKGg9aHx8dWIoYSksZD1kfHx1YihmKSxnPTA7bnVsbCE9KGU9aFtnXSk7ZysrKUFiKGUsZFtnXSk7ZWxzZSBBYihhLGYpO3JldHVybiBkPXViKGYsInNjcmlwdCIpLGQubGVuZ3RoPjAmJnpiKGQsIWkmJnViKGEsInNjcmlwdCIpKSxkPWg9ZT1udWxsLGZ9LGJ1aWxkRnJhZ21lbnQ6ZnVuY3Rpb24oYSxiLGMsZCl7Zm9yKHZhciBlLGYsZyxoLGksaixsLG49YS5sZW5ndGgsbz1kYihiKSxwPVtdLHE9MDtuPnE7cSsrKWlmKGY9YVtxXSxmfHwwPT09ZilpZigib2JqZWN0Ij09PW0udHlwZShmKSltLm1lcmdlKHAsZi5ub2RlVHlwZT9bZl06Zik7ZWxzZSBpZihsYi50ZXN0KGYpKXtoPWh8fG8uYXBwZW5kQ2hpbGQoYi5jcmVhdGVFbGVtZW50KCJkaXYiKSksaT0oamIuZXhlYyhmKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKSxsPXJiW2ldfHxyYi5fZGVmYXVsdCxoLmlubmVySFRNTD1sWzFdK2YucmVwbGFjZShpYiwiPCQxPjwvJDI+IikrbFsyXSxlPWxbMF07d2hpbGUoZS0tKWg9aC5sYXN0Q2hpbGQ7aWYoIWsubGVhZGluZ1doaXRlc3BhY2UmJmhiLnRlc3QoZikmJnAucHVzaChiLmNyZWF0ZVRleHROb2RlKGhiLmV4ZWMoZilbMF0pKSwhay50Ym9keSl7Zj0idGFibGUiIT09aXx8a2IudGVzdChmKT8iPHRhYmxlPiIhPT1sWzFdfHxrYi50ZXN0KGYpPzA6aDpoLmZpcnN0Q2hpbGQsZT1mJiZmLmNoaWxkTm9kZXMubGVuZ3RoO3doaWxlKGUtLSltLm5vZGVOYW1lKGo9Zi5jaGlsZE5vZGVzW2VdLCJ0Ym9keSIpJiYhai5jaGlsZE5vZGVzLmxlbmd0aCYmZi5yZW1vdmVDaGlsZChqKX1tLm1lcmdlKHAsaC5jaGlsZE5vZGVzKSxoLnRleHRDb250ZW50PSIiO3doaWxlKGguZmlyc3RDaGlsZCloLnJlbW92ZUNoaWxkKGguZmlyc3RDaGlsZCk7aD1vLmxhc3RDaGlsZH1lbHNlIHAucHVzaChiLmNyZWF0ZVRleHROb2RlKGYpKTtoJiZvLnJlbW92ZUNoaWxkKGgpLGsuYXBwZW5kQ2hlY2tlZHx8bS5ncmVwKHViKHAsImlucHV0IiksdmIpLHE9MDt3aGlsZShmPXBbcSsrXSlpZigoIWR8fC0xPT09bS5pbkFycmF5KGYsZCkpJiYoZz1tLmNvbnRhaW5zKGYub3duZXJEb2N1bWVudCxmKSxoPXViKG8uYXBwZW5kQ2hpbGQoZiksInNjcmlwdCIpLGcmJnpiKGgpLGMpKXtlPTA7d2hpbGUoZj1oW2UrK10pb2IudGVzdChmLnR5cGV8fCIiKSYmYy5wdXNoKGYpfXJldHVybiBoPW51bGwsb30sY2xlYW5EYXRhOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBkLGUsZixnLGg9MCxpPW0uZXhwYW5kbyxqPW0uY2FjaGUsbD1rLmRlbGV0ZUV4cGFuZG8sbj1tLmV2ZW50LnNwZWNpYWw7bnVsbCE9KGQ9YVtoXSk7aCsrKWlmKChifHxtLmFjY2VwdERhdGEoZCkpJiYoZj1kW2ldLGc9ZiYmaltmXSkpe2lmKGcuZXZlbnRzKWZvcihlIGluIGcuZXZlbnRzKW5bZV0/bS5ldmVudC5yZW1vdmUoZCxlKTptLnJlbW92ZUV2ZW50KGQsZSxnLmhhbmRsZSk7altmXSYmKGRlbGV0ZSBqW2ZdLGw/ZGVsZXRlIGRbaV06dHlwZW9mIGQucmVtb3ZlQXR0cmlidXRlIT09Sz9kLnJlbW92ZUF0dHJpYnV0ZShpKTpkW2ldPW51bGwsYy5wdXNoKGYpKX19fSksbS5mbi5leHRlbmQoe3RleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIFYodGhpcyxmdW5jdGlvbihhKXtyZXR1cm4gdm9pZCAwPT09YT9tLnRleHQodGhpcyk6dGhpcy5lbXB0eSgpLmFwcGVuZCgodGhpc1swXSYmdGhpc1swXS5vd25lckRvY3VtZW50fHx5KS5jcmVhdGVUZXh0Tm9kZShhKSl9LG51bGwsYSxhcmd1bWVudHMubGVuZ3RoKX0sYXBwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLGZ1bmN0aW9uKGEpe2lmKDE9PT10aGlzLm5vZGVUeXBlfHwxMT09PXRoaXMubm9kZVR5cGV8fDk9PT10aGlzLm5vZGVUeXBlKXt2YXIgYj13Yih0aGlzLGEpO2IuYXBwZW5kQ2hpbGQoYSl9fSl9LHByZXBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oYSl7aWYoMT09PXRoaXMubm9kZVR5cGV8fDExPT09dGhpcy5ub2RlVHlwZXx8OT09PXRoaXMubm9kZVR5cGUpe3ZhciBiPXdiKHRoaXMsYSk7Yi5pbnNlcnRCZWZvcmUoYSxiLmZpcnN0Q2hpbGQpfX0pfSxiZWZvcmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsdGhpcyl9KX0sYWZ0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsdGhpcy5uZXh0U2libGluZyl9KX0scmVtb3ZlOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjLGQ9YT9tLmZpbHRlcihhLHRoaXMpOnRoaXMsZT0wO251bGwhPShjPWRbZV0pO2UrKylifHwxIT09Yy5ub2RlVHlwZXx8bS5jbGVhbkRhdGEodWIoYykpLGMucGFyZW50Tm9kZSYmKGImJm0uY29udGFpbnMoYy5vd25lckRvY3VtZW50LGMpJiZ6Yih1YihjLCJzY3JpcHQiKSksYy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGMpKTtyZXR1cm4gdGhpc30sZW1wdHk6ZnVuY3Rpb24oKXtmb3IodmFyIGEsYj0wO251bGwhPShhPXRoaXNbYl0pO2IrKyl7MT09PWEubm9kZVR5cGUmJm0uY2xlYW5EYXRhKHViKGEsITEpKTt3aGlsZShhLmZpcnN0Q2hpbGQpYS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpO2Eub3B0aW9ucyYmbS5ub2RlTmFtZShhLCJzZWxlY3QiKSYmKGEub3B0aW9ucy5sZW5ndGg9MCl9cmV0dXJuIHRoaXN9LGNsb25lOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9bnVsbD09YT8hMTphLGI9bnVsbD09Yj9hOmIsdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gbS5jbG9uZSh0aGlzLGEsYil9KX0saHRtbDpmdW5jdGlvbihhKXtyZXR1cm4gVih0aGlzLGZ1bmN0aW9uKGEpe3ZhciBiPXRoaXNbMF18fHt9LGM9MCxkPXRoaXMubGVuZ3RoO2lmKHZvaWQgMD09PWEpcmV0dXJuIDE9PT1iLm5vZGVUeXBlP2IuaW5uZXJIVE1MLnJlcGxhY2UoZmIsIiIpOnZvaWQgMDtpZighKCJzdHJpbmciIT10eXBlb2YgYXx8bWIudGVzdChhKXx8IWsuaHRtbFNlcmlhbGl6ZSYmZ2IudGVzdChhKXx8IWsubGVhZGluZ1doaXRlc3BhY2UmJmhiLnRlc3QoYSl8fHJiWyhqYi5leGVjKGEpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpXSkpe2E9YS5yZXBsYWNlKGliLCI8JDE+PC8kMj4iKTt0cnl7Zm9yKDtkPmM7YysrKWI9dGhpc1tjXXx8e30sMT09PWIubm9kZVR5cGUmJihtLmNsZWFuRGF0YSh1YihiLCExKSksYi5pbm5lckhUTUw9YSk7Yj0wfWNhdGNoKGUpe319YiYmdGhpcy5lbXB0eSgpLmFwcGVuZChhKX0sbnVsbCxhLGFyZ3VtZW50cy5sZW5ndGgpfSxyZXBsYWNlV2l0aDpmdW5jdGlvbigpe3ZhciBhPWFyZ3VtZW50c1swXTtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oYil7YT10aGlzLnBhcmVudE5vZGUsbS5jbGVhbkRhdGEodWIodGhpcykpLGEmJmEucmVwbGFjZUNoaWxkKGIsdGhpcyl9KSxhJiYoYS5sZW5ndGh8fGEubm9kZVR5cGUpP3RoaXM6dGhpcy5yZW1vdmUoKX0sZGV0YWNoOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnJlbW92ZShhLCEwKX0sZG9tTWFuaXA6ZnVuY3Rpb24oYSxiKXthPWUuYXBwbHkoW10sYSk7dmFyIGMsZCxmLGcsaCxpLGo9MCxsPXRoaXMubGVuZ3RoLG49dGhpcyxvPWwtMSxwPWFbMF0scT1tLmlzRnVuY3Rpb24ocCk7aWYocXx8bD4xJiYic3RyaW5nIj09dHlwZW9mIHAmJiFrLmNoZWNrQ2xvbmUmJm5iLnRlc3QocCkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihjKXt2YXIgZD1uLmVxKGMpO3EmJihhWzBdPXAuY2FsbCh0aGlzLGMsZC5odG1sKCkpKSxkLmRvbU1hbmlwKGEsYil9KTtpZihsJiYoaT1tLmJ1aWxkRnJhZ21lbnQoYSx0aGlzWzBdLm93bmVyRG9jdW1lbnQsITEsdGhpcyksYz1pLmZpcnN0Q2hpbGQsMT09PWkuY2hpbGROb2Rlcy5sZW5ndGgmJihpPWMpLGMpKXtmb3IoZz1tLm1hcCh1YihpLCJzY3JpcHQiKSx4YiksZj1nLmxlbmd0aDtsPmo7aisrKWQ9aSxqIT09byYmKGQ9bS5jbG9uZShkLCEwLCEwKSxmJiZtLm1lcmdlKGcsdWIoZCwic2NyaXB0IikpKSxiLmNhbGwodGhpc1tqXSxkLGopO2lmKGYpZm9yKGg9Z1tnLmxlbmd0aC0xXS5vd25lckRvY3VtZW50LG0ubWFwKGcseWIpLGo9MDtmPmo7aisrKWQ9Z1tqXSxvYi50ZXN0KGQudHlwZXx8IiIpJiYhbS5fZGF0YShkLCJnbG9iYWxFdmFsIikmJm0uY29udGFpbnMoaCxkKSYmKGQuc3JjP20uX2V2YWxVcmwmJm0uX2V2YWxVcmwoZC5zcmMpOm0uZ2xvYmFsRXZhbCgoZC50ZXh0fHxkLnRleHRDb250ZW50fHxkLmlubmVySFRNTHx8IiIpLnJlcGxhY2UocWIsIiIpKSk7aT1jPW51bGx9cmV0dXJuIHRoaXN9fSksbS5lYWNoKHthcHBlbmRUbzoiYXBwZW5kIixwcmVwZW5kVG86InByZXBlbmQiLGluc2VydEJlZm9yZToiYmVmb3JlIixpbnNlcnRBZnRlcjoiYWZ0ZXIiLHJlcGxhY2VBbGw6InJlcGxhY2VXaXRoIn0sZnVuY3Rpb24oYSxiKXttLmZuW2FdPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYyxkPTAsZT1bXSxnPW0oYSksaD1nLmxlbmd0aC0xO2g+PWQ7ZCsrKWM9ZD09PWg/dGhpczp0aGlzLmNsb25lKCEwKSxtKGdbZF0pW2JdKGMpLGYuYXBwbHkoZSxjLmdldCgpKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZSl9fSk7dmFyIENiLERiPXt9O2Z1bmN0aW9uIEViKGIsYyl7dmFyIGQsZT1tKGMuY3JlYXRlRWxlbWVudChiKSkuYXBwZW5kVG8oYy5ib2R5KSxmPWEuZ2V0RGVmYXVsdENvbXB1dGVkU3R5bGUmJihkPWEuZ2V0RGVmYXVsdENvbXB1dGVkU3R5bGUoZVswXSkpP2QuZGlzcGxheTptLmNzcyhlWzBdLCJkaXNwbGF5Iik7cmV0dXJuIGUuZGV0YWNoKCksZn1mdW5jdGlvbiBGYihhKXt2YXIgYj15LGM9RGJbYV07cmV0dXJuIGN8fChjPUViKGEsYiksIm5vbmUiIT09YyYmY3x8KENiPShDYnx8bSgiPGlmcmFtZSBmcmFtZWJvcmRlcj0nMCcgd2lkdGg9JzAnIGhlaWdodD0nMCcvPiIpKS5hcHBlbmRUbyhiLmRvY3VtZW50RWxlbWVudCksYj0oQ2JbMF0uY29udGVudFdpbmRvd3x8Q2JbMF0uY29udGVudERvY3VtZW50KS5kb2N1bWVudCxiLndyaXRlKCksYi5jbG9zZSgpLGM9RWIoYSxiKSxDYi5kZXRhY2goKSksRGJbYV09YyksY30hZnVuY3Rpb24oKXt2YXIgYTtrLnNocmlua1dyYXBCbG9ja3M9ZnVuY3Rpb24oKXtpZihudWxsIT1hKXJldHVybiBhO2E9ITE7dmFyIGIsYyxkO3JldHVybiBjPXkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXSxjJiZjLnN0eWxlPyhiPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksZD15LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGQuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyOjA7d2lkdGg6MDtoZWlnaHQ6MDt0b3A6MDtsZWZ0Oi05OTk5cHgiLGMuYXBwZW5kQ2hpbGQoZCkuYXBwZW5kQ2hpbGQoYiksdHlwZW9mIGIuc3R5bGUuem9vbSE9PUsmJihiLnN0eWxlLmNzc1RleHQ9Ii13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveDtkaXNwbGF5OmJsb2NrO21hcmdpbjowO2JvcmRlcjowO3BhZGRpbmc6MXB4O3dpZHRoOjFweDt6b29tOjEiLGIuYXBwZW5kQ2hpbGQoeS5jcmVhdGVFbGVtZW50KCJkaXYiKSkuc3R5bGUud2lkdGg9IjVweCIsYT0zIT09Yi5vZmZzZXRXaWR0aCksYy5yZW1vdmVDaGlsZChkKSxhKTp2b2lkIDB9fSgpO3ZhciBHYj0vXm1hcmdpbi8sSGI9bmV3IFJlZ0V4cCgiXigiK1MrIikoPyFweClbYS16JV0rJCIsImkiKSxJYixKYixLYj0vXih0b3B8cmlnaHR8Ym90dG9tfGxlZnQpJC87YS5nZXRDb21wdXRlZFN0eWxlPyhJYj1mdW5jdGlvbihhKXtyZXR1cm4gYS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoYSxudWxsKX0sSmI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5zdHlsZTtyZXR1cm4gYz1jfHxJYihhKSxnPWM/Yy5nZXRQcm9wZXJ0eVZhbHVlKGIpfHxjW2JdOnZvaWQgMCxjJiYoIiIhPT1nfHxtLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKXx8KGc9bS5zdHlsZShhLGIpKSxIYi50ZXN0KGcpJiZHYi50ZXN0KGIpJiYoZD1oLndpZHRoLGU9aC5taW5XaWR0aCxmPWgubWF4V2lkdGgsaC5taW5XaWR0aD1oLm1heFdpZHRoPWgud2lkdGg9ZyxnPWMud2lkdGgsaC53aWR0aD1kLGgubWluV2lkdGg9ZSxoLm1heFdpZHRoPWYpKSx2b2lkIDA9PT1nP2c6ZysiIn0pOnkuZG9jdW1lbnRFbGVtZW50LmN1cnJlbnRTdHlsZSYmKEliPWZ1bmN0aW9uKGEpe3JldHVybiBhLmN1cnJlbnRTdHlsZX0sSmI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5zdHlsZTtyZXR1cm4gYz1jfHxJYihhKSxnPWM/Y1tiXTp2b2lkIDAsbnVsbD09ZyYmaCYmaFtiXSYmKGc9aFtiXSksSGIudGVzdChnKSYmIUtiLnRlc3QoYikmJihkPWgubGVmdCxlPWEucnVudGltZVN0eWxlLGY9ZSYmZS5sZWZ0LGYmJihlLmxlZnQ9YS5jdXJyZW50U3R5bGUubGVmdCksaC5sZWZ0PSJmb250U2l6ZSI9PT1iPyIxZW0iOmcsZz1oLnBpeGVsTGVmdCsicHgiLGgubGVmdD1kLGYmJihlLmxlZnQ9ZikpLHZvaWQgMD09PWc/ZzpnKyIifHwiYXV0byJ9KTtmdW5jdGlvbiBMYihhLGIpe3JldHVybntnZXQ6ZnVuY3Rpb24oKXt2YXIgYz1hKCk7aWYobnVsbCE9YylyZXR1cm4gYz92b2lkIGRlbGV0ZSB0aGlzLmdldDoodGhpcy5nZXQ9YikuYXBwbHkodGhpcyxhcmd1bWVudHMpfX19IWZ1bmN0aW9uKCl7dmFyIGIsYyxkLGUsZixnLGg7aWYoYj15LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGIuaW5uZXJIVE1MPSIgIDxsaW5rLz48dGFibGU+PC90YWJsZT48YSBocmVmPScvYSc+YTwvYT48aW5wdXQgdHlwZT0nY2hlY2tib3gnLz4iLGQ9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYSIpWzBdLGM9ZCYmZC5zdHlsZSl7Yy5jc3NUZXh0PSJmbG9hdDpsZWZ0O29wYWNpdHk6LjUiLGsub3BhY2l0eT0iMC41Ij09PWMub3BhY2l0eSxrLmNzc0Zsb2F0PSEhYy5jc3NGbG9hdCxiLnN0eWxlLmJhY2tncm91bmRDbGlwPSJjb250ZW50LWJveCIsYi5jbG9uZU5vZGUoITApLnN0eWxlLmJhY2tncm91bmRDbGlwPSIiLGsuY2xlYXJDbG9uZVN0eWxlPSJjb250ZW50LWJveCI9PT1iLnN0eWxlLmJhY2tncm91bmRDbGlwLGsuYm94U2l6aW5nPSIiPT09Yy5ib3hTaXppbmd8fCIiPT09Yy5Nb3pCb3hTaXppbmd8fCIiPT09Yy5XZWJraXRCb3hTaXppbmcsbS5leHRlbmQoayx7cmVsaWFibGVIaWRkZW5PZmZzZXRzOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PWcmJmkoKSxnfSxib3hTaXppbmdSZWxpYWJsZTpmdW5jdGlvbigpe3JldHVybiBudWxsPT1mJiZpKCksZn0scGl4ZWxQb3NpdGlvbjpmdW5jdGlvbigpe3JldHVybiBudWxsPT1lJiZpKCksZX0scmVsaWFibGVNYXJnaW5SaWdodDpmdW5jdGlvbigpe3JldHVybiBudWxsPT1oJiZpKCksaH19KTtmdW5jdGlvbiBpKCl7dmFyIGIsYyxkLGk7Yz15LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0sYyYmYy5zdHlsZSYmKGI9eS5jcmVhdGVFbGVtZW50KCJkaXYiKSxkPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksZC5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXI6MDt3aWR0aDowO2hlaWdodDowO3RvcDowO2xlZnQ6LTk5OTlweCIsYy5hcHBlbmRDaGlsZChkKS5hcHBlbmRDaGlsZChiKSxiLnN0eWxlLmNzc1RleHQ9Ii13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6MSU7dG9wOjElO2JvcmRlcjoxcHg7cGFkZGluZzoxcHg7d2lkdGg6NHB4O3Bvc2l0aW9uOmFic29sdXRlIixlPWY9ITEsaD0hMCxhLmdldENvbXB1dGVkU3R5bGUmJihlPSIxJSIhPT0oYS5nZXRDb21wdXRlZFN0eWxlKGIsbnVsbCl8fHt9KS50b3AsZj0iNHB4Ij09PShhLmdldENvbXB1dGVkU3R5bGUoYixudWxsKXx8e3dpZHRoOiI0cHgifSkud2lkdGgsaT1iLmFwcGVuZENoaWxkKHkuY3JlYXRlRWxlbWVudCgiZGl2IikpLGkuc3R5bGUuY3NzVGV4dD1iLnN0eWxlLmNzc1RleHQ9Ii13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveDtkaXNwbGF5OmJsb2NrO21hcmdpbjowO2JvcmRlcjowO3BhZGRpbmc6MCIsaS5zdHlsZS5tYXJnaW5SaWdodD1pLnN0eWxlLndpZHRoPSIwIixiLnN0eWxlLndpZHRoPSIxcHgiLGg9IXBhcnNlRmxvYXQoKGEuZ2V0Q29tcHV0ZWRTdHlsZShpLG51bGwpfHx7fSkubWFyZ2luUmlnaHQpKSxiLmlubmVySFRNTD0iPHRhYmxlPjx0cj48dGQ+PC90ZD48dGQ+dDwvdGQ+PC90cj48L3RhYmxlPiIsaT1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ZCIpLGlbMF0uc3R5bGUuY3NzVGV4dD0ibWFyZ2luOjA7Ym9yZGVyOjA7cGFkZGluZzowO2Rpc3BsYXk6bm9uZSIsZz0wPT09aVswXS5vZmZzZXRIZWlnaHQsZyYmKGlbMF0uc3R5bGUuZGlzcGxheT0iIixpWzFdLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGc9MD09PWlbMF0ub2Zmc2V0SGVpZ2h0KSxjLnJlbW92ZUNoaWxkKGQpKX19fSgpLG0uc3dhcD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZSxmLGc9e307Zm9yKGYgaW4gYilnW2ZdPWEuc3R5bGVbZl0sYS5zdHlsZVtmXT1iW2ZdO2U9Yy5hcHBseShhLGR8fFtdKTtmb3IoZiBpbiBiKWEuc3R5bGVbZl09Z1tmXTtyZXR1cm4gZX07dmFyIE1iPS9hbHBoYVwoW14pXSpcKS9pLE5iPS9vcGFjaXR5XHMqPVxzKihbXildKikvLE9iPS9eKG5vbmV8dGFibGUoPyEtY1tlYV0pLispLyxQYj1uZXcgUmVnRXhwKCJeKCIrUysiKSguKikkIiwiaSIpLFFiPW5ldyBSZWdFeHAoIl4oWystXSk9KCIrUysiKSIsImkiKSxSYj17cG9zaXRpb246ImFic29sdXRlIix2aXNpYmlsaXR5OiJoaWRkZW4iLGRpc3BsYXk6ImJsb2NrIn0sU2I9e2xldHRlclNwYWNpbmc6IjAiLGZvbnRXZWlnaHQ6IjQwMCJ9LFRiPVsiV2Via2l0IiwiTyIsIk1veiIsIm1zIl07ZnVuY3Rpb24gVWIoYSxiKXtpZihiIGluIGEpcmV0dXJuIGI7dmFyIGM9Yi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStiLnNsaWNlKDEpLGQ9YixlPVRiLmxlbmd0aDt3aGlsZShlLS0paWYoYj1UYltlXStjLGIgaW4gYSlyZXR1cm4gYjtyZXR1cm4gZH1mdW5jdGlvbiBWYihhLGIpe2Zvcih2YXIgYyxkLGUsZj1bXSxnPTAsaD1hLmxlbmd0aDtoPmc7ZysrKWQ9YVtnXSxkLnN0eWxlJiYoZltnXT1tLl9kYXRhKGQsIm9sZGRpc3BsYXkiKSxjPWQuc3R5bGUuZGlzcGxheSxiPyhmW2ddfHwibm9uZSIhPT1jfHwoZC5zdHlsZS5kaXNwbGF5PSIiKSwiIj09PWQuc3R5bGUuZGlzcGxheSYmVShkKSYmKGZbZ109bS5fZGF0YShkLCJvbGRkaXNwbGF5IixGYihkLm5vZGVOYW1lKSkpKTooZT1VKGQpLChjJiYibm9uZSIhPT1jfHwhZSkmJm0uX2RhdGEoZCwib2xkZGlzcGxheSIsZT9jOm0uY3NzKGQsImRpc3BsYXkiKSkpKTtmb3IoZz0wO2g+ZztnKyspZD1hW2ddLGQuc3R5bGUmJihiJiYibm9uZSIhPT1kLnN0eWxlLmRpc3BsYXkmJiIiIT09ZC5zdHlsZS5kaXNwbGF5fHwoZC5zdHlsZS5kaXNwbGF5PWI/ZltnXXx8IiI6Im5vbmUiKSk7cmV0dXJuIGF9ZnVuY3Rpb24gV2IoYSxiLGMpe3ZhciBkPVBiLmV4ZWMoYik7cmV0dXJuIGQ/TWF0aC5tYXgoMCxkWzFdLShjfHwwKSkrKGRbMl18fCJweCIpOmJ9ZnVuY3Rpb24gWGIoYSxiLGMsZCxlKXtmb3IodmFyIGY9Yz09PShkPyJib3JkZXIiOiJjb250ZW50Iik/NDoid2lkdGgiPT09Yj8xOjAsZz0wOzQ+ZjtmKz0yKSJtYXJnaW4iPT09YyYmKGcrPW0uY3NzKGEsYytUW2ZdLCEwLGUpKSxkPygiY29udGVudCI9PT1jJiYoZy09bS5jc3MoYSwicGFkZGluZyIrVFtmXSwhMCxlKSksIm1hcmdpbiIhPT1jJiYoZy09bS5jc3MoYSwiYm9yZGVyIitUW2ZdKyJXaWR0aCIsITAsZSkpKTooZys9bS5jc3MoYSwicGFkZGluZyIrVFtmXSwhMCxlKSwicGFkZGluZyIhPT1jJiYoZys9bS5jc3MoYSwiYm9yZGVyIitUW2ZdKyJXaWR0aCIsITAsZSkpKTtyZXR1cm4gZ31mdW5jdGlvbiBZYihhLGIsYyl7dmFyIGQ9ITAsZT0id2lkdGgiPT09Yj9hLm9mZnNldFdpZHRoOmEub2Zmc2V0SGVpZ2h0LGY9SWIoYSksZz1rLmJveFNpemluZyYmImJvcmRlci1ib3giPT09bS5jc3MoYSwiYm94U2l6aW5nIiwhMSxmKTtpZigwPj1lfHxudWxsPT1lKXtpZihlPUpiKGEsYixmKSwoMD5lfHxudWxsPT1lKSYmKGU9YS5zdHlsZVtiXSksSGIudGVzdChlKSlyZXR1cm4gZTtkPWcmJihrLmJveFNpemluZ1JlbGlhYmxlKCl8fGU9PT1hLnN0eWxlW2JdKSxlPXBhcnNlRmxvYXQoZSl8fDB9cmV0dXJuIGUrWGIoYSxiLGN8fChnPyJib3JkZXIiOiJjb250ZW50IiksZCxmKSsicHgifW0uZXh0ZW5kKHtjc3NIb29rczp7b3BhY2l0eTp7Z2V0OmZ1bmN0aW9uKGEsYil7aWYoYil7dmFyIGM9SmIoYSwib3BhY2l0eSIpO3JldHVybiIiPT09Yz8iMSI6Y319fX0sY3NzTnVtYmVyOntjb2x1bW5Db3VudDohMCxmaWxsT3BhY2l0eTohMCxmbGV4R3JvdzohMCxmbGV4U2hyaW5rOiEwLGZvbnRXZWlnaHQ6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwfSxjc3NQcm9wczp7ImZsb2F0IjprLmNzc0Zsb2F0PyJjc3NGbG9hdCI6InN0eWxlRmxvYXQifSxzdHlsZTpmdW5jdGlvbihhLGIsYyxkKXtpZihhJiYzIT09YS5ub2RlVHlwZSYmOCE9PWEubm9kZVR5cGUmJmEuc3R5bGUpe3ZhciBlLGYsZyxoPW0uY2FtZWxDYXNlKGIpLGk9YS5zdHlsZTtpZihiPW0uY3NzUHJvcHNbaF18fChtLmNzc1Byb3BzW2hdPVViKGksaCkpLGc9bS5jc3NIb29rc1tiXXx8bS5jc3NIb29rc1toXSx2b2lkIDA9PT1jKXJldHVybiBnJiYiZ2V0ImluIGcmJnZvaWQgMCE9PShlPWcuZ2V0KGEsITEsZCkpP2U6aVtiXTtpZihmPXR5cGVvZiBjLCJzdHJpbmciPT09ZiYmKGU9UWIuZXhlYyhjKSkmJihjPShlWzFdKzEpKmVbMl0rcGFyc2VGbG9hdChtLmNzcyhhLGIpKSxmPSJudW1iZXIiKSxudWxsIT1jJiZjPT09YyYmKCJudW1iZXIiIT09Znx8bS5jc3NOdW1iZXJbaF18fChjKz0icHgiKSxrLmNsZWFyQ2xvbmVTdHlsZXx8IiIhPT1jfHwwIT09Yi5pbmRleE9mKCJiYWNrZ3JvdW5kIil8fChpW2JdPSJpbmhlcml0IiksIShnJiYic2V0ImluIGcmJnZvaWQgMD09PShjPWcuc2V0KGEsYyxkKSkpKSl0cnl7aVtiXT1jfWNhdGNoKGope319fSxjc3M6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGUsZixnLGg9bS5jYW1lbENhc2UoYik7cmV0dXJuIGI9bS5jc3NQcm9wc1toXXx8KG0uY3NzUHJvcHNbaF09VWIoYS5zdHlsZSxoKSksZz1tLmNzc0hvb2tzW2JdfHxtLmNzc0hvb2tzW2hdLGcmJiJnZXQiaW4gZyYmKGY9Zy5nZXQoYSwhMCxjKSksdm9pZCAwPT09ZiYmKGY9SmIoYSxiLGQpKSwibm9ybWFsIj09PWYmJmIgaW4gU2ImJihmPVNiW2JdKSwiIj09PWN8fGM/KGU9cGFyc2VGbG9hdChmKSxjPT09ITB8fG0uaXNOdW1lcmljKGUpP2V8fDA6Zik6Zn19KSxtLmVhY2goWyJoZWlnaHQiLCJ3aWR0aCJdLGZ1bmN0aW9uKGEsYil7bS5jc3NIb29rc1tiXT17Z2V0OmZ1bmN0aW9uKGEsYyxkKXtyZXR1cm4gYz9PYi50ZXN0KG0uY3NzKGEsImRpc3BsYXkiKSkmJjA9PT1hLm9mZnNldFdpZHRoP20uc3dhcChhLFJiLGZ1bmN0aW9uKCl7cmV0dXJuIFliKGEsYixkKX0pOlliKGEsYixkKTp2b2lkIDB9LHNldDpmdW5jdGlvbihhLGMsZCl7dmFyIGU9ZCYmSWIoYSk7cmV0dXJuIFdiKGEsYyxkP1hiKGEsYixkLGsuYm94U2l6aW5nJiYiYm9yZGVyLWJveCI9PT1tLmNzcyhhLCJib3hTaXppbmciLCExLGUpLGUpOjApfX19KSxrLm9wYWNpdHl8fChtLmNzc0hvb2tzLm9wYWNpdHk9e2dldDpmdW5jdGlvbihhLGIpe3JldHVybiBOYi50ZXN0KChiJiZhLmN1cnJlbnRTdHlsZT9hLmN1cnJlbnRTdHlsZS5maWx0ZXI6YS5zdHlsZS5maWx0ZXIpfHwiIik/LjAxKnBhcnNlRmxvYXQoUmVnRXhwLiQxKSsiIjpiPyIxIjoiIn0sc2V0OmZ1bmN0aW9uKGEsYil7dmFyIGM9YS5zdHlsZSxkPWEuY3VycmVudFN0eWxlLGU9bS5pc051bWVyaWMoYik/ImFscGhhKG9wYWNpdHk9IisxMDAqYisiKSI6IiIsZj1kJiZkLmZpbHRlcnx8Yy5maWx0ZXJ8fCIiO2Muem9vbT0xLChiPj0xfHwiIj09PWIpJiYiIj09PW0udHJpbShmLnJlcGxhY2UoTWIsIiIpKSYmYy5yZW1vdmVBdHRyaWJ1dGUmJihjLnJlbW92ZUF0dHJpYnV0ZSgiZmlsdGVyIiksIiI9PT1ifHxkJiYhZC5maWx0ZXIpfHwoYy5maWx0ZXI9TWIudGVzdChmKT9mLnJlcGxhY2UoTWIsZSk6ZisiICIrZSl9fSksbS5jc3NIb29rcy5tYXJnaW5SaWdodD1MYihrLnJlbGlhYmxlTWFyZ2luUmlnaHQsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj9tLnN3YXAoYSx7ZGlzcGxheToiaW5saW5lLWJsb2NrIn0sSmIsW2EsIm1hcmdpblJpZ2h0Il0pOnZvaWQgMH0pLG0uZWFjaCh7bWFyZ2luOiIiLHBhZGRpbmc6IiIsYm9yZGVyOiJXaWR0aCJ9LGZ1bmN0aW9uKGEsYil7bS5jc3NIb29rc1thK2JdPXtleHBhbmQ6ZnVuY3Rpb24oYyl7Zm9yKHZhciBkPTAsZT17fSxmPSJzdHJpbmciPT10eXBlb2YgYz9jLnNwbGl0KCIgIik6W2NdOzQ+ZDtkKyspZVthK1RbZF0rYl09ZltkXXx8ZltkLTJdfHxmWzBdO3JldHVybiBlfX0sR2IudGVzdChhKXx8KG0uY3NzSG9va3NbYStiXS5zZXQ9V2IpfSksbS5mbi5leHRlbmQoe2NzczpmdW5jdGlvbihhLGIpe3JldHVybiBWKHRoaXMsZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZj17fSxnPTA7aWYobS5pc0FycmF5KGIpKXtmb3IoZD1JYihhKSxlPWIubGVuZ3RoO2U+ZztnKyspZltiW2ddXT1tLmNzcyhhLGJbZ10sITEsZCk7cmV0dXJuIGZ9cmV0dXJuIHZvaWQgMCE9PWM/bS5zdHlsZShhLGIsYyk6bS5jc3MoYSxiKX0sYSxiLGFyZ3VtZW50cy5sZW5ndGg+MSl9LHNob3c6ZnVuY3Rpb24oKXtyZXR1cm4gVmIodGhpcywhMCl9LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gVmIodGhpcyl9LHRvZ2dsZTpmdW5jdGlvbihhKXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBhP2E/dGhpcy5zaG93KCk6dGhpcy5oaWRlKCk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7VSh0aGlzKT9tKHRoaXMpLnNob3coKTptKHRoaXMpLmhpZGUoKX0pfX0pO2Z1bmN0aW9uIFpiKGEsYixjLGQsZSl7cmV0dXJuIG5ldyBaYi5wcm90b3R5cGUuaW5pdChhLGIsYyxkLGUpfW0uVHdlZW49WmIsWmIucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpaYixpbml0OmZ1bmN0aW9uKGEsYixjLGQsZSxmKXt0aGlzLmVsZW09YSx0aGlzLnByb3A9Yyx0aGlzLmVhc2luZz1lfHwic3dpbmciLHRoaXMub3B0aW9ucz1iLHRoaXMuc3RhcnQ9dGhpcy5ub3c9dGhpcy5jdXIoKSx0aGlzLmVuZD1kLHRoaXMudW5pdD1mfHwobS5jc3NOdW1iZXJbY10/IiI6InB4IikKfSxjdXI6ZnVuY3Rpb24oKXt2YXIgYT1aYi5wcm9wSG9va3NbdGhpcy5wcm9wXTtyZXR1cm4gYSYmYS5nZXQ/YS5nZXQodGhpcyk6WmIucHJvcEhvb2tzLl9kZWZhdWx0LmdldCh0aGlzKX0scnVuOmZ1bmN0aW9uKGEpe3ZhciBiLGM9WmIucHJvcEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIHRoaXMucG9zPWI9dGhpcy5vcHRpb25zLmR1cmF0aW9uP20uZWFzaW5nW3RoaXMuZWFzaW5nXShhLHRoaXMub3B0aW9ucy5kdXJhdGlvbiphLDAsMSx0aGlzLm9wdGlvbnMuZHVyYXRpb24pOmEsdGhpcy5ub3c9KHRoaXMuZW5kLXRoaXMuc3RhcnQpKmIrdGhpcy5zdGFydCx0aGlzLm9wdGlvbnMuc3RlcCYmdGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyksYyYmYy5zZXQ/Yy5zZXQodGhpcyk6WmIucHJvcEhvb2tzLl9kZWZhdWx0LnNldCh0aGlzKSx0aGlzfX0sWmIucHJvdG90eXBlLmluaXQucHJvdG90eXBlPVpiLnByb3RvdHlwZSxaYi5wcm9wSG9va3M9e19kZWZhdWx0OntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI7cmV0dXJuIG51bGw9PWEuZWxlbVthLnByb3BdfHxhLmVsZW0uc3R5bGUmJm51bGwhPWEuZWxlbS5zdHlsZVthLnByb3BdPyhiPW0uY3NzKGEuZWxlbSxhLnByb3AsIiIpLGImJiJhdXRvIiE9PWI/YjowKTphLmVsZW1bYS5wcm9wXX0sc2V0OmZ1bmN0aW9uKGEpe20uZnguc3RlcFthLnByb3BdP20uZnguc3RlcFthLnByb3BdKGEpOmEuZWxlbS5zdHlsZSYmKG51bGwhPWEuZWxlbS5zdHlsZVttLmNzc1Byb3BzW2EucHJvcF1dfHxtLmNzc0hvb2tzW2EucHJvcF0pP20uc3R5bGUoYS5lbGVtLGEucHJvcCxhLm5vdythLnVuaXQpOmEuZWxlbVthLnByb3BdPWEubm93fX19LFpiLnByb3BIb29rcy5zY3JvbGxUb3A9WmIucHJvcEhvb2tzLnNjcm9sbExlZnQ9e3NldDpmdW5jdGlvbihhKXthLmVsZW0ubm9kZVR5cGUmJmEuZWxlbS5wYXJlbnROb2RlJiYoYS5lbGVtW2EucHJvcF09YS5ub3cpfX0sbS5lYXNpbmc9e2xpbmVhcjpmdW5jdGlvbihhKXtyZXR1cm4gYX0sc3dpbmc6ZnVuY3Rpb24oYSl7cmV0dXJuLjUtTWF0aC5jb3MoYSpNYXRoLlBJKS8yfX0sbS5meD1aYi5wcm90b3R5cGUuaW5pdCxtLmZ4LnN0ZXA9e307dmFyICRiLF9iLGFjPS9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLyxiYz1uZXcgUmVnRXhwKCJeKD86KFsrLV0pPXwpKCIrUysiKShbYS16JV0qKSQiLCJpIiksY2M9L3F1ZXVlSG9va3MkLyxkYz1baWNdLGVjPXsiKiI6W2Z1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jcmVhdGVUd2VlbihhLGIpLGQ9Yy5jdXIoKSxlPWJjLmV4ZWMoYiksZj1lJiZlWzNdfHwobS5jc3NOdW1iZXJbYV0/IiI6InB4IiksZz0obS5jc3NOdW1iZXJbYV18fCJweCIhPT1mJiYrZCkmJmJjLmV4ZWMobS5jc3MoYy5lbGVtLGEpKSxoPTEsaT0yMDtpZihnJiZnWzNdIT09Zil7Zj1mfHxnWzNdLGU9ZXx8W10sZz0rZHx8MTtkbyBoPWh8fCIuNSIsZy89aCxtLnN0eWxlKGMuZWxlbSxhLGcrZik7d2hpbGUoaCE9PShoPWMuY3VyKCkvZCkmJjEhPT1oJiYtLWkpfXJldHVybiBlJiYoZz1jLnN0YXJ0PStnfHwrZHx8MCxjLnVuaXQ9ZixjLmVuZD1lWzFdP2crKGVbMV0rMSkqZVsyXTorZVsyXSksY31dfTtmdW5jdGlvbiBmYygpe3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JGI9dm9pZCAwfSksJGI9bS5ub3coKX1mdW5jdGlvbiBnYyhhLGIpe3ZhciBjLGQ9e2hlaWdodDphfSxlPTA7Zm9yKGI9Yj8xOjA7ND5lO2UrPTItYiljPVRbZV0sZFsibWFyZ2luIitjXT1kWyJwYWRkaW5nIitjXT1hO3JldHVybiBiJiYoZC5vcGFjaXR5PWQud2lkdGg9YSksZH1mdW5jdGlvbiBoYyhhLGIsYyl7Zm9yKHZhciBkLGU9KGVjW2JdfHxbXSkuY29uY2F0KGVjWyIqIl0pLGY9MCxnPWUubGVuZ3RoO2c+ZjtmKyspaWYoZD1lW2ZdLmNhbGwoYyxiLGEpKXJldHVybiBkfWZ1bmN0aW9uIGljKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixsLG49dGhpcyxvPXt9LHA9YS5zdHlsZSxxPWEubm9kZVR5cGUmJlUoYSkscj1tLl9kYXRhKGEsImZ4c2hvdyIpO2MucXVldWV8fChoPW0uX3F1ZXVlSG9va3MoYSwiZngiKSxudWxsPT1oLnVucXVldWVkJiYoaC51bnF1ZXVlZD0wLGk9aC5lbXB0eS5maXJlLGguZW1wdHkuZmlyZT1mdW5jdGlvbigpe2gudW5xdWV1ZWR8fGkoKX0pLGgudW5xdWV1ZWQrKyxuLmFsd2F5cyhmdW5jdGlvbigpe24uYWx3YXlzKGZ1bmN0aW9uKCl7aC51bnF1ZXVlZC0tLG0ucXVldWUoYSwiZngiKS5sZW5ndGh8fGguZW1wdHkuZmlyZSgpfSl9KSksMT09PWEubm9kZVR5cGUmJigiaGVpZ2h0ImluIGJ8fCJ3aWR0aCJpbiBiKSYmKGMub3ZlcmZsb3c9W3Aub3ZlcmZsb3cscC5vdmVyZmxvd1gscC5vdmVyZmxvd1ldLGo9bS5jc3MoYSwiZGlzcGxheSIpLGw9Im5vbmUiPT09aj9tLl9kYXRhKGEsIm9sZGRpc3BsYXkiKXx8RmIoYS5ub2RlTmFtZSk6aiwiaW5saW5lIj09PWwmJiJub25lIj09PW0uY3NzKGEsImZsb2F0IikmJihrLmlubGluZUJsb2NrTmVlZHNMYXlvdXQmJiJpbmxpbmUiIT09RmIoYS5ub2RlTmFtZSk/cC56b29tPTE6cC5kaXNwbGF5PSJpbmxpbmUtYmxvY2siKSksYy5vdmVyZmxvdyYmKHAub3ZlcmZsb3c9ImhpZGRlbiIsay5zaHJpbmtXcmFwQmxvY2tzKCl8fG4uYWx3YXlzKGZ1bmN0aW9uKCl7cC5vdmVyZmxvdz1jLm92ZXJmbG93WzBdLHAub3ZlcmZsb3dYPWMub3ZlcmZsb3dbMV0scC5vdmVyZmxvd1k9Yy5vdmVyZmxvd1syXX0pKTtmb3IoZCBpbiBiKWlmKGU9YltkXSxhYy5leGVjKGUpKXtpZihkZWxldGUgYltkXSxmPWZ8fCJ0b2dnbGUiPT09ZSxlPT09KHE/ImhpZGUiOiJzaG93Iikpe2lmKCJzaG93IiE9PWV8fCFyfHx2b2lkIDA9PT1yW2RdKWNvbnRpbnVlO3E9ITB9b1tkXT1yJiZyW2RdfHxtLnN0eWxlKGEsZCl9ZWxzZSBqPXZvaWQgMDtpZihtLmlzRW1wdHlPYmplY3QobykpImlubGluZSI9PT0oIm5vbmUiPT09aj9GYihhLm5vZGVOYW1lKTpqKSYmKHAuZGlzcGxheT1qKTtlbHNle3I/ImhpZGRlbiJpbiByJiYocT1yLmhpZGRlbik6cj1tLl9kYXRhKGEsImZ4c2hvdyIse30pLGYmJihyLmhpZGRlbj0hcSkscT9tKGEpLnNob3coKTpuLmRvbmUoZnVuY3Rpb24oKXttKGEpLmhpZGUoKX0pLG4uZG9uZShmdW5jdGlvbigpe3ZhciBiO20uX3JlbW92ZURhdGEoYSwiZnhzaG93Iik7Zm9yKGIgaW4gbyltLnN0eWxlKGEsYixvW2JdKX0pO2ZvcihkIGluIG8pZz1oYyhxP3JbZF06MCxkLG4pLGQgaW4gcnx8KHJbZF09Zy5zdGFydCxxJiYoZy5lbmQ9Zy5zdGFydCxnLnN0YXJ0PSJ3aWR0aCI9PT1kfHwiaGVpZ2h0Ij09PWQ/MTowKSl9fWZ1bmN0aW9uIGpjKGEsYil7dmFyIGMsZCxlLGYsZztmb3IoYyBpbiBhKWlmKGQ9bS5jYW1lbENhc2UoYyksZT1iW2RdLGY9YVtjXSxtLmlzQXJyYXkoZikmJihlPWZbMV0sZj1hW2NdPWZbMF0pLGMhPT1kJiYoYVtkXT1mLGRlbGV0ZSBhW2NdKSxnPW0uY3NzSG9va3NbZF0sZyYmImV4cGFuZCJpbiBnKXtmPWcuZXhwYW5kKGYpLGRlbGV0ZSBhW2RdO2ZvcihjIGluIGYpYyBpbiBhfHwoYVtjXT1mW2NdLGJbY109ZSl9ZWxzZSBiW2RdPWV9ZnVuY3Rpb24ga2MoYSxiLGMpe3ZhciBkLGUsZj0wLGc9ZGMubGVuZ3RoLGg9bS5EZWZlcnJlZCgpLmFsd2F5cyhmdW5jdGlvbigpe2RlbGV0ZSBpLmVsZW19KSxpPWZ1bmN0aW9uKCl7aWYoZSlyZXR1cm4hMTtmb3IodmFyIGI9JGJ8fGZjKCksYz1NYXRoLm1heCgwLGouc3RhcnRUaW1lK2ouZHVyYXRpb24tYiksZD1jL2ouZHVyYXRpb258fDAsZj0xLWQsZz0wLGk9ai50d2VlbnMubGVuZ3RoO2k+ZztnKyspai50d2VlbnNbZ10ucnVuKGYpO3JldHVybiBoLm5vdGlmeVdpdGgoYSxbaixmLGNdKSwxPmYmJmk/YzooaC5yZXNvbHZlV2l0aChhLFtqXSksITEpfSxqPWgucHJvbWlzZSh7ZWxlbTphLHByb3BzOm0uZXh0ZW5kKHt9LGIpLG9wdHM6bS5leHRlbmQoITAse3NwZWNpYWxFYXNpbmc6e319LGMpLG9yaWdpbmFsUHJvcGVydGllczpiLG9yaWdpbmFsT3B0aW9uczpjLHN0YXJ0VGltZTokYnx8ZmMoKSxkdXJhdGlvbjpjLmR1cmF0aW9uLHR3ZWVuczpbXSxjcmVhdGVUd2VlbjpmdW5jdGlvbihiLGMpe3ZhciBkPW0uVHdlZW4oYSxqLm9wdHMsYixjLGoub3B0cy5zcGVjaWFsRWFzaW5nW2JdfHxqLm9wdHMuZWFzaW5nKTtyZXR1cm4gai50d2VlbnMucHVzaChkKSxkfSxzdG9wOmZ1bmN0aW9uKGIpe3ZhciBjPTAsZD1iP2oudHdlZW5zLmxlbmd0aDowO2lmKGUpcmV0dXJuIHRoaXM7Zm9yKGU9ITA7ZD5jO2MrKylqLnR3ZWVuc1tjXS5ydW4oMSk7cmV0dXJuIGI/aC5yZXNvbHZlV2l0aChhLFtqLGJdKTpoLnJlamVjdFdpdGgoYSxbaixiXSksdGhpc319KSxrPWoucHJvcHM7Zm9yKGpjKGssai5vcHRzLnNwZWNpYWxFYXNpbmcpO2c+ZjtmKyspaWYoZD1kY1tmXS5jYWxsKGosYSxrLGoub3B0cykpcmV0dXJuIGQ7cmV0dXJuIG0ubWFwKGssaGMsaiksbS5pc0Z1bmN0aW9uKGoub3B0cy5zdGFydCkmJmoub3B0cy5zdGFydC5jYWxsKGEsaiksbS5meC50aW1lcihtLmV4dGVuZChpLHtlbGVtOmEsYW5pbTpqLHF1ZXVlOmoub3B0cy5xdWV1ZX0pKSxqLnByb2dyZXNzKGoub3B0cy5wcm9ncmVzcykuZG9uZShqLm9wdHMuZG9uZSxqLm9wdHMuY29tcGxldGUpLmZhaWwoai5vcHRzLmZhaWwpLmFsd2F5cyhqLm9wdHMuYWx3YXlzKX1tLkFuaW1hdGlvbj1tLmV4dGVuZChrYyx7dHdlZW5lcjpmdW5jdGlvbihhLGIpe20uaXNGdW5jdGlvbihhKT8oYj1hLGE9WyIqIl0pOmE9YS5zcGxpdCgiICIpO2Zvcih2YXIgYyxkPTAsZT1hLmxlbmd0aDtlPmQ7ZCsrKWM9YVtkXSxlY1tjXT1lY1tjXXx8W10sZWNbY10udW5zaGlmdChiKX0scHJlZmlsdGVyOmZ1bmN0aW9uKGEsYil7Yj9kYy51bnNoaWZ0KGEpOmRjLnB1c2goYSl9fSksbS5zcGVlZD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YSYmIm9iamVjdCI9PXR5cGVvZiBhP20uZXh0ZW5kKHt9LGEpOntjb21wbGV0ZTpjfHwhYyYmYnx8bS5pc0Z1bmN0aW9uKGEpJiZhLGR1cmF0aW9uOmEsZWFzaW5nOmMmJmJ8fGImJiFtLmlzRnVuY3Rpb24oYikmJmJ9O3JldHVybiBkLmR1cmF0aW9uPW0uZngub2ZmPzA6Im51bWJlciI9PXR5cGVvZiBkLmR1cmF0aW9uP2QuZHVyYXRpb246ZC5kdXJhdGlvbiBpbiBtLmZ4LnNwZWVkcz9tLmZ4LnNwZWVkc1tkLmR1cmF0aW9uXTptLmZ4LnNwZWVkcy5fZGVmYXVsdCwobnVsbD09ZC5xdWV1ZXx8ZC5xdWV1ZT09PSEwKSYmKGQucXVldWU9ImZ4IiksZC5vbGQ9ZC5jb21wbGV0ZSxkLmNvbXBsZXRlPWZ1bmN0aW9uKCl7bS5pc0Z1bmN0aW9uKGQub2xkKSYmZC5vbGQuY2FsbCh0aGlzKSxkLnF1ZXVlJiZtLmRlcXVldWUodGhpcyxkLnF1ZXVlKX0sZH0sbS5mbi5leHRlbmQoe2ZhZGVUbzpmdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gdGhpcy5maWx0ZXIoVSkuY3NzKCJvcGFjaXR5IiwwKS5zaG93KCkuZW5kKCkuYW5pbWF0ZSh7b3BhY2l0eTpifSxhLGMsZCl9LGFuaW1hdGU6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9bS5pc0VtcHR5T2JqZWN0KGEpLGY9bS5zcGVlZChiLGMsZCksZz1mdW5jdGlvbigpe3ZhciBiPWtjKHRoaXMsbS5leHRlbmQoe30sYSksZik7KGV8fG0uX2RhdGEodGhpcywiZmluaXNoIikpJiZiLnN0b3AoITApfTtyZXR1cm4gZy5maW5pc2g9ZyxlfHxmLnF1ZXVlPT09ITE/dGhpcy5lYWNoKGcpOnRoaXMucXVldWUoZi5xdWV1ZSxnKX0sc3RvcDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9ZnVuY3Rpb24oYSl7dmFyIGI9YS5zdG9wO2RlbGV0ZSBhLnN0b3AsYihjKX07cmV0dXJuInN0cmluZyIhPXR5cGVvZiBhJiYoYz1iLGI9YSxhPXZvaWQgMCksYiYmYSE9PSExJiZ0aGlzLnF1ZXVlKGF8fCJmeCIsW10pLHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBiPSEwLGU9bnVsbCE9YSYmYSsicXVldWVIb29rcyIsZj1tLnRpbWVycyxnPW0uX2RhdGEodGhpcyk7aWYoZSlnW2VdJiZnW2VdLnN0b3AmJmQoZ1tlXSk7ZWxzZSBmb3IoZSBpbiBnKWdbZV0mJmdbZV0uc3RvcCYmY2MudGVzdChlKSYmZChnW2VdKTtmb3IoZT1mLmxlbmd0aDtlLS07KWZbZV0uZWxlbSE9PXRoaXN8fG51bGwhPWEmJmZbZV0ucXVldWUhPT1hfHwoZltlXS5hbmltLnN0b3AoYyksYj0hMSxmLnNwbGljZShlLDEpKTsoYnx8IWMpJiZtLmRlcXVldWUodGhpcyxhKX0pfSxmaW5pc2g6ZnVuY3Rpb24oYSl7cmV0dXJuIGEhPT0hMSYmKGE9YXx8ImZ4IiksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGIsYz1tLl9kYXRhKHRoaXMpLGQ9Y1thKyJxdWV1ZSJdLGU9Y1thKyJxdWV1ZUhvb2tzIl0sZj1tLnRpbWVycyxnPWQ/ZC5sZW5ndGg6MDtmb3IoYy5maW5pc2g9ITAsbS5xdWV1ZSh0aGlzLGEsW10pLGUmJmUuc3RvcCYmZS5zdG9wLmNhbGwodGhpcywhMCksYj1mLmxlbmd0aDtiLS07KWZbYl0uZWxlbT09PXRoaXMmJmZbYl0ucXVldWU9PT1hJiYoZltiXS5hbmltLnN0b3AoITApLGYuc3BsaWNlKGIsMSkpO2ZvcihiPTA7Zz5iO2IrKylkW2JdJiZkW2JdLmZpbmlzaCYmZFtiXS5maW5pc2guY2FsbCh0aGlzKTtkZWxldGUgYy5maW5pc2h9KX19KSxtLmVhY2goWyJ0b2dnbGUiLCJzaG93IiwiaGlkZSJdLGZ1bmN0aW9uKGEsYil7dmFyIGM9bS5mbltiXTttLmZuW2JdPWZ1bmN0aW9uKGEsZCxlKXtyZXR1cm4gbnVsbD09YXx8ImJvb2xlYW4iPT10eXBlb2YgYT9jLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0aGlzLmFuaW1hdGUoZ2MoYiwhMCksYSxkLGUpfX0pLG0uZWFjaCh7c2xpZGVEb3duOmdjKCJzaG93Iiksc2xpZGVVcDpnYygiaGlkZSIpLHNsaWRlVG9nZ2xlOmdjKCJ0b2dnbGUiKSxmYWRlSW46e29wYWNpdHk6InNob3cifSxmYWRlT3V0OntvcGFjaXR5OiJoaWRlIn0sZmFkZVRvZ2dsZTp7b3BhY2l0eToidG9nZ2xlIn19LGZ1bmN0aW9uKGEsYil7bS5mblthXT1mdW5jdGlvbihhLGMsZCl7cmV0dXJuIHRoaXMuYW5pbWF0ZShiLGEsYyxkKX19KSxtLnRpbWVycz1bXSxtLmZ4LnRpY2s9ZnVuY3Rpb24oKXt2YXIgYSxiPW0udGltZXJzLGM9MDtmb3IoJGI9bS5ub3coKTtjPGIubGVuZ3RoO2MrKylhPWJbY10sYSgpfHxiW2NdIT09YXx8Yi5zcGxpY2UoYy0tLDEpO2IubGVuZ3RofHxtLmZ4LnN0b3AoKSwkYj12b2lkIDB9LG0uZngudGltZXI9ZnVuY3Rpb24oYSl7bS50aW1lcnMucHVzaChhKSxhKCk/bS5meC5zdGFydCgpOm0udGltZXJzLnBvcCgpfSxtLmZ4LmludGVydmFsPTEzLG0uZnguc3RhcnQ9ZnVuY3Rpb24oKXtfYnx8KF9iPXNldEludGVydmFsKG0uZngudGljayxtLmZ4LmludGVydmFsKSl9LG0uZnguc3RvcD1mdW5jdGlvbigpe2NsZWFySW50ZXJ2YWwoX2IpLF9iPW51bGx9LG0uZnguc3BlZWRzPXtzbG93OjYwMCxmYXN0OjIwMCxfZGVmYXVsdDo0MDB9LG0uZm4uZGVsYXk9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1tLmZ4P20uZnguc3BlZWRzW2FdfHxhOmEsYj1ifHwiZngiLHRoaXMucXVldWUoYixmdW5jdGlvbihiLGMpe3ZhciBkPXNldFRpbWVvdXQoYixhKTtjLnN0b3A9ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoZCl9fSl9LGZ1bmN0aW9uKCl7dmFyIGEsYixjLGQsZTtiPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksYi5zZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIsInQiKSxiLmlubmVySFRNTD0iICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2EnPmE8L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IixkPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXSxjPXkuY3JlYXRlRWxlbWVudCgic2VsZWN0IiksZT1jLmFwcGVuZENoaWxkKHkuY3JlYXRlRWxlbWVudCgib3B0aW9uIikpLGE9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXSxkLnN0eWxlLmNzc1RleHQ9InRvcDoxcHgiLGsuZ2V0U2V0QXR0cmlidXRlPSJ0IiE9PWIuY2xhc3NOYW1lLGsuc3R5bGU9L3RvcC8udGVzdChkLmdldEF0dHJpYnV0ZSgic3R5bGUiKSksay5ocmVmTm9ybWFsaXplZD0iL2EiPT09ZC5nZXRBdHRyaWJ1dGUoImhyZWYiKSxrLmNoZWNrT249ISFhLnZhbHVlLGsub3B0U2VsZWN0ZWQ9ZS5zZWxlY3RlZCxrLmVuY3R5cGU9ISF5LmNyZWF0ZUVsZW1lbnQoImZvcm0iKS5lbmN0eXBlLGMuZGlzYWJsZWQ9ITAsay5vcHREaXNhYmxlZD0hZS5kaXNhYmxlZCxhPXkuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxhLnNldEF0dHJpYnV0ZSgidmFsdWUiLCIiKSxrLmlucHV0PSIiPT09YS5nZXRBdHRyaWJ1dGUoInZhbHVlIiksYS52YWx1ZT0idCIsYS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJyYWRpbyIpLGsucmFkaW9WYWx1ZT0idCI9PT1hLnZhbHVlfSgpO3ZhciBsYz0vXHIvZzttLmZuLmV4dGVuZCh7dmFsOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlPXRoaXNbMF07e2lmKGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIGQ9bS5pc0Z1bmN0aW9uKGEpLHRoaXMuZWFjaChmdW5jdGlvbihjKXt2YXIgZTsxPT09dGhpcy5ub2RlVHlwZSYmKGU9ZD9hLmNhbGwodGhpcyxjLG0odGhpcykudmFsKCkpOmEsbnVsbD09ZT9lPSIiOiJudW1iZXIiPT10eXBlb2YgZT9lKz0iIjptLmlzQXJyYXkoZSkmJihlPW0ubWFwKGUsZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE/IiI6YSsiIn0pKSxiPW0udmFsSG9va3NbdGhpcy50eXBlXXx8bS52YWxIb29rc1t0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldLGImJiJzZXQiaW4gYiYmdm9pZCAwIT09Yi5zZXQodGhpcyxlLCJ2YWx1ZSIpfHwodGhpcy52YWx1ZT1lKSl9KTtpZihlKXJldHVybiBiPW0udmFsSG9va3NbZS50eXBlXXx8bS52YWxIb29rc1tlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldLGImJiJnZXQiaW4gYiYmdm9pZCAwIT09KGM9Yi5nZXQoZSwidmFsdWUiKSk/YzooYz1lLnZhbHVlLCJzdHJpbmciPT10eXBlb2YgYz9jLnJlcGxhY2UobGMsIiIpOm51bGw9PWM/IiI6Yyl9fX0pLG0uZXh0ZW5kKHt2YWxIb29rczp7b3B0aW9uOntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9bS5maW5kLmF0dHIoYSwidmFsdWUiKTtyZXR1cm4gbnVsbCE9Yj9iOm0udHJpbShtLnRleHQoYSkpfX0sc2VsZWN0OntnZXQ6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiLGMsZD1hLm9wdGlvbnMsZT1hLnNlbGVjdGVkSW5kZXgsZj0ic2VsZWN0LW9uZSI9PT1hLnR5cGV8fDA+ZSxnPWY/bnVsbDpbXSxoPWY/ZSsxOmQubGVuZ3RoLGk9MD5lP2g6Zj9lOjA7aD5pO2krKylpZihjPWRbaV0sISghYy5zZWxlY3RlZCYmaSE9PWV8fChrLm9wdERpc2FibGVkP2MuZGlzYWJsZWQ6bnVsbCE9PWMuZ2V0QXR0cmlidXRlKCJkaXNhYmxlZCIpKXx8Yy5wYXJlbnROb2RlLmRpc2FibGVkJiZtLm5vZGVOYW1lKGMucGFyZW50Tm9kZSwib3B0Z3JvdXAiKSkpe2lmKGI9bShjKS52YWwoKSxmKXJldHVybiBiO2cucHVzaChiKX1yZXR1cm4gZ30sc2V0OmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlPWEub3B0aW9ucyxmPW0ubWFrZUFycmF5KGIpLGc9ZS5sZW5ndGg7d2hpbGUoZy0tKWlmKGQ9ZVtnXSxtLmluQXJyYXkobS52YWxIb29rcy5vcHRpb24uZ2V0KGQpLGYpPj0wKXRyeXtkLnNlbGVjdGVkPWM9ITB9Y2F0Y2goaCl7ZC5zY3JvbGxIZWlnaHR9ZWxzZSBkLnNlbGVjdGVkPSExO3JldHVybiBjfHwoYS5zZWxlY3RlZEluZGV4PS0xKSxlfX19fSksbS5lYWNoKFsicmFkaW8iLCJjaGVja2JveCJdLGZ1bmN0aW9uKCl7bS52YWxIb29rc1t0aGlzXT17c2V0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIG0uaXNBcnJheShiKT9hLmNoZWNrZWQ9bS5pbkFycmF5KG0oYSkudmFsKCksYik+PTA6dm9pZCAwfX0say5jaGVja09ufHwobS52YWxIb29rc1t0aGlzXS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PT1hLmdldEF0dHJpYnV0ZSgidmFsdWUiKT8ib24iOmEudmFsdWV9KX0pO3ZhciBtYyxuYyxvYz1tLmV4cHIuYXR0ckhhbmRsZSxwYz0vXig/OmNoZWNrZWR8c2VsZWN0ZWQpJC9pLHFjPWsuZ2V0U2V0QXR0cmlidXRlLHJjPWsuaW5wdXQ7bS5mbi5leHRlbmQoe2F0dHI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVih0aGlzLG0uYXR0cixhLGIsYXJndW1lbnRzLmxlbmd0aD4xKX0scmVtb3ZlQXR0cjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7bS5yZW1vdmVBdHRyKHRoaXMsYSl9KX19KSxtLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmPWEubm9kZVR5cGU7aWYoYSYmMyE9PWYmJjghPT1mJiYyIT09ZilyZXR1cm4gdHlwZW9mIGEuZ2V0QXR0cmlidXRlPT09Sz9tLnByb3AoYSxiLGMpOigxPT09ZiYmbS5pc1hNTERvYyhhKXx8KGI9Yi50b0xvd2VyQ2FzZSgpLGQ9bS5hdHRySG9va3NbYl18fChtLmV4cHIubWF0Y2guYm9vbC50ZXN0KGIpP25jOm1jKSksdm9pZCAwPT09Yz9kJiYiZ2V0ImluIGQmJm51bGwhPT0oZT1kLmdldChhLGIpKT9lOihlPW0uZmluZC5hdHRyKGEsYiksbnVsbD09ZT92b2lkIDA6ZSk6bnVsbCE9PWM/ZCYmInNldCJpbiBkJiZ2b2lkIDAhPT0oZT1kLnNldChhLGMsYikpP2U6KGEuc2V0QXR0cmlidXRlKGIsYysiIiksYyk6dm9pZCBtLnJlbW92ZUF0dHIoYSxiKSl9LHJlbW92ZUF0dHI6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGU9MCxmPWImJmIubWF0Y2goRSk7aWYoZiYmMT09PWEubm9kZVR5cGUpd2hpbGUoYz1mW2UrK10pZD1tLnByb3BGaXhbY118fGMsbS5leHByLm1hdGNoLmJvb2wudGVzdChjKT9yYyYmcWN8fCFwYy50ZXN0KGMpP2FbZF09ITE6YVttLmNhbWVsQ2FzZSgiZGVmYXVsdC0iK2MpXT1hW2RdPSExOm0uYXR0cihhLGMsIiIpLGEucmVtb3ZlQXR0cmlidXRlKHFjP2M6ZCl9LGF0dHJIb29rczp7dHlwZTp7c2V0OmZ1bmN0aW9uKGEsYil7aWYoIWsucmFkaW9WYWx1ZSYmInJhZGlvIj09PWImJm0ubm9kZU5hbWUoYSwiaW5wdXQiKSl7dmFyIGM9YS52YWx1ZTtyZXR1cm4gYS5zZXRBdHRyaWJ1dGUoInR5cGUiLGIpLGMmJihhLnZhbHVlPWMpLGJ9fX19fSksbmM9e3NldDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGI9PT0hMT9tLnJlbW92ZUF0dHIoYSxjKTpyYyYmcWN8fCFwYy50ZXN0KGMpP2Euc2V0QXR0cmlidXRlKCFxYyYmbS5wcm9wRml4W2NdfHxjLGMpOmFbbS5jYW1lbENhc2UoImRlZmF1bHQtIitjKV09YVtjXT0hMCxjfX0sbS5lYWNoKG0uZXhwci5tYXRjaC5ib29sLnNvdXJjZS5tYXRjaCgvXHcrL2cpLGZ1bmN0aW9uKGEsYil7dmFyIGM9b2NbYl18fG0uZmluZC5hdHRyO29jW2JdPXJjJiZxY3x8IXBjLnRlc3QoYik/ZnVuY3Rpb24oYSxiLGQpe3ZhciBlLGY7cmV0dXJuIGR8fChmPW9jW2JdLG9jW2JdPWUsZT1udWxsIT1jKGEsYixkKT9iLnRvTG93ZXJDYXNlKCk6bnVsbCxvY1tiXT1mKSxlfTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGM/dm9pZCAwOmFbbS5jYW1lbENhc2UoImRlZmF1bHQtIitiKV0/Yi50b0xvd2VyQ2FzZSgpOm51bGx9fSkscmMmJnFjfHwobS5hdHRySG9va3MudmFsdWU9e3NldDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIG0ubm9kZU5hbWUoYSwiaW5wdXQiKT92b2lkKGEuZGVmYXVsdFZhbHVlPWIpOm1jJiZtYy5zZXQoYSxiLGMpfX0pLHFjfHwobWM9e3NldDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5nZXRBdHRyaWJ1dGVOb2RlKGMpO3JldHVybiBkfHxhLnNldEF0dHJpYnV0ZU5vZGUoZD1hLm93bmVyRG9jdW1lbnQuY3JlYXRlQXR0cmlidXRlKGMpKSxkLnZhbHVlPWIrPSIiLCJ2YWx1ZSI9PT1jfHxiPT09YS5nZXRBdHRyaWJ1dGUoYyk/Yjp2b2lkIDB9fSxvYy5pZD1vYy5uYW1lPW9jLmNvb3Jkcz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuIGM/dm9pZCAwOihkPWEuZ2V0QXR0cmlidXRlTm9kZShiKSkmJiIiIT09ZC52YWx1ZT9kLnZhbHVlOm51bGx9LG0udmFsSG9va3MuYnV0dG9uPXtnZXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmdldEF0dHJpYnV0ZU5vZGUoYik7cmV0dXJuIGMmJmMuc3BlY2lmaWVkP2MudmFsdWU6dm9pZCAwfSxzZXQ6bWMuc2V0fSxtLmF0dHJIb29rcy5jb250ZW50ZWRpdGFibGU9e3NldDpmdW5jdGlvbihhLGIsYyl7bWMuc2V0KGEsIiI9PT1iPyExOmIsYyl9fSxtLmVhY2goWyJ3aWR0aCIsImhlaWdodCJdLGZ1bmN0aW9uKGEsYil7bS5hdHRySG9va3NbYl09e3NldDpmdW5jdGlvbihhLGMpe3JldHVybiIiPT09Yz8oYS5zZXRBdHRyaWJ1dGUoYiwiYXV0byIpLGMpOnZvaWQgMH19fSkpLGsuc3R5bGV8fChtLmF0dHJIb29rcy5zdHlsZT17Z2V0OmZ1bmN0aW9uKGEpe3JldHVybiBhLnN0eWxlLmNzc1RleHR8fHZvaWQgMH0sc2V0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuc3R5bGUuY3NzVGV4dD1iKyIifX0pO3ZhciBzYz0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b258b2JqZWN0KSQvaSx0Yz0vXig/OmF8YXJlYSkkL2k7bS5mbi5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVih0aGlzLG0ucHJvcCxhLGIsYXJndW1lbnRzLmxlbmd0aD4xKX0scmVtb3ZlUHJvcDpmdW5jdGlvbihhKXtyZXR1cm4gYT1tLnByb3BGaXhbYV18fGEsdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dHJ5e3RoaXNbYV09dm9pZCAwLGRlbGV0ZSB0aGlzW2FdfWNhdGNoKGIpe319KX19KSxtLmV4dGVuZCh7cHJvcEZpeDp7ImZvciI6Imh0bWxGb3IiLCJjbGFzcyI6ImNsYXNzTmFtZSJ9LHByb3A6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnPWEubm9kZVR5cGU7aWYoYSYmMyE9PWcmJjghPT1nJiYyIT09ZylyZXR1cm4gZj0xIT09Z3x8IW0uaXNYTUxEb2MoYSksZiYmKGI9bS5wcm9wRml4W2JdfHxiLGU9bS5wcm9wSG9va3NbYl0pLHZvaWQgMCE9PWM/ZSYmInNldCJpbiBlJiZ2b2lkIDAhPT0oZD1lLnNldChhLGMsYikpP2Q6YVtiXT1jOmUmJiJnZXQiaW4gZSYmbnVsbCE9PShkPWUuZ2V0KGEsYikpP2Q6YVtiXX0scHJvcEhvb2tzOnt0YWJJbmRleDp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiPW0uZmluZC5hdHRyKGEsInRhYmluZGV4Iik7cmV0dXJuIGI/cGFyc2VJbnQoYiwxMCk6c2MudGVzdChhLm5vZGVOYW1lKXx8dGMudGVzdChhLm5vZGVOYW1lKSYmYS5ocmVmPzA6LTF9fX19KSxrLmhyZWZOb3JtYWxpemVkfHxtLmVhY2goWyJocmVmIiwic3JjIl0sZnVuY3Rpb24oYSxiKXttLnByb3BIb29rc1tiXT17Z2V0OmZ1bmN0aW9uKGEpe3JldHVybiBhLmdldEF0dHJpYnV0ZShiLDQpfX19KSxrLm9wdFNlbGVjdGVkfHwobS5wcm9wSG9va3Muc2VsZWN0ZWQ9e2dldDpmdW5jdGlvbihhKXt2YXIgYj1hLnBhcmVudE5vZGU7cmV0dXJuIGImJihiLnNlbGVjdGVkSW5kZXgsYi5wYXJlbnROb2RlJiZiLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCksbnVsbH19KSxtLmVhY2goWyJ0YWJJbmRleCIsInJlYWRPbmx5IiwibWF4TGVuZ3RoIiwiY2VsbFNwYWNpbmciLCJjZWxsUGFkZGluZyIsInJvd1NwYW4iLCJjb2xTcGFuIiwidXNlTWFwIiwiZnJhbWVCb3JkZXIiLCJjb250ZW50RWRpdGFibGUiXSxmdW5jdGlvbigpe20ucHJvcEZpeFt0aGlzLnRvTG93ZXJDYXNlKCldPXRoaXN9KSxrLmVuY3R5cGV8fChtLnByb3BGaXguZW5jdHlwZT0iZW5jb2RpbmciKTt2YXIgdWM9L1tcdFxyXG5cZl0vZzttLmZuLmV4dGVuZCh7YWRkQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGUsZixnLGg9MCxpPXRoaXMubGVuZ3RoLGo9InN0cmluZyI9PXR5cGVvZiBhJiZhO2lmKG0uaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGIpe20odGhpcykuYWRkQ2xhc3MoYS5jYWxsKHRoaXMsYix0aGlzLmNsYXNzTmFtZSkpfSk7aWYoailmb3IoYj0oYXx8IiIpLm1hdGNoKEUpfHxbXTtpPmg7aCsrKWlmKGM9dGhpc1toXSxkPTE9PT1jLm5vZGVUeXBlJiYoYy5jbGFzc05hbWU/KCIgIitjLmNsYXNzTmFtZSsiICIpLnJlcGxhY2UodWMsIiAiKToiICIpKXtmPTA7d2hpbGUoZT1iW2YrK10pZC5pbmRleE9mKCIgIitlKyIgIik8MCYmKGQrPWUrIiAiKTtnPW0udHJpbShkKSxjLmNsYXNzTmFtZSE9PWcmJihjLmNsYXNzTmFtZT1nKX1yZXR1cm4gdGhpc30scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGUsZixnLGg9MCxpPXRoaXMubGVuZ3RoLGo9MD09PWFyZ3VtZW50cy5sZW5ndGh8fCJzdHJpbmciPT10eXBlb2YgYSYmYTtpZihtLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXttKHRoaXMpLnJlbW92ZUNsYXNzKGEuY2FsbCh0aGlzLGIsdGhpcy5jbGFzc05hbWUpKX0pO2lmKGopZm9yKGI9KGF8fCIiKS5tYXRjaChFKXx8W107aT5oO2grKylpZihjPXRoaXNbaF0sZD0xPT09Yy5ub2RlVHlwZSYmKGMuY2xhc3NOYW1lPygiICIrYy5jbGFzc05hbWUrIiAiKS5yZXBsYWNlKHVjLCIgIik6IiIpKXtmPTA7d2hpbGUoZT1iW2YrK10pd2hpbGUoZC5pbmRleE9mKCIgIitlKyIgIik+PTApZD1kLnJlcGxhY2UoIiAiK2UrIiAiLCIgIik7Zz1hP20udHJpbShkKToiIixjLmNsYXNzTmFtZSE9PWcmJihjLmNsYXNzTmFtZT1nKX1yZXR1cm4gdGhpc30sdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz10eXBlb2YgYTtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBiJiYic3RyaW5nIj09PWM/Yj90aGlzLmFkZENsYXNzKGEpOnRoaXMucmVtb3ZlQ2xhc3MoYSk6dGhpcy5lYWNoKG0uaXNGdW5jdGlvbihhKT9mdW5jdGlvbihjKXttKHRoaXMpLnRvZ2dsZUNsYXNzKGEuY2FsbCh0aGlzLGMsdGhpcy5jbGFzc05hbWUsYiksYil9OmZ1bmN0aW9uKCl7aWYoInN0cmluZyI9PT1jKXt2YXIgYixkPTAsZT1tKHRoaXMpLGY9YS5tYXRjaChFKXx8W107d2hpbGUoYj1mW2QrK10pZS5oYXNDbGFzcyhiKT9lLnJlbW92ZUNsYXNzKGIpOmUuYWRkQ2xhc3MoYil9ZWxzZShjPT09S3x8ImJvb2xlYW4iPT09YykmJih0aGlzLmNsYXNzTmFtZSYmbS5fZGF0YSh0aGlzLCJfX2NsYXNzTmFtZV9fIix0aGlzLmNsYXNzTmFtZSksdGhpcy5jbGFzc05hbWU9dGhpcy5jbGFzc05hbWV8fGE9PT0hMT8iIjptLl9kYXRhKHRoaXMsIl9fY2xhc3NOYW1lX18iKXx8IiIpfSl9LGhhc0NsYXNzOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0iICIrYSsiICIsYz0wLGQ9dGhpcy5sZW5ndGg7ZD5jO2MrKylpZigxPT09dGhpc1tjXS5ub2RlVHlwZSYmKCIgIit0aGlzW2NdLmNsYXNzTmFtZSsiICIpLnJlcGxhY2UodWMsIiAiKS5pbmRleE9mKGIpPj0wKXJldHVybiEwO3JldHVybiExfX0pLG0uZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IGxvYWQgcmVzaXplIHNjcm9sbCB1bmxvYWQgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBlcnJvciBjb250ZXh0bWVudSIuc3BsaXQoIiAiKSxmdW5jdGlvbihhLGIpe20uZm5bYl09ZnVuY3Rpb24oYSxjKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4wP3RoaXMub24oYixudWxsLGEsYyk6dGhpcy50cmlnZ2VyKGIpfX0pLG0uZm4uZXh0ZW5kKHtob3ZlcjpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLm1vdXNlZW50ZXIoYSkubW91c2VsZWF2ZShifHxhKX0sYmluZDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHRoaXMub24oYSxudWxsLGIsYyl9LHVuYmluZDpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLm9mZihhLG51bGwsYil9LGRlbGVnYXRlOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLm9uKGIsYSxjLGQpfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5vZmYoYSwiKioiKTp0aGlzLm9mZihiLGF8fCIqKiIsYyl9fSk7dmFyIHZjPW0ubm93KCksd2M9L1w/Lyx4Yz0vKCwpfChcW3x7KXwofXxdKXwiKD86W14iXFxcclxuXXxcXFsiXFxcL2JmbnJ0XXxcXHVbXGRhLWZBLUZdezR9KSoiXHMqOj98dHJ1ZXxmYWxzZXxudWxsfC0/KD8hMFxkKVxkKyg/OlwuXGQrfCkoPzpbZUVdWystXT9cZCt8KS9nO20ucGFyc2VKU09OPWZ1bmN0aW9uKGIpe2lmKGEuSlNPTiYmYS5KU09OLnBhcnNlKXJldHVybiBhLkpTT04ucGFyc2UoYisiIik7dmFyIGMsZD1udWxsLGU9bS50cmltKGIrIiIpO3JldHVybiBlJiYhbS50cmltKGUucmVwbGFjZSh4YyxmdW5jdGlvbihhLGIsZSxmKXtyZXR1cm4gYyYmYiYmKGQ9MCksMD09PWQ/YTooYz1lfHxiLGQrPSFmLSFlLCIiKX0pKT9GdW5jdGlvbigicmV0dXJuICIrZSkoKTptLmVycm9yKCJJbnZhbGlkIEpTT046ICIrYil9LG0ucGFyc2VYTUw9ZnVuY3Rpb24oYil7dmFyIGMsZDtpZighYnx8InN0cmluZyIhPXR5cGVvZiBiKXJldHVybiBudWxsO3RyeXthLkRPTVBhcnNlcj8oZD1uZXcgRE9NUGFyc2VyLGM9ZC5wYXJzZUZyb21TdHJpbmcoYiwidGV4dC94bWwiKSk6KGM9bmV3IEFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxET00iKSxjLmFzeW5jPSJmYWxzZSIsYy5sb2FkWE1MKGIpKX1jYXRjaChlKXtjPXZvaWQgMH1yZXR1cm4gYyYmYy5kb2N1bWVudEVsZW1lbnQmJiFjLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJzZXJlcnJvciIpLmxlbmd0aHx8bS5lcnJvcigiSW52YWxpZCBYTUw6ICIrYiksY307dmFyIHljLHpjLEFjPS8jLiokLyxCYz0vKFs/Jl0pXz1bXiZdKi8sQ2M9L14oLio/KTpbIFx0XSooW15cclxuXSopXHI/JC9nbSxEYz0vXig/OmFib3V0fGFwcHxhcHAtc3RvcmFnZXwuKy1leHRlbnNpb258ZmlsZXxyZXN8d2lkZ2V0KTokLyxFYz0vXig/OkdFVHxIRUFEKSQvLEZjPS9eXC9cLy8sR2M9L14oW1x3ListXSs6KSg/OlwvXC8oPzpbXlwvPyNdKkB8KShbXlwvPyM6XSopKD86OihcZCspfCl8KS8sSGM9e30sSWM9e30sSmM9IiovIi5jb25jYXQoIioiKTt0cnl7emM9bG9jYXRpb24uaHJlZn1jYXRjaChLYyl7emM9eS5jcmVhdGVFbGVtZW50KCJhIiksemMuaHJlZj0iIix6Yz16Yy5ocmVmfXljPUdjLmV4ZWMoemMudG9Mb3dlckNhc2UoKSl8fFtdO2Z1bmN0aW9uIExjKGEpe3JldHVybiBmdW5jdGlvbihiLGMpeyJzdHJpbmciIT10eXBlb2YgYiYmKGM9YixiPSIqIik7dmFyIGQsZT0wLGY9Yi50b0xvd2VyQ2FzZSgpLm1hdGNoKEUpfHxbXTtpZihtLmlzRnVuY3Rpb24oYykpd2hpbGUoZD1mW2UrK10pIisiPT09ZC5jaGFyQXQoMCk/KGQ9ZC5zbGljZSgxKXx8IioiLChhW2RdPWFbZF18fFtdKS51bnNoaWZ0KGMpKTooYVtkXT1hW2RdfHxbXSkucHVzaChjKX19ZnVuY3Rpb24gTWMoYSxiLGMsZCl7dmFyIGU9e30sZj1hPT09SWM7ZnVuY3Rpb24gZyhoKXt2YXIgaTtyZXR1cm4gZVtoXT0hMCxtLmVhY2goYVtoXXx8W10sZnVuY3Rpb24oYSxoKXt2YXIgaj1oKGIsYyxkKTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGp8fGZ8fGVbal0/Zj8hKGk9aik6dm9pZCAwOihiLmRhdGFUeXBlcy51bnNoaWZ0KGopLGcoaiksITEpfSksaX1yZXR1cm4gZyhiLmRhdGFUeXBlc1swXSl8fCFlWyIqIl0mJmcoIioiKX1mdW5jdGlvbiBOYyhhLGIpe3ZhciBjLGQsZT1tLmFqYXhTZXR0aW5ncy5mbGF0T3B0aW9uc3x8e307Zm9yKGQgaW4gYil2b2lkIDAhPT1iW2RdJiYoKGVbZF0/YTpjfHwoYz17fSkpW2RdPWJbZF0pO3JldHVybiBjJiZtLmV4dGVuZCghMCxhLGMpLGF9ZnVuY3Rpb24gT2MoYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5jb250ZW50cyxpPWEuZGF0YVR5cGVzO3doaWxlKCIqIj09PWlbMF0paS5zaGlmdCgpLHZvaWQgMD09PWUmJihlPWEubWltZVR5cGV8fGIuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpKTtpZihlKWZvcihnIGluIGgpaWYoaFtnXSYmaFtnXS50ZXN0KGUpKXtpLnVuc2hpZnQoZyk7YnJlYWt9aWYoaVswXWluIGMpZj1pWzBdO2Vsc2V7Zm9yKGcgaW4gYyl7aWYoIWlbMF18fGEuY29udmVydGVyc1tnKyIgIitpWzBdXSl7Zj1nO2JyZWFrfWR8fChkPWcpfWY9Znx8ZH1yZXR1cm4gZj8oZiE9PWlbMF0mJmkudW5zaGlmdChmKSxjW2ZdKTp2b2lkIDB9ZnVuY3Rpb24gUGMoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqPXt9LGs9YS5kYXRhVHlwZXMuc2xpY2UoKTtpZihrWzFdKWZvcihnIGluIGEuY29udmVydGVycylqW2cudG9Mb3dlckNhc2UoKV09YS5jb252ZXJ0ZXJzW2ddO2Y9ay5zaGlmdCgpO3doaWxlKGYpaWYoYS5yZXNwb25zZUZpZWxkc1tmXSYmKGNbYS5yZXNwb25zZUZpZWxkc1tmXV09YiksIWkmJmQmJmEuZGF0YUZpbHRlciYmKGI9YS5kYXRhRmlsdGVyKGIsYS5kYXRhVHlwZSkpLGk9ZixmPWsuc2hpZnQoKSlpZigiKiI9PT1mKWY9aTtlbHNlIGlmKCIqIiE9PWkmJmkhPT1mKXtpZihnPWpbaSsiICIrZl18fGpbIiogIitmXSwhZylmb3IoZSBpbiBqKWlmKGg9ZS5zcGxpdCgiICIpLGhbMV09PT1mJiYoZz1qW2krIiAiK2hbMF1dfHxqWyIqICIraFswXV0pKXtnPT09ITA/Zz1qW2VdOmpbZV0hPT0hMCYmKGY9aFswXSxrLnVuc2hpZnQoaFsxXSkpO2JyZWFrfWlmKGchPT0hMClpZihnJiZhWyJ0aHJvd3MiXSliPWcoYik7ZWxzZSB0cnl7Yj1nKGIpfWNhdGNoKGwpe3JldHVybntzdGF0ZToicGFyc2VyZXJyb3IiLGVycm9yOmc/bDoiTm8gY29udmVyc2lvbiBmcm9tICIraSsiIHRvICIrZn19fXJldHVybntzdGF0ZToic3VjY2VzcyIsZGF0YTpifX1tLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdzOnt1cmw6emMsdHlwZToiR0VUIixpc0xvY2FsOkRjLnRlc3QoeWNbMV0pLGdsb2JhbDohMCxwcm9jZXNzRGF0YTohMCxhc3luYzohMCxjb250ZW50VHlwZToiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04IixhY2NlcHRzOnsiKiI6SmMsdGV4dDoidGV4dC9wbGFpbiIsaHRtbDoidGV4dC9odG1sIix4bWw6ImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWwiLGpzb246ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNjcmlwdCJ9LGNvbnRlbnRzOnt4bWw6L3htbC8saHRtbDovaHRtbC8sanNvbjovanNvbi99LHJlc3BvbnNlRmllbGRzOnt4bWw6InJlc3BvbnNlWE1MIix0ZXh0OiJyZXNwb25zZVRleHQiLGpzb246InJlc3BvbnNlSlNPTiJ9LGNvbnZlcnRlcnM6eyIqIHRleHQiOlN0cmluZywidGV4dCBodG1sIjohMCwidGV4dCBqc29uIjptLnBhcnNlSlNPTiwidGV4dCB4bWwiOm0ucGFyc2VYTUx9LGZsYXRPcHRpb25zOnt1cmw6ITAsY29udGV4dDohMH19LGFqYXhTZXR1cDpmdW5jdGlvbihhLGIpe3JldHVybiBiP05jKE5jKGEsbS5hamF4U2V0dGluZ3MpLGIpOk5jKG0uYWpheFNldHRpbmdzLGEpfSxhamF4UHJlZmlsdGVyOkxjKEhjKSxhamF4VHJhbnNwb3J0OkxjKEljKSxhamF4OmZ1bmN0aW9uKGEsYil7Im9iamVjdCI9PXR5cGVvZiBhJiYoYj1hLGE9dm9pZCAwKSxiPWJ8fHt9O3ZhciBjLGQsZSxmLGcsaCxpLGosaz1tLmFqYXhTZXR1cCh7fSxiKSxsPWsuY29udGV4dHx8ayxuPWsuY29udGV4dCYmKGwubm9kZVR5cGV8fGwuanF1ZXJ5KT9tKGwpOm0uZXZlbnQsbz1tLkRlZmVycmVkKCkscD1tLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxxPWsuc3RhdHVzQ29kZXx8e30scj17fSxzPXt9LHQ9MCx1PSJjYW5jZWxlZCIsdj17cmVhZHlTdGF0ZTowLGdldFJlc3BvbnNlSGVhZGVyOmZ1bmN0aW9uKGEpe3ZhciBiO2lmKDI9PT10KXtpZighail7aj17fTt3aGlsZShiPUNjLmV4ZWMoZikpaltiWzFdLnRvTG93ZXJDYXNlKCldPWJbMl19Yj1qW2EudG9Mb3dlckNhc2UoKV19cmV0dXJuIG51bGw9PWI/bnVsbDpifSxnZXRBbGxSZXNwb25zZUhlYWRlcnM6ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXQ/ZjpudWxsfSxzZXRSZXF1ZXN0SGVhZGVyOmZ1bmN0aW9uKGEsYil7dmFyIGM9YS50b0xvd2VyQ2FzZSgpO3JldHVybiB0fHwoYT1zW2NdPXNbY118fGEsclthXT1iKSx0aGlzfSxvdmVycmlkZU1pbWVUeXBlOmZ1bmN0aW9uKGEpe3JldHVybiB0fHwoay5taW1lVHlwZT1hKSx0aGlzfSxzdGF0dXNDb2RlOmZ1bmN0aW9uKGEpe3ZhciBiO2lmKGEpaWYoMj50KWZvcihiIGluIGEpcVtiXT1bcVtiXSxhW2JdXTtlbHNlIHYuYWx3YXlzKGFbdi5zdGF0dXNdKTtyZXR1cm4gdGhpc30sYWJvcnQ6ZnVuY3Rpb24oYSl7dmFyIGI9YXx8dTtyZXR1cm4gaSYmaS5hYm9ydChiKSx4KDAsYiksdGhpc319O2lmKG8ucHJvbWlzZSh2KS5jb21wbGV0ZT1wLmFkZCx2LnN1Y2Nlc3M9di5kb25lLHYuZXJyb3I9di5mYWlsLGsudXJsPSgoYXx8ay51cmx8fHpjKSsiIikucmVwbGFjZShBYywiIikucmVwbGFjZShGYyx5Y1sxXSsiLy8iKSxrLnR5cGU9Yi5tZXRob2R8fGIudHlwZXx8ay5tZXRob2R8fGsudHlwZSxrLmRhdGFUeXBlcz1tLnRyaW0oay5kYXRhVHlwZXx8IioiKS50b0xvd2VyQ2FzZSgpLm1hdGNoKEUpfHxbIiJdLG51bGw9PWsuY3Jvc3NEb21haW4mJihjPUdjLmV4ZWMoay51cmwudG9Mb3dlckNhc2UoKSksay5jcm9zc0RvbWFpbj0hKCFjfHxjWzFdPT09eWNbMV0mJmNbMl09PT15Y1syXSYmKGNbM118fCgiaHR0cDoiPT09Y1sxXT8iODAiOiI0NDMiKSk9PT0oeWNbM118fCgiaHR0cDoiPT09eWNbMV0/IjgwIjoiNDQzIikpKSksay5kYXRhJiZrLnByb2Nlc3NEYXRhJiYic3RyaW5nIiE9dHlwZW9mIGsuZGF0YSYmKGsuZGF0YT1tLnBhcmFtKGsuZGF0YSxrLnRyYWRpdGlvbmFsKSksTWMoSGMsayxiLHYpLDI9PT10KXJldHVybiB2O2g9ay5nbG9iYWwsaCYmMD09PW0uYWN0aXZlKysmJm0uZXZlbnQudHJpZ2dlcigiYWpheFN0YXJ0Iiksay50eXBlPWsudHlwZS50b1VwcGVyQ2FzZSgpLGsuaGFzQ29udGVudD0hRWMudGVzdChrLnR5cGUpLGU9ay51cmwsay5oYXNDb250ZW50fHwoay5kYXRhJiYoZT1rLnVybCs9KHdjLnRlc3QoZSk/IiYiOiI/Iikray5kYXRhLGRlbGV0ZSBrLmRhdGEpLGsuY2FjaGU9PT0hMSYmKGsudXJsPUJjLnRlc3QoZSk/ZS5yZXBsYWNlKEJjLCIkMV89Iit2YysrKTplKyh3Yy50ZXN0KGUpPyImIjoiPyIpKyJfPSIrdmMrKykpLGsuaWZNb2RpZmllZCYmKG0ubGFzdE1vZGlmaWVkW2VdJiZ2LnNldFJlcXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIixtLmxhc3RNb2RpZmllZFtlXSksbS5ldGFnW2VdJiZ2LnNldFJlcXVlc3RIZWFkZXIoIklmLU5vbmUtTWF0Y2giLG0uZXRhZ1tlXSkpLChrLmRhdGEmJmsuaGFzQ29udGVudCYmay5jb250ZW50VHlwZSE9PSExfHxiLmNvbnRlbnRUeXBlKSYmdi5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLGsuY29udGVudFR5cGUpLHYuc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0IixrLmRhdGFUeXBlc1swXSYmay5hY2NlcHRzW2suZGF0YVR5cGVzWzBdXT9rLmFjY2VwdHNbay5kYXRhVHlwZXNbMF1dKygiKiIhPT1rLmRhdGFUeXBlc1swXT8iLCAiK0pjKyI7IHE9MC4wMSI6IiIpOmsuYWNjZXB0c1siKiJdKTtmb3IoZCBpbiBrLmhlYWRlcnMpdi5zZXRSZXF1ZXN0SGVhZGVyKGQsay5oZWFkZXJzW2RdKTtpZihrLmJlZm9yZVNlbmQmJihrLmJlZm9yZVNlbmQuY2FsbChsLHYsayk9PT0hMXx8Mj09PXQpKXJldHVybiB2LmFib3J0KCk7dT0iYWJvcnQiO2ZvcihkIGlue3N1Y2Nlc3M6MSxlcnJvcjoxLGNvbXBsZXRlOjF9KXZbZF0oa1tkXSk7aWYoaT1NYyhJYyxrLGIsdikpe3YucmVhZHlTdGF0ZT0xLGgmJm4udHJpZ2dlcigiYWpheFNlbmQiLFt2LGtdKSxrLmFzeW5jJiZrLnRpbWVvdXQ+MCYmKGc9c2V0VGltZW91dChmdW5jdGlvbigpe3YuYWJvcnQoInRpbWVvdXQiKX0say50aW1lb3V0KSk7dHJ5e3Q9MSxpLnNlbmQocix4KX1jYXRjaCh3KXtpZighKDI+dCkpdGhyb3cgdzt4KC0xLHcpfX1lbHNlIHgoLTEsIk5vIFRyYW5zcG9ydCIpO2Z1bmN0aW9uIHgoYSxiLGMsZCl7dmFyIGoscixzLHUsdyx4PWI7MiE9PXQmJih0PTIsZyYmY2xlYXJUaW1lb3V0KGcpLGk9dm9pZCAwLGY9ZHx8IiIsdi5yZWFkeVN0YXRlPWE+MD80OjAsaj1hPj0yMDAmJjMwMD5hfHwzMDQ9PT1hLGMmJih1PU9jKGssdixjKSksdT1QYyhrLHUsdixqKSxqPyhrLmlmTW9kaWZpZWQmJih3PXYuZ2V0UmVzcG9uc2VIZWFkZXIoIkxhc3QtTW9kaWZpZWQiKSx3JiYobS5sYXN0TW9kaWZpZWRbZV09dyksdz12LmdldFJlc3BvbnNlSGVhZGVyKCJldGFnIiksdyYmKG0uZXRhZ1tlXT13KSksMjA0PT09YXx8IkhFQUQiPT09ay50eXBlP3g9Im5vY29udGVudCI6MzA0PT09YT94PSJub3Rtb2RpZmllZCI6KHg9dS5zdGF0ZSxyPXUuZGF0YSxzPXUuZXJyb3Isaj0hcykpOihzPXgsKGF8fCF4KSYmKHg9ImVycm9yIiwwPmEmJihhPTApKSksdi5zdGF0dXM9YSx2LnN0YXR1c1RleHQ9KGJ8fHgpKyIiLGo/by5yZXNvbHZlV2l0aChsLFtyLHgsdl0pOm8ucmVqZWN0V2l0aChsLFt2LHgsc10pLHYuc3RhdHVzQ29kZShxKSxxPXZvaWQgMCxoJiZuLnRyaWdnZXIoaj8iYWpheFN1Y2Nlc3MiOiJhamF4RXJyb3IiLFt2LGssaj9yOnNdKSxwLmZpcmVXaXRoKGwsW3YseF0pLGgmJihuLnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW3Ysa10pLC0tbS5hY3RpdmV8fG0uZXZlbnQudHJpZ2dlcigiYWpheFN0b3AiKSkpfXJldHVybiB2fSxnZXRKU09OOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gbS5nZXQoYSxiLGMsImpzb24iKX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIG0uZ2V0KGEsdm9pZCAwLGIsInNjcmlwdCIpfX0pLG0uZWFjaChbImdldCIsInBvc3QiXSxmdW5jdGlvbihhLGIpe21bYl09ZnVuY3Rpb24oYSxjLGQsZSl7cmV0dXJuIG0uaXNGdW5jdGlvbihjKSYmKGU9ZXx8ZCxkPWMsYz12b2lkIDApLG0uYWpheCh7dXJsOmEsdHlwZTpiLGRhdGFUeXBlOmUsZGF0YTpjLHN1Y2Nlc3M6ZH0pfX0pLG0uZWFjaChbImFqYXhTdGFydCIsImFqYXhTdG9wIiwiYWpheENvbXBsZXRlIiwiYWpheEVycm9yIiwiYWpheFN1Y2Nlc3MiLCJhamF4U2VuZCJdLGZ1bmN0aW9uKGEsYil7bS5mbltiXT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5vbihiLGEpfX0pLG0uX2V2YWxVcmw9ZnVuY3Rpb24oYSl7cmV0dXJuIG0uYWpheCh7dXJsOmEsdHlwZToiR0VUIixkYXRhVHlwZToic2NyaXB0Iixhc3luYzohMSxnbG9iYWw6ITEsInRocm93cyI6ITB9KX0sbS5mbi5leHRlbmQoe3dyYXBBbGw6ZnVuY3Rpb24oYSl7aWYobS5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYil7bSh0aGlzKS53cmFwQWxsKGEuY2FsbCh0aGlzLGIpKX0pO2lmKHRoaXNbMF0pe3ZhciBiPW0oYSx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmVxKDApLmNsb25lKCEwKTt0aGlzWzBdLnBhcmVudE5vZGUmJmIuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pLGIubWFwKGZ1bmN0aW9uKCl7dmFyIGE9dGhpczt3aGlsZShhLmZpcnN0Q2hpbGQmJjE9PT1hLmZpcnN0Q2hpbGQubm9kZVR5cGUpYT1hLmZpcnN0Q2hpbGQ7cmV0dXJuIGF9KS5hcHBlbmQodGhpcyl9cmV0dXJuIHRoaXN9LHdyYXBJbm5lcjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKG0uaXNGdW5jdGlvbihhKT9mdW5jdGlvbihiKXttKHRoaXMpLndyYXBJbm5lcihhLmNhbGwodGhpcyxiKSl9OmZ1bmN0aW9uKCl7dmFyIGI9bSh0aGlzKSxjPWIuY29udGVudHMoKTtjLmxlbmd0aD9jLndyYXBBbGwoYSk6Yi5hcHBlbmQoYSl9KX0sd3JhcDpmdW5jdGlvbihhKXt2YXIgYj1tLmlzRnVuY3Rpb24oYSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihjKXttKHRoaXMpLndyYXBBbGwoYj9hLmNhbGwodGhpcyxjKTphKX0pfSx1bndyYXA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnQoKS5lYWNoKGZ1bmN0aW9uKCl7bS5ub2RlTmFtZSh0aGlzLCJib2R5Iil8fG0odGhpcykucmVwbGFjZVdpdGgodGhpcy5jaGlsZE5vZGVzKX0pLmVuZCgpfX0pLG0uZXhwci5maWx0ZXJzLmhpZGRlbj1mdW5jdGlvbihhKXtyZXR1cm4gYS5vZmZzZXRXaWR0aDw9MCYmYS5vZmZzZXRIZWlnaHQ8PTB8fCFrLnJlbGlhYmxlSGlkZGVuT2Zmc2V0cygpJiYibm9uZSI9PT0oYS5zdHlsZSYmYS5zdHlsZS5kaXNwbGF5fHxtLmNzcyhhLCJkaXNwbGF5IikpfSxtLmV4cHIuZmlsdGVycy52aXNpYmxlPWZ1bmN0aW9uKGEpe3JldHVybiFtLmV4cHIuZmlsdGVycy5oaWRkZW4oYSl9O3ZhciBRYz0vJTIwL2csUmM9L1xbXF0kLyxTYz0vXHI/XG4vZyxUYz0vXig/OnN1Ym1pdHxidXR0b258aW1hZ2V8cmVzZXR8ZmlsZSkkL2ksVWM9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8a2V5Z2VuKS9pO2Z1bmN0aW9uIFZjKGEsYixjLGQpe3ZhciBlO2lmKG0uaXNBcnJheShiKSltLmVhY2goYixmdW5jdGlvbihiLGUpe2N8fFJjLnRlc3QoYSk/ZChhLGUpOlZjKGErIlsiKygib2JqZWN0Ij09dHlwZW9mIGU/YjoiIikrIl0iLGUsYyxkKX0pO2Vsc2UgaWYoY3x8Im9iamVjdCIhPT1tLnR5cGUoYikpZChhLGIpO2Vsc2UgZm9yKGUgaW4gYilWYyhhKyJbIitlKyJdIixiW2VdLGMsZCl9bS5wYXJhbT1mdW5jdGlvbihhLGIpe3ZhciBjLGQ9W10sZT1mdW5jdGlvbihhLGIpe2I9bS5pc0Z1bmN0aW9uKGIpP2IoKTpudWxsPT1iPyIiOmIsZFtkLmxlbmd0aF09ZW5jb2RlVVJJQ29tcG9uZW50KGEpKyI9IitlbmNvZGVVUklDb21wb25lbnQoYil9O2lmKHZvaWQgMD09PWImJihiPW0uYWpheFNldHRpbmdzJiZtLmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbCksbS5pc0FycmF5KGEpfHxhLmpxdWVyeSYmIW0uaXNQbGFpbk9iamVjdChhKSltLmVhY2goYSxmdW5jdGlvbigpe2UodGhpcy5uYW1lLHRoaXMudmFsdWUpfSk7ZWxzZSBmb3IoYyBpbiBhKVZjKGMsYVtjXSxiLGUpO3JldHVybiBkLmpvaW4oIiYiKS5yZXBsYWNlKFFjLCIrIil9LG0uZm4uZXh0ZW5kKHtzZXJpYWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4gbS5wYXJhbSh0aGlzLnNlcmlhbGl6ZUFycmF5KCkpfSxzZXJpYWxpemVBcnJheTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3ZhciBhPW0ucHJvcCh0aGlzLCJlbGVtZW50cyIpO3JldHVybiBhP20ubWFrZUFycmF5KGEpOnRoaXN9KS5maWx0ZXIoZnVuY3Rpb24oKXt2YXIgYT10aGlzLnR5cGU7cmV0dXJuIHRoaXMubmFtZSYmIW0odGhpcykuaXMoIjpkaXNhYmxlZCIpJiZVYy50ZXN0KHRoaXMubm9kZU5hbWUpJiYhVGMudGVzdChhKSYmKHRoaXMuY2hlY2tlZHx8IVcudGVzdChhKSl9KS5tYXAoZnVuY3Rpb24oYSxiKXt2YXIgYz1tKHRoaXMpLnZhbCgpO3JldHVybiBudWxsPT1jP251bGw6bS5pc0FycmF5KGMpP20ubWFwKGMsZnVuY3Rpb24oYSl7cmV0dXJue25hbWU6Yi5uYW1lLHZhbHVlOmEucmVwbGFjZShTYywiXHJcbiIpfX0pOntuYW1lOmIubmFtZSx2YWx1ZTpjLnJlcGxhY2UoU2MsIlxyXG4iKX19KS5nZXQoKX19KSxtLmFqYXhTZXR0aW5ncy54aHI9dm9pZCAwIT09YS5BY3RpdmVYT2JqZWN0P2Z1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaXNMb2NhbCYmL14oZ2V0fHBvc3R8aGVhZHxwdXR8ZGVsZXRlfG9wdGlvbnMpJC9pLnRlc3QodGhpcy50eXBlKSYmWmMoKXx8JGMoKX06WmM7dmFyIFdjPTAsWGM9e30sWWM9bS5hamF4U2V0dGluZ3MueGhyKCk7YS5BY3RpdmVYT2JqZWN0JiZtKGEpLm9uKCJ1bmxvYWQiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhIGluIFhjKVhjW2FdKHZvaWQgMCwhMCl9KSxrLmNvcnM9ISFZYyYmIndpdGhDcmVkZW50aWFscyJpbiBZYyxZYz1rLmFqYXg9ISFZYyxZYyYmbS5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKGEpe2lmKCFhLmNyb3NzRG9tYWlufHxrLmNvcnMpe3ZhciBiO3JldHVybntzZW5kOmZ1bmN0aW9uKGMsZCl7dmFyIGUsZj1hLnhocigpLGc9KytXYztpZihmLm9wZW4oYS50eXBlLGEudXJsLGEuYXN5bmMsYS51c2VybmFtZSxhLnBhc3N3b3JkKSxhLnhockZpZWxkcylmb3IoZSBpbiBhLnhockZpZWxkcylmW2VdPWEueGhyRmllbGRzW2VdO2EubWltZVR5cGUmJmYub3ZlcnJpZGVNaW1lVHlwZSYmZi5vdmVycmlkZU1pbWVUeXBlKGEubWltZVR5cGUpLGEuY3Jvc3NEb21haW58fGNbIlgtUmVxdWVzdGVkLVdpdGgiXXx8KGNbIlgtUmVxdWVzdGVkLVdpdGgiXT0iWE1MSHR0cFJlcXVlc3QiKTtmb3IoZSBpbiBjKXZvaWQgMCE9PWNbZV0mJmYuc2V0UmVxdWVzdEhlYWRlcihlLGNbZV0rIiIpO2Yuc2VuZChhLmhhc0NvbnRlbnQmJmEuZGF0YXx8bnVsbCksYj1mdW5jdGlvbihjLGUpe3ZhciBoLGksajtpZihiJiYoZXx8ND09PWYucmVhZHlTdGF0ZSkpaWYoZGVsZXRlIFhjW2ddLGI9dm9pZCAwLGYub25yZWFkeXN0YXRlY2hhbmdlPW0ubm9vcCxlKTQhPT1mLnJlYWR5U3RhdGUmJmYuYWJvcnQoKTtlbHNle2o9e30saD1mLnN0YXR1cywic3RyaW5nIj09dHlwZW9mIGYucmVzcG9uc2VUZXh0JiYoai50ZXh0PWYucmVzcG9uc2VUZXh0KTt0cnl7aT1mLnN0YXR1c1RleHR9Y2F0Y2goayl7aT0iIn1ofHwhYS5pc0xvY2FsfHxhLmNyb3NzRG9tYWluPzEyMjM9PT1oJiYoaD0yMDQpOmg9ai50ZXh0PzIwMDo0MDR9aiYmZChoLGksaixmLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKX0sYS5hc3luYz80PT09Zi5yZWFkeVN0YXRlP3NldFRpbWVvdXQoYik6Zi5vbnJlYWR5c3RhdGVjaGFuZ2U9WGNbZ109YjpiKCl9LGFib3J0OmZ1bmN0aW9uKCl7YiYmYih2b2lkIDAsITApfX19fSk7ZnVuY3Rpb24gWmMoKXt0cnl7cmV0dXJuIG5ldyBhLlhNTEh0dHBSZXF1ZXN0fWNhdGNoKGIpe319ZnVuY3Rpb24gJGMoKXt0cnl7cmV0dXJuIG5ldyBhLkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIil9Y2F0Y2goYil7fX1tLmFqYXhTZXR1cCh7YWNjZXB0czp7c2NyaXB0OiJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdCJ9LGNvbnRlbnRzOntzY3JpcHQ6Lyg/OmphdmF8ZWNtYSlzY3JpcHQvfSxjb252ZXJ0ZXJzOnsidGV4dCBzY3JpcHQiOmZ1bmN0aW9uKGEpe3JldHVybiBtLmdsb2JhbEV2YWwoYSksYX19fSksbS5hamF4UHJlZmlsdGVyKCJzY3JpcHQiLGZ1bmN0aW9uKGEpe3ZvaWQgMD09PWEuY2FjaGUmJihhLmNhY2hlPSExKSxhLmNyb3NzRG9tYWluJiYoYS50eXBlPSJHRVQiLGEuZ2xvYmFsPSExKX0pLG0uYWpheFRyYW5zcG9ydCgic2NyaXB0IixmdW5jdGlvbihhKXtpZihhLmNyb3NzRG9tYWluKXt2YXIgYixjPXkuaGVhZHx8bSgiaGVhZCIpWzBdfHx5LmRvY3VtZW50RWxlbWVudDtyZXR1cm57c2VuZDpmdW5jdGlvbihkLGUpe2I9eS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxiLmFzeW5jPSEwLGEuc2NyaXB0Q2hhcnNldCYmKGIuY2hhcnNldD1hLnNjcmlwdENoYXJzZXQpLGIuc3JjPWEudXJsLGIub25sb2FkPWIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKGEsYyl7KGN8fCFiLnJlYWR5U3RhdGV8fC9sb2FkZWR8Y29tcGxldGUvLnRlc3QoYi5yZWFkeVN0YXRlKSkmJihiLm9ubG9hZD1iLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLGIucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGIpLGI9bnVsbCxjfHxlKDIwMCwic3VjY2VzcyIpKX0sYy5pbnNlcnRCZWZvcmUoYixjLmZpcnN0Q2hpbGQpfSxhYm9ydDpmdW5jdGlvbigpe2ImJmIub25sb2FkKHZvaWQgMCwhMCl9fX19KTt2YXIgX2M9W10sYWQ9Lyg9KVw/KD89JnwkKXxcP1w/LzttLmFqYXhTZXR1cCh7anNvbnA6ImNhbGxiYWNrIixqc29ucENhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGE9X2MucG9wKCl8fG0uZXhwYW5kbysiXyIrdmMrKztyZXR1cm4gdGhpc1thXT0hMCxhfX0pLG0uYWpheFByZWZpbHRlcigianNvbiBqc29ucCIsZnVuY3Rpb24oYixjLGQpe3ZhciBlLGYsZyxoPWIuanNvbnAhPT0hMSYmKGFkLnRlc3QoYi51cmwpPyJ1cmwiOiJzdHJpbmciPT10eXBlb2YgYi5kYXRhJiYhKGIuY29udGVudFR5cGV8fCIiKS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSYmYWQudGVzdChiLmRhdGEpJiYiZGF0YSIpO3JldHVybiBofHwianNvbnAiPT09Yi5kYXRhVHlwZXNbMF0/KGU9Yi5qc29ucENhbGxiYWNrPW0uaXNGdW5jdGlvbihiLmpzb25wQ2FsbGJhY2spP2IuanNvbnBDYWxsYmFjaygpOmIuanNvbnBDYWxsYmFjayxoP2JbaF09YltoXS5yZXBsYWNlKGFkLCIkMSIrZSk6Yi5qc29ucCE9PSExJiYoYi51cmwrPSh3Yy50ZXN0KGIudXJsKT8iJiI6Ij8iKStiLmpzb25wKyI9IitlKSxiLmNvbnZlcnRlcnNbInNjcmlwdCBqc29uIl09ZnVuY3Rpb24oKXtyZXR1cm4gZ3x8bS5lcnJvcihlKyIgd2FzIG5vdCBjYWxsZWQiKSxnWzBdfSxiLmRhdGFUeXBlc1swXT0ianNvbiIsZj1hW2VdLGFbZV09ZnVuY3Rpb24oKXtnPWFyZ3VtZW50c30sZC5hbHdheXMoZnVuY3Rpb24oKXthW2VdPWYsYltlXSYmKGIuanNvbnBDYWxsYmFjaz1jLmpzb25wQ2FsbGJhY2ssX2MucHVzaChlKSksZyYmbS5pc0Z1bmN0aW9uKGYpJiZmKGdbMF0pLGc9Zj12b2lkIDB9KSwic2NyaXB0Iik6dm9pZCAwfSksbS5wYXJzZUhUTUw9ZnVuY3Rpb24oYSxiLGMpe2lmKCFhfHwic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIG51bGw7ImJvb2xlYW4iPT10eXBlb2YgYiYmKGM9YixiPSExKSxiPWJ8fHk7dmFyIGQ9dS5leGVjKGEpLGU9IWMmJltdO3JldHVybiBkP1tiLmNyZWF0ZUVsZW1lbnQoZFsxXSldOihkPW0uYnVpbGRGcmFnbWVudChbYV0sYixlKSxlJiZlLmxlbmd0aCYmbShlKS5yZW1vdmUoKSxtLm1lcmdlKFtdLGQuY2hpbGROb2RlcykpfTt2YXIgYmQ9bS5mbi5sb2FkO20uZm4ubG9hZD1mdW5jdGlvbihhLGIsYyl7aWYoInN0cmluZyIhPXR5cGVvZiBhJiZiZClyZXR1cm4gYmQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBkLGUsZixnPXRoaXMsaD1hLmluZGV4T2YoIiAiKTtyZXR1cm4gaD49MCYmKGQ9bS50cmltKGEuc2xpY2UoaCxhLmxlbmd0aCkpLGE9YS5zbGljZSgwLGgpKSxtLmlzRnVuY3Rpb24oYik/KGM9YixiPXZvaWQgMCk6YiYmIm9iamVjdCI9PXR5cGVvZiBiJiYoZj0iUE9TVCIpLGcubGVuZ3RoPjAmJm0uYWpheCh7dXJsOmEsdHlwZTpmLGRhdGFUeXBlOiJodG1sIixkYXRhOmJ9KS5kb25lKGZ1bmN0aW9uKGEpe2U9YXJndW1lbnRzLGcuaHRtbChkP20oIjxkaXY+IikuYXBwZW5kKG0ucGFyc2VIVE1MKGEpKS5maW5kKGQpOmEpfSkuY29tcGxldGUoYyYmZnVuY3Rpb24oYSxiKXtnLmVhY2goYyxlfHxbYS5yZXNwb25zZVRleHQsYixhXSl9KSx0aGlzfSxtLmV4cHIuZmlsdGVycy5hbmltYXRlZD1mdW5jdGlvbihhKXtyZXR1cm4gbS5ncmVwKG0udGltZXJzLGZ1bmN0aW9uKGIpe3JldHVybiBhPT09Yi5lbGVtfSkubGVuZ3RofTt2YXIgY2Q9YS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7ZnVuY3Rpb24gZGQoYSl7cmV0dXJuIG0uaXNXaW5kb3coYSk/YTo5PT09YS5ub2RlVHlwZT9hLmRlZmF1bHRWaWV3fHxhLnBhcmVudFdpbmRvdzohMX1tLm9mZnNldD17c2V0T2Zmc2V0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrPW0uY3NzKGEsInBvc2l0aW9uIiksbD1tKGEpLG49e307InN0YXRpYyI9PT1rJiYoYS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiKSxoPWwub2Zmc2V0KCksZj1tLmNzcyhhLCJ0b3AiKSxpPW0uY3NzKGEsImxlZnQiKSxqPSgiYWJzb2x1dGUiPT09a3x8ImZpeGVkIj09PWspJiZtLmluQXJyYXkoImF1dG8iLFtmLGldKT4tMSxqPyhkPWwucG9zaXRpb24oKSxnPWQudG9wLGU9ZC5sZWZ0KTooZz1wYXJzZUZsb2F0KGYpfHwwLGU9cGFyc2VGbG9hdChpKXx8MCksbS5pc0Z1bmN0aW9uKGIpJiYoYj1iLmNhbGwoYSxjLGgpKSxudWxsIT1iLnRvcCYmKG4udG9wPWIudG9wLWgudG9wK2cpLG51bGwhPWIubGVmdCYmKG4ubGVmdD1iLmxlZnQtaC5sZWZ0K2UpLCJ1c2luZyJpbiBiP2IudXNpbmcuY2FsbChhLG4pOmwuY3NzKG4pfX0sbS5mbi5leHRlbmQoe29mZnNldDpmdW5jdGlvbihhKXtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiB2b2lkIDA9PT1hP3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKGIpe20ub2Zmc2V0LnNldE9mZnNldCh0aGlzLGEsYil9KTt2YXIgYixjLGQ9e3RvcDowLGxlZnQ6MH0sZT10aGlzWzBdLGY9ZSYmZS5vd25lckRvY3VtZW50O2lmKGYpcmV0dXJuIGI9Zi5kb2N1bWVudEVsZW1lbnQsbS5jb250YWlucyhiLGUpPyh0eXBlb2YgZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QhPT1LJiYoZD1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKSxjPWRkKGYpLHt0b3A6ZC50b3ArKGMucGFnZVlPZmZzZXR8fGIuc2Nyb2xsVG9wKS0oYi5jbGllbnRUb3B8fDApLGxlZnQ6ZC5sZWZ0KyhjLnBhZ2VYT2Zmc2V0fHxiLnNjcm9sbExlZnQpLShiLmNsaWVudExlZnR8fDApfSk6ZH0scG9zaXRpb246ZnVuY3Rpb24oKXtpZih0aGlzWzBdKXt2YXIgYSxiLGM9e3RvcDowLGxlZnQ6MH0sZD10aGlzWzBdO3JldHVybiJmaXhlZCI9PT1tLmNzcyhkLCJwb3NpdGlvbiIpP2I9ZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTooYT10aGlzLm9mZnNldFBhcmVudCgpLGI9dGhpcy5vZmZzZXQoKSxtLm5vZGVOYW1lKGFbMF0sImh0bWwiKXx8KGM9YS5vZmZzZXQoKSksYy50b3ArPW0uY3NzKGFbMF0sImJvcmRlclRvcFdpZHRoIiwhMCksYy5sZWZ0Kz1tLmNzcyhhWzBdLCJib3JkZXJMZWZ0V2lkdGgiLCEwKSkse3RvcDpiLnRvcC1jLnRvcC1tLmNzcyhkLCJtYXJnaW5Ub3AiLCEwKSxsZWZ0OmIubGVmdC1jLmxlZnQtbS5jc3MoZCwibWFyZ2luTGVmdCIsITApfX19LG9mZnNldFBhcmVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3ZhciBhPXRoaXMub2Zmc2V0UGFyZW50fHxjZDt3aGlsZShhJiYhbS5ub2RlTmFtZShhLCJodG1sIikmJiJzdGF0aWMiPT09bS5jc3MoYSwicG9zaXRpb24iKSlhPWEub2Zmc2V0UGFyZW50O3JldHVybiBhfHxjZH0pfX0pLG0uZWFjaCh7c2Nyb2xsTGVmdDoicGFnZVhPZmZzZXQiLHNjcm9sbFRvcDoicGFnZVlPZmZzZXQifSxmdW5jdGlvbihhLGIpe3ZhciBjPS9ZLy50ZXN0KGIpO20uZm5bYV09ZnVuY3Rpb24oZCl7cmV0dXJuIFYodGhpcyxmdW5jdGlvbihhLGQsZSl7dmFyIGY9ZGQoYSk7cmV0dXJuIHZvaWQgMD09PWU/Zj9iIGluIGY/ZltiXTpmLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFtkXTphW2RdOnZvaWQoZj9mLnNjcm9sbFRvKGM/bShmKS5zY3JvbGxMZWZ0KCk6ZSxjP2U6bShmKS5zY3JvbGxUb3AoKSk6YVtkXT1lKX0sYSxkLGFyZ3VtZW50cy5sZW5ndGgsbnVsbCl9fSksbS5lYWNoKFsidG9wIiwibGVmdCJdLGZ1bmN0aW9uKGEsYil7bS5jc3NIb29rc1tiXT1MYihrLnBpeGVsUG9zaXRpb24sZnVuY3Rpb24oYSxjKXtyZXR1cm4gYz8oYz1KYihhLGIpLEhiLnRlc3QoYyk/bShhKS5wb3NpdGlvbigpW2JdKyJweCI6Yyk6dm9pZCAwfSl9KSxtLmVhY2goe0hlaWdodDoiaGVpZ2h0IixXaWR0aDoid2lkdGgifSxmdW5jdGlvbihhLGIpe20uZWFjaCh7cGFkZGluZzoiaW5uZXIiK2EsY29udGVudDpiLCIiOiJvdXRlciIrYX0sZnVuY3Rpb24oYyxkKXttLmZuW2RdPWZ1bmN0aW9uKGQsZSl7dmFyIGY9YXJndW1lbnRzLmxlbmd0aCYmKGN8fCJib29sZWFuIiE9dHlwZW9mIGQpLGc9Y3x8KGQ9PT0hMHx8ZT09PSEwPyJtYXJnaW4iOiJib3JkZXIiKTtyZXR1cm4gVih0aGlzLGZ1bmN0aW9uKGIsYyxkKXt2YXIgZTtyZXR1cm4gbS5pc1dpbmRvdyhiKT9iLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFsiY2xpZW50IithXTo5PT09Yi5ub2RlVHlwZT8oZT1iLmRvY3VtZW50RWxlbWVudCxNYXRoLm1heChiLmJvZHlbInNjcm9sbCIrYV0sZVsic2Nyb2xsIithXSxiLmJvZHlbIm9mZnNldCIrYV0sZVsib2Zmc2V0IithXSxlWyJjbGllbnQiK2FdKSk6dm9pZCAwPT09ZD9tLmNzcyhiLGMsZyk6bS5zdHlsZShiLGMsZCxnKX0sYixmP2Q6dm9pZCAwLGYsbnVsbCl9fSl9KSxtLmZuLnNpemU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZW5ndGh9LG0uZm4uYW5kU2VsZj1tLmZuLmFkZEJhY2ssImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZCYmZGVmaW5lKCJqcXVlcnkiLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIG19KTt2YXIgZWQ9YS5qUXVlcnksZmQ9YS4kO3JldHVybiBtLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oYil7cmV0dXJuIGEuJD09PW0mJihhLiQ9ZmQpLGImJmEualF1ZXJ5PT09bSYmKGEualF1ZXJ5PWVkKSxtfSx0eXBlb2YgYj09PUsmJihhLmpRdWVyeT1hLiQ9bSksbX0pOwo="></script>
<link href="data:text/css;charset=utf-8,%0Adiv%20%2Edygraphs%20input%5Btype%3D%22text%22%5D%20%7B%0Awidth%3A%2025px%3B%0A%7D%0Adiv%20%2Eqt%20%2Edygraph%2Daxis%2Dlabel%20%7B%0Afont%2Dsize%3A%2011px%3B%0A%7D" rel="stylesheet" />
<script src="data:application/x-javascript;base64,LyohIEBsaWNlbnNlIENvcHlyaWdodCAyMDE0IERhbiBWYW5kZXJrYW0gKGRhbnZka0BnbWFpbC5jb20pIE1JVC1saWNlbnNlZCAoaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCkgKi8KIWZ1bmN0aW9uKHQpeyJ1c2Ugc3RyaWN0Ijtmb3IodmFyIGUsYSxpPXt9LHI9ZnVuY3Rpb24oKXt9LG49Im1lbW9yeSIuc3BsaXQoIiwiKSxvPSJhc3NlcnQsY2xlYXIsY291bnQsZGVidWcsZGlyLGRpcnhtbCxlcnJvcixleGNlcHRpb24sZ3JvdXAsZ3JvdXBDb2xsYXBzZWQsZ3JvdXBFbmQsaW5mbyxsb2csbWFya1RpbWVsaW5lLHByb2ZpbGUscHJvZmlsZXMscHJvZmlsZUVuZCxzaG93LHRhYmxlLHRpbWUsdGltZUVuZCx0aW1lbGluZSx0aW1lbGluZUVuZCx0aW1lU3RhbXAsdHJhY2Usd2FybiIuc3BsaXQoIiwiKTtlPW4ucG9wKCk7KXRbZV09dFtlXXx8aTtmb3IoO2E9by5wb3AoKTspdFthXT10W2FdfHxyfSh0aGlzLmNvbnNvbGU9dGhpcy5jb25zb2xlfHx7fSksZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELnByb3RvdHlwZS5pbnN0YWxsUGF0dGVybj1mdW5jdGlvbih0KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHRoaXMuaXNQYXR0ZXJuSW5zdGFsbGVkKXRocm93Ik11c3QgdW4taW5zdGFsbCBvbGQgbGluZSBwYXR0ZXJuIGJlZm9yZSBpbnN0YWxsaW5nIGEgbmV3IG9uZS4iO3RoaXMuaXNQYXR0ZXJuSW5zdGFsbGVkPSEwO3ZhciBlPVswLDBdLGE9W10saT10aGlzLmJlZ2luUGF0aCxyPXRoaXMubGluZVRvLG49dGhpcy5tb3ZlVG8sbz10aGlzLnN0cm9rZTt0aGlzLnVuaW5zdGFsbFBhdHRlcm49ZnVuY3Rpb24oKXt0aGlzLmJlZ2luUGF0aD1pLHRoaXMubGluZVRvPXIsdGhpcy5tb3ZlVG89bix0aGlzLnN0cm9rZT1vLHRoaXMudW5pbnN0YWxsUGF0dGVybj12b2lkIDAsdGhpcy5pc1BhdHRlcm5JbnN0YWxsZWQ9dm9pZCAwfSx0aGlzLmJlZ2luUGF0aD1mdW5jdGlvbigpe2E9W10saS5jYWxsKHRoaXMpfSx0aGlzLm1vdmVUbz1mdW5jdGlvbih0LGUpe2EucHVzaChbW3QsZV1dKSxuLmNhbGwodGhpcyx0LGUpfSx0aGlzLmxpbmVUbz1mdW5jdGlvbih0LGUpe3ZhciBpPWFbYS5sZW5ndGgtMV07aS5wdXNoKFt0LGVdKX0sdGhpcy5zdHJva2U9ZnVuY3Rpb24oKXtpZigwPT09YS5sZW5ndGgpcmV0dXJuIHZvaWQgby5jYWxsKHRoaXMpO2Zvcih2YXIgaT0wO2k8YS5sZW5ndGg7aSsrKWZvcih2YXIgcz1hW2ldLGw9c1swXVswXSxoPXNbMF1bMV0scD0xO3A8cy5sZW5ndGg7cCsrKXt2YXIgZz1zW3BdWzBdLGQ9c1twXVsxXTt0aGlzLnNhdmUoKTt2YXIgdT1nLWwsYz1kLWgseT1NYXRoLnNxcnQodSp1K2MqYyksXz1NYXRoLmF0YW4yKGMsdSk7dGhpcy50cmFuc2xhdGUobCxoKSxuLmNhbGwodGhpcywwLDApLHRoaXMucm90YXRlKF8pO2Zvcih2YXIgdj1lWzBdLGY9MDt5PmY7KXt2YXIgeD10W3ZdO2YrPWVbMV0/ZVsxXTp4LGY+eT8oZT1bdixmLXldLGY9eSk6ZT1bKHYrMSkldC5sZW5ndGgsMF0sdiUyPT09MD9yLmNhbGwodGhpcyxmLDApOm4uY2FsbCh0aGlzLGYsMCksdj0odisxKSV0Lmxlbmd0aH10aGlzLnJlc3RvcmUoKSxsPWcsaD1kfW8uY2FsbCh0aGlzKSxhPVtdfX0sQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELnByb3RvdHlwZS51bmluc3RhbGxQYXR0ZXJuPWZ1bmN0aW9uKCl7dGhyb3ciTXVzdCBpbnN0YWxsIGEgbGluZSBwYXR0ZXJuIGJlZm9yZSB1bmluc3RhbGxpbmcgaXQuIn19KCk7dmFyIER5Z3JhcGhPcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciB0PWZ1bmN0aW9uKHQpe3RoaXMuZHlncmFwaF89dCx0aGlzLnlBeGVzXz1bXSx0aGlzLnhBeGlzXz17fSx0aGlzLnNlcmllc189e30sdGhpcy5nbG9iYWxfPXRoaXMuZHlncmFwaF8uYXR0cnNfLHRoaXMudXNlcl89dGhpcy5keWdyYXBoXy51c2VyX2F0dHJzX3x8e30sdGhpcy5sYWJlbHNfPVtdLHRoaXMuaGlnaGxpZ2h0U2VyaWVzXz10aGlzLmdldCgiaGlnaGxpZ2h0U2VyaWVzT3B0cyIpfHx7fSx0aGlzLnJlcGFyc2VTZXJpZXMoKX07dC5BWElTX1NUUklOR19NQVBQSU5HU189e3k6MCxZOjAseTE6MCxZMTowLHkyOjEsWTI6MX0sdC5heGlzVG9JbmRleF89ZnVuY3Rpb24oZSl7aWYoInN0cmluZyI9PXR5cGVvZiBlKXtpZih0LkFYSVNfU1RSSU5HX01BUFBJTkdTXy5oYXNPd25Qcm9wZXJ0eShlKSlyZXR1cm4gdC5BWElTX1NUUklOR19NQVBQSU5HU19bZV07dGhyb3ciVW5rbm93biBheGlzIDogIitlfWlmKCJudW1iZXIiPT10eXBlb2YgZSl7aWYoMD09PWV8fDE9PT1lKXJldHVybiBlO3Rocm93IkR5Z3JhcGhzIG9ubHkgc3VwcG9ydHMgdHdvIHktYXhlcywgaW5kZXhlZCBmcm9tIDAtMS4ifWlmKGUpdGhyb3ciVW5rbm93biBheGlzIDogIitlO3JldHVybiAwfSx0LnByb3RvdHlwZS5yZXBhcnNlU2VyaWVzPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5nZXQoImxhYmVscyIpO2lmKGUpe3RoaXMubGFiZWxzXz1lLnNsaWNlKDEpLHRoaXMueUF4ZXNfPVt7c2VyaWVzOltdLG9wdGlvbnM6e319XSx0aGlzLnhBeGlzXz17b3B0aW9uczp7fX0sdGhpcy5zZXJpZXNfPXt9O3ZhciBhPSF0aGlzLnVzZXJfLnNlcmllcztpZihhKXtmb3IodmFyIGk9MCxyPTA7cjx0aGlzLmxhYmVsc18ubGVuZ3RoO3IrKyl7dmFyIG49dGhpcy5sYWJlbHNfW3JdLG89dGhpcy51c2VyX1tuXXx8e30scz0wLGw9by5heGlzOyJvYmplY3QiPT10eXBlb2YgbCYmKHM9KytpLHRoaXMueUF4ZXNfW3NdPXtzZXJpZXM6W25dLG9wdGlvbnM6bH0pLGx8fHRoaXMueUF4ZXNfWzBdLnNlcmllcy5wdXNoKG4pLHRoaXMuc2VyaWVzX1tuXT17aWR4OnIseUF4aXM6cyxvcHRpb25zOm99fWZvcih2YXIgcj0wO3I8dGhpcy5sYWJlbHNfLmxlbmd0aDtyKyspe3ZhciBuPXRoaXMubGFiZWxzX1tyXSxvPXRoaXMuc2VyaWVzX1tuXS5vcHRpb25zLGw9by5heGlzO2lmKCJzdHJpbmciPT10eXBlb2YgbCl7aWYoIXRoaXMuc2VyaWVzXy5oYXNPd25Qcm9wZXJ0eShsKSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJTZXJpZXMgIituKyIgd2FudHMgdG8gc2hhcmUgYSB5LWF4aXMgd2l0aCBzZXJpZXMgIitsKyIsIHdoaWNoIGRvZXMgbm90IGRlZmluZSBpdHMgb3duIGF4aXMuIik7dmFyIHM9dGhpcy5zZXJpZXNfW2xdLnlBeGlzO3RoaXMuc2VyaWVzX1tuXS55QXhpcz1zLHRoaXMueUF4ZXNfW3NdLnNlcmllcy5wdXNoKG4pfX19ZWxzZSBmb3IodmFyIHI9MDtyPHRoaXMubGFiZWxzXy5sZW5ndGg7cisrKXt2YXIgbj10aGlzLmxhYmVsc19bcl0sbz10aGlzLnVzZXJfLnNlcmllc1tuXXx8e30scz10LmF4aXNUb0luZGV4XyhvLmF4aXMpO3RoaXMuc2VyaWVzX1tuXT17aWR4OnIseUF4aXM6cyxvcHRpb25zOm99LHRoaXMueUF4ZXNfW3NdP3RoaXMueUF4ZXNfW3NdLnNlcmllcy5wdXNoKG4pOnRoaXMueUF4ZXNfW3NdPXtzZXJpZXM6W25dLG9wdGlvbnM6e319fXZhciBoPXRoaXMudXNlcl8uYXhlc3x8e307RHlncmFwaC51cGRhdGUodGhpcy55QXhlc19bMF0ub3B0aW9ucyxoLnl8fHt9KSx0aGlzLnlBeGVzXy5sZW5ndGg+MSYmRHlncmFwaC51cGRhdGUodGhpcy55QXhlc19bMV0ub3B0aW9ucyxoLnkyfHx7fSksRHlncmFwaC51cGRhdGUodGhpcy54QXhpc18ub3B0aW9ucyxoLnh8fHt9KX19LHQucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmdldEdsb2JhbFVzZXJfKHQpO3JldHVybiBudWxsIT09ZT9lOnRoaXMuZ2V0R2xvYmFsRGVmYXVsdF8odCl9LHQucHJvdG90eXBlLmdldEdsb2JhbFVzZXJfPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnVzZXJfLmhhc093blByb3BlcnR5KHQpP3RoaXMudXNlcl9bdF06bnVsbH0sdC5wcm90b3R5cGUuZ2V0R2xvYmFsRGVmYXVsdF89ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZ2xvYmFsXy5oYXNPd25Qcm9wZXJ0eSh0KT90aGlzLmdsb2JhbF9bdF06RHlncmFwaC5ERUZBVUxUX0FUVFJTLmhhc093blByb3BlcnR5KHQpP0R5Z3JhcGguREVGQVVMVF9BVFRSU1t0XTpudWxsfSx0LnByb3RvdHlwZS5nZXRGb3JBeGlzPWZ1bmN0aW9uKHQsZSl7dmFyIGEsaTtpZigibnVtYmVyIj09dHlwZW9mIGUpYT1lLGk9MD09PWE/InkiOiJ5MiI7ZWxzZXtpZigieTEiPT1lJiYoZT0ieSIpLCJ5Ij09ZSlhPTA7ZWxzZSBpZigieTIiPT1lKWE9MTtlbHNle2lmKCJ4IiE9ZSl0aHJvdyJVbmtub3duIGF4aXMgIitlO2E9LTF9aT1lfXZhciByPS0xPT1hP3RoaXMueEF4aXNfOnRoaXMueUF4ZXNfW2FdO2lmKHIpe3ZhciBuPXIub3B0aW9ucztpZihuLmhhc093blByb3BlcnR5KHQpKXJldHVybiBuW3RdfWlmKCJ4IiE9PWV8fCJsb2dzY2FsZSIhPT10KXt2YXIgbz10aGlzLmdldEdsb2JhbFVzZXJfKHQpO2lmKG51bGwhPT1vKXJldHVybiBvfXZhciBzPUR5Z3JhcGguREVGQVVMVF9BVFRSUy5heGVzW2ldO3JldHVybiBzLmhhc093blByb3BlcnR5KHQpP3NbdF06dGhpcy5nZXRHbG9iYWxEZWZhdWx0Xyh0KX0sdC5wcm90b3R5cGUuZ2V0Rm9yU2VyaWVzPWZ1bmN0aW9uKHQsZSl7aWYoZT09PXRoaXMuZHlncmFwaF8uZ2V0SGlnaGxpZ2h0U2VyaWVzKCkmJnRoaXMuaGlnaGxpZ2h0U2VyaWVzXy5oYXNPd25Qcm9wZXJ0eSh0KSlyZXR1cm4gdGhpcy5oaWdobGlnaHRTZXJpZXNfW3RdO2lmKCF0aGlzLnNlcmllc18uaGFzT3duUHJvcGVydHkoZSkpdGhyb3ciVW5rbm93biBzZXJpZXM6ICIrZTt2YXIgYT10aGlzLnNlcmllc19bZV0saT1hLm9wdGlvbnM7cmV0dXJuIGkuaGFzT3duUHJvcGVydHkodCk/aVt0XTp0aGlzLmdldEZvckF4aXModCxhLnlBeGlzKX0sdC5wcm90b3R5cGUubnVtQXhlcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnlBeGVzXy5sZW5ndGh9LHQucHJvdG90eXBlLmF4aXNGb3JTZXJpZXM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2VyaWVzX1t0XS55QXhpc30sdC5wcm90b3R5cGUuYXhpc09wdGlvbnM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueUF4ZXNfW3RdLm9wdGlvbnN9LHQucHJvdG90eXBlLnNlcmllc0ZvckF4aXM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueUF4ZXNfW3RdLnNlcmllc30sdC5wcm90b3R5cGUuc2VyaWVzTmFtZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYWJlbHNffTtyZXR1cm4gdH0oKX0oKSxEeWdyYXBoTGF5b3V0PWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciB0PWZ1bmN0aW9uKHQpe3RoaXMuZHlncmFwaF89dCx0aGlzLnBvaW50cz1bXSx0aGlzLnNldE5hbWVzPVtdLHRoaXMuYW5ub3RhdGlvbnM9W10sdGhpcy55QXhlc189bnVsbCx0aGlzLnhUaWNrc189bnVsbCx0aGlzLnlUaWNrc189bnVsbH07cmV0dXJuIHQucHJvdG90eXBlLmFkZERhdGFzZXQ9ZnVuY3Rpb24odCxlKXt0aGlzLnBvaW50cy5wdXNoKGUpLHRoaXMuc2V0TmFtZXMucHVzaCh0KX0sdC5wcm90b3R5cGUuZ2V0UGxvdEFyZWE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcmVhX30sdC5wcm90b3R5cGUuY29tcHV0ZVBsb3RBcmVhPWZ1bmN0aW9uKCl7dmFyIHQ9e3g6MCx5OjB9O3Qudz10aGlzLmR5Z3JhcGhfLndpZHRoXy10LngtdGhpcy5keWdyYXBoXy5nZXRPcHRpb24oInJpZ2h0R2FwIiksdC5oPXRoaXMuZHlncmFwaF8uaGVpZ2h0Xzt2YXIgZT17Y2hhcnRfZGl2OnRoaXMuZHlncmFwaF8uZ3JhcGhEaXYscmVzZXJ2ZVNwYWNlTGVmdDpmdW5jdGlvbihlKXt2YXIgYT17eDp0LngseTp0LnksdzplLGg6dC5ofTtyZXR1cm4gdC54Kz1lLHQudy09ZSxhfSxyZXNlcnZlU3BhY2VSaWdodDpmdW5jdGlvbihlKXt2YXIgYT17eDp0LngrdC53LWUseTp0LnksdzplLGg6dC5ofTtyZXR1cm4gdC53LT1lLGF9LHJlc2VydmVTcGFjZVRvcDpmdW5jdGlvbihlKXt2YXIgYT17eDp0LngseTp0Lnksdzp0LncsaDplfTtyZXR1cm4gdC55Kz1lLHQuaC09ZSxhfSxyZXNlcnZlU3BhY2VCb3R0b206ZnVuY3Rpb24oZSl7dmFyIGE9e3g6dC54LHk6dC55K3QuaC1lLHc6dC53LGg6ZX07cmV0dXJuIHQuaC09ZSxhfSxjaGFydFJlY3Q6ZnVuY3Rpb24oKXtyZXR1cm57eDp0LngseTp0Lnksdzp0LncsaDp0Lmh9fX07dGhpcy5keWdyYXBoXy5jYXNjYWRlRXZlbnRzXygibGF5b3V0IixlKSx0aGlzLmFyZWFfPXR9LHQucHJvdG90eXBlLnNldEFubm90YXRpb25zPWZ1bmN0aW9uKHQpe3RoaXMuYW5ub3RhdGlvbnM9W107Zm9yKHZhciBlPXRoaXMuZHlncmFwaF8uZ2V0T3B0aW9uKCJ4VmFsdWVQYXJzZXIiKXx8ZnVuY3Rpb24odCl7cmV0dXJuIHR9LGE9MDthPHQubGVuZ3RoO2ErKyl7dmFyIGk9e307aWYoIXRbYV0ueHZhbCYmdm9pZCAwPT09dFthXS54KXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIkFubm90YXRpb25zIG11c3QgaGF2ZSBhbiAneCcgcHJvcGVydHkiKTtpZih0W2FdLmljb24mJighdFthXS5oYXNPd25Qcm9wZXJ0eSgid2lkdGgiKXx8IXRbYV0uaGFzT3duUHJvcGVydHkoImhlaWdodCIpKSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJNdXN0IHNldCB3aWR0aCBhbmQgaGVpZ2h0IHdoZW4gc2V0dGluZyBhbm5vdGF0aW9uLmljb24gcHJvcGVydHkiKTtEeWdyYXBoLnVwZGF0ZShpLHRbYV0pLGkueHZhbHx8KGkueHZhbD1lKGkueCkpLHRoaXMuYW5ub3RhdGlvbnMucHVzaChpKX19LHQucHJvdG90eXBlLnNldFhUaWNrcz1mdW5jdGlvbih0KXt0aGlzLnhUaWNrc189dH0sdC5wcm90b3R5cGUuc2V0WUF4ZXM9ZnVuY3Rpb24odCl7dGhpcy55QXhlc189dH0sdC5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oKXt0aGlzLl94QXhpcz17fSx0aGlzLl9ldmFsdWF0ZUxpbWl0cygpLHRoaXMuX2V2YWx1YXRlTGluZUNoYXJ0cygpLHRoaXMuX2V2YWx1YXRlTGluZVRpY2tzKCksdGhpcy5fZXZhbHVhdGVBbm5vdGF0aW9ucygpfSx0LnByb3RvdHlwZS5fZXZhbHVhdGVMaW1pdHM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmR5Z3JhcGhfLnhBeGlzUmFuZ2UoKTt0aGlzLl94QXhpcy5taW52YWw9dFswXSx0aGlzLl94QXhpcy5tYXh2YWw9dFsxXTt2YXIgZT10WzFdLXRbMF07dGhpcy5feEF4aXMuc2NhbGU9MCE9PWU/MS9lOjEsdGhpcy5keWdyYXBoXy5nZXRPcHRpb25Gb3JBeGlzKCJsb2dzY2FsZSIsIngiKSYmKHRoaXMuX3hBeGlzLnhsb2dyYW5nZT1EeWdyYXBoLmxvZzEwKHRoaXMuX3hBeGlzLm1heHZhbCktRHlncmFwaC5sb2cxMCh0aGlzLl94QXhpcy5taW52YWwpLHRoaXMuX3hBeGlzLnhsb2dzY2FsZT0wIT09dGhpcy5feEF4aXMueGxvZ3JhbmdlPzEvdGhpcy5feEF4aXMueGxvZ3JhbmdlOjEpO2Zvcih2YXIgYT0wO2E8dGhpcy55QXhlc18ubGVuZ3RoO2ErKyl7dmFyIGk9dGhpcy55QXhlc19bYV07aS5taW55dmFsPWkuY29tcHV0ZWRWYWx1ZVJhbmdlWzBdLGkubWF4eXZhbD1pLmNvbXB1dGVkVmFsdWVSYW5nZVsxXSxpLnlyYW5nZT1pLm1heHl2YWwtaS5taW55dmFsLGkueXNjYWxlPTAhPT1pLnlyYW5nZT8xL2kueXJhbmdlOjEsdGhpcy5keWdyYXBoXy5nZXRPcHRpb24oImxvZ3NjYWxlIikmJihpLnlsb2dyYW5nZT1EeWdyYXBoLmxvZzEwKGkubWF4eXZhbCktRHlncmFwaC5sb2cxMChpLm1pbnl2YWwpLGkueWxvZ3NjYWxlPTAhPT1pLnlsb2dyYW5nZT8xL2kueWxvZ3JhbmdlOjEsKCFpc0Zpbml0ZShpLnlsb2dyYW5nZSl8fGlzTmFOKGkueWxvZ3JhbmdlKSkmJmNvbnNvbGUuZXJyb3IoImF4aXMgIithKyIgb2YgZ3JhcGggYXQgIitpLmcrIiBjYW4ndCBiZSBkaXNwbGF5ZWQgaW4gbG9nIHNjYWxlIGZvciByYW5nZSBbIitpLm1pbnl2YWwrIiAtICIraS5tYXh5dmFsKyJdIikpfX0sdC5jYWxjWE5vcm1hbF89ZnVuY3Rpb24odCxlLGEpe3JldHVybiBhPyhEeWdyYXBoLmxvZzEwKHQpLUR5Z3JhcGgubG9nMTAoZS5taW52YWwpKSplLnhsb2dzY2FsZToodC1lLm1pbnZhbCkqZS5zY2FsZX0sdC5jYWxjWU5vcm1hbF89ZnVuY3Rpb24odCxlLGEpe2lmKGEpe3ZhciBpPTEtKER5Z3JhcGgubG9nMTAoZSktRHlncmFwaC5sb2cxMCh0Lm1pbnl2YWwpKSp0Lnlsb2dzY2FsZTtyZXR1cm4gaXNGaW5pdGUoaSk/aTowLzB9cmV0dXJuIDEtKGUtdC5taW55dmFsKSp0LnlzY2FsZX0sdC5wcm90b3R5cGUuX2V2YWx1YXRlTGluZUNoYXJ0cz1mdW5jdGlvbigpe2Zvcih2YXIgZT10aGlzLmR5Z3JhcGhfLmdldE9wdGlvbigic3RhY2tlZEdyYXBoIiksYT10aGlzLmR5Z3JhcGhfLmdldE9wdGlvbkZvckF4aXMoImxvZ3NjYWxlIiwieCIpLGk9MDtpPHRoaXMucG9pbnRzLmxlbmd0aDtpKyspe2Zvcih2YXIgcj10aGlzLnBvaW50c1tpXSxuPXRoaXMuc2V0TmFtZXNbaV0sbz10aGlzLmR5Z3JhcGhfLmdldE9wdGlvbigiY29ubmVjdFNlcGFyYXRlZFBvaW50cyIsbikscz10aGlzLmR5Z3JhcGhfLmF4aXNQcm9wZXJ0aWVzRm9yU2VyaWVzKG4pLGw9dGhpcy5keWdyYXBoXy5hdHRyaWJ1dGVzXy5nZXRGb3JTZXJpZXMoImxvZ3NjYWxlIixuKSxoPTA7aDxyLmxlbmd0aDtoKyspe3ZhciBwPXJbaF07cC54PXQuY2FsY1hOb3JtYWxfKHAueHZhbCx0aGlzLl94QXhpcyxhKTt2YXIgZz1wLnl2YWw7ZSYmKHAueV9zdGFja2VkPXQuY2FsY1lOb3JtYWxfKHMscC55dmFsX3N0YWNrZWQsbCksbnVsbD09PWd8fGlzTmFOKGcpfHwoZz1wLnl2YWxfc3RhY2tlZCkpLG51bGw9PT1nJiYoZz0wLzAsb3x8KHAueXZhbD0wLzApKSxwLnk9dC5jYWxjWU5vcm1hbF8ocyxnLGwpfXRoaXMuZHlncmFwaF8uZGF0YUhhbmRsZXJfLm9uTGluZUV2YWx1YXRlZChyLHMsbCl9fSx0LnByb3RvdHlwZS5fZXZhbHVhdGVMaW5lVGlja3M9ZnVuY3Rpb24oKXt2YXIgdCxlLGEsaTtmb3IodGhpcy54dGlja3M9W10sdD0wO3Q8dGhpcy54VGlja3NfLmxlbmd0aDt0KyspZT10aGlzLnhUaWNrc19bdF0sYT1lLmxhYmVsLGk9dGhpcy5keWdyYXBoXy50b1BlcmNlbnRYQ29vcmQoZS52KSxpPj0wJiYxPmkmJnRoaXMueHRpY2tzLnB1c2goW2ksYV0pO2Zvcih0aGlzLnl0aWNrcz1bXSx0PTA7dDx0aGlzLnlBeGVzXy5sZW5ndGg7dCsrKWZvcih2YXIgcj10aGlzLnlBeGVzX1t0XSxuPTA7bjxyLnRpY2tzLmxlbmd0aDtuKyspZT1yLnRpY2tzW25dLGE9ZS5sYWJlbCxpPXRoaXMuZHlncmFwaF8udG9QZXJjZW50WUNvb3JkKGUudix0KSxpPjAmJjE+PWkmJnRoaXMueXRpY2tzLnB1c2goW3QsaSxhXSl9LHQucHJvdG90eXBlLl9ldmFsdWF0ZUFubm90YXRpb25zPWZ1bmN0aW9uKCl7dmFyIHQsZT17fTtmb3IodD0wO3Q8dGhpcy5hbm5vdGF0aW9ucy5sZW5ndGg7dCsrKXt2YXIgYT10aGlzLmFubm90YXRpb25zW3RdO2VbYS54dmFsKyIsIithLnNlcmllc109YX1pZih0aGlzLmFubm90YXRlZF9wb2ludHM9W10sdGhpcy5hbm5vdGF0aW9ucyYmdGhpcy5hbm5vdGF0aW9ucy5sZW5ndGgpZm9yKHZhciBpPTA7aTx0aGlzLnBvaW50cy5sZW5ndGg7aSsrKXt2YXIgcj10aGlzLnBvaW50c1tpXTtmb3IodD0wO3Q8ci5sZW5ndGg7dCsrKXt2YXIgbj1yW3RdLG89bi54dmFsKyIsIituLm5hbWU7byBpbiBlJiYobi5hbm5vdGF0aW9uPWVbb10sdGhpcy5hbm5vdGF0ZWRfcG9pbnRzLnB1c2gobikpfX19LHQucHJvdG90eXBlLnJlbW92ZUFsbERhdGFzZXRzPWZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXMucG9pbnRzLGRlbGV0ZSB0aGlzLnNldE5hbWVzLGRlbGV0ZSB0aGlzLnNldFBvaW50c0xlbmd0aHMsZGVsZXRlIHRoaXMuc2V0UG9pbnRzT2Zmc2V0cyx0aGlzLnBvaW50cz1bXSx0aGlzLnNldE5hbWVzPVtdLHRoaXMuc2V0UG9pbnRzTGVuZ3Rocz1bXSx0aGlzLnNldFBvaW50c09mZnNldHM9W119LHR9KCksRHlncmFwaENhbnZhc1JlbmRlcmVyPWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciB0PWZ1bmN0aW9uKHQsZSxhLGkpe2lmKHRoaXMuZHlncmFwaF89dCx0aGlzLmxheW91dD1pLHRoaXMuZWxlbWVudD1lLHRoaXMuZWxlbWVudENvbnRleHQ9YSx0aGlzLmhlaWdodD10LmhlaWdodF8sdGhpcy53aWR0aD10LndpZHRoXywhdGhpcy5pc0lFJiYhRHlncmFwaC5pc0NhbnZhc1N1cHBvcnRlZCh0aGlzLmVsZW1lbnQpKXRocm93IkNhbnZhcyBpcyBub3Qgc3VwcG9ydGVkLiI7aWYodGhpcy5hcmVhPWkuZ2V0UGxvdEFyZWEoKSx0aGlzLmR5Z3JhcGhfLmlzVXNpbmdFeGNhbnZhc18pdGhpcy5fY3JlYXRlSUVDbGlwQXJlYSgpO2Vsc2UgaWYoIUR5Z3JhcGguaXNBbmRyb2lkKCkpe3ZhciByPXRoaXMuZHlncmFwaF8uY2FudmFzX2N0eF87ci5iZWdpblBhdGgoKSxyLnJlY3QodGhpcy5hcmVhLngsdGhpcy5hcmVhLnksdGhpcy5hcmVhLncsdGhpcy5hcmVhLmgpLHIuY2xpcCgpLHI9dGhpcy5keWdyYXBoXy5oaWRkZW5fY3R4XyxyLmJlZ2luUGF0aCgpLHIucmVjdCh0aGlzLmFyZWEueCx0aGlzLmFyZWEueSx0aGlzLmFyZWEudyx0aGlzLmFyZWEuaCksci5jbGlwKCl9fTtyZXR1cm4gdC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt2YXIgdDtpZih0aGlzLmlzSUUpdHJ5e3RoaXMuY2xlYXJEZWxheSYmKHRoaXMuY2xlYXJEZWxheS5jYW5jZWwoKSx0aGlzLmNsZWFyRGVsYXk9bnVsbCksdD10aGlzLmVsZW1lbnRDb250ZXh0fWNhdGNoKGUpe3JldHVybn10PXRoaXMuZWxlbWVudENvbnRleHQsdC5jbGVhclJlY3QoMCwwLHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpfSx0LnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVQb2ludHMoKSx0aGlzLl9yZW5kZXJMaW5lQ2hhcnQoKX0sdC5wcm90b3R5cGUuX2NyZWF0ZUlFQ2xpcEFyZWE9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe2lmKDAhPT10LncmJjAhPT10Lmgpe3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2kuY2xhc3NOYW1lPWUsaS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9cixpLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsaS5zdHlsZS5sZWZ0PXQueCsicHgiLGkuc3R5bGUudG9wPXQueSsicHgiLGkuc3R5bGUud2lkdGg9dC53KyJweCIsaS5zdHlsZS5oZWlnaHQ9dC5oKyJweCIsYS5hcHBlbmRDaGlsZChpKX19Zm9yKHZhciBlPSJkeWdyYXBoLWNsaXAtZGl2IixhPXRoaXMuZHlncmFwaF8uZ3JhcGhEaXYsaT1hLmNoaWxkTm9kZXMubGVuZ3RoLTE7aT49MDtpLS0pYS5jaGlsZE5vZGVzW2ldLmNsYXNzTmFtZT09ZSYmYS5yZW1vdmVDaGlsZChhLmNoaWxkTm9kZXNbaV0pO2Zvcih2YXIgcj1kb2N1bWVudC5iZ0NvbG9yLG49dGhpcy5keWdyYXBoXy5ncmFwaERpdjtuIT1kb2N1bWVudDspe3ZhciBvPW4uY3VycmVudFN0eWxlLmJhY2tncm91bmRDb2xvcjtpZihvJiYidHJhbnNwYXJlbnQiIT1vKXtyPW87YnJlYWt9bj1uLnBhcmVudE5vZGV9dmFyIHM9dGhpcy5hcmVhO3Qoe3g6MCx5OjAsdzpzLngsaDp0aGlzLmhlaWdodH0pLHQoe3g6cy54LHk6MCx3OnRoaXMud2lkdGgtcy54LGg6cy55fSksdCh7eDpzLngrcy53LHk6MCx3OnRoaXMud2lkdGgtcy54LXMudyxoOnRoaXMuaGVpZ2h0fSksdCh7eDpzLngseTpzLnkrcy5oLHc6dGhpcy53aWR0aC1zLngsaDp0aGlzLmhlaWdodC1zLmgtcy55fSl9LHQuX2dldEl0ZXJhdG9yUHJlZGljYXRlPWZ1bmN0aW9uKGUpe3JldHVybiBlP3QuX3ByZWRpY2F0ZVRoYXRTa2lwc0VtcHR5UG9pbnRzOm51bGx9LHQuX3ByZWRpY2F0ZVRoYXRTa2lwc0VtcHR5UG9pbnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGwhPT10W2VdLnl2YWx9LHQuX2RyYXdTdHlsZWRMaW5lPWZ1bmN0aW9uKGUsYSxpLHIsbixvLHMpe3ZhciBsPWUuZHlncmFwaCxoPWwuZ2V0Qm9vbGVhbk9wdGlvbigic3RlcFBsb3QiLGUuc2V0TmFtZSk7RHlncmFwaC5pc0FycmF5TGlrZShyKXx8KHI9bnVsbCk7dmFyIHA9bC5nZXRCb29sZWFuT3B0aW9uKCJkcmF3R2FwRWRnZVBvaW50cyIsZS5zZXROYW1lKSxnPWUucG9pbnRzLGQ9ZS5zZXROYW1lLHU9RHlncmFwaC5jcmVhdGVJdGVyYXRvcihnLDAsZy5sZW5ndGgsdC5fZ2V0SXRlcmF0b3JQcmVkaWNhdGUobC5nZXRCb29sZWFuT3B0aW9uKCJjb25uZWN0U2VwYXJhdGVkUG9pbnRzIixkKSkpLGM9ciYmci5sZW5ndGg+PTIseT1lLmRyYXdpbmdDb250ZXh0O3kuc2F2ZSgpLGMmJnkuaW5zdGFsbFBhdHRlcm4ocik7dmFyIF89dC5fZHJhd1NlcmllcyhlLHUsaSxzLG4scCxoLGEpO3QuX2RyYXdQb2ludHNPbkxpbmUoZSxfLG8sYSxzKSxjJiZ5LnVuaW5zdGFsbFBhdHRlcm4oKSx5LnJlc3RvcmUoKX0sdC5fZHJhd1Nlcmllcz1mdW5jdGlvbih0LGUsYSxpLHIsbixvLHMpe3ZhciBsLGgscD1udWxsLGc9bnVsbCxkPW51bGwsdT1bXSxjPSEwLHk9dC5kcmF3aW5nQ29udGV4dDt5LmJlZ2luUGF0aCgpLHkuc3Ryb2tlU3R5bGU9cyx5LmxpbmVXaWR0aD1hO2Zvcih2YXIgXz1lLmFycmF5Xyx2PWUuZW5kXyxmPWUucHJlZGljYXRlXyx4PWUuc3RhcnRfO3Y+eDt4Kyspe2lmKGg9X1t4XSxmKXtmb3IoO3Y+eCYmIWYoXyx4KTspeCsrO2lmKHg9PXYpYnJlYWs7aD1fW3hdfWlmKG51bGw9PT1oLmNhbnZhc3l8fGguY2FudmFzeSE9aC5jYW52YXN5KW8mJm51bGwhPT1wJiYoeS5tb3ZlVG8ocCxnKSx5LmxpbmVUbyhoLmNhbnZhc3gsZykpLHA9Zz1udWxsO2Vsc2V7aWYobD0hMSxufHwhcCl7ZS5uZXh0SWR4Xz14LGUubmV4dCgpLGQ9ZS5oYXNOZXh0P2UucGVlay5jYW52YXN5Om51bGw7dmFyIG09bnVsbD09PWR8fGQhPWQ7bD0hcCYmbSxuJiYoIWMmJiFwfHxlLmhhc05leHQmJm0pJiYobD0hMCl9bnVsbCE9PXA/YSYmKG8mJih5Lm1vdmVUbyhwLGcpLHkubGluZVRvKGguY2FudmFzeCxnKSkseS5saW5lVG8oaC5jYW52YXN4LGguY2FudmFzeSkpOnkubW92ZVRvKGguY2FudmFzeCxoLmNhbnZhc3kpLChyfHxsKSYmdS5wdXNoKFtoLmNhbnZhc3gsaC5jYW52YXN5LGguaWR4XSkscD1oLmNhbnZhc3gsZz1oLmNhbnZhc3l9Yz0hMX1yZXR1cm4geS5zdHJva2UoKSx1fSx0Ll9kcmF3UG9pbnRzT25MaW5lPWZ1bmN0aW9uKHQsZSxhLGkscil7Zm9yKHZhciBuPXQuZHJhd2luZ0NvbnRleHQsbz0wO288ZS5sZW5ndGg7bysrKXt2YXIgcz1lW29dO24uc2F2ZSgpLGEuY2FsbCh0LmR5Z3JhcGgsdC5keWdyYXBoLHQuc2V0TmFtZSxuLHNbMF0sc1sxXSxpLHIsc1syXSksbi5yZXN0b3JlKCl9fSx0LnByb3RvdHlwZS5fdXBkYXRlUG9pbnRzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMubGF5b3V0LnBvaW50cyxlPXQubGVuZ3RoO2UtLTspZm9yKHZhciBhPXRbZV0saT1hLmxlbmd0aDtpLS07KXt2YXIgcj1hW2ldO3IuY2FudmFzeD10aGlzLmFyZWEudypyLngrdGhpcy5hcmVhLngsci5jYW52YXN5PXRoaXMuYXJlYS5oKnIueSt0aGlzLmFyZWEueX19LHQucHJvdG90eXBlLl9yZW5kZXJMaW5lQ2hhcnQ9ZnVuY3Rpb24odCxlKXt2YXIgYSxpLHI9ZXx8dGhpcy5lbGVtZW50Q29udGV4dCxuPXRoaXMubGF5b3V0LnBvaW50cyxvPXRoaXMubGF5b3V0LnNldE5hbWVzO3RoaXMuY29sb3JzPXRoaXMuZHlncmFwaF8uY29sb3JzTWFwXzt2YXIgcz10aGlzLmR5Z3JhcGhfLmdldE9wdGlvbigicGxvdHRlciIpLGw9cztEeWdyYXBoLmlzQXJyYXlMaWtlKGwpfHwobD1bbF0pO3ZhciBoPXt9O2ZvcihhPTA7YTxvLmxlbmd0aDthKyspe2k9b1thXTt2YXIgcD10aGlzLmR5Z3JhcGhfLmdldE9wdGlvbigicGxvdHRlciIsaSk7cCE9cyYmKGhbaV09cCl9Zm9yKGE9MDthPGwubGVuZ3RoO2ErKylmb3IodmFyIGc9bFthXSxkPWE9PWwubGVuZ3RoLTEsdT0wO3U8bi5sZW5ndGg7dSsrKWlmKGk9b1t1XSwhdHx8aT09dCl7dmFyIGM9blt1XSx5PWc7aWYoaSBpbiBoKXtpZighZCljb250aW51ZTt5PWhbaV19dmFyIF89dGhpcy5jb2xvcnNbaV0sdj10aGlzLmR5Z3JhcGhfLmdldE9wdGlvbigic3Ryb2tlV2lkdGgiLGkpO3Iuc2F2ZSgpLHIuc3Ryb2tlU3R5bGU9XyxyLmxpbmVXaWR0aD12LHkoe3BvaW50czpjLHNldE5hbWU6aSxkcmF3aW5nQ29udGV4dDpyLGNvbG9yOl8sc3Ryb2tlV2lkdGg6dixkeWdyYXBoOnRoaXMuZHlncmFwaF8sYXhpczp0aGlzLmR5Z3JhcGhfLmF4aXNQcm9wZXJ0aWVzRm9yU2VyaWVzKGkpLHBsb3RBcmVhOnRoaXMuYXJlYSxzZXJpZXNJbmRleDp1LHNlcmllc0NvdW50Om4ubGVuZ3RoLHNpbmdsZVNlcmllc05hbWU6dCxhbGxTZXJpZXNQb2ludHM6bn0pLHIucmVzdG9yZSgpfX0sdC5fUGxvdHRlcnM9e2xpbmVQbG90dGVyOmZ1bmN0aW9uKGUpe3QuX2xpbmVQbG90dGVyKGUpfSxmaWxsUGxvdHRlcjpmdW5jdGlvbihlKXt0Ll9maWxsUGxvdHRlcihlKX0sZXJyb3JQbG90dGVyOmZ1bmN0aW9uKGUpe3QuX2Vycm9yUGxvdHRlcihlKX19LHQuX2xpbmVQbG90dGVyPWZ1bmN0aW9uKGUpe3ZhciBhPWUuZHlncmFwaCxpPWUuc2V0TmFtZSxyPWUuc3Ryb2tlV2lkdGgsbj1hLmdldE51bWVyaWNPcHRpb24oInN0cm9rZUJvcmRlcldpZHRoIixpKSxvPWEuZ2V0T3B0aW9uKCJkcmF3UG9pbnRDYWxsYmFjayIsaSl8fER5Z3JhcGguQ2lyY2xlcy5ERUZBVUxULHM9YS5nZXRPcHRpb24oInN0cm9rZVBhdHRlcm4iLGkpLGw9YS5nZXRCb29sZWFuT3B0aW9uKCJkcmF3UG9pbnRzIixpKSxoPWEuZ2V0TnVtZXJpY09wdGlvbigicG9pbnRTaXplIixpKTtuJiZyJiZ0Ll9kcmF3U3R5bGVkTGluZShlLGEuZ2V0T3B0aW9uKCJzdHJva2VCb3JkZXJDb2xvciIsaSkscisyKm4scyxsLG8saCksdC5fZHJhd1N0eWxlZExpbmUoZSxlLmNvbG9yLHIscyxsLG8saCl9LHQuX2Vycm9yUGxvdHRlcj1mdW5jdGlvbihlKXt2YXIgYT1lLmR5Z3JhcGgsaT1lLnNldE5hbWUscj1hLmdldEJvb2xlYW5PcHRpb24oImVycm9yQmFycyIpfHxhLmdldEJvb2xlYW5PcHRpb24oImN1c3RvbUJhcnMiKTtpZihyKXt2YXIgbj1hLmdldEJvb2xlYW5PcHRpb24oImZpbGxHcmFwaCIsaSk7biYmY29uc29sZS53YXJuKCJDYW4ndCB1c2UgZmlsbEdyYXBoIG9wdGlvbiB3aXRoIGVycm9yIGJhcnMiKTt2YXIgbyxzPWUuZHJhd2luZ0NvbnRleHQsbD1lLmNvbG9yLGg9YS5nZXROdW1lcmljT3B0aW9uKCJmaWxsQWxwaGEiLGkpLHA9YS5nZXRCb29sZWFuT3B0aW9uKCJzdGVwUGxvdCIsaSksZz1lLnBvaW50cyxkPUR5Z3JhcGguY3JlYXRlSXRlcmF0b3IoZywwLGcubGVuZ3RoLHQuX2dldEl0ZXJhdG9yUHJlZGljYXRlKGEuZ2V0Qm9vbGVhbk9wdGlvbigiY29ubmVjdFNlcGFyYXRlZFBvaW50cyIsaSkpKSx1PTAvMCxjPTAvMCx5PVstMSwtMV0sXz1EeWdyYXBoLnRvUkdCXyhsKSx2PSJyZ2JhKCIrXy5yKyIsIitfLmcrIiwiK18uYisiLCIraCsiKSI7cy5maWxsU3R5bGU9dixzLmJlZ2luUGF0aCgpO2Zvcih2YXIgZj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09PXR8fHZvaWQgMD09PXR8fGlzTmFOKHQpfTtkLmhhc05leHQ7KXt2YXIgeD1kLm5leHQoKTshcCYmZih4LnkpfHxwJiYhaXNOYU4oYykmJmYoYyk/dT0wLzA6KG89W3gueV9ib3R0b20seC55X3RvcF0scCYmKGM9eC55KSxpc05hTihvWzBdKSYmKG9bMF09eC55KSxpc05hTihvWzFdKSYmKG9bMV09eC55KSxvWzBdPWUucGxvdEFyZWEuaCpvWzBdK2UucGxvdEFyZWEueSxvWzFdPWUucGxvdEFyZWEuaCpvWzFdK2UucGxvdEFyZWEueSxpc05hTih1KXx8KHA/KHMubW92ZVRvKHUseVswXSkscy5saW5lVG8oeC5jYW52YXN4LHlbMF0pLHMubGluZVRvKHguY2FudmFzeCx5WzFdKSk6KHMubW92ZVRvKHUseVswXSkscy5saW5lVG8oeC5jYW52YXN4LG9bMF0pLHMubGluZVRvKHguY2FudmFzeCxvWzFdKSkscy5saW5lVG8odSx5WzFdKSxzLmNsb3NlUGF0aCgpKSx5PW8sdT14LmNhbnZhc3gpfXMuZmlsbCgpfX0sdC5fZmFzdENhbnZhc1Byb3h5PWZ1bmN0aW9uKHQpe3ZhciBlPVtdLGE9bnVsbCxpPW51bGwscj0xLG49MixvPTAscz1mdW5jdGlvbih0KXtpZighKGUubGVuZ3RoPD0xKSl7Zm9yKHZhciBhPWUubGVuZ3RoLTE7YT4wO2EtLSl7dmFyIGk9ZVthXTtpZihpWzBdPT1uKXt2YXIgbz1lW2EtMV07b1sxXT09aVsxXSYmb1syXT09aVsyXSYmZS5zcGxpY2UoYSwxKX19Zm9yKHZhciBhPTA7YTxlLmxlbmd0aC0xOyl7dmFyIGk9ZVthXTtpWzBdPT1uJiZlW2ErMV1bMF09PW4/ZS5zcGxpY2UoYSwxKTphKyt9aWYoZS5sZW5ndGg+MiYmIXQpe3ZhciBzPTA7ZVswXVswXT09biYmcysrO2Zvcih2YXIgbD1udWxsLGg9bnVsbCxhPXM7YTxlLmxlbmd0aDthKyspe3ZhciBpPWVbYV07aWYoaVswXT09cilpZihudWxsPT09bCYmbnVsbD09PWgpbD1hLGg9YTtlbHNle3ZhciBwPWlbMl07cDxlW2xdWzJdP2w9YTpwPmVbaF1bMl0mJihoPWEpfX12YXIgZz1lW2xdLGQ9ZVtoXTtlLnNwbGljZShzLGUubGVuZ3RoLXMpLGg+bD8oZS5wdXNoKGcpLGUucHVzaChkKSk6bD5oPyhlLnB1c2goZCksZS5wdXNoKGcpKTplLnB1c2goZyl9fX0sbD1mdW5jdGlvbihhKXtzKGEpO2Zvcih2YXIgbD0wLGg9ZS5sZW5ndGg7aD5sO2wrKyl7dmFyIHA9ZVtsXTtwWzBdPT1yP3QubGluZVRvKHBbMV0scFsyXSk6cFswXT09biYmdC5tb3ZlVG8ocFsxXSxwWzJdKX1lLmxlbmd0aCYmKGk9ZVtlLmxlbmd0aC0xXVsxXSksbys9ZS5sZW5ndGgsZT1bXX0saD1mdW5jdGlvbih0LHIsbil7dmFyIG89TWF0aC5yb3VuZChyKTtpZihudWxsPT09YXx8byE9YSl7dmFyIHM9YS1pPjEsaD1vLWE+MSxwPXN8fGg7bChwKSxhPW99ZS5wdXNoKFt0LHIsbl0pfTtyZXR1cm57bW92ZVRvOmZ1bmN0aW9uKHQsZSl7aChuLHQsZSl9LGxpbmVUbzpmdW5jdGlvbih0LGUpe2gocix0LGUpfSxzdHJva2U6ZnVuY3Rpb24oKXtsKCEwKSx0LnN0cm9rZSgpfSxmaWxsOmZ1bmN0aW9uKCl7bCghMCksdC5maWxsKCl9LGJlZ2luUGF0aDpmdW5jdGlvbigpe2woITApLHQuYmVnaW5QYXRoKCl9LGNsb3NlUGF0aDpmdW5jdGlvbigpe2woITApLHQuY2xvc2VQYXRoKCl9LF9jb3VudDpmdW5jdGlvbigpe3JldHVybiBvfX19LHQuX2ZpbGxQbG90dGVyPWZ1bmN0aW9uKGUpe2lmKCFlLnNpbmdsZVNlcmllc05hbWUmJjA9PT1lLnNlcmllc0luZGV4KXtmb3IodmFyIGE9ZS5keWdyYXBoLGk9YS5nZXRMYWJlbHMoKS5zbGljZSgxKSxyPWkubGVuZ3RoO3I+PTA7ci0tKWEudmlzaWJpbGl0eSgpW3JdfHxpLnNwbGljZShyLDEpO3ZhciBuPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDxpLmxlbmd0aDt0KyspaWYoYS5nZXRCb29sZWFuT3B0aW9uKCJmaWxsR3JhcGgiLGlbdF0pKXJldHVybiEwO3JldHVybiExfSgpO2lmKG4pZm9yKHZhciBvLHMsbD1lLnBsb3RBcmVhLGg9ZS5hbGxTZXJpZXNQb2ludHMscD1oLmxlbmd0aCxnPWEuZ2V0TnVtZXJpY09wdGlvbigiZmlsbEFscGhhIiksZD1hLmdldEJvb2xlYW5PcHRpb24oInN0YWNrZWRHcmFwaCIpLHU9YS5nZXRDb2xvcnMoKSxjPXt9LHk9ZnVuY3Rpb24odCxlLGEsaSl7aWYodC5saW5lVG8oZSxhKSxkKWZvcih2YXIgcj1pLmxlbmd0aC0xO3I+PTA7ci0tKXt2YXIgbj1pW3JdO3QubGluZVRvKG5bMF0sblsxXSl9fSxfPXAtMTtfPj0wO18tLSl7dmFyIHY9ZS5kcmF3aW5nQ29udGV4dCxmPWlbX107aWYoYS5nZXRCb29sZWFuT3B0aW9uKCJmaWxsR3JhcGgiLGYpKXt2YXIgeD1hLmdldEJvb2xlYW5PcHRpb24oInN0ZXBQbG90IixmKSxtPXVbX10sRD1hLmF4aXNQcm9wZXJ0aWVzRm9yU2VyaWVzKGYpLHc9MStELm1pbnl2YWwqRC55c2NhbGU7MD53P3c9MDp3PjEmJih3PTEpLHc9bC5oKncrbC55O3ZhciBBLGI9aFtfXSxUPUR5Z3JhcGguY3JlYXRlSXRlcmF0b3IoYiwwLGIubGVuZ3RoLHQuX2dldEl0ZXJhdG9yUHJlZGljYXRlKGEuZ2V0Qm9vbGVhbk9wdGlvbigiY29ubmVjdFNlcGFyYXRlZFBvaW50cyIsZikpKSxFPTAvMCxDPVstMSwtMV0sTD1EeWdyYXBoLnRvUkdCXyhtKSxQPSJyZ2JhKCIrTC5yKyIsIitMLmcrIiwiK0wuYisiLCIrZysiKSI7di5maWxsU3R5bGU9UCx2LmJlZ2luUGF0aCgpO3ZhciBTLE89ITA7KGIubGVuZ3RoPjIqYS53aWR0aF98fER5Z3JhcGguRk9SQ0VfRkFTVF9QUk9YWSkmJih2PXQuX2Zhc3RDYW52YXNQcm94eSh2KSk7Zm9yKHZhciBNLFI9W107VC5oYXNOZXh0OylpZihNPVQubmV4dCgpLER5Z3JhcGguaXNPSyhNLnkpfHx4KXtpZihkKXtpZighTyYmUz09TS54dmFsKWNvbnRpbnVlO089ITEsUz1NLnh2YWwsbz1jW00uY2FudmFzeF07dmFyIEY7Rj12b2lkIDA9PT1vP3c6cz9vWzBdOm8sQT1bTS5jYW52YXN5LEZdLHg/LTE9PT1DWzBdP2NbTS5jYW52YXN4XT1bTS5jYW52YXN5LHddOmNbTS5jYW52YXN4XT1bTS5jYW52YXN5LENbMF1dOmNbTS5jYW52YXN4XT1NLmNhbnZhc3l9ZWxzZSBBPWlzTmFOKE0uY2FudmFzeSkmJng/W2wueStsLmgsd106W00uY2FudmFzeSx3XTtpc05hTihFKT8odi5tb3ZlVG8oTS5jYW52YXN4LEFbMV0pLHYubGluZVRvKE0uY2FudmFzeCxBWzBdKSk6KHg/KHYubGluZVRvKE0uY2FudmFzeCxDWzBdKSx2LmxpbmVUbyhNLmNhbnZhc3gsQVswXSkpOnYubGluZVRvKE0uY2FudmFzeCxBWzBdKSxkJiYoUi5wdXNoKFtFLENbMV1dKSxSLnB1c2gocyYmbz9bTS5jYW52YXN4LG9bMV1dOltNLmNhbnZhc3gsQVsxXV0pKSksQz1BLEU9TS5jYW52YXN4fWVsc2UgeSh2LEUsQ1sxXSxSKSxSPVtdLEU9MC8wLG51bGw9PT1NLnlfc3RhY2tlZHx8aXNOYU4oTS55X3N0YWNrZWQpfHwoY1tNLmNhbnZhc3hdPWwuaCpNLnlfc3RhY2tlZCtsLnkpO3M9eCxBJiZNJiYoeSh2LE0uY2FudmFzeCxBWzFdLFIpLFI9W10pLHYuZmlsbCgpfX19fSx0fSgpLER5Z3JhcGg9ZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIHQ9ZnVuY3Rpb24odCxlLGEsaSl7dGhpcy5pc19pbml0aWFsX2RyYXdfPSEwLHRoaXMucmVhZHlGbnNfPVtdLHZvaWQgMCE9PWk/KGNvbnNvbGUud2FybigiVXNpbmcgZGVwcmVjYXRlZCBmb3VyLWFyZ3VtZW50IGR5Z3JhcGggY29uc3RydWN0b3IiKSx0aGlzLl9fb2xkX2luaXRfXyh0LGUsYSxpKSk6dGhpcy5fX2luaXRfXyh0LGUsYSl9O3JldHVybiB0Lk5BTUU9IkR5Z3JhcGgiLHQuVkVSU0lPTj0iMS4xLjEiLHQuX19yZXByX189ZnVuY3Rpb24oKXtyZXR1cm4iWyIrdC5OQU1FKyIgIit0LlZFUlNJT04rIl0ifSx0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHQuX19yZXByX18oKX0sdC5ERUZBVUxUX1JPTExfUEVSSU9EPTEsdC5ERUZBVUxUX1dJRFRIPTQ4MCx0LkRFRkFVTFRfSEVJR0hUPTMyMCx0LkFOSU1BVElPTl9TVEVQUz0xMix0LkFOSU1BVElPTl9EVVJBVElPTj0yMDAsdC5LTUJfTEFCRUxTPVsiSyIsIk0iLCJCIiwiVCIsIlEiXSx0LktNRzJfQklHX0xBQkVMUz1bImsiLCJNIiwiRyIsIlQiLCJQIiwiRSIsIloiLCJZIl0sdC5LTUcyX1NNQUxMX0xBQkVMUz1bIm0iLCJ1IiwibiIsInAiLCJmIiwiYSIsInoiLCJ5Il0sdC5udW1iZXJWYWx1ZUZvcm1hdHRlcj1mdW5jdGlvbihlLGEpe3ZhciBpPWEoInNpZ0ZpZ3MiKTtpZihudWxsIT09aSlyZXR1cm4gdC5mbG9hdEZvcm1hdChlLGkpO3ZhciByLG49YSgiZGlnaXRzQWZ0ZXJEZWNpbWFsIiksbz1hKCJtYXhOdW1iZXJXaWR0aCIpLHM9YSgibGFiZWxzS01CIiksbD1hKCJsYWJlbHNLTUcyIik7aWYocj0wIT09ZSYmKE1hdGguYWJzKGUpPj1NYXRoLnBvdygxMCxvKXx8TWF0aC5hYnMoZSk8TWF0aC5wb3coMTAsLW4pKT9lLnRvRXhwb25lbnRpYWwobik6IiIrdC5yb3VuZF8oZSxuKSxzfHxsKXt2YXIgaCxwPVtdLGc9W107cyYmKGg9MWUzLHA9dC5LTUJfTEFCRUxTKSxsJiYocyYmY29uc29sZS53YXJuKCJTZXR0aW5nIGJvdGggbGFiZWxzS01CIGFuZCBsYWJlbHNLTUcyLiBQaWNrIG9uZSEiKSxoPTEwMjQscD10LktNRzJfQklHX0xBQkVMUyxnPXQuS01HMl9TTUFMTF9MQUJFTFMpO2Zvcih2YXIgZD1NYXRoLmFicyhlKSx1PXQucG93KGgscC5sZW5ndGgpLGM9cC5sZW5ndGgtMTtjPj0wO2MtLSx1Lz1oKWlmKGQ+PXUpe3I9dC5yb3VuZF8oZS91LG4pK3BbY107YnJlYWt9aWYobCl7dmFyIHk9U3RyaW5nKGUudG9FeHBvbmVudGlhbCgpKS5zcGxpdCgiZS0iKTsyPT09eS5sZW5ndGgmJnlbMV0+PTMmJnlbMV08PTI0JiYocj15WzFdJTM+MD90LnJvdW5kXyh5WzBdL3QucG93KDEwLHlbMV0lMyksbik6TnVtYmVyKHlbMF0pLnRvRml4ZWQoMikscis9Z1tNYXRoLmZsb29yKHlbMV0vMyktMV0pfX1yZXR1cm4gcn0sdC5udW1iZXJBeGlzTGFiZWxGb3JtYXR0ZXI9ZnVuY3Rpb24oZSxhLGkpe3JldHVybiB0Lm51bWJlclZhbHVlRm9ybWF0dGVyLmNhbGwodGhpcyxlLGkpfSx0LlNIT1JUX01PTlRIX05BTUVTXz1bIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLHQuZGF0ZUF4aXNMYWJlbEZvcm1hdHRlcj1mdW5jdGlvbihlLGEsaSl7dmFyIHI9aSgibGFiZWxzVVRDIiksbj1yP3QuRGF0ZUFjY2Vzc29yc1VUQzp0LkRhdGVBY2Nlc3NvcnNMb2NhbCxvPW4uZ2V0RnVsbFllYXIoZSkscz1uLmdldE1vbnRoKGUpLGw9bi5nZXREYXRlKGUpLGg9bi5nZXRIb3VycyhlKSxwPW4uZ2V0TWludXRlcyhlKSxnPW4uZ2V0U2Vjb25kcyhlKSxkPW4uZ2V0U2Vjb25kcyhlKTtpZihhPj10LkRFQ0FEQUwpcmV0dXJuIiIrbztpZihhPj10Lk1PTlRITFkpcmV0dXJuIHQuU0hPUlRfTU9OVEhfTkFNRVNfW3NdKyImIzE2MDsiK287dmFyIHU9MzYwMCpoKzYwKnArZysuMDAxKmQ7cmV0dXJuIDA9PT11fHxhPj10LkRBSUxZP3QuemVyb3BhZChsKSsiJiMxNjA7Iit0LlNIT1JUX01PTlRIX05BTUVTX1tzXTp0Lmhtc1N0cmluZ18oaCxwLGcpfSx0LmRhdGVBeGlzRm9ybWF0dGVyPXQuZGF0ZUF4aXNMYWJlbEZvcm1hdHRlcix0LmRhdGVWYWx1ZUZvcm1hdHRlcj1mdW5jdGlvbihlLGEpe3JldHVybiB0LmRhdGVTdHJpbmdfKGUsYSgibGFiZWxzVVRDIikpfSx0LlBsb3R0ZXJzPUR5Z3JhcGhDYW52YXNSZW5kZXJlci5fUGxvdHRlcnMsdC5ERUZBVUxUX0FUVFJTPXtoaWdobGlnaHRDaXJjbGVTaXplOjMsaGlnaGxpZ2h0U2VyaWVzT3B0czpudWxsLGhpZ2hsaWdodFNlcmllc0JhY2tncm91bmRBbHBoYTouNSxsYWJlbHNEaXZXaWR0aDoyNTAsbGFiZWxzRGl2U3R5bGVzOnt9LGxhYmVsc1NlcGFyYXRlTGluZXM6ITEsbGFiZWxzU2hvd1plcm9WYWx1ZXM6ITAsbGFiZWxzS01COiExLGxhYmVsc0tNRzI6ITEsc2hvd0xhYmVsc09uSGlnaGxpZ2h0OiEwLGRpZ2l0c0FmdGVyRGVjaW1hbDoyLG1heE51bWJlcldpZHRoOjYsc2lnRmlnczpudWxsLHN0cm9rZVdpZHRoOjEsc3Ryb2tlQm9yZGVyV2lkdGg6MCxzdHJva2VCb3JkZXJDb2xvcjoid2hpdGUiLGF4aXNUaWNrU2l6ZTozLGF4aXNMYWJlbEZvbnRTaXplOjE0LHJpZ2h0R2FwOjUsc2hvd1JvbGxlcjohMSx4VmFsdWVQYXJzZXI6dC5kYXRlUGFyc2VyLGRlbGltaXRlcjoiLCIsc2lnbWE6MixlcnJvckJhcnM6ITEsZnJhY3Rpb25zOiExLHdpbHNvbkludGVydmFsOiEwLGN1c3RvbUJhcnM6ITEsZmlsbEdyYXBoOiExLGZpbGxBbHBoYTouMTUsY29ubmVjdFNlcGFyYXRlZFBvaW50czohMSxzdGFja2VkR3JhcGg6ITEsc3RhY2tlZEdyYXBoTmFORmlsbDoiYWxsIixoaWRlT3ZlcmxheU9uTW91c2VPdXQ6ITAsbGVnZW5kOiJvbm1vdXNlb3ZlciIsc3RlcFBsb3Q6ITEsYXZvaWRNaW5aZXJvOiExLHhSYW5nZVBhZDowLHlSYW5nZVBhZDpudWxsLGRyYXdBeGVzQXRaZXJvOiExLHRpdGxlSGVpZ2h0OjI4LHhMYWJlbEhlaWdodDoxOCx5TGFiZWxXaWR0aDoxOCxkcmF3WEF4aXM6ITAsZHJhd1lBeGlzOiEwLGF4aXNMaW5lQ29sb3I6ImJsYWNrIixheGlzTGluZVdpZHRoOi4zLGdyaWRMaW5lV2lkdGg6LjMsYXhpc0xhYmVsQ29sb3I6ImJsYWNrIixheGlzTGFiZWxXaWR0aDo1MCxkcmF3WUdyaWQ6ITAsZHJhd1hHcmlkOiEwLGdyaWRMaW5lQ29sb3I6InJnYigxMjgsMTI4LDEyOCkiLGludGVyYWN0aW9uTW9kZWw6bnVsbCxhbmltYXRlZFpvb21zOiExLHNob3dSYW5nZVNlbGVjdG9yOiExLHJhbmdlU2VsZWN0b3JIZWlnaHQ6NDAscmFuZ2VTZWxlY3RvclBsb3RTdHJva2VDb2xvcjoiIzgwOEZBQiIscmFuZ2VTZWxlY3RvclBsb3RGaWxsQ29sb3I6IiNBN0IxQzQiLHNob3dJblJhbmdlU2VsZWN0b3I6bnVsbCxwbG90dGVyOlt0LlBsb3R0ZXJzLmZpbGxQbG90dGVyLHQuUGxvdHRlcnMuZXJyb3JQbG90dGVyLHQuUGxvdHRlcnMubGluZVBsb3R0ZXJdLHBsdWdpbnM6W10sYXhlczp7eDp7cGl4ZWxzUGVyTGFiZWw6NzAsYXhpc0xhYmVsV2lkdGg6NjAsYXhpc0xhYmVsRm9ybWF0dGVyOnQuZGF0ZUF4aXNMYWJlbEZvcm1hdHRlcix2YWx1ZUZvcm1hdHRlcjp0LmRhdGVWYWx1ZUZvcm1hdHRlcixkcmF3R3JpZDohMCxkcmF3QXhpczohMCxpbmRlcGVuZGVudFRpY2tzOiEwLHRpY2tlcjpudWxsfSx5OntheGlzTGFiZWxXaWR0aDo1MCxwaXhlbHNQZXJMYWJlbDozMCx2YWx1ZUZvcm1hdHRlcjp0Lm51bWJlclZhbHVlRm9ybWF0dGVyLGF4aXNMYWJlbEZvcm1hdHRlcjp0Lm51bWJlckF4aXNMYWJlbEZvcm1hdHRlcixkcmF3R3JpZDohMCxkcmF3QXhpczohMCxpbmRlcGVuZGVudFRpY2tzOiEwLHRpY2tlcjpudWxsfSx5Mjp7YXhpc0xhYmVsV2lkdGg6NTAscGl4ZWxzUGVyTGFiZWw6MzAsdmFsdWVGb3JtYXR0ZXI6dC5udW1iZXJWYWx1ZUZvcm1hdHRlcixheGlzTGFiZWxGb3JtYXR0ZXI6dC5udW1iZXJBeGlzTGFiZWxGb3JtYXR0ZXIsZHJhd0F4aXM6ITAsZHJhd0dyaWQ6ITEsaW5kZXBlbmRlbnRUaWNrczohMSx0aWNrZXI6bnVsbH19fSx0LkhPUklaT05UQUw9MSx0LlZFUlRJQ0FMPTIsdC5QTFVHSU5TPVtdLHQuYWRkZWRBbm5vdGF0aW9uQ1NTPSExLHQucHJvdG90eXBlLl9fb2xkX2luaXRfXz1mdW5jdGlvbihlLGEsaSxyKXtpZihudWxsIT09aSl7Zm9yKHZhciBuPVsiRGF0ZSJdLG89MDtvPGkubGVuZ3RoO28rKyluLnB1c2goaVtvXSk7dC51cGRhdGUocix7bGFiZWxzOm59KX10aGlzLl9faW5pdF9fKGUsYSxyKX0sdC5wcm90b3R5cGUuX19pbml0X189ZnVuY3Rpb24oZSxhLGkpe2lmKC9NU0lFLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYhd2luZG93Lm9wZXJhJiYidW5kZWZpbmVkIiE9dHlwZW9mIEdfdm1sQ2FudmFzTWFuYWdlciYmImNvbXBsZXRlIiE9ZG9jdW1lbnQucmVhZHlTdGF0ZSl7dmFyIHI9dGhpcztyZXR1cm4gdm9pZCBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5fX2luaXRfXyhlLGEsaSl9LDEwMCl9aWYoKG51bGw9PT1pfHx2b2lkIDA9PT1pKSYmKGk9e30pLGk9dC5tYXBMZWdhY3lPcHRpb25zXyhpKSwic3RyaW5nIj09dHlwZW9mIGUmJihlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGUpKSwhZSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJDb25zdHJ1Y3RpbmcgZHlncmFwaCB3aXRoIGEgbm9uLWV4aXN0ZW50IGRpdiEiKTt0aGlzLmlzVXNpbmdFeGNhbnZhc189InVuZGVmaW5lZCIhPXR5cGVvZiBHX3ZtbENhbnZhc01hbmFnZXIsdGhpcy5tYWluZGl2Xz1lLHRoaXMuZmlsZV89YSx0aGlzLnJvbGxQZXJpb2RfPWkucm9sbFBlcmlvZHx8dC5ERUZBVUxUX1JPTExfUEVSSU9ELHRoaXMucHJldmlvdXNWZXJ0aWNhbFhfPS0xLHRoaXMuZnJhY3Rpb25zXz1pLmZyYWN0aW9uc3x8ITEsdGhpcy5kYXRlV2luZG93Xz1pLmRhdGVXaW5kb3d8fG51bGwsdGhpcy5hbm5vdGF0aW9uc189W10sdGhpcy56b29tZWRfeF89ITEsdGhpcy56b29tZWRfeV89ITEsZS5pbm5lckhUTUw9IiIsIiI9PT1lLnN0eWxlLndpZHRoJiZpLndpZHRoJiYoZS5zdHlsZS53aWR0aD1pLndpZHRoKyJweCIpLCIiPT09ZS5zdHlsZS5oZWlnaHQmJmkuaGVpZ2h0JiYoZS5zdHlsZS5oZWlnaHQ9aS5oZWlnaHQrInB4IiksIiI9PT1lLnN0eWxlLmhlaWdodCYmMD09PWUuY2xpZW50SGVpZ2h0JiYoZS5zdHlsZS5oZWlnaHQ9dC5ERUZBVUxUX0hFSUdIVCsicHgiLCIiPT09ZS5zdHlsZS53aWR0aCYmKGUuc3R5bGUud2lkdGg9dC5ERUZBVUxUX1dJRFRIKyJweCIpKSx0aGlzLndpZHRoXz1lLmNsaWVudFdpZHRofHxpLndpZHRofHwwLHRoaXMuaGVpZ2h0Xz1lLmNsaWVudEhlaWdodHx8aS5oZWlnaHR8fDAsaS5zdGFja2VkR3JhcGgmJihpLmZpbGxHcmFwaD0hMCksdGhpcy51c2VyX2F0dHJzXz17fSx0LnVwZGF0ZSh0aGlzLnVzZXJfYXR0cnNfLGkpLHRoaXMuYXR0cnNfPXt9LHQudXBkYXRlRGVlcCh0aGlzLmF0dHJzXyx0LkRFRkFVTFRfQVRUUlMpLHRoaXMuYm91bmRhcnlJZHNfPVtdLHRoaXMuc2V0SW5kZXhCeU5hbWVfPXt9LHRoaXMuZGF0YXNldEluZGV4Xz1bXSx0aGlzLnJlZ2lzdGVyZWRFdmVudHNfPVtdLHRoaXMuZXZlbnRMaXN0ZW5lcnNfPXt9LHRoaXMuYXR0cmlidXRlc189bmV3IER5Z3JhcGhPcHRpb25zKHRoaXMpLHRoaXMuY3JlYXRlSW50ZXJmYWNlXygpLHRoaXMucGx1Z2luc189W107Zm9yKHZhciBuPXQuUExVR0lOUy5jb25jYXQodGhpcy5nZXRPcHRpb24oInBsdWdpbnMiKSksbz0wO288bi5sZW5ndGg7bysrKXt2YXIgcyxsPW5bb107cz0idW5kZWZpbmVkIiE9dHlwZW9mIGwuYWN0aXZhdGU/bDpuZXcgbDt2YXIgaD17cGx1Z2luOnMsZXZlbnRzOnt9LG9wdGlvbnM6e30scGx1Z2luT3B0aW9uczp7fX0scD1zLmFjdGl2YXRlKHRoaXMpO2Zvcih2YXIgZyBpbiBwKXAuaGFzT3duUHJvcGVydHkoZykmJihoLmV2ZW50c1tnXT1wW2ddKTt0aGlzLnBsdWdpbnNfLnB1c2goaCl9Zm9yKHZhciBvPTA7bzx0aGlzLnBsdWdpbnNfLmxlbmd0aDtvKyspe3ZhciBkPXRoaXMucGx1Z2luc19bb107Zm9yKHZhciBnIGluIGQuZXZlbnRzKWlmKGQuZXZlbnRzLmhhc093blByb3BlcnR5KGcpKXt2YXIgdT1kLmV2ZW50c1tnXSxjPVtkLnBsdWdpbix1XTtnIGluIHRoaXMuZXZlbnRMaXN0ZW5lcnNfP3RoaXMuZXZlbnRMaXN0ZW5lcnNfW2ddLnB1c2goYyk6dGhpcy5ldmVudExpc3RlbmVyc19bZ109W2NdfX10aGlzLmNyZWF0ZURyYWdJbnRlcmZhY2VfKCksdGhpcy5zdGFydF8oKX0sdC5wcm90b3R5cGUuY2FzY2FkZUV2ZW50c189ZnVuY3Rpb24oZSxhKXtpZighKGUgaW4gdGhpcy5ldmVudExpc3RlbmVyc18pKXJldHVybiExO3ZhciBpPXtkeWdyYXBoOnRoaXMsY2FuY2VsYWJsZTohMSxkZWZhdWx0UHJldmVudGVkOiExLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7aWYoIWkuY2FuY2VsYWJsZSl0aHJvdyJDYW5ub3QgY2FsbCBwcmV2ZW50RGVmYXVsdCBvbiBub24tY2FuY2VsYWJsZSBldmVudC4iO2kuZGVmYXVsdFByZXZlbnRlZD0hMH0scHJvcGFnYXRpb25TdG9wcGVkOiExLHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe2kucHJvcGFnYXRpb25TdG9wcGVkPSEwfX07dC51cGRhdGUoaSxhKTt2YXIgcj10aGlzLmV2ZW50TGlzdGVuZXJzX1tlXTtpZihyKWZvcih2YXIgbj1yLmxlbmd0aC0xO24+PTA7bi0tKXt2YXIgbz1yW25dWzBdLHM9cltuXVsxXTtpZihzLmNhbGwobyxpKSxpLnByb3BhZ2F0aW9uU3RvcHBlZClicmVha31yZXR1cm4gaS5kZWZhdWx0UHJldmVudGVkfSx0LnByb3RvdHlwZS5nZXRQbHVnaW5JbnN0YW5jZV89ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTx0aGlzLnBsdWdpbnNfLmxlbmd0aDtlKyspe3ZhciBhPXRoaXMucGx1Z2luc19bZV07aWYoYS5wbHVnaW4gaW5zdGFuY2VvZiB0KXJldHVybiBhLnBsdWdpbn1yZXR1cm4gbnVsbH0sdC5wcm90b3R5cGUuaXNab29tZWQ9ZnVuY3Rpb24odCl7aWYobnVsbD09PXR8fHZvaWQgMD09PXQpcmV0dXJuIHRoaXMuem9vbWVkX3hffHx0aGlzLnpvb21lZF95XztpZigieCI9PT10KXJldHVybiB0aGlzLnpvb21lZF94XztpZigieSI9PT10KXJldHVybiB0aGlzLnpvb21lZF95Xzt0aHJvdyJheGlzIHBhcmFtZXRlciBpcyBbIit0KyJdIG11c3QgYmUgbnVsbCwgJ3gnIG9yICd5Jy4ifSx0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3ZhciB0PXRoaXMubWFpbmRpdl8sZT10JiZ0LmlkP3QuaWQ6dDtyZXR1cm4iW0R5Z3JhcGggIitlKyJdIn0sdC5wcm90b3R5cGUuYXR0cl89ZnVuY3Rpb24odCxlKXtyZXR1cm4gZT90aGlzLmF0dHJpYnV0ZXNfLmdldEZvclNlcmllcyh0LGUpOnRoaXMuYXR0cmlidXRlc18uZ2V0KHQpfSx0LnByb3RvdHlwZS5nZXRPcHRpb249ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5hdHRyXyh0LGUpfSx0LnByb3RvdHlwZS5nZXROdW1lcmljT3B0aW9uPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuZ2V0T3B0aW9uKHQsZSl9LHQucHJvdG90eXBlLmdldFN0cmluZ09wdGlvbj1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmdldE9wdGlvbih0LGUpfSx0LnByb3RvdHlwZS5nZXRCb29sZWFuT3B0aW9uPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuZ2V0T3B0aW9uKHQsZSl9LHQucHJvdG90eXBlLmdldEZ1bmN0aW9uT3B0aW9uPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuZ2V0T3B0aW9uKHQsZSl9LHQucHJvdG90eXBlLmdldE9wdGlvbkZvckF4aXM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5hdHRyaWJ1dGVzXy5nZXRGb3JBeGlzKHQsZSl9LHQucHJvdG90eXBlLm9wdGlvbnNWaWV3Rm9yQXhpc189ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gZnVuY3Rpb24oYSl7dmFyIGk9ZS51c2VyX2F0dHJzXy5heGVzO3JldHVybiBpJiZpW3RdJiZpW3RdLmhhc093blByb3BlcnR5KGEpP2lbdF1bYV06IngiPT09dCYmImxvZ3NjYWxlIj09PWE/ITE6InVuZGVmaW5lZCIhPXR5cGVvZiBlLnVzZXJfYXR0cnNfW2FdP2UudXNlcl9hdHRyc19bYV06KGk9ZS5hdHRyc18uYXhlcyxpJiZpW3RdJiZpW3RdLmhhc093blByb3BlcnR5KGEpP2lbdF1bYV06InkiPT10JiZlLmF4ZXNfWzBdLmhhc093blByb3BlcnR5KGEpP2UuYXhlc19bMF1bYV06InkyIj09dCYmZS5heGVzX1sxXS5oYXNPd25Qcm9wZXJ0eShhKT9lLmF4ZXNfWzFdW2FdOmUuYXR0cl8oYSkpfX0sdC5wcm90b3R5cGUucm9sbFBlcmlvZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJvbGxQZXJpb2RffSx0LnByb3RvdHlwZS54QXhpc1JhbmdlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0ZVdpbmRvd18/dGhpcy5kYXRlV2luZG93Xzp0aGlzLnhBeGlzRXh0cmVtZXMoKX0sdC5wcm90b3R5cGUueEF4aXNFeHRyZW1lcz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZ2V0TnVtZXJpY09wdGlvbigieFJhbmdlUGFkIikvdGhpcy5wbG90dGVyXy5hcmVhLnc7aWYoMD09PXRoaXMubnVtUm93cygpKXJldHVyblswLXQsMSt0XTt2YXIgZT10aGlzLnJhd0RhdGFfWzBdWzBdLGE9dGhpcy5yYXdEYXRhX1t0aGlzLnJhd0RhdGFfLmxlbmd0aC0xXVswXTtpZih0KXt2YXIgaT1hLWU7ZS09aSp0LGErPWkqdH1yZXR1cm5bZSxhXX0sdC5wcm90b3R5cGUueUF4aXNSYW5nZT1mdW5jdGlvbih0KXtpZigidW5kZWZpbmVkIj09dHlwZW9mIHQmJih0PTApLDA+dHx8dD49dGhpcy5heGVzXy5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIGU9dGhpcy5heGVzX1t0XTtyZXR1cm5bZS5jb21wdXRlZFZhbHVlUmFuZ2VbMF0sZS5jb21wdXRlZFZhbHVlUmFuZ2VbMV1dfSx0LnByb3RvdHlwZS55QXhpc1Jhbmdlcz1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPTA7ZTx0aGlzLmF4ZXNfLmxlbmd0aDtlKyspdC5wdXNoKHRoaXMueUF4aXNSYW5nZShlKSk7cmV0dXJuIHR9LHQucHJvdG90eXBlLnRvRG9tQ29vcmRzPWZ1bmN0aW9uKHQsZSxhKXtyZXR1cm5bdGhpcy50b0RvbVhDb29yZCh0KSx0aGlzLnRvRG9tWUNvb3JkKGUsYSldfSx0LnByb3RvdHlwZS50b0RvbVhDb29yZD1mdW5jdGlvbih0KXtpZihudWxsPT09dClyZXR1cm4gbnVsbDt2YXIgZT10aGlzLnBsb3R0ZXJfLmFyZWEsYT10aGlzLnhBeGlzUmFuZ2UoKTtyZXR1cm4gZS54Kyh0LWFbMF0pLyhhWzFdLWFbMF0pKmUud30sdC5wcm90b3R5cGUudG9Eb21ZQ29vcmQ9ZnVuY3Rpb24odCxlKXt2YXIgYT10aGlzLnRvUGVyY2VudFlDb29yZCh0LGUpO2lmKG51bGw9PT1hKXJldHVybiBudWxsO3ZhciBpPXRoaXMucGxvdHRlcl8uYXJlYTtyZXR1cm4gaS55K2EqaS5ofSx0LnByb3RvdHlwZS50b0RhdGFDb29yZHM9ZnVuY3Rpb24odCxlLGEpe3JldHVyblt0aGlzLnRvRGF0YVhDb29yZCh0KSx0aGlzLnRvRGF0YVlDb29yZChlLGEpXX0sdC5wcm90b3R5cGUudG9EYXRhWENvb3JkPWZ1bmN0aW9uKGUpe2lmKG51bGw9PT1lKXJldHVybiBudWxsO3ZhciBhPXRoaXMucGxvdHRlcl8uYXJlYSxpPXRoaXMueEF4aXNSYW5nZSgpO2lmKHRoaXMuYXR0cmlidXRlc18uZ2V0Rm9yQXhpcygibG9nc2NhbGUiLCJ4Iikpe3ZhciByPShlLWEueCkvYS53LG49dC5sb2cxMChpWzBdKSxvPXQubG9nMTAoaVsxXSkscz1uK3IqKG8tbiksbD1NYXRoLnBvdyh0LkxPR19TQ0FMRSxzKTtyZXR1cm4gbH1yZXR1cm4gaVswXSsoZS1hLngpL2EudyooaVsxXS1pWzBdKX0sdC5wcm90b3R5cGUudG9EYXRhWUNvb3JkPWZ1bmN0aW9uKGUsYSl7aWYobnVsbD09PWUpcmV0dXJuIG51bGw7dmFyIGk9dGhpcy5wbG90dGVyXy5hcmVhLHI9dGhpcy55QXhpc1JhbmdlKGEpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYSYmKGE9MCksdGhpcy5hdHRyaWJ1dGVzXy5nZXRGb3JBeGlzKCJsb2dzY2FsZSIsYSkpe3ZhciBuPShlLWkueSkvaS5oLG89dC5sb2cxMChyWzBdKSxzPXQubG9nMTAoclsxXSksbD1zLW4qKHMtbyksaD1NYXRoLnBvdyh0LkxPR19TQ0FMRSxsKTtyZXR1cm4gaH1yZXR1cm4gclswXSsoaS55K2kuaC1lKS9pLmgqKHJbMV0tclswXSl9LHQucHJvdG90eXBlLnRvUGVyY2VudFlDb29yZD1mdW5jdGlvbihlLGEpe2lmKG51bGw9PT1lKXJldHVybiBudWxsOyJ1bmRlZmluZWQiPT10eXBlb2YgYSYmKGE9MCk7dmFyIGkscj10aGlzLnlBeGlzUmFuZ2UoYSksbj10aGlzLmF0dHJpYnV0ZXNfLmdldEZvckF4aXMoImxvZ3NjYWxlIixhKTtpZihuKXt2YXIgbz10LmxvZzEwKHJbMF0pLHM9dC5sb2cxMChyWzFdKTtpPShzLXQubG9nMTAoZSkpLyhzLW8pfWVsc2UgaT0oclsxXS1lKS8oclsxXS1yWzBdKTtyZXR1cm4gaX0sdC5wcm90b3R5cGUudG9QZXJjZW50WENvb3JkPWZ1bmN0aW9uKGUpe2lmKG51bGw9PT1lKXJldHVybiBudWxsO3ZhciBhLGk9dGhpcy54QXhpc1JhbmdlKCkscj10aGlzLmF0dHJpYnV0ZXNfLmdldEZvckF4aXMoImxvZ3NjYWxlIiwieCIpO2lmKHI9PT0hMCl7dmFyIG49dC5sb2cxMChpWzBdKSxvPXQubG9nMTAoaVsxXSk7YT0odC5sb2cxMChlKS1uKS8oby1uKX1lbHNlIGE9KGUtaVswXSkvKGlbMV0taVswXSk7cmV0dXJuIGF9LHQucHJvdG90eXBlLm51bUNvbHVtbnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yYXdEYXRhXz90aGlzLnJhd0RhdGFfWzBdP3RoaXMucmF3RGF0YV9bMF0ubGVuZ3RoOnRoaXMuYXR0cl8oImxhYmVscyIpLmxlbmd0aDowfSx0LnByb3RvdHlwZS5udW1Sb3dzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmF3RGF0YV8/dGhpcy5yYXdEYXRhXy5sZW5ndGg6MH0sdC5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gMD50fHx0PnRoaXMucmF3RGF0YV8ubGVuZ3RoP251bGw6MD5lfHxlPnRoaXMucmF3RGF0YV9bdF0ubGVuZ3RoP251bGw6dGhpcy5yYXdEYXRhX1t0XVtlXX0sdC5wcm90b3R5cGUuY3JlYXRlSW50ZXJmYWNlXz1mdW5jdGlvbigpe3ZhciBlPXRoaXMubWFpbmRpdl87dGhpcy5ncmFwaERpdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLmdyYXBoRGl2LnN0eWxlLnRleHRBbGlnbj0ibGVmdCIsdGhpcy5ncmFwaERpdi5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiLGUuYXBwZW5kQ2hpbGQodGhpcy5ncmFwaERpdiksdGhpcy5jYW52YXNfPXQuY3JlYXRlQ2FudmFzKCksdGhpcy5jYW52YXNfLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsdGhpcy5oaWRkZW5fPXRoaXMuY3JlYXRlUGxvdEtpdENhbnZhc18odGhpcy5jYW52YXNfKSx0aGlzLmNhbnZhc19jdHhfPXQuZ2V0Q29udGV4dCh0aGlzLmNhbnZhc18pLHRoaXMuaGlkZGVuX2N0eF89dC5nZXRDb250ZXh0KHRoaXMuaGlkZGVuXyksdGhpcy5yZXNpemVFbGVtZW50c18oKSx0aGlzLmdyYXBoRGl2LmFwcGVuZENoaWxkKHRoaXMuaGlkZGVuXyksdGhpcy5ncmFwaERpdi5hcHBlbmRDaGlsZCh0aGlzLmNhbnZhc18pLHRoaXMubW91c2VFdmVudEVsZW1lbnRfPXRoaXMuY3JlYXRlTW91c2VFdmVudEVsZW1lbnRfKCksdGhpcy5sYXlvdXRfPW5ldyBEeWdyYXBoTGF5b3V0KHRoaXMpO3ZhciBhPXRoaXM7dGhpcy5tb3VzZU1vdmVIYW5kbGVyXz1mdW5jdGlvbih0KXthLm1vdXNlTW92ZV8odCl9LHRoaXMubW91c2VPdXRIYW5kbGVyXz1mdW5jdGlvbihlKXt2YXIgaT1lLnRhcmdldHx8ZS5mcm9tRWxlbWVudCxyPWUucmVsYXRlZFRhcmdldHx8ZS50b0VsZW1lbnQ7dC5pc05vZGVDb250YWluZWRCeShpLGEuZ3JhcGhEaXYpJiYhdC5pc05vZGVDb250YWluZWRCeShyLGEuZ3JhcGhEaXYpJiZhLm1vdXNlT3V0XyhlKX0sdGhpcy5hZGRBbmRUcmFja0V2ZW50KHdpbmRvdywibW91c2VvdXQiLHRoaXMubW91c2VPdXRIYW5kbGVyXyksdGhpcy5hZGRBbmRUcmFja0V2ZW50KHRoaXMubW91c2VFdmVudEVsZW1lbnRfLCJtb3VzZW1vdmUiLHRoaXMubW91c2VNb3ZlSGFuZGxlcl8pLHRoaXMucmVzaXplSGFuZGxlcl98fCh0aGlzLnJlc2l6ZUhhbmRsZXJfPWZ1bmN0aW9uKHQpe2EucmVzaXplKCl9LHRoaXMuYWRkQW5kVHJhY2tFdmVudCh3aW5kb3csInJlc2l6ZSIsdGhpcy5yZXNpemVIYW5kbGVyXykpfSx0LnByb3RvdHlwZS5yZXNpemVFbGVtZW50c189ZnVuY3Rpb24oKXt0aGlzLmdyYXBoRGl2LnN0eWxlLndpZHRoPXRoaXMud2lkdGhfKyJweCIsdGhpcy5ncmFwaERpdi5zdHlsZS5oZWlnaHQ9dGhpcy5oZWlnaHRfKyJweCI7dmFyIGU9dC5nZXRDb250ZXh0UGl4ZWxSYXRpbyh0aGlzLmNhbnZhc19jdHhfKTt0aGlzLmNhbnZhc18ud2lkdGg9dGhpcy53aWR0aF8qZSx0aGlzLmNhbnZhc18uaGVpZ2h0PXRoaXMuaGVpZ2h0XyplLHRoaXMuY2FudmFzXy5zdHlsZS53aWR0aD10aGlzLndpZHRoXysicHgiLHRoaXMuY2FudmFzXy5zdHlsZS5oZWlnaHQ9dGhpcy5oZWlnaHRfKyJweCIsMSE9PWUmJnRoaXMuY2FudmFzX2N0eF8uc2NhbGUoZSxlKTt2YXIgYT10LmdldENvbnRleHRQaXhlbFJhdGlvKHRoaXMuaGlkZGVuX2N0eF8pO3RoaXMuaGlkZGVuXy53aWR0aD10aGlzLndpZHRoXyphLHRoaXMuaGlkZGVuXy5oZWlnaHQ9dGhpcy5oZWlnaHRfKmEsdGhpcy5oaWRkZW5fLnN0eWxlLndpZHRoPXRoaXMud2lkdGhfKyJweCIsdGhpcy5oaWRkZW5fLnN0eWxlLmhlaWdodD10aGlzLmhlaWdodF8rInB4IiwxIT09YSYmdGhpcy5oaWRkZW5fY3R4Xy5zY2FsZShhLGEpfSx0LnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5jYW52YXNfY3R4Xy5yZXN0b3JlKCksdGhpcy5oaWRkZW5fY3R4Xy5yZXN0b3JlKCk7Zm9yKHZhciBlPXRoaXMucGx1Z2luc18ubGVuZ3RoLTE7ZT49MDtlLS0pe3ZhciBhPXRoaXMucGx1Z2luc18ucG9wKCk7YS5wbHVnaW4uZGVzdHJveSYmYS5wbHVnaW4uZGVzdHJveSgpfXZhciBpPWZ1bmN0aW9uKHQpe2Zvcig7dC5oYXNDaGlsZE5vZGVzKCk7KWkodC5maXJzdENoaWxkKSx0LnJlbW92ZUNoaWxkKHQuZmlyc3RDaGlsZCl9O3RoaXMucmVtb3ZlVHJhY2tlZEV2ZW50c18oKSx0LnJlbW92ZUV2ZW50KHdpbmRvdywibW91c2VvdXQiLHRoaXMubW91c2VPdXRIYW5kbGVyXyksdC5yZW1vdmVFdmVudCh0aGlzLm1vdXNlRXZlbnRFbGVtZW50XywibW91c2Vtb3ZlIix0aGlzLm1vdXNlTW92ZUhhbmRsZXJfKSx0LnJlbW92ZUV2ZW50KHdpbmRvdywicmVzaXplIix0aGlzLnJlc2l6ZUhhbmRsZXJfKSx0aGlzLnJlc2l6ZUhhbmRsZXJfPW51bGwsaSh0aGlzLm1haW5kaXZfKTt2YXIgcj1mdW5jdGlvbih0KXtmb3IodmFyIGUgaW4gdCkib2JqZWN0Ij09dHlwZW9mIHRbZV0mJih0W2VdPW51bGwpfTtyKHRoaXMubGF5b3V0Xykscih0aGlzLnBsb3R0ZXJfKSxyKHRoaXMpfSx0LnByb3RvdHlwZS5jcmVhdGVQbG90S2l0Q2FudmFzXz1mdW5jdGlvbihlKXt2YXIgYT10LmNyZWF0ZUNhbnZhcygpO3JldHVybiBhLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsYS5zdHlsZS50b3A9ZS5zdHlsZS50b3AsYS5zdHlsZS5sZWZ0PWUuc3R5bGUubGVmdCxhLndpZHRoPXRoaXMud2lkdGhfLGEuaGVpZ2h0PXRoaXMuaGVpZ2h0XyxhLnN0eWxlLndpZHRoPXRoaXMud2lkdGhfKyJweCIsYS5zdHlsZS5oZWlnaHQ9dGhpcy5oZWlnaHRfKyJweCIsYX0sdC5wcm90b3R5cGUuY3JlYXRlTW91c2VFdmVudEVsZW1lbnRfPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1VzaW5nRXhjYW52YXNfKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHQuc3R5bGUuYmFja2dyb3VuZENvbG9yPSJ3aGl0ZSIsdC5zdHlsZS5maWx0ZXI9ImFscGhhKG9wYWNpdHk9MCkiLHQuc3R5bGUud2lkdGg9dGhpcy53aWR0aF8rInB4Iix0LnN0eWxlLmhlaWdodD10aGlzLmhlaWdodF8rInB4Iix0aGlzLmdyYXBoRGl2LmFwcGVuZENoaWxkKHQpLHR9cmV0dXJuIHRoaXMuY2FudmFzX30sdC5wcm90b3R5cGUuc2V0Q29sb3JzXz1mdW5jdGlvbigpe3ZhciBlPXRoaXMuZ2V0TGFiZWxzKCksYT1lLmxlbmd0aC0xO3RoaXMuY29sb3JzXz1bXSx0aGlzLmNvbG9yc01hcF89e307Zm9yKHZhciBpPXRoaXMuZ2V0TnVtZXJpY09wdGlvbigiY29sb3JTYXR1cmF0aW9uIil8fDEscj10aGlzLmdldE51bWVyaWNPcHRpb24oImNvbG9yVmFsdWUiKXx8LjUsbj1NYXRoLmNlaWwoYS8yKSxvPXRoaXMuZ2V0T3B0aW9uKCJjb2xvcnMiKSxzPXRoaXMudmlzaWJpbGl0eSgpLGw9MDthPmw7bCsrKWlmKHNbbF0pewp2YXIgaD1lW2wrMV0scD10aGlzLmF0dHJpYnV0ZXNfLmdldEZvclNlcmllcygiY29sb3IiLGgpO2lmKCFwKWlmKG8pcD1vW2wlby5sZW5ndGhdO2Vsc2V7dmFyIGc9bCUyP24rKGwrMSkvMjpNYXRoLmNlaWwoKGwrMSkvMiksZD0xKmcvKDErYSk7cD10LmhzdlRvUkdCKGQsaSxyKX10aGlzLmNvbG9yc18ucHVzaChwKSx0aGlzLmNvbG9yc01hcF9baF09cH19LHQucHJvdG90eXBlLmdldENvbG9ycz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbG9yc199LHQucHJvdG90eXBlLmdldFByb3BlcnRpZXNGb3JTZXJpZXM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPS0xLGE9dGhpcy5nZXRMYWJlbHMoKSxpPTE7aTxhLmxlbmd0aDtpKyspaWYoYVtpXT09dCl7ZT1pO2JyZWFrfXJldHVybi0xPT1lP251bGw6e25hbWU6dCxjb2x1bW46ZSx2aXNpYmxlOnRoaXMudmlzaWJpbGl0eSgpW2UtMV0sY29sb3I6dGhpcy5jb2xvcnNNYXBfW3RdLGF4aXM6MSt0aGlzLmF0dHJpYnV0ZXNfLmF4aXNGb3JTZXJpZXModCl9fSx0LnByb3RvdHlwZS5jcmVhdGVSb2xsSW50ZXJmYWNlXz1mdW5jdGlvbigpe3RoaXMucm9sbGVyX3x8KHRoaXMucm9sbGVyXz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLHRoaXMucm9sbGVyXy50eXBlPSJ0ZXh0Iix0aGlzLnJvbGxlcl8uc3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5ncmFwaERpdi5hcHBlbmRDaGlsZCh0aGlzLnJvbGxlcl8pKTt2YXIgdD10aGlzLmdldEJvb2xlYW5PcHRpb24oInNob3dSb2xsZXIiKT8iYmxvY2siOiJub25lIixlPXRoaXMucGxvdHRlcl8uYXJlYSxhPXtwb3NpdGlvbjoiYWJzb2x1dGUiLHpJbmRleDoxMCx0b3A6ZS55K2UuaC0yNSsicHgiLGxlZnQ6ZS54KzErInB4IixkaXNwbGF5OnR9O3RoaXMucm9sbGVyXy5zaXplPSIyIix0aGlzLnJvbGxlcl8udmFsdWU9dGhpcy5yb2xsUGVyaW9kXztmb3IodmFyIGkgaW4gYSlhLmhhc093blByb3BlcnR5KGkpJiYodGhpcy5yb2xsZXJfLnN0eWxlW2ldPWFbaV0pO3ZhciByPXRoaXM7dGhpcy5yb2xsZXJfLm9uY2hhbmdlPWZ1bmN0aW9uKCl7ci5hZGp1c3RSb2xsKHIucm9sbGVyXy52YWx1ZSl9fSx0LnByb3RvdHlwZS5jcmVhdGVEcmFnSW50ZXJmYWNlXz1mdW5jdGlvbigpe3ZhciBlPXtpc1pvb21pbmc6ITEsaXNQYW5uaW5nOiExLGlzMkRQYW46ITEsZHJhZ1N0YXJ0WDpudWxsLGRyYWdTdGFydFk6bnVsbCxkcmFnRW5kWDpudWxsLGRyYWdFbmRZOm51bGwsZHJhZ0RpcmVjdGlvbjpudWxsLHByZXZFbmRYOm51bGwscHJldkVuZFk6bnVsbCxwcmV2RHJhZ0RpcmVjdGlvbjpudWxsLGNhbmNlbE5leHREYmxjbGljazohMSxpbml0aWFsTGVmdG1vc3REYXRlOm51bGwseFVuaXRzUGVyUGl4ZWw6bnVsbCxkYXRlUmFuZ2U6bnVsbCxweDowLHB5OjAsYm91bmRlZERhdGVzOm51bGwsYm91bmRlZFZhbHVlczpudWxsLHRhcnA6bmV3IHQuSUZyYW1lVGFycCxpbml0aWFsaXplTW91c2VEb3duOmZ1bmN0aW9uKGUsYSxpKXtlLnByZXZlbnREZWZhdWx0P2UucHJldmVudERlZmF1bHQoKTooZS5yZXR1cm5WYWx1ZT0hMSxlLmNhbmNlbEJ1YmJsZT0hMCk7dmFyIHI9dC5maW5kUG9zKGEuY2FudmFzXyk7aS5weD1yLngsaS5weT1yLnksaS5kcmFnU3RhcnRYPXQuZHJhZ0dldFhfKGUsaSksaS5kcmFnU3RhcnRZPXQuZHJhZ0dldFlfKGUsaSksaS5jYW5jZWxOZXh0RGJsY2xpY2s9ITEsaS50YXJwLmNvdmVyKCl9LGRlc3Ryb3k6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKCh0LmlzWm9vbWluZ3x8dC5pc1Bhbm5pbmcpJiYodC5pc1pvb21pbmc9ITEsdC5kcmFnU3RhcnRYPW51bGwsdC5kcmFnU3RhcnRZPW51bGwpLHQuaXNQYW5uaW5nKXt0LmlzUGFubmluZz0hMSx0LmRyYWdnaW5nRGF0ZT1udWxsLHQuZGF0ZVJhbmdlPW51bGw7Zm9yKHZhciBlPTA7ZTxpLmF4ZXNfLmxlbmd0aDtlKyspZGVsZXRlIGkuYXhlc19bZV0uZHJhZ2dpbmdWYWx1ZSxkZWxldGUgaS5heGVzX1tlXS5kcmFnVmFsdWVSYW5nZX10LnRhcnAudW5jb3ZlcigpfX0sYT10aGlzLmdldE9wdGlvbigiaW50ZXJhY3Rpb25Nb2RlbCIpLGk9dGhpcyxyPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihhKXt0KGEsaSxlKX19O2Zvcih2YXIgbiBpbiBhKWEuaGFzT3duUHJvcGVydHkobikmJnRoaXMuYWRkQW5kVHJhY2tFdmVudCh0aGlzLm1vdXNlRXZlbnRFbGVtZW50XyxuLHIoYVtuXSkpO2lmKCFhLndpbGxEZXN0cm95Q29udGV4dE15c2VsZil7dmFyIG89ZnVuY3Rpb24odCl7ZS5kZXN0cm95KCl9O3RoaXMuYWRkQW5kVHJhY2tFdmVudChkb2N1bWVudCwibW91c2V1cCIsbyl9fSx0LnByb3RvdHlwZS5kcmF3Wm9vbVJlY3RfPWZ1bmN0aW9uKGUsYSxpLHIsbixvLHMsbCl7dmFyIGg9dGhpcy5jYW52YXNfY3R4XztvPT10LkhPUklaT05UQUw/aC5jbGVhclJlY3QoTWF0aC5taW4oYSxzKSx0aGlzLmxheW91dF8uZ2V0UGxvdEFyZWEoKS55LE1hdGguYWJzKGEtcyksdGhpcy5sYXlvdXRfLmdldFBsb3RBcmVhKCkuaCk6bz09dC5WRVJUSUNBTCYmaC5jbGVhclJlY3QodGhpcy5sYXlvdXRfLmdldFBsb3RBcmVhKCkueCxNYXRoLm1pbihyLGwpLHRoaXMubGF5b3V0Xy5nZXRQbG90QXJlYSgpLncsTWF0aC5hYnMoci1sKSksZT09dC5IT1JJWk9OVEFMP2kmJmEmJihoLmZpbGxTdHlsZT0icmdiYSgxMjgsMTI4LDEyOCwwLjMzKSIsaC5maWxsUmVjdChNYXRoLm1pbihhLGkpLHRoaXMubGF5b3V0Xy5nZXRQbG90QXJlYSgpLnksTWF0aC5hYnMoaS1hKSx0aGlzLmxheW91dF8uZ2V0UGxvdEFyZWEoKS5oKSk6ZT09dC5WRVJUSUNBTCYmbiYmciYmKGguZmlsbFN0eWxlPSJyZ2JhKDEyOCwxMjgsMTI4LDAuMzMpIixoLmZpbGxSZWN0KHRoaXMubGF5b3V0Xy5nZXRQbG90QXJlYSgpLngsTWF0aC5taW4ocixuKSx0aGlzLmxheW91dF8uZ2V0UGxvdEFyZWEoKS53LE1hdGguYWJzKG4tcikpKSx0aGlzLmlzVXNpbmdFeGNhbnZhc18mJih0aGlzLmN1cnJlbnRab29tUmVjdEFyZ3NfPVtlLGEsaSxyLG4sMCwwLDBdKX0sdC5wcm90b3R5cGUuY2xlYXJab29tUmVjdF89ZnVuY3Rpb24oKXt0aGlzLmN1cnJlbnRab29tUmVjdEFyZ3NfPW51bGwsdGhpcy5jYW52YXNfY3R4Xy5jbGVhclJlY3QoMCwwLHRoaXMud2lkdGhfLHRoaXMuaGVpZ2h0Xyl9LHQucHJvdG90eXBlLmRvWm9vbVhfPWZ1bmN0aW9uKHQsZSl7dGhpcy5jdXJyZW50Wm9vbVJlY3RBcmdzXz1udWxsO3ZhciBhPXRoaXMudG9EYXRhWENvb3JkKHQpLGk9dGhpcy50b0RhdGFYQ29vcmQoZSk7dGhpcy5kb1pvb21YRGF0ZXNfKGEsaSl9LHQucHJvdG90eXBlLmRvWm9vbVhEYXRlc189ZnVuY3Rpb24odCxlKXt2YXIgYT10aGlzLnhBeGlzUmFuZ2UoKSxpPVt0LGVdO3RoaXMuem9vbWVkX3hfPSEwO3ZhciByPXRoaXM7dGhpcy5kb0FuaW1hdGVkWm9vbShhLGksbnVsbCxudWxsLGZ1bmN0aW9uKCl7ci5nZXRGdW5jdGlvbk9wdGlvbigiem9vbUNhbGxiYWNrIikmJnIuZ2V0RnVuY3Rpb25PcHRpb24oInpvb21DYWxsYmFjayIpLmNhbGwocix0LGUsci55QXhpc1JhbmdlcygpKX0pfSx0LnByb3RvdHlwZS5kb1pvb21ZXz1mdW5jdGlvbih0LGUpe3RoaXMuY3VycmVudFpvb21SZWN0QXJnc189bnVsbDtmb3IodmFyIGE9dGhpcy55QXhpc1JhbmdlcygpLGk9W10scj0wO3I8dGhpcy5heGVzXy5sZW5ndGg7cisrKXt2YXIgbj10aGlzLnRvRGF0YVlDb29yZCh0LHIpLG89dGhpcy50b0RhdGFZQ29vcmQoZSxyKTtpLnB1c2goW28sbl0pfXRoaXMuem9vbWVkX3lfPSEwO3ZhciBzPXRoaXM7dGhpcy5kb0FuaW1hdGVkWm9vbShudWxsLG51bGwsYSxpLGZ1bmN0aW9uKCl7aWYocy5nZXRGdW5jdGlvbk9wdGlvbigiem9vbUNhbGxiYWNrIikpe3ZhciB0PXMueEF4aXNSYW5nZSgpO3MuZ2V0RnVuY3Rpb25PcHRpb24oInpvb21DYWxsYmFjayIpLmNhbGwocyx0WzBdLHRbMV0scy55QXhpc1JhbmdlcygpKX19KX0sdC56b29tQW5pbWF0aW9uRnVuY3Rpb249ZnVuY3Rpb24odCxlKXt2YXIgYT0xLjU7cmV0dXJuKDEtTWF0aC5wb3coYSwtdCkpLygxLU1hdGgucG93KGEsLWUpKX0sdC5wcm90b3R5cGUucmVzZXRab29tPWZ1bmN0aW9uKCl7dmFyIHQ9ITEsZT0hMSxhPSExO251bGwhPT10aGlzLmRhdGVXaW5kb3dfJiYodD0hMCxlPSEwKTtmb3IodmFyIGk9MDtpPHRoaXMuYXhlc18ubGVuZ3RoO2krKykidW5kZWZpbmVkIiE9dHlwZW9mIHRoaXMuYXhlc19baV0udmFsdWVXaW5kb3cmJm51bGwhPT10aGlzLmF4ZXNfW2ldLnZhbHVlV2luZG93JiYodD0hMCxhPSEwKTtpZih0aGlzLmNsZWFyU2VsZWN0aW9uKCksdCl7dGhpcy56b29tZWRfeF89ITEsdGhpcy56b29tZWRfeV89ITE7dmFyIHI9dGhpcy5yYXdEYXRhX1swXVswXSxuPXRoaXMucmF3RGF0YV9bdGhpcy5yYXdEYXRhXy5sZW5ndGgtMV1bMF07aWYoIXRoaXMuZ2V0Qm9vbGVhbk9wdGlvbigiYW5pbWF0ZWRab29tcyIpKXtmb3IodGhpcy5kYXRlV2luZG93Xz1udWxsLGk9MDtpPHRoaXMuYXhlc18ubGVuZ3RoO2krKyludWxsIT09dGhpcy5heGVzX1tpXS52YWx1ZVdpbmRvdyYmZGVsZXRlIHRoaXMuYXhlc19baV0udmFsdWVXaW5kb3c7cmV0dXJuIHRoaXMuZHJhd0dyYXBoXygpLHZvaWQodGhpcy5nZXRGdW5jdGlvbk9wdGlvbigiem9vbUNhbGxiYWNrIikmJnRoaXMuZ2V0RnVuY3Rpb25PcHRpb24oInpvb21DYWxsYmFjayIpLmNhbGwodGhpcyxyLG4sdGhpcy55QXhpc1JhbmdlcygpKSl9dmFyIG89bnVsbCxzPW51bGwsbD1udWxsLGg9bnVsbDtpZihlJiYobz10aGlzLnhBeGlzUmFuZ2UoKSxzPVtyLG5dKSxhKXtsPXRoaXMueUF4aXNSYW5nZXMoKTt2YXIgcD10aGlzLmdhdGhlckRhdGFzZXRzXyh0aGlzLnJvbGxlZFNlcmllc18sbnVsbCksZz1wLmV4dHJlbWVzO2Zvcih0aGlzLmNvbXB1dGVZQXhpc1Jhbmdlc18oZyksaD1bXSxpPTA7aTx0aGlzLmF4ZXNfLmxlbmd0aDtpKyspe3ZhciBkPXRoaXMuYXhlc19baV07aC5wdXNoKG51bGwhPT1kLnZhbHVlUmFuZ2UmJnZvaWQgMCE9PWQudmFsdWVSYW5nZT9kLnZhbHVlUmFuZ2U6ZC5leHRyZW1lUmFuZ2UpfX12YXIgdT10aGlzO3RoaXMuZG9BbmltYXRlZFpvb20obyxzLGwsaCxmdW5jdGlvbigpe3UuZGF0ZVdpbmRvd189bnVsbDtmb3IodmFyIHQ9MDt0PHUuYXhlc18ubGVuZ3RoO3QrKyludWxsIT09dS5heGVzX1t0XS52YWx1ZVdpbmRvdyYmZGVsZXRlIHUuYXhlc19bdF0udmFsdWVXaW5kb3c7dS5nZXRGdW5jdGlvbk9wdGlvbigiem9vbUNhbGxiYWNrIikmJnUuZ2V0RnVuY3Rpb25PcHRpb24oInpvb21DYWxsYmFjayIpLmNhbGwodSxyLG4sdS55QXhpc1JhbmdlcygpKX0pfX0sdC5wcm90b3R5cGUuZG9BbmltYXRlZFpvb209ZnVuY3Rpb24oZSxhLGkscixuKXt2YXIgbyxzLGw9dGhpcy5nZXRCb29sZWFuT3B0aW9uKCJhbmltYXRlZFpvb21zIik/dC5BTklNQVRJT05fU1RFUFM6MSxoPVtdLHA9W107aWYobnVsbCE9PWUmJm51bGwhPT1hKWZvcihvPTE7bD49bztvKyspcz10Lnpvb21BbmltYXRpb25GdW5jdGlvbihvLGwpLGhbby0xXT1bZVswXSooMS1zKStzKmFbMF0sZVsxXSooMS1zKStzKmFbMV1dO2lmKG51bGwhPT1pJiZudWxsIT09cilmb3Iobz0xO2w+PW87bysrKXtzPXQuem9vbUFuaW1hdGlvbkZ1bmN0aW9uKG8sbCk7Zm9yKHZhciBnPVtdLGQ9MDtkPHRoaXMuYXhlc18ubGVuZ3RoO2QrKylnLnB1c2goW2lbZF1bMF0qKDEtcykrcypyW2RdWzBdLGlbZF1bMV0qKDEtcykrcypyW2RdWzFdXSk7cFtvLTFdPWd9dmFyIHU9dGhpczt0LnJlcGVhdEFuZENsZWFudXAoZnVuY3Rpb24odCl7aWYocC5sZW5ndGgpZm9yKHZhciBlPTA7ZTx1LmF4ZXNfLmxlbmd0aDtlKyspe3ZhciBhPXBbdF1bZV07dS5heGVzX1tlXS52YWx1ZVdpbmRvdz1bYVswXSxhWzFdXX1oLmxlbmd0aCYmKHUuZGF0ZVdpbmRvd189aFt0XSksdS5kcmF3R3JhcGhfKCl9LGwsdC5BTklNQVRJT05fRFVSQVRJT04vbCxuKX0sdC5wcm90b3R5cGUuZ2V0QXJlYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnBsb3R0ZXJfLmFyZWF9LHQucHJvdG90eXBlLmV2ZW50VG9Eb21Db29yZHM9ZnVuY3Rpb24oZSl7aWYoZS5vZmZzZXRYJiZlLm9mZnNldFkpcmV0dXJuW2Uub2Zmc2V0WCxlLm9mZnNldFldO3ZhciBhPXQuZmluZFBvcyh0aGlzLm1vdXNlRXZlbnRFbGVtZW50XyksaT10LnBhZ2VYKGUpLWEueCxyPXQucGFnZVkoZSktYS55O3JldHVybltpLHJdfSx0LnByb3RvdHlwZS5maW5kQ2xvc2VzdFJvdz1mdW5jdGlvbihlKXtmb3IodmFyIGE9MS8wLGk9LTEscj10aGlzLmxheW91dF8ucG9pbnRzLG49MDtuPHIubGVuZ3RoO24rKylmb3IodmFyIG89cltuXSxzPW8ubGVuZ3RoLGw9MDtzPmw7bCsrKXt2YXIgaD1vW2xdO2lmKHQuaXNWYWxpZFBvaW50KGgsITApKXt2YXIgcD1NYXRoLmFicyhoLmNhbnZhc3gtZSk7YT5wJiYoYT1wLGk9aC5pZHgpfX1yZXR1cm4gaX0sdC5wcm90b3R5cGUuZmluZENsb3Nlc3RQb2ludD1mdW5jdGlvbihlLGEpe2Zvcih2YXIgaSxyLG4sbyxzLGwsaCxwPTEvMCxnPXRoaXMubGF5b3V0Xy5wb2ludHMubGVuZ3RoLTE7Zz49MDstLWcpZm9yKHZhciBkPXRoaXMubGF5b3V0Xy5wb2ludHNbZ10sdT0wO3U8ZC5sZW5ndGg7Kyt1KW89ZFt1XSx0LmlzVmFsaWRQb2ludChvKSYmKHI9by5jYW52YXN4LWUsbj1vLmNhbnZhc3ktYSxpPXIqcituKm4scD5pJiYocD1pLHM9byxsPWcsaD1vLmlkeCkpO3ZhciBjPXRoaXMubGF5b3V0Xy5zZXROYW1lc1tsXTtyZXR1cm57cm93Omgsc2VyaWVzTmFtZTpjLHBvaW50OnN9fSx0LnByb3RvdHlwZS5maW5kU3RhY2tlZFBvaW50PWZ1bmN0aW9uKGUsYSl7Zm9yKHZhciBpLHIsbj10aGlzLmZpbmRDbG9zZXN0Um93KGUpLG89MDtvPHRoaXMubGF5b3V0Xy5wb2ludHMubGVuZ3RoOysrbyl7dmFyIHM9dGhpcy5nZXRMZWZ0Qm91bmRhcnlfKG8pLGw9bi1zLGg9dGhpcy5sYXlvdXRfLnBvaW50c1tvXTtpZighKGw+PWgubGVuZ3RoKSl7dmFyIHA9aFtsXTtpZih0LmlzVmFsaWRQb2ludChwKSl7dmFyIGc9cC5jYW52YXN5O2lmKGU+cC5jYW52YXN4JiZsKzE8aC5sZW5ndGgpe3ZhciBkPWhbbCsxXTtpZih0LmlzVmFsaWRQb2ludChkKSl7dmFyIHU9ZC5jYW52YXN4LXAuY2FudmFzeDtpZih1PjApe3ZhciBjPShlLXAuY2FudmFzeCkvdTtnKz1jKihkLmNhbnZhc3ktcC5jYW52YXN5KX19fWVsc2UgaWYoZTxwLmNhbnZhc3gmJmw+MCl7dmFyIHk9aFtsLTFdO2lmKHQuaXNWYWxpZFBvaW50KHkpKXt2YXIgdT1wLmNhbnZhc3gteS5jYW52YXN4O2lmKHU+MCl7dmFyIGM9KHAuY2FudmFzeC1lKS91O2crPWMqKHkuY2FudmFzeS1wLmNhbnZhc3kpfX19KDA9PT1vfHxhPmcpJiYoaT1wLHI9byl9fX12YXIgXz10aGlzLmxheW91dF8uc2V0TmFtZXNbcl07cmV0dXJue3JvdzpuLHNlcmllc05hbWU6Xyxwb2ludDppfX0sdC5wcm90b3R5cGUubW91c2VNb3ZlXz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmxheW91dF8ucG9pbnRzO2lmKHZvaWQgMCE9PWUmJm51bGwhPT1lKXt2YXIgYT10aGlzLmV2ZW50VG9Eb21Db29yZHModCksaT1hWzBdLHI9YVsxXSxuPXRoaXMuZ2V0T3B0aW9uKCJoaWdobGlnaHRTZXJpZXNPcHRzIiksbz0hMTtpZihuJiYhdGhpcy5pc1Nlcmllc0xvY2tlZCgpKXt2YXIgcztzPXRoaXMuZ2V0Qm9vbGVhbk9wdGlvbigic3RhY2tlZEdyYXBoIik/dGhpcy5maW5kU3RhY2tlZFBvaW50KGkscik6dGhpcy5maW5kQ2xvc2VzdFBvaW50KGksciksbz10aGlzLnNldFNlbGVjdGlvbihzLnJvdyxzLnNlcmllc05hbWUpfWVsc2V7dmFyIGw9dGhpcy5maW5kQ2xvc2VzdFJvdyhpKTtvPXRoaXMuc2V0U2VsZWN0aW9uKGwpfXZhciBoPXRoaXMuZ2V0RnVuY3Rpb25PcHRpb24oImhpZ2hsaWdodENhbGxiYWNrIik7aCYmbyYmaC5jYWxsKHRoaXMsdCx0aGlzLmxhc3R4Xyx0aGlzLnNlbFBvaW50c18sdGhpcy5sYXN0Um93Xyx0aGlzLmhpZ2hsaWdodFNldF8pfX0sdC5wcm90b3R5cGUuZ2V0TGVmdEJvdW5kYXJ5Xz1mdW5jdGlvbih0KXtpZih0aGlzLmJvdW5kYXJ5SWRzX1t0XSlyZXR1cm4gdGhpcy5ib3VuZGFyeUlkc19bdF1bMF07Zm9yKHZhciBlPTA7ZTx0aGlzLmJvdW5kYXJ5SWRzXy5sZW5ndGg7ZSsrKWlmKHZvaWQgMCE9PXRoaXMuYm91bmRhcnlJZHNfW2VdKXJldHVybiB0aGlzLmJvdW5kYXJ5SWRzX1tlXVswXTtyZXR1cm4gMH0sdC5wcm90b3R5cGUuYW5pbWF0ZVNlbGVjdGlvbl89ZnVuY3Rpb24oZSl7dmFyIGE9MTAsaT0zMDt2b2lkIDA9PT10aGlzLmZhZGVMZXZlbCYmKHRoaXMuZmFkZUxldmVsPTApLHZvaWQgMD09PXRoaXMuYW5pbWF0ZUlkJiYodGhpcy5hbmltYXRlSWQ9MCk7dmFyIHI9dGhpcy5mYWRlTGV2ZWwsbj0wPmU/cjphLXI7aWYoMD49bilyZXR1cm4gdm9pZCh0aGlzLmZhZGVMZXZlbCYmdGhpcy51cGRhdGVTZWxlY3Rpb25fKDEpKTt2YXIgbz0rK3RoaXMuYW5pbWF0ZUlkLHM9dGhpczt0LnJlcGVhdEFuZENsZWFudXAoZnVuY3Rpb24odCl7cy5hbmltYXRlSWQ9PW8mJihzLmZhZGVMZXZlbCs9ZSwwPT09cy5mYWRlTGV2ZWw/cy5jbGVhclNlbGVjdGlvbigpOnMudXBkYXRlU2VsZWN0aW9uXyhzLmZhZGVMZXZlbC9hKSl9LG4saSxmdW5jdGlvbigpe30pfSx0LnByb3RvdHlwZS51cGRhdGVTZWxlY3Rpb25fPWZ1bmN0aW9uKGUpe3RoaXMuY2FzY2FkZUV2ZW50c18oInNlbGVjdCIse3NlbGVjdGVkUm93OnRoaXMubGFzdFJvd18sc2VsZWN0ZWRYOnRoaXMubGFzdHhfLHNlbGVjdGVkUG9pbnRzOnRoaXMuc2VsUG9pbnRzX30pO3ZhciBhLGk9dGhpcy5jYW52YXNfY3R4XztpZih0aGlzLmdldE9wdGlvbigiaGlnaGxpZ2h0U2VyaWVzT3B0cyIpKXtpLmNsZWFyUmVjdCgwLDAsdGhpcy53aWR0aF8sdGhpcy5oZWlnaHRfKTt2YXIgcj0xLXRoaXMuZ2V0TnVtZXJpY09wdGlvbigiaGlnaGxpZ2h0U2VyaWVzQmFja2dyb3VuZEFscGhhIik7aWYocil7dmFyIG49ITA7aWYobil7aWYodm9pZCAwPT09ZSlyZXR1cm4gdm9pZCB0aGlzLmFuaW1hdGVTZWxlY3Rpb25fKDEpO3IqPWV9aS5maWxsU3R5bGU9InJnYmEoMjU1LDI1NSwyNTUsIityKyIpIixpLmZpbGxSZWN0KDAsMCx0aGlzLndpZHRoXyx0aGlzLmhlaWdodF8pfXRoaXMucGxvdHRlcl8uX3JlbmRlckxpbmVDaGFydCh0aGlzLmhpZ2hsaWdodFNldF8saSl9ZWxzZSBpZih0aGlzLnByZXZpb3VzVmVydGljYWxYXz49MCl7dmFyIG89MCxzPXRoaXMuYXR0cl8oImxhYmVscyIpO2ZvcihhPTE7YTxzLmxlbmd0aDthKyspe3ZhciBsPXRoaXMuZ2V0TnVtZXJpY09wdGlvbigiaGlnaGxpZ2h0Q2lyY2xlU2l6ZSIsc1thXSk7bD5vJiYobz1sKX12YXIgaD10aGlzLnByZXZpb3VzVmVydGljYWxYXztpLmNsZWFyUmVjdChoLW8tMSwwLDIqbysyLHRoaXMuaGVpZ2h0Xyl9aWYodGhpcy5pc1VzaW5nRXhjYW52YXNfJiZ0aGlzLmN1cnJlbnRab29tUmVjdEFyZ3NfJiZ0LnByb3RvdHlwZS5kcmF3Wm9vbVJlY3RfLmFwcGx5KHRoaXMsdGhpcy5jdXJyZW50Wm9vbVJlY3RBcmdzXyksdGhpcy5zZWxQb2ludHNfLmxlbmd0aD4wKXt2YXIgcD10aGlzLnNlbFBvaW50c19bMF0uY2FudmFzeDtmb3IoaS5zYXZlKCksYT0wO2E8dGhpcy5zZWxQb2ludHNfLmxlbmd0aDthKyspe3ZhciBnPXRoaXMuc2VsUG9pbnRzX1thXTtpZih0LmlzT0soZy5jYW52YXN5KSl7dmFyIGQ9dGhpcy5nZXROdW1lcmljT3B0aW9uKCJoaWdobGlnaHRDaXJjbGVTaXplIixnLm5hbWUpLHU9dGhpcy5nZXRGdW5jdGlvbk9wdGlvbigiZHJhd0hpZ2hsaWdodFBvaW50Q2FsbGJhY2siLGcubmFtZSksYz10aGlzLnBsb3R0ZXJfLmNvbG9yc1tnLm5hbWVdO3V8fCh1PXQuQ2lyY2xlcy5ERUZBVUxUKSxpLmxpbmVXaWR0aD10aGlzLmdldE51bWVyaWNPcHRpb24oInN0cm9rZVdpZHRoIixnLm5hbWUpLGkuc3Ryb2tlU3R5bGU9YyxpLmZpbGxTdHlsZT1jLHUuY2FsbCh0aGlzLHRoaXMsZy5uYW1lLGkscCxnLmNhbnZhc3ksYyxkLGcuaWR4KX19aS5yZXN0b3JlKCksdGhpcy5wcmV2aW91c1ZlcnRpY2FsWF89cH19LHQucHJvdG90eXBlLnNldFNlbGVjdGlvbj1mdW5jdGlvbih0LGUsYSl7dGhpcy5zZWxQb2ludHNfPVtdO3ZhciBpPSExO2lmKHQhPT0hMSYmdD49MCl7dCE9dGhpcy5sYXN0Um93XyYmKGk9ITApLHRoaXMubGFzdFJvd189dDtmb3IodmFyIHI9MDtyPHRoaXMubGF5b3V0Xy5wb2ludHMubGVuZ3RoOysrcil7dmFyIG49dGhpcy5sYXlvdXRfLnBvaW50c1tyXSxvPXQtdGhpcy5nZXRMZWZ0Qm91bmRhcnlfKHIpO2lmKG88bi5sZW5ndGgmJm5bb10uaWR4PT10KXt2YXIgcz1uW29dO251bGwhPT1zLnl2YWwmJnRoaXMuc2VsUG9pbnRzXy5wdXNoKHMpfWVsc2UgZm9yKHZhciBsPTA7bDxuLmxlbmd0aDsrK2wpe3ZhciBzPW5bbF07aWYocy5pZHg9PXQpe251bGwhPT1zLnl2YWwmJnRoaXMuc2VsUG9pbnRzXy5wdXNoKHMpO2JyZWFrfX19fWVsc2UgdGhpcy5sYXN0Um93Xz49MCYmKGk9ITApLHRoaXMubGFzdFJvd189LTE7cmV0dXJuIHRoaXMuc2VsUG9pbnRzXy5sZW5ndGg/dGhpcy5sYXN0eF89dGhpcy5zZWxQb2ludHNfWzBdLnh2YWw6dGhpcy5sYXN0eF89LTEsdm9pZCAwIT09ZSYmKHRoaXMuaGlnaGxpZ2h0U2V0XyE9PWUmJihpPSEwKSx0aGlzLmhpZ2hsaWdodFNldF89ZSksdm9pZCAwIT09YSYmKHRoaXMubG9ja2VkU2V0Xz1hKSxpJiZ0aGlzLnVwZGF0ZVNlbGVjdGlvbl8odm9pZCAwKSxpfSx0LnByb3RvdHlwZS5tb3VzZU91dF89ZnVuY3Rpb24odCl7dGhpcy5nZXRGdW5jdGlvbk9wdGlvbigidW5oaWdobGlnaHRDYWxsYmFjayIpJiZ0aGlzLmdldEZ1bmN0aW9uT3B0aW9uKCJ1bmhpZ2hsaWdodENhbGxiYWNrIikuY2FsbCh0aGlzLHQpLHRoaXMuZ2V0Qm9vbGVhbk9wdGlvbigiaGlkZU92ZXJsYXlPbk1vdXNlT3V0IikmJiF0aGlzLmxvY2tlZFNldF8mJnRoaXMuY2xlYXJTZWxlY3Rpb24oKX0sdC5wcm90b3R5cGUuY2xlYXJTZWxlY3Rpb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jYXNjYWRlRXZlbnRzXygiZGVzZWxlY3QiLHt9KSx0aGlzLmxvY2tlZFNldF89ITEsdGhpcy5mYWRlTGV2ZWw/dm9pZCB0aGlzLmFuaW1hdGVTZWxlY3Rpb25fKC0xKToodGhpcy5jYW52YXNfY3R4Xy5jbGVhclJlY3QoMCwwLHRoaXMud2lkdGhfLHRoaXMuaGVpZ2h0XyksdGhpcy5mYWRlTGV2ZWw9MCx0aGlzLnNlbFBvaW50c189W10sdGhpcy5sYXN0eF89LTEsdGhpcy5sYXN0Um93Xz0tMSx2b2lkKHRoaXMuaGlnaGxpZ2h0U2V0Xz1udWxsKSl9LHQucHJvdG90eXBlLmdldFNlbGVjdGlvbj1mdW5jdGlvbigpe2lmKCF0aGlzLnNlbFBvaW50c198fHRoaXMuc2VsUG9pbnRzXy5sZW5ndGg8MSlyZXR1cm4tMTtmb3IodmFyIHQ9MDt0PHRoaXMubGF5b3V0Xy5wb2ludHMubGVuZ3RoO3QrKylmb3IodmFyIGU9dGhpcy5sYXlvdXRfLnBvaW50c1t0XSxhPTA7YTxlLmxlbmd0aDthKyspaWYoZVthXS54PT10aGlzLnNlbFBvaW50c19bMF0ueClyZXR1cm4gZVthXS5pZHg7cmV0dXJuLTF9LHQucHJvdG90eXBlLmdldEhpZ2hsaWdodFNlcmllcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmhpZ2hsaWdodFNldF99LHQucHJvdG90eXBlLmlzU2VyaWVzTG9ja2VkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubG9ja2VkU2V0X30sdC5wcm90b3R5cGUubG9hZGVkRXZlbnRfPWZ1bmN0aW9uKHQpe3RoaXMucmF3RGF0YV89dGhpcy5wYXJzZUNTVl8odCksdGhpcy5jYXNjYWRlRGF0YURpZFVwZGF0ZUV2ZW50XygpLHRoaXMucHJlZHJhd18oKX0sdC5wcm90b3R5cGUuYWRkWFRpY2tzXz1mdW5jdGlvbigpe3ZhciB0O3Q9dGhpcy5kYXRlV2luZG93Xz9bdGhpcy5kYXRlV2luZG93X1swXSx0aGlzLmRhdGVXaW5kb3dfWzFdXTp0aGlzLnhBeGlzRXh0cmVtZXMoKTt2YXIgZT10aGlzLm9wdGlvbnNWaWV3Rm9yQXhpc18oIngiKSxhPWUoInRpY2tlciIpKHRbMF0sdFsxXSx0aGlzLnBsb3R0ZXJfLmFyZWEudyxlLHRoaXMpO3RoaXMubGF5b3V0Xy5zZXRYVGlja3MoYSl9LHQucHJvdG90eXBlLmdldEhhbmRsZXJDbGFzc189ZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gZT10aGlzLmF0dHJfKCJkYXRhSGFuZGxlciIpP3RoaXMuYXR0cl8oImRhdGFIYW5kbGVyIik6dGhpcy5mcmFjdGlvbnNfP3RoaXMuZ2V0Qm9vbGVhbk9wdGlvbigiZXJyb3JCYXJzIik/dC5EYXRhSGFuZGxlcnMuRnJhY3Rpb25zQmFyc0hhbmRsZXI6dC5EYXRhSGFuZGxlcnMuRGVmYXVsdEZyYWN0aW9uSGFuZGxlcjp0aGlzLmdldEJvb2xlYW5PcHRpb24oImN1c3RvbUJhcnMiKT90LkRhdGFIYW5kbGVycy5DdXN0b21CYXJzSGFuZGxlcjp0aGlzLmdldEJvb2xlYW5PcHRpb24oImVycm9yQmFycyIpP3QuRGF0YUhhbmRsZXJzLkVycm9yQmFyc0hhbmRsZXI6dC5EYXRhSGFuZGxlcnMuRGVmYXVsdEhhbmRsZXJ9LHQucHJvdG90eXBlLnByZWRyYXdfPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IERhdGU7dGhpcy5kYXRhSGFuZGxlcl89bmV3KHRoaXMuZ2V0SGFuZGxlckNsYXNzXygpKSx0aGlzLmxheW91dF8uY29tcHV0ZVBsb3RBcmVhKCksdGhpcy5jb21wdXRlWUF4ZXNfKCksdGhpcy5pc19pbml0aWFsX2RyYXdffHwodGhpcy5jYW52YXNfY3R4Xy5yZXN0b3JlKCksdGhpcy5oaWRkZW5fY3R4Xy5yZXN0b3JlKCkpLHRoaXMuY2FudmFzX2N0eF8uc2F2ZSgpLHRoaXMuaGlkZGVuX2N0eF8uc2F2ZSgpLHRoaXMucGxvdHRlcl89bmV3IER5Z3JhcGhDYW52YXNSZW5kZXJlcih0aGlzLHRoaXMuaGlkZGVuXyx0aGlzLmhpZGRlbl9jdHhfLHRoaXMubGF5b3V0XyksdGhpcy5jcmVhdGVSb2xsSW50ZXJmYWNlXygpLHRoaXMuY2FzY2FkZUV2ZW50c18oInByZWRyYXciKSx0aGlzLnJvbGxlZFNlcmllc189W251bGxdO2Zvcih2YXIgZT0xO2U8dGhpcy5udW1Db2x1bW5zKCk7ZSsrKXt2YXIgYT10aGlzLmRhdGFIYW5kbGVyXy5leHRyYWN0U2VyaWVzKHRoaXMucmF3RGF0YV8sZSx0aGlzLmF0dHJpYnV0ZXNfKTt0aGlzLnJvbGxQZXJpb2RfPjEmJihhPXRoaXMuZGF0YUhhbmRsZXJfLnJvbGxpbmdBdmVyYWdlKGEsdGhpcy5yb2xsUGVyaW9kXyx0aGlzLmF0dHJpYnV0ZXNfKSksdGhpcy5yb2xsZWRTZXJpZXNfLnB1c2goYSl9dGhpcy5kcmF3R3JhcGhfKCk7dmFyIGk9bmV3IERhdGU7dGhpcy5kcmF3aW5nVGltZU1zXz1pLXR9LHQuUG9pbnRUeXBlPXZvaWQgMCx0LnN0YWNrUG9pbnRzXz1mdW5jdGlvbih0LGUsYSxpKXtmb3IodmFyIHI9bnVsbCxuPW51bGwsbz1udWxsLHM9LTEsbD1mdW5jdGlvbihlKXtpZighKHM+PWUpKWZvcih2YXIgYT1lO2E8dC5sZW5ndGg7KythKWlmKG89bnVsbCwhaXNOYU4odFthXS55dmFsKSYmbnVsbCE9PXRbYV0ueXZhbCl7cz1hLG89dFthXTticmVha319LGg9MDtoPHQubGVuZ3RoOysraCl7dmFyIHA9dFtoXSxnPXAueHZhbDt2b2lkIDA9PT1lW2ddJiYoZVtnXT0wKTt2YXIgZD1wLnl2YWw7aXNOYU4oZCl8fG51bGw9PT1kPyJub25lIj09aT9kPTA6KGwoaCksZD1uJiZvJiYibm9uZSIhPWk/bi55dmFsKyhvLnl2YWwtbi55dmFsKSooKGctbi54dmFsKS8oby54dmFsLW4ueHZhbCkpOm4mJiJhbGwiPT1pP24ueXZhbDpvJiYiYWxsIj09aT9vLnl2YWw6MCk6bj1wO3ZhciB1PWVbZ107ciE9ZyYmKHUrPWQsZVtnXT11KSxyPWcscC55dmFsX3N0YWNrZWQ9dSx1PmFbMV0mJihhWzFdPXUpLHU8YVswXSYmKGFbMF09dSl9fSx0LnByb3RvdHlwZS5nYXRoZXJEYXRhc2V0c189ZnVuY3Rpb24oZSxhKXt2YXIgaSxyLG4sbyxzLGwsaD1bXSxwPVtdLGc9W10sZD17fSx1PWUubGVuZ3RoLTE7Zm9yKGk9dTtpPj0xO2ktLSlpZih0aGlzLnZpc2liaWxpdHkoKVtpLTFdKXtpZihhKXtsPWVbaV07dmFyIGM9YVswXSx5PWFbMV07Zm9yKG49bnVsbCxvPW51bGwscj0wO3I8bC5sZW5ndGg7cisrKWxbcl1bMF0+PWMmJm51bGw9PT1uJiYobj1yKSxsW3JdWzBdPD15JiYobz1yKTtudWxsPT09biYmKG49MCk7Zm9yKHZhciBfPW4sdj0hMDt2JiZfPjA7KV8tLSx2PW51bGw9PT1sW19dWzFdO251bGw9PT1vJiYobz1sLmxlbmd0aC0xKTt2YXIgZj1vO2Zvcih2PSEwO3YmJmY8bC5sZW5ndGgtMTspZisrLHY9bnVsbD09PWxbZl1bMV07XyE9PW4mJihuPV8pLGYhPT1vJiYobz1mKSxoW2ktMV09W24sb10sbD1sLnNsaWNlKG4sbysxKX1lbHNlIGw9ZVtpXSxoW2ktMV09WzAsbC5sZW5ndGgtMV07dmFyIHg9dGhpcy5hdHRyXygibGFiZWxzIilbaV0sbT10aGlzLmRhdGFIYW5kbGVyXy5nZXRFeHRyZW1lWVZhbHVlcyhsLGEsdGhpcy5nZXRCb29sZWFuT3B0aW9uKCJzdGVwUGxvdCIseCkpLEQ9dGhpcy5kYXRhSGFuZGxlcl8uc2VyaWVzVG9Qb2ludHMobCx4LGhbaS0xXVswXSk7dGhpcy5nZXRCb29sZWFuT3B0aW9uKCJzdGFja2VkR3JhcGgiKSYmKHM9dGhpcy5hdHRyaWJ1dGVzXy5heGlzRm9yU2VyaWVzKHgpLHZvaWQgMD09PWdbc10mJihnW3NdPVtdKSx0LnN0YWNrUG9pbnRzXyhELGdbc10sbSx0aGlzLmdldEJvb2xlYW5PcHRpb24oInN0YWNrZWRHcmFwaE5hTkZpbGwiKSkpLGRbeF09bSxwW2ldPUR9cmV0dXJue3BvaW50czpwLGV4dHJlbWVzOmQsYm91bmRhcnlJZHM6aH19LHQucHJvdG90eXBlLmRyYXdHcmFwaF89ZnVuY3Rpb24oKXt2YXIgdD1uZXcgRGF0ZSxlPXRoaXMuaXNfaW5pdGlhbF9kcmF3Xzt0aGlzLmlzX2luaXRpYWxfZHJhd189ITEsdGhpcy5sYXlvdXRfLnJlbW92ZUFsbERhdGFzZXRzKCksdGhpcy5zZXRDb2xvcnNfKCksdGhpcy5hdHRyc18ucG9pbnRTaXplPS41KnRoaXMuZ2V0TnVtZXJpY09wdGlvbigiaGlnaGxpZ2h0Q2lyY2xlU2l6ZSIpO3ZhciBhPXRoaXMuZ2F0aGVyRGF0YXNldHNfKHRoaXMucm9sbGVkU2VyaWVzXyx0aGlzLmRhdGVXaW5kb3dfKSxpPWEucG9pbnRzLHI9YS5leHRyZW1lczt0aGlzLmJvdW5kYXJ5SWRzXz1hLmJvdW5kYXJ5SWRzLHRoaXMuc2V0SW5kZXhCeU5hbWVfPXt9O3ZhciBuPXRoaXMuYXR0cl8oImxhYmVscyIpO24ubGVuZ3RoPjAmJih0aGlzLnNldEluZGV4QnlOYW1lX1tuWzBdXT0wKTtmb3IodmFyIG89MCxzPTE7czxpLmxlbmd0aDtzKyspdGhpcy5zZXRJbmRleEJ5TmFtZV9bbltzXV09cyx0aGlzLnZpc2liaWxpdHkoKVtzLTFdJiYodGhpcy5sYXlvdXRfLmFkZERhdGFzZXQobltzXSxpW3NdKSx0aGlzLmRhdGFzZXRJbmRleF9bc109bysrKTt0aGlzLmNvbXB1dGVZQXhpc1Jhbmdlc18ociksdGhpcy5sYXlvdXRfLnNldFlBeGVzKHRoaXMuYXhlc18pLHRoaXMuYWRkWFRpY2tzXygpO3ZhciBsPXRoaXMuem9vbWVkX3hfO2lmKHRoaXMuem9vbWVkX3hfPWwsdGhpcy5sYXlvdXRfLmV2YWx1YXRlKCksdGhpcy5yZW5kZXJHcmFwaF8oZSksdGhpcy5nZXRTdHJpbmdPcHRpb24oInRpbWluZ05hbWUiKSl7dmFyIGg9bmV3IERhdGU7Y29uc29sZS5sb2codGhpcy5nZXRTdHJpbmdPcHRpb24oInRpbWluZ05hbWUiKSsiIC0gZHJhd0dyYXBoOiAiKyhoLXQpKyJtcyIpfX0sdC5wcm90b3R5cGUucmVuZGVyR3JhcGhfPWZ1bmN0aW9uKHQpe3RoaXMuY2FzY2FkZUV2ZW50c18oImNsZWFyQ2hhcnQiKSx0aGlzLnBsb3R0ZXJfLmNsZWFyKCksdGhpcy5nZXRGdW5jdGlvbk9wdGlvbigidW5kZXJsYXlDYWxsYmFjayIpJiZ0aGlzLmdldEZ1bmN0aW9uT3B0aW9uKCJ1bmRlcmxheUNhbGxiYWNrIikuY2FsbCh0aGlzLHRoaXMuaGlkZGVuX2N0eF8sdGhpcy5sYXlvdXRfLmdldFBsb3RBcmVhKCksdGhpcyx0aGlzKTt2YXIgZT17Y2FudmFzOnRoaXMuaGlkZGVuXyxkcmF3aW5nQ29udGV4dDp0aGlzLmhpZGRlbl9jdHhffTtpZih0aGlzLmNhc2NhZGVFdmVudHNfKCJ3aWxsRHJhd0NoYXJ0IixlKSx0aGlzLnBsb3R0ZXJfLnJlbmRlcigpLHRoaXMuY2FzY2FkZUV2ZW50c18oImRpZERyYXdDaGFydCIsZSksdGhpcy5sYXN0Um93Xz0tMSx0aGlzLmNhbnZhc18uZ2V0Q29udGV4dCgiMmQiKS5jbGVhclJlY3QoMCwwLHRoaXMud2lkdGhfLHRoaXMuaGVpZ2h0XyksbnVsbCE9PXRoaXMuZ2V0RnVuY3Rpb25PcHRpb24oImRyYXdDYWxsYmFjayIpJiZ0aGlzLmdldEZ1bmN0aW9uT3B0aW9uKCJkcmF3Q2FsbGJhY2siKS5jYWxsKHRoaXMsdGhpcyx0KSx0KWZvcih0aGlzLnJlYWR5RmlyZWRfPSEwO3RoaXMucmVhZHlGbnNfLmxlbmd0aD4wOyl7dmFyIGE9dGhpcy5yZWFkeUZuc18ucG9wKCk7YSh0aGlzKX19LHQucHJvdG90eXBlLmNvbXB1dGVZQXhlc189ZnVuY3Rpb24oKXt2YXIgZSxhLGkscixuO2lmKHZvaWQgMCE9PXRoaXMuYXhlc18mJnRoaXMudXNlcl9hdHRyc18uaGFzT3duUHJvcGVydHkoInZhbHVlUmFuZ2UiKT09PSExKWZvcihlPVtdLGk9MDtpPHRoaXMuYXhlc18ubGVuZ3RoO2krKyllLnB1c2godGhpcy5heGVzX1tpXS52YWx1ZVdpbmRvdyk7Zm9yKHRoaXMuYXhlc189W10sYT0wO2E8dGhpcy5hdHRyaWJ1dGVzXy5udW1BeGVzKCk7YSsrKXI9e2c6dGhpc30sdC51cGRhdGUocix0aGlzLmF0dHJpYnV0ZXNfLmF4aXNPcHRpb25zKGEpKSx0aGlzLmF4ZXNfW2FdPXI7aWYobj10aGlzLmF0dHJfKCJ2YWx1ZVJhbmdlIiksbiYmKHRoaXMuYXhlc19bMF0udmFsdWVSYW5nZT1uKSx2b2lkIDAhPT1lKXt2YXIgbz1NYXRoLm1pbihlLmxlbmd0aCx0aGlzLmF4ZXNfLmxlbmd0aCk7Zm9yKGk9MDtvPmk7aSsrKXRoaXMuYXhlc19baV0udmFsdWVXaW5kb3c9ZVtpXX1mb3IoYT0wO2E8dGhpcy5heGVzXy5sZW5ndGg7YSsrKWlmKDA9PT1hKXI9dGhpcy5vcHRpb25zVmlld0ZvckF4aXNfKCJ5IisoYT8iMiI6IiIpKSxuPXIoInZhbHVlUmFuZ2UiKSxuJiYodGhpcy5heGVzX1thXS52YWx1ZVJhbmdlPW4pO2Vsc2V7dmFyIHM9dGhpcy51c2VyX2F0dHJzXy5heGVzO3MmJnMueTImJihuPXMueTIudmFsdWVSYW5nZSxuJiYodGhpcy5heGVzX1thXS52YWx1ZVJhbmdlPW4pKX19LHQucHJvdG90eXBlLm51bUF4ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hdHRyaWJ1dGVzXy5udW1BeGVzKCl9LHQucHJvdG90eXBlLmF4aXNQcm9wZXJ0aWVzRm9yU2VyaWVzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmF4ZXNfW3RoaXMuYXR0cmlidXRlc18uYXhpc0ZvclNlcmllcyh0KV19LHQucHJvdG90eXBlLmNvbXB1dGVZQXhpc1Jhbmdlc189ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGEsaSxyLG4sbz1mdW5jdGlvbih0KXtyZXR1cm4gaXNOYU4ocGFyc2VGbG9hdCh0KSl9LHM9dGhpcy5hdHRyaWJ1dGVzXy5udW1BeGVzKCksbD0wO3M+bDtsKyspe3ZhciBoPXRoaXMuYXhlc19bbF0scD10aGlzLmF0dHJpYnV0ZXNfLmdldEZvckF4aXMoImxvZ3NjYWxlIixsKSxnPXRoaXMuYXR0cmlidXRlc18uZ2V0Rm9yQXhpcygiaW5jbHVkZVplcm8iLGwpLGQ9dGhpcy5hdHRyaWJ1dGVzXy5nZXRGb3JBeGlzKCJpbmRlcGVuZGVudFRpY2tzIixsKTtpZihpPXRoaXMuYXR0cmlidXRlc18uc2VyaWVzRm9yQXhpcyhsKSxlPSEwLHI9LjEsbnVsbCE9PXRoaXMuZ2V0TnVtZXJpY09wdGlvbigieVJhbmdlUGFkIikmJihlPSExLHI9dGhpcy5nZXROdW1lcmljT3B0aW9uKCJ5UmFuZ2VQYWQiKS90aGlzLnBsb3R0ZXJfLmFyZWEuaCksMD09PWkubGVuZ3RoKWguZXh0cmVtZVJhbmdlPVswLDFdO2Vsc2V7Zm9yKHZhciB1LGMseT0xLzAsXz0tKDEvMCksdj0wO3Y8aS5sZW5ndGg7disrKXQuaGFzT3duUHJvcGVydHkoaVt2XSkmJih1PXRbaVt2XV1bMF0sbnVsbCE9PXUmJih5PU1hdGgubWluKHUseSkpLGM9dFtpW3ZdXVsxXSxudWxsIT09YyYmKF89TWF0aC5tYXgoYyxfKSkpO2cmJiFwJiYoeT4wJiYoeT0wKSwwPl8mJihfPTApKSx5PT0xLzAmJih5PTApLF89PS0oMS8wKSYmKF89MSksYT1fLXksMD09PWEmJigwIT09Xz9hPU1hdGguYWJzKF8pOihfPTEsYT0xKSk7dmFyIGYseDtpZihwKWlmKGUpZj1fK3IqYSx4PXk7ZWxzZXt2YXIgbT1NYXRoLmV4cChNYXRoLmxvZyhhKSpyKTtmPV8qbSx4PXkvbX1lbHNlIGY9XytyKmEseD15LXIqYSxlJiYhdGhpcy5nZXRCb29sZWFuT3B0aW9uKCJhdm9pZE1pblplcm8iKSYmKDA+eCYmeT49MCYmKHg9MCksZj4wJiYwPj1fJiYoZj0wKSk7aC5leHRyZW1lUmFuZ2U9W3gsZl19aWYoaC52YWx1ZVdpbmRvdyloLmNvbXB1dGVkVmFsdWVSYW5nZT1baC52YWx1ZVdpbmRvd1swXSxoLnZhbHVlV2luZG93WzFdXTtlbHNlIGlmKGgudmFsdWVSYW5nZSl7dmFyIEQ9byhoLnZhbHVlUmFuZ2VbMF0pP2guZXh0cmVtZVJhbmdlWzBdOmgudmFsdWVSYW5nZVswXSx3PW8oaC52YWx1ZVJhbmdlWzFdKT9oLmV4dHJlbWVSYW5nZVsxXTpoLnZhbHVlUmFuZ2VbMV07aWYoIWUpaWYoaC5sb2dzY2FsZSl7dmFyIG09TWF0aC5leHAoTWF0aC5sb2coYSkqcik7RCo9bSx3Lz1tfWVsc2UgYT13LUQsRC09YSpyLHcrPWEqcjtoLmNvbXB1dGVkVmFsdWVSYW5nZT1bRCx3XX1lbHNlIGguY29tcHV0ZWRWYWx1ZVJhbmdlPWguZXh0cmVtZVJhbmdlO2lmKGQpe2guaW5kZXBlbmRlbnRUaWNrcz1kO3ZhciBBPXRoaXMub3B0aW9uc1ZpZXdGb3JBeGlzXygieSIrKGw/IjIiOiIiKSksYj1BKCJ0aWNrZXIiKTtoLnRpY2tzPWIoaC5jb21wdXRlZFZhbHVlUmFuZ2VbMF0saC5jb21wdXRlZFZhbHVlUmFuZ2VbMV0sdGhpcy5wbG90dGVyXy5hcmVhLmgsQSx0aGlzKSxufHwobj1oKX19aWYodm9pZCAwPT09bil0aHJvdydDb25maWd1cmF0aW9uIEVycm9yOiBBdCBsZWFzdCBvbmUgYXhpcyBoYXMgdG8gaGF2ZSB0aGUgImluZGVwZW5kZW50VGlja3MiIG9wdGlvbiBhY3RpdmF0ZWQuJztmb3IodmFyIGw9MDtzPmw7bCsrKXt2YXIgaD10aGlzLmF4ZXNfW2xdO2lmKCFoLmluZGVwZW5kZW50VGlja3Mpe2Zvcih2YXIgQT10aGlzLm9wdGlvbnNWaWV3Rm9yQXhpc18oInkiKyhsPyIyIjoiIikpLGI9QSgidGlja2VyIiksVD1uLnRpY2tzLEU9bi5jb21wdXRlZFZhbHVlUmFuZ2VbMV0tbi5jb21wdXRlZFZhbHVlUmFuZ2VbMF0sQz1oLmNvbXB1dGVkVmFsdWVSYW5nZVsxXS1oLmNvbXB1dGVkVmFsdWVSYW5nZVswXSxMPVtdLFA9MDtQPFQubGVuZ3RoO1ArKyl7dmFyIFM9KFRbUF0udi1uLmNvbXB1dGVkVmFsdWVSYW5nZVswXSkvRSxPPWguY29tcHV0ZWRWYWx1ZVJhbmdlWzBdK1MqQztMLnB1c2goTyl9aC50aWNrcz1iKGguY29tcHV0ZWRWYWx1ZVJhbmdlWzBdLGguY29tcHV0ZWRWYWx1ZVJhbmdlWzFdLHRoaXMucGxvdHRlcl8uYXJlYS5oLEEsdGhpcyxMKX19fSx0LnByb3RvdHlwZS5kZXRlY3RUeXBlRnJvbVN0cmluZ189ZnVuY3Rpb24odCl7dmFyIGU9ITEsYT10LmluZGV4T2YoIi0iKTthPjAmJiJlIiE9dFthLTFdJiYiRSIhPXRbYS0xXXx8dC5pbmRleE9mKCIvIik+PTB8fGlzTmFOKHBhcnNlRmxvYXQodCkpP2U9ITA6OD09dC5sZW5ndGgmJnQ+IjE5NzAwMTAxIiYmIjIwMzcxMjMxIj50JiYoZT0hMCksdGhpcy5zZXRYQXhpc09wdGlvbnNfKGUpfSx0LnByb3RvdHlwZS5zZXRYQXhpc09wdGlvbnNfPWZ1bmN0aW9uKGUpe2U/KHRoaXMuYXR0cnNfLnhWYWx1ZVBhcnNlcj10LmRhdGVQYXJzZXIsdGhpcy5hdHRyc18uYXhlcy54LnZhbHVlRm9ybWF0dGVyPXQuZGF0ZVZhbHVlRm9ybWF0dGVyLHRoaXMuYXR0cnNfLmF4ZXMueC50aWNrZXI9dC5kYXRlVGlja2VyLHRoaXMuYXR0cnNfLmF4ZXMueC5heGlzTGFiZWxGb3JtYXR0ZXI9dC5kYXRlQXhpc0xhYmVsRm9ybWF0dGVyKToodGhpcy5hdHRyc18ueFZhbHVlUGFyc2VyPWZ1bmN0aW9uKHQpe3JldHVybiBwYXJzZUZsb2F0KHQpfSx0aGlzLmF0dHJzXy5heGVzLngudmFsdWVGb3JtYXR0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHR9LHRoaXMuYXR0cnNfLmF4ZXMueC50aWNrZXI9dC5udW1lcmljVGlja3MsdGhpcy5hdHRyc18uYXhlcy54LmF4aXNMYWJlbEZvcm1hdHRlcj10aGlzLmF0dHJzXy5heGVzLngudmFsdWVGb3JtYXR0ZXIpfSx0LnByb3RvdHlwZS5wYXJzZUNTVl89ZnVuY3Rpb24oZSl7dmFyIGEsaSxyPVtdLG49dC5kZXRlY3RMaW5lRGVsaW1pdGVyKGUpLG89ZS5zcGxpdChufHwiXG4iKSxzPXRoaXMuZ2V0U3RyaW5nT3B0aW9uKCJkZWxpbWl0ZXIiKTstMT09b1swXS5pbmRleE9mKHMpJiZvWzBdLmluZGV4T2YoIgkiKT49MCYmKHM9IgkiKTt2YXIgbD0wOyJsYWJlbHMiaW4gdGhpcy51c2VyX2F0dHJzX3x8KGw9MSx0aGlzLmF0dHJzXy5sYWJlbHM9b1swXS5zcGxpdChzKSx0aGlzLmF0dHJpYnV0ZXNfLnJlcGFyc2VTZXJpZXMoKSk7Zm9yKHZhciBoLHA9MCxnPSExLGQ9dGhpcy5hdHRyXygibGFiZWxzIikubGVuZ3RoLHU9ITEsYz1sO2M8by5sZW5ndGg7YysrKXt2YXIgeT1vW2NdO2lmKHA9YywwIT09eS5sZW5ndGgmJiIjIiE9eVswXSl7dmFyIF89eS5zcGxpdChzKTtpZighKF8ubGVuZ3RoPDIpKXt2YXIgdj1bXTtpZihnfHwodGhpcy5kZXRlY3RUeXBlRnJvbVN0cmluZ18oX1swXSksaD10aGlzLmdldEZ1bmN0aW9uT3B0aW9uKCJ4VmFsdWVQYXJzZXIiKSxnPSEwKSx2WzBdPWgoX1swXSx0aGlzKSx0aGlzLmZyYWN0aW9uc18pZm9yKGk9MTtpPF8ubGVuZ3RoO2krKylhPV9baV0uc3BsaXQoIi8iKSwyIT1hLmxlbmd0aD8oY29uc29sZS5lcnJvcignRXhwZWN0ZWQgZnJhY3Rpb25hbCAibnVtL2RlbiIgdmFsdWVzIGluIENTViBkYXRhIGJ1dCBmb3VuZCBhIHZhbHVlIFwnJytfW2ldKyInIG9uIGxpbmUgIisoMStjKSsiICgnIit5KyInKSB3aGljaCBpcyBub3Qgb2YgdGhpcyBmb3JtLiIpLHZbaV09WzAsMF0pOnZbaV09W3QucGFyc2VGbG9hdF8oYVswXSxjLHkpLHQucGFyc2VGbG9hdF8oYVsxXSxjLHkpXTtlbHNlIGlmKHRoaXMuZ2V0Qm9vbGVhbk9wdGlvbigiZXJyb3JCYXJzIikpZm9yKF8ubGVuZ3RoJTIhPTEmJmNvbnNvbGUuZXJyb3IoIkV4cGVjdGVkIGFsdGVybmF0aW5nICh2YWx1ZSwgc3RkZXYuKSBwYWlycyBpbiBDU1YgZGF0YSBidXQgbGluZSAiKygxK2MpKyIgaGFzIGFuIG9kZCBudW1iZXIgb2YgdmFsdWVzICgiKyhfLmxlbmd0aC0xKSsiKTogJyIreSsiJyIpLGk9MTtpPF8ubGVuZ3RoO2krPTIpdlsoaSsxKS8yXT1bdC5wYXJzZUZsb2F0XyhfW2ldLGMseSksdC5wYXJzZUZsb2F0XyhfW2krMV0sYyx5KV07ZWxzZSBpZih0aGlzLmdldEJvb2xlYW5PcHRpb24oImN1c3RvbUJhcnMiKSlmb3IoaT0xO2k8Xy5sZW5ndGg7aSsrKXt2YXIgZj1fW2ldOy9eICokLy50ZXN0KGYpP3ZbaV09W251bGwsbnVsbCxudWxsXTooYT1mLnNwbGl0KCI7IiksMz09YS5sZW5ndGg/dltpXT1bdC5wYXJzZUZsb2F0XyhhWzBdLGMseSksdC5wYXJzZUZsb2F0XyhhWzFdLGMseSksdC5wYXJzZUZsb2F0XyhhWzJdLGMseSldOmNvbnNvbGUud2FybignV2hlbiB1c2luZyBjdXN0b21CYXJzLCB2YWx1ZXMgbXVzdCBiZSBlaXRoZXIgYmxhbmsgb3IgImxvdztjZW50ZXI7aGlnaCIgdHVwbGVzIChnb3QgIicrZisnIiBvbiBsaW5lICcrKDErYykpKX1lbHNlIGZvcihpPTE7aTxfLmxlbmd0aDtpKyspdltpXT10LnBhcnNlRmxvYXRfKF9baV0sYyx5KTtpZihyLmxlbmd0aD4wJiZ2WzBdPHJbci5sZW5ndGgtMV1bMF0mJih1PSEwKSx2Lmxlbmd0aCE9ZCYmY29uc29sZS5lcnJvcigiTnVtYmVyIG9mIGNvbHVtbnMgaW4gbGluZSAiK2MrIiAoIit2Lmxlbmd0aCsiKSBkb2VzIG5vdCBhZ3JlZSB3aXRoIG51bWJlciBvZiBsYWJlbHMgKCIrZCsiKSAiK3kpLDA9PT1jJiZ0aGlzLmF0dHJfKCJsYWJlbHMiKSl7dmFyIHg9ITA7Zm9yKGk9MDt4JiZpPHYubGVuZ3RoO2krKyl2W2ldJiYoeD0hMSk7aWYoeCl7Y29uc29sZS53YXJuKCJUaGUgZHlncmFwaHMgJ2xhYmVscycgb3B0aW9uIGlzIHNldCwgYnV0IHRoZSBmaXJzdCByb3cgb2YgQ1NWIGRhdGEgKCciK3krIicpIGFwcGVhcnMgdG8gYWxzbyBjb250YWluIGxhYmVscy4gV2lsbCBkcm9wIHRoZSBDU1YgbGFiZWxzIGFuZCB1c2UgdGhlIG9wdGlvbiBsYWJlbHMuIik7Y29udGludWV9fXIucHVzaCh2KX19fXJldHVybiB1JiYoY29uc29sZS53YXJuKCJDU1YgaXMgb3V0IG9mIG9yZGVyOyBvcmRlciBpdCBjb3JyZWN0bHkgdG8gc3BlZWQgbG9hZGluZy4iKSxyLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXS1lWzBdfSkpLHJ9LHQucHJvdG90eXBlLnBhcnNlQXJyYXlfPWZ1bmN0aW9uKGUpe2lmKDA9PT1lLmxlbmd0aClyZXR1cm4gY29uc29sZS5lcnJvcigiQ2FuJ3QgcGxvdCBlbXB0eSBkYXRhIHNldCIpLG51bGw7aWYoMD09PWVbMF0ubGVuZ3RoKXJldHVybiBjb25zb2xlLmVycm9yKCJEYXRhIHNldCBjYW5ub3QgY29udGFpbiBhbiBlbXB0eSByb3ciKSxudWxsO3ZhciBhO2lmKG51bGw9PT10aGlzLmF0dHJfKCJsYWJlbHMiKSl7Zm9yKGNvbnNvbGUud2FybigiVXNpbmcgZGVmYXVsdCBsYWJlbHMuIFNldCBsYWJlbHMgZXhwbGljaXRseSB2aWEgJ2xhYmVscycgaW4gdGhlIG9wdGlvbnMgcGFyYW1ldGVyIiksdGhpcy5hdHRyc18ubGFiZWxzPVsiWCJdLGE9MTthPGVbMF0ubGVuZ3RoO2ErKyl0aGlzLmF0dHJzXy5sYWJlbHMucHVzaCgiWSIrYSk7dGhpcy5hdHRyaWJ1dGVzXy5yZXBhcnNlU2VyaWVzKCl9ZWxzZXt2YXIgaT10aGlzLmF0dHJfKCJsYWJlbHMiKTtpZihpLmxlbmd0aCE9ZVswXS5sZW5ndGgpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIk1pc21hdGNoIGJldHdlZW4gbnVtYmVyIG9mIGxhYmVscyAoIitpKyIpIGFuZCBudW1iZXIgb2YgY29sdW1ucyBpbiBhcnJheSAoIitlWzBdLmxlbmd0aCsiKSIpLG51bGx9aWYodC5pc0RhdGVMaWtlKGVbMF1bMF0pKXt0aGlzLmF0dHJzXy5heGVzLngudmFsdWVGb3JtYXR0ZXI9dC5kYXRlVmFsdWVGb3JtYXR0ZXIsdGhpcy5hdHRyc18uYXhlcy54LnRpY2tlcj10LmRhdGVUaWNrZXIsdGhpcy5hdHRyc18uYXhlcy54LmF4aXNMYWJlbEZvcm1hdHRlcj10LmRhdGVBeGlzTGFiZWxGb3JtYXR0ZXI7dmFyIHI9dC5jbG9uZShlKTtmb3IoYT0wO2E8ZS5sZW5ndGg7YSsrKXtpZigwPT09clthXS5sZW5ndGgpcmV0dXJuIGNvbnNvbGUuZXJyb3IoIlJvdyAiKygxK2EpKyIgb2YgZGF0YSBpcyBlbXB0eSIpLG51bGw7aWYobnVsbD09PXJbYV1bMF18fCJmdW5jdGlvbiIhPXR5cGVvZiByW2FdWzBdLmdldFRpbWV8fGlzTmFOKHJbYV1bMF0uZ2V0VGltZSgpKSlyZXR1cm4gY29uc29sZS5lcnJvcigieCB2YWx1ZSBpbiByb3cgIisoMSthKSsiIGlzIG5vdCBhIERhdGUiKSxudWxsO3JbYV1bMF09clthXVswXS5nZXRUaW1lKCl9cmV0dXJuIHJ9cmV0dXJuIHRoaXMuYXR0cnNfLmF4ZXMueC52YWx1ZUZvcm1hdHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gdH0sdGhpcy5hdHRyc18uYXhlcy54LnRpY2tlcj10Lm51bWVyaWNUaWNrcyx0aGlzLmF0dHJzXy5heGVzLnguYXhpc0xhYmVsRm9ybWF0dGVyPXQubnVtYmVyQXhpc0xhYmVsRm9ybWF0dGVyLGV9LHQucHJvdG90eXBlLnBhcnNlRGF0YVRhYmxlXz1mdW5jdGlvbihlKXt2YXIgYT1mdW5jdGlvbih0KXt2YXIgZT1TdHJpbmcuZnJvbUNoYXJDb2RlKDY1K3QlMjYpO2Zvcih0PU1hdGguZmxvb3IodC8yNik7dD4wOyllPVN0cmluZy5mcm9tQ2hhckNvZGUoNjUrKHQtMSklMjYpK2UudG9Mb3dlckNhc2UoKSx0PU1hdGguZmxvb3IoKHQtMSkvMjYpO3JldHVybiBlfSxpPWUuZ2V0TnVtYmVyT2ZDb2x1bW5zKCkscj1lLmdldE51bWJlck9mUm93cygpLG49ZS5nZXRDb2x1bW5UeXBlKDApO2lmKCJkYXRlIj09bnx8ImRhdGV0aW1lIj09bil0aGlzLmF0dHJzXy54VmFsdWVQYXJzZXI9dC5kYXRlUGFyc2VyLHRoaXMuYXR0cnNfLmF4ZXMueC52YWx1ZUZvcm1hdHRlcj10LmRhdGVWYWx1ZUZvcm1hdHRlcix0aGlzLmF0dHJzXy5heGVzLngudGlja2VyPXQuZGF0ZVRpY2tlcix0aGlzLmF0dHJzXy5heGVzLnguYXhpc0xhYmVsRm9ybWF0dGVyPXQuZGF0ZUF4aXNMYWJlbEZvcm1hdHRlcjtlbHNle2lmKCJudW1iZXIiIT1uKXJldHVybiBjb25zb2xlLmVycm9yKCJvbmx5ICdkYXRlJywgJ2RhdGV0aW1lJyBhbmQgJ251bWJlcicgdHlwZXMgYXJlIHN1cHBvcnRlZCBmb3IgY29sdW1uIDEgb2YgRGF0YVRhYmxlIGlucHV0IChHb3QgJyIrbisiJykiKSxudWxsO3RoaXMuYXR0cnNfLnhWYWx1ZVBhcnNlcj1mdW5jdGlvbih0KXtyZXR1cm4gcGFyc2VGbG9hdCh0KX0sdGhpcy5hdHRyc18uYXhlcy54LnZhbHVlRm9ybWF0dGVyPWZ1bmN0aW9uKHQpe3JldHVybiB0fSx0aGlzLmF0dHJzXy5heGVzLngudGlja2VyPXQubnVtZXJpY1RpY2tzLHRoaXMuYXR0cnNfLmF4ZXMueC5heGlzTGFiZWxGb3JtYXR0ZXI9dGhpcy5hdHRyc18uYXhlcy54LnZhbHVlRm9ybWF0dGVyfXZhciBvLHMsbD1bXSxoPXt9LHA9ITE7Zm9yKG89MTtpPm87bysrKXt2YXIgZz1lLmdldENvbHVtblR5cGUobyk7aWYoIm51bWJlciI9PWcpbC5wdXNoKG8pO2Vsc2UgaWYoInN0cmluZyI9PWcmJnRoaXMuZ2V0Qm9vbGVhbk9wdGlvbigiZGlzcGxheUFubm90YXRpb25zIikpe3ZhciBkPWxbbC5sZW5ndGgtMV07aC5oYXNPd25Qcm9wZXJ0eShkKT9oW2RdLnB1c2gobyk6aFtkXT1bb10scD0hMH1lbHNlIGNvbnNvbGUuZXJyb3IoIk9ubHkgJ251bWJlcicgaXMgc3VwcG9ydGVkIGFzIGEgZGVwZW5kZW50IHR5cGUgd2l0aCBHdml6LiAnc3RyaW5nJyBpcyBvbmx5IHN1cHBvcnRlZCBpZiBkaXNwbGF5QW5ub3RhdGlvbnMgaXMgdHJ1ZSIpfXZhciB1PVtlLmdldENvbHVtbkxhYmVsKDApXTtmb3Iobz0wO288bC5sZW5ndGg7bysrKXUucHVzaChlLmdldENvbHVtbkxhYmVsKGxbb10pKSx0aGlzLmdldEJvb2xlYW5PcHRpb24oImVycm9yQmFycyIpJiYobys9MSk7dGhpcy5hdHRyc18ubGFiZWxzPXUsaT11Lmxlbmd0aDt2YXIgYz1bXSx5PSExLF89W107Zm9yKG89MDtyPm87bysrKXt2YXIgdj1bXTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGUuZ2V0VmFsdWUobywwKSYmbnVsbCE9PWUuZ2V0VmFsdWUobywwKSl7aWYodi5wdXNoKCJkYXRlIj09bnx8ImRhdGV0aW1lIj09bj9lLmdldFZhbHVlKG8sMCkuZ2V0VGltZSgpOmUuZ2V0VmFsdWUobywwKSksdGhpcy5nZXRCb29sZWFuT3B0aW9uKCJlcnJvckJhcnMiKSlmb3Iocz0wO2ktMT5zO3MrKyl2LnB1c2goW2UuZ2V0VmFsdWUobywxKzIqcyksZS5nZXRWYWx1ZShvLDIrMipzKV0pO2Vsc2V7Zm9yKHM9MDtzPGwubGVuZ3RoO3MrKyl7dmFyIGY9bFtzXTtpZih2LnB1c2goZS5nZXRWYWx1ZShvLGYpKSxwJiZoLmhhc093blByb3BlcnR5KGYpJiZudWxsIT09ZS5nZXRWYWx1ZShvLGhbZl1bMF0pKXt2YXIgeD17fTt4LnNlcmllcz1lLmdldENvbHVtbkxhYmVsKGYpLHgueHZhbD12WzBdLHguc2hvcnRUZXh0PWEoXy5sZW5ndGgpLHgudGV4dD0iIjtmb3IodmFyIG09MDttPGhbZl0ubGVuZ3RoO20rKyltJiYoeC50ZXh0Kz0iXG4iKSx4LnRleHQrPWUuZ2V0VmFsdWUobyxoW2ZdW21dKTtfLnB1c2goeCl9fWZvcihzPTA7czx2Lmxlbmd0aDtzKyspaXNGaW5pdGUodltzXSl8fCh2W3NdPW51bGwpfWMubGVuZ3RoPjAmJnZbMF08Y1tjLmxlbmd0aC0xXVswXSYmKHk9ITApLGMucHVzaCh2KX1lbHNlIGNvbnNvbGUud2FybigiSWdub3Jpbmcgcm93ICIrbysiIG9mIERhdGFUYWJsZSBiZWNhdXNlIG9mIHVuZGVmaW5lZCBvciBudWxsIGZpcnN0IGNvbHVtbi4iKX15JiYoY29uc29sZS53YXJuKCJEYXRhVGFibGUgaXMgb3V0IG9mIG9yZGVyOyBvcmRlciBpdCBjb3JyZWN0bHkgdG8gc3BlZWQgbG9hZGluZy4iKSxjLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXS1lWzBdfSkpLHRoaXMucmF3RGF0YV89YyxfLmxlbmd0aD4wJiZ0aGlzLnNldEFubm90YXRpb25zKF8sITApLHRoaXMuYXR0cmlidXRlc18ucmVwYXJzZVNlcmllcygpfSx0LnByb3RvdHlwZS5jYXNjYWRlRGF0YURpZFVwZGF0ZUV2ZW50Xz1mdW5jdGlvbigpe3RoaXMuY2FzY2FkZUV2ZW50c18oImRhdGFEaWRVcGRhdGUiLHt9KX0sdC5wcm90b3R5cGUuc3RhcnRfPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5maWxlXztpZigiZnVuY3Rpb24iPT10eXBlb2YgZSYmKGU9ZSgpKSx0LmlzQXJyYXlMaWtlKGUpKXRoaXMucmF3RGF0YV89dGhpcy5wYXJzZUFycmF5XyhlKSx0aGlzLmNhc2NhZGVEYXRhRGlkVXBkYXRlRXZlbnRfKCksdGhpcy5wcmVkcmF3XygpO2Vsc2UgaWYoIm9iamVjdCI9PXR5cGVvZiBlJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5nZXRDb2x1bW5SYW5nZSl0aGlzLnBhcnNlRGF0YVRhYmxlXyhlKSx0aGlzLmNhc2NhZGVEYXRhRGlkVXBkYXRlRXZlbnRfKCksdGhpcy5wcmVkcmF3XygpO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBlKXt2YXIgYT10LmRldGVjdExpbmVEZWxpbWl0ZXIoZSk7aWYoYSl0aGlzLmxvYWRlZEV2ZW50XyhlKTtlbHNle3ZhciBpO2k9d2luZG93LlhNTEh0dHBSZXF1ZXN0P25ldyBYTUxIdHRwUmVxdWVzdDpuZXcgQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0LlhNTEhUVFAiKTt2YXIgcj10aGlzO2kub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ND09aS5yZWFkeVN0YXRlJiYoMjAwPT09aS5zdGF0dXN8fDA9PT1pLnN0YXR1cykmJnIubG9hZGVkRXZlbnRfKGkucmVzcG9uc2VUZXh0KX0saS5vcGVuKCJHRVQiLGUsITApLGkuc2VuZChudWxsKX19ZWxzZSBjb25zb2xlLmVycm9yKCJVbmtub3duIGRhdGEgZm9ybWF0OiAiK3R5cGVvZiBlKX0sdC5wcm90b3R5cGUudXBkYXRlT3B0aW9ucz1mdW5jdGlvbihlLGEpeyJ1bmRlZmluZWQiPT10eXBlb2YgYSYmKGE9ITEpO3ZhciBpPWUuZmlsZSxyPXQubWFwTGVnYWN5T3B0aW9uc18oZSk7InJvbGxQZXJpb2QiaW4gciYmKHRoaXMucm9sbFBlcmlvZF89ci5yb2xsUGVyaW9kKSwiZGF0ZVdpbmRvdyJpbiByJiYodGhpcy5kYXRlV2luZG93Xz1yLmRhdGVXaW5kb3csImlzWm9vbWVkSWdub3JlUHJvZ3JhbW1hdGljWm9vbSJpbiByfHwodGhpcy56b29tZWRfeF89bnVsbCE9PXIuZGF0ZVdpbmRvdykpLCJ2YWx1ZVJhbmdlImluIHImJiEoImlzWm9vbWVkSWdub3JlUHJvZ3JhbW1hdGljWm9vbSJpbiByKSYmKHRoaXMuem9vbWVkX3lfPW51bGwhPT1yLnZhbHVlUmFuZ2UpO3ZhciBuPXQuaXNQaXhlbENoYW5naW5nT3B0aW9uTGlzdCh0aGlzLmF0dHJfKCJsYWJlbHMiKSxyKTt0LnVwZGF0ZURlZXAodGhpcy51c2VyX2F0dHJzXyxyKSx0aGlzLmF0dHJpYnV0ZXNfLnJlcGFyc2VTZXJpZXMoKSxpPyh0aGlzLmNhc2NhZGVFdmVudHNfKCJkYXRhV2lsbFVwZGF0ZSIse30pLHRoaXMuZmlsZV89aSxhfHx0aGlzLnN0YXJ0XygpKTphfHwobj90aGlzLnByZWRyYXdfKCk6dGhpcy5yZW5kZXJHcmFwaF8oITEpKX0sdC5tYXBMZWdhY3lPcHRpb25zXz1mdW5jdGlvbih0KXt2YXIgZT17fTtmb3IodmFyIGEgaW4gdCl0Lmhhc093blByb3BlcnR5KGEpJiYiZmlsZSIhPWEmJnQuaGFzT3duUHJvcGVydHkoYSkmJihlW2FdPXRbYV0pO3ZhciBpPWZ1bmN0aW9uKHQsYSxpKXtlLmF4ZXN8fChlLmF4ZXM9e30pLGUuYXhlc1t0XXx8KGUuYXhlc1t0XT17fSksZS5heGVzW3RdW2FdPWl9LHI9ZnVuY3Rpb24oYSxyLG4peyJ1bmRlZmluZWQiIT10eXBlb2YgdFthXSYmKGNvbnNvbGUud2FybigiT3B0aW9uICIrYSsiIGlzIGRlcHJlY2F0ZWQuIFVzZSB0aGUgIituKyIgb3B0aW9uIGZvciB0aGUgIityKyIgYXhpcyBpbnN0ZWFkLiAoZS5nLiB7IGF4ZXMgOiB7ICIrcisiIDogeyAiK24rIiA6IC4uLiB9IH0gfSAoc2VlIGh0dHA6Ly9keWdyYXBocy5jb20vcGVyLWF4aXMuaHRtbCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iKSxpKHIsbix0W2FdKSxkZWxldGUgZVthXSl9O3JldHVybiByKCJ4VmFsdWVGb3JtYXR0ZXIiLCJ4IiwidmFsdWVGb3JtYXR0ZXIiKSxyKCJwaXhlbHNQZXJYTGFiZWwiLCJ4IiwicGl4ZWxzUGVyTGFiZWwiKSxyKCJ4QXhpc0xhYmVsRm9ybWF0dGVyIiwieCIsImF4aXNMYWJlbEZvcm1hdHRlciIpLHIoInhUaWNrZXIiLCJ4IiwidGlja2VyIikscigieVZhbHVlRm9ybWF0dGVyIiwieSIsInZhbHVlRm9ybWF0dGVyIikscigicGl4ZWxzUGVyWUxhYmVsIiwieSIsInBpeGVsc1BlckxhYmVsIikscigieUF4aXNMYWJlbEZvcm1hdHRlciIsInkiLCJheGlzTGFiZWxGb3JtYXR0ZXIiKSxyKCJ5VGlja2VyIiwieSIsInRpY2tlciIpLHIoImRyYXdYR3JpZCIsIngiLCJkcmF3R3JpZCIpLHIoImRyYXdYQXhpcyIsIngiLCJkcmF3QXhpcyIpLHIoImRyYXdZR3JpZCIsInkiLCJkcmF3R3JpZCIpLHIoImRyYXdZQXhpcyIsInkiLCJkcmF3QXhpcyIpLHIoInhBeGlzTGFiZWxXaWR0aCIsIngiLCJheGlzTGFiZWxXaWR0aCIpLHIoInlBeGlzTGFiZWxXaWR0aCIsInkiLCJheGlzTGFiZWxXaWR0aCIpLGV9LHQucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbih0LGUpe2lmKCF0aGlzLnJlc2l6ZV9sb2NrKXt0aGlzLnJlc2l6ZV9sb2NrPSEwLG51bGw9PT10IT0obnVsbD09PWUpJiYoY29uc29sZS53YXJuKCJEeWdyYXBoLnJlc2l6ZSgpIHNob3VsZCBiZSBjYWxsZWQgd2l0aCB6ZXJvIHBhcmFtZXRlcnMgb3IgdHdvIG5vbi1OVUxMIHBhcmFtZXRlcnMuIFByZXRlbmRpbmcgaXQgd2FzIHplcm8uIiksdD1lPW51bGwpO3ZhciBhPXRoaXMud2lkdGhfLGk9dGhpcy5oZWlnaHRfO3Q/KHRoaXMubWFpbmRpdl8uc3R5bGUud2lkdGg9dCsicHgiLHRoaXMubWFpbmRpdl8uc3R5bGUuaGVpZ2h0PWUrInB4Iix0aGlzLndpZHRoXz10LHRoaXMuaGVpZ2h0Xz1lKToodGhpcy53aWR0aF89dGhpcy5tYWluZGl2Xy5jbGllbnRXaWR0aCx0aGlzLmhlaWdodF89dGhpcy5tYWluZGl2Xy5jbGllbnRIZWlnaHQpLChhIT10aGlzLndpZHRoX3x8aSE9dGhpcy5oZWlnaHRfKSYmKHRoaXMucmVzaXplRWxlbWVudHNfKCksdGhpcy5wcmVkcmF3XygpKSx0aGlzLnJlc2l6ZV9sb2NrPSExfX0sdC5wcm90b3R5cGUuYWRqdXN0Um9sbD1mdW5jdGlvbih0KXt0aGlzLnJvbGxQZXJpb2RfPXQsdGhpcy5wcmVkcmF3XygpfSx0LnByb3RvdHlwZS52aXNpYmlsaXR5PWZ1bmN0aW9uKCl7Zm9yKHRoaXMuZ2V0T3B0aW9uKCJ2aXNpYmlsaXR5Iil8fCh0aGlzLmF0dHJzXy52aXNpYmlsaXR5PVtdKTt0aGlzLmdldE9wdGlvbigidmlzaWJpbGl0eSIpLmxlbmd0aDx0aGlzLm51bUNvbHVtbnMoKS0xOyl0aGlzLmF0dHJzXy52aXNpYmlsaXR5LnB1c2goITApO3JldHVybiB0aGlzLmdldE9wdGlvbigidmlzaWJpbGl0eSIpfSx0LnByb3RvdHlwZS5zZXRWaXNpYmlsaXR5PWZ1bmN0aW9uKHQsZSl7dmFyIGE9dGhpcy52aXNpYmlsaXR5KCk7MD50fHx0Pj1hLmxlbmd0aD9jb25zb2xlLndhcm4oImludmFsaWQgc2VyaWVzIG51bWJlciBpbiBzZXRWaXNpYmlsaXR5OiAiK3QpOihhW3RdPWUsdGhpcy5wcmVkcmF3XygpKX0sdC5wcm90b3R5cGUuc2l6ZT1mdW5jdGlvbigpe3JldHVybnt3aWR0aDp0aGlzLndpZHRoXyxoZWlnaHQ6dGhpcy5oZWlnaHRffX0sdC5wcm90b3R5cGUuc2V0QW5ub3RhdGlvbnM9ZnVuY3Rpb24oZSxhKXtyZXR1cm4gdC5hZGRBbm5vdGF0aW9uUnVsZSgpLHRoaXMuYW5ub3RhdGlvbnNfPWUsdGhpcy5sYXlvdXRfPyh0aGlzLmxheW91dF8uc2V0QW5ub3RhdGlvbnModGhpcy5hbm5vdGF0aW9uc18pLHZvaWQoYXx8dGhpcy5wcmVkcmF3XygpKSk6dm9pZCBjb25zb2xlLndhcm4oIlRyaWVkIHRvIHNldEFubm90YXRpb25zIGJlZm9yZSBkeWdyYXBoIHdhcyByZWFkeS4gVHJ5IHNldHRpbmcgdGhlbSBpbiBhIHJlYWR5KCkgYmxvY2suIFNlZSBkeWdyYXBocy5jb20vdGVzdHMvYW5ub3RhdGlvbi5odG1sIil9LHQucHJvdG90eXBlLmFubm90YXRpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYW5ub3RhdGlvbnNffSx0LnByb3RvdHlwZS5nZXRMYWJlbHM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmF0dHJfKCJsYWJlbHMiKTtyZXR1cm4gdD90LnNsaWNlKCk6bnVsbH0sdC5wcm90b3R5cGUuaW5kZXhGcm9tU2V0TmFtZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zZXRJbmRleEJ5TmFtZV9bdF19LHQucHJvdG90eXBlLnJlYWR5PWZ1bmN0aW9uKHQpe3RoaXMuaXNfaW5pdGlhbF9kcmF3Xz90aGlzLnJlYWR5Rm5zXy5wdXNoKHQpOnQuY2FsbCh0aGlzLHRoaXMpfSx0LmFkZEFubm90YXRpb25SdWxlPWZ1bmN0aW9uKCl7aWYoIXQuYWRkZWRBbm5vdGF0aW9uQ1NTKXt2YXIgZT0iYm9yZGVyOiAxcHggc29saWQgYmxhY2s7IGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB0ZXh0LWFsaWduOiBjZW50ZXI7IixhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7YS50eXBlPSJ0ZXh0L2NzcyIsZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChhKTtmb3IodmFyIGk9MDtpPGRvY3VtZW50LnN0eWxlU2hlZXRzLmxlbmd0aDtpKyspaWYoIWRvY3VtZW50LnN0eWxlU2hlZXRzW2ldLmRpc2FibGVkKXt2YXIgcj1kb2N1bWVudC5zdHlsZVNoZWV0c1tpXTt0cnl7aWYoci5pbnNlcnRSdWxlKXt2YXIgbj1yLmNzc1J1bGVzP3IuY3NzUnVsZXMubGVuZ3RoOjA7ci5pbnNlcnRSdWxlKCIuZHlncmFwaERlZmF1bHRBbm5vdGF0aW9uIHsgIitlKyIgfSIsbil9ZWxzZSByLmFkZFJ1bGUmJnIuYWRkUnVsZSgiLmR5Z3JhcGhEZWZhdWx0QW5ub3RhdGlvbiIsZSk7cmV0dXJuIHZvaWQodC5hZGRlZEFubm90YXRpb25DU1M9ITApfWNhdGNoKG8pe319Y29uc29sZS53YXJuKCJVbmFibGUgdG8gYWRkIGRlZmF1bHQgYW5ub3RhdGlvbiBDU1MgcnVsZTsgZGlzcGxheSBtYXkgYmUgb2ZmLiIpfX0sIm9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZSYmKG1vZHVsZS5leHBvcnRzPXQpLHR9KCk7IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHQodCl7dmFyIGU9YS5leGVjKHQpO2lmKCFlKXJldHVybiBudWxsO3ZhciBpPXBhcnNlSW50KGVbMV0sMTApLHI9cGFyc2VJbnQoZVsyXSwxMCksbj1wYXJzZUludChlWzNdLDEwKTtyZXR1cm4gZVs0XT97cjppLGc6cixiOm4sYTpwYXJzZUZsb2F0KGVbNF0pfTp7cjppLGc6cixiOm59fUR5Z3JhcGguTE9HX1NDQUxFPTEwLER5Z3JhcGguTE5fVEVOPU1hdGgubG9nKER5Z3JhcGguTE9HX1NDQUxFKSxEeWdyYXBoLmxvZzEwPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLmxvZyh0KS9EeWdyYXBoLkxOX1RFTn0sRHlncmFwaC5ET1RURURfTElORT1bMiwyXSxEeWdyYXBoLkRBU0hFRF9MSU5FPVs3LDNdLER5Z3JhcGguRE9UX0RBU0hfTElORT1bNywyLDIsMl0sRHlncmFwaC5nZXRDb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiB0LmdldENvbnRleHQoIjJkIil9LER5Z3JhcGguYWRkRXZlbnQ9ZnVuY3Rpb24odCxlLGEpe3QuYWRkRXZlbnRMaXN0ZW5lcj90LmFkZEV2ZW50TGlzdGVuZXIoZSxhLCExKToodFtlK2FdPWZ1bmN0aW9uKCl7YSh3aW5kb3cuZXZlbnQpfSx0LmF0dGFjaEV2ZW50KCJvbiIrZSx0W2UrYV0pKX0sRHlncmFwaC5wcm90b3R5cGUuYWRkQW5kVHJhY2tFdmVudD1mdW5jdGlvbih0LGUsYSl7RHlncmFwaC5hZGRFdmVudCh0LGUsYSksdGhpcy5yZWdpc3RlcmVkRXZlbnRzXy5wdXNoKHtlbGVtOnQsdHlwZTplLGZuOmF9KX0sRHlncmFwaC5yZW1vdmVFdmVudD1mdW5jdGlvbih0LGUsYSl7aWYodC5yZW1vdmVFdmVudExpc3RlbmVyKXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLGEsITEpO2Vsc2V7dHJ5e3QuZGV0YWNoRXZlbnQoIm9uIitlLHRbZSthXSl9Y2F0Y2goaSl7fXRbZSthXT1udWxsfX0sRHlncmFwaC5wcm90b3R5cGUucmVtb3ZlVHJhY2tlZEV2ZW50c189ZnVuY3Rpb24oKXtpZih0aGlzLnJlZ2lzdGVyZWRFdmVudHNfKWZvcih2YXIgdD0wO3Q8dGhpcy5yZWdpc3RlcmVkRXZlbnRzXy5sZW5ndGg7dCsrKXt2YXIgZT10aGlzLnJlZ2lzdGVyZWRFdmVudHNfW3RdO0R5Z3JhcGgucmVtb3ZlRXZlbnQoZS5lbGVtLGUudHlwZSxlLmZuKX10aGlzLnJlZ2lzdGVyZWRFdmVudHNfPVtdfSxEeWdyYXBoLmNhbmNlbEV2ZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0PXQ/dDp3aW5kb3cuZXZlbnQsdC5zdG9wUHJvcGFnYXRpb24mJnQuc3RvcFByb3BhZ2F0aW9uKCksdC5wcmV2ZW50RGVmYXVsdCYmdC5wcmV2ZW50RGVmYXVsdCgpLHQuY2FuY2VsQnViYmxlPSEwLHQuY2FuY2VsPSEwLHQucmV0dXJuVmFsdWU9ITEsITF9LER5Z3JhcGguaHN2VG9SR0I9ZnVuY3Rpb24odCxlLGEpe3ZhciBpLHIsbjtpZigwPT09ZSlpPWEscj1hLG49YTtlbHNle3ZhciBvPU1hdGguZmxvb3IoNip0KSxzPTYqdC1vLGw9YSooMS1lKSxoPWEqKDEtZSpzKSxwPWEqKDEtZSooMS1zKSk7c3dpdGNoKG8pe2Nhc2UgMTppPWgscj1hLG49bDticmVhaztjYXNlIDI6aT1sLHI9YSxuPXA7YnJlYWs7Y2FzZSAzOmk9bCxyPWgsbj1hO2JyZWFrO2Nhc2UgNDppPXAscj1sLG49YTticmVhaztjYXNlIDU6aT1hLHI9bCxuPWg7YnJlYWs7Y2FzZSA2OmNhc2UgMDppPWEscj1wLG49bH19cmV0dXJuIGk9TWF0aC5mbG9vcigyNTUqaSsuNSkscj1NYXRoLmZsb29yKDI1NSpyKy41KSxuPU1hdGguZmxvb3IoMjU1Km4rLjUpLCJyZ2IoIitpKyIsIityKyIsIituKyIpIn0sRHlncmFwaC5maW5kUG9zPWZ1bmN0aW9uKHQpe3ZhciBlPTAsYT0wO2lmKHQub2Zmc2V0UGFyZW50KWZvcih2YXIgaT10Ozspe3ZhciByPSIwIixuPSIwIjtpZih3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSl7CnZhciBvPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGksbnVsbCk7cj1vLmJvcmRlckxlZnR8fCIwIixuPW8uYm9yZGVyVG9wfHwiMCJ9aWYoZSs9cGFyc2VJbnQociwxMCksYSs9cGFyc2VJbnQobiwxMCksZSs9aS5vZmZzZXRMZWZ0LGErPWkub2Zmc2V0VG9wLCFpLm9mZnNldFBhcmVudClicmVhaztpPWkub2Zmc2V0UGFyZW50fWVsc2UgdC54JiYoZSs9dC54KSx0LnkmJihhKz10LnkpO2Zvcig7dCYmdCE9ZG9jdW1lbnQuYm9keTspZS09dC5zY3JvbGxMZWZ0LGEtPXQuc2Nyb2xsVG9wLHQ9dC5wYXJlbnROb2RlO3JldHVybnt4OmUseTphfX0sRHlncmFwaC5wYWdlWD1mdW5jdGlvbih0KXtpZih0LnBhZ2VYKXJldHVybiF0LnBhZ2VYfHx0LnBhZ2VYPDA/MDp0LnBhZ2VYO3ZhciBlPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxhPWRvY3VtZW50LmJvZHk7cmV0dXJuIHQuY2xpZW50WCsoZS5zY3JvbGxMZWZ0fHxhLnNjcm9sbExlZnQpLShlLmNsaWVudExlZnR8fDApfSxEeWdyYXBoLnBhZ2VZPWZ1bmN0aW9uKHQpe2lmKHQucGFnZVkpcmV0dXJuIXQucGFnZVl8fHQucGFnZVk8MD8wOnQucGFnZVk7dmFyIGU9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGE9ZG9jdW1lbnQuYm9keTtyZXR1cm4gdC5jbGllbnRZKyhlLnNjcm9sbFRvcHx8YS5zY3JvbGxUb3ApLShlLmNsaWVudFRvcHx8MCl9LER5Z3JhcGguZHJhZ0dldFhfPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIER5Z3JhcGgucGFnZVgodCktZS5weH0sRHlncmFwaC5kcmFnR2V0WV89ZnVuY3Rpb24odCxlKXtyZXR1cm4gRHlncmFwaC5wYWdlWSh0KS1lLnB5fSxEeWdyYXBoLmlzT0s9ZnVuY3Rpb24odCl7cmV0dXJuISF0JiYhaXNOYU4odCl9LER5Z3JhcGguaXNWYWxpZFBvaW50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ/bnVsbD09PXQueXZhbD8hMTpudWxsPT09dC54fHx2b2lkIDA9PT10Lng/ITE6bnVsbD09PXQueXx8dm9pZCAwPT09dC55PyExOmlzTmFOKHQueCl8fCFlJiZpc05hTih0LnkpPyExOiEwOiExfSxEeWdyYXBoLmZsb2F0Rm9ybWF0PWZ1bmN0aW9uKHQsZSl7dmFyIGE9TWF0aC5taW4oTWF0aC5tYXgoMSxlfHwyKSwyMSk7cmV0dXJuIE1hdGguYWJzKHQpPC4wMDEmJjAhPT10P3QudG9FeHBvbmVudGlhbChhLTEpOnQudG9QcmVjaXNpb24oYSl9LER5Z3JhcGguemVyb3BhZD1mdW5jdGlvbih0KXtyZXR1cm4gMTA+dD8iMCIrdDoiIit0fSxEeWdyYXBoLkRhdGVBY2Nlc3NvcnNMb2NhbD17Z2V0RnVsbFllYXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0RnVsbFllYXIoKX0sZ2V0TW9udGg6ZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0TW9udGgoKX0sZ2V0RGF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXREYXRlKCl9LGdldEhvdXJzOmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEhvdXJzKCl9LGdldE1pbnV0ZXM6ZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0TWludXRlcygpfSxnZXRTZWNvbmRzOmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFNlY29uZHMoKX0sZ2V0TWlsbGlzZWNvbmRzOmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1pbGxpc2Vjb25kcygpfSxnZXREYXk6ZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0RGF5KCl9LG1ha2VEYXRlOmZ1bmN0aW9uKHQsZSxhLGkscixuLG8pe3JldHVybiBuZXcgRGF0ZSh0LGUsYSxpLHIsbixvKX19LER5Z3JhcGguRGF0ZUFjY2Vzc29yc1VUQz17Z2V0RnVsbFllYXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDRnVsbFllYXIoKX0sZ2V0TW9udGg6ZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDTW9udGgoKX0sZ2V0RGF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENEYXRlKCl9LGdldEhvdXJzOmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0hvdXJzKCl9LGdldE1pbnV0ZXM6ZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDTWludXRlcygpfSxnZXRTZWNvbmRzOmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ1NlY29uZHMoKX0sZ2V0TWlsbGlzZWNvbmRzOmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ01pbGxpc2Vjb25kcygpfSxnZXREYXk6ZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDRGF5KCl9LG1ha2VEYXRlOmZ1bmN0aW9uKHQsZSxhLGkscixuLG8pe3JldHVybiBuZXcgRGF0ZShEYXRlLlVUQyh0LGUsYSxpLHIsbixvKSl9fSxEeWdyYXBoLmhtc1N0cmluZ189ZnVuY3Rpb24odCxlLGEpe3ZhciBpPUR5Z3JhcGguemVyb3BhZCxyPWkodCkrIjoiK2koZSk7cmV0dXJuIGEmJihyKz0iOiIraShhKSkscn0sRHlncmFwaC5kYXRlU3RyaW5nXz1mdW5jdGlvbih0LGUpe3ZhciBhPUR5Z3JhcGguemVyb3BhZCxpPWU/RHlncmFwaC5EYXRlQWNjZXNzb3JzVVRDOkR5Z3JhcGguRGF0ZUFjY2Vzc29yc0xvY2FsLHI9bmV3IERhdGUodCksbj1pLmdldEZ1bGxZZWFyKHIpLG89aS5nZXRNb250aChyKSxzPWkuZ2V0RGF0ZShyKSxsPWkuZ2V0SG91cnMociksaD1pLmdldE1pbnV0ZXMocikscD1pLmdldFNlY29uZHMociksZz0iIituLGQ9YShvKzEpLHU9YShzKSxjPTM2MDAqbCs2MCpoK3AseT1nKyIvIitkKyIvIit1O3JldHVybiBjJiYoeSs9IiAiK0R5Z3JhcGguaG1zU3RyaW5nXyhsLGgscCkpLHl9LER5Z3JhcGgucm91bmRfPWZ1bmN0aW9uKHQsZSl7dmFyIGE9TWF0aC5wb3coMTAsZSk7cmV0dXJuIE1hdGgucm91bmQodCphKS9hfSxEeWdyYXBoLmJpbmFyeVNlYXJjaD1mdW5jdGlvbih0LGUsYSxpLHIpe2lmKChudWxsPT09aXx8dm9pZCAwPT09aXx8bnVsbD09PXJ8fHZvaWQgMD09PXIpJiYoaT0wLHI9ZS5sZW5ndGgtMSksaT5yKXJldHVybi0xOyhudWxsPT09YXx8dm9pZCAwPT09YSkmJihhPTApO3ZhciBuLG89ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTAmJnQ8ZS5sZW5ndGh9LHM9cGFyc2VJbnQoKGkrcikvMiwxMCksbD1lW3NdO3JldHVybiBsPT10P3M6bD50P2E+MCYmKG49cy0xLG8obikmJmVbbl08dCk/czpEeWdyYXBoLmJpbmFyeVNlYXJjaCh0LGUsYSxpLHMtMSk6dD5sPzA+YSYmKG49cysxLG8obikmJmVbbl0+dCk/czpEeWdyYXBoLmJpbmFyeVNlYXJjaCh0LGUsYSxzKzEscik6LTF9LER5Z3JhcGguZGF0ZVBhcnNlcj1mdW5jdGlvbih0KXt2YXIgZSxhO2lmKCgtMT09dC5zZWFyY2goIi0iKXx8LTEhPXQuc2VhcmNoKCJUIil8fC0xIT10LnNlYXJjaCgiWiIpKSYmKGE9RHlncmFwaC5kYXRlU3RyVG9NaWxsaXModCksYSYmIWlzTmFOKGEpKSlyZXR1cm4gYTtpZigtMSE9dC5zZWFyY2goIi0iKSl7Zm9yKGU9dC5yZXBsYWNlKCItIiwiLyIsImciKTstMSE9ZS5zZWFyY2goIi0iKTspZT1lLnJlcGxhY2UoIi0iLCIvIik7YT1EeWdyYXBoLmRhdGVTdHJUb01pbGxpcyhlKX1lbHNlIDg9PXQubGVuZ3RoPyhlPXQuc3Vic3RyKDAsNCkrIi8iK3Quc3Vic3RyKDQsMikrIi8iK3Quc3Vic3RyKDYsMiksYT1EeWdyYXBoLmRhdGVTdHJUb01pbGxpcyhlKSk6YT1EeWdyYXBoLmRhdGVTdHJUb01pbGxpcyh0KTtyZXR1cm4oIWF8fGlzTmFOKGEpKSYmY29uc29sZS5lcnJvcigiQ291bGRuJ3QgcGFyc2UgIit0KyIgYXMgYSBkYXRlIiksYX0sRHlncmFwaC5kYXRlU3RyVG9NaWxsaXM9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBEYXRlKHQpLmdldFRpbWUoKX0sRHlncmFwaC51cGRhdGU9ZnVuY3Rpb24odCxlKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGUmJm51bGwhPT1lKWZvcih2YXIgYSBpbiBlKWUuaGFzT3duUHJvcGVydHkoYSkmJih0W2FdPWVbYV0pO3JldHVybiB0fSxEeWdyYXBoLnVwZGF0ZURlZXA9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBhKHQpe3JldHVybiJvYmplY3QiPT10eXBlb2YgTm9kZT90IGluc3RhbmNlb2YgTm9kZToib2JqZWN0Ij09dHlwZW9mIHQmJiJudW1iZXIiPT10eXBlb2YgdC5ub2RlVHlwZSYmInN0cmluZyI9PXR5cGVvZiB0Lm5vZGVOYW1lfWlmKCJ1bmRlZmluZWQiIT10eXBlb2YgZSYmbnVsbCE9PWUpZm9yKHZhciBpIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShpKSYmKG51bGw9PT1lW2ldP3RbaV09bnVsbDpEeWdyYXBoLmlzQXJyYXlMaWtlKGVbaV0pP3RbaV09ZVtpXS5zbGljZSgpOmEoZVtpXSk/dFtpXT1lW2ldOiJvYmplY3QiPT10eXBlb2YgZVtpXT8oKCJvYmplY3QiIT10eXBlb2YgdFtpXXx8bnVsbD09PXRbaV0pJiYodFtpXT17fSksRHlncmFwaC51cGRhdGVEZWVwKHRbaV0sZVtpXSkpOnRbaV09ZVtpXSk7cmV0dXJuIHR9LER5Z3JhcGguaXNBcnJheUxpa2U9ZnVuY3Rpb24odCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuIm9iamVjdCIhPWUmJigiZnVuY3Rpb24iIT1lfHwiZnVuY3Rpb24iIT10eXBlb2YgdC5pdGVtKXx8bnVsbD09PXR8fCJudW1iZXIiIT10eXBlb2YgdC5sZW5ndGh8fDM9PT10Lm5vZGVUeXBlPyExOiEwfSxEeWdyYXBoLmlzRGF0ZUxpa2U9ZnVuY3Rpb24odCl7cmV0dXJuIm9iamVjdCIhPXR5cGVvZiB0fHxudWxsPT09dHx8ImZ1bmN0aW9uIiE9dHlwZW9mIHQuZ2V0VGltZT8hMTohMH0sRHlncmFwaC5jbG9uZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9W10sYT0wO2E8dC5sZW5ndGg7YSsrKWUucHVzaChEeWdyYXBoLmlzQXJyYXlMaWtlKHRbYV0pP0R5Z3JhcGguY2xvbmUodFthXSk6dFthXSk7cmV0dXJuIGV9LER5Z3JhcGguY3JlYXRlQ2FudmFzPWZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksZT0vTVNJRS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmIXdpbmRvdy5vcGVyYTtyZXR1cm4gZSYmInVuZGVmaW5lZCIhPXR5cGVvZiBHX3ZtbENhbnZhc01hbmFnZXImJih0PUdfdm1sQ2FudmFzTWFuYWdlci5pbml0RWxlbWVudCh0KSksdH0sRHlncmFwaC5nZXRDb250ZXh0UGl4ZWxSYXRpbz1mdW5jdGlvbih0KXt0cnl7dmFyIGU9d2luZG93LmRldmljZVBpeGVsUmF0aW8sYT10LndlYmtpdEJhY2tpbmdTdG9yZVBpeGVsUmF0aW98fHQubW96QmFja2luZ1N0b3JlUGl4ZWxSYXRpb3x8dC5tc0JhY2tpbmdTdG9yZVBpeGVsUmF0aW98fHQub0JhY2tpbmdTdG9yZVBpeGVsUmF0aW98fHQuYmFja2luZ1N0b3JlUGl4ZWxSYXRpb3x8MTtyZXR1cm4gdm9pZCAwIT09ZT9lL2E6MX1jYXRjaChpKXtyZXR1cm4gMX19LER5Z3JhcGguaXNBbmRyb2lkPWZ1bmN0aW9uKCl7cmV0dXJuL0FuZHJvaWQvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCl9LER5Z3JhcGguSXRlcmF0b3I9ZnVuY3Rpb24odCxlLGEsaSl7ZT1lfHwwLGE9YXx8dC5sZW5ndGgsdGhpcy5oYXNOZXh0PSEwLHRoaXMucGVlaz1udWxsLHRoaXMuc3RhcnRfPWUsdGhpcy5hcnJheV89dCx0aGlzLnByZWRpY2F0ZV89aSx0aGlzLmVuZF89TWF0aC5taW4odC5sZW5ndGgsZSthKSx0aGlzLm5leHRJZHhfPWUtMSx0aGlzLm5leHQoKX0sRHlncmFwaC5JdGVyYXRvci5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe2lmKCF0aGlzLmhhc05leHQpcmV0dXJuIG51bGw7Zm9yKHZhciB0PXRoaXMucGVlayxlPXRoaXMubmV4dElkeF8rMSxhPSExO2U8dGhpcy5lbmRfOyl7aWYoIXRoaXMucHJlZGljYXRlX3x8dGhpcy5wcmVkaWNhdGVfKHRoaXMuYXJyYXlfLGUpKXt0aGlzLnBlZWs9dGhpcy5hcnJheV9bZV0sYT0hMDticmVha31lKyt9cmV0dXJuIHRoaXMubmV4dElkeF89ZSxhfHwodGhpcy5oYXNOZXh0PSExLHRoaXMucGVlaz1udWxsKSx0fSxEeWdyYXBoLmNyZWF0ZUl0ZXJhdG9yPWZ1bmN0aW9uKHQsZSxhLGkpe3JldHVybiBuZXcgRHlncmFwaC5JdGVyYXRvcih0LGUsYSxpKX0sRHlncmFwaC5yZXF1ZXN0QW5pbUZyYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fHdpbmRvdy5tb3pSZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fHdpbmRvdy5vUmVxdWVzdEFuaW1hdGlvbkZyYW1lfHx3aW5kb3cubXNSZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fGZ1bmN0aW9uKHQpe3dpbmRvdy5zZXRUaW1lb3V0KHQsMWUzLzYwKX19KCksRHlncmFwaC5yZXBlYXRBbmRDbGVhbnVwPWZ1bmN0aW9uKHQsZSxhLGkpe3ZhciByLG49MCxvPShuZXcgRGF0ZSkuZ2V0VGltZSgpO2lmKHQobiksMT09ZSlyZXR1cm4gdm9pZCBpKCk7dmFyIHM9ZS0xOyFmdW5jdGlvbiBsKCl7bj49ZXx8RHlncmFwaC5yZXF1ZXN0QW5pbUZyYW1lLmNhbGwod2luZG93LGZ1bmN0aW9uKCl7dmFyIGU9KG5ldyBEYXRlKS5nZXRUaW1lKCksaD1lLW87cj1uLG49TWF0aC5mbG9vcihoL2EpO3ZhciBwPW4tcixnPW4rcD5zO2d8fG4+PXM/KHQocyksaSgpKTooMCE9PXAmJnQobiksbCgpKX0pfSgpfTt2YXIgZT17YW5ub3RhdGlvbkNsaWNrSGFuZGxlcjohMCxhbm5vdGF0aW9uRGJsQ2xpY2tIYW5kbGVyOiEwLGFubm90YXRpb25Nb3VzZU91dEhhbmRsZXI6ITAsYW5ub3RhdGlvbk1vdXNlT3ZlckhhbmRsZXI6ITAsYXhpc0xhYmVsQ29sb3I6ITAsYXhpc0xpbmVDb2xvcjohMCxheGlzTGluZVdpZHRoOiEwLGNsaWNrQ2FsbGJhY2s6ITAsZHJhd0NhbGxiYWNrOiEwLGRyYXdIaWdobGlnaHRQb2ludENhbGxiYWNrOiEwLGRyYXdQb2ludHM6ITAsZHJhd1BvaW50Q2FsbGJhY2s6ITAsZHJhd1hHcmlkOiEwLGRyYXdZR3JpZDohMCxmaWxsQWxwaGE6ITAsZ3JpZExpbmVDb2xvcjohMCxncmlkTGluZVdpZHRoOiEwLGhpZGVPdmVybGF5T25Nb3VzZU91dDohMCxoaWdobGlnaHRDYWxsYmFjazohMCxoaWdobGlnaHRDaXJjbGVTaXplOiEwLGludGVyYWN0aW9uTW9kZWw6ITAsaXNab29tZWRJZ25vcmVQcm9ncmFtbWF0aWNab29tOiEwLGxhYmVsc0RpdjohMCxsYWJlbHNEaXZTdHlsZXM6ITAsbGFiZWxzRGl2V2lkdGg6ITAsbGFiZWxzS01COiEwLGxhYmVsc0tNRzI6ITAsbGFiZWxzU2VwYXJhdGVMaW5lczohMCxsYWJlbHNTaG93WmVyb1ZhbHVlczohMCxsZWdlbmQ6ITAscGFuRWRnZUZyYWN0aW9uOiEwLHBpeGVsc1BlcllMYWJlbDohMCxwb2ludENsaWNrQ2FsbGJhY2s6ITAscG9pbnRTaXplOiEwLHJhbmdlU2VsZWN0b3JQbG90RmlsbENvbG9yOiEwLHJhbmdlU2VsZWN0b3JQbG90U3Ryb2tlQ29sb3I6ITAsc2hvd0xhYmVsc09uSGlnaGxpZ2h0OiEwLHNob3dSb2xsZXI6ITAsc3Ryb2tlV2lkdGg6ITAsdW5kZXJsYXlDYWxsYmFjazohMCx1bmhpZ2hsaWdodENhbGxiYWNrOiEwLHpvb21DYWxsYmFjazohMH07RHlncmFwaC5pc1BpeGVsQ2hhbmdpbmdPcHRpb25MaXN0PWZ1bmN0aW9uKHQsYSl7dmFyIGk9e307aWYodClmb3IodmFyIHI9MTtyPHQubGVuZ3RoO3IrKylpW3Rbcl1dPSEwO3ZhciBuPWZ1bmN0aW9uKHQpe2Zvcih2YXIgYSBpbiB0KWlmKHQuaGFzT3duUHJvcGVydHkoYSkmJiFlW2FdKXJldHVybiEwO3JldHVybiExfTtmb3IodmFyIG8gaW4gYSlpZihhLmhhc093blByb3BlcnR5KG8pKWlmKCJoaWdobGlnaHRTZXJpZXNPcHRzIj09b3x8aVtvXSYmIWEuc2VyaWVzKXtpZihuKGFbb10pKXJldHVybiEwfWVsc2UgaWYoInNlcmllcyI9PW98fCJheGVzIj09byl7dmFyIHM9YVtvXTtmb3IodmFyIGwgaW4gcylpZihzLmhhc093blByb3BlcnR5KGwpJiZuKHNbbF0pKXJldHVybiEwfWVsc2UgaWYoIWVbb10pcmV0dXJuITA7cmV0dXJuITF9LER5Z3JhcGguQ2lyY2xlcz17REVGQVVMVDpmdW5jdGlvbih0LGUsYSxpLHIsbixvKXthLmJlZ2luUGF0aCgpLGEuZmlsbFN0eWxlPW4sYS5hcmMoaSxyLG8sMCwyKk1hdGguUEksITEpLGEuZmlsbCgpfX0sRHlncmFwaC5JRnJhbWVUYXJwPWZ1bmN0aW9uKCl7dGhpcy50YXJwcz1bXX0sRHlncmFwaC5JRnJhbWVUYXJwLnByb3RvdHlwZS5jb3Zlcj1mdW5jdGlvbigpe2Zvcih2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIiksZT0wO2U8dC5sZW5ndGg7ZSsrKXt2YXIgYT10W2VdLGk9RHlncmFwaC5maW5kUG9zKGEpLHI9aS54LG49aS55LG89YS5vZmZzZXRXaWR0aCxzPWEub2Zmc2V0SGVpZ2h0LGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLGwuc3R5bGUubGVmdD1yKyJweCIsbC5zdHlsZS50b3A9bisicHgiLGwuc3R5bGUud2lkdGg9bysicHgiLGwuc3R5bGUuaGVpZ2h0PXMrInB4IixsLnN0eWxlLnpJbmRleD05OTksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsKSx0aGlzLnRhcnBzLnB1c2gobCl9fSxEeWdyYXBoLklGcmFtZVRhcnAucHJvdG90eXBlLnVuY292ZXI9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudGFycHMubGVuZ3RoO3QrKyl0aGlzLnRhcnBzW3RdLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy50YXJwc1t0XSk7dGhpcy50YXJwcz1bXX0sRHlncmFwaC5kZXRlY3RMaW5lRGVsaW1pdGVyPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXt2YXIgYT10LmNoYXJBdChlKTtpZigiXHIiPT09YSlyZXR1cm4gZSsxPHQubGVuZ3RoJiYiXG4iPT09dC5jaGFyQXQoZSsxKT8iXHJcbiI6YTtpZigiXG4iPT09YSlyZXR1cm4gZSsxPHQubGVuZ3RoJiYiXHIiPT09dC5jaGFyQXQoZSsxKT8iXG5cciI6YX1yZXR1cm4gbnVsbH0sRHlncmFwaC5pc05vZGVDb250YWluZWRCeT1mdW5jdGlvbih0LGUpe2lmKG51bGw9PT1lfHxudWxsPT09dClyZXR1cm4hMTtmb3IodmFyIGE9dDthJiZhIT09ZTspYT1hLnBhcmVudE5vZGU7cmV0dXJuIGE9PT1lfSxEeWdyYXBoLnBvdz1mdW5jdGlvbih0LGUpe3JldHVybiAwPmU/MS9NYXRoLnBvdyh0LC1lKTpNYXRoLnBvdyh0LGUpfTt2YXIgYT0vXnJnYmE/XCgoXGR7MSwzfSksXHMqKFxkezEsM30pLFxzKihcZHsxLDN9KSg/OixccyooWzAxXSg/OlwuXGQrKT8pKT9cKSQvO0R5Z3JhcGgudG9SR0JfPWZ1bmN0aW9uKGUpe3ZhciBhPXQoZSk7aWYoYSlyZXR1cm4gYTt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpLnN0eWxlLmJhY2tncm91bmRDb2xvcj1lLGkuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGkpO3ZhciByO3JldHVybiByPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlP3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGksbnVsbCkuYmFja2dyb3VuZENvbG9yOmkuY3VycmVudFN0eWxlLmJhY2tncm91bmRDb2xvcixkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGkpLHQocil9LER5Z3JhcGguaXNDYW52YXNTdXBwb3J0ZWQ9ZnVuY3Rpb24odCl7dmFyIGU7dHJ5e2U9dHx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksZS5nZXRDb250ZXh0KCIyZCIpfWNhdGNoKGEpe3ZhciBpPW5hdmlnYXRvci5hcHBWZXJzaW9uLm1hdGNoKC9NU0lFIChcZFwuXGQpLykscj0tMSE9bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoIm9wZXJhIik7cmV0dXJuIWl8fGlbMV08Nnx8cj8hMTohMH1yZXR1cm4hMH0sRHlncmFwaC5wYXJzZUZsb2F0Xz1mdW5jdGlvbih0LGUsYSl7dmFyIGk9cGFyc2VGbG9hdCh0KTtpZighaXNOYU4oaSkpcmV0dXJuIGk7aWYoL14gKiQvLnRlc3QodCkpcmV0dXJuIG51bGw7aWYoL14gKm5hbiAqJC9pLnRlc3QodCkpcmV0dXJuIDAvMDt2YXIgcj0iVW5hYmxlIHRvIHBhcnNlICciK3QrIicgYXMgYSBudW1iZXIiO3JldHVybiB2b2lkIDAhPT1hJiZ2b2lkIDAhPT1lJiYocis9IiBvbiBsaW5lICIrKDErKGV8fDApKSsiICgnIithKyInKSBvZiBDU1YuIiksY29uc29sZS5lcnJvcihyKSxudWxsfX0oKSxmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtEeWdyYXBoLkdWaXpDaGFydD1mdW5jdGlvbih0KXt0aGlzLmNvbnRhaW5lcj10fSxEeWdyYXBoLkdWaXpDaGFydC5wcm90b3R5cGUuZHJhdz1mdW5jdGlvbih0LGUpe3RoaXMuY29udGFpbmVyLmlubmVySFRNTD0iIiwidW5kZWZpbmVkIiE9dHlwZW9mIHRoaXMuZGF0ZV9ncmFwaCYmdGhpcy5kYXRlX2dyYXBoLmRlc3Ryb3koKSx0aGlzLmRhdGVfZ3JhcGg9bmV3IER5Z3JhcGgodGhpcy5jb250YWluZXIsdCxlKX0sRHlncmFwaC5HVml6Q2hhcnQucHJvdG90eXBlLnNldFNlbGVjdGlvbj1mdW5jdGlvbih0KXt2YXIgZT0hMTt0Lmxlbmd0aCYmKGU9dFswXS5yb3cpLHRoaXMuZGF0ZV9ncmFwaC5zZXRTZWxlY3Rpb24oZSl9LER5Z3JhcGguR1ZpekNoYXJ0LnByb3RvdHlwZS5nZXRTZWxlY3Rpb249ZnVuY3Rpb24oKXt2YXIgdD1bXSxlPXRoaXMuZGF0ZV9ncmFwaC5nZXRTZWxlY3Rpb24oKTtpZigwPmUpcmV0dXJuIHQ7Zm9yKHZhciBhPXRoaXMuZGF0ZV9ncmFwaC5sYXlvdXRfLnBvaW50cyxpPTA7aTxhLmxlbmd0aDsrK2kpdC5wdXNoKHtyb3c6ZSxjb2x1bW46aSsxfSk7cmV0dXJuIHR9fSgpLGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciB0PTEwMDtEeWdyYXBoLkludGVyYWN0aW9uPXt9LER5Z3JhcGguSW50ZXJhY3Rpb24ubWF5YmVUcmVhdE1vdXNlT3BBc0NsaWNrPWZ1bmN0aW9uKHQsZSxhKXthLmRyYWdFbmRYPUR5Z3JhcGguZHJhZ0dldFhfKHQsYSksYS5kcmFnRW5kWT1EeWdyYXBoLmRyYWdHZXRZXyh0LGEpO3ZhciBpPU1hdGguYWJzKGEuZHJhZ0VuZFgtYS5kcmFnU3RhcnRYKSxyPU1hdGguYWJzKGEuZHJhZ0VuZFktYS5kcmFnU3RhcnRZKTsyPmkmJjI+ciYmdm9pZCAwIT09ZS5sYXN0eF8mJi0xIT1lLmxhc3R4XyYmRHlncmFwaC5JbnRlcmFjdGlvbi50cmVhdE1vdXNlT3BBc0NsaWNrKGUsdCxhKSxhLnJlZ2lvbldpZHRoPWksYS5yZWdpb25IZWlnaHQ9cn0sRHlncmFwaC5JbnRlcmFjdGlvbi5zdGFydFBhbj1mdW5jdGlvbih0LGUsYSl7dmFyIGkscjthLmlzUGFubmluZz0hMDt2YXIgbj1lLnhBeGlzUmFuZ2UoKTtpZihlLmdldE9wdGlvbkZvckF4aXMoImxvZ3NjYWxlIiwieCIpPyhhLmluaXRpYWxMZWZ0bW9zdERhdGU9RHlncmFwaC5sb2cxMChuWzBdKSxhLmRhdGVSYW5nZT1EeWdyYXBoLmxvZzEwKG5bMV0pLUR5Z3JhcGgubG9nMTAoblswXSkpOihhLmluaXRpYWxMZWZ0bW9zdERhdGU9blswXSxhLmRhdGVSYW5nZT1uWzFdLW5bMF0pLGEueFVuaXRzUGVyUGl4ZWw9YS5kYXRlUmFuZ2UvKGUucGxvdHRlcl8uYXJlYS53LTEpLGUuZ2V0TnVtZXJpY09wdGlvbigicGFuRWRnZUZyYWN0aW9uIikpe3ZhciBvPWUud2lkdGhfKmUuZ2V0TnVtZXJpY09wdGlvbigicGFuRWRnZUZyYWN0aW9uIikscz1lLnhBeGlzRXh0cmVtZXMoKSxsPWUudG9Eb21YQ29vcmQoc1swXSktbyxoPWUudG9Eb21YQ29vcmQoc1sxXSkrbyxwPWUudG9EYXRhWENvb3JkKGwpLGc9ZS50b0RhdGFYQ29vcmQoaCk7YS5ib3VuZGVkRGF0ZXM9W3AsZ107dmFyIGQ9W10sdT1lLmhlaWdodF8qZS5nZXROdW1lcmljT3B0aW9uKCJwYW5FZGdlRnJhY3Rpb24iKTtmb3IoaT0wO2k8ZS5heGVzXy5sZW5ndGg7aSsrKXtyPWUuYXhlc19baV07dmFyIGM9ci5leHRyZW1lUmFuZ2UseT1lLnRvRG9tWUNvb3JkKGNbMF0saSkrdSxfPWUudG9Eb21ZQ29vcmQoY1sxXSxpKS11LHY9ZS50b0RhdGFZQ29vcmQoeSxpKSxmPWUudG9EYXRhWUNvb3JkKF8saSk7ZFtpXT1bdixmXX1hLmJvdW5kZWRWYWx1ZXM9ZH1mb3IoYS5pczJEUGFuPSExLGEuYXhlcz1bXSxpPTA7aTxlLmF4ZXNfLmxlbmd0aDtpKyspe3I9ZS5heGVzX1tpXTt2YXIgeD17fSxtPWUueUF4aXNSYW5nZShpKSxEPWUuYXR0cmlidXRlc18uZ2V0Rm9yQXhpcygibG9nc2NhbGUiLGkpO0Q/KHguaW5pdGlhbFRvcFZhbHVlPUR5Z3JhcGgubG9nMTAobVsxXSkseC5kcmFnVmFsdWVSYW5nZT1EeWdyYXBoLmxvZzEwKG1bMV0pLUR5Z3JhcGgubG9nMTAobVswXSkpOih4LmluaXRpYWxUb3BWYWx1ZT1tWzFdLHguZHJhZ1ZhbHVlUmFuZ2U9bVsxXS1tWzBdKSx4LnVuaXRzUGVyUGl4ZWw9eC5kcmFnVmFsdWVSYW5nZS8oZS5wbG90dGVyXy5hcmVhLmgtMSksYS5heGVzLnB1c2goeCksKHIudmFsdWVXaW5kb3d8fHIudmFsdWVSYW5nZSkmJihhLmlzMkRQYW49ITApfX0sRHlncmFwaC5JbnRlcmFjdGlvbi5tb3ZlUGFuPWZ1bmN0aW9uKHQsZSxhKXthLmRyYWdFbmRYPUR5Z3JhcGguZHJhZ0dldFhfKHQsYSksYS5kcmFnRW5kWT1EeWdyYXBoLmRyYWdHZXRZXyh0LGEpO3ZhciBpPWEuaW5pdGlhbExlZnRtb3N0RGF0ZS0oYS5kcmFnRW5kWC1hLmRyYWdTdGFydFgpKmEueFVuaXRzUGVyUGl4ZWw7YS5ib3VuZGVkRGF0ZXMmJihpPU1hdGgubWF4KGksYS5ib3VuZGVkRGF0ZXNbMF0pKTt2YXIgcj1pK2EuZGF0ZVJhbmdlO2lmKGEuYm91bmRlZERhdGVzJiZyPmEuYm91bmRlZERhdGVzWzFdJiYoaS09ci1hLmJvdW5kZWREYXRlc1sxXSxyPWkrYS5kYXRlUmFuZ2UpLGUuZ2V0T3B0aW9uRm9yQXhpcygibG9nc2NhbGUiLCJ4Iik/ZS5kYXRlV2luZG93Xz1bTWF0aC5wb3coRHlncmFwaC5MT0dfU0NBTEUsaSksTWF0aC5wb3coRHlncmFwaC5MT0dfU0NBTEUscildOmUuZGF0ZVdpbmRvd189W2kscl0sYS5pczJEUGFuKWZvcih2YXIgbj1hLmRyYWdFbmRZLWEuZHJhZ1N0YXJ0WSxvPTA7bzxlLmF4ZXNfLmxlbmd0aDtvKyspe3ZhciBzPWUuYXhlc19bb10sbD1hLmF4ZXNbb10saD1uKmwudW5pdHNQZXJQaXhlbCxwPWEuYm91bmRlZFZhbHVlcz9hLmJvdW5kZWRWYWx1ZXNbb106bnVsbCxnPWwuaW5pdGlhbFRvcFZhbHVlK2g7cCYmKGc9TWF0aC5taW4oZyxwWzFdKSk7dmFyIGQ9Zy1sLmRyYWdWYWx1ZVJhbmdlO3AmJmQ8cFswXSYmKGctPWQtcFswXSxkPWctbC5kcmFnVmFsdWVSYW5nZSksZS5hdHRyaWJ1dGVzXy5nZXRGb3JBeGlzKCJsb2dzY2FsZSIsbyk/cy52YWx1ZVdpbmRvdz1bTWF0aC5wb3coRHlncmFwaC5MT0dfU0NBTEUsZCksTWF0aC5wb3coRHlncmFwaC5MT0dfU0NBTEUsZyldOnMudmFsdWVXaW5kb3c9W2QsZ119ZS5kcmF3R3JhcGhfKCExKX0sRHlncmFwaC5JbnRlcmFjdGlvbi5lbmRQYW49RHlncmFwaC5JbnRlcmFjdGlvbi5tYXliZVRyZWF0TW91c2VPcEFzQ2xpY2ssRHlncmFwaC5JbnRlcmFjdGlvbi5zdGFydFpvb209ZnVuY3Rpb24odCxlLGEpe2EuaXNab29taW5nPSEwLGEuem9vbU1vdmVkPSExfSxEeWdyYXBoLkludGVyYWN0aW9uLm1vdmVab29tPWZ1bmN0aW9uKHQsZSxhKXthLnpvb21Nb3ZlZD0hMCxhLmRyYWdFbmRYPUR5Z3JhcGguZHJhZ0dldFhfKHQsYSksYS5kcmFnRW5kWT1EeWdyYXBoLmRyYWdHZXRZXyh0LGEpO3ZhciBpPU1hdGguYWJzKGEuZHJhZ1N0YXJ0WC1hLmRyYWdFbmRYKSxyPU1hdGguYWJzKGEuZHJhZ1N0YXJ0WS1hLmRyYWdFbmRZKTthLmRyYWdEaXJlY3Rpb249ci8yPmk/RHlncmFwaC5WRVJUSUNBTDpEeWdyYXBoLkhPUklaT05UQUwsZS5kcmF3Wm9vbVJlY3RfKGEuZHJhZ0RpcmVjdGlvbixhLmRyYWdTdGFydFgsYS5kcmFnRW5kWCxhLmRyYWdTdGFydFksYS5kcmFnRW5kWSxhLnByZXZEcmFnRGlyZWN0aW9uLGEucHJldkVuZFgsYS5wcmV2RW5kWSksYS5wcmV2RW5kWD1hLmRyYWdFbmRYLGEucHJldkVuZFk9YS5kcmFnRW5kWSxhLnByZXZEcmFnRGlyZWN0aW9uPWEuZHJhZ0RpcmVjdGlvbn0sRHlncmFwaC5JbnRlcmFjdGlvbi50cmVhdE1vdXNlT3BBc0NsaWNrPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9dC5nZXRGdW5jdGlvbk9wdGlvbigiY2xpY2tDYWxsYmFjayIpLHI9dC5nZXRGdW5jdGlvbk9wdGlvbigicG9pbnRDbGlja0NhbGxiYWNrIiksbj1udWxsLG89LTEscz1OdW1iZXIuTUFYX1ZBTFVFLGw9MDtsPHQuc2VsUG9pbnRzXy5sZW5ndGg7bCsrKXt2YXIgaD10LnNlbFBvaW50c19bbF0scD1NYXRoLnBvdyhoLmNhbnZhc3gtYS5kcmFnRW5kWCwyKStNYXRoLnBvdyhoLmNhbnZhc3ktYS5kcmFnRW5kWSwyKTshaXNOYU4ocCkmJigtMT09b3x8cz5wKSYmKHM9cCxvPWwpfXZhciBnPXQuZ2V0TnVtZXJpY09wdGlvbigiaGlnaGxpZ2h0Q2lyY2xlU2l6ZSIpKzI7aWYoZypnPj1zJiYobj10LnNlbFBvaW50c19bb10pLG4pe3ZhciBkPXtjYW5jZWxhYmxlOiEwLHBvaW50Om4sY2FudmFzeDphLmRyYWdFbmRYLGNhbnZhc3k6YS5kcmFnRW5kWX0sdT10LmNhc2NhZGVFdmVudHNfKCJwb2ludENsaWNrIixkKTtpZih1KXJldHVybjtyJiZyLmNhbGwodCxlLG4pfXZhciBkPXtjYW5jZWxhYmxlOiEwLHh2YWw6dC5sYXN0eF8scHRzOnQuc2VsUG9pbnRzXyxjYW52YXN4OmEuZHJhZ0VuZFgsY2FudmFzeTphLmRyYWdFbmRZfTt0LmNhc2NhZGVFdmVudHNfKCJjbGljayIsZCl8fGkmJmkuY2FsbCh0LGUsdC5sYXN0eF8sdC5zZWxQb2ludHNfKX0sRHlncmFwaC5JbnRlcmFjdGlvbi5lbmRab29tPWZ1bmN0aW9uKHQsZSxhKXtlLmNsZWFyWm9vbVJlY3RfKCksYS5pc1pvb21pbmc9ITEsRHlncmFwaC5JbnRlcmFjdGlvbi5tYXliZVRyZWF0TW91c2VPcEFzQ2xpY2sodCxlLGEpO3ZhciBpPWUuZ2V0QXJlYSgpO2lmKGEucmVnaW9uV2lkdGg+PTEwJiZhLmRyYWdEaXJlY3Rpb249PUR5Z3JhcGguSE9SSVpPTlRBTCl7dmFyIHI9TWF0aC5taW4oYS5kcmFnU3RhcnRYLGEuZHJhZ0VuZFgpLG49TWF0aC5tYXgoYS5kcmFnU3RhcnRYLGEuZHJhZ0VuZFgpO3I9TWF0aC5tYXgocixpLngpLG49TWF0aC5taW4obixpLngraS53KSxuPnImJmUuZG9ab29tWF8ocixuKSxhLmNhbmNlbE5leHREYmxjbGljaz0hMH1lbHNlIGlmKGEucmVnaW9uSGVpZ2h0Pj0xMCYmYS5kcmFnRGlyZWN0aW9uPT1EeWdyYXBoLlZFUlRJQ0FMKXt2YXIgbz1NYXRoLm1pbihhLmRyYWdTdGFydFksYS5kcmFnRW5kWSkscz1NYXRoLm1heChhLmRyYWdTdGFydFksYS5kcmFnRW5kWSk7bz1NYXRoLm1heChvLGkueSkscz1NYXRoLm1pbihzLGkueStpLmgpLHM+byYmZS5kb1pvb21ZXyhvLHMpLGEuY2FuY2VsTmV4dERibGNsaWNrPSEwfWEuZHJhZ1N0YXJ0WD1udWxsLGEuZHJhZ1N0YXJ0WT1udWxsfSxEeWdyYXBoLkludGVyYWN0aW9uLnN0YXJ0VG91Y2g9ZnVuY3Rpb24odCxlLGEpe3QucHJldmVudERlZmF1bHQoKSx0LnRvdWNoZXMubGVuZ3RoPjEmJihhLnN0YXJ0VGltZUZvckRvdWJsZVRhcE1zPW51bGwpO2Zvcih2YXIgaT1bXSxyPTA7cjx0LnRvdWNoZXMubGVuZ3RoO3IrKyl7dmFyIG49dC50b3VjaGVzW3JdO2kucHVzaCh7cGFnZVg6bi5wYWdlWCxwYWdlWTpuLnBhZ2VZLGRhdGFYOmUudG9EYXRhWENvb3JkKG4ucGFnZVgpLGRhdGFZOmUudG9EYXRhWUNvb3JkKG4ucGFnZVkpfSl9aWYoYS5pbml0aWFsVG91Y2hlcz1pLDE9PWkubGVuZ3RoKWEuaW5pdGlhbFBpbmNoQ2VudGVyPWlbMF0sYS50b3VjaERpcmVjdGlvbnM9e3g6ITAseTohMH07ZWxzZSBpZihpLmxlbmd0aD49Mil7YS5pbml0aWFsUGluY2hDZW50ZXI9e3BhZ2VYOi41KihpWzBdLnBhZ2VYK2lbMV0ucGFnZVgpLHBhZ2VZOi41KihpWzBdLnBhZ2VZK2lbMV0ucGFnZVkpLGRhdGFYOi41KihpWzBdLmRhdGFYK2lbMV0uZGF0YVgpLGRhdGFZOi41KihpWzBdLmRhdGFZK2lbMV0uZGF0YVkpfTt2YXIgbz0xODAvTWF0aC5QSSpNYXRoLmF0YW4yKGEuaW5pdGlhbFBpbmNoQ2VudGVyLnBhZ2VZLWlbMF0ucGFnZVksaVswXS5wYWdlWC1hLmluaXRpYWxQaW5jaENlbnRlci5wYWdlWCk7bz1NYXRoLmFicyhvKSxvPjkwJiYobz05MC1vKSxhLnRvdWNoRGlyZWN0aW9ucz17eDo2Ny41Pm8seTpvPjIyLjV9fWEuaW5pdGlhbFJhbmdlPXt4OmUueEF4aXNSYW5nZSgpLHk6ZS55QXhpc1JhbmdlKCl9fSxEeWdyYXBoLkludGVyYWN0aW9uLm1vdmVUb3VjaD1mdW5jdGlvbih0LGUsYSl7YS5zdGFydFRpbWVGb3JEb3VibGVUYXBNcz1udWxsO3ZhciBpLHI9W107Zm9yKGk9MDtpPHQudG91Y2hlcy5sZW5ndGg7aSsrKXt2YXIgbj10LnRvdWNoZXNbaV07ci5wdXNoKHtwYWdlWDpuLnBhZ2VYLHBhZ2VZOm4ucGFnZVl9KX12YXIgbyxzPWEuaW5pdGlhbFRvdWNoZXMsbD1hLmluaXRpYWxQaW5jaENlbnRlcjtvPTE9PXIubGVuZ3RoP3JbMF06e3BhZ2VYOi41KihyWzBdLnBhZ2VYK3JbMV0ucGFnZVgpLHBhZ2VZOi41KihyWzBdLnBhZ2VZK3JbMV0ucGFnZVkpfTt2YXIgaD17cGFnZVg6by5wYWdlWC1sLnBhZ2VYLHBhZ2VZOm8ucGFnZVktbC5wYWdlWX0scD1hLmluaXRpYWxSYW5nZS54WzFdLWEuaW5pdGlhbFJhbmdlLnhbMF0sZz1hLmluaXRpYWxSYW5nZS55WzBdLWEuaW5pdGlhbFJhbmdlLnlbMV07aC5kYXRhWD1oLnBhZ2VYL2UucGxvdHRlcl8uYXJlYS53KnAsaC5kYXRhWT1oLnBhZ2VZL2UucGxvdHRlcl8uYXJlYS5oKmc7dmFyIGQsdTtpZigxPT1yLmxlbmd0aClkPTEsdT0xO2Vsc2UgaWYoci5sZW5ndGg+PTIpe3ZhciBjPXNbMV0ucGFnZVgtbC5wYWdlWDtkPShyWzFdLnBhZ2VYLW8ucGFnZVgpL2M7dmFyIHk9c1sxXS5wYWdlWS1sLnBhZ2VZO3U9KHJbMV0ucGFnZVktby5wYWdlWSkveX1kPU1hdGgubWluKDgsTWF0aC5tYXgoLjEyNSxkKSksdT1NYXRoLm1pbig4LE1hdGgubWF4KC4xMjUsdSkpO3ZhciBfPSExO2lmKGEudG91Y2hEaXJlY3Rpb25zLngmJihlLmRhdGVXaW5kb3dfPVtsLmRhdGFYLWguZGF0YVgrKGEuaW5pdGlhbFJhbmdlLnhbMF0tbC5kYXRhWCkvZCxsLmRhdGFYLWguZGF0YVgrKGEuaW5pdGlhbFJhbmdlLnhbMV0tbC5kYXRhWCkvZF0sXz0hMCksYS50b3VjaERpcmVjdGlvbnMueSlmb3IoaT0wOzE+aTtpKyspe3ZhciB2PWUuYXhlc19baV0sZj1lLmF0dHJpYnV0ZXNfLmdldEZvckF4aXMoImxvZ3NjYWxlIixpKTtmfHwodi52YWx1ZVdpbmRvdz1bbC5kYXRhWS1oLmRhdGFZKyhhLmluaXRpYWxSYW5nZS55WzBdLWwuZGF0YVkpL3UsbC5kYXRhWS1oLmRhdGFZKyhhLmluaXRpYWxSYW5nZS55WzFdLWwuZGF0YVkpL3VdLF89ITApfWlmKGUuZHJhd0dyYXBoXyghMSksXyYmci5sZW5ndGg+MSYmZS5nZXRGdW5jdGlvbk9wdGlvbigiem9vbUNhbGxiYWNrIikpe3ZhciB4PWUueEF4aXNSYW5nZSgpO2UuZ2V0RnVuY3Rpb25PcHRpb24oInpvb21DYWxsYmFjayIpLmNhbGwoZSx4WzBdLHhbMV0sZS55QXhpc1JhbmdlcygpKX19LER5Z3JhcGguSW50ZXJhY3Rpb24uZW5kVG91Y2g9ZnVuY3Rpb24odCxlLGEpe2lmKDAhPT10LnRvdWNoZXMubGVuZ3RoKUR5Z3JhcGguSW50ZXJhY3Rpb24uc3RhcnRUb3VjaCh0LGUsYSk7ZWxzZSBpZigxPT10LmNoYW5nZWRUb3VjaGVzLmxlbmd0aCl7dmFyIGk9KG5ldyBEYXRlKS5nZXRUaW1lKCkscj10LmNoYW5nZWRUb3VjaGVzWzBdO2Euc3RhcnRUaW1lRm9yRG91YmxlVGFwTXMmJmktYS5zdGFydFRpbWVGb3JEb3VibGVUYXBNczw1MDAmJmEuZG91YmxlVGFwWCYmTWF0aC5hYnMoYS5kb3VibGVUYXBYLXIuc2NyZWVuWCk8NTAmJmEuZG91YmxlVGFwWSYmTWF0aC5hYnMoYS5kb3VibGVUYXBZLXIuc2NyZWVuWSk8NTA/ZS5yZXNldFpvb20oKTooYS5zdGFydFRpbWVGb3JEb3VibGVUYXBNcz1pLGEuZG91YmxlVGFwWD1yLnNjcmVlblgsYS5kb3VibGVUYXBZPXIuc2NyZWVuWSl9fTt2YXIgZT1mdW5jdGlvbih0LGUsYSl7cmV0dXJuIGU+dD9lLXQ6dD5hP3QtYTowfSxhPWZ1bmN0aW9uKHQsYSl7dmFyIGk9RHlncmFwaC5maW5kUG9zKGEuY2FudmFzXykscj17bGVmdDppLngscmlnaHQ6aS54K2EuY2FudmFzXy5vZmZzZXRXaWR0aCx0b3A6aS55LGJvdHRvbTppLnkrYS5jYW52YXNfLm9mZnNldEhlaWdodH0sbj17eDpEeWdyYXBoLnBhZ2VYKHQpLHk6RHlncmFwaC5wYWdlWSh0KX0sbz1lKG4ueCxyLmxlZnQsci5yaWdodCkscz1lKG4ueSxyLnRvcCxyLmJvdHRvbSk7cmV0dXJuIE1hdGgubWF4KG8scyl9O0R5Z3JhcGguSW50ZXJhY3Rpb24uZGVmYXVsdE1vZGVsPXttb3VzZWRvd246ZnVuY3Rpb24oZSxpLHIpe2lmKCFlLmJ1dHRvbnx8MiE9ZS5idXR0b24pe3IuaW5pdGlhbGl6ZU1vdXNlRG93bihlLGksciksZS5hbHRLZXl8fGUuc2hpZnRLZXk/RHlncmFwaC5zdGFydFBhbihlLGkscik6RHlncmFwaC5zdGFydFpvb20oZSxpLHIpO3ZhciBuPWZ1bmN0aW9uKGUpe2lmKHIuaXNab29taW5nKXt2YXIgbj1hKGUsaSk7dD5uP0R5Z3JhcGgubW92ZVpvb20oZSxpLHIpOm51bGwhPT1yLmRyYWdFbmRYJiYoci5kcmFnRW5kWD1udWxsLHIuZHJhZ0VuZFk9bnVsbCxpLmNsZWFyWm9vbVJlY3RfKCkpfWVsc2Ugci5pc1Bhbm5pbmcmJkR5Z3JhcGgubW92ZVBhbihlLGkscil9LG89ZnVuY3Rpb24odCl7ci5pc1pvb21pbmc/bnVsbCE9PXIuZHJhZ0VuZFg/RHlncmFwaC5lbmRab29tKHQsaSxyKTpEeWdyYXBoLkludGVyYWN0aW9uLm1heWJlVHJlYXRNb3VzZU9wQXNDbGljayh0LGkscik6ci5pc1Bhbm5pbmcmJkR5Z3JhcGguZW5kUGFuKHQsaSxyKSxEeWdyYXBoLnJlbW92ZUV2ZW50KGRvY3VtZW50LCJtb3VzZW1vdmUiLG4pLER5Z3JhcGgucmVtb3ZlRXZlbnQoZG9jdW1lbnQsIm1vdXNldXAiLG8pLHIuZGVzdHJveSgpfTtpLmFkZEFuZFRyYWNrRXZlbnQoZG9jdW1lbnQsIm1vdXNlbW92ZSIsbiksaS5hZGRBbmRUcmFja0V2ZW50KGRvY3VtZW50LCJtb3VzZXVwIixvKX19LHdpbGxEZXN0cm95Q29udGV4dE15c2VsZjohMCx0b3VjaHN0YXJ0OmZ1bmN0aW9uKHQsZSxhKXtEeWdyYXBoLkludGVyYWN0aW9uLnN0YXJ0VG91Y2godCxlLGEpfSx0b3VjaG1vdmU6ZnVuY3Rpb24odCxlLGEpe0R5Z3JhcGguSW50ZXJhY3Rpb24ubW92ZVRvdWNoKHQsZSxhKX0sdG91Y2hlbmQ6ZnVuY3Rpb24odCxlLGEpe0R5Z3JhcGguSW50ZXJhY3Rpb24uZW5kVG91Y2godCxlLGEpfSxkYmxjbGljazpmdW5jdGlvbih0LGUsYSl7aWYoYS5jYW5jZWxOZXh0RGJsY2xpY2spcmV0dXJuIHZvaWQoYS5jYW5jZWxOZXh0RGJsY2xpY2s9ITEpO3ZhciBpPXtjYW52YXN4OmEuZHJhZ0VuZFgsY2FudmFzeTphLmRyYWdFbmRZfTtlLmNhc2NhZGVFdmVudHNfKCJkYmxjbGljayIsaSl8fHQuYWx0S2V5fHx0LnNoaWZ0S2V5fHxlLnJlc2V0Wm9vbSgpfX0sRHlncmFwaC5ERUZBVUxUX0FUVFJTLmludGVyYWN0aW9uTW9kZWw9RHlncmFwaC5JbnRlcmFjdGlvbi5kZWZhdWx0TW9kZWwsRHlncmFwaC5kZWZhdWx0SW50ZXJhY3Rpb25Nb2RlbD1EeWdyYXBoLkludGVyYWN0aW9uLmRlZmF1bHRNb2RlbCxEeWdyYXBoLmVuZFpvb209RHlncmFwaC5JbnRlcmFjdGlvbi5lbmRab29tLER5Z3JhcGgubW92ZVpvb209RHlncmFwaC5JbnRlcmFjdGlvbi5tb3ZlWm9vbSxEeWdyYXBoLnN0YXJ0Wm9vbT1EeWdyYXBoLkludGVyYWN0aW9uLnN0YXJ0Wm9vbSxEeWdyYXBoLmVuZFBhbj1EeWdyYXBoLkludGVyYWN0aW9uLmVuZFBhbixEeWdyYXBoLm1vdmVQYW49RHlncmFwaC5JbnRlcmFjdGlvbi5tb3ZlUGFuLER5Z3JhcGguc3RhcnRQYW49RHlncmFwaC5JbnRlcmFjdGlvbi5zdGFydFBhbixEeWdyYXBoLkludGVyYWN0aW9uLm5vbkludGVyYWN0aXZlTW9kZWxfPXttb3VzZWRvd246ZnVuY3Rpb24odCxlLGEpe2EuaW5pdGlhbGl6ZU1vdXNlRG93bih0LGUsYSl9LG1vdXNldXA6RHlncmFwaC5JbnRlcmFjdGlvbi5tYXliZVRyZWF0TW91c2VPcEFzQ2xpY2t9LER5Z3JhcGguSW50ZXJhY3Rpb24uZHJhZ0lzUGFuSW50ZXJhY3Rpb25Nb2RlbD17bW91c2Vkb3duOmZ1bmN0aW9uKHQsZSxhKXthLmluaXRpYWxpemVNb3VzZURvd24odCxlLGEpLER5Z3JhcGguc3RhcnRQYW4odCxlLGEpfSxtb3VzZW1vdmU6ZnVuY3Rpb24odCxlLGEpe2EuaXNQYW5uaW5nJiZEeWdyYXBoLm1vdmVQYW4odCxlLGEpfSxtb3VzZXVwOmZ1bmN0aW9uKHQsZSxhKXthLmlzUGFubmluZyYmRHlncmFwaC5lbmRQYW4odCxlLGEpfX19KCksZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7RHlncmFwaC5UaWNrTGlzdD12b2lkIDAsRHlncmFwaC5UaWNrZXI9dm9pZCAwLER5Z3JhcGgubnVtZXJpY0xpbmVhclRpY2tzPWZ1bmN0aW9uKHQsZSxhLGkscixuKXt2YXIgbz1mdW5jdGlvbih0KXtyZXR1cm4ibG9nc2NhbGUiPT09dD8hMTppKHQpfTtyZXR1cm4gRHlncmFwaC5udW1lcmljVGlja3ModCxlLGEsbyxyLG4pfSxEeWdyYXBoLm51bWVyaWNUaWNrcz1mdW5jdGlvbih0LGUsYSxpLHIsbil7dmFyIG8scyxsLGgscD1pKCJwaXhlbHNQZXJMYWJlbCIpLGc9W107aWYobilmb3Iobz0wO288bi5sZW5ndGg7bysrKWcucHVzaCh7djpuW29dfSk7ZWxzZXtpZihpKCJsb2dzY2FsZSIpKXtoPU1hdGguZmxvb3IoYS9wKTt2YXIgZD1EeWdyYXBoLmJpbmFyeVNlYXJjaCh0LER5Z3JhcGguUFJFRkVSUkVEX0xPR19USUNLX1ZBTFVFUywxKSx1PUR5Z3JhcGguYmluYXJ5U2VhcmNoKGUsRHlncmFwaC5QUkVGRVJSRURfTE9HX1RJQ0tfVkFMVUVTLC0xKTstMT09ZCYmKGQ9MCksLTE9PXUmJih1PUR5Z3JhcGguUFJFRkVSUkVEX0xPR19USUNLX1ZBTFVFUy5sZW5ndGgtMSk7dmFyIGM9bnVsbDtpZih1LWQ+PWgvNCl7Zm9yKHZhciB5PXU7eT49ZDt5LS0pe3ZhciBfPUR5Z3JhcGguUFJFRkVSUkVEX0xPR19USUNLX1ZBTFVFU1t5XSx2PU1hdGgubG9nKF8vdCkvTWF0aC5sb2coZS90KSphLGY9e3Y6X307bnVsbD09PWM/Yz17dGlja1ZhbHVlOl8scGl4ZWxfY29vcmQ6dn06TWF0aC5hYnModi1jLnBpeGVsX2Nvb3JkKT49cD9jPXt0aWNrVmFsdWU6XyxwaXhlbF9jb29yZDp2fTpmLmxhYmVsPSIiLGcucHVzaChmKX1nLnJldmVyc2UoKX19aWYoMD09PWcubGVuZ3RoKXt2YXIgeCxtLEQ9aSgibGFiZWxzS01HMiIpO0Q/KHg9WzEsMiw0LDgsMTYsMzIsNjQsMTI4LDI1Nl0sbT0xNik6KHg9WzEsMiw1LDEwLDIwLDUwLDEwMF0sbT0xMCk7dmFyIHcsQSxiLFQsRT1NYXRoLmNlaWwoYS9wKSxDPU1hdGguYWJzKGUtdCkvRSxMPU1hdGguZmxvb3IoTWF0aC5sb2coQykvTWF0aC5sb2cobSkpLFA9TWF0aC5wb3cobSxMKTtmb3Iocz0wO3M8eC5sZW5ndGgmJih3PVAqeFtzXSxBPU1hdGguZmxvb3IodC93KSp3LGI9TWF0aC5jZWlsKGUvdykqdyxoPU1hdGguYWJzKGItQSkvdyxUPWEvaCwhKFQ+cCkpO3MrKyk7Zm9yKEE+YiYmKHcqPS0xKSxvPTA7aD49bztvKyspbD1BK28qdyxnLnB1c2goe3Y6bH0pfX12YXIgUz1pKCJheGlzTGFiZWxGb3JtYXR0ZXIiKTtmb3Iobz0wO288Zy5sZW5ndGg7bysrKXZvaWQgMD09PWdbb10ubGFiZWwmJihnW29dLmxhYmVsPVMuY2FsbChyLGdbb10udiwwLGkscikpO3JldHVybiBnfSxEeWdyYXBoLmRhdGVUaWNrZXI9ZnVuY3Rpb24odCxlLGEsaSxyLG4pe3ZhciBvPUR5Z3JhcGgucGlja0RhdGVUaWNrR3JhbnVsYXJpdHkodCxlLGEsaSk7cmV0dXJuIG8+PTA/RHlncmFwaC5nZXREYXRlQXhpcyh0LGUsbyxpLHIpOltdfSxEeWdyYXBoLlNFQ09ORExZPTAsRHlncmFwaC5UV09fU0VDT05ETFk9MSxEeWdyYXBoLkZJVkVfU0VDT05ETFk9MixEeWdyYXBoLlRFTl9TRUNPTkRMWT0zLER5Z3JhcGguVEhJUlRZX1NFQ09ORExZPTQsRHlncmFwaC5NSU5VVEVMWT01LER5Z3JhcGguVFdPX01JTlVURUxZPTYsRHlncmFwaC5GSVZFX01JTlVURUxZPTcsRHlncmFwaC5URU5fTUlOVVRFTFk9OCxEeWdyYXBoLlRISVJUWV9NSU5VVEVMWT05LER5Z3JhcGguSE9VUkxZPTEwLER5Z3JhcGguVFdPX0hPVVJMWT0xMSxEeWdyYXBoLlNJWF9IT1VSTFk9MTIsRHlncmFwaC5EQUlMWT0xMyxEeWdyYXBoLlRXT19EQUlMWT0xNCxEeWdyYXBoLldFRUtMWT0xNSxEeWdyYXBoLk1PTlRITFk9MTYsRHlncmFwaC5RVUFSVEVSTFk9MTcsRHlncmFwaC5CSUFOTlVBTD0xOCxEeWdyYXBoLkFOTlVBTD0xOSxEeWdyYXBoLkRFQ0FEQUw9MjAsRHlncmFwaC5DRU5URU5OSUFMPTIxLER5Z3JhcGguTlVNX0dSQU5VTEFSSVRJRVM9MjIsRHlncmFwaC5EQVRFRklFTERfWT0wLER5Z3JhcGguREFURUZJRUxEX009MSxEeWdyYXBoLkRBVEVGSUVMRF9EPTIsRHlncmFwaC5EQVRFRklFTERfSEg9MyxEeWdyYXBoLkRBVEVGSUVMRF9NTT00LER5Z3JhcGguREFURUZJRUxEX1NTPTUsRHlncmFwaC5EQVRFRklFTERfTVM9NixEeWdyYXBoLk5VTV9EQVRFRklFTERTPTcsRHlncmFwaC5USUNLX1BMQUNFTUVOVD1bXSxEeWdyYXBoLlRJQ0tfUExBQ0VNRU5UW0R5Z3JhcGguU0VDT05ETFldPXtkYXRlZmllbGQ6RHlncmFwaC5EQVRFRklFTERfU1Msc3RlcDoxLHNwYWNpbmc6MWUzfSxEeWdyYXBoLlRJQ0tfUExBQ0VNRU5UW0R5Z3JhcGguVFdPX1NFQ09ORExZXT17ZGF0ZWZpZWxkOkR5Z3JhcGguREFURUZJRUxEX1NTLHN0ZXA6MixzcGFjaW5nOjJlM30sRHlncmFwaC5USUNLX1BMQUNFTUVOVFtEeWdyYXBoLkZJVkVfU0VDT05ETFldPXtkYXRlZmllbGQ6RHlncmFwaC5EQVRFRklFTERfU1Msc3RlcDo1LHNwYWNpbmc6NWUzfSxEeWdyYXBoLlRJQ0tfUExBQ0VNRU5UW0R5Z3JhcGguVEVOX1NFQ09ORExZXT17ZGF0ZWZpZWxkOkR5Z3JhcGguREFURUZJRUxEX1NTLHN0ZXA6MTAsc3BhY2luZzoxZTR9LER5Z3JhcGguVElDS19QTEFDRU1FTlRbRHlncmFwaC5USElSVFlfU0VDT05ETFldPXtkYXRlZmllbGQ6RHlncmFwaC5EQVRFRklFTERfU1Msc3RlcDozMCxzcGFjaW5nOjNlNH0sRHlncmFwaC5USUNLX1BMQUNFTUVOVFtEeWdyYXBoLk1JTlVURUxZXT17ZGF0ZWZpZWxkOkR5Z3JhcGguREFURUZJRUxEX01NLHN0ZXA6MSxzcGFjaW5nOjZlNH0sRHlncmFwaC5USUNLX1BMQUNFTUVOVFtEeWdyYXBoLlRXT19NSU5VVEVMWV09e2RhdGVmaWVsZDpEeWdyYXBoLkRBVEVGSUVMRF9NTSxzdGVwOjIsc3BhY2luZzoxMmU0fSxEeWdyYXBoLlRJQ0tfUExBQ0VNRU5UW0R5Z3JhcGguRklWRV9NSU5VVEVMWV09e2RhdGVmaWVsZDpEeWdyYXBoLkRBVEVGSUVMRF9NTSxzdGVwOjUsc3BhY2luZzozZTV9LER5Z3JhcGguVElDS19QTEFDRU1FTlRbRHlncmFwaC5URU5fTUlOVVRFTFldPXtkYXRlZmllbGQ6RHlncmFwaC5EQVRFRklFTERfTU0sc3RlcDoxMCxzcGFjaW5nOjZlNX0sRHlncmFwaC5USUNLX1BMQUNFTUVOVFtEeWdyYXBoLlRISVJUWV9NSU5VVEVMWV09e2RhdGVmaWVsZDpEeWdyYXBoLkRBVEVGSUVMRF9NTSxzdGVwOjMwLHNwYWNpbmc6MThlNX0sRHlncmFwaC5USUNLX1BMQUNFTUVOVFtEeWdyYXBoLkhPVVJMWV09e2RhdGVmaWVsZDpEeWdyYXBoLkRBVEVGSUVMRF9ISCxzdGVwOjEsc3BhY2luZzozNmU1fSxEeWdyYXBoLlRJQ0tfUExBQ0VNRU5UW0R5Z3JhcGguVFdPX0hPVVJMWV09e2RhdGVmaWVsZDpEeWdyYXBoLkRBVEVGSUVMRF9ISCxzdGVwOjIsc3BhY2luZzo3MmU1fSxEeWdyYXBoLlRJQ0tfUExBQ0VNRU5UW0R5Z3JhcGguU0lYX0hPVVJMWV09e2RhdGVmaWVsZDpEeWdyYXBoLkRBVEVGSUVMRF9ISCxzdGVwOjYsc3BhY2luZzoyMTZlNX0sRHlncmFwaC5USUNLX1BMQUNFTUVOVFtEeWdyYXBoLkRBSUxZXT17ZGF0ZWZpZWxkOkR5Z3JhcGguREFURUZJRUxEX0Qsc3RlcDoxLHNwYWNpbmc6ODY0ZTV9LER5Z3JhcGguVElDS19QTEFDRU1FTlRbRHlncmFwaC5UV09fREFJTFldPXtkYXRlZmllbGQ6RHlncmFwaC5EQVRFRklFTERfRCxzdGVwOjIsc3BhY2luZzoxNzI4ZTV9LER5Z3JhcGguVElDS19QTEFDRU1FTlRbRHlncmFwaC5XRUVLTFldPXtkYXRlZmllbGQ6RHlncmFwaC5EQVRFRklFTERfRCxzdGVwOjcsc3BhY2luZzo2MDQ4ZTV9LER5Z3JhcGguVElDS19QTEFDRU1FTlRbRHlncmFwaC5NT05USExZXT17ZGF0ZWZpZWxkOkR5Z3JhcGguREFURUZJRUxEX00sc3RlcDoxLHNwYWNpbmc6MjYyOTgxNzI4MH0sRHlncmFwaC5USUNLX1BMQUNFTUVOVFtEeWdyYXBoLlFVQVJURVJMWV09e2RhdGVmaWVsZDpEeWdyYXBoLkRBVEVGSUVMRF9NLHN0ZXA6MyxzcGFjaW5nOjIxNmU1KjM2NS4yNTI0fSxEeWdyYXBoLlRJQ0tfUExBQ0VNRU5UW0R5Z3JhcGguQklBTk5VQUxdPXtkYXRlZmllbGQ6RHlncmFwaC5EQVRFRklFTERfTSxzdGVwOjYsc3BhY2luZzo0MzJlNSozNjUuMjUyNH0sRHlncmFwaC5USUNLX1BMQUNFTUVOVFtEeWdyYXBoLkFOTlVBTF09e2RhdGVmaWVsZDpEeWdyYXBoLkRBVEVGSUVMRF9ZLHN0ZXA6MSxzcGFjaW5nOjg2NGU1KjM2NS4yNTI0fSxEeWdyYXBoLlRJQ0tfUExBQ0VNRU5UW0R5Z3JhcGguREVDQURBTF09e2RhdGVmaWVsZDpEeWdyYXBoLkRBVEVGSUVMRF9ZLHN0ZXA6MTAsc3BhY2luZzozMTU1NzgwNzM2MDB9LER5Z3JhcGguVElDS19QTEFDRU1FTlRbRHlncmFwaC5DRU5URU5OSUFMXT17ZGF0ZWZpZWxkOkR5Z3JhcGguREFURUZJRUxEX1ksc3RlcDoxMDAsc3BhY2luZzozMTU1NzgwNzM2ZTN9LER5Z3JhcGguUFJFRkVSUkVEX0xPR19USUNLX1ZBTFVFUz1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPS0zOTszOT49ZTtlKyspZm9yKHZhciBhPU1hdGgucG93KDEwLGUpLGk9MTs5Pj1pO2krKyl7dmFyIHI9YSppO3QucHVzaChyKX1yZXR1cm4gdH0oKSxEeWdyYXBoLnBpY2tEYXRlVGlja0dyYW51bGFyaXR5PWZ1bmN0aW9uKHQsZSxhLGkpe2Zvcih2YXIgcj1pKCJwaXhlbHNQZXJMYWJlbCIpLG49MDtuPER5Z3JhcGguTlVNX0dSQU5VTEFSSVRJRVM7bisrKXt2YXIgbz1EeWdyYXBoLm51bURhdGVUaWNrcyh0LGUsbik7aWYoYS9vPj1yKXJldHVybiBufXJldHVybi0xfSxEeWdyYXBoLm51bURhdGVUaWNrcz1mdW5jdGlvbih0LGUsYSl7dmFyIGk9RHlncmFwaC5USUNLX1BMQUNFTUVOVFthXS5zcGFjaW5nO3JldHVybiBNYXRoLnJvdW5kKDEqKGUtdCkvaSl9LER5Z3JhcGguZ2V0RGF0ZUF4aXM9ZnVuY3Rpb24odCxlLGEsaSxyKXt2YXIgbj1pKCJheGlzTGFiZWxGb3JtYXR0ZXIiKSxvPWkoImxhYmVsc1VUQyIpLHM9bz9EeWdyYXBoLkRhdGVBY2Nlc3NvcnNVVEM6RHlncmFwaC5EYXRlQWNjZXNzb3JzTG9jYWwsbD1EeWdyYXBoLlRJQ0tfUExBQ0VNRU5UW2FdLmRhdGVmaWVsZCxoPUR5Z3JhcGguVElDS19QTEFDRU1FTlRbYV0uc3RlcCxwPUR5Z3JhcGguVElDS19QTEFDRU1FTlRbYV0uc3BhY2luZyxnPW5ldyBEYXRlKHQpLGQ9W107ZFtEeWdyYXBoLkRBVEVGSUVMRF9ZXT1zLmdldEZ1bGxZZWFyKGcpLGRbRHlncmFwaC5EQVRFRklFTERfTV09cy5nZXRNb250aChnKSxkW0R5Z3JhcGguREFURUZJRUxEX0RdPXMuZ2V0RGF0ZShnKSxkW0R5Z3JhcGguREFURUZJRUxEX0hIXT1zLmdldEhvdXJzKGcpLGRbRHlncmFwaC5EQVRFRklFTERfTU1dPXMuZ2V0TWludXRlcyhnKSxkW0R5Z3JhcGguREFURUZJRUxEX1NTXT1zLmdldFNlY29uZHMoZyksZFtEeWdyYXBoLkRBVEVGSUVMRF9NU109cy5nZXRNaWxsaXNlY29uZHMoZyk7dmFyIHU9ZFtsXSVoO2E9PUR5Z3JhcGguV0VFS0xZJiYodT1zLmdldERheShnKSksZFtsXS09dTtmb3IodmFyIGM9bCsxO2M8RHlncmFwaC5OVU1fREFURUZJRUxEUztjKyspZFtjXT1jPT09RHlncmFwaC5EQVRFRklFTERfRD8xOjA7dmFyIHk9W10sXz1zLm1ha2VEYXRlLmFwcGx5KG51bGwsZCksdj1fLmdldFRpbWUoKTtpZihhPD1EeWdyYXBoLkhPVVJMWSlmb3IodD52JiYodis9cCxfPW5ldyBEYXRlKHYpKTtlPj12Oyl5LnB1c2goe3Y6dixsYWJlbDpuLmNhbGwocixfLGEsaSxyKX0pLHYrPXAsXz1uZXcgRGF0ZSh2KTtlbHNlIGZvcih0PnYmJihkW2xdKz1oLF89cy5tYWtlRGF0ZS5hcHBseShudWxsLGQpLHY9Xy5nZXRUaW1lKCkpO2U+PXY7KShhPj1EeWdyYXBoLkRBSUxZfHxzLmdldEhvdXJzKF8pJWg9PT0wKSYmeS5wdXNoKHt2OnYsbGFiZWw6bi5jYWxsKHIsXyxhLGkscil9KSxkW2xdKz1oLF89cy5tYWtlRGF0ZS5hcHBseShudWxsLGQpLHY9Xy5nZXRUaW1lKCk7cmV0dXJuIHl9LER5Z3JhcGgmJkR5Z3JhcGguREVGQVVMVF9BVFRSUyYmRHlncmFwaC5ERUZBVUxUX0FUVFJTLmF4ZXMmJkR5Z3JhcGguREVGQVVMVF9BVFRSUy5heGVzLngmJkR5Z3JhcGguREVGQVVMVF9BVFRSUy5heGVzLnkmJkR5Z3JhcGguREVGQVVMVF9BVFRSUy5heGVzLnkyJiYoRHlncmFwaC5ERUZBVUxUX0FUVFJTLmF4ZXMueC50aWNrZXI9RHlncmFwaC5kYXRlVGlja2VyLER5Z3JhcGguREVGQVVMVF9BVFRSUy5heGVzLnkudGlja2VyPUR5Z3JhcGgubnVtZXJpY1RpY2tzLER5Z3JhcGguREVGQVVMVF9BVFRSUy5heGVzLnkyLnRpY2tlcj1EeWdyYXBoLm51bWVyaWNUaWNrcyl9KCksRHlncmFwaC5QbHVnaW5zPXt9LER5Z3JhcGguUGx1Z2lucy5Bbm5vdGF0aW9ucz1mdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD1mdW5jdGlvbigpe3RoaXMuYW5ub3RhdGlvbnNfPVtdfTtyZXR1cm4gdC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iQW5ub3RhdGlvbnMgUGx1Z2luIn0sdC5wcm90b3R5cGUuYWN0aXZhdGU9ZnVuY3Rpb24odCl7cmV0dXJue2NsZWFyQ2hhcnQ6dGhpcy5jbGVhckNoYXJ0LGRpZERyYXdDaGFydDp0aGlzLmRpZERyYXdDaGFydH19LHQucHJvdG90eXBlLmRldGFjaExhYmVscz1mdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy5hbm5vdGF0aW9uc18ubGVuZ3RoO3QrKyl7dmFyIGU9dGhpcy5hbm5vdGF0aW9uc19bdF07ZS5wYXJlbnROb2RlJiZlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSksdGhpcy5hbm5vdGF0aW9uc19bdF09bnVsbH10aGlzLmFubm90YXRpb25zXz1bXX0sdC5wcm90b3R5cGUuY2xlYXJDaGFydD1mdW5jdGlvbih0KXt0aGlzLmRldGFjaExhYmVscygpfSx0LnByb3RvdHlwZS5kaWREcmF3Q2hhcnQ9ZnVuY3Rpb24odCl7dmFyIGU9dC5keWdyYXBoLGE9ZS5sYXlvdXRfLmFubm90YXRlZF9wb2ludHM7aWYoYSYmMCE9PWEubGVuZ3RoKWZvcih2YXIgaT10LmNhbnZhcy5wYXJlbnROb2RlLHI9e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsZm9udFNpemU6ZS5nZXRPcHRpb24oImF4aXNMYWJlbEZvbnRTaXplIikrInB4Iix6SW5kZXg6MTAsb3ZlcmZsb3c6ImhpZGRlbiJ9LG49ZnVuY3Rpb24odCxhLGkpe3JldHVybiBmdW5jdGlvbihyKXt2YXIgbj1pLmFubm90YXRpb247bi5oYXNPd25Qcm9wZXJ0eSh0KT9uW3RdKG4saSxlLHIpOmUuZ2V0T3B0aW9uKGEpJiZlLmdldE9wdGlvbihhKShuLGksZSxyKX19LG89dC5keWdyYXBoLnBsb3R0ZXJfLmFyZWEscz17fSxsPTA7bDxhLmxlbmd0aDtsKyspe3ZhciBoPWFbbF07aWYoIShoLmNhbnZhc3g8by54fHxoLmNhbnZhc3g+by54K28ud3x8aC5jYW52YXN5PG8ueXx8aC5jYW52YXN5Pm8ueStvLmgpKXt2YXIgcD1oLmFubm90YXRpb24sZz02O3AuaGFzT3duUHJvcGVydHkoInRpY2tIZWlnaHQiKSYmKGc9cC50aWNrSGVpZ2h0KTt2YXIgZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtmb3IodmFyIHUgaW4gcilyLmhhc093blByb3BlcnR5KHUpJiYoZC5zdHlsZVt1XT1yW3VdKTtwLmhhc093blByb3BlcnR5KCJpY29uIil8fChkLmNsYXNzTmFtZT0iZHlncmFwaERlZmF1bHRBbm5vdGF0aW9uIikscC5oYXNPd25Qcm9wZXJ0eSgiY3NzQ2xhc3MiKSYmKGQuY2xhc3NOYW1lKz0iICIrcC5jc3NDbGFzcyk7dmFyIGM9cC5oYXNPd25Qcm9wZXJ0eSgid2lkdGgiKT9wLndpZHRoOjE2LHk9cC5oYXNPd25Qcm9wZXJ0eSgiaGVpZ2h0Iik/cC5oZWlnaHQ6MTY7aWYocC5oYXNPd25Qcm9wZXJ0eSgiaWNvbiIpKXt2YXIgXz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTtfLnNyYz1wLmljb24sXy53aWR0aD1jLF8uaGVpZ2h0PXksZC5hcHBlbmRDaGlsZChfKX1lbHNlIGguYW5ub3RhdGlvbi5oYXNPd25Qcm9wZXJ0eSgic2hvcnRUZXh0IikmJmQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoaC5hbm5vdGF0aW9uLnNob3J0VGV4dCkpO3ZhciB2PWguY2FudmFzeC1jLzI7ZC5zdHlsZS5sZWZ0PXYrInB4Ijt2YXIgZj0wO2lmKHAuYXR0YWNoQXRCb3R0b20pe3ZhciB4PW8ueStvLmgteS1nO3Nbdl0/eC09c1t2XTpzW3ZdPTAsc1t2XSs9Zyt5LGY9eH1lbHNlIGY9aC5jYW52YXN5LXktZztkLnN0eWxlLnRvcD1mKyJweCIsZC5zdHlsZS53aWR0aD1jKyJweCIsZC5zdHlsZS5oZWlnaHQ9eSsicHgiLGQudGl0bGU9aC5hbm5vdGF0aW9uLnRleHQsZC5zdHlsZS5jb2xvcj1lLmNvbG9yc01hcF9baC5uYW1lXSxkLnN0eWxlLmJvcmRlckNvbG9yPWUuY29sb3JzTWFwX1toLm5hbWVdLHAuZGl2PWQsZS5hZGRBbmRUcmFja0V2ZW50KGQsImNsaWNrIixuKCJjbGlja0hhbmRsZXIiLCJhbm5vdGF0aW9uQ2xpY2tIYW5kbGVyIixoLHRoaXMpKSxlLmFkZEFuZFRyYWNrRXZlbnQoZCwibW91c2VvdmVyIixuKCJtb3VzZU92ZXJIYW5kbGVyIiwiYW5ub3RhdGlvbk1vdXNlT3ZlckhhbmRsZXIiLGgsdGhpcykpLGUuYWRkQW5kVHJhY2tFdmVudChkLCJtb3VzZW91dCIsbigibW91c2VPdXRIYW5kbGVyIiwiYW5ub3RhdGlvbk1vdXNlT3V0SGFuZGxlciIsaCx0aGlzKSksZS5hZGRBbmRUcmFja0V2ZW50KGQsImRibGNsaWNrIixuKCJkYmxDbGlja0hhbmRsZXIiLCJhbm5vdGF0aW9uRGJsQ2xpY2tIYW5kbGVyIixoLHRoaXMpKSxpLmFwcGVuZENoaWxkKGQpLHRoaXMuYW5ub3RhdGlvbnNfLnB1c2goZCk7dmFyIG09dC5kcmF3aW5nQ29udGV4dDtpZihtLnNhdmUoKSxtLnN0cm9rZVN0eWxlPWUuY29sb3JzTWFwX1toLm5hbWVdLG0uYmVnaW5QYXRoKCkscC5hdHRhY2hBdEJvdHRvbSl7dmFyIHg9Zit5O20ubW92ZVRvKGguY2FudmFzeCx4KSxtLmxpbmVUbyhoLmNhbnZhc3gseCtnKX1lbHNlIG0ubW92ZVRvKGguY2FudmFzeCxoLmNhbnZhc3kpLG0ubGluZVRvKGguY2FudmFzeCxoLmNhbnZhc3ktMi1nKTttLmNsb3NlUGF0aCgpLG0uc3Ryb2tlKCksbS5yZXN0b3JlKCl9fX0sdC5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMuZGV0YWNoTGFiZWxzKCl9LHR9KCksRHlncmFwaC5QbHVnaW5zLkF4ZXM9ZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIHQ9ZnVuY3Rpb24oKXt0aGlzLnhsYWJlbHNfPVtdLHRoaXMueWxhYmVsc189W119O3JldHVybiB0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJBeGVzIFBsdWdpbiJ9LHQucHJvdG90eXBlLmFjdGl2YXRlPWZ1bmN0aW9uKHQpe3JldHVybntsYXlvdXQ6dGhpcy5sYXlvdXQsY2xlYXJDaGFydDp0aGlzLmNsZWFyQ2hhcnQsd2lsbERyYXdDaGFydDp0aGlzLndpbGxEcmF3Q2hhcnR9fSx0LnByb3RvdHlwZS5sYXlvdXQ9ZnVuY3Rpb24odCl7dmFyIGU9dC5keWdyYXBoO2lmKGUuZ2V0T3B0aW9uRm9yQXhpcygiZHJhd0F4aXMiLCJ5Iikpe3ZhciBhPWUuZ2V0T3B0aW9uRm9yQXhpcygiYXhpc0xhYmVsV2lkdGgiLCJ5IikrMiplLmdldE9wdGlvbkZvckF4aXMoImF4aXNUaWNrU2l6ZSIsInkiKTt0LnJlc2VydmVTcGFjZUxlZnQoYSl9aWYoZS5nZXRPcHRpb25Gb3JBeGlzKCJkcmF3QXhpcyIsIngiKSl7dmFyIGk7aT1lLmdldE9wdGlvbigieEF4aXNIZWlnaHQiKT9lLmdldE9wdGlvbigieEF4aXNIZWlnaHQiKTplLmdldE9wdGlvbkZvckF4aXMoImF4aXNMYWJlbEZvbnRTaXplIiwieCIpKzIqZS5nZXRPcHRpb25Gb3JBeGlzKCJheGlzVGlja1NpemUiLCJ4IiksdC5yZXNlcnZlU3BhY2VCb3R0b20oaSl9aWYoMj09ZS5udW1BeGVzKCkpe2lmKGUuZ2V0T3B0aW9uRm9yQXhpcygiZHJhd0F4aXMiLCJ5MiIpKXt2YXIgYT1lLmdldE9wdGlvbkZvckF4aXMoImF4aXNMYWJlbFdpZHRoIiwieTIiKSsyKmUuZ2V0T3B0aW9uRm9yQXhpcygiYXhpc1RpY2tTaXplIiwieTIiKTt0LnJlc2VydmVTcGFjZVJpZ2h0KGEpfX1lbHNlIGUubnVtQXhlcygpPjImJmUuZXJyb3IoIk9ubHkgdHdvIHktYXhlcyBhcmUgc3VwcG9ydGVkIGF0IHRoaXMgdGltZS4gKFRyeWluZyB0byB1c2UgIitlLm51bUF4ZXMoKSsiKSIpfSx0LnByb3RvdHlwZS5kZXRhY2hMYWJlbHM9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXt2YXIgYT10W2VdO2EucGFyZW50Tm9kZSYmYS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGEpfX10KHRoaXMueGxhYmVsc18pLHQodGhpcy55bGFiZWxzXyksdGhpcy54bGFiZWxzXz1bXSx0aGlzLnlsYWJlbHNfPVtdfSx0LnByb3RvdHlwZS5jbGVhckNoYXJ0PWZ1bmN0aW9uKHQpe3RoaXMuZGV0YWNoTGFiZWxzKCl9LHQucHJvdG90eXBlLndpbGxEcmF3Q2hhcnQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KSsuNX1mdW5jdGlvbiBhKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLS41fXZhciBpPXQuZHlncmFwaDtpZihpLmdldE9wdGlvbkZvckF4aXMoImRyYXdBeGlzIiwieCIpfHxpLmdldE9wdGlvbkZvckF4aXMoImRyYXdBeGlzIiwieSIpfHxpLmdldE9wdGlvbkZvckF4aXMoImRyYXdBeGlzIiwieTIiKSl7dmFyIHIsbixvLHMsbCxoPXQuZHJhd2luZ0NvbnRleHQscD10LmNhbnZhcy5wYXJlbnROb2RlLGc9aS53aWR0aF8sZD1pLmhlaWdodF8sdT1mdW5jdGlvbih0KXtyZXR1cm57cG9zaXRpb246ImFic29sdXRlIixmb250U2l6ZTppLmdldE9wdGlvbkZvckF4aXMoImF4aXNMYWJlbEZvbnRTaXplIix0KSsicHgiLHpJbmRleDoxMCxjb2xvcjppLmdldE9wdGlvbkZvckF4aXMoImF4aXNMYWJlbENvbG9yIix0KSx3aWR0aDppLmdldE9wdGlvbkZvckF4aXMoImF4aXNMYWJlbFdpZHRoIix0KSsicHgiLGxpbmVIZWlnaHQ6Im5vcm1hbCIsb3ZlcmZsb3c6ImhpZGRlbiJ9fSxjPXt4OnUoIngiKSx5OnUoInkiKSx5Mjp1KCJ5MiIpfSx5PWZ1bmN0aW9uKHQsZSxhKXt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxyPWNbInkyIj09YT8ieTIiOmVdO2Zvcih2YXIgbiBpbiByKXIuaGFzT3duUHJvcGVydHkobikmJihpLnN0eWxlW25dPXJbbl0pO3ZhciBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBvLmNsYXNzTmFtZT0iZHlncmFwaC1heGlzLWxhYmVsIGR5Z3JhcGgtYXhpcy1sYWJlbC0iK2UrKGE/IiBkeWdyYXBoLWF4aXMtbGFiZWwtIithOiIiKSxvLmlubmVySFRNTD10LGkuYXBwZW5kQ2hpbGQobyksaX07aC5zYXZlKCk7dmFyIF89aS5sYXlvdXRfLHY9dC5keWdyYXBoLnBsb3R0ZXJfLmFyZWEsZj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGkuZ2V0T3B0aW9uRm9yQXhpcyhlLHQpfX07aWYoaS5nZXRPcHRpb25Gb3JBeGlzKCJkcmF3QXhpcyIsInkiKSl7aWYoXy55dGlja3MmJl8ueXRpY2tzLmxlbmd0aD4wKXt2YXIgeD1pLm51bUF4ZXMoKSxtPVtmKCJ5IiksZigieTIiKV07Zm9yKGw9MDtsPF8ueXRpY2tzLmxlbmd0aDtsKyspe2lmKHM9Xy55dGlja3NbbF0sImZ1bmN0aW9uIj09dHlwZW9mIHMpcmV0dXJuO249di54O3ZhciBEPTEsdz0ieTEiLEE9bVswXTsxPT1zWzBdJiYobj12Lngrdi53LEQ9LTEsdz0ieTIiLEE9bVsxXSk7dmFyIGI9QSgiYXhpc0xhYmVsRm9udFNpemUiKTtvPXYueStzWzFdKnYuaCxyPXkoc1syXSwieSIsMj09eD93Om51bGwpO3ZhciBUPW8tYi8yOzA+VCYmKFQ9MCksVCtiKzM+ZD9yLnN0eWxlLmJvdHRvbT0iMCI6ci5zdHlsZS50b3A9VCsicHgiLDA9PT1zWzBdPyhyLnN0eWxlLmxlZnQ9di54LUEoImF4aXNMYWJlbFdpZHRoIiktQSgiYXhpc1RpY2tTaXplIikrInB4IixyLnN0eWxlLnRleHRBbGlnbj0icmlnaHQiKToxPT1zWzBdJiYoci5zdHlsZS5sZWZ0PXYueCt2LncrQSgiYXhpc1RpY2tTaXplIikrInB4IixyLnN0eWxlLnRleHRBbGlnbj0ibGVmdCIpLHIuc3R5bGUud2lkdGg9QSgiYXhpc0xhYmVsV2lkdGgiKSsicHgiLHAuYXBwZW5kQ2hpbGQociksdGhpcy55bGFiZWxzXy5wdXNoKHIpfXZhciBFPXRoaXMueWxhYmVsc19bMF0sYj1pLmdldE9wdGlvbkZvckF4aXMoImF4aXNMYWJlbEZvbnRTaXplIiwieSIpLEM9cGFyc2VJbnQoRS5zdHlsZS50b3AsMTApK2I7Qz5kLWImJihFLnN0eWxlLnRvcD1wYXJzZUludChFLnN0eWxlLnRvcCwxMCktYi8yKyJweCIpfXZhciBMO2lmKGkuZ2V0T3B0aW9uKCJkcmF3QXhlc0F0WmVybyIpKXt2YXIgUD1pLnRvUGVyY2VudFhDb29yZCgwKTsoUD4xfHwwPlB8fGlzTmFOKFApKSYmKFA9MCksTD1lKHYueCtQKnYudyl9ZWxzZSBMPWUodi54KTtoLnN0cm9rZVN0eWxlPWkuZ2V0T3B0aW9uRm9yQXhpcygiYXhpc0xpbmVDb2xvciIsInkiKSxoLmxpbmVXaWR0aD1pLmdldE9wdGlvbkZvckF4aXMoImF4aXNMaW5lV2lkdGgiLCJ5IiksaC5iZWdpblBhdGgoKSxoLm1vdmVUbyhMLGEodi55KSksaC5saW5lVG8oTCxhKHYueSt2LmgpKSxoLmNsb3NlUGF0aCgpLGguc3Ryb2tlKCksMj09aS5udW1BeGVzKCkmJihoLnN0cm9rZVN0eWxlPWkuZ2V0T3B0aW9uRm9yQXhpcygiYXhpc0xpbmVDb2xvciIsInkyIiksaC5saW5lV2lkdGg9aS5nZXRPcHRpb25Gb3JBeGlzKCJheGlzTGluZVdpZHRoIiwieTIiKSxoLmJlZ2luUGF0aCgpLGgubW92ZVRvKGEodi54K3YudyksYSh2LnkpKSxoLmxpbmVUbyhhKHYueCt2LncpLGEodi55K3YuaCkpLGguY2xvc2VQYXRoKCksaC5zdHJva2UoKSl9aWYoaS5nZXRPcHRpb25Gb3JBeGlzKCJkcmF3QXhpcyIsIngiKSl7aWYoXy54dGlja3Mpe3ZhciBBPWYoIngiKTtmb3IobD0wO2w8Xy54dGlja3MubGVuZ3RoO2wrKyl7cz1fLnh0aWNrc1tsXSxuPXYueCtzWzBdKnYudyxvPXYueSt2Lmgscj15KHNbMV0sIngiKSxyLnN0eWxlLnRleHRBbGlnbj0iY2VudGVyIixyLnN0eWxlLnRvcD1vK0EoImF4aXNUaWNrU2l6ZSIpKyJweCI7dmFyIFM9bi1BKCJheGlzTGFiZWxXaWR0aCIpLzI7UytBKCJheGlzTGFiZWxXaWR0aCIpPmcmJihTPWctQSgiYXhpc0xhYmVsV2lkdGgiKSxyLnN0eWxlLnRleHRBbGlnbj0icmlnaHQiKSwwPlMmJihTPTAsci5zdHlsZS50ZXh0QWxpZ249ImxlZnQiKSxyLnN0eWxlLmxlZnQ9UysicHgiLHIuc3R5bGUud2lkdGg9QSgiYXhpc0xhYmVsV2lkdGgiKSsicHgiLApwLmFwcGVuZENoaWxkKHIpLHRoaXMueGxhYmVsc18ucHVzaChyKX19aC5zdHJva2VTdHlsZT1pLmdldE9wdGlvbkZvckF4aXMoImF4aXNMaW5lQ29sb3IiLCJ4IiksaC5saW5lV2lkdGg9aS5nZXRPcHRpb25Gb3JBeGlzKCJheGlzTGluZVdpZHRoIiwieCIpLGguYmVnaW5QYXRoKCk7dmFyIE87aWYoaS5nZXRPcHRpb24oImRyYXdBeGVzQXRaZXJvIikpe3ZhciBQPWkudG9QZXJjZW50WUNvb3JkKDAsMCk7KFA+MXx8MD5QKSYmKFA9MSksTz1hKHYueStQKnYuaCl9ZWxzZSBPPWEodi55K3YuaCk7aC5tb3ZlVG8oZSh2LngpLE8pLGgubGluZVRvKGUodi54K3YudyksTyksaC5jbG9zZVBhdGgoKSxoLnN0cm9rZSgpfWgucmVzdG9yZSgpfX0sdH0oKSxEeWdyYXBoLlBsdWdpbnMuQ2hhcnRMYWJlbHM9ZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIHQ9ZnVuY3Rpb24oKXt0aGlzLnRpdGxlX2Rpdl89bnVsbCx0aGlzLnhsYWJlbF9kaXZfPW51bGwsdGhpcy55bGFiZWxfZGl2Xz1udWxsLHRoaXMueTJsYWJlbF9kaXZfPW51bGx9O3QucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIkNoYXJ0TGFiZWxzIFBsdWdpbiJ9LHQucHJvdG90eXBlLmFjdGl2YXRlPWZ1bmN0aW9uKHQpe3JldHVybntsYXlvdXQ6dGhpcy5sYXlvdXQsZGlkRHJhd0NoYXJ0OnRoaXMuZGlkRHJhd0NoYXJ0fX07dmFyIGU9ZnVuY3Rpb24odCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIGUuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixlLnN0eWxlLmxlZnQ9dC54KyJweCIsZS5zdHlsZS50b3A9dC55KyJweCIsZS5zdHlsZS53aWR0aD10LncrInB4IixlLnN0eWxlLmhlaWdodD10LmgrInB4IixlfTt0LnByb3RvdHlwZS5kZXRhY2hMYWJlbHNfPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVt0aGlzLnRpdGxlX2Rpdl8sdGhpcy54bGFiZWxfZGl2Xyx0aGlzLnlsYWJlbF9kaXZfLHRoaXMueTJsYWJlbF9kaXZfXSxlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciBhPXRbZV07YSYmYS5wYXJlbnROb2RlJiZhLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYSl9dGhpcy50aXRsZV9kaXZfPW51bGwsdGhpcy54bGFiZWxfZGl2Xz1udWxsLHRoaXMueWxhYmVsX2Rpdl89bnVsbCx0aGlzLnkybGFiZWxfZGl2Xz1udWxsfTt2YXIgYT1mdW5jdGlvbih0LGUsYSxpLHIpe3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO24uc3R5bGUucG9zaXRpb249ImFic29sdXRlIiwxPT1hP24uc3R5bGUubGVmdD0iMHB4IjpuLnN0eWxlLmxlZnQ9ZS54KyJweCIsbi5zdHlsZS50b3A9ZS55KyJweCIsbi5zdHlsZS53aWR0aD1lLncrInB4IixuLnN0eWxlLmhlaWdodD1lLmgrInB4IixuLnN0eWxlLmZvbnRTaXplPXQuZ2V0T3B0aW9uKCJ5TGFiZWxXaWR0aCIpLTIrInB4Ijt2YXIgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtvLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsby5zdHlsZS53aWR0aD1lLmgrInB4IixvLnN0eWxlLmhlaWdodD1lLncrInB4IixvLnN0eWxlLnRvcD1lLmgvMi1lLncvMisicHgiLG8uc3R5bGUubGVmdD1lLncvMi1lLmgvMisicHgiLG8uc3R5bGUudGV4dEFsaWduPSJjZW50ZXIiO3ZhciBzPSJyb3RhdGUoIisoMT09YT8iLSI6IiIpKyI5MGRlZykiO28uc3R5bGUudHJhbnNmb3JtPXMsby5zdHlsZS5XZWJraXRUcmFuc2Zvcm09cyxvLnN0eWxlLk1velRyYW5zZm9ybT1zLG8uc3R5bGUuT1RyYW5zZm9ybT1zLG8uc3R5bGUubXNUcmFuc2Zvcm09cywidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50LmRvY3VtZW50TW9kZSYmZG9jdW1lbnQuZG9jdW1lbnRNb2RlPDkmJihvLnN0eWxlLmZpbHRlcj0icHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249IisoMT09YT8iMyI6IjEiKSsiKSIsby5zdHlsZS5sZWZ0PSIwcHgiLG8uc3R5bGUudG9wPSIwcHgiKTt2YXIgbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gbC5jbGFzc05hbWU9aSxsLmlubmVySFRNTD1yLG8uYXBwZW5kQ2hpbGQobCksbi5hcHBlbmRDaGlsZChvKSxufTtyZXR1cm4gdC5wcm90b3R5cGUubGF5b3V0PWZ1bmN0aW9uKHQpe3RoaXMuZGV0YWNoTGFiZWxzXygpO3ZhciBpPXQuZHlncmFwaCxyPXQuY2hhcnRfZGl2O2lmKGkuZ2V0T3B0aW9uKCJ0aXRsZSIpKXt2YXIgbj10LnJlc2VydmVTcGFjZVRvcChpLmdldE9wdGlvbigidGl0bGVIZWlnaHQiKSk7dGhpcy50aXRsZV9kaXZfPWUobiksdGhpcy50aXRsZV9kaXZfLnN0eWxlLnRleHRBbGlnbj0iY2VudGVyIix0aGlzLnRpdGxlX2Rpdl8uc3R5bGUuZm9udFNpemU9aS5nZXRPcHRpb24oInRpdGxlSGVpZ2h0IiktOCsicHgiLHRoaXMudGl0bGVfZGl2Xy5zdHlsZS5mb250V2VpZ2h0PSJib2xkIix0aGlzLnRpdGxlX2Rpdl8uc3R5bGUuekluZGV4PTEwO3ZhciBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO28uY2xhc3NOYW1lPSJkeWdyYXBoLWxhYmVsIGR5Z3JhcGgtdGl0bGUiLG8uaW5uZXJIVE1MPWkuZ2V0T3B0aW9uKCJ0aXRsZSIpLHRoaXMudGl0bGVfZGl2Xy5hcHBlbmRDaGlsZChvKSxyLmFwcGVuZENoaWxkKHRoaXMudGl0bGVfZGl2Xyl9aWYoaS5nZXRPcHRpb24oInhsYWJlbCIpKXt2YXIgcz10LnJlc2VydmVTcGFjZUJvdHRvbShpLmdldE9wdGlvbigieExhYmVsSGVpZ2h0IikpO3RoaXMueGxhYmVsX2Rpdl89ZShzKSx0aGlzLnhsYWJlbF9kaXZfLnN0eWxlLnRleHRBbGlnbj0iY2VudGVyIix0aGlzLnhsYWJlbF9kaXZfLnN0eWxlLmZvbnRTaXplPWkuZ2V0T3B0aW9uKCJ4TGFiZWxIZWlnaHQiKS0yKyJweCI7dmFyIG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7by5jbGFzc05hbWU9ImR5Z3JhcGgtbGFiZWwgZHlncmFwaC14bGFiZWwiLG8uaW5uZXJIVE1MPWkuZ2V0T3B0aW9uKCJ4bGFiZWwiKSx0aGlzLnhsYWJlbF9kaXZfLmFwcGVuZENoaWxkKG8pLHIuYXBwZW5kQ2hpbGQodGhpcy54bGFiZWxfZGl2Xyl9aWYoaS5nZXRPcHRpb24oInlsYWJlbCIpKXt2YXIgbD10LnJlc2VydmVTcGFjZUxlZnQoMCk7dGhpcy55bGFiZWxfZGl2Xz1hKGksbCwxLCJkeWdyYXBoLWxhYmVsIGR5Z3JhcGgteWxhYmVsIixpLmdldE9wdGlvbigieWxhYmVsIikpLHIuYXBwZW5kQ2hpbGQodGhpcy55bGFiZWxfZGl2Xyl9aWYoaS5nZXRPcHRpb24oInkybGFiZWwiKSYmMj09aS5udW1BeGVzKCkpe3ZhciBoPXQucmVzZXJ2ZVNwYWNlUmlnaHQoMCk7dGhpcy55MmxhYmVsX2Rpdl89YShpLGgsMiwiZHlncmFwaC1sYWJlbCBkeWdyYXBoLXkybGFiZWwiLGkuZ2V0T3B0aW9uKCJ5MmxhYmVsIikpLHIuYXBwZW5kQ2hpbGQodGhpcy55MmxhYmVsX2Rpdl8pfX0sdC5wcm90b3R5cGUuZGlkRHJhd0NoYXJ0PWZ1bmN0aW9uKHQpe3ZhciBlPXQuZHlncmFwaDt0aGlzLnRpdGxlX2Rpdl8mJih0aGlzLnRpdGxlX2Rpdl8uY2hpbGRyZW5bMF0uaW5uZXJIVE1MPWUuZ2V0T3B0aW9uKCJ0aXRsZSIpKSx0aGlzLnhsYWJlbF9kaXZfJiYodGhpcy54bGFiZWxfZGl2Xy5jaGlsZHJlblswXS5pbm5lckhUTUw9ZS5nZXRPcHRpb24oInhsYWJlbCIpKSx0aGlzLnlsYWJlbF9kaXZfJiYodGhpcy55bGFiZWxfZGl2Xy5jaGlsZHJlblswXS5jaGlsZHJlblswXS5pbm5lckhUTUw9ZS5nZXRPcHRpb24oInlsYWJlbCIpKSx0aGlzLnkybGFiZWxfZGl2XyYmKHRoaXMueTJsYWJlbF9kaXZfLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdLmlubmVySFRNTD1lLmdldE9wdGlvbigieTJsYWJlbCIpKX0sdC5wcm90b3R5cGUuY2xlYXJDaGFydD1mdW5jdGlvbigpe30sdC5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMuZGV0YWNoTGFiZWxzXygpfSx0fSgpLER5Z3JhcGguUGx1Z2lucy5HcmlkPWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciB0PWZ1bmN0aW9uKCl7fTtyZXR1cm4gdC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iR3JpZGxpbmUgUGx1Z2luIn0sdC5wcm90b3R5cGUuYWN0aXZhdGU9ZnVuY3Rpb24odCl7cmV0dXJue3dpbGxEcmF3Q2hhcnQ6dGhpcy53aWxsRHJhd0NoYXJ0fX0sdC5wcm90b3R5cGUud2lsbERyYXdDaGFydD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpKy41fWZ1bmN0aW9uIGEodCl7cmV0dXJuIE1hdGgucm91bmQodCktLjV9dmFyIGkscixuLG8scz10LmR5Z3JhcGgsbD10LmRyYXdpbmdDb250ZXh0LGg9cy5sYXlvdXRfLHA9dC5keWdyYXBoLnBsb3R0ZXJfLmFyZWE7aWYocy5nZXRPcHRpb25Gb3JBeGlzKCJkcmF3R3JpZCIsInkiKSl7Zm9yKHZhciBnPVsieSIsInkyIl0sZD1bXSx1PVtdLGM9W10seT1bXSxfPVtdLG49MDtuPGcubGVuZ3RoO24rKyljW25dPXMuZ2V0T3B0aW9uRm9yQXhpcygiZHJhd0dyaWQiLGdbbl0pLGNbbl0mJihkW25dPXMuZ2V0T3B0aW9uRm9yQXhpcygiZ3JpZExpbmVDb2xvciIsZ1tuXSksdVtuXT1zLmdldE9wdGlvbkZvckF4aXMoImdyaWRMaW5lV2lkdGgiLGdbbl0pLF9bbl09cy5nZXRPcHRpb25Gb3JBeGlzKCJncmlkTGluZVBhdHRlcm4iLGdbbl0pLHlbbl09X1tuXSYmX1tuXS5sZW5ndGg+PTIpO2ZvcihvPWgueXRpY2tzLGwuc2F2ZSgpLG49MDtuPG8ubGVuZ3RoO24rKyl7dmFyIHY9b1tuXVswXTtjW3ZdJiYoeVt2XSYmbC5pbnN0YWxsUGF0dGVybihfW3ZdKSxsLnN0cm9rZVN0eWxlPWRbdl0sbC5saW5lV2lkdGg9dVt2XSxpPWUocC54KSxyPWEocC55K29bbl1bMV0qcC5oKSxsLmJlZ2luUGF0aCgpLGwubW92ZVRvKGksciksbC5saW5lVG8oaStwLncsciksbC5jbG9zZVBhdGgoKSxsLnN0cm9rZSgpLHlbdl0mJmwudW5pbnN0YWxsUGF0dGVybigpKX1sLnJlc3RvcmUoKX1pZihzLmdldE9wdGlvbkZvckF4aXMoImRyYXdHcmlkIiwieCIpKXtvPWgueHRpY2tzLGwuc2F2ZSgpO3ZhciBfPXMuZ2V0T3B0aW9uRm9yQXhpcygiZ3JpZExpbmVQYXR0ZXJuIiwieCIpLHk9XyYmXy5sZW5ndGg+PTI7Zm9yKHkmJmwuaW5zdGFsbFBhdHRlcm4oXyksbC5zdHJva2VTdHlsZT1zLmdldE9wdGlvbkZvckF4aXMoImdyaWRMaW5lQ29sb3IiLCJ4IiksbC5saW5lV2lkdGg9cy5nZXRPcHRpb25Gb3JBeGlzKCJncmlkTGluZVdpZHRoIiwieCIpLG49MDtuPG8ubGVuZ3RoO24rKylpPWUocC54K29bbl1bMF0qcC53KSxyPWEocC55K3AuaCksbC5iZWdpblBhdGgoKSxsLm1vdmVUbyhpLHIpLGwubGluZVRvKGkscC55KSxsLmNsb3NlUGF0aCgpLGwuc3Ryb2tlKCk7eSYmbC51bmluc3RhbGxQYXR0ZXJuKCksbC5yZXN0b3JlKCl9fSx0LnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7fSx0fSgpLER5Z3JhcGguUGx1Z2lucy5MZWdlbmQ9ZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIHQ9ZnVuY3Rpb24oKXt0aGlzLmxlZ2VuZF9kaXZfPW51bGwsdGhpcy5pc19nZW5lcmF0ZWRfZGl2Xz0hMX07dC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iTGVnZW5kIFBsdWdpbiJ9O3ZhciBlO3QucHJvdG90eXBlLmFjdGl2YXRlPWZ1bmN0aW9uKHQpe3ZhciBlLGE9dC5nZXRPcHRpb24oImxhYmVsc0RpdldpZHRoIiksaT10LmdldE9wdGlvbigibGFiZWxzRGl2Iik7aWYoaSYmbnVsbCE9PWkpZT0ic3RyaW5nIj09dHlwZW9mIGl8fGkgaW5zdGFuY2VvZiBTdHJpbmc/ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaSk6aTtlbHNle3ZhciByPXtwb3NpdGlvbjoiYWJzb2x1dGUiLGZvbnRTaXplOiIxNHB4Iix6SW5kZXg6MTAsd2lkdGg6YSsicHgiLHRvcDoiMHB4IixsZWZ0OnQuc2l6ZSgpLndpZHRoLWEtMisicHgiLGJhY2tncm91bmQ6IndoaXRlIixsaW5lSGVpZ2h0OiJub3JtYWwiLHRleHRBbGlnbjoibGVmdCIsb3ZlcmZsb3c6ImhpZGRlbiJ9O0R5Z3JhcGgudXBkYXRlKHIsdC5nZXRPcHRpb24oImxhYmVsc0RpdlN0eWxlcyIpKSxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGUuY2xhc3NOYW1lPSJkeWdyYXBoLWxlZ2VuZCI7Zm9yKHZhciBuIGluIHIpaWYoci5oYXNPd25Qcm9wZXJ0eShuKSl0cnl7ZS5zdHlsZVtuXT1yW25dfWNhdGNoKG8pe2NvbnNvbGUud2FybigiWW91IGFyZSB1c2luZyB1bnN1cHBvcnRlZCBjc3MgcHJvcGVydGllcyBmb3IgeW91ciBicm93c2VyIGluIGxhYmVsc0RpdlN0eWxlcyIpfXQuZ3JhcGhEaXYuYXBwZW5kQ2hpbGQoZSksdGhpcy5pc19nZW5lcmF0ZWRfZGl2Xz0hMH1yZXR1cm4gdGhpcy5sZWdlbmRfZGl2Xz1lLHRoaXMub25lX2VtX3dpZHRoXz0xMCx7c2VsZWN0OnRoaXMuc2VsZWN0LGRlc2VsZWN0OnRoaXMuZGVzZWxlY3QscHJlZHJhdzp0aGlzLnByZWRyYXcsZGlkRHJhd0NoYXJ0OnRoaXMuZGlkRHJhd0NoYXJ0fX07dmFyIGE9ZnVuY3Rpb24odCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2Uuc2V0QXR0cmlidXRlKCJzdHlsZSIsIm1hcmdpbjogMDsgcGFkZGluZzogMCAwIDAgMWVtOyBib3JkZXI6IDA7IiksdC5hcHBlbmRDaGlsZChlKTt2YXIgYT1lLm9mZnNldFdpZHRoO3JldHVybiB0LnJlbW92ZUNoaWxkKGUpLGF9LGk9ZnVuY3Rpb24odCl7cmV0dXJuIHQucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLyIvZywiJnF1b3Q7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7Iil9O3JldHVybiB0LnByb3RvdHlwZS5zZWxlY3Q9ZnVuY3Rpb24oZSl7dmFyIGE9ZS5zZWxlY3RlZFgsaT1lLnNlbGVjdGVkUG9pbnRzLHI9ZS5zZWxlY3RlZFJvdyxuPWUuZHlncmFwaC5nZXRPcHRpb24oImxlZ2VuZCIpO2lmKCJuZXZlciI9PT1uKXJldHVybiB2b2lkKHRoaXMubGVnZW5kX2Rpdl8uc3R5bGUuZGlzcGxheT0ibm9uZSIpO2lmKCJmb2xsb3ciPT09bil7dmFyIG89ZS5keWdyYXBoLnBsb3R0ZXJfLmFyZWEscz1lLmR5Z3JhcGguZ2V0T3B0aW9uKCJsYWJlbHNEaXZXaWR0aCIpLGw9ZS5keWdyYXBoLmdldE9wdGlvbkZvckF4aXMoImF4aXNMYWJlbFdpZHRoIiwieSIpLGg9aVswXS54Km8udysyMCxwPWlbMF0ueSpvLmgtMjA7aCtzKzE+d2luZG93LnNjcm9sbFgrd2luZG93LmlubmVyV2lkdGgmJihoPWgtNDAtcy0obC1vLngpKSxlLmR5Z3JhcGguZ3JhcGhEaXYuYXBwZW5kQ2hpbGQodGhpcy5sZWdlbmRfZGl2XyksdGhpcy5sZWdlbmRfZGl2Xy5zdHlsZS5sZWZ0PWwraCsicHgiLHRoaXMubGVnZW5kX2Rpdl8uc3R5bGUudG9wPXArInB4In12YXIgZz10LmdlbmVyYXRlTGVnZW5kSFRNTChlLmR5Z3JhcGgsYSxpLHRoaXMub25lX2VtX3dpZHRoXyxyKTt0aGlzLmxlZ2VuZF9kaXZfLmlubmVySFRNTD1nLHRoaXMubGVnZW5kX2Rpdl8uc3R5bGUuZGlzcGxheT0iIn0sdC5wcm90b3R5cGUuZGVzZWxlY3Q9ZnVuY3Rpb24oZSl7dmFyIGk9ZS5keWdyYXBoLmdldE9wdGlvbigibGVnZW5kIik7ImFsd2F5cyIhPT1pJiYodGhpcy5sZWdlbmRfZGl2Xy5zdHlsZS5kaXNwbGF5PSJub25lIik7dmFyIHI9YSh0aGlzLmxlZ2VuZF9kaXZfKTt0aGlzLm9uZV9lbV93aWR0aF89cjt2YXIgbj10LmdlbmVyYXRlTGVnZW5kSFRNTChlLmR5Z3JhcGgsdm9pZCAwLHZvaWQgMCxyLG51bGwpO3RoaXMubGVnZW5kX2Rpdl8uaW5uZXJIVE1MPW59LHQucHJvdG90eXBlLmRpZERyYXdDaGFydD1mdW5jdGlvbih0KXt0aGlzLmRlc2VsZWN0KHQpfSx0LnByb3RvdHlwZS5wcmVkcmF3PWZ1bmN0aW9uKHQpe2lmKHRoaXMuaXNfZ2VuZXJhdGVkX2Rpdl8pe3QuZHlncmFwaC5ncmFwaERpdi5hcHBlbmRDaGlsZCh0aGlzLmxlZ2VuZF9kaXZfKTt2YXIgZT10LmR5Z3JhcGgucGxvdHRlcl8uYXJlYSxhPXQuZHlncmFwaC5nZXRPcHRpb24oImxhYmVsc0RpdldpZHRoIik7dGhpcy5sZWdlbmRfZGl2Xy5zdHlsZS5sZWZ0PWUueCtlLnctYS0xKyJweCIsdGhpcy5sZWdlbmRfZGl2Xy5zdHlsZS50b3A9ZS55KyJweCIsdGhpcy5sZWdlbmRfZGl2Xy5zdHlsZS53aWR0aD1hKyJweCJ9fSx0LnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5sZWdlbmRfZGl2Xz1udWxsfSx0LmdlbmVyYXRlTGVnZW5kSFRNTD1mdW5jdGlvbih0LGEscixuLG8pe2lmKHQuZ2V0T3B0aW9uKCJzaG93TGFiZWxzT25IaWdobGlnaHQiKSE9PSEwKXJldHVybiIiO3ZhciBzLGwsaCxwLGcsZD10LmdldExhYmVscygpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYSl7aWYoImFsd2F5cyIhPXQuZ2V0T3B0aW9uKCJsZWdlbmQiKSlyZXR1cm4iIjtmb3IobD10LmdldE9wdGlvbigibGFiZWxzU2VwYXJhdGVMaW5lcyIpLHM9IiIsaD0xO2g8ZC5sZW5ndGg7aCsrKXt2YXIgdT10LmdldFByb3BlcnRpZXNGb3JTZXJpZXMoZFtoXSk7dS52aXNpYmxlJiYoIiIhPT1zJiYocys9bD8iPGJyLz4iOiIgIiksZz10LmdldE9wdGlvbigic3Ryb2tlUGF0dGVybiIsZFtoXSkscD1lKGcsdS5jb2xvcixuKSxzKz0iPHNwYW4gc3R5bGU9J2ZvbnQtd2VpZ2h0OiBib2xkOyBjb2xvcjogIit1LmNvbG9yKyI7Jz4iK3ArIiAiK2koZFtoXSkrIjwvc3Bhbj4iKX1yZXR1cm4gc312YXIgYz10Lm9wdGlvbnNWaWV3Rm9yQXhpc18oIngiKSx5PWMoInZhbHVlRm9ybWF0dGVyIik7cz15LmNhbGwodCxhLGMsZFswXSx0LG8sMCksIiIhPT1zJiYocys9IjoiKTt2YXIgXz1bXSx2PXQubnVtQXhlcygpO2ZvcihoPTA7dj5oO2grKylfW2hdPXQub3B0aW9uc1ZpZXdGb3JBeGlzXygieSIrKGg/MStoOiIiKSk7dmFyIGY9dC5nZXRPcHRpb24oImxhYmVsc1Nob3daZXJvVmFsdWVzIik7bD10LmdldE9wdGlvbigibGFiZWxzU2VwYXJhdGVMaW5lcyIpO3ZhciB4PXQuZ2V0SGlnaGxpZ2h0U2VyaWVzKCk7Zm9yKGg9MDtoPHIubGVuZ3RoO2grKyl7dmFyIG09cltoXTtpZigoMCE9PW0ueXZhbHx8ZikmJkR5Z3JhcGguaXNPSyhtLmNhbnZhc3kpKXtsJiYocys9Ijxici8+Iik7dmFyIHU9dC5nZXRQcm9wZXJ0aWVzRm9yU2VyaWVzKG0ubmFtZSksRD1fW3UuYXhpcy0xXSx3PUQoInZhbHVlRm9ybWF0dGVyIiksQT13LmNhbGwodCxtLnl2YWwsRCxtLm5hbWUsdCxvLGQuaW5kZXhPZihtLm5hbWUpKSxiPW0ubmFtZT09eD8iIGNsYXNzPSdoaWdobGlnaHQnIjoiIjtzKz0iPHNwYW4iK2IrIj4gPGI+PHNwYW4gc3R5bGU9J2NvbG9yOiAiK3UuY29sb3IrIjsnPiIraShtLm5hbWUpKyI8L3NwYW4+PC9iPjomIzE2MDsiK0ErIjwvc3Bhbj4ifX1yZXR1cm4gc30sZT1mdW5jdGlvbih0LGUsYSl7dmFyIGk9L01TSUUvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJiF3aW5kb3cub3BlcmE7aWYoaSlyZXR1cm4iJm1kYXNoOyI7aWYoIXR8fHQubGVuZ3RoPD0xKXJldHVybic8ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBvc2l0aW9uOiByZWxhdGl2ZTsgYm90dG9tOiAuNWV4OyBwYWRkaW5nLWxlZnQ6IDFlbTsgaGVpZ2h0OiAxcHg7IGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAnK2UrJzsiPjwvZGl2Pic7dmFyIHIsbixvLHMsbCxoPTAscD0wLGc9W107Zm9yKHI9MDtyPD10Lmxlbmd0aDtyKyspaCs9dFtyJXQubGVuZ3RoXTtpZihsPU1hdGguZmxvb3IoYS8oaC10WzBdKSksbD4xKXtmb3Iocj0wO3I8dC5sZW5ndGg7cisrKWdbcl09dFtyXS9hO3A9Zy5sZW5ndGh9ZWxzZXtmb3IobD0xLHI9MDtyPHQubGVuZ3RoO3IrKylnW3JdPXRbcl0vaDtwPWcubGVuZ3RoKzF9dmFyIGQ9IiI7Zm9yKG49MDtsPm47bisrKWZvcihyPTA7cD5yO3IrPTIpbz1nW3IlZy5sZW5ndGhdLHM9cjx0Lmxlbmd0aD9nWyhyKzEpJWcubGVuZ3RoXTowLGQrPSc8ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBvc2l0aW9uOiByZWxhdGl2ZTsgYm90dG9tOiAuNWV4OyBtYXJnaW4tcmlnaHQ6ICcrcysiZW07IHBhZGRpbmctbGVmdDogIitvKyJlbTsgaGVpZ2h0OiAxcHg7IGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAiK2UrJzsiPjwvZGl2Pic7cmV0dXJuIGR9LHR9KCksRHlncmFwaC5QbHVnaW5zLlJhbmdlU2VsZWN0b3I9ZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIHQ9ZnVuY3Rpb24oKXt0aGlzLmlzSUVfPS9NU0lFLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYhd2luZG93Lm9wZXJhLHRoaXMuaGFzVG91Y2hJbnRlcmZhY2VfPSJ1bmRlZmluZWQiIT10eXBlb2YgVG91Y2hFdmVudCx0aGlzLmlzTW9iaWxlRGV2aWNlXz0vbW9iaWxlfGFuZHJvaWQvZ2kudGVzdChuYXZpZ2F0b3IuYXBwVmVyc2lvbiksdGhpcy5pbnRlcmZhY2VDcmVhdGVkXz0hMX07cmV0dXJuIHQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIlJhbmdlU2VsZWN0b3IgUGx1Z2luIn0sdC5wcm90b3R5cGUuYWN0aXZhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZHlncmFwaF89dCx0aGlzLmlzVXNpbmdFeGNhbnZhc189dC5pc1VzaW5nRXhjYW52YXNfLHRoaXMuZ2V0T3B0aW9uXygic2hvd1JhbmdlU2VsZWN0b3IiKSYmdGhpcy5jcmVhdGVJbnRlcmZhY2VfKCkse2xheW91dDp0aGlzLnJlc2VydmVTcGFjZV8scHJlZHJhdzp0aGlzLnJlbmRlclN0YXRpY0xheWVyXyxkaWREcmF3Q2hhcnQ6dGhpcy5yZW5kZXJJbnRlcmFjdGl2ZUxheWVyX319LHQucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLmJnY2FudmFzXz1udWxsLHRoaXMuZmdjYW52YXNfPW51bGwsdGhpcy5sZWZ0Wm9vbUhhbmRsZV89bnVsbCx0aGlzLnJpZ2h0Wm9vbUhhbmRsZV89bnVsbCx0aGlzLmllUGFuT3ZlcmxheV89bnVsbH0sdC5wcm90b3R5cGUuZ2V0T3B0aW9uXz1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmR5Z3JhcGhfLmdldE9wdGlvbih0LGUpfSx0LnByb3RvdHlwZS5zZXREZWZhdWx0T3B0aW9uXz1mdW5jdGlvbih0LGUpe3RoaXMuZHlncmFwaF8uYXR0cnNfW3RdPWV9LHQucHJvdG90eXBlLmNyZWF0ZUludGVyZmFjZV89ZnVuY3Rpb24oKXt0aGlzLmNyZWF0ZUNhbnZhc2VzXygpLHRoaXMuaXNVc2luZ0V4Y2FudmFzXyYmdGhpcy5jcmVhdGVJRVBhbk92ZXJsYXlfKCksdGhpcy5jcmVhdGVab29tSGFuZGxlc18oKSx0aGlzLmluaXRJbnRlcmFjdGlvbl8oKSx0aGlzLmdldE9wdGlvbl8oImFuaW1hdGVkWm9vbXMiKSYmKGNvbnNvbGUud2FybigiQW5pbWF0ZWQgem9vbXMgYW5kIHJhbmdlIHNlbGVjdG9yIGFyZSBub3QgY29tcGF0aWJsZTsgZGlzYWJsaW5nIGFuaW1hdGVkWm9vbXMuIiksdGhpcy5keWdyYXBoXy51cGRhdGVPcHRpb25zKHthbmltYXRlZFpvb21zOiExfSwhMCkpLHRoaXMuaW50ZXJmYWNlQ3JlYXRlZF89ITAsdGhpcy5hZGRUb0dyYXBoXygpfSx0LnByb3RvdHlwZS5hZGRUb0dyYXBoXz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZ3JhcGhEaXZfPXRoaXMuZHlncmFwaF8uZ3JhcGhEaXY7dC5hcHBlbmRDaGlsZCh0aGlzLmJnY2FudmFzXyksdC5hcHBlbmRDaGlsZCh0aGlzLmZnY2FudmFzXyksdC5hcHBlbmRDaGlsZCh0aGlzLmxlZnRab29tSGFuZGxlXyksdC5hcHBlbmRDaGlsZCh0aGlzLnJpZ2h0Wm9vbUhhbmRsZV8pfSx0LnByb3RvdHlwZS5yZW1vdmVGcm9tR3JhcGhfPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5ncmFwaERpdl87dC5yZW1vdmVDaGlsZCh0aGlzLmJnY2FudmFzXyksdC5yZW1vdmVDaGlsZCh0aGlzLmZnY2FudmFzXyksdC5yZW1vdmVDaGlsZCh0aGlzLmxlZnRab29tSGFuZGxlXyksdC5yZW1vdmVDaGlsZCh0aGlzLnJpZ2h0Wm9vbUhhbmRsZV8pLHRoaXMuZ3JhcGhEaXZfPW51bGx9LHQucHJvdG90eXBlLnJlc2VydmVTcGFjZV89ZnVuY3Rpb24odCl7dGhpcy5nZXRPcHRpb25fKCJzaG93UmFuZ2VTZWxlY3RvciIpJiZ0LnJlc2VydmVTcGFjZUJvdHRvbSh0aGlzLmdldE9wdGlvbl8oInJhbmdlU2VsZWN0b3JIZWlnaHQiKSs0KX0sdC5wcm90b3R5cGUucmVuZGVyU3RhdGljTGF5ZXJfPWZ1bmN0aW9uKCl7dGhpcy51cGRhdGVWaXNpYmlsaXR5XygpJiYodGhpcy5yZXNpemVfKCksdGhpcy5kcmF3U3RhdGljTGF5ZXJfKCkpfSx0LnByb3RvdHlwZS5yZW5kZXJJbnRlcmFjdGl2ZUxheWVyXz1mdW5jdGlvbigpe3RoaXMudXBkYXRlVmlzaWJpbGl0eV8oKSYmIXRoaXMuaXNDaGFuZ2luZ1JhbmdlXyYmKHRoaXMucGxhY2Vab29tSGFuZGxlc18oKSx0aGlzLmRyYXdJbnRlcmFjdGl2ZUxheWVyXygpKX0sdC5wcm90b3R5cGUudXBkYXRlVmlzaWJpbGl0eV89ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmdldE9wdGlvbl8oInNob3dSYW5nZVNlbGVjdG9yIik7aWYodCl0aGlzLmludGVyZmFjZUNyZWF0ZWRfP3RoaXMuZ3JhcGhEaXZfJiZ0aGlzLmdyYXBoRGl2Xy5wYXJlbnROb2RlfHx0aGlzLmFkZFRvR3JhcGhfKCk6dGhpcy5jcmVhdGVJbnRlcmZhY2VfKCk7ZWxzZSBpZih0aGlzLmdyYXBoRGl2Xyl7dGhpcy5yZW1vdmVGcm9tR3JhcGhfKCk7dmFyIGU9dGhpcy5keWdyYXBoXztzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS53aWR0aF89MCxlLnJlc2l6ZSgpfSwxKX1yZXR1cm4gdH0sdC5wcm90b3R5cGUucmVzaXplXz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLGEpe3ZhciBpPUR5Z3JhcGguZ2V0Q29udGV4dFBpeGVsUmF0aW8oZSk7dC5zdHlsZS50b3A9YS55KyJweCIsdC5zdHlsZS5sZWZ0PWEueCsicHgiLHQud2lkdGg9YS53KmksdC5oZWlnaHQ9YS5oKmksdC5zdHlsZS53aWR0aD1hLncrInB4Iix0LnN0eWxlLmhlaWdodD1hLmgrInB4IiwxIT1pJiZlLnNjYWxlKGksaSl9dmFyIGU9dGhpcy5keWdyYXBoXy5sYXlvdXRfLmdldFBsb3RBcmVhKCksYT0wO3RoaXMuZHlncmFwaF8uZ2V0T3B0aW9uRm9yQXhpcygiZHJhd0F4aXMiLCJ4IikmJihhPXRoaXMuZ2V0T3B0aW9uXygieEF4aXNIZWlnaHQiKXx8dGhpcy5nZXRPcHRpb25fKCJheGlzTGFiZWxGb250U2l6ZSIpKzIqdGhpcy5nZXRPcHRpb25fKCJheGlzVGlja1NpemUiKSksdGhpcy5jYW52YXNSZWN0Xz17eDplLngseTplLnkrZS5oK2ErNCx3OmUudyxoOnRoaXMuZ2V0T3B0aW9uXygicmFuZ2VTZWxlY3RvckhlaWdodCIpfSx0KHRoaXMuYmdjYW52YXNfLHRoaXMuYmdjYW52YXNfY3R4Xyx0aGlzLmNhbnZhc1JlY3RfKSx0KHRoaXMuZmdjYW52YXNfLHRoaXMuZmdjYW52YXNfY3R4Xyx0aGlzLmNhbnZhc1JlY3RfKX0sdC5wcm90b3R5cGUuY3JlYXRlQ2FudmFzZXNfPWZ1bmN0aW9uKCl7dGhpcy5iZ2NhbnZhc189RHlncmFwaC5jcmVhdGVDYW52YXMoKSx0aGlzLmJnY2FudmFzXy5jbGFzc05hbWU9ImR5Z3JhcGgtcmFuZ2VzZWwtYmdjYW52YXMiLHRoaXMuYmdjYW52YXNfLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsdGhpcy5iZ2NhbnZhc18uc3R5bGUuekluZGV4PTksdGhpcy5iZ2NhbnZhc19jdHhfPUR5Z3JhcGguZ2V0Q29udGV4dCh0aGlzLmJnY2FudmFzXyksdGhpcy5mZ2NhbnZhc189RHlncmFwaC5jcmVhdGVDYW52YXMoKSx0aGlzLmZnY2FudmFzXy5jbGFzc05hbWU9ImR5Z3JhcGgtcmFuZ2VzZWwtZmdjYW52YXMiLHRoaXMuZmdjYW52YXNfLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsdGhpcy5mZ2NhbnZhc18uc3R5bGUuekluZGV4PTksdGhpcy5mZ2NhbnZhc18uc3R5bGUuY3Vyc29yPSJkZWZhdWx0Iix0aGlzLmZnY2FudmFzX2N0eF89RHlncmFwaC5nZXRDb250ZXh0KHRoaXMuZmdjYW52YXNfKX0sdC5wcm90b3R5cGUuY3JlYXRlSUVQYW5PdmVybGF5Xz1mdW5jdGlvbigpe3RoaXMuaWVQYW5PdmVybGF5Xz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLmllUGFuT3ZlcmxheV8uc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0aGlzLmllUGFuT3ZlcmxheV8uc3R5bGUuYmFja2dyb3VuZENvbG9yPSJ3aGl0ZSIsdGhpcy5pZVBhbk92ZXJsYXlfLnN0eWxlLmZpbHRlcj0iYWxwaGEob3BhY2l0eT0wKSIsdGhpcy5pZVBhbk92ZXJsYXlfLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMuaWVQYW5PdmVybGF5Xy5zdHlsZS5jdXJzb3I9Im1vdmUiLHRoaXMuZmdjYW52YXNfLmFwcGVuZENoaWxkKHRoaXMuaWVQYW5PdmVybGF5Xyl9LHQucHJvdG90eXBlLmNyZWF0ZVpvb21IYW5kbGVzXz1mdW5jdGlvbigpe3ZhciB0PW5ldyBJbWFnZTt0LmNsYXNzTmFtZT0iZHlncmFwaC1yYW5nZXNlbC16b29taGFuZGxlIix0LnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsdC5zdHlsZS56SW5kZXg9MTAsdC5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iLHQuc3R5bGUuY3Vyc29yPSJjb2wtcmVzaXplIiwvTVNJRSA3Ly50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpPyh0LndpZHRoPTcsdC5oZWlnaHQ9MTQsdC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9IndoaXRlIix0LnN0eWxlLmJvcmRlcj0iMXB4IHNvbGlkICMzMzMzMzMiKToodC53aWR0aD05LHQuaGVpZ2h0PTE2LHQuc3JjPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFrQUFBQVFDQVlBQUFERVNGVkRBQUFBQVhOU1IwSUFyczRjNlFBQUFBWmlTMGRFQU5BQXp3RFA0WjdLZWdBQUFBbHdTRmx6QUFBT3hBQUFEc1FCbFNzT0d3QUFBQWQwU1UxRkI5c0hHdzBjTXFkdDFVd0FBQUFaZEVWWWRFTnZiVzFsYm5RQVEzSmxZWFJsWkNCM2FYUm9JRWRKVFZCWGdRNFhBQUFBYUVsRVFWUW96KzNTc1JGQVFCQ0Y0WjlXSk04S0NEVndvd25sNllYc1RtQ1VzeUtHa1p6Y2w3emt6M1lMa3lwZ0FucmVGbURFcEhrSXdWT01mcGRpOUNFRU4ybkdwRmR3RDAzeUVxRHRPZ0NhdW43c3FTVERIMzJJMXBRQTJQYjlzWmVjQXhjNXIzSUFiMjFkNjg3OHhzQUFBQUFBU1VWT1JLNUNZSUk9IiksdGhpcy5pc01vYmlsZURldmljZV8mJih0LndpZHRoKj0yLHQuaGVpZ2h0Kj0yKSx0aGlzLmxlZnRab29tSGFuZGxlXz10LHRoaXMucmlnaHRab29tSGFuZGxlXz10LmNsb25lTm9kZSghMSl9LHQucHJvdG90eXBlLmluaXRJbnRlcmFjdGlvbl89ZnVuY3Rpb24oKXt2YXIgdCxlLGEsaSxyLG4sbyxzLGwsaCxwLGcsZCx1LGM9dGhpcyx5PWRvY3VtZW50LF89MCx2PW51bGwsZj0hMSx4PSExLG09IXRoaXMuaXNNb2JpbGVEZXZpY2VfJiYhdGhpcy5pc1VzaW5nRXhjYW52YXNfLEQ9bmV3IER5Z3JhcGguSUZyYW1lVGFycDt0PWZ1bmN0aW9uKHQpe3ZhciBlPWMuZHlncmFwaF8ueEF4aXNFeHRyZW1lcygpLGE9KGVbMV0tZVswXSkvYy5jYW52YXNSZWN0Xy53LGk9ZVswXSsodC5sZWZ0SGFuZGxlUG9zLWMuY2FudmFzUmVjdF8ueCkqYSxyPWVbMF0rKHQucmlnaHRIYW5kbGVQb3MtYy5jYW52YXNSZWN0Xy54KSphO3JldHVybltpLHJdfSxlPWZ1bmN0aW9uKHQpe3JldHVybiBEeWdyYXBoLmNhbmNlbEV2ZW50KHQpLGY9ITAsXz10LmNsaWVudFgsdj10LnRhcmdldD90LnRhcmdldDp0LnNyY0VsZW1lbnQsKCJtb3VzZWRvd24iPT09dC50eXBlfHwiZHJhZ3N0YXJ0Ij09PXQudHlwZSkmJihEeWdyYXBoLmFkZEV2ZW50KHksIm1vdXNlbW92ZSIsYSksRHlncmFwaC5hZGRFdmVudCh5LCJtb3VzZXVwIixpKSksYy5mZ2NhbnZhc18uc3R5bGUuY3Vyc29yPSJjb2wtcmVzaXplIixELmNvdmVyKCksITB9LGE9ZnVuY3Rpb24odCl7aWYoIWYpcmV0dXJuITE7RHlncmFwaC5jYW5jZWxFdmVudCh0KTt2YXIgZT10LmNsaWVudFgtXztpZihNYXRoLmFicyhlKTw0KXJldHVybiEwO189dC5jbGllbnRYO3ZhciBhLGk9Yy5nZXRab29tSGFuZGxlU3RhdHVzXygpO3Y9PWMubGVmdFpvb21IYW5kbGVfPyhhPWkubGVmdEhhbmRsZVBvcytlLGE9TWF0aC5taW4oYSxpLnJpZ2h0SGFuZGxlUG9zLXYud2lkdGgtMyksYT1NYXRoLm1heChhLGMuY2FudmFzUmVjdF8ueCkpOihhPWkucmlnaHRIYW5kbGVQb3MrZSxhPU1hdGgubWluKGEsYy5jYW52YXNSZWN0Xy54K2MuY2FudmFzUmVjdF8udyksYT1NYXRoLm1heChhLGkubGVmdEhhbmRsZVBvcyt2LndpZHRoKzMpKTt2YXIgbj12LndpZHRoLzI7cmV0dXJuIHYuc3R5bGUubGVmdD1hLW4rInB4IixjLmRyYXdJbnRlcmFjdGl2ZUxheWVyXygpLG0mJnIoKSwhMH0saT1mdW5jdGlvbih0KXtyZXR1cm4gZj8oZj0hMSxELnVuY292ZXIoKSxEeWdyYXBoLnJlbW92ZUV2ZW50KHksIm1vdXNlbW92ZSIsYSksRHlncmFwaC5yZW1vdmVFdmVudCh5LCJtb3VzZXVwIixpKSxjLmZnY2FudmFzXy5zdHlsZS5jdXJzb3I9ImRlZmF1bHQiLG18fHIoKSwhMCk6ITF9LHI9ZnVuY3Rpb24oKXt0cnl7dmFyIGU9Yy5nZXRab29tSGFuZGxlU3RhdHVzXygpO2lmKGMuaXNDaGFuZ2luZ1JhbmdlXz0hMCxlLmlzWm9vbWVkKXt2YXIgYT10KGUpO2MuZHlncmFwaF8uZG9ab29tWERhdGVzXyhhWzBdLGFbMV0pfWVsc2UgYy5keWdyYXBoXy5yZXNldFpvb20oKX1maW5hbGx5e2MuaXNDaGFuZ2luZ1JhbmdlXz0hMX19LG49ZnVuY3Rpb24odCl7aWYoYy5pc1VzaW5nRXhjYW52YXNfKXJldHVybiB0LnNyY0VsZW1lbnQ9PWMuaWVQYW5PdmVybGF5Xzt2YXIgZT1jLmxlZnRab29tSGFuZGxlXy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhPWUubGVmdCtlLndpZHRoLzI7ZT1jLnJpZ2h0Wm9vbUhhbmRsZV8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dmFyIGk9ZS5sZWZ0K2Uud2lkdGgvMjtyZXR1cm4gdC5jbGllbnRYPmEmJnQuY2xpZW50WDxpfSxvPWZ1bmN0aW9uKHQpe3JldHVybiF4JiZuKHQpJiZjLmdldFpvb21IYW5kbGVTdGF0dXNfKCkuaXNab29tZWQ/KER5Z3JhcGguY2FuY2VsRXZlbnQodCkseD0hMCxfPXQuY2xpZW50WCwibW91c2Vkb3duIj09PXQudHlwZSYmKER5Z3JhcGguYWRkRXZlbnQoeSwibW91c2Vtb3ZlIixzKSxEeWdyYXBoLmFkZEV2ZW50KHksIm1vdXNldXAiLGwpKSwhMCk6ITF9LHM9ZnVuY3Rpb24odCl7aWYoIXgpcmV0dXJuITE7RHlncmFwaC5jYW5jZWxFdmVudCh0KTt2YXIgZT10LmNsaWVudFgtXztpZihNYXRoLmFicyhlKTw0KXJldHVybiEwO189dC5jbGllbnRYO3ZhciBhPWMuZ2V0Wm9vbUhhbmRsZVN0YXR1c18oKSxpPWEubGVmdEhhbmRsZVBvcyxyPWEucmlnaHRIYW5kbGVQb3Msbj1yLWk7aStlPD1jLmNhbnZhc1JlY3RfLng/KGk9Yy5jYW52YXNSZWN0Xy54LHI9aStuKTpyK2U+PWMuY2FudmFzUmVjdF8ueCtjLmNhbnZhc1JlY3RfLnc/KHI9Yy5jYW52YXNSZWN0Xy54K2MuY2FudmFzUmVjdF8udyxpPXItbik6KGkrPWUscis9ZSk7dmFyIG89Yy5sZWZ0Wm9vbUhhbmRsZV8ud2lkdGgvMjtyZXR1cm4gYy5sZWZ0Wm9vbUhhbmRsZV8uc3R5bGUubGVmdD1pLW8rInB4IixjLnJpZ2h0Wm9vbUhhbmRsZV8uc3R5bGUubGVmdD1yLW8rInB4IixjLmRyYXdJbnRlcmFjdGl2ZUxheWVyXygpLG0mJmgoKSwhMH0sbD1mdW5jdGlvbih0KXtyZXR1cm4geD8oeD0hMSxEeWdyYXBoLnJlbW92ZUV2ZW50KHksIm1vdXNlbW92ZSIscyksRHlncmFwaC5yZW1vdmVFdmVudCh5LCJtb3VzZXVwIixsKSxtfHxoKCksITApOiExfSxoPWZ1bmN0aW9uKCl7dHJ5e2MuaXNDaGFuZ2luZ1JhbmdlXz0hMCxjLmR5Z3JhcGhfLmRhdGVXaW5kb3dfPXQoYy5nZXRab29tSGFuZGxlU3RhdHVzXygpKSxjLmR5Z3JhcGhfLmRyYXdHcmFwaF8oITEpfWZpbmFsbHl7Yy5pc0NoYW5naW5nUmFuZ2VfPSExfX0scD1mdW5jdGlvbih0KXtpZighZiYmIXgpe3ZhciBlPW4odCk/Im1vdmUiOiJkZWZhdWx0IjtlIT1jLmZnY2FudmFzXy5zdHlsZS5jdXJzb3ImJihjLmZnY2FudmFzXy5zdHlsZS5jdXJzb3I9ZSl9fSxnPWZ1bmN0aW9uKHQpeyJ0b3VjaHN0YXJ0Ij09dC50eXBlJiYxPT10LnRhcmdldFRvdWNoZXMubGVuZ3RoP2UodC50YXJnZXRUb3VjaGVzWzBdKSYmRHlncmFwaC5jYW5jZWxFdmVudCh0KToidG91Y2htb3ZlIj09dC50eXBlJiYxPT10LnRhcmdldFRvdWNoZXMubGVuZ3RoP2EodC50YXJnZXRUb3VjaGVzWzBdKSYmRHlncmFwaC5jYW5jZWxFdmVudCh0KTppKHQpfSxkPWZ1bmN0aW9uKHQpeyJ0b3VjaHN0YXJ0Ij09dC50eXBlJiYxPT10LnRhcmdldFRvdWNoZXMubGVuZ3RoP28odC50YXJnZXRUb3VjaGVzWzBdKSYmRHlncmFwaC5jYW5jZWxFdmVudCh0KToidG91Y2htb3ZlIj09dC50eXBlJiYxPT10LnRhcmdldFRvdWNoZXMubGVuZ3RoP3ModC50YXJnZXRUb3VjaGVzWzBdKSYmRHlncmFwaC5jYW5jZWxFdmVudCh0KTpsKHQpfSx1PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBhPVsidG91Y2hzdGFydCIsInRvdWNoZW5kIiwidG91Y2htb3ZlIiwidG91Y2hjYW5jZWwiXSxpPTA7aTxhLmxlbmd0aDtpKyspYy5keWdyYXBoXy5hZGRBbmRUcmFja0V2ZW50KHQsYVtpXSxlKX0sdGhpcy5zZXREZWZhdWx0T3B0aW9uXygiaW50ZXJhY3Rpb25Nb2RlbCIsRHlncmFwaC5JbnRlcmFjdGlvbi5kcmFnSXNQYW5JbnRlcmFjdGlvbk1vZGVsKSx0aGlzLnNldERlZmF1bHRPcHRpb25fKCJwYW5FZGdlRnJhY3Rpb24iLDFlLTQpO3ZhciB3PXdpbmRvdy5vcGVyYT8ibW91c2Vkb3duIjoiZHJhZ3N0YXJ0Ijt0aGlzLmR5Z3JhcGhfLmFkZEFuZFRyYWNrRXZlbnQodGhpcy5sZWZ0Wm9vbUhhbmRsZV8sdyxlKSx0aGlzLmR5Z3JhcGhfLmFkZEFuZFRyYWNrRXZlbnQodGhpcy5yaWdodFpvb21IYW5kbGVfLHcsZSksdGhpcy5pc1VzaW5nRXhjYW52YXNfP3RoaXMuZHlncmFwaF8uYWRkQW5kVHJhY2tFdmVudCh0aGlzLmllUGFuT3ZlcmxheV8sIm1vdXNlZG93biIsbyk6KHRoaXMuZHlncmFwaF8uYWRkQW5kVHJhY2tFdmVudCh0aGlzLmZnY2FudmFzXywibW91c2Vkb3duIixvKSx0aGlzLmR5Z3JhcGhfLmFkZEFuZFRyYWNrRXZlbnQodGhpcy5mZ2NhbnZhc18sIm1vdXNlbW92ZSIscCkpLHRoaXMuaGFzVG91Y2hJbnRlcmZhY2VfJiYodSh0aGlzLmxlZnRab29tSGFuZGxlXyxnKSx1KHRoaXMucmlnaHRab29tSGFuZGxlXyxnKSx1KHRoaXMuZmdjYW52YXNfLGQpKX0sdC5wcm90b3R5cGUuZHJhd1N0YXRpY0xheWVyXz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuYmdjYW52YXNfY3R4Xzt0LmNsZWFyUmVjdCgwLDAsdGhpcy5jYW52YXNSZWN0Xy53LHRoaXMuY2FudmFzUmVjdF8uaCk7dHJ5e3RoaXMuZHJhd01pbmlQbG90XygpfWNhdGNoKGUpe2NvbnNvbGUud2FybihlKX12YXIgYT0uNTt0aGlzLmJnY2FudmFzX2N0eF8ubGluZVdpZHRoPTEsdC5zdHJva2VTdHlsZT0iZ3JheSIsdC5iZWdpblBhdGgoKSx0Lm1vdmVUbyhhLGEpLHQubGluZVRvKGEsdGhpcy5jYW52YXNSZWN0Xy5oLWEpLHQubGluZVRvKHRoaXMuY2FudmFzUmVjdF8udy1hLHRoaXMuY2FudmFzUmVjdF8uaC1hKSx0LmxpbmVUbyh0aGlzLmNhbnZhc1JlY3RfLnctYSxhKSx0LnN0cm9rZSgpfSx0LnByb3RvdHlwZS5kcmF3TWluaVBsb3RfPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5nZXRPcHRpb25fKCJyYW5nZVNlbGVjdG9yUGxvdEZpbGxDb2xvciIpLGU9dGhpcy5nZXRPcHRpb25fKCJyYW5nZVNlbGVjdG9yUGxvdFN0cm9rZUNvbG9yIik7aWYodHx8ZSl7dmFyIGE9dGhpcy5nZXRPcHRpb25fKCJzdGVwUGxvdCIpLGk9dGhpcy5jb21wdXRlQ29tYmluZWRTZXJpZXNBbmRMaW1pdHNfKCkscj1pLnlNYXgtaS55TWluLG49dGhpcy5iZ2NhbnZhc19jdHhfLG89LjUscz10aGlzLmR5Z3JhcGhfLnhBeGlzRXh0cmVtZXMoKSxsPU1hdGgubWF4KHNbMV0tc1swXSwxZS0zMCksaD0odGhpcy5jYW52YXNSZWN0Xy53LW8pL2wscD0odGhpcy5jYW52YXNSZWN0Xy5oLW8pL3IsZz10aGlzLmNhbnZhc1JlY3RfLnctbyxkPXRoaXMuY2FudmFzUmVjdF8uaC1vLHU9bnVsbCxjPW51bGw7bi5iZWdpblBhdGgoKSxuLm1vdmVUbyhvLGQpO2Zvcih2YXIgeT0wO3k8aS5kYXRhLmxlbmd0aDt5Kyspe3ZhciBfPWkuZGF0YVt5XSx2PW51bGwhPT1fWzBdPyhfWzBdLXNbMF0pKmg6MC8wLGY9bnVsbCE9PV9bMV0/ZC0oX1sxXS1pLnlNaW4pKnA6MC8wOyhhfHxudWxsPT09dXx8TWF0aC5yb3VuZCh2KSE9TWF0aC5yb3VuZCh1KSkmJihpc0Zpbml0ZSh2KSYmaXNGaW5pdGUoZik/KG51bGw9PT11P24ubGluZVRvKHYsZCk6YSYmbi5saW5lVG8odixjKSxuLmxpbmVUbyh2LGYpLHU9dixjPWYpOihudWxsIT09dSYmKGE/KG4ubGluZVRvKHYsYyksbi5saW5lVG8odixkKSk6bi5saW5lVG8odSxkKSksdT1jPW51bGwpKX1pZihuLmxpbmVUbyhnLGQpLG4uY2xvc2VQYXRoKCksdCl7dmFyIHg9dGhpcy5iZ2NhbnZhc19jdHhfLmNyZWF0ZUxpbmVhckdyYWRpZW50KDAsMCwwLGQpO3guYWRkQ29sb3JTdG9wKDAsIndoaXRlIikseC5hZGRDb2xvclN0b3AoMSx0KSx0aGlzLmJnY2FudmFzX2N0eF8uZmlsbFN0eWxlPXgsbi5maWxsKCl9ZSYmKHRoaXMuYmdjYW52YXNfY3R4Xy5zdHJva2VTdHlsZT1lLHRoaXMuYmdjYW52YXNfY3R4Xy5saW5lV2lkdGg9MS41LG4uc3Ryb2tlKCkpfX0sdC5wcm90b3R5cGUuY29tcHV0ZUNvbWJpbmVkU2VyaWVzQW5kTGltaXRzXz1mdW5jdGlvbigpe3ZhciB0LGU9dGhpcy5keWdyYXBoXyxhPXRoaXMuZ2V0T3B0aW9uXygibG9nc2NhbGUiKSxpPWUubnVtQ29sdW1ucygpLHI9ZS5nZXRMYWJlbHMoKSxuPW5ldyBBcnJheShpKSxvPSExO2Zvcih0PTE7aT50O3QrKyl7dmFyIHM9dGhpcy5nZXRPcHRpb25fKCJzaG93SW5SYW5nZVNlbGVjdG9yIixyW3RdKTtuW3RdPXMsbnVsbCE9PXMmJihvPSEwKX1pZighbylmb3IodD0wO3Q8bi5sZW5ndGg7dCsrKW5bdF09ITA7dmFyIGw9W10saD1lLmRhdGFIYW5kbGVyXyxwPWUuYXR0cmlidXRlc187Zm9yKHQ9MTt0PGUubnVtQ29sdW1ucygpO3QrKylpZihuW3RdKXt2YXIgZz1oLmV4dHJhY3RTZXJpZXMoZS5yYXdEYXRhXyx0LHApO2Uucm9sbFBlcmlvZCgpPjEmJihnPWgucm9sbGluZ0F2ZXJhZ2UoZyxlLnJvbGxQZXJpb2QoKSxwKSksbC5wdXNoKGcpfXZhciBkPVtdO2Zvcih0PTA7dDxsWzBdLmxlbmd0aDt0Kyspe2Zvcih2YXIgdT0wLGM9MCx5PTA7eTxsLmxlbmd0aDt5Kyspe3ZhciBfPWxbeV1bdF1bMV07bnVsbD09PV98fGlzTmFOKF8pfHwoYysrLHUrPV8pfWQucHVzaChbbFswXVt0XVswXSx1L2NdKX12YXIgdj1OdW1iZXIuTUFYX1ZBTFVFLGY9LU51bWJlci5NQVhfVkFMVUU7Zm9yKHQ9MDt0PGQubGVuZ3RoO3QrKyl7dmFyIHg9ZFt0XVsxXTtudWxsIT09eCYmaXNGaW5pdGUoeCkmJighYXx8eD4wKSYmKHY9TWF0aC5taW4odix4KSxmPU1hdGgubWF4KGYseCkpfXZhciBtPS4yNTtpZihhKWZvcihmPUR5Z3JhcGgubG9nMTAoZiksZis9ZiptLHY9RHlncmFwaC5sb2cxMCh2KSx0PTA7dDxkLmxlbmd0aDt0KyspZFt0XVsxXT1EeWdyYXBoLmxvZzEwKGRbdF1bMV0pO2Vsc2V7dmFyIEQsdz1mLXY7RD13PD1OdW1iZXIuTUlOX1ZBTFVFP2YqbTp3Km0sZis9RCx2LT1EfXJldHVybntkYXRhOmQseU1pbjp2LHlNYXg6Zn19LHQucHJvdG90eXBlLnBsYWNlWm9vbUhhbmRsZXNfPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5keWdyYXBoXy54QXhpc0V4dHJlbWVzKCksZT10aGlzLmR5Z3JhcGhfLnhBeGlzUmFuZ2UoKSxhPXRbMV0tdFswXSxpPU1hdGgubWF4KDAsKGVbMF0tdFswXSkvYSkscj1NYXRoLm1heCgwLCh0WzFdLWVbMV0pL2EpLG49dGhpcy5jYW52YXNSZWN0Xy54K3RoaXMuY2FudmFzUmVjdF8udyppLG89dGhpcy5jYW52YXNSZWN0Xy54K3RoaXMuY2FudmFzUmVjdF8udyooMS1yKSxzPU1hdGgubWF4KHRoaXMuY2FudmFzUmVjdF8ueSx0aGlzLmNhbnZhc1JlY3RfLnkrKHRoaXMuY2FudmFzUmVjdF8uaC10aGlzLmxlZnRab29tSGFuZGxlXy5oZWlnaHQpLzIpLGw9dGhpcy5sZWZ0Wm9vbUhhbmRsZV8ud2lkdGgvMjt0aGlzLmxlZnRab29tSGFuZGxlXy5zdHlsZS5sZWZ0PW4tbCsicHgiLHRoaXMubGVmdFpvb21IYW5kbGVfLnN0eWxlLnRvcD1zKyJweCIsdGhpcy5yaWdodFpvb21IYW5kbGVfLnN0eWxlLmxlZnQ9by1sKyJweCIsdGhpcy5yaWdodFpvb21IYW5kbGVfLnN0eWxlLnRvcD10aGlzLmxlZnRab29tSGFuZGxlXy5zdHlsZS50b3AsdGhpcy5sZWZ0Wm9vbUhhbmRsZV8uc3R5bGUudmlzaWJpbGl0eT0idmlzaWJsZSIsdGhpcy5yaWdodFpvb21IYW5kbGVfLnN0eWxlLnZpc2liaWxpdHk9InZpc2libGUifSx0LnByb3RvdHlwZS5kcmF3SW50ZXJhY3RpdmVMYXllcl89ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmZnY2FudmFzX2N0eF87dC5jbGVhclJlY3QoMCwwLHRoaXMuY2FudmFzUmVjdF8udyx0aGlzLmNhbnZhc1JlY3RfLmgpO3ZhciBlPTEsYT10aGlzLmNhbnZhc1JlY3RfLnctZSxpPXRoaXMuY2FudmFzUmVjdF8uaC1lLHI9dGhpcy5nZXRab29tSGFuZGxlU3RhdHVzXygpO2lmKHQuc3Ryb2tlU3R5bGU9ImJsYWNrIixyLmlzWm9vbWVkKXt2YXIgbj1NYXRoLm1heChlLHIubGVmdEhhbmRsZVBvcy10aGlzLmNhbnZhc1JlY3RfLngpLG89TWF0aC5taW4oYSxyLnJpZ2h0SGFuZGxlUG9zLXRoaXMuY2FudmFzUmVjdF8ueCk7dC5maWxsU3R5bGU9InJnYmEoMjQwLCAyNDAsIDI0MCwgMC42KSIsdC5maWxsUmVjdCgwLDAsbix0aGlzLmNhbnZhc1JlY3RfLmgpLHQuZmlsbFJlY3QobywwLHRoaXMuY2FudmFzUmVjdF8udy1vLHRoaXMuY2FudmFzUmVjdF8uaCksdC5iZWdpblBhdGgoKSx0Lm1vdmVUbyhlLGUpLHQubGluZVRvKG4sZSksdC5saW5lVG8obixpKSx0LmxpbmVUbyhvLGkpLHQubGluZVRvKG8sZSksdC5saW5lVG8oYSxlKSx0LnN0cm9rZSgpLHRoaXMuaXNVc2luZ0V4Y2FudmFzXyYmKHRoaXMuaWVQYW5PdmVybGF5Xy5zdHlsZS53aWR0aD1vLW4rInB4Iix0aGlzLmllUGFuT3ZlcmxheV8uc3R5bGUubGVmdD1uKyJweCIsdGhpcy5pZVBhbk92ZXJsYXlfLnN0eWxlLmhlaWdodD1pKyJweCIsdGhpcy5pZVBhbk92ZXJsYXlfLnN0eWxlLmRpc3BsYXk9ImlubGluZSIpfWVsc2UgdC5iZWdpblBhdGgoKSx0Lm1vdmVUbyhlLGUpLHQubGluZVRvKGUsaSksdC5saW5lVG8oYSxpKSx0LmxpbmVUbyhhLGUpLHQuc3Ryb2tlKCksdGhpcy5pZVBhbk92ZXJsYXlfJiYodGhpcy5pZVBhbk92ZXJsYXlfLnN0eWxlLmRpc3BsYXk9Im5vbmUiKX0sdC5wcm90b3R5cGUuZ2V0Wm9vbUhhbmRsZVN0YXR1c189ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmxlZnRab29tSGFuZGxlXy53aWR0aC8yLGU9cGFyc2VGbG9hdCh0aGlzLmxlZnRab29tSGFuZGxlXy5zdHlsZS5sZWZ0KSt0LGE9cGFyc2VGbG9hdCh0aGlzLnJpZ2h0Wm9vbUhhbmRsZV8uc3R5bGUubGVmdCkrdDtyZXR1cm57bGVmdEhhbmRsZVBvczplLHJpZ2h0SGFuZGxlUG9zOmEsaXNab29tZWQ6ZS0xPnRoaXMuY2FudmFzUmVjdF8ueHx8YSsxPHRoaXMuY2FudmFzUmVjdF8ueCt0aGlzLmNhbnZhc1JlY3RfLnd9fSx0fSgpLER5Z3JhcGguUExVR0lOUy5wdXNoKER5Z3JhcGguUGx1Z2lucy5MZWdlbmQsRHlncmFwaC5QbHVnaW5zLkF4ZXMsRHlncmFwaC5QbHVnaW5zLlJhbmdlU2VsZWN0b3IsRHlncmFwaC5QbHVnaW5zLkNoYXJ0TGFiZWxzLER5Z3JhcGguUGx1Z2lucy5Bbm5vdGF0aW9ucyxEeWdyYXBoLlBsdWdpbnMuR3JpZCksRHlncmFwaC5EYXRhSGFuZGxlcj1mdW5jdGlvbigpe30sRHlncmFwaC5EYXRhSGFuZGxlcnM9e30sZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIHQ9RHlncmFwaC5EYXRhSGFuZGxlcjt0Llg9MCx0Llk9MSx0LkVYVFJBUz0yLHQucHJvdG90eXBlLmV4dHJhY3RTZXJpZXM9ZnVuY3Rpb24odCxlLGEpe30sdC5wcm90b3R5cGUuc2VyaWVzVG9Qb2ludHM9ZnVuY3Rpb24oZSxhLGkpe2Zvcih2YXIgcj1bXSxuPTA7bjxlLmxlbmd0aDsrK24pe3ZhciBvPWVbbl0scz1vWzFdLGw9bnVsbD09PXM/bnVsbDp0LnBhcnNlRmxvYXQocyksaD17eDowLzAseTowLzAseHZhbDp0LnBhcnNlRmxvYXQob1swXSkseXZhbDpsLG5hbWU6YSxpZHg6bitpfTtyLnB1c2goaCl9cmV0dXJuIHRoaXMub25Qb2ludHNDcmVhdGVkXyhlLHIpLHJ9LHQucHJvdG90eXBlLm9uUG9pbnRzQ3JlYXRlZF89ZnVuY3Rpb24odCxlKXt9LHQucHJvdG90eXBlLnJvbGxpbmdBdmVyYWdlPWZ1bmN0aW9uKHQsZSxhKXt9LHQucHJvdG90eXBlLmdldEV4dHJlbWVZVmFsdWVzPWZ1bmN0aW9uKHQsZSxhKXt9LHQucHJvdG90eXBlLm9uTGluZUV2YWx1YXRlZD1mdW5jdGlvbih0LGUsYSl7fSx0LnByb3RvdHlwZS5jb21wdXRlWUludGVycG9sYXRpb25fPWZ1bmN0aW9uKHQsZSxhKXt2YXIgaT1lWzFdLXRbMV0scj1lWzBdLXRbMF0sbj1pL3Isbz0oYS10WzBdKSpuO3JldHVybiB0WzFdK299LHQucHJvdG90eXBlLmdldEluZGV4ZXNJbldpbmRvd189ZnVuY3Rpb24odCxlKXt2YXIgYT0wLGk9dC5sZW5ndGgtMTtpZihlKXtmb3IodmFyIHI9MCxuPWVbMF0sbz1lWzFdO3I8dC5sZW5ndGgtMSYmdFtyXVswXTxuOylhKysscisrO2ZvcihyPXQubGVuZ3RoLTE7cj4wJiZ0W3JdWzBdPm87KWktLSxyLS19cmV0dXJuIGk+PWE/W2EsaV06WzAsdC5sZW5ndGgtMV19LHQucGFyc2VGbG9hdD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09PXQ/MC8wOnR9fSgpLGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO0R5Z3JhcGguRGF0YUhhbmRsZXJzLkRlZmF1bHRIYW5kbGVyPWZ1bmN0aW9uKCl7fTt2YXIgdD1EeWdyYXBoLkRhdGFIYW5kbGVycy5EZWZhdWx0SGFuZGxlcjt0LnByb3RvdHlwZT1uZXcgRHlncmFwaC5EYXRhSGFuZGxlcix0LnByb3RvdHlwZS5leHRyYWN0U2VyaWVzPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGk9W10scj1hLmdldCgibG9nc2NhbGUiKSxuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBvPXRbbl1bMF0scz10W25dW2VdO3ImJjA+PXMmJihzPW51bGwpLGkucHVzaChbbyxzXSl9cmV0dXJuIGl9LHQucHJvdG90eXBlLnJvbGxpbmdBdmVyYWdlPWZ1bmN0aW9uKHQsZSxhKXtlPU1hdGgubWluKGUsdC5sZW5ndGgpO3ZhciBpLHIsbixvLHMsbD1bXTtpZigxPT1lKXJldHVybiB0O2ZvcihpPTA7aTx0Lmxlbmd0aDtpKyspe2ZvcihvPTAscz0wLHI9TWF0aC5tYXgoMCxpLWUrMSk7aSsxPnI7cisrKW49dFtyXVsxXSxudWxsPT09bnx8aXNOYU4obil8fChzKyssbys9dFtyXVsxXSk7cz9sW2ldPVt0W2ldWzBdLG8vc106bFtpXT1bdFtpXVswXSxudWxsXX1yZXR1cm4gbH0sdC5wcm90b3R5cGUuZ2V0RXh0cmVtZVlWYWx1ZXM9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaSxyPW51bGwsbj1udWxsLG89MCxzPXQubGVuZ3RoLTEsbD1vO3M+PWw7bCsrKWk9dFtsXVsxXSxudWxsPT09aXx8aXNOYU4oaSl8fCgobnVsbD09PW58fGk+bikmJihuPWkpLChudWxsPT09cnx8cj5pKSYmKHI9aSkpO3JldHVybltyLG5dfX0oKSxmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtEeWdyYXBoLkRhdGFIYW5kbGVycy5EZWZhdWx0RnJhY3Rpb25IYW5kbGVyPWZ1bmN0aW9uKCl7fTt2YXIgdD1EeWdyYXBoLkRhdGFIYW5kbGVycy5EZWZhdWx0RnJhY3Rpb25IYW5kbGVyO3QucHJvdG90eXBlPW5ldyBEeWdyYXBoLkRhdGFIYW5kbGVycy5EZWZhdWx0SGFuZGxlcix0LnByb3RvdHlwZS5leHRyYWN0U2VyaWVzPWZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIGkscixuLG8scyxsLGg9W10scD0xMDAsZz1hLmdldCgibG9nc2NhbGUiKSxkPTA7ZDx0Lmxlbmd0aDtkKyspaT10W2RdWzBdLG49dFtkXVtlXSxnJiZudWxsIT09biYmKG5bMF08PTB8fG5bMV08PTApJiYobj1udWxsKSxudWxsIT09bj8obz1uWzBdLHM9blsxXSxudWxsPT09b3x8aXNOYU4obyk/aC5wdXNoKFtpLG8sW28sc11dKToobD1zP28vczowLHI9cCpsLGgucHVzaChbaSxyLFtvLHNdXSkpKTpoLnB1c2goW2ksbnVsbCxbbnVsbCxudWxsXV0pO3JldHVybiBofSx0LnByb3RvdHlwZS5yb2xsaW5nQXZlcmFnZT1mdW5jdGlvbih0LGUsYSl7ZT1NYXRoLm1pbihlLHQubGVuZ3RoKTt2YXIgaSxyPVtdLG49MCxvPTAscz0xMDA7Zm9yKGk9MDtpPHQubGVuZ3RoO2krKyl7bis9dFtpXVsyXVswXSxvKz10W2ldWzJdWzFdLGktZT49MCYmKG4tPXRbaS1lXVsyXVswXSxvLT10W2ktZV1bMl1bMV0pO3ZhciBsPXRbaV1bMF0saD1vP24vbzowO3JbaV09W2wscypoXX1yZXR1cm4gcn19KCksZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7RHlncmFwaC5EYXRhSGFuZGxlcnMuQmFyc0hhbmRsZXI9ZnVuY3Rpb24oKXtEeWdyYXBoLkRhdGFIYW5kbGVyLmNhbGwodGhpcyl9LER5Z3JhcGguRGF0YUhhbmRsZXJzLkJhcnNIYW5kbGVyLnByb3RvdHlwZT1uZXcgRHlncmFwaC5EYXRhSGFuZGxlcjt2YXIgdD1EeWdyYXBoLkRhdGFIYW5kbGVycy5CYXJzSGFuZGxlcjt0LnByb3RvdHlwZS5leHRyYWN0U2VyaWVzPWZ1bmN0aW9uKHQsZSxhKXt9LHQucHJvdG90eXBlLnJvbGxpbmdBdmVyYWdlPWZ1bmN0aW9uKHQsZSxhKXt9LHQucHJvdG90eXBlLm9uUG9pbnRzQ3JlYXRlZF89ZnVuY3Rpb24odCxlKXtmb3IodmFyIGE9MDthPHQubGVuZ3RoOysrYSl7dmFyIGk9dFthXSxyPWVbYV07ci55X3RvcD0wLzAsci55X2JvdHRvbT0wLzAsci55dmFsX21pbnVzPUR5Z3JhcGguRGF0YUhhbmRsZXIucGFyc2VGbG9hdChpWzJdWzBdKSxyLnl2YWxfcGx1cz1EeWdyYXBoLkRhdGFIYW5kbGVyLnBhcnNlRmxvYXQoaVsyXVsxXSl9fSx0LnByb3RvdHlwZS5nZXRFeHRyZW1lWVZhbHVlcz1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpLHI9bnVsbCxuPW51bGwsbz0wLHM9dC5sZW5ndGgtMSxsPW87cz49bDtsKyspaWYoaT10W2xdWzFdLG51bGwhPT1pJiYhaXNOYU4oaSkpe3ZhciBoPXRbbF1bMl1bMF0scD10W2xdWzJdWzFdO2g+aSYmKGg9aSksaT5wJiYocD1pKSwobnVsbD09PW58fHA+bikmJihuPXApLChudWxsPT09cnx8cj5oKSYmKHI9aCl9cmV0dXJuW3Isbl19LHQucHJvdG90eXBlLm9uTGluZUV2YWx1YXRlZD1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpLHI9MDtyPHQubGVuZ3RoO3IrKylpPXRbcl0saS55X3RvcD1EeWdyYXBoTGF5b3V0LmNhbGNZTm9ybWFsXyhlLGkueXZhbF9taW51cyxhKSxpLnlfYm90dG9tPUR5Z3JhcGhMYXlvdXQuY2FsY1lOb3JtYWxfKGUsaS55dmFsX3BsdXMsYSl9fSgpLGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO0R5Z3JhcGguRGF0YUhhbmRsZXJzLkN1c3RvbUJhcnNIYW5kbGVyPWZ1bmN0aW9uKCl7fTt2YXIgdD1EeWdyYXBoLkRhdGFIYW5kbGVycy5DdXN0b21CYXJzSGFuZGxlcjt0LnByb3RvdHlwZT1uZXcgRHlncmFwaC5EYXRhSGFuZGxlcnMuQmFyc0hhbmRsZXIsdC5wcm90b3R5cGUuZXh0cmFjdFNlcmllcz1mdW5jdGlvbih0LGUsYSl7Zm9yKHZhciBpLHIsbixvPVtdLHM9YS5nZXQoImxvZ3NjYWxlIiksbD0wO2w8dC5sZW5ndGg7bCsrKWk9dFtsXVswXSxuPXRbbF1bZV0scyYmbnVsbCE9PW4mJihuWzBdPD0wfHxuWzFdPD0wfHxuWzJdPD0wKSYmKG49bnVsbCksbnVsbCE9PW4/KHI9blsxXSxvLnB1c2gobnVsbD09PXJ8fGlzTmFOKHIpP1tpLHIsW3Iscl1dOltpLHIsW25bMF0sblsyXV1dKSk6by5wdXNoKFtpLG51bGwsW251bGwsbnVsbF1dKTtyZXR1cm4gb30sdC5wcm90b3R5cGUucm9sbGluZ0F2ZXJhZ2U9ZnVuY3Rpb24odCxlLGEpe2U9TWF0aC5taW4oZSx0Lmxlbmd0aCk7dmFyIGkscixuLG8scyxsLGgscD1bXTtmb3Iocj0wLG89MCxuPTAscz0wLGw9MDtsPHQubGVuZ3RoO2wrKyl7aWYoaT10W2xdWzFdLGg9dFtsXVsyXSxwW2xdPXRbbF0sbnVsbD09PWl8fGlzTmFOKGkpfHwocis9aFswXSxvKz1pLG4rPWhbMV0scys9MSksbC1lPj0wKXt2YXIgZz10W2wtZV07bnVsbD09PWdbMV18fGlzTmFOKGdbMV0pfHwoci09Z1syXVswXSxvLT1nWzFdLG4tPWdbMl1bMV0scy09MSl9cz9wW2xdPVt0W2xdWzBdLDEqby9zLFsxKnIvcywxKm4vc11dOnBbbF09W3RbbF1bMF0sbnVsbCxbbnVsbCxudWxsXV19cmV0dXJuIHB9fSgpLGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO0R5Z3JhcGguRGF0YUhhbmRsZXJzLkVycm9yQmFyc0hhbmRsZXI9ZnVuY3Rpb24oKXt9O3ZhciB0PUR5Z3JhcGguRGF0YUhhbmRsZXJzLkVycm9yQmFyc0hhbmRsZXI7dC5wcm90b3R5cGU9bmV3IER5Z3JhcGguRGF0YUhhbmRsZXJzLkJhcnNIYW5kbGVyLHQucHJvdG90eXBlLmV4dHJhY3RTZXJpZXM9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaSxyLG4sbyxzPVtdLGw9YS5nZXQoInNpZ21hIiksaD1hLmdldCgibG9nc2NhbGUiKSxwPTA7cDx0Lmxlbmd0aDtwKyspaT10W3BdWzBdLG89dFtwXVtlXSxoJiZudWxsIT09byYmKG9bMF08PTB8fG9bMF0tbCpvWzFdPD0wKSYmKG89bnVsbCksbnVsbCE9PW8/KHI9b1swXSxudWxsPT09cnx8aXNOYU4ocik/cy5wdXNoKFtpLHIsW3IscixyXV0pOihuPWwqb1sxXSxzLnB1c2goW2kscixbci1uLHIrbixvWzFdXV0pKSk6cy5wdXNoKFtpLG51bGwsW251bGwsbnVsbCxudWxsXV0pO3JldHVybiBzfSx0LnByb3RvdHlwZS5yb2xsaW5nQXZlcmFnZT1mdW5jdGlvbih0LGUsYSl7ZT1NYXRoLm1pbihlLHQubGVuZ3RoKTt2YXIgaSxyLG4sbyxzLGwsaCxwLGcsZD1bXSx1PWEuZ2V0KCJzaWdtYSIpO2ZvcihpPTA7aTx0Lmxlbmd0aDtpKyspe2ZvcihzPTAscD0wLGw9MCxyPU1hdGgubWF4KDAsaS1lKzEpO2krMT5yO3IrKyluPXRbcl1bMV0sbnVsbD09PW58fGlzTmFOKG4pfHwobCsrLHMrPW4scCs9TWF0aC5wb3codFtyXVsyXVsyXSwyKSk7bD8oaD1NYXRoLnNxcnQocCkvbCxnPXMvbCxkW2ldPVt0W2ldWzBdLGcsW2ctdSpoLGcrdSpoXV0pOihvPTE9PWU/dFtpXVsxXTpudWxsLGRbaV09W3RbaV1bMF0sbyxbbyxvXV0pfXJldHVybiBkfX0oKSxmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtEeWdyYXBoLkRhdGFIYW5kbGVycy5GcmFjdGlvbnNCYXJzSGFuZGxlcj1mdW5jdGlvbigpe307dmFyIHQ9RHlncmFwaC5EYXRhSGFuZGxlcnMuRnJhY3Rpb25zQmFyc0hhbmRsZXI7dC5wcm90b3R5cGU9bmV3IER5Z3JhcGguRGF0YUhhbmRsZXJzLkJhcnNIYW5kbGVyLHQucHJvdG90eXBlLmV4dHJhY3RTZXJpZXM9ZnVuY3Rpb24odCxlLGEpe2Zvcih2YXIgaSxyLG4sbyxzLGwsaCxwLGc9W10sZD0xMDAsdT1hLmdldCgic2lnbWEiKSxjPWEuZ2V0KCJsb2dzY2FsZSIpLHk9MDt5PHQubGVuZ3RoO3krKylpPXRbeV1bMF0sbj10W3ldW2VdLGMmJm51bGwhPT1uJiYoblswXTw9MHx8blsxXTw9MCkmJihuPW51bGwpLG51bGwhPT1uPyhvPW5bMF0scz1uWzFdLG51bGw9PT1vfHxpc05hTihvKT9nLnB1c2goW2ksbyxbbyxvLG8sc11dKToobD1zP28vczowLGg9cz91Kk1hdGguc3FydChsKigxLWwpL3MpOjEscD1kKmgscj1kKmwsZy5wdXNoKFtpLHIsW3ItcCxyK3AsbyxzXV0pKSk6Zy5wdXNoKFtpLG51bGwsW251bGwsbnVsbCxudWxsLG51bGxdXSk7cmV0dXJuIGd9LHQucHJvdG90eXBlLnJvbGxpbmdBdmVyYWdlPWZ1bmN0aW9uKHQsZSxhKXtlPU1hdGgubWluKGUsdC5sZW5ndGgpO3ZhciBpLHIsbixvLHM9W10sbD1hLmdldCgic2lnbWEiKSxoPWEuZ2V0KCJ3aWxzb25JbnRlcnZhbCIpLHA9MCxnPTAsZD0xMDA7Zm9yKG49MDtuPHQubGVuZ3RoO24rKyl7cCs9dFtuXVsyXVsyXSxnKz10W25dWzJdWzNdLG4tZT49MCYmKHAtPXRbbi1lXVsyXVsyXSxnLT10W24tZV1bMl1bM10pO3ZhciB1PXRbbl1bMF0sYz1nP3AvZzowO2lmKGgpaWYoZyl7dmFyIHk9MD5jPzA6YyxfPWcsdj1sKk1hdGguc3FydCh5KigxLXkpL18rbCpsLyg0Kl8qXykpLGY9MStsKmwvZztpPSh5K2wqbC8oMipnKS12KS9mLHI9KHkrbCpsLygyKmcpK3YpL2Ysc1tuXT1bdSx5KmQsW2kqZCxyKmRdXX1lbHNlIHNbbl09W3UsMCxbMCwwXV07ZWxzZSBvPWc/bCpNYXRoLnNxcnQoYyooMS1jKS9nKToxLHNbbl09W3UsZCpjLFtkKihjLW8pLGQqKGMrbyldXX1yZXR1cm4gc319KCk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWR5Z3JhcGgtY29tYmluZWQuanMubWFw"></script>
<script src="data:application/x-javascript;base64,LyoqCiAqIEBsaWNlbnNlCiAqIENvcHlyaWdodCAyMDExIERhbiBWYW5kZXJrYW0gKGRhbnZka0BnbWFpbC5jb20pCiAqIE1JVC1saWNlbnNlZCAoaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCkKICovCgovKioKICogQGZpbGVvdmVydmlldwogKiBJbmNsdWRpbmcgdGhpcyBmaWxlIHdpbGwgYWRkIHNldmVyYWwgYWRkaXRpb25hbCBzaGFwZXMgdG8gRHlncmFwaC5DaXJjbGVzCiAqIHdoaWNoIGNhbiBiZSBwYXNzZWQgdG8gZHJhd1BvaW50Q2FsbGJhY2suCiAqIFNlZSB0ZXN0cy9jdXN0b20tY2lyY2xlcy5odG1sIGZvciB1c2FnZS4KICovCgooZnVuY3Rpb24oKSB7CgovKioKICogQHBhcmFtIHshQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEfSBjdHggdGhlIGNhbnZhcyBjb250ZXh0CiAqIEBwYXJhbSB7bnVtYmVyfSBzaWRlcyB0aGUgbnVtYmVyIG9mIHNpZGVzIGluIHRoZSBzaGFwZS4KICogQHBhcmFtIHtudW1iZXJ9IHJhZGl1cyB0aGUgcmFkaXVzIG9mIHRoZSBpbWFnZS4KICogQHBhcmFtIHtudW1iZXJ9IGN4IGNlbnRlciB4IGNvb3JkYXRlCiAqIEBwYXJhbSB7bnVtYmVyfSBjeSBjZW50ZXIgeSBjb29yZGluYXRlCiAqIEBwYXJhbSB7bnVtYmVyPX0gcm90YXRpb25SYWRpYW5zIHRoZSBzaGlmdCBvZiB0aGUgaW5pdGlhbCBhbmdsZSwgaW4gcmFkaWFucy4KICogQHBhcmFtIHtudW1iZXI9fSBkZWx0YSB0aGUgYW5nbGUgc2hpZnQgZm9yIGVhY2ggbGluZS4gSWYgbWlzc2luZywgY3JlYXRlcyBhCiAqICAgICByZWd1bGFyIHBvbHlnb24uCiAqLwp2YXIgcmVndWxhclNoYXBlID0gZnVuY3Rpb24oCiAgICBjdHgsIHNpZGVzLCByYWRpdXMsIGN4LCBjeSwgcm90YXRpb25SYWRpYW5zLCBkZWx0YSkgewogIHJvdGF0aW9uUmFkaWFucyA9IHJvdGF0aW9uUmFkaWFucyB8fCAwOwogIGRlbHRhID0gZGVsdGEgfHwgTWF0aC5QSSAqIDIgLyBzaWRlczsKCiAgY3R4LmJlZ2luUGF0aCgpOwogIHZhciBpbml0aWFsQW5nbGUgPSByb3RhdGlvblJhZGlhbnM7CiAgdmFyIGFuZ2xlID0gaW5pdGlhbEFuZ2xlOwoKICB2YXIgY29tcHV0ZUNvb3JkaW5hdGVzID0gZnVuY3Rpb24oKSB7CiAgICB2YXIgeCA9IGN4ICsgKE1hdGguc2luKGFuZ2xlKSAqIHJhZGl1cyk7CiAgICB2YXIgeSA9IGN5ICsgKC1NYXRoLmNvcyhhbmdsZSkgKiByYWRpdXMpOwogICAgcmV0dXJuIFt4LCB5XTsKICB9OwoKICB2YXIgaW5pdGlhbENvb3JkaW5hdGVzID0gY29tcHV0ZUNvb3JkaW5hdGVzKCk7CiAgdmFyIHggPSBpbml0aWFsQ29vcmRpbmF0ZXNbMF07CiAgdmFyIHkgPSBpbml0aWFsQ29vcmRpbmF0ZXNbMV07CiAgY3R4Lm1vdmVUbyh4LCB5KTsKCiAgZm9yICh2YXIgaWR4ID0gMDsgaWR4IDwgc2lkZXM7IGlkeCsrKSB7CiAgICBhbmdsZSA9IChpZHggPT0gc2lkZXMgLSAxKSA/IGluaXRpYWxBbmdsZSA6IChhbmdsZSArIGRlbHRhKTsKICAgIHZhciBjb29yZHMgPSBjb21wdXRlQ29vcmRpbmF0ZXMoKTsKICAgIGN0eC5saW5lVG8oY29vcmRzWzBdLCBjb29yZHNbMV0pOwogIH0KICBjdHguZmlsbCgpOwogIGN0eC5zdHJva2UoKTsKfTsKCi8qKgogKiBUT0RPKGRhbnZrKTogYmUgbW9yZSBzcGVjaWZpYyBvbiB0aGUgcmV0dXJuIHR5cGUuCiAqIEBwYXJhbSB7bnVtYmVyfSBzaWRlcwogKiBAcGFyYW0ge251bWJlcj19IHJvdGF0aW9uUmFkaWFucwogKiBAcGFyYW0ge251bWJlcj19IGRlbHRhCiAqIEByZXR1cm4ge0Z1bmN0aW9ufQogKiBAcHJpdmF0ZQogKi8KdmFyIHNoYXBlRnVuY3Rpb24gPSBmdW5jdGlvbihzaWRlcywgcm90YXRpb25SYWRpYW5zLCBkZWx0YSkgewogIHJldHVybiBmdW5jdGlvbihnLCBuYW1lLCBjdHgsIGN4LCBjeSwgY29sb3IsIHJhZGl1cykgewogICAgY3R4LnN0cm9rZVN0eWxlID0gY29sb3I7CiAgICBjdHguZmlsbFN0eWxlID0gIndoaXRlIjsKICAgIHJlZ3VsYXJTaGFwZShjdHgsIHNpZGVzLCByYWRpdXMsIGN4LCBjeSwgcm90YXRpb25SYWRpYW5zLCBkZWx0YSk7CiAgfTsKfTsKCnZhciBjdXN0b21DaXJjbGVzID0gewogIFRSSUFOR0xFIDogc2hhcGVGdW5jdGlvbigzKSwKICBTUVVBUkUgOiBzaGFwZUZ1bmN0aW9uKDQsIE1hdGguUEkgLyA0KSwKICBESUFNT05EIDogc2hhcGVGdW5jdGlvbig0KSwKICBQRU5UQUdPTiA6IHNoYXBlRnVuY3Rpb24oNSksCiAgSEVYQUdPTiA6IHNoYXBlRnVuY3Rpb24oNiksCiAgQ0lSQ0xFIDogZnVuY3Rpb24oZywgbmFtZSwgY3R4LCBjeCwgY3ksIGNvbG9yLCByYWRpdXMpIHsKICAgIGN0eC5iZWdpblBhdGgoKTsKICAgIGN0eC5zdHJva2VTdHlsZSA9IGNvbG9yOwogICAgY3R4LmZpbGxTdHlsZSA9ICJ3aGl0ZSI7CiAgICBjdHguYXJjKGN4LCBjeSwgcmFkaXVzLCAwLCAyICogTWF0aC5QSSwgZmFsc2UpOwogICAgY3R4LmZpbGwoKTsKICAgIGN0eC5zdHJva2UoKTsKICB9LAogIFNUQVIgOiBzaGFwZUZ1bmN0aW9uKDUsIDAsIDQgKiBNYXRoLlBJIC8gNSksCiAgUExVUyA6IGZ1bmN0aW9uKGcsIG5hbWUsIGN0eCwgY3gsIGN5LCBjb2xvciwgcmFkaXVzKSB7CiAgICBjdHguc3Ryb2tlU3R5bGUgPSBjb2xvcjsKCiAgICBjdHguYmVnaW5QYXRoKCk7CiAgICBjdHgubW92ZVRvKGN4ICsgcmFkaXVzLCBjeSk7CiAgICBjdHgubGluZVRvKGN4IC0gcmFkaXVzLCBjeSk7CiAgICBjdHguY2xvc2VQYXRoKCk7CiAgICBjdHguc3Ryb2tlKCk7CgogICAgY3R4LmJlZ2luUGF0aCgpOwogICAgY3R4Lm1vdmVUbyhjeCwgY3kgKyByYWRpdXMpOwogICAgY3R4LmxpbmVUbyhjeCwgY3kgLSByYWRpdXMpOwogICAgY3R4LmNsb3NlUGF0aCgpOwogICAgY3R4LnN0cm9rZSgpOwogIH0sCiAgRVggOiBmdW5jdGlvbihnLCBuYW1lLCBjdHgsIGN4LCBjeSwgY29sb3IsIHJhZGl1cykgewogICAgY3R4LnN0cm9rZVN0eWxlID0gY29sb3I7CgogICAgY3R4LmJlZ2luUGF0aCgpOwogICAgY3R4Lm1vdmVUbyhjeCArIHJhZGl1cywgY3kgKyByYWRpdXMpOwogICAgY3R4LmxpbmVUbyhjeCAtIHJhZGl1cywgY3kgLSByYWRpdXMpOwogICAgY3R4LmNsb3NlUGF0aCgpOwogICAgY3R4LnN0cm9rZSgpOwoKICAgIGN0eC5iZWdpblBhdGgoKTsKICAgIGN0eC5tb3ZlVG8oY3ggKyByYWRpdXMsIGN5IC0gcmFkaXVzKTsKICAgIGN0eC5saW5lVG8oY3ggLSByYWRpdXMsIGN5ICsgcmFkaXVzKTsKICAgIGN0eC5jbG9zZVBhdGgoKTsKICAgIGN0eC5zdHJva2UoKTsKICB9Cn07Cgpmb3IgKHZhciBrIGluIGN1c3RvbUNpcmNsZXMpIHsKICBpZiAoIWN1c3RvbUNpcmNsZXMuaGFzT3duUHJvcGVydHkoaykpIGNvbnRpbnVlOwogIER5Z3JhcGguQ2lyY2xlc1trXSA9IGN1c3RvbUNpcmNsZXNba107Cn0KCn0pKCk7Cg=="></script>
<script src="data:application/x-javascript;base64,Ly8hIG1vbWVudC5qcwovLyEgdmVyc2lvbiA6IDIuOC40Ci8vISBhdXRob3JzIDogVGltIFdvb2QsIElza3JlbiBDaGVybmV2LCBNb21lbnQuanMgY29udHJpYnV0b3JzCi8vISBsaWNlbnNlIDogTUlUCi8vISBtb21lbnRqcy5jb20KCihmdW5jdGlvbiAodW5kZWZpbmVkKSB7CiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICAgICAgQ29uc3RhbnRzCiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgogICAgdmFyIG1vbWVudCwKICAgICAgICBWRVJTSU9OID0gJzIuOC40JywKICAgICAgICAvLyB0aGUgZ2xvYmFsLXNjb3BlIHRoaXMgaXMgTk9UIHRoZSBnbG9iYWwgb2JqZWN0IGluIE5vZGUuanMKICAgICAgICBnbG9iYWxTY29wZSA9IHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnID8gZ2xvYmFsIDogdGhpcywKICAgICAgICBvbGRHbG9iYWxNb21lbnQsCiAgICAgICAgcm91bmQgPSBNYXRoLnJvdW5kLAogICAgICAgIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSwKICAgICAgICBpLAoKICAgICAgICBZRUFSID0gMCwKICAgICAgICBNT05USCA9IDEsCiAgICAgICAgREFURSA9IDIsCiAgICAgICAgSE9VUiA9IDMsCiAgICAgICAgTUlOVVRFID0gNCwKICAgICAgICBTRUNPTkQgPSA1LAogICAgICAgIE1JTExJU0VDT05EID0gNiwKCiAgICAgICAgLy8gaW50ZXJuYWwgc3RvcmFnZSBmb3IgbG9jYWxlIGNvbmZpZyBmaWxlcwogICAgICAgIGxvY2FsZXMgPSB7fSwKCiAgICAgICAgLy8gZXh0cmEgbW9tZW50IGludGVybmFsIHByb3BlcnRpZXMgKHBsdWdpbnMgcmVnaXN0ZXIgcHJvcHMgaGVyZSkKICAgICAgICBtb21lbnRQcm9wZXJ0aWVzID0gW10sCgogICAgICAgIC8vIGNoZWNrIGZvciBub2RlSlMKICAgICAgICBoYXNNb2R1bGUgPSAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbW9kdWxlICYmIG1vZHVsZS5leHBvcnRzKSwKCiAgICAgICAgLy8gQVNQLk5FVCBqc29uIGRhdGUgZm9ybWF0IHJlZ2V4CiAgICAgICAgYXNwTmV0SnNvblJlZ2V4ID0gL15cLz9EYXRlXCgoXC0/XGQrKS9pLAogICAgICAgIGFzcE5ldFRpbWVTcGFuSnNvblJlZ2V4ID0gLyhcLSk/KD86KFxkKilcLik/KFxkKylcOihcZCspKD86XDooXGQrKVwuPyhcZHszfSk/KT8vLAoKICAgICAgICAvLyBmcm9tIGh0dHA6Ly9kb2NzLmNsb3N1cmUtbGlicmFyeS5nb29nbGVjb2RlLmNvbS9naXQvY2xvc3VyZV9nb29nX2RhdGVfZGF0ZS5qcy5zb3VyY2UuaHRtbAogICAgICAgIC8vIHNvbWV3aGF0IG1vcmUgaW4gbGluZSB3aXRoIDQuNC4zLjIgMjAwNCBzcGVjLCBidXQgYWxsb3dzIGRlY2ltYWwgYW55d2hlcmUKICAgICAgICBpc29EdXJhdGlvblJlZ2V4ID0gL14oLSk/UCg/Oig/OihbMC05LC5dKilZKT8oPzooWzAtOSwuXSopTSk/KD86KFswLTksLl0qKUQpPyg/OlQoPzooWzAtOSwuXSopSCk/KD86KFswLTksLl0qKU0pPyg/OihbMC05LC5dKilTKT8pP3woWzAtOSwuXSopVykkLywKCiAgICAgICAgLy8gZm9ybWF0IHRva2VucwogICAgICAgIGZvcm1hdHRpbmdUb2tlbnMgPSAvKFxbW15cW10qXF0pfChcXCk/KE1vfE1NP00/TT98RG98REREb3xERD9EP0Q/fGRkZD9kP3xkbz98d1tvfHddP3xXW298V10/fFF8WVlZWVlZfFlZWVlZfFlZWVl8WVl8Z2coZ2dnPyk/fEdHKEdHRz8pP3xlfEV8YXxBfGhoP3xISD98bW0/fHNzP3xTezEsNH18eHxYfHp6P3xaWj98LikvZywKICAgICAgICBsb2NhbEZvcm1hdHRpbmdUb2tlbnMgPSAvKFxbW15cW10qXF0pfChcXCk/KExUU3xMVHxMTD9MP0w/fGx7MSw0fSkvZywKCiAgICAgICAgLy8gcGFyc2luZyB0b2tlbiByZWdleGVzCiAgICAgICAgcGFyc2VUb2tlbk9uZU9yVHdvRGlnaXRzID0gL1xkXGQ/LywgLy8gMCAtIDk5CiAgICAgICAgcGFyc2VUb2tlbk9uZVRvVGhyZWVEaWdpdHMgPSAvXGR7MSwzfS8sIC8vIDAgLSA5OTkKICAgICAgICBwYXJzZVRva2VuT25lVG9Gb3VyRGlnaXRzID0gL1xkezEsNH0vLCAvLyAwIC0gOTk5OQogICAgICAgIHBhcnNlVG9rZW5PbmVUb1NpeERpZ2l0cyA9IC9bK1wtXT9cZHsxLDZ9LywgLy8gLTk5OSw5OTkgLSA5OTksOTk5CiAgICAgICAgcGFyc2VUb2tlbkRpZ2l0cyA9IC9cZCsvLCAvLyBub256ZXJvIG51bWJlciBvZiBkaWdpdHMKICAgICAgICBwYXJzZVRva2VuV29yZCA9IC9bMC05XSpbJ2Etelx1MDBBMC1cdTA1RkZcdTA3MDAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdK3xbXHUwNjAwLVx1MDZGRlwvXSsoXHMqP1tcdTA2MDAtXHUwNkZGXSspezEsMn0vaSwgLy8gYW55IHdvcmQgKG9yIHR3bykgY2hhcmFjdGVycyBvciBudW1iZXJzIGluY2x1ZGluZyB0d28vdGhyZWUgd29yZCBtb250aCBpbiBhcmFiaWMuCiAgICAgICAgcGFyc2VUb2tlblRpbWV6b25lID0gL1p8W1wrXC1dXGRcZDo/XGRcZC9naSwgLy8gKzAwOjAwIC0wMDowMCArMDAwMCAtMDAwMCBvciBaCiAgICAgICAgcGFyc2VUb2tlblQgPSAvVC9pLCAvLyBUIChJU08gc2VwYXJhdG9yKQogICAgICAgIHBhcnNlVG9rZW5PZmZzZXRNcyA9IC9bXCtcLV0/XGQrLywgLy8gMTIzNDU2Nzg5MDEyMwogICAgICAgIHBhcnNlVG9rZW5UaW1lc3RhbXBNcyA9IC9bXCtcLV0/XGQrKFwuXGR7MSwzfSk/LywgLy8gMTIzNDU2Nzg5IDEyMzQ1Njc4OS4xMjMKCiAgICAgICAgLy9zdHJpY3QgcGFyc2luZyByZWdleGVzCiAgICAgICAgcGFyc2VUb2tlbk9uZURpZ2l0ID0gL1xkLywgLy8gMCAtIDkKICAgICAgICBwYXJzZVRva2VuVHdvRGlnaXRzID0gL1xkXGQvLCAvLyAwMCAtIDk5CiAgICAgICAgcGFyc2VUb2tlblRocmVlRGlnaXRzID0gL1xkezN9LywgLy8gMDAwIC0gOTk5CiAgICAgICAgcGFyc2VUb2tlbkZvdXJEaWdpdHMgPSAvXGR7NH0vLCAvLyAwMDAwIC0gOTk5OQogICAgICAgIHBhcnNlVG9rZW5TaXhEaWdpdHMgPSAvWystXT9cZHs2fS8sIC8vIC05OTksOTk5IC0gOTk5LDk5OQogICAgICAgIHBhcnNlVG9rZW5TaWduZWROdW1iZXIgPSAvWystXT9cZCsvLCAvLyAtaW5mIC0gaW5mCgogICAgICAgIC8vIGlzbyA4NjAxIHJlZ2V4CiAgICAgICAgLy8gMDAwMC0wMC0wMCAwMDAwLVcwMCBvciAwMDAwLVcwMC0wICsgVCArIDAwIG9yIDAwOjAwIG9yIDAwOjAwOjAwIG9yIDAwOjAwOjAwLjAwMCArICswMDowMCBvciArMDAwMCBvciArMDApCiAgICAgICAgaXNvUmVnZXggPSAvXlxzKig/OlsrLV1cZHs2fXxcZHs0fSktKD86KFxkXGQtXGRcZCl8KFdcZFxkJCl8KFdcZFxkLVxkKXwoXGRcZFxkKSkoKFR8ICkoXGRcZCg6XGRcZCg6XGRcZChcLlxkKyk/KT8pPyk/KFtcK1wtXVxkXGQoPzo6P1xkXGQpP3xccypaKT8pPyQvLAoKICAgICAgICBpc29Gb3JtYXQgPSAnWVlZWS1NTS1ERFRISDptbTpzc1onLAoKICAgICAgICBpc29EYXRlcyA9IFsKICAgICAgICAgICAgWydZWVlZWVktTU0tREQnLCAvWystXVxkezZ9LVxkezJ9LVxkezJ9L10sCiAgICAgICAgICAgIFsnWVlZWS1NTS1ERCcsIC9cZHs0fS1cZHsyfS1cZHsyfS9dLAogICAgICAgICAgICBbJ0dHR0ctW1ddV1ctRScsIC9cZHs0fS1XXGR7Mn0tXGQvXSwKICAgICAgICAgICAgWydHR0dHLVtXXVdXJywgL1xkezR9LVdcZHsyfS9dLAogICAgICAgICAgICBbJ1lZWVktREREJywgL1xkezR9LVxkezN9L10KICAgICAgICBdLAoKICAgICAgICAvLyBpc28gdGltZSBmb3JtYXRzIGFuZCByZWdleGVzCiAgICAgICAgaXNvVGltZXMgPSBbCiAgICAgICAgICAgIFsnSEg6bW06c3MuU1NTUycsIC8oVHwgKVxkXGQ6XGRcZDpcZFxkXC5cZCsvXSwKICAgICAgICAgICAgWydISDptbTpzcycsIC8oVHwgKVxkXGQ6XGRcZDpcZFxkL10sCiAgICAgICAgICAgIFsnSEg6bW0nLCAvKFR8IClcZFxkOlxkXGQvXSwKICAgICAgICAgICAgWydISCcsIC8oVHwgKVxkXGQvXQogICAgICAgIF0sCgogICAgICAgIC8vIHRpbWV6b25lIGNodW5rZXIgJysxMDowMCcgPiBbJzEwJywgJzAwJ10gb3IgJy0xNTMwJyA+IFsnLTE1JywgJzMwJ10KICAgICAgICBwYXJzZVRpbWV6b25lQ2h1bmtlciA9IC8oW1wrXC1dfFxkXGQpL2dpLAoKICAgICAgICAvLyBnZXR0ZXIgYW5kIHNldHRlciBuYW1lcwogICAgICAgIHByb3h5R2V0dGVyc0FuZFNldHRlcnMgPSAnRGF0ZXxIb3Vyc3xNaW51dGVzfFNlY29uZHN8TWlsbGlzZWNvbmRzJy5zcGxpdCgnfCcpLAogICAgICAgIHVuaXRNaWxsaXNlY29uZEZhY3RvcnMgPSB7CiAgICAgICAgICAgICdNaWxsaXNlY29uZHMnIDogMSwKICAgICAgICAgICAgJ1NlY29uZHMnIDogMWUzLAogICAgICAgICAgICAnTWludXRlcycgOiA2ZTQsCiAgICAgICAgICAgICdIb3VycycgOiAzNmU1LAogICAgICAgICAgICAnRGF5cycgOiA4NjRlNSwKICAgICAgICAgICAgJ01vbnRocycgOiAyNTkyZTYsCiAgICAgICAgICAgICdZZWFycycgOiAzMTUzNmU2CiAgICAgICAgfSwKCiAgICAgICAgdW5pdEFsaWFzZXMgPSB7CiAgICAgICAgICAgIG1zIDogJ21pbGxpc2Vjb25kJywKICAgICAgICAgICAgcyA6ICdzZWNvbmQnLAogICAgICAgICAgICBtIDogJ21pbnV0ZScsCiAgICAgICAgICAgIGggOiAnaG91cicsCiAgICAgICAgICAgIGQgOiAnZGF5JywKICAgICAgICAgICAgRCA6ICdkYXRlJywKICAgICAgICAgICAgdyA6ICd3ZWVrJywKICAgICAgICAgICAgVyA6ICdpc29XZWVrJywKICAgICAgICAgICAgTSA6ICdtb250aCcsCiAgICAgICAgICAgIFEgOiAncXVhcnRlcicsCiAgICAgICAgICAgIHkgOiAneWVhcicsCiAgICAgICAgICAgIERERCA6ICdkYXlPZlllYXInLAogICAgICAgICAgICBlIDogJ3dlZWtkYXknLAogICAgICAgICAgICBFIDogJ2lzb1dlZWtkYXknLAogICAgICAgICAgICBnZzogJ3dlZWtZZWFyJywKICAgICAgICAgICAgR0c6ICdpc29XZWVrWWVhcicKICAgICAgICB9LAoKICAgICAgICBjYW1lbEZ1bmN0aW9ucyA9IHsKICAgICAgICAgICAgZGF5b2Z5ZWFyIDogJ2RheU9mWWVhcicsCiAgICAgICAgICAgIGlzb3dlZWtkYXkgOiAnaXNvV2Vla2RheScsCiAgICAgICAgICAgIGlzb3dlZWsgOiAnaXNvV2VlaycsCiAgICAgICAgICAgIHdlZWt5ZWFyIDogJ3dlZWtZZWFyJywKICAgICAgICAgICAgaXNvd2Vla3llYXIgOiAnaXNvV2Vla1llYXInCiAgICAgICAgfSwKCiAgICAgICAgLy8gZm9ybWF0IGZ1bmN0aW9uIHN0cmluZ3MKICAgICAgICBmb3JtYXRGdW5jdGlvbnMgPSB7fSwKCiAgICAgICAgLy8gZGVmYXVsdCByZWxhdGl2ZSB0aW1lIHRocmVzaG9sZHMKICAgICAgICByZWxhdGl2ZVRpbWVUaHJlc2hvbGRzID0gewogICAgICAgICAgICBzOiA0NSwgIC8vIHNlY29uZHMgdG8gbWludXRlCiAgICAgICAgICAgIG06IDQ1LCAgLy8gbWludXRlcyB0byBob3VyCiAgICAgICAgICAgIGg6IDIyLCAgLy8gaG91cnMgdG8gZGF5CiAgICAgICAgICAgIGQ6IDI2LCAgLy8gZGF5cyB0byBtb250aAogICAgICAgICAgICBNOiAxMSAgIC8vIG1vbnRocyB0byB5ZWFyCiAgICAgICAgfSwKCiAgICAgICAgLy8gdG9rZW5zIHRvIG9yZGluYWxpemUgYW5kIHBhZAogICAgICAgIG9yZGluYWxpemVUb2tlbnMgPSAnREREIHcgVyBNIEQgZCcuc3BsaXQoJyAnKSwKICAgICAgICBwYWRkZWRUb2tlbnMgPSAnTSBEIEggaCBtIHMgdyBXJy5zcGxpdCgnICcpLAoKICAgICAgICBmb3JtYXRUb2tlbkZ1bmN0aW9ucyA9IHsKICAgICAgICAgICAgTSAgICA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm1vbnRoKCkgKyAxOwogICAgICAgICAgICB9LAogICAgICAgICAgICBNTU0gIDogZnVuY3Rpb24gKGZvcm1hdCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLm1vbnRoc1Nob3J0KHRoaXMsIGZvcm1hdCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE1NTU0gOiBmdW5jdGlvbiAoZm9ybWF0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkubW9udGhzKHRoaXMsIGZvcm1hdCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIEQgICAgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRlKCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIERERCAgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXlPZlllYXIoKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZCAgICA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRheSgpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBkZCAgIDogZnVuY3Rpb24gKGZvcm1hdCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLndlZWtkYXlzTWluKHRoaXMsIGZvcm1hdCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGRkZCAgOiBmdW5jdGlvbiAoZm9ybWF0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkud2Vla2RheXNTaG9ydCh0aGlzLCBmb3JtYXQpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBkZGRkIDogZnVuY3Rpb24gKGZvcm1hdCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLndlZWtkYXlzKHRoaXMsIGZvcm1hdCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHcgICAgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy53ZWVrKCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFcgICAgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pc29XZWVrKCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFlZICAgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbGVmdFplcm9GaWxsKHRoaXMueWVhcigpICUgMTAwLCAyKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgWVlZWSA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiBsZWZ0WmVyb0ZpbGwodGhpcy55ZWFyKCksIDQpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBZWVlZWSA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiBsZWZ0WmVyb0ZpbGwodGhpcy55ZWFyKCksIDUpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBZWVlZWVkgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgeSA9IHRoaXMueWVhcigpLCBzaWduID0geSA+PSAwID8gJysnIDogJy0nOwogICAgICAgICAgICAgICAgcmV0dXJuIHNpZ24gKyBsZWZ0WmVyb0ZpbGwoTWF0aC5hYnMoeSksIDYpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBnZyAgIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGxlZnRaZXJvRmlsbCh0aGlzLndlZWtZZWFyKCkgJSAxMDAsIDIpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBnZ2dnIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGxlZnRaZXJvRmlsbCh0aGlzLndlZWtZZWFyKCksIDQpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBnZ2dnZyA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiBsZWZ0WmVyb0ZpbGwodGhpcy53ZWVrWWVhcigpLCA1KTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgR0cgICA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiBsZWZ0WmVyb0ZpbGwodGhpcy5pc29XZWVrWWVhcigpICUgMTAwLCAyKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgR0dHRyA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiBsZWZ0WmVyb0ZpbGwodGhpcy5pc29XZWVrWWVhcigpLCA0KTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgR0dHR0cgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbGVmdFplcm9GaWxsKHRoaXMuaXNvV2Vla1llYXIoKSwgNSk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGUgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy53ZWVrZGF5KCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIEUgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pc29XZWVrZGF5KCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGEgICAgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkubWVyaWRpZW0odGhpcy5ob3VycygpLCB0aGlzLm1pbnV0ZXMoKSwgdHJ1ZSk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIEEgICAgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkubWVyaWRpZW0odGhpcy5ob3VycygpLCB0aGlzLm1pbnV0ZXMoKSwgZmFsc2UpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBIICAgIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaG91cnMoKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgaCAgICA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhvdXJzKCkgJSAxMiB8fCAxMjsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgbSAgICA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm1pbnV0ZXMoKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgcyAgICA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNlY29uZHMoKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgUyAgICA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0b0ludCh0aGlzLm1pbGxpc2Vjb25kcygpIC8gMTAwKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgU1MgICA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiBsZWZ0WmVyb0ZpbGwodG9JbnQodGhpcy5taWxsaXNlY29uZHMoKSAvIDEwKSwgMik7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFNTUyAgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbGVmdFplcm9GaWxsKHRoaXMubWlsbGlzZWNvbmRzKCksIDMpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBTU1NTIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGxlZnRaZXJvRmlsbCh0aGlzLm1pbGxpc2Vjb25kcygpLCAzKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgWiAgICA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBhID0gLXRoaXMuem9uZSgpLAogICAgICAgICAgICAgICAgICAgIGIgPSAnKyc7CiAgICAgICAgICAgICAgICBpZiAoYSA8IDApIHsKICAgICAgICAgICAgICAgICAgICBhID0gLWE7CiAgICAgICAgICAgICAgICAgICAgYiA9ICctJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBiICsgbGVmdFplcm9GaWxsKHRvSW50KGEgLyA2MCksIDIpICsgJzonICsgbGVmdFplcm9GaWxsKHRvSW50KGEpICUgNjAsIDIpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBaWiAgIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIGEgPSAtdGhpcy56b25lKCksCiAgICAgICAgICAgICAgICAgICAgYiA9ICcrJzsKICAgICAgICAgICAgICAgIGlmIChhIDwgMCkgewogICAgICAgICAgICAgICAgICAgIGEgPSAtYTsKICAgICAgICAgICAgICAgICAgICBiID0gJy0nOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIGIgKyBsZWZ0WmVyb0ZpbGwodG9JbnQoYSAvIDYwKSwgMikgKyBsZWZ0WmVyb0ZpbGwodG9JbnQoYSkgJSA2MCwgMik7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHogOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy56b25lQWJicigpOwogICAgICAgICAgICB9LAogICAgICAgICAgICB6eiA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnpvbmVOYW1lKCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHggICAgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZU9mKCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFggICAgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy51bml4KCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFEgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5xdWFydGVyKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBkZXByZWNhdGlvbnMgPSB7fSwKCiAgICAgICAgbGlzdHMgPSBbJ21vbnRocycsICdtb250aHNTaG9ydCcsICd3ZWVrZGF5cycsICd3ZWVrZGF5c1Nob3J0JywgJ3dlZWtkYXlzTWluJ107CgogICAgLy8gUGljayB0aGUgZmlyc3QgZGVmaW5lZCBvZiB0d28gb3IgdGhyZWUgYXJndW1lbnRzLiBkZmwgY29tZXMgZnJvbQogICAgLy8gZGVmYXVsdC4KICAgIGZ1bmN0aW9uIGRmbChhLCBiLCBjKSB7CiAgICAgICAgc3dpdGNoIChhcmd1bWVudHMubGVuZ3RoKSB7CiAgICAgICAgICAgIGNhc2UgMjogcmV0dXJuIGEgIT0gbnVsbCA/IGEgOiBiOwogICAgICAgICAgICBjYXNlIDM6IHJldHVybiBhICE9IG51bGwgPyBhIDogYiAhPSBudWxsID8gYiA6IGM7CiAgICAgICAgICAgIGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvcignSW1wbGVtZW50IG1lJyk7CiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGhhc093blByb3AoYSwgYikgewogICAgICAgIHJldHVybiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGEsIGIpOwogICAgfQoKICAgIGZ1bmN0aW9uIGRlZmF1bHRQYXJzaW5nRmxhZ3MoKSB7CiAgICAgICAgLy8gV2UgbmVlZCB0byBkZWVwIGNsb25lIHRoaXMgb2JqZWN0LCBhbmQgZXM1IHN0YW5kYXJkIGlzIG5vdCB2ZXJ5CiAgICAgICAgLy8gaGVscGZ1bC4KICAgICAgICByZXR1cm4gewogICAgICAgICAgICBlbXB0eSA6IGZhbHNlLAogICAgICAgICAgICB1bnVzZWRUb2tlbnMgOiBbXSwKICAgICAgICAgICAgdW51c2VkSW5wdXQgOiBbXSwKICAgICAgICAgICAgb3ZlcmZsb3cgOiAtMiwKICAgICAgICAgICAgY2hhcnNMZWZ0T3ZlciA6IDAsCiAgICAgICAgICAgIG51bGxJbnB1dCA6IGZhbHNlLAogICAgICAgICAgICBpbnZhbGlkTW9udGggOiBudWxsLAogICAgICAgICAgICBpbnZhbGlkRm9ybWF0IDogZmFsc2UsCiAgICAgICAgICAgIHVzZXJJbnZhbGlkYXRlZCA6IGZhbHNlLAogICAgICAgICAgICBpc286IGZhbHNlCiAgICAgICAgfTsKICAgIH0KCiAgICBmdW5jdGlvbiBwcmludE1zZyhtc2cpIHsKICAgICAgICBpZiAobW9tZW50LnN1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5ncyA9PT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgIHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJyAmJiBjb25zb2xlLndhcm4pIHsKICAgICAgICAgICAgY29uc29sZS53YXJuKCdEZXByZWNhdGlvbiB3YXJuaW5nOiAnICsgbXNnKTsKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gZGVwcmVjYXRlKG1zZywgZm4pIHsKICAgICAgICB2YXIgZmlyc3RUaW1lID0gdHJ1ZTsKICAgICAgICByZXR1cm4gZXh0ZW5kKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgaWYgKGZpcnN0VGltZSkgewogICAgICAgICAgICAgICAgcHJpbnRNc2cobXNnKTsKICAgICAgICAgICAgICAgIGZpcnN0VGltZSA9IGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgIH0sIGZuKTsKICAgIH0KCiAgICBmdW5jdGlvbiBkZXByZWNhdGVTaW1wbGUobmFtZSwgbXNnKSB7CiAgICAgICAgaWYgKCFkZXByZWNhdGlvbnNbbmFtZV0pIHsKICAgICAgICAgICAgcHJpbnRNc2cobXNnKTsKICAgICAgICAgICAgZGVwcmVjYXRpb25zW25hbWVdID0gdHJ1ZTsKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gcGFkVG9rZW4oZnVuYywgY291bnQpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGEpIHsKICAgICAgICAgICAgcmV0dXJuIGxlZnRaZXJvRmlsbChmdW5jLmNhbGwodGhpcywgYSksIGNvdW50KTsKICAgICAgICB9OwogICAgfQogICAgZnVuY3Rpb24gb3JkaW5hbGl6ZVRva2VuKGZ1bmMsIHBlcmlvZCkgewogICAgICAgIHJldHVybiBmdW5jdGlvbiAoYSkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkub3JkaW5hbChmdW5jLmNhbGwodGhpcywgYSksIHBlcmlvZCk7CiAgICAgICAgfTsKICAgIH0KCiAgICB3aGlsZSAob3JkaW5hbGl6ZVRva2Vucy5sZW5ndGgpIHsKICAgICAgICBpID0gb3JkaW5hbGl6ZVRva2Vucy5wb3AoKTsKICAgICAgICBmb3JtYXRUb2tlbkZ1bmN0aW9uc1tpICsgJ28nXSA9IG9yZGluYWxpemVUb2tlbihmb3JtYXRUb2tlbkZ1bmN0aW9uc1tpXSwgaSk7CiAgICB9CiAgICB3aGlsZSAocGFkZGVkVG9rZW5zLmxlbmd0aCkgewogICAgICAgIGkgPSBwYWRkZWRUb2tlbnMucG9wKCk7CiAgICAgICAgZm9ybWF0VG9rZW5GdW5jdGlvbnNbaSArIGldID0gcGFkVG9rZW4oZm9ybWF0VG9rZW5GdW5jdGlvbnNbaV0sIDIpOwogICAgfQogICAgZm9ybWF0VG9rZW5GdW5jdGlvbnMuRERERCA9IHBhZFRva2VuKGZvcm1hdFRva2VuRnVuY3Rpb25zLkRERCwgMyk7CgoKICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgICAgICBDb25zdHJ1Y3RvcnMKICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiAgICBmdW5jdGlvbiBMb2NhbGUoKSB7CiAgICB9CgogICAgLy8gTW9tZW50IHByb3RvdHlwZSBvYmplY3QKICAgIGZ1bmN0aW9uIE1vbWVudChjb25maWcsIHNraXBPdmVyZmxvdykgewogICAgICAgIGlmIChza2lwT3ZlcmZsb3cgIT09IGZhbHNlKSB7CiAgICAgICAgICAgIGNoZWNrT3ZlcmZsb3coY29uZmlnKTsKICAgICAgICB9CiAgICAgICAgY29weUNvbmZpZyh0aGlzLCBjb25maWcpOwogICAgICAgIHRoaXMuX2QgPSBuZXcgRGF0ZSgrY29uZmlnLl9kKTsKICAgIH0KCiAgICAvLyBEdXJhdGlvbiBDb25zdHJ1Y3RvcgogICAgZnVuY3Rpb24gRHVyYXRpb24oZHVyYXRpb24pIHsKICAgICAgICB2YXIgbm9ybWFsaXplZElucHV0ID0gbm9ybWFsaXplT2JqZWN0VW5pdHMoZHVyYXRpb24pLAogICAgICAgICAgICB5ZWFycyA9IG5vcm1hbGl6ZWRJbnB1dC55ZWFyIHx8IDAsCiAgICAgICAgICAgIHF1YXJ0ZXJzID0gbm9ybWFsaXplZElucHV0LnF1YXJ0ZXIgfHwgMCwKICAgICAgICAgICAgbW9udGhzID0gbm9ybWFsaXplZElucHV0Lm1vbnRoIHx8IDAsCiAgICAgICAgICAgIHdlZWtzID0gbm9ybWFsaXplZElucHV0LndlZWsgfHwgMCwKICAgICAgICAgICAgZGF5cyA9IG5vcm1hbGl6ZWRJbnB1dC5kYXkgfHwgMCwKICAgICAgICAgICAgaG91cnMgPSBub3JtYWxpemVkSW5wdXQuaG91ciB8fCAwLAogICAgICAgICAgICBtaW51dGVzID0gbm9ybWFsaXplZElucHV0Lm1pbnV0ZSB8fCAwLAogICAgICAgICAgICBzZWNvbmRzID0gbm9ybWFsaXplZElucHV0LnNlY29uZCB8fCAwLAogICAgICAgICAgICBtaWxsaXNlY29uZHMgPSBub3JtYWxpemVkSW5wdXQubWlsbGlzZWNvbmQgfHwgMDsKCiAgICAgICAgLy8gcmVwcmVzZW50YXRpb24gZm9yIGRhdGVBZGRSZW1vdmUKICAgICAgICB0aGlzLl9taWxsaXNlY29uZHMgPSArbWlsbGlzZWNvbmRzICsKICAgICAgICAgICAgc2Vjb25kcyAqIDFlMyArIC8vIDEwMDAKICAgICAgICAgICAgbWludXRlcyAqIDZlNCArIC8vIDEwMDAgKiA2MAogICAgICAgICAgICBob3VycyAqIDM2ZTU7IC8vIDEwMDAgKiA2MCAqIDYwCiAgICAgICAgLy8gQmVjYXVzZSBvZiBkYXRlQWRkUmVtb3ZlIHRyZWF0cyAyNCBob3VycyBhcyBkaWZmZXJlbnQgZnJvbSBhCiAgICAgICAgLy8gZGF5IHdoZW4gd29ya2luZyBhcm91bmQgRFNULCB3ZSBuZWVkIHRvIHN0b3JlIHRoZW0gc2VwYXJhdGVseQogICAgICAgIHRoaXMuX2RheXMgPSArZGF5cyArCiAgICAgICAgICAgIHdlZWtzICogNzsKICAgICAgICAvLyBJdCBpcyBpbXBvc3NpYmxlIHRyYW5zbGF0ZSBtb250aHMgaW50byBkYXlzIHdpdGhvdXQga25vd2luZwogICAgICAgIC8vIHdoaWNoIG1vbnRocyB5b3UgYXJlIGFyZSB0YWxraW5nIGFib3V0LCBzbyB3ZSBoYXZlIHRvIHN0b3JlCiAgICAgICAgLy8gaXQgc2VwYXJhdGVseS4KICAgICAgICB0aGlzLl9tb250aHMgPSArbW9udGhzICsKICAgICAgICAgICAgcXVhcnRlcnMgKiAzICsKICAgICAgICAgICAgeWVhcnMgKiAxMjsKCiAgICAgICAgdGhpcy5fZGF0YSA9IHt9OwoKICAgICAgICB0aGlzLl9sb2NhbGUgPSBtb21lbnQubG9jYWxlRGF0YSgpOwoKICAgICAgICB0aGlzLl9idWJibGUoKTsKICAgIH0KCiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICAgICAgSGVscGVycwogICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKCiAgICBmdW5jdGlvbiBleHRlbmQoYSwgYikgewogICAgICAgIGZvciAodmFyIGkgaW4gYikgewogICAgICAgICAgICBpZiAoaGFzT3duUHJvcChiLCBpKSkgewogICAgICAgICAgICAgICAgYVtpXSA9IGJbaV07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmIChoYXNPd25Qcm9wKGIsICd0b1N0cmluZycpKSB7CiAgICAgICAgICAgIGEudG9TdHJpbmcgPSBiLnRvU3RyaW5nOwogICAgICAgIH0KCiAgICAgICAgaWYgKGhhc093blByb3AoYiwgJ3ZhbHVlT2YnKSkgewogICAgICAgICAgICBhLnZhbHVlT2YgPSBiLnZhbHVlT2Y7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gYTsKICAgIH0KCiAgICBmdW5jdGlvbiBjb3B5Q29uZmlnKHRvLCBmcm9tKSB7CiAgICAgICAgdmFyIGksIHByb3AsIHZhbDsKCiAgICAgICAgaWYgKHR5cGVvZiBmcm9tLl9pc0FNb21lbnRPYmplY3QgIT09ICd1bmRlZmluZWQnKSB7CiAgICAgICAgICAgIHRvLl9pc0FNb21lbnRPYmplY3QgPSBmcm9tLl9pc0FNb21lbnRPYmplY3Q7CiAgICAgICAgfQogICAgICAgIGlmICh0eXBlb2YgZnJvbS5faSAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgICAgdG8uX2kgPSBmcm9tLl9pOwogICAgICAgIH0KICAgICAgICBpZiAodHlwZW9mIGZyb20uX2YgIT09ICd1bmRlZmluZWQnKSB7CiAgICAgICAgICAgIHRvLl9mID0gZnJvbS5fZjsKICAgICAgICB9CiAgICAgICAgaWYgKHR5cGVvZiBmcm9tLl9sICE9PSAndW5kZWZpbmVkJykgewogICAgICAgICAgICB0by5fbCA9IGZyb20uX2w7CiAgICAgICAgfQogICAgICAgIGlmICh0eXBlb2YgZnJvbS5fc3RyaWN0ICE9PSAndW5kZWZpbmVkJykgewogICAgICAgICAgICB0by5fc3RyaWN0ID0gZnJvbS5fc3RyaWN0OwogICAgICAgIH0KICAgICAgICBpZiAodHlwZW9mIGZyb20uX3R6bSAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgICAgdG8uX3R6bSA9IGZyb20uX3R6bTsKICAgICAgICB9CiAgICAgICAgaWYgKHR5cGVvZiBmcm9tLl9pc1VUQyAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgICAgdG8uX2lzVVRDID0gZnJvbS5faXNVVEM7CiAgICAgICAgfQogICAgICAgIGlmICh0eXBlb2YgZnJvbS5fb2Zmc2V0ICE9PSAndW5kZWZpbmVkJykgewogICAgICAgICAgICB0by5fb2Zmc2V0ID0gZnJvbS5fb2Zmc2V0OwogICAgICAgIH0KICAgICAgICBpZiAodHlwZW9mIGZyb20uX3BmICE9PSAndW5kZWZpbmVkJykgewogICAgICAgICAgICB0by5fcGYgPSBmcm9tLl9wZjsKICAgICAgICB9CiAgICAgICAgaWYgKHR5cGVvZiBmcm9tLl9sb2NhbGUgIT09ICd1bmRlZmluZWQnKSB7CiAgICAgICAgICAgIHRvLl9sb2NhbGUgPSBmcm9tLl9sb2NhbGU7CiAgICAgICAgfQoKICAgICAgICBpZiAobW9tZW50UHJvcGVydGllcy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgIGZvciAoaSBpbiBtb21lbnRQcm9wZXJ0aWVzKSB7CiAgICAgICAgICAgICAgICBwcm9wID0gbW9tZW50UHJvcGVydGllc1tpXTsKICAgICAgICAgICAgICAgIHZhbCA9IGZyb21bcHJvcF07CiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbCAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgICAgICAgICAgICB0b1twcm9wXSA9IHZhbDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHRvOwogICAgfQoKICAgIGZ1bmN0aW9uIGFic1JvdW5kKG51bWJlcikgewogICAgICAgIGlmIChudW1iZXIgPCAwKSB7CiAgICAgICAgICAgIHJldHVybiBNYXRoLmNlaWwobnVtYmVyKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihudW1iZXIpOwogICAgICAgIH0KICAgIH0KCiAgICAvLyBsZWZ0IHplcm8gZmlsbCBhIG51bWJlcgogICAgLy8gc2VlIGh0dHA6Ly9qc3BlcmYuY29tL2xlZnQtemVyby1maWxsaW5nIGZvciBwZXJmb3JtYW5jZSBjb21wYXJpc29uCiAgICBmdW5jdGlvbiBsZWZ0WmVyb0ZpbGwobnVtYmVyLCB0YXJnZXRMZW5ndGgsIGZvcmNlU2lnbikgewogICAgICAgIHZhciBvdXRwdXQgPSAnJyArIE1hdGguYWJzKG51bWJlciksCiAgICAgICAgICAgIHNpZ24gPSBudW1iZXIgPj0gMDsKCiAgICAgICAgd2hpbGUgKG91dHB1dC5sZW5ndGggPCB0YXJnZXRMZW5ndGgpIHsKICAgICAgICAgICAgb3V0cHV0ID0gJzAnICsgb3V0cHV0OwogICAgICAgIH0KICAgICAgICByZXR1cm4gKHNpZ24gPyAoZm9yY2VTaWduID8gJysnIDogJycpIDogJy0nKSArIG91dHB1dDsKICAgIH0KCiAgICBmdW5jdGlvbiBwb3NpdGl2ZU1vbWVudHNEaWZmZXJlbmNlKGJhc2UsIG90aGVyKSB7CiAgICAgICAgdmFyIHJlcyA9IHttaWxsaXNlY29uZHM6IDAsIG1vbnRoczogMH07CgogICAgICAgIHJlcy5tb250aHMgPSBvdGhlci5tb250aCgpIC0gYmFzZS5tb250aCgpICsKICAgICAgICAgICAgKG90aGVyLnllYXIoKSAtIGJhc2UueWVhcigpKSAqIDEyOwogICAgICAgIGlmIChiYXNlLmNsb25lKCkuYWRkKHJlcy5tb250aHMsICdNJykuaXNBZnRlcihvdGhlcikpIHsKICAgICAgICAgICAgLS1yZXMubW9udGhzOwogICAgICAgIH0KCiAgICAgICAgcmVzLm1pbGxpc2Vjb25kcyA9ICtvdGhlciAtICsoYmFzZS5jbG9uZSgpLmFkZChyZXMubW9udGhzLCAnTScpKTsKCiAgICAgICAgcmV0dXJuIHJlczsKICAgIH0KCiAgICBmdW5jdGlvbiBtb21lbnRzRGlmZmVyZW5jZShiYXNlLCBvdGhlcikgewogICAgICAgIHZhciByZXM7CiAgICAgICAgb3RoZXIgPSBtYWtlQXMob3RoZXIsIGJhc2UpOwogICAgICAgIGlmIChiYXNlLmlzQmVmb3JlKG90aGVyKSkgewogICAgICAgICAgICByZXMgPSBwb3NpdGl2ZU1vbWVudHNEaWZmZXJlbmNlKGJhc2UsIG90aGVyKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXMgPSBwb3NpdGl2ZU1vbWVudHNEaWZmZXJlbmNlKG90aGVyLCBiYXNlKTsKICAgICAgICAgICAgcmVzLm1pbGxpc2Vjb25kcyA9IC1yZXMubWlsbGlzZWNvbmRzOwogICAgICAgICAgICByZXMubW9udGhzID0gLXJlcy5tb250aHM7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gcmVzOwogICAgfQoKICAgIC8vIFRPRE86IHJlbW92ZSAnbmFtZScgYXJnIGFmdGVyIGRlcHJlY2F0aW9uIGlzIHJlbW92ZWQKICAgIGZ1bmN0aW9uIGNyZWF0ZUFkZGVyKGRpcmVjdGlvbiwgbmFtZSkgewogICAgICAgIHJldHVybiBmdW5jdGlvbiAodmFsLCBwZXJpb2QpIHsKICAgICAgICAgICAgdmFyIGR1ciwgdG1wOwogICAgICAgICAgICAvL2ludmVydCB0aGUgYXJndW1lbnRzLCBidXQgY29tcGxhaW4gYWJvdXQgaXQKICAgICAgICAgICAgaWYgKHBlcmlvZCAhPT0gbnVsbCAmJiAhaXNOYU4oK3BlcmlvZCkpIHsKICAgICAgICAgICAgICAgIGRlcHJlY2F0ZVNpbXBsZShuYW1lLCAnbW9tZW50KCkuJyArIG5hbWUgICsgJyhwZXJpb2QsIG51bWJlcikgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBtb21lbnQoKS4nICsgbmFtZSArICcobnVtYmVyLCBwZXJpb2QpLicpOwogICAgICAgICAgICAgICAgdG1wID0gdmFsOyB2YWwgPSBwZXJpb2Q7IHBlcmlvZCA9IHRtcDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFsID0gdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgPyArdmFsIDogdmFsOwogICAgICAgICAgICBkdXIgPSBtb21lbnQuZHVyYXRpb24odmFsLCBwZXJpb2QpOwogICAgICAgICAgICBhZGRPclN1YnRyYWN0RHVyYXRpb25Gcm9tTW9tZW50KHRoaXMsIGR1ciwgZGlyZWN0aW9uKTsKICAgICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgICAgfTsKICAgIH0KCiAgICBmdW5jdGlvbiBhZGRPclN1YnRyYWN0RHVyYXRpb25Gcm9tTW9tZW50KG1vbSwgZHVyYXRpb24sIGlzQWRkaW5nLCB1cGRhdGVPZmZzZXQpIHsKICAgICAgICB2YXIgbWlsbGlzZWNvbmRzID0gZHVyYXRpb24uX21pbGxpc2Vjb25kcywKICAgICAgICAgICAgZGF5cyA9IGR1cmF0aW9uLl9kYXlzLAogICAgICAgICAgICBtb250aHMgPSBkdXJhdGlvbi5fbW9udGhzOwogICAgICAgIHVwZGF0ZU9mZnNldCA9IHVwZGF0ZU9mZnNldCA9PSBudWxsID8gdHJ1ZSA6IHVwZGF0ZU9mZnNldDsKCiAgICAgICAgaWYgKG1pbGxpc2Vjb25kcykgewogICAgICAgICAgICBtb20uX2Quc2V0VGltZSgrbW9tLl9kICsgbWlsbGlzZWNvbmRzICogaXNBZGRpbmcpOwogICAgICAgIH0KICAgICAgICBpZiAoZGF5cykgewogICAgICAgICAgICByYXdTZXR0ZXIobW9tLCAnRGF0ZScsIHJhd0dldHRlcihtb20sICdEYXRlJykgKyBkYXlzICogaXNBZGRpbmcpOwogICAgICAgIH0KICAgICAgICBpZiAobW9udGhzKSB7CiAgICAgICAgICAgIHJhd01vbnRoU2V0dGVyKG1vbSwgcmF3R2V0dGVyKG1vbSwgJ01vbnRoJykgKyBtb250aHMgKiBpc0FkZGluZyk7CiAgICAgICAgfQogICAgICAgIGlmICh1cGRhdGVPZmZzZXQpIHsKICAgICAgICAgICAgbW9tZW50LnVwZGF0ZU9mZnNldChtb20sIGRheXMgfHwgbW9udGhzKTsKICAgICAgICB9CiAgICB9CgogICAgLy8gY2hlY2sgaWYgaXMgYW4gYXJyYXkKICAgIGZ1bmN0aW9uIGlzQXJyYXkoaW5wdXQpIHsKICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGlucHV0KSA9PT0gJ1tvYmplY3QgQXJyYXldJzsKICAgIH0KCiAgICBmdW5jdGlvbiBpc0RhdGUoaW5wdXQpIHsKICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGlucHV0KSA9PT0gJ1tvYmplY3QgRGF0ZV0nIHx8CiAgICAgICAgICAgIGlucHV0IGluc3RhbmNlb2YgRGF0ZTsKICAgIH0KCiAgICAvLyBjb21wYXJlIHR3byBhcnJheXMsIHJldHVybiB0aGUgbnVtYmVyIG9mIGRpZmZlcmVuY2VzCiAgICBmdW5jdGlvbiBjb21wYXJlQXJyYXlzKGFycmF5MSwgYXJyYXkyLCBkb250Q29udmVydCkgewogICAgICAgIHZhciBsZW4gPSBNYXRoLm1pbihhcnJheTEubGVuZ3RoLCBhcnJheTIubGVuZ3RoKSwKICAgICAgICAgICAgbGVuZ3RoRGlmZiA9IE1hdGguYWJzKGFycmF5MS5sZW5ndGggLSBhcnJheTIubGVuZ3RoKSwKICAgICAgICAgICAgZGlmZnMgPSAwLAogICAgICAgICAgICBpOwogICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykgewogICAgICAgICAgICBpZiAoKGRvbnRDb252ZXJ0ICYmIGFycmF5MVtpXSAhPT0gYXJyYXkyW2ldKSB8fAogICAgICAgICAgICAgICAgKCFkb250Q29udmVydCAmJiB0b0ludChhcnJheTFbaV0pICE9PSB0b0ludChhcnJheTJbaV0pKSkgewogICAgICAgICAgICAgICAgZGlmZnMrKzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gZGlmZnMgKyBsZW5ndGhEaWZmOwogICAgfQoKICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZVVuaXRzKHVuaXRzKSB7CiAgICAgICAgaWYgKHVuaXRzKSB7CiAgICAgICAgICAgIHZhciBsb3dlcmVkID0gdW5pdHMudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8oLilzJC8sICckMScpOwogICAgICAgICAgICB1bml0cyA9IHVuaXRBbGlhc2VzW3VuaXRzXSB8fCBjYW1lbEZ1bmN0aW9uc1tsb3dlcmVkXSB8fCBsb3dlcmVkOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdW5pdHM7CiAgICB9CgogICAgZnVuY3Rpb24gbm9ybWFsaXplT2JqZWN0VW5pdHMoaW5wdXRPYmplY3QpIHsKICAgICAgICB2YXIgbm9ybWFsaXplZElucHV0ID0ge30sCiAgICAgICAgICAgIG5vcm1hbGl6ZWRQcm9wLAogICAgICAgICAgICBwcm9wOwoKICAgICAgICBmb3IgKHByb3AgaW4gaW5wdXRPYmplY3QpIHsKICAgICAgICAgICAgaWYgKGhhc093blByb3AoaW5wdXRPYmplY3QsIHByb3ApKSB7CiAgICAgICAgICAgICAgICBub3JtYWxpemVkUHJvcCA9IG5vcm1hbGl6ZVVuaXRzKHByb3ApOwogICAgICAgICAgICAgICAgaWYgKG5vcm1hbGl6ZWRQcm9wKSB7CiAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZElucHV0W25vcm1hbGl6ZWRQcm9wXSA9IGlucHV0T2JqZWN0W3Byb3BdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gbm9ybWFsaXplZElucHV0OwogICAgfQoKICAgIGZ1bmN0aW9uIG1ha2VMaXN0KGZpZWxkKSB7CiAgICAgICAgdmFyIGNvdW50LCBzZXR0ZXI7CgogICAgICAgIGlmIChmaWVsZC5pbmRleE9mKCd3ZWVrJykgPT09IDApIHsKICAgICAgICAgICAgY291bnQgPSA3OwogICAgICAgICAgICBzZXR0ZXIgPSAnZGF5JzsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoZmllbGQuaW5kZXhPZignbW9udGgnKSA9PT0gMCkgewogICAgICAgICAgICBjb3VudCA9IDEyOwogICAgICAgICAgICBzZXR0ZXIgPSAnbW9udGgnOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgbW9tZW50W2ZpZWxkXSA9IGZ1bmN0aW9uIChmb3JtYXQsIGluZGV4KSB7CiAgICAgICAgICAgIHZhciBpLCBnZXR0ZXIsCiAgICAgICAgICAgICAgICBtZXRob2QgPSBtb21lbnQuX2xvY2FsZVtmaWVsZF0sCiAgICAgICAgICAgICAgICByZXN1bHRzID0gW107CgogICAgICAgICAgICBpZiAodHlwZW9mIGZvcm1hdCA9PT0gJ251bWJlcicpIHsKICAgICAgICAgICAgICAgIGluZGV4ID0gZm9ybWF0OwogICAgICAgICAgICAgICAgZm9ybWF0ID0gdW5kZWZpbmVkOwogICAgICAgICAgICB9CgogICAgICAgICAgICBnZXR0ZXIgPSBmdW5jdGlvbiAoaSkgewogICAgICAgICAgICAgICAgdmFyIG0gPSBtb21lbnQoKS51dGMoKS5zZXQoc2V0dGVyLCBpKTsKICAgICAgICAgICAgICAgIHJldHVybiBtZXRob2QuY2FsbChtb21lbnQuX2xvY2FsZSwgbSwgZm9ybWF0IHx8ICcnKTsKICAgICAgICAgICAgfTsKCiAgICAgICAgICAgIGlmIChpbmRleCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0dGVyKGluZGV4KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKGdldHRlcihpKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0czsKICAgICAgICAgICAgfQogICAgICAgIH07CiAgICB9CgogICAgZnVuY3Rpb24gdG9JbnQoYXJndW1lbnRGb3JDb2VyY2lvbikgewogICAgICAgIHZhciBjb2VyY2VkTnVtYmVyID0gK2FyZ3VtZW50Rm9yQ29lcmNpb24sCiAgICAgICAgICAgIHZhbHVlID0gMDsKCiAgICAgICAgaWYgKGNvZXJjZWROdW1iZXIgIT09IDAgJiYgaXNGaW5pdGUoY29lcmNlZE51bWJlcikpIHsKICAgICAgICAgICAgaWYgKGNvZXJjZWROdW1iZXIgPj0gMCkgewogICAgICAgICAgICAgICAgdmFsdWUgPSBNYXRoLmZsb29yKGNvZXJjZWROdW1iZXIpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdmFsdWUgPSBNYXRoLmNlaWwoY29lcmNlZE51bWJlcik7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiB2YWx1ZTsKICAgIH0KCiAgICBmdW5jdGlvbiBkYXlzSW5Nb250aCh5ZWFyLCBtb250aCkgewogICAgICAgIHJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyh5ZWFyLCBtb250aCArIDEsIDApKS5nZXRVVENEYXRlKCk7CiAgICB9CgogICAgZnVuY3Rpb24gd2Vla3NJblllYXIoeWVhciwgZG93LCBkb3kpIHsKICAgICAgICByZXR1cm4gd2Vla09mWWVhcihtb21lbnQoW3llYXIsIDExLCAzMSArIGRvdyAtIGRveV0pLCBkb3csIGRveSkud2VlazsKICAgIH0KCiAgICBmdW5jdGlvbiBkYXlzSW5ZZWFyKHllYXIpIHsKICAgICAgICByZXR1cm4gaXNMZWFwWWVhcih5ZWFyKSA/IDM2NiA6IDM2NTsKICAgIH0KCiAgICBmdW5jdGlvbiBpc0xlYXBZZWFyKHllYXIpIHsKICAgICAgICByZXR1cm4gKHllYXIgJSA0ID09PSAwICYmIHllYXIgJSAxMDAgIT09IDApIHx8IHllYXIgJSA0MDAgPT09IDA7CiAgICB9CgogICAgZnVuY3Rpb24gY2hlY2tPdmVyZmxvdyhtKSB7CiAgICAgICAgdmFyIG92ZXJmbG93OwogICAgICAgIGlmIChtLl9hICYmIG0uX3BmLm92ZXJmbG93ID09PSAtMikgewogICAgICAgICAgICBvdmVyZmxvdyA9CiAgICAgICAgICAgICAgICBtLl9hW01PTlRIXSA8IDAgfHwgbS5fYVtNT05USF0gPiAxMSA/IE1PTlRIIDoKICAgICAgICAgICAgICAgIG0uX2FbREFURV0gPCAxIHx8IG0uX2FbREFURV0gPiBkYXlzSW5Nb250aChtLl9hW1lFQVJdLCBtLl9hW01PTlRIXSkgPyBEQVRFIDoKICAgICAgICAgICAgICAgIG0uX2FbSE9VUl0gPCAwIHx8IG0uX2FbSE9VUl0gPiAyNCB8fAogICAgICAgICAgICAgICAgICAgIChtLl9hW0hPVVJdID09PSAyNCAmJiAobS5fYVtNSU5VVEVdICE9PSAwIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtLl9hW1NFQ09ORF0gIT09IDAgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0uX2FbTUlMTElTRUNPTkRdICE9PSAwKSkgPyBIT1VSIDoKICAgICAgICAgICAgICAgIG0uX2FbTUlOVVRFXSA8IDAgfHwgbS5fYVtNSU5VVEVdID4gNTkgPyBNSU5VVEUgOgogICAgICAgICAgICAgICAgbS5fYVtTRUNPTkRdIDwgMCB8fCBtLl9hW1NFQ09ORF0gPiA1OSA/IFNFQ09ORCA6CiAgICAgICAgICAgICAgICBtLl9hW01JTExJU0VDT05EXSA8IDAgfHwgbS5fYVtNSUxMSVNFQ09ORF0gPiA5OTkgPyBNSUxMSVNFQ09ORCA6CiAgICAgICAgICAgICAgICAtMTsKCiAgICAgICAgICAgIGlmIChtLl9wZi5fb3ZlcmZsb3dEYXlPZlllYXIgJiYgKG92ZXJmbG93IDwgWUVBUiB8fCBvdmVyZmxvdyA+IERBVEUpKSB7CiAgICAgICAgICAgICAgICBvdmVyZmxvdyA9IERBVEU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG0uX3BmLm92ZXJmbG93ID0gb3ZlcmZsb3c7CiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGlzVmFsaWQobSkgewogICAgICAgIGlmIChtLl9pc1ZhbGlkID09IG51bGwpIHsKICAgICAgICAgICAgbS5faXNWYWxpZCA9ICFpc05hTihtLl9kLmdldFRpbWUoKSkgJiYKICAgICAgICAgICAgICAgIG0uX3BmLm92ZXJmbG93IDwgMCAmJgogICAgICAgICAgICAgICAgIW0uX3BmLmVtcHR5ICYmCiAgICAgICAgICAgICAgICAhbS5fcGYuaW52YWxpZE1vbnRoICYmCiAgICAgICAgICAgICAgICAhbS5fcGYubnVsbElucHV0ICYmCiAgICAgICAgICAgICAgICAhbS5fcGYuaW52YWxpZEZvcm1hdCAmJgogICAgICAgICAgICAgICAgIW0uX3BmLnVzZXJJbnZhbGlkYXRlZDsKCiAgICAgICAgICAgIGlmIChtLl9zdHJpY3QpIHsKICAgICAgICAgICAgICAgIG0uX2lzVmFsaWQgPSBtLl9pc1ZhbGlkICYmCiAgICAgICAgICAgICAgICAgICAgbS5fcGYuY2hhcnNMZWZ0T3ZlciA9PT0gMCAmJgogICAgICAgICAgICAgICAgICAgIG0uX3BmLnVudXNlZFRva2Vucy5sZW5ndGggPT09IDAgJiYKICAgICAgICAgICAgICAgICAgICBtLl9wZi5iaWdIb3VyID09PSB1bmRlZmluZWQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIG0uX2lzVmFsaWQ7CiAgICB9CgogICAgZnVuY3Rpb24gbm9ybWFsaXplTG9jYWxlKGtleSkgewogICAgICAgIHJldHVybiBrZXkgPyBrZXkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKCdfJywgJy0nKSA6IGtleTsKICAgIH0KCiAgICAvLyBwaWNrIHRoZSBsb2NhbGUgZnJvbSB0aGUgYXJyYXkKICAgIC8vIHRyeSBbJ2VuLWF1JywgJ2VuLWdiJ10gYXMgJ2VuLWF1JywgJ2VuLWdiJywgJ2VuJywgYXMgaW4gbW92ZSB0aHJvdWdoIHRoZSBsaXN0IHRyeWluZyBlYWNoCiAgICAvLyBzdWJzdHJpbmcgZnJvbSBtb3N0IHNwZWNpZmljIHRvIGxlYXN0LCBidXQgbW92ZSB0byB0aGUgbmV4dCBhcnJheSBpdGVtIGlmIGl0J3MgYSBtb3JlIHNwZWNpZmljIHZhcmlhbnQgdGhhbiB0aGUgY3VycmVudCByb290CiAgICBmdW5jdGlvbiBjaG9vc2VMb2NhbGUobmFtZXMpIHsKICAgICAgICB2YXIgaSA9IDAsIGosIG5leHQsIGxvY2FsZSwgc3BsaXQ7CgogICAgICAgIHdoaWxlIChpIDwgbmFtZXMubGVuZ3RoKSB7CiAgICAgICAgICAgIHNwbGl0ID0gbm9ybWFsaXplTG9jYWxlKG5hbWVzW2ldKS5zcGxpdCgnLScpOwogICAgICAgICAgICBqID0gc3BsaXQubGVuZ3RoOwogICAgICAgICAgICBuZXh0ID0gbm9ybWFsaXplTG9jYWxlKG5hbWVzW2kgKyAxXSk7CiAgICAgICAgICAgIG5leHQgPSBuZXh0ID8gbmV4dC5zcGxpdCgnLScpIDogbnVsbDsKICAgICAgICAgICAgd2hpbGUgKGogPiAwKSB7CiAgICAgICAgICAgICAgICBsb2NhbGUgPSBsb2FkTG9jYWxlKHNwbGl0LnNsaWNlKDAsIGopLmpvaW4oJy0nKSk7CiAgICAgICAgICAgICAgICBpZiAobG9jYWxlKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxvY2FsZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChuZXh0ICYmIG5leHQubGVuZ3RoID49IGogJiYgY29tcGFyZUFycmF5cyhzcGxpdCwgbmV4dCwgdHJ1ZSkgPj0gaiAtIDEpIHsKICAgICAgICAgICAgICAgICAgICAvL3RoZSBuZXh0IGFycmF5IGl0ZW0gaXMgYmV0dGVyIHRoYW4gYSBzaGFsbG93ZXIgc3Vic3RyaW5nIG9mIHRoaXMgb25lCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBqLS07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaSsrOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBmdW5jdGlvbiBsb2FkTG9jYWxlKG5hbWUpIHsKICAgICAgICB2YXIgb2xkTG9jYWxlID0gbnVsbDsKICAgICAgICBpZiAoIWxvY2FsZXNbbmFtZV0gJiYgaGFzTW9kdWxlKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBvbGRMb2NhbGUgPSBtb21lbnQubG9jYWxlKCk7CiAgICAgICAgICAgICAgICByZXF1aXJlKCcuL2xvY2FsZS8nICsgbmFtZSk7CiAgICAgICAgICAgICAgICAvLyBiZWNhdXNlIGRlZmluZUxvY2FsZSBjdXJyZW50bHkgYWxzbyBzZXRzIHRoZSBnbG9iYWwgbG9jYWxlLCB3ZSB3YW50IHRvIHVuZG8gdGhhdCBmb3IgbGF6eSBsb2FkZWQgbG9jYWxlcwogICAgICAgICAgICAgICAgbW9tZW50LmxvY2FsZShvbGRMb2NhbGUpOwogICAgICAgICAgICB9IGNhdGNoIChlKSB7IH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIGxvY2FsZXNbbmFtZV07CiAgICB9CgogICAgLy8gUmV0dXJuIGEgbW9tZW50IGZyb20gaW5wdXQsIHRoYXQgaXMgbG9jYWwvdXRjL3pvbmUgZXF1aXZhbGVudCB0byBtb2RlbC4KICAgIGZ1bmN0aW9uIG1ha2VBcyhpbnB1dCwgbW9kZWwpIHsKICAgICAgICB2YXIgcmVzLCBkaWZmOwogICAgICAgIGlmIChtb2RlbC5faXNVVEMpIHsKICAgICAgICAgICAgcmVzID0gbW9kZWwuY2xvbmUoKTsKICAgICAgICAgICAgZGlmZiA9IChtb21lbnQuaXNNb21lbnQoaW5wdXQpIHx8IGlzRGF0ZShpbnB1dCkgPwogICAgICAgICAgICAgICAgICAgICtpbnB1dCA6ICttb21lbnQoaW5wdXQpKSAtICgrcmVzKTsKICAgICAgICAgICAgLy8gVXNlIGxvdy1sZXZlbCBhcGksIGJlY2F1c2UgdGhpcyBmbiBpcyBsb3ctbGV2ZWwgYXBpLgogICAgICAgICAgICByZXMuX2Quc2V0VGltZSgrcmVzLl9kICsgZGlmZik7CiAgICAgICAgICAgIG1vbWVudC51cGRhdGVPZmZzZXQocmVzLCBmYWxzZSk7CiAgICAgICAgICAgIHJldHVybiByZXM7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIG1vbWVudChpbnB1dCkubG9jYWwoKTsKICAgICAgICB9CiAgICB9CgogICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgICAgIExvY2FsZQogICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKCiAgICBleHRlbmQoTG9jYWxlLnByb3RvdHlwZSwgewoKICAgICAgICBzZXQgOiBmdW5jdGlvbiAoY29uZmlnKSB7CiAgICAgICAgICAgIHZhciBwcm9wLCBpOwogICAgICAgICAgICBmb3IgKGkgaW4gY29uZmlnKSB7CiAgICAgICAgICAgICAgICBwcm9wID0gY29uZmlnW2ldOwogICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgICAgICAgICAgICAgdGhpc1tpXSA9IHByb3A7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHRoaXNbJ18nICsgaV0gPSBwcm9wOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIExlbmllbnQgb3JkaW5hbCBwYXJzaW5nIGFjY2VwdHMganVzdCBhIG51bWJlciBpbiBhZGRpdGlvbiB0bwogICAgICAgICAgICAvLyBudW1iZXIgKyAocG9zc2libHkpIHN0dWZmIGNvbWluZyBmcm9tIF9vcmRpbmFsUGFyc2VMZW5pZW50LgogICAgICAgICAgICB0aGlzLl9vcmRpbmFsUGFyc2VMZW5pZW50ID0gbmV3IFJlZ0V4cCh0aGlzLl9vcmRpbmFsUGFyc2Uuc291cmNlICsgJ3wnICsgL1xkezEsMn0vLnNvdXJjZSk7CiAgICAgICAgfSwKCiAgICAgICAgX21vbnRocyA6ICdKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyJy5zcGxpdCgnXycpLAogICAgICAgIG1vbnRocyA6IGZ1bmN0aW9uIChtKSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNbbS5tb250aCgpXTsKICAgICAgICB9LAoKICAgICAgICBfbW9udGhzU2hvcnQgOiAnSmFuX0ZlYl9NYXJfQXByX01heV9KdW5fSnVsX0F1Z19TZXBfT2N0X05vdl9EZWMnLnNwbGl0KCdfJyksCiAgICAgICAgbW9udGhzU2hvcnQgOiBmdW5jdGlvbiAobSkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5fbW9udGhzU2hvcnRbbS5tb250aCgpXTsKICAgICAgICB9LAoKICAgICAgICBtb250aHNQYXJzZSA6IGZ1bmN0aW9uIChtb250aE5hbWUsIGZvcm1hdCwgc3RyaWN0KSB7CiAgICAgICAgICAgIHZhciBpLCBtb20sIHJlZ2V4OwoKICAgICAgICAgICAgaWYgKCF0aGlzLl9tb250aHNQYXJzZSkgewogICAgICAgICAgICAgICAgdGhpcy5fbW9udGhzUGFyc2UgPSBbXTsKICAgICAgICAgICAgICAgIHRoaXMuX2xvbmdNb250aHNQYXJzZSA9IFtdOwogICAgICAgICAgICAgICAgdGhpcy5fc2hvcnRNb250aHNQYXJzZSA9IFtdOwogICAgICAgICAgICB9CgogICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTI7IGkrKykgewogICAgICAgICAgICAgICAgLy8gbWFrZSB0aGUgcmVnZXggaWYgd2UgZG9uJ3QgaGF2ZSBpdCBhbHJlYWR5CiAgICAgICAgICAgICAgICBtb20gPSBtb21lbnQudXRjKFsyMDAwLCBpXSk7CiAgICAgICAgICAgICAgICBpZiAoc3RyaWN0ICYmICF0aGlzLl9sb25nTW9udGhzUGFyc2VbaV0pIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLl9sb25nTW9udGhzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKCdeJyArIHRoaXMubW9udGhzKG1vbSwgJycpLnJlcGxhY2UoJy4nLCAnJykgKyAnJCcsICdpJyk7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2hvcnRNb250aHNQYXJzZVtpXSA9IG5ldyBSZWdFeHAoJ14nICsgdGhpcy5tb250aHNTaG9ydChtb20sICcnKS5yZXBsYWNlKCcuJywgJycpICsgJyQnLCAnaScpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCFzdHJpY3QgJiYgIXRoaXMuX21vbnRoc1BhcnNlW2ldKSB7CiAgICAgICAgICAgICAgICAgICAgcmVnZXggPSAnXicgKyB0aGlzLm1vbnRocyhtb20sICcnKSArICd8XicgKyB0aGlzLm1vbnRoc1Nob3J0KG1vbSwgJycpOwogICAgICAgICAgICAgICAgICAgIHRoaXMuX21vbnRoc1BhcnNlW2ldID0gbmV3IFJlZ0V4cChyZWdleC5yZXBsYWNlKCcuJywgJycpLCAnaScpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgLy8gdGVzdCB0aGUgcmVnZXgKICAgICAgICAgICAgICAgIGlmIChzdHJpY3QgJiYgZm9ybWF0ID09PSAnTU1NTScgJiYgdGhpcy5fbG9uZ01vbnRoc1BhcnNlW2ldLnRlc3QobW9udGhOYW1lKSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBpOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJpY3QgJiYgZm9ybWF0ID09PSAnTU1NJyAmJiB0aGlzLl9zaG9ydE1vbnRoc1BhcnNlW2ldLnRlc3QobW9udGhOYW1lKSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBpOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmICghc3RyaWN0ICYmIHRoaXMuX21vbnRoc1BhcnNlW2ldLnRlc3QobW9udGhOYW1lKSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgX3dlZWtkYXlzIDogJ1N1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Jy5zcGxpdCgnXycpLAogICAgICAgIHdlZWtkYXlzIDogZnVuY3Rpb24gKG0pIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzW20uZGF5KCldOwogICAgICAgIH0sCgogICAgICAgIF93ZWVrZGF5c1Nob3J0IDogJ1N1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCcuc3BsaXQoJ18nKSwKICAgICAgICB3ZWVrZGF5c1Nob3J0IDogZnVuY3Rpb24gKG0pIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzU2hvcnRbbS5kYXkoKV07CiAgICAgICAgfSwKCiAgICAgICAgX3dlZWtkYXlzTWluIDogJ1N1X01vX1R1X1dlX1RoX0ZyX1NhJy5zcGxpdCgnXycpLAogICAgICAgIHdlZWtkYXlzTWluIDogZnVuY3Rpb24gKG0pIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzTWluW20uZGF5KCldOwogICAgICAgIH0sCgogICAgICAgIHdlZWtkYXlzUGFyc2UgOiBmdW5jdGlvbiAod2Vla2RheU5hbWUpIHsKICAgICAgICAgICAgdmFyIGksIG1vbSwgcmVnZXg7CgogICAgICAgICAgICBpZiAoIXRoaXMuX3dlZWtkYXlzUGFyc2UpIHsKICAgICAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzUGFyc2UgPSBbXTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDc7IGkrKykgewogICAgICAgICAgICAgICAgLy8gbWFrZSB0aGUgcmVnZXggaWYgd2UgZG9uJ3QgaGF2ZSBpdCBhbHJlYWR5CiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX3dlZWtkYXlzUGFyc2VbaV0pIHsKICAgICAgICAgICAgICAgICAgICBtb20gPSBtb21lbnQoWzIwMDAsIDFdKS5kYXkoaSk7CiAgICAgICAgICAgICAgICAgICAgcmVnZXggPSAnXicgKyB0aGlzLndlZWtkYXlzKG1vbSwgJycpICsgJ3xeJyArIHRoaXMud2Vla2RheXNTaG9ydChtb20sICcnKSArICd8XicgKyB0aGlzLndlZWtkYXlzTWluKG1vbSwgJycpOwogICAgICAgICAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKHJlZ2V4LnJlcGxhY2UoJy4nLCAnJyksICdpJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAvLyB0ZXN0IHRoZSByZWdleAogICAgICAgICAgICAgICAgaWYgKHRoaXMuX3dlZWtkYXlzUGFyc2VbaV0udGVzdCh3ZWVrZGF5TmFtZSkpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gaTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIF9sb25nRGF0ZUZvcm1hdCA6IHsKICAgICAgICAgICAgTFRTIDogJ2g6bW06c3MgQScsCiAgICAgICAgICAgIExUIDogJ2g6bW0gQScsCiAgICAgICAgICAgIEwgOiAnTU0vREQvWVlZWScsCiAgICAgICAgICAgIExMIDogJ01NTU0gRCwgWVlZWScsCiAgICAgICAgICAgIExMTCA6ICdNTU1NIEQsIFlZWVkgTFQnLAogICAgICAgICAgICBMTExMIDogJ2RkZGQsIE1NTU0gRCwgWVlZWSBMVCcKICAgICAgICB9LAogICAgICAgIGxvbmdEYXRlRm9ybWF0IDogZnVuY3Rpb24gKGtleSkgewogICAgICAgICAgICB2YXIgb3V0cHV0ID0gdGhpcy5fbG9uZ0RhdGVGb3JtYXRba2V5XTsKICAgICAgICAgICAgaWYgKCFvdXRwdXQgJiYgdGhpcy5fbG9uZ0RhdGVGb3JtYXRba2V5LnRvVXBwZXJDYXNlKCldKSB7CiAgICAgICAgICAgICAgICBvdXRwdXQgPSB0aGlzLl9sb25nRGF0ZUZvcm1hdFtrZXkudG9VcHBlckNhc2UoKV0ucmVwbGFjZSgvTU1NTXxNTXxERHxkZGRkL2csIGZ1bmN0aW9uICh2YWwpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsLnNsaWNlKDEpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB0aGlzLl9sb25nRGF0ZUZvcm1hdFtrZXldID0gb3V0cHV0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBvdXRwdXQ7CiAgICAgICAgfSwKCiAgICAgICAgaXNQTSA6IGZ1bmN0aW9uIChpbnB1dCkgewogICAgICAgICAgICAvLyBJRTggUXVpcmtzIE1vZGUgJiBJRTcgU3RhbmRhcmRzIE1vZGUgZG8gbm90IGFsbG93IGFjY2Vzc2luZyBzdHJpbmdzIGxpa2UgYXJyYXlzCiAgICAgICAgICAgIC8vIFVzaW5nIGNoYXJBdCBzaG91bGQgYmUgbW9yZSBjb21wYXRpYmxlLgogICAgICAgICAgICByZXR1cm4gKChpbnB1dCArICcnKS50b0xvd2VyQ2FzZSgpLmNoYXJBdCgwKSA9PT0gJ3AnKTsKICAgICAgICB9LAoKICAgICAgICBfbWVyaWRpZW1QYXJzZSA6IC9bYXBdXC4/bT9cLj8vaSwKICAgICAgICBtZXJpZGllbSA6IGZ1bmN0aW9uIChob3VycywgbWludXRlcywgaXNMb3dlcikgewogICAgICAgICAgICBpZiAoaG91cnMgPiAxMSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAncG0nIDogJ1BNJzsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ2FtJyA6ICdBTSc7CiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBfY2FsZW5kYXIgOiB7CiAgICAgICAgICAgIHNhbWVEYXkgOiAnW1RvZGF5IGF0XSBMVCcsCiAgICAgICAgICAgIG5leHREYXkgOiAnW1RvbW9ycm93IGF0XSBMVCcsCiAgICAgICAgICAgIG5leHRXZWVrIDogJ2RkZGQgW2F0XSBMVCcsCiAgICAgICAgICAgIGxhc3REYXkgOiAnW1llc3RlcmRheSBhdF0gTFQnLAogICAgICAgICAgICBsYXN0V2VlayA6ICdbTGFzdF0gZGRkZCBbYXRdIExUJywKICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCcKICAgICAgICB9LAogICAgICAgIGNhbGVuZGFyIDogZnVuY3Rpb24gKGtleSwgbW9tLCBub3cpIHsKICAgICAgICAgICAgdmFyIG91dHB1dCA9IHRoaXMuX2NhbGVuZGFyW2tleV07CiAgICAgICAgICAgIHJldHVybiB0eXBlb2Ygb3V0cHV0ID09PSAnZnVuY3Rpb24nID8gb3V0cHV0LmFwcGx5KG1vbSwgW25vd10pIDogb3V0cHV0OwogICAgICAgIH0sCgogICAgICAgIF9yZWxhdGl2ZVRpbWUgOiB7CiAgICAgICAgICAgIGZ1dHVyZSA6ICdpbiAlcycsCiAgICAgICAgICAgIHBhc3QgOiAnJXMgYWdvJywKICAgICAgICAgICAgcyA6ICdhIGZldyBzZWNvbmRzJywKICAgICAgICAgICAgbSA6ICdhIG1pbnV0ZScsCiAgICAgICAgICAgIG1tIDogJyVkIG1pbnV0ZXMnLAogICAgICAgICAgICBoIDogJ2FuIGhvdXInLAogICAgICAgICAgICBoaCA6ICclZCBob3VycycsCiAgICAgICAgICAgIGQgOiAnYSBkYXknLAogICAgICAgICAgICBkZCA6ICclZCBkYXlzJywKICAgICAgICAgICAgTSA6ICdhIG1vbnRoJywKICAgICAgICAgICAgTU0gOiAnJWQgbW9udGhzJywKICAgICAgICAgICAgeSA6ICdhIHllYXInLAogICAgICAgICAgICB5eSA6ICclZCB5ZWFycycKICAgICAgICB9LAoKICAgICAgICByZWxhdGl2ZVRpbWUgOiBmdW5jdGlvbiAobnVtYmVyLCB3aXRob3V0U3VmZml4LCBzdHJpbmcsIGlzRnV0dXJlKSB7CiAgICAgICAgICAgIHZhciBvdXRwdXQgPSB0aGlzLl9yZWxhdGl2ZVRpbWVbc3RyaW5nXTsKICAgICAgICAgICAgcmV0dXJuICh0eXBlb2Ygb3V0cHV0ID09PSAnZnVuY3Rpb24nKSA/CiAgICAgICAgICAgICAgICBvdXRwdXQobnVtYmVyLCB3aXRob3V0U3VmZml4LCBzdHJpbmcsIGlzRnV0dXJlKSA6CiAgICAgICAgICAgICAgICBvdXRwdXQucmVwbGFjZSgvJWQvaSwgbnVtYmVyKTsKICAgICAgICB9LAoKICAgICAgICBwYXN0RnV0dXJlIDogZnVuY3Rpb24gKGRpZmYsIG91dHB1dCkgewogICAgICAgICAgICB2YXIgZm9ybWF0ID0gdGhpcy5fcmVsYXRpdmVUaW1lW2RpZmYgPiAwID8gJ2Z1dHVyZScgOiAncGFzdCddOwogICAgICAgICAgICByZXR1cm4gdHlwZW9mIGZvcm1hdCA9PT0gJ2Z1bmN0aW9uJyA/IGZvcm1hdChvdXRwdXQpIDogZm9ybWF0LnJlcGxhY2UoLyVzL2ksIG91dHB1dCk7CiAgICAgICAgfSwKCiAgICAgICAgb3JkaW5hbCA6IGZ1bmN0aW9uIChudW1iZXIpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX29yZGluYWwucmVwbGFjZSgnJWQnLCBudW1iZXIpOwogICAgICAgIH0sCiAgICAgICAgX29yZGluYWwgOiAnJWQnLAogICAgICAgIF9vcmRpbmFsUGFyc2UgOiAvXGR7MSwyfS8sCgogICAgICAgIHByZXBhcnNlIDogZnVuY3Rpb24gKHN0cmluZykgewogICAgICAgICAgICByZXR1cm4gc3RyaW5nOwogICAgICAgIH0sCgogICAgICAgIHBvc3Rmb3JtYXQgOiBmdW5jdGlvbiAoc3RyaW5nKSB7CiAgICAgICAgICAgIHJldHVybiBzdHJpbmc7CiAgICAgICAgfSwKCiAgICAgICAgd2VlayA6IGZ1bmN0aW9uIChtb20pIHsKICAgICAgICAgICAgcmV0dXJuIHdlZWtPZlllYXIobW9tLCB0aGlzLl93ZWVrLmRvdywgdGhpcy5fd2Vlay5kb3kpLndlZWs7CiAgICAgICAgfSwKCiAgICAgICAgX3dlZWsgOiB7CiAgICAgICAgICAgIGRvdyA6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLgogICAgICAgICAgICBkb3kgOiA2ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiAxc3QgaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuCiAgICAgICAgfSwKCiAgICAgICAgX2ludmFsaWREYXRlOiAnSW52YWxpZCBkYXRlJywKICAgICAgICBpbnZhbGlkRGF0ZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5faW52YWxpZERhdGU7CiAgICAgICAgfQogICAgfSk7CgogICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgICAgIEZvcm1hdHRpbmcKICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCgogICAgZnVuY3Rpb24gcmVtb3ZlRm9ybWF0dGluZ1Rva2VucyhpbnB1dCkgewogICAgICAgIGlmIChpbnB1dC5tYXRjaCgvXFtbXHNcU10vKSkgewogICAgICAgICAgICByZXR1cm4gaW5wdXQucmVwbGFjZSgvXlxbfFxdJC9nLCAnJyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBpbnB1dC5yZXBsYWNlKC9cXC9nLCAnJyk7CiAgICB9CgogICAgZnVuY3Rpb24gbWFrZUZvcm1hdEZ1bmN0aW9uKGZvcm1hdCkgewogICAgICAgIHZhciBhcnJheSA9IGZvcm1hdC5tYXRjaChmb3JtYXR0aW5nVG9rZW5zKSwgaSwgbGVuZ3RoOwoKICAgICAgICBmb3IgKGkgPSAwLCBsZW5ndGggPSBhcnJheS5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAoZm9ybWF0VG9rZW5GdW5jdGlvbnNbYXJyYXlbaV1dKSB7CiAgICAgICAgICAgICAgICBhcnJheVtpXSA9IGZvcm1hdFRva2VuRnVuY3Rpb25zW2FycmF5W2ldXTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGFycmF5W2ldID0gcmVtb3ZlRm9ybWF0dGluZ1Rva2VucyhhcnJheVtpXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiBmdW5jdGlvbiAobW9tKSB7CiAgICAgICAgICAgIHZhciBvdXRwdXQgPSAnJzsKICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICBvdXRwdXQgKz0gYXJyYXlbaV0gaW5zdGFuY2VvZiBGdW5jdGlvbiA/IGFycmF5W2ldLmNhbGwobW9tLCBmb3JtYXQpIDogYXJyYXlbaV07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIG91dHB1dDsKICAgICAgICB9OwogICAgfQoKICAgIC8vIGZvcm1hdCBkYXRlIHVzaW5nIG5hdGl2ZSBkYXRlIG9iamVjdAogICAgZnVuY3Rpb24gZm9ybWF0TW9tZW50KG0sIGZvcm1hdCkgewogICAgICAgIGlmICghbS5pc1ZhbGlkKCkpIHsKICAgICAgICAgICAgcmV0dXJuIG0ubG9jYWxlRGF0YSgpLmludmFsaWREYXRlKCk7CiAgICAgICAgfQoKICAgICAgICBmb3JtYXQgPSBleHBhbmRGb3JtYXQoZm9ybWF0LCBtLmxvY2FsZURhdGEoKSk7CgogICAgICAgIGlmICghZm9ybWF0RnVuY3Rpb25zW2Zvcm1hdF0pIHsKICAgICAgICAgICAgZm9ybWF0RnVuY3Rpb25zW2Zvcm1hdF0gPSBtYWtlRm9ybWF0RnVuY3Rpb24oZm9ybWF0KTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBmb3JtYXRGdW5jdGlvbnNbZm9ybWF0XShtKTsKICAgIH0KCiAgICBmdW5jdGlvbiBleHBhbmRGb3JtYXQoZm9ybWF0LCBsb2NhbGUpIHsKICAgICAgICB2YXIgaSA9IDU7CgogICAgICAgIGZ1bmN0aW9uIHJlcGxhY2VMb25nRGF0ZUZvcm1hdFRva2VucyhpbnB1dCkgewogICAgICAgICAgICByZXR1cm4gbG9jYWxlLmxvbmdEYXRlRm9ybWF0KGlucHV0KSB8fCBpbnB1dDsKICAgICAgICB9CgogICAgICAgIGxvY2FsRm9ybWF0dGluZ1Rva2Vucy5sYXN0SW5kZXggPSAwOwogICAgICAgIHdoaWxlIChpID49IDAgJiYgbG9jYWxGb3JtYXR0aW5nVG9rZW5zLnRlc3QoZm9ybWF0KSkgewogICAgICAgICAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZShsb2NhbEZvcm1hdHRpbmdUb2tlbnMsIHJlcGxhY2VMb25nRGF0ZUZvcm1hdFRva2Vucyk7CiAgICAgICAgICAgIGxvY2FsRm9ybWF0dGluZ1Rva2Vucy5sYXN0SW5kZXggPSAwOwogICAgICAgICAgICBpIC09IDE7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gZm9ybWF0OwogICAgfQoKCiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICAgICAgUGFyc2luZwogICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKCiAgICAvLyBnZXQgdGhlIHJlZ2V4IHRvIGZpbmQgdGhlIG5leHQgdG9rZW4KICAgIGZ1bmN0aW9uIGdldFBhcnNlUmVnZXhGb3JUb2tlbih0b2tlbiwgY29uZmlnKSB7CiAgICAgICAgdmFyIGEsIHN0cmljdCA9IGNvbmZpZy5fc3RyaWN0OwogICAgICAgIHN3aXRjaCAodG9rZW4pIHsKICAgICAgICBjYXNlICdRJzoKICAgICAgICAgICAgcmV0dXJuIHBhcnNlVG9rZW5PbmVEaWdpdDsKICAgICAgICBjYXNlICdEREREJzoKICAgICAgICAgICAgcmV0dXJuIHBhcnNlVG9rZW5UaHJlZURpZ2l0czsKICAgICAgICBjYXNlICdZWVlZJzoKICAgICAgICBjYXNlICdHR0dHJzoKICAgICAgICBjYXNlICdnZ2dnJzoKICAgICAgICAgICAgcmV0dXJuIHN0cmljdCA/IHBhcnNlVG9rZW5Gb3VyRGlnaXRzIDogcGFyc2VUb2tlbk9uZVRvRm91ckRpZ2l0czsKICAgICAgICBjYXNlICdZJzoKICAgICAgICBjYXNlICdHJzoKICAgICAgICBjYXNlICdnJzoKICAgICAgICAgICAgcmV0dXJuIHBhcnNlVG9rZW5TaWduZWROdW1iZXI7CiAgICAgICAgY2FzZSAnWVlZWVlZJzoKICAgICAgICBjYXNlICdZWVlZWSc6CiAgICAgICAgY2FzZSAnR0dHR0cnOgogICAgICAgIGNhc2UgJ2dnZ2dnJzoKICAgICAgICAgICAgcmV0dXJuIHN0cmljdCA/IHBhcnNlVG9rZW5TaXhEaWdpdHMgOiBwYXJzZVRva2VuT25lVG9TaXhEaWdpdHM7CiAgICAgICAgY2FzZSAnUyc6CiAgICAgICAgICAgIGlmIChzdHJpY3QpIHsKICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVRva2VuT25lRGlnaXQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICAgIGNhc2UgJ1NTJzoKICAgICAgICAgICAgaWYgKHN0cmljdCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlVG9rZW5Ud29EaWdpdHM7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICAgIGNhc2UgJ1NTUyc6CiAgICAgICAgICAgIGlmIChzdHJpY3QpIHsKICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVRva2VuVGhyZWVEaWdpdHM7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICAgIGNhc2UgJ0RERCc6CiAgICAgICAgICAgIHJldHVybiBwYXJzZVRva2VuT25lVG9UaHJlZURpZ2l0czsKICAgICAgICBjYXNlICdNTU0nOgogICAgICAgIGNhc2UgJ01NTU0nOgogICAgICAgIGNhc2UgJ2RkJzoKICAgICAgICBjYXNlICdkZGQnOgogICAgICAgIGNhc2UgJ2RkZGQnOgogICAgICAgICAgICByZXR1cm4gcGFyc2VUb2tlbldvcmQ7CiAgICAgICAgY2FzZSAnYSc6CiAgICAgICAgY2FzZSAnQSc6CiAgICAgICAgICAgIHJldHVybiBjb25maWcuX2xvY2FsZS5fbWVyaWRpZW1QYXJzZTsKICAgICAgICBjYXNlICd4JzoKICAgICAgICAgICAgcmV0dXJuIHBhcnNlVG9rZW5PZmZzZXRNczsKICAgICAgICBjYXNlICdYJzoKICAgICAgICAgICAgcmV0dXJuIHBhcnNlVG9rZW5UaW1lc3RhbXBNczsKICAgICAgICBjYXNlICdaJzoKICAgICAgICBjYXNlICdaWic6CiAgICAgICAgICAgIHJldHVybiBwYXJzZVRva2VuVGltZXpvbmU7CiAgICAgICAgY2FzZSAnVCc6CiAgICAgICAgICAgIHJldHVybiBwYXJzZVRva2VuVDsKICAgICAgICBjYXNlICdTU1NTJzoKICAgICAgICAgICAgcmV0dXJuIHBhcnNlVG9rZW5EaWdpdHM7CiAgICAgICAgY2FzZSAnTU0nOgogICAgICAgIGNhc2UgJ0REJzoKICAgICAgICBjYXNlICdZWSc6CiAgICAgICAgY2FzZSAnR0cnOgogICAgICAgIGNhc2UgJ2dnJzoKICAgICAgICBjYXNlICdISCc6CiAgICAgICAgY2FzZSAnaGgnOgogICAgICAgIGNhc2UgJ21tJzoKICAgICAgICBjYXNlICdzcyc6CiAgICAgICAgY2FzZSAnd3cnOgogICAgICAgIGNhc2UgJ1dXJzoKICAgICAgICAgICAgcmV0dXJuIHN0cmljdCA/IHBhcnNlVG9rZW5Ud29EaWdpdHMgOiBwYXJzZVRva2VuT25lT3JUd29EaWdpdHM7CiAgICAgICAgY2FzZSAnTSc6CiAgICAgICAgY2FzZSAnRCc6CiAgICAgICAgY2FzZSAnZCc6CiAgICAgICAgY2FzZSAnSCc6CiAgICAgICAgY2FzZSAnaCc6CiAgICAgICAgY2FzZSAnbSc6CiAgICAgICAgY2FzZSAncyc6CiAgICAgICAgY2FzZSAndyc6CiAgICAgICAgY2FzZSAnVyc6CiAgICAgICAgY2FzZSAnZSc6CiAgICAgICAgY2FzZSAnRSc6CiAgICAgICAgICAgIHJldHVybiBwYXJzZVRva2VuT25lT3JUd29EaWdpdHM7CiAgICAgICAgY2FzZSAnRG8nOgogICAgICAgICAgICByZXR1cm4gc3RyaWN0ID8gY29uZmlnLl9sb2NhbGUuX29yZGluYWxQYXJzZSA6IGNvbmZpZy5fbG9jYWxlLl9vcmRpbmFsUGFyc2VMZW5pZW50OwogICAgICAgIGRlZmF1bHQgOgogICAgICAgICAgICBhID0gbmV3IFJlZ0V4cChyZWdleHBFc2NhcGUodW5lc2NhcGVGb3JtYXQodG9rZW4ucmVwbGFjZSgnXFwnLCAnJykpLCAnaScpKTsKICAgICAgICAgICAgcmV0dXJuIGE7CiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIHRpbWV6b25lTWludXRlc0Zyb21TdHJpbmcoc3RyaW5nKSB7CiAgICAgICAgc3RyaW5nID0gc3RyaW5nIHx8ICcnOwogICAgICAgIHZhciBwb3NzaWJsZVR6TWF0Y2hlcyA9IChzdHJpbmcubWF0Y2gocGFyc2VUb2tlblRpbWV6b25lKSB8fCBbXSksCiAgICAgICAgICAgIHR6Q2h1bmsgPSBwb3NzaWJsZVR6TWF0Y2hlc1twb3NzaWJsZVR6TWF0Y2hlcy5sZW5ndGggLSAxXSB8fCBbXSwKICAgICAgICAgICAgcGFydHMgPSAodHpDaHVuayArICcnKS5tYXRjaChwYXJzZVRpbWV6b25lQ2h1bmtlcikgfHwgWyctJywgMCwgMF0sCiAgICAgICAgICAgIG1pbnV0ZXMgPSArKHBhcnRzWzFdICogNjApICsgdG9JbnQocGFydHNbMl0pOwoKICAgICAgICByZXR1cm4gcGFydHNbMF0gPT09ICcrJyA/IC1taW51dGVzIDogbWludXRlczsKICAgIH0KCiAgICAvLyBmdW5jdGlvbiB0byBjb252ZXJ0IHN0cmluZyBpbnB1dCB0byBkYXRlCiAgICBmdW5jdGlvbiBhZGRUaW1lVG9BcnJheUZyb21Ub2tlbih0b2tlbiwgaW5wdXQsIGNvbmZpZykgewogICAgICAgIHZhciBhLCBkYXRlUGFydEFycmF5ID0gY29uZmlnLl9hOwoKICAgICAgICBzd2l0Y2ggKHRva2VuKSB7CiAgICAgICAgLy8gUVVBUlRFUgogICAgICAgIGNhc2UgJ1EnOgogICAgICAgICAgICBpZiAoaW5wdXQgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgZGF0ZVBhcnRBcnJheVtNT05USF0gPSAodG9JbnQoaW5wdXQpIC0gMSkgKiAzOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIC8vIE1PTlRICiAgICAgICAgY2FzZSAnTScgOiAvLyBmYWxsIHRocm91Z2ggdG8gTU0KICAgICAgICBjYXNlICdNTScgOgogICAgICAgICAgICBpZiAoaW5wdXQgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgZGF0ZVBhcnRBcnJheVtNT05USF0gPSB0b0ludChpbnB1dCkgLSAxOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ01NTScgOiAvLyBmYWxsIHRocm91Z2ggdG8gTU1NTQogICAgICAgIGNhc2UgJ01NTU0nIDoKICAgICAgICAgICAgYSA9IGNvbmZpZy5fbG9jYWxlLm1vbnRoc1BhcnNlKGlucHV0LCB0b2tlbiwgY29uZmlnLl9zdHJpY3QpOwogICAgICAgICAgICAvLyBpZiB3ZSBkaWRuJ3QgZmluZCBhIG1vbnRoIG5hbWUsIG1hcmsgdGhlIGRhdGUgYXMgaW52YWxpZC4KICAgICAgICAgICAgaWYgKGEgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgZGF0ZVBhcnRBcnJheVtNT05USF0gPSBhOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgY29uZmlnLl9wZi5pbnZhbGlkTW9udGggPSBpbnB1dDsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICAvLyBEQVkgT0YgTU9OVEgKICAgICAgICBjYXNlICdEJyA6IC8vIGZhbGwgdGhyb3VnaCB0byBERAogICAgICAgIGNhc2UgJ0REJyA6CiAgICAgICAgICAgIGlmIChpbnB1dCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICBkYXRlUGFydEFycmF5W0RBVEVdID0gdG9JbnQoaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ0RvJyA6CiAgICAgICAgICAgIGlmIChpbnB1dCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICBkYXRlUGFydEFycmF5W0RBVEVdID0gdG9JbnQocGFyc2VJbnQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dC5tYXRjaCgvXGR7MSwyfS8pWzBdLCAxMCkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIC8vIERBWSBPRiBZRUFSCiAgICAgICAgY2FzZSAnREREJyA6IC8vIGZhbGwgdGhyb3VnaCB0byBERERECiAgICAgICAgY2FzZSAnRERERCcgOgogICAgICAgICAgICBpZiAoaW5wdXQgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgY29uZmlnLl9kYXlPZlllYXIgPSB0b0ludChpbnB1dCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIC8vIFlFQVIKICAgICAgICBjYXNlICdZWScgOgogICAgICAgICAgICBkYXRlUGFydEFycmF5W1lFQVJdID0gbW9tZW50LnBhcnNlVHdvRGlnaXRZZWFyKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnWVlZWScgOgogICAgICAgIGNhc2UgJ1lZWVlZJyA6CiAgICAgICAgY2FzZSAnWVlZWVlZJyA6CiAgICAgICAgICAgIGRhdGVQYXJ0QXJyYXlbWUVBUl0gPSB0b0ludChpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIC8vIEFNIC8gUE0KICAgICAgICBjYXNlICdhJyA6IC8vIGZhbGwgdGhyb3VnaCB0byBBCiAgICAgICAgY2FzZSAnQScgOgogICAgICAgICAgICBjb25maWcuX2lzUG0gPSBjb25maWcuX2xvY2FsZS5pc1BNKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgLy8gSE9VUgogICAgICAgIGNhc2UgJ2gnIDogLy8gZmFsbCB0aHJvdWdoIHRvIGhoCiAgICAgICAgY2FzZSAnaGgnIDoKICAgICAgICAgICAgY29uZmlnLl9wZi5iaWdIb3VyID0gdHJ1ZTsKICAgICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICAgIGNhc2UgJ0gnIDogLy8gZmFsbCB0aHJvdWdoIHRvIEhICiAgICAgICAgY2FzZSAnSEgnIDoKICAgICAgICAgICAgZGF0ZVBhcnRBcnJheVtIT1VSXSA9IHRvSW50KGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgLy8gTUlOVVRFCiAgICAgICAgY2FzZSAnbScgOiAvLyBmYWxsIHRocm91Z2ggdG8gbW0KICAgICAgICBjYXNlICdtbScgOgogICAgICAgICAgICBkYXRlUGFydEFycmF5W01JTlVURV0gPSB0b0ludChpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIC8vIFNFQ09ORAogICAgICAgIGNhc2UgJ3MnIDogLy8gZmFsbCB0aHJvdWdoIHRvIHNzCiAgICAgICAgY2FzZSAnc3MnIDoKICAgICAgICAgICAgZGF0ZVBhcnRBcnJheVtTRUNPTkRdID0gdG9JbnQoaW5wdXQpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAvLyBNSUxMSVNFQ09ORAogICAgICAgIGNhc2UgJ1MnIDoKICAgICAgICBjYXNlICdTUycgOgogICAgICAgIGNhc2UgJ1NTUycgOgogICAgICAgIGNhc2UgJ1NTU1MnIDoKICAgICAgICAgICAgZGF0ZVBhcnRBcnJheVtNSUxMSVNFQ09ORF0gPSB0b0ludCgoJzAuJyArIGlucHV0KSAqIDEwMDApOwogICAgICAgICAgICBicmVhazsKICAgICAgICAvLyBVTklYIE9GRlNFVCAoTUlMTElTRUNPTkRTKQogICAgICAgIGNhc2UgJ3gnOgogICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZSh0b0ludChpbnB1dCkpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAvLyBVTklYIFRJTUVTVEFNUCBXSVRIIE1TCiAgICAgICAgY2FzZSAnWCc6CiAgICAgICAgICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKHBhcnNlRmxvYXQoaW5wdXQpICogMTAwMCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIC8vIFRJTUVaT05FCiAgICAgICAgY2FzZSAnWicgOiAvLyBmYWxsIHRocm91Z2ggdG8gWloKICAgICAgICBjYXNlICdaWicgOgogICAgICAgICAgICBjb25maWcuX3VzZVVUQyA9IHRydWU7CiAgICAgICAgICAgIGNvbmZpZy5fdHptID0gdGltZXpvbmVNaW51dGVzRnJvbVN0cmluZyhpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIC8vIFdFRUtEQVkgLSBodW1hbgogICAgICAgIGNhc2UgJ2RkJzoKICAgICAgICBjYXNlICdkZGQnOgogICAgICAgIGNhc2UgJ2RkZGQnOgogICAgICAgICAgICBhID0gY29uZmlnLl9sb2NhbGUud2Vla2RheXNQYXJzZShpbnB1dCk7CiAgICAgICAgICAgIC8vIGlmIHdlIGRpZG4ndCBnZXQgYSB3ZWVrZGF5IG5hbWUsIG1hcmsgdGhlIGRhdGUgYXMgaW52YWxpZAogICAgICAgICAgICBpZiAoYSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICBjb25maWcuX3cgPSBjb25maWcuX3cgfHwge307CiAgICAgICAgICAgICAgICBjb25maWcuX3dbJ2QnXSA9IGE7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBjb25maWcuX3BmLmludmFsaWRXZWVrZGF5ID0gaW5wdXQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgLy8gV0VFSywgV0VFSyBEQVkgLSBudW1lcmljCiAgICAgICAgY2FzZSAndyc6CiAgICAgICAgY2FzZSAnd3cnOgogICAgICAgIGNhc2UgJ1cnOgogICAgICAgIGNhc2UgJ1dXJzoKICAgICAgICBjYXNlICdkJzoKICAgICAgICBjYXNlICdlJzoKICAgICAgICBjYXNlICdFJzoKICAgICAgICAgICAgdG9rZW4gPSB0b2tlbi5zdWJzdHIoMCwgMSk7CiAgICAgICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi8KICAgICAgICBjYXNlICdnZ2dnJzoKICAgICAgICBjYXNlICdHR0dHJzoKICAgICAgICBjYXNlICdHR0dHRyc6CiAgICAgICAgICAgIHRva2VuID0gdG9rZW4uc3Vic3RyKDAsIDIpOwogICAgICAgICAgICBpZiAoaW5wdXQpIHsKICAgICAgICAgICAgICAgIGNvbmZpZy5fdyA9IGNvbmZpZy5fdyB8fCB7fTsKICAgICAgICAgICAgICAgIGNvbmZpZy5fd1t0b2tlbl0gPSB0b0ludChpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnZ2cnOgogICAgICAgIGNhc2UgJ0dHJzoKICAgICAgICAgICAgY29uZmlnLl93ID0gY29uZmlnLl93IHx8IHt9OwogICAgICAgICAgICBjb25maWcuX3dbdG9rZW5dID0gbW9tZW50LnBhcnNlVHdvRGlnaXRZZWFyKGlucHV0KTsKICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gZGF5T2ZZZWFyRnJvbVdlZWtJbmZvKGNvbmZpZykgewogICAgICAgIHZhciB3LCB3ZWVrWWVhciwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3ksIHRlbXA7CgogICAgICAgIHcgPSBjb25maWcuX3c7CiAgICAgICAgaWYgKHcuR0cgIT0gbnVsbCB8fCB3LlcgIT0gbnVsbCB8fCB3LkUgIT0gbnVsbCkgewogICAgICAgICAgICBkb3cgPSAxOwogICAgICAgICAgICBkb3kgPSA0OwoKICAgICAgICAgICAgLy8gVE9ETzogV2UgbmVlZCB0byB0YWtlIHRoZSBjdXJyZW50IGlzb1dlZWtZZWFyLCBidXQgdGhhdCBkZXBlbmRzIG9uCiAgICAgICAgICAgIC8vIGhvdyB3ZSBpbnRlcnByZXQgbm93IChsb2NhbCwgdXRjLCBmaXhlZCBvZmZzZXQpLiBTbyBjcmVhdGUKICAgICAgICAgICAgLy8gYSBub3cgdmVyc2lvbiBvZiBjdXJyZW50IGNvbmZpZyAodGFrZSBsb2NhbC91dGMvb2Zmc2V0IGZsYWdzLCBhbmQKICAgICAgICAgICAgLy8gY3JlYXRlIG5vdykuCiAgICAgICAgICAgIHdlZWtZZWFyID0gZGZsKHcuR0csIGNvbmZpZy5fYVtZRUFSXSwgd2Vla09mWWVhcihtb21lbnQoKSwgMSwgNCkueWVhcik7CiAgICAgICAgICAgIHdlZWsgPSBkZmwody5XLCAxKTsKICAgICAgICAgICAgd2Vla2RheSA9IGRmbCh3LkUsIDEpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGRvdyA9IGNvbmZpZy5fbG9jYWxlLl93ZWVrLmRvdzsKICAgICAgICAgICAgZG95ID0gY29uZmlnLl9sb2NhbGUuX3dlZWsuZG95OwoKICAgICAgICAgICAgd2Vla1llYXIgPSBkZmwody5nZywgY29uZmlnLl9hW1lFQVJdLCB3ZWVrT2ZZZWFyKG1vbWVudCgpLCBkb3csIGRveSkueWVhcik7CiAgICAgICAgICAgIHdlZWsgPSBkZmwody53LCAxKTsKCiAgICAgICAgICAgIGlmICh3LmQgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgLy8gd2Vla2RheSAtLSBsb3cgZGF5IG51bWJlcnMgYXJlIGNvbnNpZGVyZWQgbmV4dCB3ZWVrCiAgICAgICAgICAgICAgICB3ZWVrZGF5ID0gdy5kOwogICAgICAgICAgICAgICAgaWYgKHdlZWtkYXkgPCBkb3cpIHsKICAgICAgICAgICAgICAgICAgICArK3dlZWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSBpZiAody5lICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIC8vIGxvY2FsIHdlZWtkYXkgLS0gY291bnRpbmcgc3RhcnRzIGZyb20gYmVnaW5pbmcgb2Ygd2VlawogICAgICAgICAgICAgICAgd2Vla2RheSA9IHcuZSArIGRvdzsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQgdG8gYmVnaW5pbmcgb2Ygd2VlawogICAgICAgICAgICAgICAgd2Vla2RheSA9IGRvdzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB0ZW1wID0gZGF5T2ZZZWFyRnJvbVdlZWtzKHdlZWtZZWFyLCB3ZWVrLCB3ZWVrZGF5LCBkb3ksIGRvdyk7CgogICAgICAgIGNvbmZpZy5fYVtZRUFSXSA9IHRlbXAueWVhcjsKICAgICAgICBjb25maWcuX2RheU9mWWVhciA9IHRlbXAuZGF5T2ZZZWFyOwogICAgfQoKICAgIC8vIGNvbnZlcnQgYW4gYXJyYXkgdG8gYSBkYXRlLgogICAgLy8gdGhlIGFycmF5IHNob3VsZCBtaXJyb3IgdGhlIHBhcmFtZXRlcnMgYmVsb3cKICAgIC8vIG5vdGU6IGFsbCB2YWx1ZXMgcGFzdCB0aGUgeWVhciBhcmUgb3B0aW9uYWwgYW5kIHdpbGwgZGVmYXVsdCB0byB0aGUgbG93ZXN0IHBvc3NpYmxlIHZhbHVlLgogICAgLy8gW3llYXIsIG1vbnRoLCBkYXkgLCBob3VyLCBtaW51dGUsIHNlY29uZCwgbWlsbGlzZWNvbmRdCiAgICBmdW5jdGlvbiBkYXRlRnJvbUNvbmZpZyhjb25maWcpIHsKICAgICAgICB2YXIgaSwgZGF0ZSwgaW5wdXQgPSBbXSwgY3VycmVudERhdGUsIHllYXJUb1VzZTsKCiAgICAgICAgaWYgKGNvbmZpZy5fZCkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBjdXJyZW50RGF0ZSA9IGN1cnJlbnREYXRlQXJyYXkoY29uZmlnKTsKCiAgICAgICAgLy9jb21wdXRlIGRheSBvZiB0aGUgeWVhciBmcm9tIHdlZWtzIGFuZCB3ZWVrZGF5cwogICAgICAgIGlmIChjb25maWcuX3cgJiYgY29uZmlnLl9hW0RBVEVdID09IG51bGwgJiYgY29uZmlnLl9hW01PTlRIXSA9PSBudWxsKSB7CiAgICAgICAgICAgIGRheU9mWWVhckZyb21XZWVrSW5mbyhjb25maWcpOwogICAgICAgIH0KCiAgICAgICAgLy9pZiB0aGUgZGF5IG9mIHRoZSB5ZWFyIGlzIHNldCwgZmlndXJlIG91dCB3aGF0IGl0IGlzCiAgICAgICAgaWYgKGNvbmZpZy5fZGF5T2ZZZWFyKSB7CiAgICAgICAgICAgIHllYXJUb1VzZSA9IGRmbChjb25maWcuX2FbWUVBUl0sIGN1cnJlbnREYXRlW1lFQVJdKTsKCiAgICAgICAgICAgIGlmIChjb25maWcuX2RheU9mWWVhciA+IGRheXNJblllYXIoeWVhclRvVXNlKSkgewogICAgICAgICAgICAgICAgY29uZmlnLl9wZi5fb3ZlcmZsb3dEYXlPZlllYXIgPSB0cnVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICBkYXRlID0gbWFrZVVUQ0RhdGUoeWVhclRvVXNlLCAwLCBjb25maWcuX2RheU9mWWVhcik7CiAgICAgICAgICAgIGNvbmZpZy5fYVtNT05USF0gPSBkYXRlLmdldFVUQ01vbnRoKCk7CiAgICAgICAgICAgIGNvbmZpZy5fYVtEQVRFXSA9IGRhdGUuZ2V0VVRDRGF0ZSgpOwogICAgICAgIH0KCiAgICAgICAgLy8gRGVmYXVsdCB0byBjdXJyZW50IGRhdGUuCiAgICAgICAgLy8gKiBpZiBubyB5ZWFyLCBtb250aCwgZGF5IG9mIG1vbnRoIGFyZSBnaXZlbiwgZGVmYXVsdCB0byB0b2RheQogICAgICAgIC8vICogaWYgZGF5IG9mIG1vbnRoIGlzIGdpdmVuLCBkZWZhdWx0IG1vbnRoIGFuZCB5ZWFyCiAgICAgICAgLy8gKiBpZiBtb250aCBpcyBnaXZlbiwgZGVmYXVsdCBvbmx5IHllYXIKICAgICAgICAvLyAqIGlmIHllYXIgaXMgZ2l2ZW4sIGRvbid0IGRlZmF1bHQgYW55dGhpbmcKICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMyAmJiBjb25maWcuX2FbaV0gPT0gbnVsbDsgKytpKSB7CiAgICAgICAgICAgIGNvbmZpZy5fYVtpXSA9IGlucHV0W2ldID0gY3VycmVudERhdGVbaV07CiAgICAgICAgfQoKICAgICAgICAvLyBaZXJvIG91dCB3aGF0ZXZlciB3YXMgbm90IGRlZmF1bHRlZCwgaW5jbHVkaW5nIHRpbWUKICAgICAgICBmb3IgKDsgaSA8IDc7IGkrKykgewogICAgICAgICAgICBjb25maWcuX2FbaV0gPSBpbnB1dFtpXSA9IChjb25maWcuX2FbaV0gPT0gbnVsbCkgPyAoaSA9PT0gMiA/IDEgOiAwKSA6IGNvbmZpZy5fYVtpXTsKICAgICAgICB9CgogICAgICAgIC8vIENoZWNrIGZvciAyNDowMDowMC4wMDAKICAgICAgICBpZiAoY29uZmlnLl9hW0hPVVJdID09PSAyNCAmJgogICAgICAgICAgICAgICAgY29uZmlnLl9hW01JTlVURV0gPT09IDAgJiYKICAgICAgICAgICAgICAgIGNvbmZpZy5fYVtTRUNPTkRdID09PSAwICYmCiAgICAgICAgICAgICAgICBjb25maWcuX2FbTUlMTElTRUNPTkRdID09PSAwKSB7CiAgICAgICAgICAgIGNvbmZpZy5fbmV4dERheSA9IHRydWU7CiAgICAgICAgICAgIGNvbmZpZy5fYVtIT1VSXSA9IDA7CiAgICAgICAgfQoKICAgICAgICBjb25maWcuX2QgPSAoY29uZmlnLl91c2VVVEMgPyBtYWtlVVRDRGF0ZSA6IG1ha2VEYXRlKS5hcHBseShudWxsLCBpbnB1dCk7CiAgICAgICAgLy8gQXBwbHkgdGltZXpvbmUgb2Zmc2V0IGZyb20gaW5wdXQuIFRoZSBhY3R1YWwgem9uZSBjYW4gYmUgY2hhbmdlZAogICAgICAgIC8vIHdpdGggcGFyc2Vab25lLgogICAgICAgIGlmIChjb25maWcuX3R6bSAhPSBudWxsKSB7CiAgICAgICAgICAgIGNvbmZpZy5fZC5zZXRVVENNaW51dGVzKGNvbmZpZy5fZC5nZXRVVENNaW51dGVzKCkgKyBjb25maWcuX3R6bSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoY29uZmlnLl9uZXh0RGF5KSB7CiAgICAgICAgICAgIGNvbmZpZy5fYVtIT1VSXSA9IDI0OwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBkYXRlRnJvbU9iamVjdChjb25maWcpIHsKICAgICAgICB2YXIgbm9ybWFsaXplZElucHV0OwoKICAgICAgICBpZiAoY29uZmlnLl9kKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIG5vcm1hbGl6ZWRJbnB1dCA9IG5vcm1hbGl6ZU9iamVjdFVuaXRzKGNvbmZpZy5faSk7CiAgICAgICAgY29uZmlnLl9hID0gWwogICAgICAgICAgICBub3JtYWxpemVkSW5wdXQueWVhciwKICAgICAgICAgICAgbm9ybWFsaXplZElucHV0Lm1vbnRoLAogICAgICAgICAgICBub3JtYWxpemVkSW5wdXQuZGF5IHx8IG5vcm1hbGl6ZWRJbnB1dC5kYXRlLAogICAgICAgICAgICBub3JtYWxpemVkSW5wdXQuaG91ciwKICAgICAgICAgICAgbm9ybWFsaXplZElucHV0Lm1pbnV0ZSwKICAgICAgICAgICAgbm9ybWFsaXplZElucHV0LnNlY29uZCwKICAgICAgICAgICAgbm9ybWFsaXplZElucHV0Lm1pbGxpc2Vjb25kCiAgICAgICAgXTsKCiAgICAgICAgZGF0ZUZyb21Db25maWcoY29uZmlnKTsKICAgIH0KCiAgICBmdW5jdGlvbiBjdXJyZW50RGF0ZUFycmF5KGNvbmZpZykgewogICAgICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpOwogICAgICAgIGlmIChjb25maWcuX3VzZVVUQykgewogICAgICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAgICAgbm93LmdldFVUQ0Z1bGxZZWFyKCksCiAgICAgICAgICAgICAgICBub3cuZ2V0VVRDTW9udGgoKSwKICAgICAgICAgICAgICAgIG5vdy5nZXRVVENEYXRlKCkKICAgICAgICAgICAgXTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gW25vdy5nZXRGdWxsWWVhcigpLCBub3cuZ2V0TW9udGgoKSwgbm93LmdldERhdGUoKV07CiAgICAgICAgfQogICAgfQoKICAgIC8vIGRhdGUgZnJvbSBzdHJpbmcgYW5kIGZvcm1hdCBzdHJpbmcKICAgIGZ1bmN0aW9uIG1ha2VEYXRlRnJvbVN0cmluZ0FuZEZvcm1hdChjb25maWcpIHsKICAgICAgICBpZiAoY29uZmlnLl9mID09PSBtb21lbnQuSVNPXzg2MDEpIHsKICAgICAgICAgICAgcGFyc2VJU08oY29uZmlnKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgY29uZmlnLl9hID0gW107CiAgICAgICAgY29uZmlnLl9wZi5lbXB0eSA9IHRydWU7CgogICAgICAgIC8vIFRoaXMgYXJyYXkgaXMgdXNlZCB0byBtYWtlIGEgRGF0ZSwgZWl0aGVyIHdpdGggYG5ldyBEYXRlYCBvciBgRGF0ZS5VVENgCiAgICAgICAgdmFyIHN0cmluZyA9ICcnICsgY29uZmlnLl9pLAogICAgICAgICAgICBpLCBwYXJzZWRJbnB1dCwgdG9rZW5zLCB0b2tlbiwgc2tpcHBlZCwKICAgICAgICAgICAgc3RyaW5nTGVuZ3RoID0gc3RyaW5nLmxlbmd0aCwKICAgICAgICAgICAgdG90YWxQYXJzZWRJbnB1dExlbmd0aCA9IDA7CgogICAgICAgIHRva2VucyA9IGV4cGFuZEZvcm1hdChjb25maWcuX2YsIGNvbmZpZy5fbG9jYWxlKS5tYXRjaChmb3JtYXR0aW5nVG9rZW5zKSB8fCBbXTsKCiAgICAgICAgZm9yIChpID0gMDsgaSA8IHRva2Vucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB0b2tlbiA9IHRva2Vuc1tpXTsKICAgICAgICAgICAgcGFyc2VkSW5wdXQgPSAoc3RyaW5nLm1hdGNoKGdldFBhcnNlUmVnZXhGb3JUb2tlbih0b2tlbiwgY29uZmlnKSkgfHwgW10pWzBdOwogICAgICAgICAgICBpZiAocGFyc2VkSW5wdXQpIHsKICAgICAgICAgICAgICAgIHNraXBwZWQgPSBzdHJpbmcuc3Vic3RyKDAsIHN0cmluZy5pbmRleE9mKHBhcnNlZElucHV0KSk7CiAgICAgICAgICAgICAgICBpZiAoc2tpcHBlZC5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgY29uZmlnLl9wZi51bnVzZWRJbnB1dC5wdXNoKHNraXBwZWQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgc3RyaW5nID0gc3RyaW5nLnNsaWNlKHN0cmluZy5pbmRleE9mKHBhcnNlZElucHV0KSArIHBhcnNlZElucHV0Lmxlbmd0aCk7CiAgICAgICAgICAgICAgICB0b3RhbFBhcnNlZElucHV0TGVuZ3RoICs9IHBhcnNlZElucHV0Lmxlbmd0aDsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBkb24ndCBwYXJzZSBpZiBpdCdzIG5vdCBhIGtub3duIHRva2VuCiAgICAgICAgICAgIGlmIChmb3JtYXRUb2tlbkZ1bmN0aW9uc1t0b2tlbl0pIHsKICAgICAgICAgICAgICAgIGlmIChwYXJzZWRJbnB1dCkgewogICAgICAgICAgICAgICAgICAgIGNvbmZpZy5fcGYuZW1wdHkgPSBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIGNvbmZpZy5fcGYudW51c2VkVG9rZW5zLnB1c2godG9rZW4pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYWRkVGltZVRvQXJyYXlGcm9tVG9rZW4odG9rZW4sIHBhcnNlZElucHV0LCBjb25maWcpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYgKGNvbmZpZy5fc3RyaWN0ICYmICFwYXJzZWRJbnB1dCkgewogICAgICAgICAgICAgICAgY29uZmlnLl9wZi51bnVzZWRUb2tlbnMucHVzaCh0b2tlbik7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIGFkZCByZW1haW5pbmcgdW5wYXJzZWQgaW5wdXQgbGVuZ3RoIHRvIHRoZSBzdHJpbmcKICAgICAgICBjb25maWcuX3BmLmNoYXJzTGVmdE92ZXIgPSBzdHJpbmdMZW5ndGggLSB0b3RhbFBhcnNlZElucHV0TGVuZ3RoOwogICAgICAgIGlmIChzdHJpbmcubGVuZ3RoID4gMCkgewogICAgICAgICAgICBjb25maWcuX3BmLnVudXNlZElucHV0LnB1c2goc3RyaW5nKTsKICAgICAgICB9CgogICAgICAgIC8vIGNsZWFyIF8xMmggZmxhZyBpZiBob3VyIGlzIDw9IDEyCiAgICAgICAgaWYgKGNvbmZpZy5fcGYuYmlnSG91ciA9PT0gdHJ1ZSAmJiBjb25maWcuX2FbSE9VUl0gPD0gMTIpIHsKICAgICAgICAgICAgY29uZmlnLl9wZi5iaWdIb3VyID0gdW5kZWZpbmVkOwogICAgICAgIH0KICAgICAgICAvLyBoYW5kbGUgYW0gcG0KICAgICAgICBpZiAoY29uZmlnLl9pc1BtICYmIGNvbmZpZy5fYVtIT1VSXSA8IDEyKSB7CiAgICAgICAgICAgIGNvbmZpZy5fYVtIT1VSXSArPSAxMjsKICAgICAgICB9CiAgICAgICAgLy8gaWYgaXMgMTIgYW0sIGNoYW5nZSBob3VycyB0byAwCiAgICAgICAgaWYgKGNvbmZpZy5faXNQbSA9PT0gZmFsc2UgJiYgY29uZmlnLl9hW0hPVVJdID09PSAxMikgewogICAgICAgICAgICBjb25maWcuX2FbSE9VUl0gPSAwOwogICAgICAgIH0KICAgICAgICBkYXRlRnJvbUNvbmZpZyhjb25maWcpOwogICAgICAgIGNoZWNrT3ZlcmZsb3coY29uZmlnKTsKICAgIH0KCiAgICBmdW5jdGlvbiB1bmVzY2FwZUZvcm1hdChzKSB7CiAgICAgICAgcmV0dXJuIHMucmVwbGFjZSgvXFwoXFspfFxcKFxdKXxcWyhbXlxdXFtdKilcXXxcXCguKS9nLCBmdW5jdGlvbiAobWF0Y2hlZCwgcDEsIHAyLCBwMywgcDQpIHsKICAgICAgICAgICAgcmV0dXJuIHAxIHx8IHAyIHx8IHAzIHx8IHA0OwogICAgICAgIH0pOwogICAgfQoKICAgIC8vIENvZGUgZnJvbSBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM1NjE0OTMvaXMtdGhlcmUtYS1yZWdleHAtZXNjYXBlLWZ1bmN0aW9uLWluLWphdmFzY3JpcHQKICAgIGZ1bmN0aW9uIHJlZ2V4cEVzY2FwZShzKSB7CiAgICAgICAgcmV0dXJuIHMucmVwbGFjZSgvWy1cL1xcXiQqKz8uKCl8W1xde31dL2csICdcXCQmJyk7CiAgICB9CgogICAgLy8gZGF0ZSBmcm9tIHN0cmluZyBhbmQgYXJyYXkgb2YgZm9ybWF0IHN0cmluZ3MKICAgIGZ1bmN0aW9uIG1ha2VEYXRlRnJvbVN0cmluZ0FuZEFycmF5KGNvbmZpZykgewogICAgICAgIHZhciB0ZW1wQ29uZmlnLAogICAgICAgICAgICBiZXN0TW9tZW50LAoKICAgICAgICAgICAgc2NvcmVUb0JlYXQsCiAgICAgICAgICAgIGksCiAgICAgICAgICAgIGN1cnJlbnRTY29yZTsKCiAgICAgICAgaWYgKGNvbmZpZy5fZi5sZW5ndGggPT09IDApIHsKICAgICAgICAgICAgY29uZmlnLl9wZi5pbnZhbGlkRm9ybWF0ID0gdHJ1ZTsKICAgICAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUoTmFOKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgZm9yIChpID0gMDsgaSA8IGNvbmZpZy5fZi5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBjdXJyZW50U2NvcmUgPSAwOwogICAgICAgICAgICB0ZW1wQ29uZmlnID0gY29weUNvbmZpZyh7fSwgY29uZmlnKTsKICAgICAgICAgICAgaWYgKGNvbmZpZy5fdXNlVVRDICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIHRlbXBDb25maWcuX3VzZVVUQyA9IGNvbmZpZy5fdXNlVVRDOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRlbXBDb25maWcuX3BmID0gZGVmYXVsdFBhcnNpbmdGbGFncygpOwogICAgICAgICAgICB0ZW1wQ29uZmlnLl9mID0gY29uZmlnLl9mW2ldOwogICAgICAgICAgICBtYWtlRGF0ZUZyb21TdHJpbmdBbmRGb3JtYXQodGVtcENvbmZpZyk7CgogICAgICAgICAgICBpZiAoIWlzVmFsaWQodGVtcENvbmZpZykpIHsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBpZiB0aGVyZSBpcyBhbnkgaW5wdXQgdGhhdCB3YXMgbm90IHBhcnNlZCBhZGQgYSBwZW5hbHR5IGZvciB0aGF0IGZvcm1hdAogICAgICAgICAgICBjdXJyZW50U2NvcmUgKz0gdGVtcENvbmZpZy5fcGYuY2hhcnNMZWZ0T3ZlcjsKCiAgICAgICAgICAgIC8vb3IgdG9rZW5zCiAgICAgICAgICAgIGN1cnJlbnRTY29yZSArPSB0ZW1wQ29uZmlnLl9wZi51bnVzZWRUb2tlbnMubGVuZ3RoICogMTA7CgogICAgICAgICAgICB0ZW1wQ29uZmlnLl9wZi5zY29yZSA9IGN1cnJlbnRTY29yZTsKCiAgICAgICAgICAgIGlmIChzY29yZVRvQmVhdCA9PSBudWxsIHx8IGN1cnJlbnRTY29yZSA8IHNjb3JlVG9CZWF0KSB7CiAgICAgICAgICAgICAgICBzY29yZVRvQmVhdCA9IGN1cnJlbnRTY29yZTsKICAgICAgICAgICAgICAgIGJlc3RNb21lbnQgPSB0ZW1wQ29uZmlnOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBleHRlbmQoY29uZmlnLCBiZXN0TW9tZW50IHx8IHRlbXBDb25maWcpOwogICAgfQoKICAgIC8vIGRhdGUgZnJvbSBpc28gZm9ybWF0CiAgICBmdW5jdGlvbiBwYXJzZUlTTyhjb25maWcpIHsKICAgICAgICB2YXIgaSwgbCwKICAgICAgICAgICAgc3RyaW5nID0gY29uZmlnLl9pLAogICAgICAgICAgICBtYXRjaCA9IGlzb1JlZ2V4LmV4ZWMoc3RyaW5nKTsKCiAgICAgICAgaWYgKG1hdGNoKSB7CiAgICAgICAgICAgIGNvbmZpZy5fcGYuaXNvID0gdHJ1ZTsKICAgICAgICAgICAgZm9yIChpID0gMCwgbCA9IGlzb0RhdGVzLmxlbmd0aDsgaSA8IGw7IGkrKykgewogICAgICAgICAgICAgICAgaWYgKGlzb0RhdGVzW2ldWzFdLmV4ZWMoc3RyaW5nKSkgewogICAgICAgICAgICAgICAgICAgIC8vIG1hdGNoWzVdIHNob3VsZCBiZSAnVCcgb3IgdW5kZWZpbmVkCiAgICAgICAgICAgICAgICAgICAgY29uZmlnLl9mID0gaXNvRGF0ZXNbaV1bMF0gKyAobWF0Y2hbNl0gfHwgJyAnKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBmb3IgKGkgPSAwLCBsID0gaXNvVGltZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7CiAgICAgICAgICAgICAgICBpZiAoaXNvVGltZXNbaV1bMV0uZXhlYyhzdHJpbmcpKSB7CiAgICAgICAgICAgICAgICAgICAgY29uZmlnLl9mICs9IGlzb1RpbWVzW2ldWzBdOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChzdHJpbmcubWF0Y2gocGFyc2VUb2tlblRpbWV6b25lKSkgewogICAgICAgICAgICAgICAgY29uZmlnLl9mICs9ICdaJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBtYWtlRGF0ZUZyb21TdHJpbmdBbmRGb3JtYXQoY29uZmlnKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTsKICAgICAgICB9CiAgICB9CgogICAgLy8gZGF0ZSBmcm9tIGlzbyBmb3JtYXQgb3IgZmFsbGJhY2sKICAgIGZ1bmN0aW9uIG1ha2VEYXRlRnJvbVN0cmluZyhjb25maWcpIHsKICAgICAgICBwYXJzZUlTTyhjb25maWcpOwogICAgICAgIGlmIChjb25maWcuX2lzVmFsaWQgPT09IGZhbHNlKSB7CiAgICAgICAgICAgIGRlbGV0ZSBjb25maWcuX2lzVmFsaWQ7CiAgICAgICAgICAgIG1vbWVudC5jcmVhdGVGcm9tSW5wdXRGYWxsYmFjayhjb25maWcpOwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBtYXAoYXJyLCBmbikgewogICAgICAgIHZhciByZXMgPSBbXSwgaTsKICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgIHJlcy5wdXNoKGZuKGFycltpXSwgaSkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzOwogICAgfQoKICAgIGZ1bmN0aW9uIG1ha2VEYXRlRnJvbUlucHV0KGNvbmZpZykgewogICAgICAgIHZhciBpbnB1dCA9IGNvbmZpZy5faSwgbWF0Y2hlZDsKICAgICAgICBpZiAoaW5wdXQgPT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZSgpOwogICAgICAgIH0gZWxzZSBpZiAoaXNEYXRlKGlucHV0KSkgewogICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZSgraW5wdXQpOwogICAgICAgIH0gZWxzZSBpZiAoKG1hdGNoZWQgPSBhc3BOZXRKc29uUmVnZXguZXhlYyhpbnB1dCkpICE9PSBudWxsKSB7CiAgICAgICAgICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKCttYXRjaGVkWzFdKTsKICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHsKICAgICAgICAgICAgbWFrZURhdGVGcm9tU3RyaW5nKGNvbmZpZyk7CiAgICAgICAgfSBlbHNlIGlmIChpc0FycmF5KGlucHV0KSkgewogICAgICAgICAgICBjb25maWcuX2EgPSBtYXAoaW5wdXQuc2xpY2UoMCksIGZ1bmN0aW9uIChvYmopIHsKICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUludChvYmosIDEwKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGRhdGVGcm9tQ29uZmlnKGNvbmZpZyk7CiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YoaW5wdXQpID09PSAnb2JqZWN0JykgewogICAgICAgICAgICBkYXRlRnJvbU9iamVjdChjb25maWcpOwogICAgICAgIH0gZWxzZSBpZiAodHlwZW9mKGlucHV0KSA9PT0gJ251bWJlcicpIHsKICAgICAgICAgICAgLy8gZnJvbSBtaWxsaXNlY29uZHMKICAgICAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUoaW5wdXQpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIG1vbWVudC5jcmVhdGVGcm9tSW5wdXRGYWxsYmFjayhjb25maWcpOwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBtYWtlRGF0ZSh5LCBtLCBkLCBoLCBNLCBzLCBtcykgewogICAgICAgIC8vY2FuJ3QganVzdCBhcHBseSgpIHRvIGNyZWF0ZSBhIGRhdGU6CiAgICAgICAgLy9odHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE4MTM0OC9pbnN0YW50aWF0aW5nLWEtamF2YXNjcmlwdC1vYmplY3QtYnktY2FsbGluZy1wcm90b3R5cGUtY29uc3RydWN0b3ItYXBwbHkKICAgICAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKHksIG0sIGQsIGgsIE0sIHMsIG1zKTsKCiAgICAgICAgLy90aGUgZGF0ZSBjb25zdHJ1Y3RvciBkb2Vzbid0IGFjY2VwdCB5ZWFycyA8IDE5NzAKICAgICAgICBpZiAoeSA8IDE5NzApIHsKICAgICAgICAgICAgZGF0ZS5zZXRGdWxsWWVhcih5KTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGRhdGU7CiAgICB9CgogICAgZnVuY3Rpb24gbWFrZVVUQ0RhdGUoeSkgewogICAgICAgIHZhciBkYXRlID0gbmV3IERhdGUoRGF0ZS5VVEMuYXBwbHkobnVsbCwgYXJndW1lbnRzKSk7CiAgICAgICAgaWYgKHkgPCAxOTcwKSB7CiAgICAgICAgICAgIGRhdGUuc2V0VVRDRnVsbFllYXIoeSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBkYXRlOwogICAgfQoKICAgIGZ1bmN0aW9uIHBhcnNlV2Vla2RheShpbnB1dCwgbG9jYWxlKSB7CiAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHsKICAgICAgICAgICAgaWYgKCFpc05hTihpbnB1dCkpIHsKICAgICAgICAgICAgICAgIGlucHV0ID0gcGFyc2VJbnQoaW5wdXQsIDEwKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGlucHV0ID0gbG9jYWxlLndlZWtkYXlzUGFyc2UoaW5wdXQpOwogICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCAhPT0gJ251bWJlcicpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gaW5wdXQ7CiAgICB9CgogICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgICAgIFJlbGF0aXZlIFRpbWUKICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCgogICAgLy8gaGVscGVyIGZ1bmN0aW9uIGZvciBtb21lbnQuZm4uZnJvbSwgbW9tZW50LmZuLmZyb21Ob3csIGFuZCBtb21lbnQuZHVyYXRpb24uZm4uaHVtYW5pemUKICAgIGZ1bmN0aW9uIHN1YnN0aXR1dGVUaW1lQWdvKHN0cmluZywgbnVtYmVyLCB3aXRob3V0U3VmZml4LCBpc0Z1dHVyZSwgbG9jYWxlKSB7CiAgICAgICAgcmV0dXJuIGxvY2FsZS5yZWxhdGl2ZVRpbWUobnVtYmVyIHx8IDEsICEhd2l0aG91dFN1ZmZpeCwgc3RyaW5nLCBpc0Z1dHVyZSk7CiAgICB9CgogICAgZnVuY3Rpb24gcmVsYXRpdmVUaW1lKHBvc05lZ0R1cmF0aW9uLCB3aXRob3V0U3VmZml4LCBsb2NhbGUpIHsKICAgICAgICB2YXIgZHVyYXRpb24gPSBtb21lbnQuZHVyYXRpb24ocG9zTmVnRHVyYXRpb24pLmFicygpLAogICAgICAgICAgICBzZWNvbmRzID0gcm91bmQoZHVyYXRpb24uYXMoJ3MnKSksCiAgICAgICAgICAgIG1pbnV0ZXMgPSByb3VuZChkdXJhdGlvbi5hcygnbScpKSwKICAgICAgICAgICAgaG91cnMgPSByb3VuZChkdXJhdGlvbi5hcygnaCcpKSwKICAgICAgICAgICAgZGF5cyA9IHJvdW5kKGR1cmF0aW9uLmFzKCdkJykpLAogICAgICAgICAgICBtb250aHMgPSByb3VuZChkdXJhdGlvbi5hcygnTScpKSwKICAgICAgICAgICAgeWVhcnMgPSByb3VuZChkdXJhdGlvbi5hcygneScpKSwKCiAgICAgICAgICAgIGFyZ3MgPSBzZWNvbmRzIDwgcmVsYXRpdmVUaW1lVGhyZXNob2xkcy5zICYmIFsncycsIHNlY29uZHNdIHx8CiAgICAgICAgICAgICAgICBtaW51dGVzID09PSAxICYmIFsnbSddIHx8CiAgICAgICAgICAgICAgICBtaW51dGVzIDwgcmVsYXRpdmVUaW1lVGhyZXNob2xkcy5tICYmIFsnbW0nLCBtaW51dGVzXSB8fAogICAgICAgICAgICAgICAgaG91cnMgPT09IDEgJiYgWydoJ10gfHwKICAgICAgICAgICAgICAgIGhvdXJzIDwgcmVsYXRpdmVUaW1lVGhyZXNob2xkcy5oICYmIFsnaGgnLCBob3Vyc10gfHwKICAgICAgICAgICAgICAgIGRheXMgPT09IDEgJiYgWydkJ10gfHwKICAgICAgICAgICAgICAgIGRheXMgPCByZWxhdGl2ZVRpbWVUaHJlc2hvbGRzLmQgJiYgWydkZCcsIGRheXNdIHx8CiAgICAgICAgICAgICAgICBtb250aHMgPT09IDEgJiYgWydNJ10gfHwKICAgICAgICAgICAgICAgIG1vbnRocyA8IHJlbGF0aXZlVGltZVRocmVzaG9sZHMuTSAmJiBbJ01NJywgbW9udGhzXSB8fAogICAgICAgICAgICAgICAgeWVhcnMgPT09IDEgJiYgWyd5J10gfHwgWyd5eScsIHllYXJzXTsKCiAgICAgICAgYXJnc1syXSA9IHdpdGhvdXRTdWZmaXg7CiAgICAgICAgYXJnc1szXSA9ICtwb3NOZWdEdXJhdGlvbiA+IDA7CiAgICAgICAgYXJnc1s0XSA9IGxvY2FsZTsKICAgICAgICByZXR1cm4gc3Vic3RpdHV0ZVRpbWVBZ28uYXBwbHkoe30sIGFyZ3MpOwogICAgfQoKCiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICAgICAgV2VlayBvZiBZZWFyCiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgoKICAgIC8vIGZpcnN0RGF5T2ZXZWVrICAgICAgIDAgPSBzdW4sIDYgPSBzYXQKICAgIC8vICAgICAgICAgICAgICAgICAgICAgIHRoZSBkYXkgb2YgdGhlIHdlZWsgdGhhdCBzdGFydHMgdGhlIHdlZWsKICAgIC8vICAgICAgICAgICAgICAgICAgICAgICh1c3VhbGx5IHN1bmRheSBvciBtb25kYXkpCiAgICAvLyBmaXJzdERheU9mV2Vla09mWWVhciAwID0gc3VuLCA2ID0gc2F0CiAgICAvLyAgICAgICAgICAgICAgICAgICAgICB0aGUgZmlyc3Qgd2VlayBpcyB0aGUgd2VlayB0aGF0IGNvbnRhaW5zIHRoZSBmaXJzdAogICAgLy8gICAgICAgICAgICAgICAgICAgICAgb2YgdGhpcyBkYXkgb2YgdGhlIHdlZWsKICAgIC8vICAgICAgICAgICAgICAgICAgICAgIChlZy4gSVNPIHdlZWtzIHVzZSB0aHVyc2RheSAoNCkpCiAgICBmdW5jdGlvbiB3ZWVrT2ZZZWFyKG1vbSwgZmlyc3REYXlPZldlZWssIGZpcnN0RGF5T2ZXZWVrT2ZZZWFyKSB7CiAgICAgICAgdmFyIGVuZCA9IGZpcnN0RGF5T2ZXZWVrT2ZZZWFyIC0gZmlyc3REYXlPZldlZWssCiAgICAgICAgICAgIGRheXNUb0RheU9mV2VlayA9IGZpcnN0RGF5T2ZXZWVrT2ZZZWFyIC0gbW9tLmRheSgpLAogICAgICAgICAgICBhZGp1c3RlZE1vbWVudDsKCgogICAgICAgIGlmIChkYXlzVG9EYXlPZldlZWsgPiBlbmQpIHsKICAgICAgICAgICAgZGF5c1RvRGF5T2ZXZWVrIC09IDc7CiAgICAgICAgfQoKICAgICAgICBpZiAoZGF5c1RvRGF5T2ZXZWVrIDwgZW5kIC0gNykgewogICAgICAgICAgICBkYXlzVG9EYXlPZldlZWsgKz0gNzsKICAgICAgICB9CgogICAgICAgIGFkanVzdGVkTW9tZW50ID0gbW9tZW50KG1vbSkuYWRkKGRheXNUb0RheU9mV2VlaywgJ2QnKTsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICB3ZWVrOiBNYXRoLmNlaWwoYWRqdXN0ZWRNb21lbnQuZGF5T2ZZZWFyKCkgLyA3KSwKICAgICAgICAgICAgeWVhcjogYWRqdXN0ZWRNb21lbnQueWVhcigpCiAgICAgICAgfTsKICAgIH0KCiAgICAvL2h0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPX3dlZWtfZGF0ZSNDYWxjdWxhdGluZ19hX2RhdGVfZ2l2ZW5fdGhlX3llYXIuMkNfd2Vla19udW1iZXJfYW5kX3dlZWtkYXkKICAgIGZ1bmN0aW9uIGRheU9mWWVhckZyb21XZWVrcyh5ZWFyLCB3ZWVrLCB3ZWVrZGF5LCBmaXJzdERheU9mV2Vla09mWWVhciwgZmlyc3REYXlPZldlZWspIHsKICAgICAgICB2YXIgZCA9IG1ha2VVVENEYXRlKHllYXIsIDAsIDEpLmdldFVUQ0RheSgpLCBkYXlzVG9BZGQsIGRheU9mWWVhcjsKCiAgICAgICAgZCA9IGQgPT09IDAgPyA3IDogZDsKICAgICAgICB3ZWVrZGF5ID0gd2Vla2RheSAhPSBudWxsID8gd2Vla2RheSA6IGZpcnN0RGF5T2ZXZWVrOwogICAgICAgIGRheXNUb0FkZCA9IGZpcnN0RGF5T2ZXZWVrIC0gZCArIChkID4gZmlyc3REYXlPZldlZWtPZlllYXIgPyA3IDogMCkgLSAoZCA8IGZpcnN0RGF5T2ZXZWVrID8gNyA6IDApOwogICAgICAgIGRheU9mWWVhciA9IDcgKiAod2VlayAtIDEpICsgKHdlZWtkYXkgLSBmaXJzdERheU9mV2VlaykgKyBkYXlzVG9BZGQgKyAxOwoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICB5ZWFyOiBkYXlPZlllYXIgPiAwID8geWVhciA6IHllYXIgLSAxLAogICAgICAgICAgICBkYXlPZlllYXI6IGRheU9mWWVhciA+IDAgPyAgZGF5T2ZZZWFyIDogZGF5c0luWWVhcih5ZWFyIC0gMSkgKyBkYXlPZlllYXIKICAgICAgICB9OwogICAgfQoKICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgICAgICBUb3AgTGV2ZWwgRnVuY3Rpb25zCiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgogICAgZnVuY3Rpb24gbWFrZU1vbWVudChjb25maWcpIHsKICAgICAgICB2YXIgaW5wdXQgPSBjb25maWcuX2ksCiAgICAgICAgICAgIGZvcm1hdCA9IGNvbmZpZy5fZiwKICAgICAgICAgICAgcmVzOwoKICAgICAgICBjb25maWcuX2xvY2FsZSA9IGNvbmZpZy5fbG9jYWxlIHx8IG1vbWVudC5sb2NhbGVEYXRhKGNvbmZpZy5fbCk7CgogICAgICAgIGlmIChpbnB1dCA9PT0gbnVsbCB8fCAoZm9ybWF0ID09PSB1bmRlZmluZWQgJiYgaW5wdXQgPT09ICcnKSkgewogICAgICAgICAgICByZXR1cm4gbW9tZW50LmludmFsaWQoe251bGxJbnB1dDogdHJ1ZX0pOwogICAgICAgIH0KCiAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHsKICAgICAgICAgICAgY29uZmlnLl9pID0gaW5wdXQgPSBjb25maWcuX2xvY2FsZS5wcmVwYXJzZShpbnB1dCk7CiAgICAgICAgfQoKICAgICAgICBpZiAobW9tZW50LmlzTW9tZW50KGlucHV0KSkgewogICAgICAgICAgICByZXR1cm4gbmV3IE1vbWVudChpbnB1dCwgdHJ1ZSk7CiAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQpIHsKICAgICAgICAgICAgaWYgKGlzQXJyYXkoZm9ybWF0KSkgewogICAgICAgICAgICAgICAgbWFrZURhdGVGcm9tU3RyaW5nQW5kQXJyYXkoY29uZmlnKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIG1ha2VEYXRlRnJvbVN0cmluZ0FuZEZvcm1hdChjb25maWcpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgbWFrZURhdGVGcm9tSW5wdXQoY29uZmlnKTsKICAgICAgICB9CgogICAgICAgIHJlcyA9IG5ldyBNb21lbnQoY29uZmlnKTsKICAgICAgICBpZiAocmVzLl9uZXh0RGF5KSB7CiAgICAgICAgICAgIC8vIEFkZGluZyBpcyBzbWFydCBlbm91Z2ggYXJvdW5kIERTVAogICAgICAgICAgICByZXMuYWRkKDEsICdkJyk7CiAgICAgICAgICAgIHJlcy5fbmV4dERheSA9IHVuZGVmaW5lZDsKICAgICAgICB9CgogICAgICAgIHJldHVybiByZXM7CiAgICB9CgogICAgbW9tZW50ID0gZnVuY3Rpb24gKGlucHV0LCBmb3JtYXQsIGxvY2FsZSwgc3RyaWN0KSB7CiAgICAgICAgdmFyIGM7CgogICAgICAgIGlmICh0eXBlb2YobG9jYWxlKSA9PT0gJ2Jvb2xlYW4nKSB7CiAgICAgICAgICAgIHN0cmljdCA9IGxvY2FsZTsKICAgICAgICAgICAgbG9jYWxlID0gdW5kZWZpbmVkOwogICAgICAgIH0KICAgICAgICAvLyBvYmplY3QgY29uc3RydWN0aW9uIG11c3QgYmUgZG9uZSB0aGlzIHdheS4KICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbW9tZW50L21vbWVudC9pc3N1ZXMvMTQyMwogICAgICAgIGMgPSB7fTsKICAgICAgICBjLl9pc0FNb21lbnRPYmplY3QgPSB0cnVlOwogICAgICAgIGMuX2kgPSBpbnB1dDsKICAgICAgICBjLl9mID0gZm9ybWF0OwogICAgICAgIGMuX2wgPSBsb2NhbGU7CiAgICAgICAgYy5fc3RyaWN0ID0gc3RyaWN0OwogICAgICAgIGMuX2lzVVRDID0gZmFsc2U7CiAgICAgICAgYy5fcGYgPSBkZWZhdWx0UGFyc2luZ0ZsYWdzKCk7CgogICAgICAgIHJldHVybiBtYWtlTW9tZW50KGMpOwogICAgfTsKCiAgICBtb21lbnQuc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmdzID0gZmFsc2U7CgogICAgbW9tZW50LmNyZWF0ZUZyb21JbnB1dEZhbGxiYWNrID0gZGVwcmVjYXRlKAogICAgICAgICdtb21lbnQgY29uc3RydWN0aW9uIGZhbGxzIGJhY2sgdG8ganMgRGF0ZS4gVGhpcyBpcyAnICsKICAgICAgICAnZGlzY291cmFnZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB1cGNvbWluZyBtYWpvciAnICsKICAgICAgICAncmVsZWFzZS4gUGxlYXNlIHJlZmVyIHRvICcgKwogICAgICAgICdodHRwczovL2dpdGh1Yi5jb20vbW9tZW50L21vbWVudC9pc3N1ZXMvMTQwNyBmb3IgbW9yZSBpbmZvLicsCiAgICAgICAgZnVuY3Rpb24gKGNvbmZpZykgewogICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShjb25maWcuX2kgKyAoY29uZmlnLl91c2VVVEMgPyAnIFVUQycgOiAnJykpOwogICAgICAgIH0KICAgICk7CgogICAgLy8gUGljayBhIG1vbWVudCBtIGZyb20gbW9tZW50cyBzbyB0aGF0IG1bZm5dKG90aGVyKSBpcyB0cnVlIGZvciBhbGwKICAgIC8vIG90aGVyLiBUaGlzIHJlbGllcyBvbiB0aGUgZnVuY3Rpb24gZm4gdG8gYmUgdHJhbnNpdGl2ZS4KICAgIC8vCiAgICAvLyBtb21lbnRzIHNob3VsZCBlaXRoZXIgYmUgYW4gYXJyYXkgb2YgbW9tZW50IG9iamVjdHMgb3IgYW4gYXJyYXksIHdob3NlCiAgICAvLyBmaXJzdCBlbGVtZW50IGlzIGFuIGFycmF5IG9mIG1vbWVudCBvYmplY3RzLgogICAgZnVuY3Rpb24gcGlja0J5KGZuLCBtb21lbnRzKSB7CiAgICAgICAgdmFyIHJlcywgaTsKICAgICAgICBpZiAobW9tZW50cy5sZW5ndGggPT09IDEgJiYgaXNBcnJheShtb21lbnRzWzBdKSkgewogICAgICAgICAgICBtb21lbnRzID0gbW9tZW50c1swXTsKICAgICAgICB9CiAgICAgICAgaWYgKCFtb21lbnRzLmxlbmd0aCkgewogICAgICAgICAgICByZXR1cm4gbW9tZW50KCk7CiAgICAgICAgfQogICAgICAgIHJlcyA9IG1vbWVudHNbMF07CiAgICAgICAgZm9yIChpID0gMTsgaSA8IG1vbWVudHMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgaWYgKG1vbWVudHNbaV1bZm5dKHJlcykpIHsKICAgICAgICAgICAgICAgIHJlcyA9IG1vbWVudHNbaV07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlczsKICAgIH0KCiAgICBtb21lbnQubWluID0gZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBhcmdzID0gW10uc2xpY2UuY2FsbChhcmd1bWVudHMsIDApOwoKICAgICAgICByZXR1cm4gcGlja0J5KCdpc0JlZm9yZScsIGFyZ3MpOwogICAgfTsKCiAgICBtb21lbnQubWF4ID0gZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBhcmdzID0gW10uc2xpY2UuY2FsbChhcmd1bWVudHMsIDApOwoKICAgICAgICByZXR1cm4gcGlja0J5KCdpc0FmdGVyJywgYXJncyk7CiAgICB9OwoKICAgIC8vIGNyZWF0aW5nIHdpdGggdXRjCiAgICBtb21lbnQudXRjID0gZnVuY3Rpb24gKGlucHV0LCBmb3JtYXQsIGxvY2FsZSwgc3RyaWN0KSB7CiAgICAgICAgdmFyIGM7CgogICAgICAgIGlmICh0eXBlb2YobG9jYWxlKSA9PT0gJ2Jvb2xlYW4nKSB7CiAgICAgICAgICAgIHN0cmljdCA9IGxvY2FsZTsKICAgICAgICAgICAgbG9jYWxlID0gdW5kZWZpbmVkOwogICAgICAgIH0KICAgICAgICAvLyBvYmplY3QgY29uc3RydWN0aW9uIG11c3QgYmUgZG9uZSB0aGlzIHdheS4KICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbW9tZW50L21vbWVudC9pc3N1ZXMvMTQyMwogICAgICAgIGMgPSB7fTsKICAgICAgICBjLl9pc0FNb21lbnRPYmplY3QgPSB0cnVlOwogICAgICAgIGMuX3VzZVVUQyA9IHRydWU7CiAgICAgICAgYy5faXNVVEMgPSB0cnVlOwogICAgICAgIGMuX2wgPSBsb2NhbGU7CiAgICAgICAgYy5faSA9IGlucHV0OwogICAgICAgIGMuX2YgPSBmb3JtYXQ7CiAgICAgICAgYy5fc3RyaWN0ID0gc3RyaWN0OwogICAgICAgIGMuX3BmID0gZGVmYXVsdFBhcnNpbmdGbGFncygpOwoKICAgICAgICByZXR1cm4gbWFrZU1vbWVudChjKS51dGMoKTsKICAgIH07CgogICAgLy8gY3JlYXRpbmcgd2l0aCB1bml4IHRpbWVzdGFtcCAoaW4gc2Vjb25kcykKICAgIG1vbWVudC51bml4ID0gZnVuY3Rpb24gKGlucHV0KSB7CiAgICAgICAgcmV0dXJuIG1vbWVudChpbnB1dCAqIDEwMDApOwogICAgfTsKCiAgICAvLyBkdXJhdGlvbgogICAgbW9tZW50LmR1cmF0aW9uID0gZnVuY3Rpb24gKGlucHV0LCBrZXkpIHsKICAgICAgICB2YXIgZHVyYXRpb24gPSBpbnB1dCwKICAgICAgICAgICAgLy8gbWF0Y2hpbmcgYWdhaW5zdCByZWdleHAgaXMgZXhwZW5zaXZlLCBkbyBpdCBvbiBkZW1hbmQKICAgICAgICAgICAgbWF0Y2ggPSBudWxsLAogICAgICAgICAgICBzaWduLAogICAgICAgICAgICByZXQsCiAgICAgICAgICAgIHBhcnNlSXNvLAogICAgICAgICAgICBkaWZmUmVzOwoKICAgICAgICBpZiAobW9tZW50LmlzRHVyYXRpb24oaW5wdXQpKSB7CiAgICAgICAgICAgIGR1cmF0aW9uID0gewogICAgICAgICAgICAgICAgbXM6IGlucHV0Ll9taWxsaXNlY29uZHMsCiAgICAgICAgICAgICAgICBkOiBpbnB1dC5fZGF5cywKICAgICAgICAgICAgICAgIE06IGlucHV0Ll9tb250aHMKICAgICAgICAgICAgfTsKICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ251bWJlcicpIHsKICAgICAgICAgICAgZHVyYXRpb24gPSB7fTsKICAgICAgICAgICAgaWYgKGtleSkgewogICAgICAgICAgICAgICAgZHVyYXRpb25ba2V5XSA9IGlucHV0OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZHVyYXRpb24ubWlsbGlzZWNvbmRzID0gaW5wdXQ7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKCEhKG1hdGNoID0gYXNwTmV0VGltZVNwYW5Kc29uUmVnZXguZXhlYyhpbnB1dCkpKSB7CiAgICAgICAgICAgIHNpZ24gPSAobWF0Y2hbMV0gPT09ICctJykgPyAtMSA6IDE7CiAgICAgICAgICAgIGR1cmF0aW9uID0gewogICAgICAgICAgICAgICAgeTogMCwKICAgICAgICAgICAgICAgIGQ6IHRvSW50KG1hdGNoW0RBVEVdKSAqIHNpZ24sCiAgICAgICAgICAgICAgICBoOiB0b0ludChtYXRjaFtIT1VSXSkgKiBzaWduLAogICAgICAgICAgICAgICAgbTogdG9JbnQobWF0Y2hbTUlOVVRFXSkgKiBzaWduLAogICAgICAgICAgICAgICAgczogdG9JbnQobWF0Y2hbU0VDT05EXSkgKiBzaWduLAogICAgICAgICAgICAgICAgbXM6IHRvSW50KG1hdGNoW01JTExJU0VDT05EXSkgKiBzaWduCiAgICAgICAgICAgIH07CiAgICAgICAgfSBlbHNlIGlmICghIShtYXRjaCA9IGlzb0R1cmF0aW9uUmVnZXguZXhlYyhpbnB1dCkpKSB7CiAgICAgICAgICAgIHNpZ24gPSAobWF0Y2hbMV0gPT09ICctJykgPyAtMSA6IDE7CiAgICAgICAgICAgIHBhcnNlSXNvID0gZnVuY3Rpb24gKGlucCkgewogICAgICAgICAgICAgICAgLy8gV2UnZCBub3JtYWxseSB1c2Ugfn5pbnAgZm9yIHRoaXMsIGJ1dCB1bmZvcnR1bmF0ZWx5IGl0IGFsc28KICAgICAgICAgICAgICAgIC8vIGNvbnZlcnRzIGZsb2F0cyB0byBpbnRzLgogICAgICAgICAgICAgICAgLy8gaW5wIG1heSBiZSB1bmRlZmluZWQsIHNvIGNhcmVmdWwgY2FsbGluZyByZXBsYWNlIG9uIGl0LgogICAgICAgICAgICAgICAgdmFyIHJlcyA9IGlucCAmJiBwYXJzZUZsb2F0KGlucC5yZXBsYWNlKCcsJywgJy4nKSk7CiAgICAgICAgICAgICAgICAvLyBhcHBseSBzaWduIHdoaWxlIHdlJ3JlIGF0IGl0CiAgICAgICAgICAgICAgICByZXR1cm4gKGlzTmFOKHJlcykgPyAwIDogcmVzKSAqIHNpZ247CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGR1cmF0aW9uID0gewogICAgICAgICAgICAgICAgeTogcGFyc2VJc28obWF0Y2hbMl0pLAogICAgICAgICAgICAgICAgTTogcGFyc2VJc28obWF0Y2hbM10pLAogICAgICAgICAgICAgICAgZDogcGFyc2VJc28obWF0Y2hbNF0pLAogICAgICAgICAgICAgICAgaDogcGFyc2VJc28obWF0Y2hbNV0pLAogICAgICAgICAgICAgICAgbTogcGFyc2VJc28obWF0Y2hbNl0pLAogICAgICAgICAgICAgICAgczogcGFyc2VJc28obWF0Y2hbN10pLAogICAgICAgICAgICAgICAgdzogcGFyc2VJc28obWF0Y2hbOF0pCiAgICAgICAgICAgIH07CiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZHVyYXRpb24gPT09ICdvYmplY3QnICYmCiAgICAgICAgICAgICAgICAoJ2Zyb20nIGluIGR1cmF0aW9uIHx8ICd0bycgaW4gZHVyYXRpb24pKSB7CiAgICAgICAgICAgIGRpZmZSZXMgPSBtb21lbnRzRGlmZmVyZW5jZShtb21lbnQoZHVyYXRpb24uZnJvbSksIG1vbWVudChkdXJhdGlvbi50bykpOwoKICAgICAgICAgICAgZHVyYXRpb24gPSB7fTsKICAgICAgICAgICAgZHVyYXRpb24ubXMgPSBkaWZmUmVzLm1pbGxpc2Vjb25kczsKICAgICAgICAgICAgZHVyYXRpb24uTSA9IGRpZmZSZXMubW9udGhzOwogICAgICAgIH0KCiAgICAgICAgcmV0ID0gbmV3IER1cmF0aW9uKGR1cmF0aW9uKTsKCiAgICAgICAgaWYgKG1vbWVudC5pc0R1cmF0aW9uKGlucHV0KSAmJiBoYXNPd25Qcm9wKGlucHV0LCAnX2xvY2FsZScpKSB7CiAgICAgICAgICAgIHJldC5fbG9jYWxlID0gaW5wdXQuX2xvY2FsZTsKICAgICAgICB9CgogICAgICAgIHJldHVybiByZXQ7CiAgICB9OwoKICAgIC8vIHZlcnNpb24gbnVtYmVyCiAgICBtb21lbnQudmVyc2lvbiA9IFZFUlNJT047CgogICAgLy8gZGVmYXVsdCBmb3JtYXQKICAgIG1vbWVudC5kZWZhdWx0Rm9ybWF0ID0gaXNvRm9ybWF0OwoKICAgIC8vIGNvbnN0YW50IHRoYXQgcmVmZXJzIHRvIHRoZSBJU08gc3RhbmRhcmQKICAgIG1vbWVudC5JU09fODYwMSA9IGZ1bmN0aW9uICgpIHt9OwoKICAgIC8vIFBsdWdpbnMgdGhhdCBhZGQgcHJvcGVydGllcyBzaG91bGQgYWxzbyBhZGQgdGhlIGtleSBoZXJlIChudWxsIHZhbHVlKSwKICAgIC8vIHNvIHdlIGNhbiBwcm9wZXJseSBjbG9uZSBvdXJzZWx2ZXMuCiAgICBtb21lbnQubW9tZW50UHJvcGVydGllcyA9IG1vbWVudFByb3BlcnRpZXM7CgogICAgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB3aGVuZXZlciBhIG1vbWVudCBpcyBtdXRhdGVkLgogICAgLy8gSXQgaXMgaW50ZW5kZWQgdG8ga2VlcCB0aGUgb2Zmc2V0IGluIHN5bmMgd2l0aCB0aGUgdGltZXpvbmUuCiAgICBtb21lbnQudXBkYXRlT2Zmc2V0ID0gZnVuY3Rpb24gKCkge307CgogICAgLy8gVGhpcyBmdW5jdGlvbiBhbGxvd3MgeW91IHRvIHNldCBhIHRocmVzaG9sZCBmb3IgcmVsYXRpdmUgdGltZSBzdHJpbmdzCiAgICBtb21lbnQucmVsYXRpdmVUaW1lVGhyZXNob2xkID0gZnVuY3Rpb24gKHRocmVzaG9sZCwgbGltaXQpIHsKICAgICAgICBpZiAocmVsYXRpdmVUaW1lVGhyZXNob2xkc1t0aHJlc2hvbGRdID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICBpZiAobGltaXQgPT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICByZXR1cm4gcmVsYXRpdmVUaW1lVGhyZXNob2xkc1t0aHJlc2hvbGRdOwogICAgICAgIH0KICAgICAgICByZWxhdGl2ZVRpbWVUaHJlc2hvbGRzW3RocmVzaG9sZF0gPSBsaW1pdDsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH07CgogICAgbW9tZW50LmxhbmcgPSBkZXByZWNhdGUoCiAgICAgICAgJ21vbWVudC5sYW5nIGlzIGRlcHJlY2F0ZWQuIFVzZSBtb21lbnQubG9jYWxlIGluc3RlYWQuJywKICAgICAgICBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkgewogICAgICAgICAgICByZXR1cm4gbW9tZW50LmxvY2FsZShrZXksIHZhbHVlKTsKICAgICAgICB9CiAgICApOwoKICAgIC8vIFRoaXMgZnVuY3Rpb24gd2lsbCBsb2FkIGxvY2FsZSBhbmQgdGhlbiBzZXQgdGhlIGdsb2JhbCBsb2NhbGUuICBJZgogICAgLy8gbm8gYXJndW1lbnRzIGFyZSBwYXNzZWQgaW4sIGl0IHdpbGwgc2ltcGx5IHJldHVybiB0aGUgY3VycmVudCBnbG9iYWwKICAgIC8vIGxvY2FsZSBrZXkuCiAgICBtb21lbnQubG9jYWxlID0gZnVuY3Rpb24gKGtleSwgdmFsdWVzKSB7CiAgICAgICAgdmFyIGRhdGE7CiAgICAgICAgaWYgKGtleSkgewogICAgICAgICAgICBpZiAodHlwZW9mKHZhbHVlcykgIT09ICd1bmRlZmluZWQnKSB7CiAgICAgICAgICAgICAgICBkYXRhID0gbW9tZW50LmRlZmluZUxvY2FsZShrZXksIHZhbHVlcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBkYXRhID0gbW9tZW50LmxvY2FsZURhdGEoa2V5KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKGRhdGEpIHsKICAgICAgICAgICAgICAgIG1vbWVudC5kdXJhdGlvbi5fbG9jYWxlID0gbW9tZW50Ll9sb2NhbGUgPSBkYXRhOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gbW9tZW50Ll9sb2NhbGUuX2FiYnI7CiAgICB9OwoKICAgIG1vbWVudC5kZWZpbmVMb2NhbGUgPSBmdW5jdGlvbiAobmFtZSwgdmFsdWVzKSB7CiAgICAgICAgaWYgKHZhbHVlcyAhPT0gbnVsbCkgewogICAgICAgICAgICB2YWx1ZXMuYWJiciA9IG5hbWU7CiAgICAgICAgICAgIGlmICghbG9jYWxlc1tuYW1lXSkgewogICAgICAgICAgICAgICAgbG9jYWxlc1tuYW1lXSA9IG5ldyBMb2NhbGUoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBsb2NhbGVzW25hbWVdLnNldCh2YWx1ZXMpOwoKICAgICAgICAgICAgLy8gYmFja3dhcmRzIGNvbXBhdCBmb3Igbm93OiBhbHNvIHNldCB0aGUgbG9jYWxlCiAgICAgICAgICAgIG1vbWVudC5sb2NhbGUobmFtZSk7CgogICAgICAgICAgICByZXR1cm4gbG9jYWxlc1tuYW1lXTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAvLyB1c2VmdWwgZm9yIHRlc3RpbmcKICAgICAgICAgICAgZGVsZXRlIGxvY2FsZXNbbmFtZV07CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgIH07CgogICAgbW9tZW50LmxhbmdEYXRhID0gZGVwcmVjYXRlKAogICAgICAgICdtb21lbnQubGFuZ0RhdGEgaXMgZGVwcmVjYXRlZC4gVXNlIG1vbWVudC5sb2NhbGVEYXRhIGluc3RlYWQuJywKICAgICAgICBmdW5jdGlvbiAoa2V5KSB7CiAgICAgICAgICAgIHJldHVybiBtb21lbnQubG9jYWxlRGF0YShrZXkpOwogICAgICAgIH0KICAgICk7CgogICAgLy8gcmV0dXJucyBsb2NhbGUgZGF0YQogICAgbW9tZW50LmxvY2FsZURhdGEgPSBmdW5jdGlvbiAoa2V5KSB7CiAgICAgICAgdmFyIGxvY2FsZTsKCiAgICAgICAgaWYgKGtleSAmJiBrZXkuX2xvY2FsZSAmJiBrZXkuX2xvY2FsZS5fYWJicikgewogICAgICAgICAgICBrZXkgPSBrZXkuX2xvY2FsZS5fYWJicjsKICAgICAgICB9CgogICAgICAgIGlmICgha2V5KSB7CiAgICAgICAgICAgIHJldHVybiBtb21lbnQuX2xvY2FsZTsKICAgICAgICB9CgogICAgICAgIGlmICghaXNBcnJheShrZXkpKSB7CiAgICAgICAgICAgIC8vc2hvcnQtY2lyY3VpdCBldmVyeXRoaW5nIGVsc2UKICAgICAgICAgICAgbG9jYWxlID0gbG9hZExvY2FsZShrZXkpOwogICAgICAgICAgICBpZiAobG9jYWxlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbG9jYWxlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGtleSA9IFtrZXldOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGNob29zZUxvY2FsZShrZXkpOwogICAgfTsKCiAgICAvLyBjb21wYXJlIG1vbWVudCBvYmplY3QKICAgIG1vbWVudC5pc01vbWVudCA9IGZ1bmN0aW9uIChvYmopIHsKICAgICAgICByZXR1cm4gb2JqIGluc3RhbmNlb2YgTW9tZW50IHx8CiAgICAgICAgICAgIChvYmogIT0gbnVsbCAmJiBoYXNPd25Qcm9wKG9iaiwgJ19pc0FNb21lbnRPYmplY3QnKSk7CiAgICB9OwoKICAgIC8vIGZvciB0eXBlY2hlY2tpbmcgRHVyYXRpb24gb2JqZWN0cwogICAgbW9tZW50LmlzRHVyYXRpb24gPSBmdW5jdGlvbiAob2JqKSB7CiAgICAgICAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIER1cmF0aW9uOwogICAgfTsKCiAgICBmb3IgKGkgPSBsaXN0cy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkgewogICAgICAgIG1ha2VMaXN0KGxpc3RzW2ldKTsKICAgIH0KCiAgICBtb21lbnQubm9ybWFsaXplVW5pdHMgPSBmdW5jdGlvbiAodW5pdHMpIHsKICAgICAgICByZXR1cm4gbm9ybWFsaXplVW5pdHModW5pdHMpOwogICAgfTsKCiAgICBtb21lbnQuaW52YWxpZCA9IGZ1bmN0aW9uIChmbGFncykgewogICAgICAgIHZhciBtID0gbW9tZW50LnV0YyhOYU4pOwogICAgICAgIGlmIChmbGFncyAhPSBudWxsKSB7CiAgICAgICAgICAgIGV4dGVuZChtLl9wZiwgZmxhZ3MpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbS5fcGYudXNlckludmFsaWRhdGVkID0gdHJ1ZTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBtOwogICAgfTsKCiAgICBtb21lbnQucGFyc2Vab25lID0gZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBtb21lbnQuYXBwbHkobnVsbCwgYXJndW1lbnRzKS5wYXJzZVpvbmUoKTsKICAgIH07CgogICAgbW9tZW50LnBhcnNlVHdvRGlnaXRZZWFyID0gZnVuY3Rpb24gKGlucHV0KSB7CiAgICAgICAgcmV0dXJuIHRvSW50KGlucHV0KSArICh0b0ludChpbnB1dCkgPiA2OCA/IDE5MDAgOiAyMDAwKTsKICAgIH07CgogICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgICAgIE1vbWVudCBQcm90b3R5cGUKICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCgogICAgZXh0ZW5kKG1vbWVudC5mbiA9IE1vbWVudC5wcm90b3R5cGUsIHsKCiAgICAgICAgY2xvbmUgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJldHVybiBtb21lbnQodGhpcyk7CiAgICAgICAgfSwKCiAgICAgICAgdmFsdWVPZiA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuICt0aGlzLl9kICsgKCh0aGlzLl9vZmZzZXQgfHwgMCkgKiA2MDAwMCk7CiAgICAgICAgfSwKCiAgICAgICAgdW5peCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IoK3RoaXMgLyAxMDAwKTsKICAgICAgICB9LAoKICAgICAgICB0b1N0cmluZyA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xvbmUoKS5sb2NhbGUoJ2VuJykuZm9ybWF0KCdkZGQgTU1NIEREIFlZWVkgSEg6bW06c3MgW0dNVF1aWicpOwogICAgICAgIH0sCgogICAgICAgIHRvRGF0ZSA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX29mZnNldCA/IG5ldyBEYXRlKCt0aGlzKSA6IHRoaXMuX2Q7CiAgICAgICAgfSwKCiAgICAgICAgdG9JU09TdHJpbmcgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHZhciBtID0gbW9tZW50KHRoaXMpLnV0YygpOwogICAgICAgICAgICBpZiAoMCA8IG0ueWVhcigpICYmIG0ueWVhcigpIDw9IDk5OTkpIHsKICAgICAgICAgICAgICAgIGlmICgnZnVuY3Rpb24nID09PSB0eXBlb2YgRGF0ZS5wcm90b3R5cGUudG9JU09TdHJpbmcpIHsKICAgICAgICAgICAgICAgICAgICAvLyBuYXRpdmUgaW1wbGVtZW50YXRpb24gaXMgfjUweCBmYXN0ZXIsIHVzZSBpdCB3aGVuIHdlIGNhbgogICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvRGF0ZSgpLnRvSVNPU3RyaW5nKCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBmb3JtYXRNb21lbnQobSwgJ1lZWVktTU0tRERbVF1ISDptbTpzcy5TU1NbWl0nKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHJldHVybiBmb3JtYXRNb21lbnQobSwgJ1lZWVlZWS1NTS1ERFtUXUhIOm1tOnNzLlNTU1taXScpOwogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgdG9BcnJheSA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIG0gPSB0aGlzOwogICAgICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAgICAgbS55ZWFyKCksCiAgICAgICAgICAgICAgICBtLm1vbnRoKCksCiAgICAgICAgICAgICAgICBtLmRhdGUoKSwKICAgICAgICAgICAgICAgIG0uaG91cnMoKSwKICAgICAgICAgICAgICAgIG0ubWludXRlcygpLAogICAgICAgICAgICAgICAgbS5zZWNvbmRzKCksCiAgICAgICAgICAgICAgICBtLm1pbGxpc2Vjb25kcygpCiAgICAgICAgICAgIF07CiAgICAgICAgfSwKCiAgICAgICAgaXNWYWxpZCA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIGlzVmFsaWQodGhpcyk7CiAgICAgICAgfSwKCiAgICAgICAgaXNEU1RTaGlmdGVkIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICBpZiAodGhpcy5fYSkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpICYmIGNvbXBhcmVBcnJheXModGhpcy5fYSwgKHRoaXMuX2lzVVRDID8gbW9tZW50LnV0Yyh0aGlzLl9hKSA6IG1vbWVudCh0aGlzLl9hKSkudG9BcnJheSgpKSA+IDA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9LAoKICAgICAgICBwYXJzaW5nRmxhZ3MgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJldHVybiBleHRlbmQoe30sIHRoaXMuX3BmKTsKICAgICAgICB9LAoKICAgICAgICBpbnZhbGlkQXQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3BmLm92ZXJmbG93OwogICAgICAgIH0sCgogICAgICAgIHV0YyA6IGZ1bmN0aW9uIChrZWVwTG9jYWxUaW1lKSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLnpvbmUoMCwga2VlcExvY2FsVGltZSk7CiAgICAgICAgfSwKCiAgICAgICAgbG9jYWwgOiBmdW5jdGlvbiAoa2VlcExvY2FsVGltZSkgewogICAgICAgICAgICBpZiAodGhpcy5faXNVVEMpIHsKICAgICAgICAgICAgICAgIHRoaXMuem9uZSgwLCBrZWVwTG9jYWxUaW1lKTsKICAgICAgICAgICAgICAgIHRoaXMuX2lzVVRDID0gZmFsc2U7CgogICAgICAgICAgICAgICAgaWYgKGtlZXBMb2NhbFRpbWUpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZCh0aGlzLl9kYXRlVHpPZmZzZXQoKSwgJ20nKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICB9LAoKICAgICAgICBmb3JtYXQgOiBmdW5jdGlvbiAoaW5wdXRTdHJpbmcpIHsKICAgICAgICAgICAgdmFyIG91dHB1dCA9IGZvcm1hdE1vbWVudCh0aGlzLCBpbnB1dFN0cmluZyB8fCBtb21lbnQuZGVmYXVsdEZvcm1hdCk7CiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5wb3N0Zm9ybWF0KG91dHB1dCk7CiAgICAgICAgfSwKCiAgICAgICAgYWRkIDogY3JlYXRlQWRkZXIoMSwgJ2FkZCcpLAoKICAgICAgICBzdWJ0cmFjdCA6IGNyZWF0ZUFkZGVyKC0xLCAnc3VidHJhY3QnKSwKCiAgICAgICAgZGlmZiA6IGZ1bmN0aW9uIChpbnB1dCwgdW5pdHMsIGFzRmxvYXQpIHsKICAgICAgICAgICAgdmFyIHRoYXQgPSBtYWtlQXMoaW5wdXQsIHRoaXMpLAogICAgICAgICAgICAgICAgem9uZURpZmYgPSAodGhpcy56b25lKCkgLSB0aGF0LnpvbmUoKSkgKiA2ZTQsCiAgICAgICAgICAgICAgICBkaWZmLCBvdXRwdXQsIGRheXNBZGp1c3Q7CgogICAgICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKTsKCiAgICAgICAgICAgIGlmICh1bml0cyA9PT0gJ3llYXInIHx8IHVuaXRzID09PSAnbW9udGgnKSB7CiAgICAgICAgICAgICAgICAvLyBhdmVyYWdlIG51bWJlciBvZiBkYXlzIGluIHRoZSBtb250aHMgaW4gdGhlIGdpdmVuIGRhdGVzCiAgICAgICAgICAgICAgICBkaWZmID0gKHRoaXMuZGF5c0luTW9udGgoKSArIHRoYXQuZGF5c0luTW9udGgoKSkgKiA0MzJlNTsgLy8gMjQgKiA2MCAqIDYwICogMTAwMCAvIDIKICAgICAgICAgICAgICAgIC8vIGRpZmZlcmVuY2UgaW4gbW9udGhzCiAgICAgICAgICAgICAgICBvdXRwdXQgPSAoKHRoaXMueWVhcigpIC0gdGhhdC55ZWFyKCkpICogMTIpICsgKHRoaXMubW9udGgoKSAtIHRoYXQubW9udGgoKSk7CiAgICAgICAgICAgICAgICAvLyBhZGp1c3QgYnkgdGFraW5nIGRpZmZlcmVuY2UgaW4gZGF5cywgYXZlcmFnZSBudW1iZXIgb2YgZGF5cwogICAgICAgICAgICAgICAgLy8gYW5kIGRzdCBpbiB0aGUgZ2l2ZW4gbW9udGhzLgogICAgICAgICAgICAgICAgZGF5c0FkanVzdCA9ICh0aGlzIC0gbW9tZW50KHRoaXMpLnN0YXJ0T2YoJ21vbnRoJykpIC0KICAgICAgICAgICAgICAgICAgICAodGhhdCAtIG1vbWVudCh0aGF0KS5zdGFydE9mKCdtb250aCcpKTsKICAgICAgICAgICAgICAgIC8vIHNhbWUgYXMgYWJvdmUgYnV0IHdpdGggem9uZXMsIHRvIG5lZ2F0ZSBhbGwgZHN0CiAgICAgICAgICAgICAgICBkYXlzQWRqdXN0IC09ICgodGhpcy56b25lKCkgLSBtb21lbnQodGhpcykuc3RhcnRPZignbW9udGgnKS56b25lKCkpIC0KICAgICAgICAgICAgICAgICAgICAgICAgKHRoYXQuem9uZSgpIC0gbW9tZW50KHRoYXQpLnN0YXJ0T2YoJ21vbnRoJykuem9uZSgpKSkgKiA2ZTQ7CiAgICAgICAgICAgICAgICBvdXRwdXQgKz0gZGF5c0FkanVzdCAvIGRpZmY7CiAgICAgICAgICAgICAgICBpZiAodW5pdHMgPT09ICd5ZWFyJykgewogICAgICAgICAgICAgICAgICAgIG91dHB1dCA9IG91dHB1dCAvIDEyOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZGlmZiA9ICh0aGlzIC0gdGhhdCk7CiAgICAgICAgICAgICAgICBvdXRwdXQgPSB1bml0cyA9PT0gJ3NlY29uZCcgPyBkaWZmIC8gMWUzIDogLy8gMTAwMAogICAgICAgICAgICAgICAgICAgIHVuaXRzID09PSAnbWludXRlJyA/IGRpZmYgLyA2ZTQgOiAvLyAxMDAwICogNjAKICAgICAgICAgICAgICAgICAgICB1bml0cyA9PT0gJ2hvdXInID8gZGlmZiAvIDM2ZTUgOiAvLyAxMDAwICogNjAgKiA2MAogICAgICAgICAgICAgICAgICAgIHVuaXRzID09PSAnZGF5JyA/IChkaWZmIC0gem9uZURpZmYpIC8gODY0ZTUgOiAvLyAxMDAwICogNjAgKiA2MCAqIDI0LCBuZWdhdGUgZHN0CiAgICAgICAgICAgICAgICAgICAgdW5pdHMgPT09ICd3ZWVrJyA/IChkaWZmIC0gem9uZURpZmYpIC8gNjA0OGU1IDogLy8gMTAwMCAqIDYwICogNjAgKiAyNCAqIDcsIG5lZ2F0ZSBkc3QKICAgICAgICAgICAgICAgICAgICBkaWZmOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBhc0Zsb2F0ID8gb3V0cHV0IDogYWJzUm91bmQob3V0cHV0KTsKICAgICAgICB9LAoKICAgICAgICBmcm9tIDogZnVuY3Rpb24gKHRpbWUsIHdpdGhvdXRTdWZmaXgpIHsKICAgICAgICAgICAgcmV0dXJuIG1vbWVudC5kdXJhdGlvbih7dG86IHRoaXMsIGZyb206IHRpbWV9KS5sb2NhbGUodGhpcy5sb2NhbGUoKSkuaHVtYW5pemUoIXdpdGhvdXRTdWZmaXgpOwogICAgICAgIH0sCgogICAgICAgIGZyb21Ob3cgOiBmdW5jdGlvbiAod2l0aG91dFN1ZmZpeCkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5mcm9tKG1vbWVudCgpLCB3aXRob3V0U3VmZml4KTsKICAgICAgICB9LAoKICAgICAgICBjYWxlbmRhciA6IGZ1bmN0aW9uICh0aW1lKSB7CiAgICAgICAgICAgIC8vIFdlIHdhbnQgdG8gY29tcGFyZSB0aGUgc3RhcnQgb2YgdG9kYXksIHZzIHRoaXMuCiAgICAgICAgICAgIC8vIEdldHRpbmcgc3RhcnQtb2YtdG9kYXkgZGVwZW5kcyBvbiB3aGV0aGVyIHdlJ3JlIHpvbmUnZCBvciBub3QuCiAgICAgICAgICAgIHZhciBub3cgPSB0aW1lIHx8IG1vbWVudCgpLAogICAgICAgICAgICAgICAgc29kID0gbWFrZUFzKG5vdywgdGhpcykuc3RhcnRPZignZGF5JyksCiAgICAgICAgICAgICAgICBkaWZmID0gdGhpcy5kaWZmKHNvZCwgJ2RheXMnLCB0cnVlKSwKICAgICAgICAgICAgICAgIGZvcm1hdCA9IGRpZmYgPCAtNiA/ICdzYW1lRWxzZScgOgogICAgICAgICAgICAgICAgICAgIGRpZmYgPCAtMSA/ICdsYXN0V2VlaycgOgogICAgICAgICAgICAgICAgICAgIGRpZmYgPCAwID8gJ2xhc3REYXknIDoKICAgICAgICAgICAgICAgICAgICBkaWZmIDwgMSA/ICdzYW1lRGF5JyA6CiAgICAgICAgICAgICAgICAgICAgZGlmZiA8IDIgPyAnbmV4dERheScgOgogICAgICAgICAgICAgICAgICAgIGRpZmYgPCA3ID8gJ25leHRXZWVrJyA6ICdzYW1lRWxzZSc7CiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdCh0aGlzLmxvY2FsZURhdGEoKS5jYWxlbmRhcihmb3JtYXQsIHRoaXMsIG1vbWVudChub3cpKSk7CiAgICAgICAgfSwKCiAgICAgICAgaXNMZWFwWWVhciA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIGlzTGVhcFllYXIodGhpcy55ZWFyKCkpOwogICAgICAgIH0sCgogICAgICAgIGlzRFNUIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gKHRoaXMuem9uZSgpIDwgdGhpcy5jbG9uZSgpLm1vbnRoKDApLnpvbmUoKSB8fAogICAgICAgICAgICAgICAgdGhpcy56b25lKCkgPCB0aGlzLmNsb25lKCkubW9udGgoNSkuem9uZSgpKTsKICAgICAgICB9LAoKICAgICAgICBkYXkgOiBmdW5jdGlvbiAoaW5wdXQpIHsKICAgICAgICAgICAgdmFyIGRheSA9IHRoaXMuX2lzVVRDID8gdGhpcy5fZC5nZXRVVENEYXkoKSA6IHRoaXMuX2QuZ2V0RGF5KCk7CiAgICAgICAgICAgIGlmIChpbnB1dCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICBpbnB1dCA9IHBhcnNlV2Vla2RheShpbnB1dCwgdGhpcy5sb2NhbGVEYXRhKCkpOwogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRkKGlucHV0IC0gZGF5LCAnZCcpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcmV0dXJuIGRheTsKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIG1vbnRoIDogbWFrZUFjY2Vzc29yKCdNb250aCcsIHRydWUpLAoKICAgICAgICBzdGFydE9mIDogZnVuY3Rpb24gKHVuaXRzKSB7CiAgICAgICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpOwogICAgICAgICAgICAvLyB0aGUgZm9sbG93aW5nIHN3aXRjaCBpbnRlbnRpb25hbGx5IG9taXRzIGJyZWFrIGtleXdvcmRzCiAgICAgICAgICAgIC8vIHRvIHV0aWxpemUgZmFsbGluZyB0aHJvdWdoIHRoZSBjYXNlcy4KICAgICAgICAgICAgc3dpdGNoICh1bml0cykgewogICAgICAgICAgICBjYXNlICd5ZWFyJzoKICAgICAgICAgICAgICAgIHRoaXMubW9udGgoMCk7CiAgICAgICAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgICAgICAgIGNhc2UgJ3F1YXJ0ZXInOgogICAgICAgICAgICBjYXNlICdtb250aCc6CiAgICAgICAgICAgICAgICB0aGlzLmRhdGUoMSk7CiAgICAgICAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgICAgICAgIGNhc2UgJ3dlZWsnOgogICAgICAgICAgICBjYXNlICdpc29XZWVrJzoKICAgICAgICAgICAgY2FzZSAnZGF5JzoKICAgICAgICAgICAgICAgIHRoaXMuaG91cnMoMCk7CiAgICAgICAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgICAgICAgIGNhc2UgJ2hvdXInOgogICAgICAgICAgICAgICAgdGhpcy5taW51dGVzKDApOwogICAgICAgICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICAgICAgICBjYXNlICdtaW51dGUnOgogICAgICAgICAgICAgICAgdGhpcy5zZWNvbmRzKDApOwogICAgICAgICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICAgICAgICBjYXNlICdzZWNvbmQnOgogICAgICAgICAgICAgICAgdGhpcy5taWxsaXNlY29uZHMoMCk7CiAgICAgICAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIHdlZWtzIGFyZSBhIHNwZWNpYWwgY2FzZQogICAgICAgICAgICBpZiAodW5pdHMgPT09ICd3ZWVrJykgewogICAgICAgICAgICAgICAgdGhpcy53ZWVrZGF5KDApOwogICAgICAgICAgICB9IGVsc2UgaWYgKHVuaXRzID09PSAnaXNvV2VlaycpIHsKICAgICAgICAgICAgICAgIHRoaXMuaXNvV2Vla2RheSgxKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gcXVhcnRlcnMgYXJlIGFsc28gc3BlY2lhbAogICAgICAgICAgICBpZiAodW5pdHMgPT09ICdxdWFydGVyJykgewogICAgICAgICAgICAgICAgdGhpcy5tb250aChNYXRoLmZsb29yKHRoaXMubW9udGgoKSAvIDMpICogMyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgIH0sCgogICAgICAgIGVuZE9mOiBmdW5jdGlvbiAodW5pdHMpIHsKICAgICAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7CiAgICAgICAgICAgIGlmICh1bml0cyA9PT0gdW5kZWZpbmVkIHx8IHVuaXRzID09PSAnbWlsbGlzZWNvbmQnKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gdGhpcy5zdGFydE9mKHVuaXRzKS5hZGQoMSwgKHVuaXRzID09PSAnaXNvV2VlaycgPyAnd2VlaycgOiB1bml0cykpLnN1YnRyYWN0KDEsICdtcycpOwogICAgICAgIH0sCgogICAgICAgIGlzQWZ0ZXI6IGZ1bmN0aW9uIChpbnB1dCwgdW5pdHMpIHsKICAgICAgICAgICAgdmFyIGlucHV0TXM7CiAgICAgICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModHlwZW9mIHVuaXRzICE9PSAndW5kZWZpbmVkJyA/IHVuaXRzIDogJ21pbGxpc2Vjb25kJyk7CiAgICAgICAgICAgIGlmICh1bml0cyA9PT0gJ21pbGxpc2Vjb25kJykgewogICAgICAgICAgICAgICAgaW5wdXQgPSBtb21lbnQuaXNNb21lbnQoaW5wdXQpID8gaW5wdXQgOiBtb21lbnQoaW5wdXQpOwogICAgICAgICAgICAgICAgcmV0dXJuICt0aGlzID4gK2lucHV0OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaW5wdXRNcyA9IG1vbWVudC5pc01vbWVudChpbnB1dCkgPyAraW5wdXQgOiArbW9tZW50KGlucHV0KTsKICAgICAgICAgICAgICAgIHJldHVybiBpbnB1dE1zIDwgK3RoaXMuY2xvbmUoKS5zdGFydE9mKHVuaXRzKTsKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIGlzQmVmb3JlOiBmdW5jdGlvbiAoaW5wdXQsIHVuaXRzKSB7CiAgICAgICAgICAgIHZhciBpbnB1dE1zOwogICAgICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHR5cGVvZiB1bml0cyAhPT0gJ3VuZGVmaW5lZCcgPyB1bml0cyA6ICdtaWxsaXNlY29uZCcpOwogICAgICAgICAgICBpZiAodW5pdHMgPT09ICdtaWxsaXNlY29uZCcpIHsKICAgICAgICAgICAgICAgIGlucHV0ID0gbW9tZW50LmlzTW9tZW50KGlucHV0KSA/IGlucHV0IDogbW9tZW50KGlucHV0KTsKICAgICAgICAgICAgICAgIHJldHVybiArdGhpcyA8ICtpbnB1dDsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGlucHV0TXMgPSBtb21lbnQuaXNNb21lbnQoaW5wdXQpID8gK2lucHV0IDogK21vbWVudChpbnB1dCk7CiAgICAgICAgICAgICAgICByZXR1cm4gK3RoaXMuY2xvbmUoKS5lbmRPZih1bml0cykgPCBpbnB1dE1zOwogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgaXNTYW1lOiBmdW5jdGlvbiAoaW5wdXQsIHVuaXRzKSB7CiAgICAgICAgICAgIHZhciBpbnB1dE1zOwogICAgICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzIHx8ICdtaWxsaXNlY29uZCcpOwogICAgICAgICAgICBpZiAodW5pdHMgPT09ICdtaWxsaXNlY29uZCcpIHsKICAgICAgICAgICAgICAgIGlucHV0ID0gbW9tZW50LmlzTW9tZW50KGlucHV0KSA/IGlucHV0IDogbW9tZW50KGlucHV0KTsKICAgICAgICAgICAgICAgIHJldHVybiArdGhpcyA9PT0gK2lucHV0OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaW5wdXRNcyA9ICttb21lbnQoaW5wdXQpOwogICAgICAgICAgICAgICAgcmV0dXJuICsodGhpcy5jbG9uZSgpLnN0YXJ0T2YodW5pdHMpKSA8PSBpbnB1dE1zICYmIGlucHV0TXMgPD0gKyh0aGlzLmNsb25lKCkuZW5kT2YodW5pdHMpKTsKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIG1pbjogZGVwcmVjYXRlKAogICAgICAgICAgICAgICAgICdtb21lbnQoKS5taW4gaXMgZGVwcmVjYXRlZCwgdXNlIG1vbWVudC5taW4gaW5zdGVhZC4gaHR0cHM6Ly9naXRodWIuY29tL21vbWVudC9tb21lbnQvaXNzdWVzLzE1NDgnLAogICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChvdGhlcikgewogICAgICAgICAgICAgICAgICAgICBvdGhlciA9IG1vbWVudC5hcHBseShudWxsLCBhcmd1bWVudHMpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3RoZXIgPCB0aGlzID8gdGhpcyA6IG90aGVyOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgKSwKCiAgICAgICAgbWF4OiBkZXByZWNhdGUoCiAgICAgICAgICAgICAgICAnbW9tZW50KCkubWF4IGlzIGRlcHJlY2F0ZWQsIHVzZSBtb21lbnQubWF4IGluc3RlYWQuIGh0dHBzOi8vZ2l0aHViLmNvbS9tb21lbnQvbW9tZW50L2lzc3Vlcy8xNTQ4JywKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChvdGhlcikgewogICAgICAgICAgICAgICAgICAgIG90aGVyID0gbW9tZW50LmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG90aGVyID4gdGhpcyA/IHRoaXMgOiBvdGhlcjsKICAgICAgICAgICAgICAgIH0KICAgICAgICApLAoKICAgICAgICAvLyBrZWVwTG9jYWxUaW1lID0gdHJ1ZSBtZWFucyBvbmx5IGNoYW5nZSB0aGUgdGltZXpvbmUsIHdpdGhvdXQKICAgICAgICAvLyBhZmZlY3RpbmcgdGhlIGxvY2FsIGhvdXIuIFNvIDU6MzE6MjYgKzAzMDAgLS1bem9uZSgyLCB0cnVlKV0tLT4KICAgICAgICAvLyA1OjMxOjI2ICswMjAwIEl0IGlzIHBvc3NpYmxlIHRoYXQgNTozMToyNiBkb2Vzbid0IGV4aXN0IGludCB6b25lCiAgICAgICAgLy8gKzAyMDAsIHNvIHdlIGFkanVzdCB0aGUgdGltZSBhcyBuZWVkZWQsIHRvIGJlIHZhbGlkLgogICAgICAgIC8vCiAgICAgICAgLy8gS2VlcGluZyB0aGUgdGltZSBhY3R1YWxseSBhZGRzL3N1YnRyYWN0cyAob25lIGhvdXIpCiAgICAgICAgLy8gZnJvbSB0aGUgYWN0dWFsIHJlcHJlc2VudGVkIHRpbWUuIFRoYXQgaXMgd2h5IHdlIGNhbGwgdXBkYXRlT2Zmc2V0CiAgICAgICAgLy8gYSBzZWNvbmQgdGltZS4gSW4gY2FzZSBpdCB3YW50cyB1cyB0byBjaGFuZ2UgdGhlIG9mZnNldCBhZ2FpbgogICAgICAgIC8vIF9jaGFuZ2VJblByb2dyZXNzID09IHRydWUgY2FzZSwgdGhlbiB3ZSBoYXZlIHRvIGFkanVzdCwgYmVjYXVzZQogICAgICAgIC8vIHRoZXJlIGlzIG5vIHN1Y2ggdGltZSBpbiB0aGUgZ2l2ZW4gdGltZXpvbmUuCiAgICAgICAgem9uZSA6IGZ1bmN0aW9uIChpbnB1dCwga2VlcExvY2FsVGltZSkgewogICAgICAgICAgICB2YXIgb2Zmc2V0ID0gdGhpcy5fb2Zmc2V0IHx8IDAsCiAgICAgICAgICAgICAgICBsb2NhbEFkanVzdDsKICAgICAgICAgICAgaWYgKGlucHV0ICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQgPSB0aW1lem9uZU1pbnV0ZXNGcm9tU3RyaW5nKGlucHV0KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChNYXRoLmFicyhpbnB1dCkgPCAxNikgewogICAgICAgICAgICAgICAgICAgIGlucHV0ID0gaW5wdXQgKiA2MDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICghdGhpcy5faXNVVEMgJiYga2VlcExvY2FsVGltZSkgewogICAgICAgICAgICAgICAgICAgIGxvY2FsQWRqdXN0ID0gdGhpcy5fZGF0ZVR6T2Zmc2V0KCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLl9vZmZzZXQgPSBpbnB1dDsKICAgICAgICAgICAgICAgIHRoaXMuX2lzVVRDID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGlmIChsb2NhbEFkanVzdCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWJ0cmFjdChsb2NhbEFkanVzdCwgJ20nKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChvZmZzZXQgIT09IGlucHV0KSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFrZWVwTG9jYWxUaW1lIHx8IHRoaXMuX2NoYW5nZUluUHJvZ3Jlc3MpIHsKICAgICAgICAgICAgICAgICAgICAgICAgYWRkT3JTdWJ0cmFjdER1cmF0aW9uRnJvbU1vbWVudCh0aGlzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbWVudC5kdXJhdGlvbihvZmZzZXQgLSBpbnB1dCwgJ20nKSwgMSwgZmFsc2UpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuX2NoYW5nZUluUHJvZ3Jlc3MpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlSW5Qcm9ncmVzcyA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIG1vbWVudC51cGRhdGVPZmZzZXQodGhpcywgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZUluUHJvZ3Jlc3MgPSBudWxsOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9pc1VUQyA/IG9mZnNldCA6IHRoaXMuX2RhdGVUek9mZnNldCgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgIH0sCgogICAgICAgIHpvbmVBYmJyIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5faXNVVEMgPyAnVVRDJyA6ICcnOwogICAgICAgIH0sCgogICAgICAgIHpvbmVOYW1lIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5faXNVVEMgPyAnQ29vcmRpbmF0ZWQgVW5pdmVyc2FsIFRpbWUnIDogJyc7CiAgICAgICAgfSwKCiAgICAgICAgcGFyc2Vab25lIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICBpZiAodGhpcy5fdHptKSB7CiAgICAgICAgICAgICAgICB0aGlzLnpvbmUodGhpcy5fdHptKTsKICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdGhpcy5faSA9PT0gJ3N0cmluZycpIHsKICAgICAgICAgICAgICAgIHRoaXMuem9uZSh0aGlzLl9pKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICB9LAoKICAgICAgICBoYXNBbGlnbmVkSG91ck9mZnNldCA6IGZ1bmN0aW9uIChpbnB1dCkgewogICAgICAgICAgICBpZiAoIWlucHV0KSB7CiAgICAgICAgICAgICAgICBpbnB1dCA9IDA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBpbnB1dCA9IG1vbWVudChpbnB1dCkuem9uZSgpOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gKHRoaXMuem9uZSgpIC0gaW5wdXQpICUgNjAgPT09IDA7CiAgICAgICAgfSwKCiAgICAgICAgZGF5c0luTW9udGggOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJldHVybiBkYXlzSW5Nb250aCh0aGlzLnllYXIoKSwgdGhpcy5tb250aCgpKTsKICAgICAgICB9LAoKICAgICAgICBkYXlPZlllYXIgOiBmdW5jdGlvbiAoaW5wdXQpIHsKICAgICAgICAgICAgdmFyIGRheU9mWWVhciA9IHJvdW5kKChtb21lbnQodGhpcykuc3RhcnRPZignZGF5JykgLSBtb21lbnQodGhpcykuc3RhcnRPZigneWVhcicpKSAvIDg2NGU1KSArIDE7CiAgICAgICAgICAgIHJldHVybiBpbnB1dCA9PSBudWxsID8gZGF5T2ZZZWFyIDogdGhpcy5hZGQoKGlucHV0IC0gZGF5T2ZZZWFyKSwgJ2QnKTsKICAgICAgICB9LAoKICAgICAgICBxdWFydGVyIDogZnVuY3Rpb24gKGlucHV0KSB7CiAgICAgICAgICAgIHJldHVybiBpbnB1dCA9PSBudWxsID8gTWF0aC5jZWlsKCh0aGlzLm1vbnRoKCkgKyAxKSAvIDMpIDogdGhpcy5tb250aCgoaW5wdXQgLSAxKSAqIDMgKyB0aGlzLm1vbnRoKCkgJSAzKTsKICAgICAgICB9LAoKICAgICAgICB3ZWVrWWVhciA6IGZ1bmN0aW9uIChpbnB1dCkgewogICAgICAgICAgICB2YXIgeWVhciA9IHdlZWtPZlllYXIodGhpcywgdGhpcy5sb2NhbGVEYXRhKCkuX3dlZWsuZG93LCB0aGlzLmxvY2FsZURhdGEoKS5fd2Vlay5kb3kpLnllYXI7CiAgICAgICAgICAgIHJldHVybiBpbnB1dCA9PSBudWxsID8geWVhciA6IHRoaXMuYWRkKChpbnB1dCAtIHllYXIpLCAneScpOwogICAgICAgIH0sCgogICAgICAgIGlzb1dlZWtZZWFyIDogZnVuY3Rpb24gKGlucHV0KSB7CiAgICAgICAgICAgIHZhciB5ZWFyID0gd2Vla09mWWVhcih0aGlzLCAxLCA0KS55ZWFyOwogICAgICAgICAgICByZXR1cm4gaW5wdXQgPT0gbnVsbCA/IHllYXIgOiB0aGlzLmFkZCgoaW5wdXQgLSB5ZWFyKSwgJ3knKTsKICAgICAgICB9LAoKICAgICAgICB3ZWVrIDogZnVuY3Rpb24gKGlucHV0KSB7CiAgICAgICAgICAgIHZhciB3ZWVrID0gdGhpcy5sb2NhbGVEYXRhKCkud2Vlayh0aGlzKTsKICAgICAgICAgICAgcmV0dXJuIGlucHV0ID09IG51bGwgPyB3ZWVrIDogdGhpcy5hZGQoKGlucHV0IC0gd2VlaykgKiA3LCAnZCcpOwogICAgICAgIH0sCgogICAgICAgIGlzb1dlZWsgOiBmdW5jdGlvbiAoaW5wdXQpIHsKICAgICAgICAgICAgdmFyIHdlZWsgPSB3ZWVrT2ZZZWFyKHRoaXMsIDEsIDQpLndlZWs7CiAgICAgICAgICAgIHJldHVybiBpbnB1dCA9PSBudWxsID8gd2VlayA6IHRoaXMuYWRkKChpbnB1dCAtIHdlZWspICogNywgJ2QnKTsKICAgICAgICB9LAoKICAgICAgICB3ZWVrZGF5IDogZnVuY3Rpb24gKGlucHV0KSB7CiAgICAgICAgICAgIHZhciB3ZWVrZGF5ID0gKHRoaXMuZGF5KCkgKyA3IC0gdGhpcy5sb2NhbGVEYXRhKCkuX3dlZWsuZG93KSAlIDc7CiAgICAgICAgICAgIHJldHVybiBpbnB1dCA9PSBudWxsID8gd2Vla2RheSA6IHRoaXMuYWRkKGlucHV0IC0gd2Vla2RheSwgJ2QnKTsKICAgICAgICB9LAoKICAgICAgICBpc29XZWVrZGF5IDogZnVuY3Rpb24gKGlucHV0KSB7CiAgICAgICAgICAgIC8vIGJlaGF2ZXMgdGhlIHNhbWUgYXMgbW9tZW50I2RheSBleGNlcHQKICAgICAgICAgICAgLy8gYXMgYSBnZXR0ZXIsIHJldHVybnMgNyBpbnN0ZWFkIG9mIDAgKDEtNyByYW5nZSBpbnN0ZWFkIG9mIDAtNikKICAgICAgICAgICAgLy8gYXMgYSBzZXR0ZXIsIHN1bmRheSBzaG91bGQgYmVsb25nIHRvIHRoZSBwcmV2aW91cyB3ZWVrLgogICAgICAgICAgICByZXR1cm4gaW5wdXQgPT0gbnVsbCA/IHRoaXMuZGF5KCkgfHwgNyA6IHRoaXMuZGF5KHRoaXMuZGF5KCkgJSA3ID8gaW5wdXQgOiBpbnB1dCAtIDcpOwogICAgICAgIH0sCgogICAgICAgIGlzb1dlZWtzSW5ZZWFyIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gd2Vla3NJblllYXIodGhpcy55ZWFyKCksIDEsIDQpOwogICAgICAgIH0sCgogICAgICAgIHdlZWtzSW5ZZWFyIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICB2YXIgd2Vla0luZm8gPSB0aGlzLmxvY2FsZURhdGEoKS5fd2VlazsKICAgICAgICAgICAgcmV0dXJuIHdlZWtzSW5ZZWFyKHRoaXMueWVhcigpLCB3ZWVrSW5mby5kb3csIHdlZWtJbmZvLmRveSk7CiAgICAgICAgfSwKCiAgICAgICAgZ2V0IDogZnVuY3Rpb24gKHVuaXRzKSB7CiAgICAgICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpOwogICAgICAgICAgICByZXR1cm4gdGhpc1t1bml0c10oKTsKICAgICAgICB9LAoKICAgICAgICBzZXQgOiBmdW5jdGlvbiAodW5pdHMsIHZhbHVlKSB7CiAgICAgICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpOwogICAgICAgICAgICBpZiAodHlwZW9mIHRoaXNbdW5pdHNdID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgICAgICAgICB0aGlzW3VuaXRzXSh2YWx1ZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgICAgfSwKCiAgICAgICAgLy8gSWYgcGFzc2VkIGEgbG9jYWxlIGtleSwgaXQgd2lsbCBzZXQgdGhlIGxvY2FsZSBmb3IgdGhpcwogICAgICAgIC8vIGluc3RhbmNlLiAgT3RoZXJ3aXNlLCBpdCB3aWxsIHJldHVybiB0aGUgbG9jYWxlIGNvbmZpZ3VyYXRpb24KICAgICAgICAvLyB2YXJpYWJsZXMgZm9yIHRoaXMgaW5zdGFuY2UuCiAgICAgICAgbG9jYWxlIDogZnVuY3Rpb24gKGtleSkgewogICAgICAgICAgICB2YXIgbmV3TG9jYWxlRGF0YTsKCiAgICAgICAgICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZS5fYWJicjsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIG5ld0xvY2FsZURhdGEgPSBtb21lbnQubG9jYWxlRGF0YShrZXkpOwogICAgICAgICAgICAgICAgaWYgKG5ld0xvY2FsZURhdGEgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgIHRoaXMuX2xvY2FsZSA9IG5ld0xvY2FsZURhdGE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIGxhbmcgOiBkZXByZWNhdGUoCiAgICAgICAgICAgICdtb21lbnQoKS5sYW5nKCkgaXMgZGVwcmVjYXRlZC4gSW5zdGVhZCwgdXNlIG1vbWVudCgpLmxvY2FsZURhdGEoKSB0byBnZXQgdGhlIGxhbmd1YWdlIGNvbmZpZ3VyYXRpb24uIFVzZSBtb21lbnQoKS5sb2NhbGUoKSB0byBjaGFuZ2UgbGFuZ3VhZ2VzLicsCiAgICAgICAgICAgIGZ1bmN0aW9uIChrZXkpIHsKICAgICAgICAgICAgICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlKGtleSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICApLAoKICAgICAgICBsb2NhbGVEYXRhIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlOwogICAgICAgIH0sCgogICAgICAgIF9kYXRlVHpPZmZzZXQgOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIC8vIE9uIEZpcmVmb3guMjQgRGF0ZSNnZXRUaW1lem9uZU9mZnNldCByZXR1cm5zIGEgZmxvYXRpbmcgcG9pbnQuCiAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tb21lbnQvbW9tZW50L3B1bGwvMTg3MQogICAgICAgICAgICByZXR1cm4gTWF0aC5yb3VuZCh0aGlzLl9kLmdldFRpbWV6b25lT2Zmc2V0KCkgLyAxNSkgKiAxNTsKICAgICAgICB9CiAgICB9KTsKCiAgICBmdW5jdGlvbiByYXdNb250aFNldHRlcihtb20sIHZhbHVlKSB7CiAgICAgICAgdmFyIGRheU9mTW9udGg7CgogICAgICAgIC8vIFRPRE86IE1vdmUgdGhpcyBvdXQgb2YgaGVyZSEKICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykgewogICAgICAgICAgICB2YWx1ZSA9IG1vbS5sb2NhbGVEYXRhKCkubW9udGhzUGFyc2UodmFsdWUpOwogICAgICAgICAgICAvLyBUT0RPOiBBbm90aGVyIHNpbGVudCBmYWlsdXJlPwogICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnbnVtYmVyJykgewogICAgICAgICAgICAgICAgcmV0dXJuIG1vbTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgZGF5T2ZNb250aCA9IE1hdGgubWluKG1vbS5kYXRlKCksCiAgICAgICAgICAgICAgICBkYXlzSW5Nb250aChtb20ueWVhcigpLCB2YWx1ZSkpOwogICAgICAgIG1vbS5fZFsnc2V0JyArIChtb20uX2lzVVRDID8gJ1VUQycgOiAnJykgKyAnTW9udGgnXSh2YWx1ZSwgZGF5T2ZNb250aCk7CiAgICAgICAgcmV0dXJuIG1vbTsKICAgIH0KCiAgICBmdW5jdGlvbiByYXdHZXR0ZXIobW9tLCB1bml0KSB7CiAgICAgICAgcmV0dXJuIG1vbS5fZFsnZ2V0JyArIChtb20uX2lzVVRDID8gJ1VUQycgOiAnJykgKyB1bml0XSgpOwogICAgfQoKICAgIGZ1bmN0aW9uIHJhd1NldHRlcihtb20sIHVuaXQsIHZhbHVlKSB7CiAgICAgICAgaWYgKHVuaXQgPT09ICdNb250aCcpIHsKICAgICAgICAgICAgcmV0dXJuIHJhd01vbnRoU2V0dGVyKG1vbSwgdmFsdWUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiBtb20uX2RbJ3NldCcgKyAobW9tLl9pc1VUQyA/ICdVVEMnIDogJycpICsgdW5pdF0odmFsdWUpOwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBtYWtlQWNjZXNzb3IodW5pdCwga2VlcFRpbWUpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHZhbHVlKSB7CiAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICByYXdTZXR0ZXIodGhpcywgdW5pdCwgdmFsdWUpOwogICAgICAgICAgICAgICAgbW9tZW50LnVwZGF0ZU9mZnNldCh0aGlzLCBrZWVwVGltZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHJldHVybiByYXdHZXR0ZXIodGhpcywgdW5pdCk7CiAgICAgICAgICAgIH0KICAgICAgICB9OwogICAgfQoKICAgIG1vbWVudC5mbi5taWxsaXNlY29uZCA9IG1vbWVudC5mbi5taWxsaXNlY29uZHMgPSBtYWtlQWNjZXNzb3IoJ01pbGxpc2Vjb25kcycsIGZhbHNlKTsKICAgIG1vbWVudC5mbi5zZWNvbmQgPSBtb21lbnQuZm4uc2Vjb25kcyA9IG1ha2VBY2Nlc3NvcignU2Vjb25kcycsIGZhbHNlKTsKICAgIG1vbWVudC5mbi5taW51dGUgPSBtb21lbnQuZm4ubWludXRlcyA9IG1ha2VBY2Nlc3NvcignTWludXRlcycsIGZhbHNlKTsKICAgIC8vIFNldHRpbmcgdGhlIGhvdXIgc2hvdWxkIGtlZXAgdGhlIHRpbWUsIGJlY2F1c2UgdGhlIHVzZXIgZXhwbGljaXRseQogICAgLy8gc3BlY2lmaWVkIHdoaWNoIGhvdXIgaGUgd2FudHMuIFNvIHRyeWluZyB0byBtYWludGFpbiB0aGUgc2FtZSBob3VyIChpbgogICAgLy8gYSBuZXcgdGltZXpvbmUpIG1ha2VzIHNlbnNlLiBBZGRpbmcvc3VidHJhY3RpbmcgaG91cnMgZG9lcyBub3QgZm9sbG93CiAgICAvLyB0aGlzIHJ1bGUuCiAgICBtb21lbnQuZm4uaG91ciA9IG1vbWVudC5mbi5ob3VycyA9IG1ha2VBY2Nlc3NvcignSG91cnMnLCB0cnVlKTsKICAgIC8vIG1vbWVudC5mbi5tb250aCBpcyBkZWZpbmVkIHNlcGFyYXRlbHkKICAgIG1vbWVudC5mbi5kYXRlID0gbWFrZUFjY2Vzc29yKCdEYXRlJywgdHJ1ZSk7CiAgICBtb21lbnQuZm4uZGF0ZXMgPSBkZXByZWNhdGUoJ2RhdGVzIGFjY2Vzc29yIGlzIGRlcHJlY2F0ZWQuIFVzZSBkYXRlIGluc3RlYWQuJywgbWFrZUFjY2Vzc29yKCdEYXRlJywgdHJ1ZSkpOwogICAgbW9tZW50LmZuLnllYXIgPSBtYWtlQWNjZXNzb3IoJ0Z1bGxZZWFyJywgdHJ1ZSk7CiAgICBtb21lbnQuZm4ueWVhcnMgPSBkZXByZWNhdGUoJ3llYXJzIGFjY2Vzc29yIGlzIGRlcHJlY2F0ZWQuIFVzZSB5ZWFyIGluc3RlYWQuJywgbWFrZUFjY2Vzc29yKCdGdWxsWWVhcicsIHRydWUpKTsKCiAgICAvLyBhZGQgcGx1cmFsIG1ldGhvZHMKICAgIG1vbWVudC5mbi5kYXlzID0gbW9tZW50LmZuLmRheTsKICAgIG1vbWVudC5mbi5tb250aHMgPSBtb21lbnQuZm4ubW9udGg7CiAgICBtb21lbnQuZm4ud2Vla3MgPSBtb21lbnQuZm4ud2VlazsKICAgIG1vbWVudC5mbi5pc29XZWVrcyA9IG1vbWVudC5mbi5pc29XZWVrOwogICAgbW9tZW50LmZuLnF1YXJ0ZXJzID0gbW9tZW50LmZuLnF1YXJ0ZXI7CgogICAgLy8gYWRkIGFsaWFzZWQgZm9ybWF0IG1ldGhvZHMKICAgIG1vbWVudC5mbi50b0pTT04gPSBtb21lbnQuZm4udG9JU09TdHJpbmc7CgogICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgICAgIER1cmF0aW9uIFByb3RvdHlwZQogICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKCiAgICBmdW5jdGlvbiBkYXlzVG9ZZWFycyAoZGF5cykgewogICAgICAgIC8vIDQwMCB5ZWFycyBoYXZlIDE0NjA5NyBkYXlzICh0YWtpbmcgaW50byBhY2NvdW50IGxlYXAgeWVhciBydWxlcykKICAgICAgICByZXR1cm4gZGF5cyAqIDQwMCAvIDE0NjA5NzsKICAgIH0KCiAgICBmdW5jdGlvbiB5ZWFyc1RvRGF5cyAoeWVhcnMpIHsKICAgICAgICAvLyB5ZWFycyAqIDM2NSArIGFic1JvdW5kKHllYXJzIC8gNCkgLQogICAgICAgIC8vICAgICBhYnNSb3VuZCh5ZWFycyAvIDEwMCkgKyBhYnNSb3VuZCh5ZWFycyAvIDQwMCk7CiAgICAgICAgcmV0dXJuIHllYXJzICogMTQ2MDk3IC8gNDAwOwogICAgfQoKICAgIGV4dGVuZChtb21lbnQuZHVyYXRpb24uZm4gPSBEdXJhdGlvbi5wcm90b3R5cGUsIHsKCiAgICAgICAgX2J1YmJsZSA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIG1pbGxpc2Vjb25kcyA9IHRoaXMuX21pbGxpc2Vjb25kcywKICAgICAgICAgICAgICAgIGRheXMgPSB0aGlzLl9kYXlzLAogICAgICAgICAgICAgICAgbW9udGhzID0gdGhpcy5fbW9udGhzLAogICAgICAgICAgICAgICAgZGF0YSA9IHRoaXMuX2RhdGEsCiAgICAgICAgICAgICAgICBzZWNvbmRzLCBtaW51dGVzLCBob3VycywgeWVhcnMgPSAwOwoKICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIGJ1YmJsZXMgdXAgdmFsdWVzLCBzZWUgdGhlIHRlc3RzIGZvcgogICAgICAgICAgICAvLyBleGFtcGxlcyBvZiB3aGF0IHRoYXQgbWVhbnMuCiAgICAgICAgICAgIGRhdGEubWlsbGlzZWNvbmRzID0gbWlsbGlzZWNvbmRzICUgMTAwMDsKCiAgICAgICAgICAgIHNlY29uZHMgPSBhYnNSb3VuZChtaWxsaXNlY29uZHMgLyAxMDAwKTsKICAgICAgICAgICAgZGF0YS5zZWNvbmRzID0gc2Vjb25kcyAlIDYwOwoKICAgICAgICAgICAgbWludXRlcyA9IGFic1JvdW5kKHNlY29uZHMgLyA2MCk7CiAgICAgICAgICAgIGRhdGEubWludXRlcyA9IG1pbnV0ZXMgJSA2MDsKCiAgICAgICAgICAgIGhvdXJzID0gYWJzUm91bmQobWludXRlcyAvIDYwKTsKICAgICAgICAgICAgZGF0YS5ob3VycyA9IGhvdXJzICUgMjQ7CgogICAgICAgICAgICBkYXlzICs9IGFic1JvdW5kKGhvdXJzIC8gMjQpOwoKICAgICAgICAgICAgLy8gQWNjdXJhdGVseSBjb252ZXJ0IGRheXMgdG8geWVhcnMsIGFzc3VtZSBzdGFydCBmcm9tIHllYXIgMC4KICAgICAgICAgICAgeWVhcnMgPSBhYnNSb3VuZChkYXlzVG9ZZWFycyhkYXlzKSk7CiAgICAgICAgICAgIGRheXMgLT0gYWJzUm91bmQoeWVhcnNUb0RheXMoeWVhcnMpKTsKCiAgICAgICAgICAgIC8vIDMwIGRheXMgdG8gYSBtb250aAogICAgICAgICAgICAvLyBUT0RPIChpc2tyZW4pOiBVc2UgYW5jaG9yIGRhdGUgKGxpa2UgMXN0IEphbikgdG8gY29tcHV0ZSB0aGlzLgogICAgICAgICAgICBtb250aHMgKz0gYWJzUm91bmQoZGF5cyAvIDMwKTsKICAgICAgICAgICAgZGF5cyAlPSAzMDsKCiAgICAgICAgICAgIC8vIDEyIG1vbnRocyAtPiAxIHllYXIKICAgICAgICAgICAgeWVhcnMgKz0gYWJzUm91bmQobW9udGhzIC8gMTIpOwogICAgICAgICAgICBtb250aHMgJT0gMTI7CgogICAgICAgICAgICBkYXRhLmRheXMgPSBkYXlzOwogICAgICAgICAgICBkYXRhLm1vbnRocyA9IG1vbnRoczsKICAgICAgICAgICAgZGF0YS55ZWFycyA9IHllYXJzOwogICAgICAgIH0sCgogICAgICAgIGFicyA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdGhpcy5fbWlsbGlzZWNvbmRzID0gTWF0aC5hYnModGhpcy5fbWlsbGlzZWNvbmRzKTsKICAgICAgICAgICAgdGhpcy5fZGF5cyA9IE1hdGguYWJzKHRoaXMuX2RheXMpOwogICAgICAgICAgICB0aGlzLl9tb250aHMgPSBNYXRoLmFicyh0aGlzLl9tb250aHMpOwoKICAgICAgICAgICAgdGhpcy5fZGF0YS5taWxsaXNlY29uZHMgPSBNYXRoLmFicyh0aGlzLl9kYXRhLm1pbGxpc2Vjb25kcyk7CiAgICAgICAgICAgIHRoaXMuX2RhdGEuc2Vjb25kcyA9IE1hdGguYWJzKHRoaXMuX2RhdGEuc2Vjb25kcyk7CiAgICAgICAgICAgIHRoaXMuX2RhdGEubWludXRlcyA9IE1hdGguYWJzKHRoaXMuX2RhdGEubWludXRlcyk7CiAgICAgICAgICAgIHRoaXMuX2RhdGEuaG91cnMgPSBNYXRoLmFicyh0aGlzLl9kYXRhLmhvdXJzKTsKICAgICAgICAgICAgdGhpcy5fZGF0YS5tb250aHMgPSBNYXRoLmFicyh0aGlzLl9kYXRhLm1vbnRocyk7CiAgICAgICAgICAgIHRoaXMuX2RhdGEueWVhcnMgPSBNYXRoLmFicyh0aGlzLl9kYXRhLnllYXJzKTsKCiAgICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgIH0sCgogICAgICAgIHdlZWtzIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gYWJzUm91bmQodGhpcy5kYXlzKCkgLyA3KTsKICAgICAgICB9LAoKICAgICAgICB2YWx1ZU9mIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5fbWlsbGlzZWNvbmRzICsKICAgICAgICAgICAgICB0aGlzLl9kYXlzICogODY0ZTUgKwogICAgICAgICAgICAgICh0aGlzLl9tb250aHMgJSAxMikgKiAyNTkyZTYgKwogICAgICAgICAgICAgIHRvSW50KHRoaXMuX21vbnRocyAvIDEyKSAqIDMxNTM2ZTY7CiAgICAgICAgfSwKCiAgICAgICAgaHVtYW5pemUgOiBmdW5jdGlvbiAod2l0aFN1ZmZpeCkgewogICAgICAgICAgICB2YXIgb3V0cHV0ID0gcmVsYXRpdmVUaW1lKHRoaXMsICF3aXRoU3VmZml4LCB0aGlzLmxvY2FsZURhdGEoKSk7CgogICAgICAgICAgICBpZiAod2l0aFN1ZmZpeCkgewogICAgICAgICAgICAgICAgb3V0cHV0ID0gdGhpcy5sb2NhbGVEYXRhKCkucGFzdEZ1dHVyZSgrdGhpcywgb3V0cHV0KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLnBvc3Rmb3JtYXQob3V0cHV0KTsKICAgICAgICB9LAoKICAgICAgICBhZGQgOiBmdW5jdGlvbiAoaW5wdXQsIHZhbCkgewogICAgICAgICAgICAvLyBzdXBwb3J0cyBvbmx5IDIuMC1zdHlsZSBhZGQoMSwgJ3MnKSBvciBhZGQobW9tZW50KQogICAgICAgICAgICB2YXIgZHVyID0gbW9tZW50LmR1cmF0aW9uKGlucHV0LCB2YWwpOwoKICAgICAgICAgICAgdGhpcy5fbWlsbGlzZWNvbmRzICs9IGR1ci5fbWlsbGlzZWNvbmRzOwogICAgICAgICAgICB0aGlzLl9kYXlzICs9IGR1ci5fZGF5czsKICAgICAgICAgICAgdGhpcy5fbW9udGhzICs9IGR1ci5fbW9udGhzOwoKICAgICAgICAgICAgdGhpcy5fYnViYmxlKCk7CgogICAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICB9LAoKICAgICAgICBzdWJ0cmFjdCA6IGZ1bmN0aW9uIChpbnB1dCwgdmFsKSB7CiAgICAgICAgICAgIHZhciBkdXIgPSBtb21lbnQuZHVyYXRpb24oaW5wdXQsIHZhbCk7CgogICAgICAgICAgICB0aGlzLl9taWxsaXNlY29uZHMgLT0gZHVyLl9taWxsaXNlY29uZHM7CiAgICAgICAgICAgIHRoaXMuX2RheXMgLT0gZHVyLl9kYXlzOwogICAgICAgICAgICB0aGlzLl9tb250aHMgLT0gZHVyLl9tb250aHM7CgogICAgICAgICAgICB0aGlzLl9idWJibGUoKTsKCiAgICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgIH0sCgogICAgICAgIGdldCA6IGZ1bmN0aW9uICh1bml0cykgewogICAgICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKTsKICAgICAgICAgICAgcmV0dXJuIHRoaXNbdW5pdHMudG9Mb3dlckNhc2UoKSArICdzJ10oKTsKICAgICAgICB9LAoKICAgICAgICBhcyA6IGZ1bmN0aW9uICh1bml0cykgewogICAgICAgICAgICB2YXIgZGF5cywgbW9udGhzOwogICAgICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKTsKCiAgICAgICAgICAgIGlmICh1bml0cyA9PT0gJ21vbnRoJyB8fCB1bml0cyA9PT0gJ3llYXInKSB7CiAgICAgICAgICAgICAgICBkYXlzID0gdGhpcy5fZGF5cyArIHRoaXMuX21pbGxpc2Vjb25kcyAvIDg2NGU1OwogICAgICAgICAgICAgICAgbW9udGhzID0gdGhpcy5fbW9udGhzICsgZGF5c1RvWWVhcnMoZGF5cykgKiAxMjsKICAgICAgICAgICAgICAgIHJldHVybiB1bml0cyA9PT0gJ21vbnRoJyA/IG1vbnRocyA6IG1vbnRocyAvIDEyOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgLy8gaGFuZGxlIG1pbGxpc2Vjb25kcyBzZXBhcmF0ZWx5IGJlY2F1c2Ugb2YgZmxvYXRpbmcgcG9pbnQgbWF0aCBlcnJvcnMgKGlzc3VlICMxODY3KQogICAgICAgICAgICAgICAgZGF5cyA9IHRoaXMuX2RheXMgKyBNYXRoLnJvdW5kKHllYXJzVG9EYXlzKHRoaXMuX21vbnRocyAvIDEyKSk7CiAgICAgICAgICAgICAgICBzd2l0Y2ggKHVuaXRzKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnd2Vlayc6IHJldHVybiBkYXlzIC8gNyArIHRoaXMuX21pbGxpc2Vjb25kcyAvIDYwNDhlNTsKICAgICAgICAgICAgICAgICAgICBjYXNlICdkYXknOiByZXR1cm4gZGF5cyArIHRoaXMuX21pbGxpc2Vjb25kcyAvIDg2NGU1OwogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2hvdXInOiByZXR1cm4gZGF5cyAqIDI0ICsgdGhpcy5fbWlsbGlzZWNvbmRzIC8gMzZlNTsKICAgICAgICAgICAgICAgICAgICBjYXNlICdtaW51dGUnOiByZXR1cm4gZGF5cyAqIDI0ICogNjAgKyB0aGlzLl9taWxsaXNlY29uZHMgLyA2ZTQ7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnc2Vjb25kJzogcmV0dXJuIGRheXMgKiAyNCAqIDYwICogNjAgKyB0aGlzLl9taWxsaXNlY29uZHMgLyAxMDAwOwogICAgICAgICAgICAgICAgICAgIC8vIE1hdGguZmxvb3IgcHJldmVudHMgZmxvYXRpbmcgcG9pbnQgbWF0aCBlcnJvcnMgaGVyZQogICAgICAgICAgICAgICAgICAgIGNhc2UgJ21pbGxpc2Vjb25kJzogcmV0dXJuIE1hdGguZmxvb3IoZGF5cyAqIDI0ICogNjAgKiA2MCAqIDEwMDApICsgdGhpcy5fbWlsbGlzZWNvbmRzOwogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvcignVW5rbm93biB1bml0ICcgKyB1bml0cyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBsYW5nIDogbW9tZW50LmZuLmxhbmcsCiAgICAgICAgbG9jYWxlIDogbW9tZW50LmZuLmxvY2FsZSwKCiAgICAgICAgdG9Jc29TdHJpbmcgOiBkZXByZWNhdGUoCiAgICAgICAgICAgICd0b0lzb1N0cmluZygpIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgdG9JU09TdHJpbmcoKSBpbnN0ZWFkICcgKwogICAgICAgICAgICAnKG5vdGljZSB0aGUgY2FwaXRhbHMpJywKICAgICAgICAgICAgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9JU09TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgICksCgogICAgICAgIHRvSVNPU3RyaW5nIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAvLyBpbnNwaXJlZCBieSBodHRwczovL2dpdGh1Yi5jb20vZG9yZGlsbGUvbW9tZW50LWlzb2R1cmF0aW9uL2Jsb2IvbWFzdGVyL21vbWVudC5pc29kdXJhdGlvbi5qcwogICAgICAgICAgICB2YXIgeWVhcnMgPSBNYXRoLmFicyh0aGlzLnllYXJzKCkpLAogICAgICAgICAgICAgICAgbW9udGhzID0gTWF0aC5hYnModGhpcy5tb250aHMoKSksCiAgICAgICAgICAgICAgICBkYXlzID0gTWF0aC5hYnModGhpcy5kYXlzKCkpLAogICAgICAgICAgICAgICAgaG91cnMgPSBNYXRoLmFicyh0aGlzLmhvdXJzKCkpLAogICAgICAgICAgICAgICAgbWludXRlcyA9IE1hdGguYWJzKHRoaXMubWludXRlcygpKSwKICAgICAgICAgICAgICAgIHNlY29uZHMgPSBNYXRoLmFicyh0aGlzLnNlY29uZHMoKSArIHRoaXMubWlsbGlzZWNvbmRzKCkgLyAxMDAwKTsKCiAgICAgICAgICAgIGlmICghdGhpcy5hc1NlY29uZHMoKSkgewogICAgICAgICAgICAgICAgLy8gdGhpcyBpcyB0aGUgc2FtZSBhcyBDIydzIChOb2RhKSBhbmQgcHl0aG9uIChpc29kYXRlKS4uLgogICAgICAgICAgICAgICAgLy8gYnV0IG5vdCBvdGhlciBKUyAoZ29vZy5kYXRlKQogICAgICAgICAgICAgICAgcmV0dXJuICdQMEQnOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gKHRoaXMuYXNTZWNvbmRzKCkgPCAwID8gJy0nIDogJycpICsKICAgICAgICAgICAgICAgICdQJyArCiAgICAgICAgICAgICAgICAoeWVhcnMgPyB5ZWFycyArICdZJyA6ICcnKSArCiAgICAgICAgICAgICAgICAobW9udGhzID8gbW9udGhzICsgJ00nIDogJycpICsKICAgICAgICAgICAgICAgIChkYXlzID8gZGF5cyArICdEJyA6ICcnKSArCiAgICAgICAgICAgICAgICAoKGhvdXJzIHx8IG1pbnV0ZXMgfHwgc2Vjb25kcykgPyAnVCcgOiAnJykgKwogICAgICAgICAgICAgICAgKGhvdXJzID8gaG91cnMgKyAnSCcgOiAnJykgKwogICAgICAgICAgICAgICAgKG1pbnV0ZXMgPyBtaW51dGVzICsgJ00nIDogJycpICsKICAgICAgICAgICAgICAgIChzZWNvbmRzID8gc2Vjb25kcyArICdTJyA6ICcnKTsKICAgICAgICB9LAoKICAgICAgICBsb2NhbGVEYXRhIDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlOwogICAgICAgIH0KICAgIH0pOwoKICAgIG1vbWVudC5kdXJhdGlvbi5mbi50b1N0cmluZyA9IG1vbWVudC5kdXJhdGlvbi5mbi50b0lTT1N0cmluZzsKCiAgICBmdW5jdGlvbiBtYWtlRHVyYXRpb25HZXR0ZXIobmFtZSkgewogICAgICAgIG1vbWVudC5kdXJhdGlvbi5mbltuYW1lXSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFbbmFtZV07CiAgICAgICAgfTsKICAgIH0KCiAgICBmb3IgKGkgaW4gdW5pdE1pbGxpc2Vjb25kRmFjdG9ycykgewogICAgICAgIGlmIChoYXNPd25Qcm9wKHVuaXRNaWxsaXNlY29uZEZhY3RvcnMsIGkpKSB7CiAgICAgICAgICAgIG1ha2VEdXJhdGlvbkdldHRlcihpLnRvTG93ZXJDYXNlKCkpOwogICAgICAgIH0KICAgIH0KCiAgICBtb21lbnQuZHVyYXRpb24uZm4uYXNNaWxsaXNlY29uZHMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuYXMoJ21zJyk7CiAgICB9OwogICAgbW9tZW50LmR1cmF0aW9uLmZuLmFzU2Vjb25kcyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gdGhpcy5hcygncycpOwogICAgfTsKICAgIG1vbWVudC5kdXJhdGlvbi5mbi5hc01pbnV0ZXMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuYXMoJ20nKTsKICAgIH07CiAgICBtb21lbnQuZHVyYXRpb24uZm4uYXNIb3VycyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gdGhpcy5hcygnaCcpOwogICAgfTsKICAgIG1vbWVudC5kdXJhdGlvbi5mbi5hc0RheXMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuYXMoJ2QnKTsKICAgIH07CiAgICBtb21lbnQuZHVyYXRpb24uZm4uYXNXZWVrcyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gdGhpcy5hcygnd2Vla3MnKTsKICAgIH07CiAgICBtb21lbnQuZHVyYXRpb24uZm4uYXNNb250aHMgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuYXMoJ00nKTsKICAgIH07CiAgICBtb21lbnQuZHVyYXRpb24uZm4uYXNZZWFycyA9IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gdGhpcy5hcygneScpOwogICAgfTsKCiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICAgICAgRGVmYXVsdCBMb2NhbGUKICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCgogICAgLy8gU2V0IGRlZmF1bHQgbG9jYWxlLCBvdGhlciBsb2NhbGUgd2lsbCBpbmhlcml0IGZyb20gRW5nbGlzaC4KICAgIG1vbWVudC5sb2NhbGUoJ2VuJywgewogICAgICAgIG9yZGluYWxQYXJzZTogL1xkezEsMn0odGh8c3R8bmR8cmQpLywKICAgICAgICBvcmRpbmFsIDogZnVuY3Rpb24gKG51bWJlcikgewogICAgICAgICAgICB2YXIgYiA9IG51bWJlciAlIDEwLAogICAgICAgICAgICAgICAgb3V0cHV0ID0gKHRvSW50KG51bWJlciAlIDEwMCAvIDEwKSA9PT0gMSkgPyAndGgnIDoKICAgICAgICAgICAgICAgIChiID09PSAxKSA/ICdzdCcgOgogICAgICAgICAgICAgICAgKGIgPT09IDIpID8gJ25kJyA6CiAgICAgICAgICAgICAgICAoYiA9PT0gMykgPyAncmQnIDogJ3RoJzsKICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDsKICAgICAgICB9CiAgICB9KTsKCiAgICAvKiBFTUJFRF9MT0NBTEVTICovCgogICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgICAgIEV4cG9zaW5nIE1vbWVudAogICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKICAgIGZ1bmN0aW9uIG1ha2VHbG9iYWwoc2hvdWxkRGVwcmVjYXRlKSB7CiAgICAgICAgLypnbG9iYWwgZW5kZXI6ZmFsc2UgKi8KICAgICAgICBpZiAodHlwZW9mIGVuZGVyICE9PSAndW5kZWZpbmVkJykgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIG9sZEdsb2JhbE1vbWVudCA9IGdsb2JhbFNjb3BlLm1vbWVudDsKICAgICAgICBpZiAoc2hvdWxkRGVwcmVjYXRlKSB7CiAgICAgICAgICAgIGdsb2JhbFNjb3BlLm1vbWVudCA9IGRlcHJlY2F0ZSgKICAgICAgICAgICAgICAgICAgICAnQWNjZXNzaW5nIE1vbWVudCB0aHJvdWdoIHRoZSBnbG9iYWwgc2NvcGUgaXMgJyArCiAgICAgICAgICAgICAgICAgICAgJ2RlcHJlY2F0ZWQsIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYW4gdXBjb21pbmcgJyArCiAgICAgICAgICAgICAgICAgICAgJ3JlbGVhc2UuJywKICAgICAgICAgICAgICAgICAgICBtb21lbnQpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGdsb2JhbFNjb3BlLm1vbWVudCA9IG1vbWVudDsKICAgICAgICB9CiAgICB9CgogICAgLy8gQ29tbW9uSlMgbW9kdWxlIGlzIGRlZmluZWQKICAgIGlmIChoYXNNb2R1bGUpIHsKICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IG1vbWVudDsKICAgIH0gZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7CiAgICAgICAgZGVmaW5lKCdtb21lbnQnLCBmdW5jdGlvbiAocmVxdWlyZSwgZXhwb3J0cywgbW9kdWxlKSB7CiAgICAgICAgICAgIGlmIChtb2R1bGUuY29uZmlnICYmIG1vZHVsZS5jb25maWcoKSAmJiBtb2R1bGUuY29uZmlnKCkubm9HbG9iYWwgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgIC8vIHJlbGVhc2UgdGhlIGdsb2JhbCB2YXJpYWJsZQogICAgICAgICAgICAgICAgZ2xvYmFsU2NvcGUubW9tZW50ID0gb2xkR2xvYmFsTW9tZW50OwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gbW9tZW50OwogICAgICAgIH0pOwogICAgICAgIG1ha2VHbG9iYWwodHJ1ZSk7CiAgICB9IGVsc2UgewogICAgICAgIG1ha2VHbG9iYWwoKTsKICAgIH0KfSkuY2FsbCh0aGlzKTsK"></script>
<script src="data:application/x-javascript;base64,Ly8hIG1vbWVudC10aW1lem9uZS5qcwovLyEgdmVyc2lvbiA6IDAuMi41Ci8vISBhdXRob3IgOiBUaW0gV29vZAovLyEgbGljZW5zZSA6IE1JVAovLyEgZ2l0aHViLmNvbS9tb21lbnQvbW9tZW50LXRpbWV6b25lCgooZnVuY3Rpb24gKHJvb3QsIGZhY3RvcnkpIHsKCSJ1c2Ugc3RyaWN0IjsKCgkvKmdsb2JhbCBkZWZpbmUqLwoJaWYgKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkgewoJCWRlZmluZShbJ21vbWVudCddLCBmYWN0b3J5KTsgICAgICAgICAgICAgICAgIC8vIEFNRAoJfSBlbHNlIGlmICh0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpIHsKCQltb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZSgnbW9tZW50JykpOyAvLyBOb2RlCgl9IGVsc2UgewoJCWZhY3Rvcnkocm9vdC5tb21lbnQpOyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJyb3dzZXIKCX0KfSh0aGlzLCBmdW5jdGlvbiAobW9tZW50KSB7CgkidXNlIHN0cmljdCI7CgoJLy8gRG8gbm90IGxvYWQgbW9tZW50LXRpbWV6b25lIGEgc2Vjb25kIHRpbWUuCglpZiAobW9tZW50LnR6ICE9PSB1bmRlZmluZWQpIHsgcmV0dXJuIG1vbWVudDsgfQoKCXZhciBWRVJTSU9OID0gIjAuMi41IiwKCQl6b25lcyA9IHt9LAoJCWxpbmtzID0ge30sCgoJCW1vbWVudFZlcnNpb24gPSBtb21lbnQudmVyc2lvbi5zcGxpdCgnLicpLAoJCW1ham9yID0gK21vbWVudFZlcnNpb25bMF0sCgkJbWlub3IgPSArbW9tZW50VmVyc2lvblsxXTsKCgkvLyBNb21lbnQuanMgdmVyc2lvbiBjaGVjawoJaWYgKG1ham9yIDwgMiB8fCAobWFqb3IgPT09IDIgJiYgbWlub3IgPCA2KSkgewoJCWxvZ0Vycm9yKCdNb21lbnQgVGltZXpvbmUgcmVxdWlyZXMgTW9tZW50LmpzID49IDIuNi4wLiBZb3UgYXJlIHVzaW5nIE1vbWVudC5qcyAnICsgbW9tZW50LnZlcnNpb24gKyAnLiBTZWUgbW9tZW50anMuY29tJyk7Cgl9CgoJLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoJCVVucGFja2luZwoJKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKCWZ1bmN0aW9uIGNoYXJDb2RlVG9JbnQoY2hhckNvZGUpIHsKCQlpZiAoY2hhckNvZGUgPiA5NikgewoJCQlyZXR1cm4gY2hhckNvZGUgLSA4NzsKCQl9IGVsc2UgaWYgKGNoYXJDb2RlID4gNjQpIHsKCQkJcmV0dXJuIGNoYXJDb2RlIC0gMjk7CgkJfQoJCXJldHVybiBjaGFyQ29kZSAtIDQ4OwoJfQoKCWZ1bmN0aW9uIHVucGFja0Jhc2U2MChzdHJpbmcpIHsKCQl2YXIgaSA9IDAsCgkJCXBhcnRzID0gc3RyaW5nLnNwbGl0KCcuJyksCgkJCXdob2xlID0gcGFydHNbMF0sCgkJCWZyYWN0aW9uYWwgPSBwYXJ0c1sxXSB8fCAnJywKCQkJbXVsdGlwbGllciA9IDEsCgkJCW51bSwKCQkJb3V0ID0gMCwKCQkJc2lnbiA9IDE7CgoJCS8vIGhhbmRsZSBuZWdhdGl2ZSBudW1iZXJzCgkJaWYgKHN0cmluZy5jaGFyQ29kZUF0KDApID09PSA0NSkgewoJCQlpID0gMTsKCQkJc2lnbiA9IC0xOwoJCX0KCgkJLy8gaGFuZGxlIGRpZ2l0cyBiZWZvcmUgdGhlIGRlY2ltYWwKCQlmb3IgKGk7IGkgPCB3aG9sZS5sZW5ndGg7IGkrKykgewoJCQludW0gPSBjaGFyQ29kZVRvSW50KHdob2xlLmNoYXJDb2RlQXQoaSkpOwoJCQlvdXQgPSA2MCAqIG91dCArIG51bTsKCQl9CgoJCS8vIGhhbmRsZSBkaWdpdHMgYWZ0ZXIgdGhlIGRlY2ltYWwKCQlmb3IgKGkgPSAwOyBpIDwgZnJhY3Rpb25hbC5sZW5ndGg7IGkrKykgewoJCQltdWx0aXBsaWVyID0gbXVsdGlwbGllciAvIDYwOwoJCQludW0gPSBjaGFyQ29kZVRvSW50KGZyYWN0aW9uYWwuY2hhckNvZGVBdChpKSk7CgkJCW91dCArPSBudW0gKiBtdWx0aXBsaWVyOwoJCX0KCgkJcmV0dXJuIG91dCAqIHNpZ247Cgl9CgoJZnVuY3Rpb24gYXJyYXlUb0ludCAoYXJyYXkpIHsKCQlmb3IgKHZhciBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7CgkJCWFycmF5W2ldID0gdW5wYWNrQmFzZTYwKGFycmF5W2ldKTsKCQl9Cgl9CgoJZnVuY3Rpb24gaW50VG9VbnRpbCAoYXJyYXksIGxlbmd0aCkgewoJCWZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKCQkJYXJyYXlbaV0gPSBNYXRoLnJvdW5kKChhcnJheVtpIC0gMV0gfHwgMCkgKyAoYXJyYXlbaV0gKiA2MDAwMCkpOyAvLyBtaW51dGVzIHRvIG1pbGxpc2Vjb25kcwoJCX0KCgkJYXJyYXlbbGVuZ3RoIC0gMV0gPSBJbmZpbml0eTsKCX0KCglmdW5jdGlvbiBtYXBJbmRpY2VzIChzb3VyY2UsIGluZGljZXMpIHsKCQl2YXIgb3V0ID0gW10sIGk7CgoJCWZvciAoaSA9IDA7IGkgPCBpbmRpY2VzLmxlbmd0aDsgaSsrKSB7CgkJCW91dFtpXSA9IHNvdXJjZVtpbmRpY2VzW2ldXTsKCQl9CgoJCXJldHVybiBvdXQ7Cgl9CgoJZnVuY3Rpb24gdW5wYWNrIChzdHJpbmcpIHsKCQl2YXIgZGF0YSA9IHN0cmluZy5zcGxpdCgnfCcpLAoJCQlvZmZzZXRzID0gZGF0YVsyXS5zcGxpdCgnICcpLAoJCQlpbmRpY2VzID0gZGF0YVszXS5zcGxpdCgnJyksCgkJCXVudGlscyAgPSBkYXRhWzRdLnNwbGl0KCcgJyk7CgoJCWFycmF5VG9JbnQob2Zmc2V0cyk7CgkJYXJyYXlUb0ludChpbmRpY2VzKTsKCQlhcnJheVRvSW50KHVudGlscyk7CgoJCWludFRvVW50aWwodW50aWxzLCBpbmRpY2VzLmxlbmd0aCk7CgoJCXJldHVybiB7CgkJCW5hbWUgICAgOiBkYXRhWzBdLAoJCQlhYmJycyAgIDogbWFwSW5kaWNlcyhkYXRhWzFdLnNwbGl0KCcgJyksIGluZGljZXMpLAoJCQlvZmZzZXRzIDogbWFwSW5kaWNlcyhvZmZzZXRzLCBpbmRpY2VzKSwKCQkJdW50aWxzICA6IHVudGlscwoJCX07Cgl9CgoJLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoJCVpvbmUgb2JqZWN0CgkqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgoJZnVuY3Rpb24gWm9uZSAocGFja2VkU3RyaW5nKSB7CgkJaWYgKHBhY2tlZFN0cmluZykgewoJCQl0aGlzLl9zZXQodW5wYWNrKHBhY2tlZFN0cmluZykpOwoJCX0KCX0KCglab25lLnByb3RvdHlwZSA9IHsKCQlfc2V0IDogZnVuY3Rpb24gKHVucGFja2VkKSB7CgkJCXRoaXMubmFtZSAgICA9IHVucGFja2VkLm5hbWU7CgkJCXRoaXMuYWJicnMgICA9IHVucGFja2VkLmFiYnJzOwoJCQl0aGlzLnVudGlscyAgPSB1bnBhY2tlZC51bnRpbHM7CgkJCXRoaXMub2Zmc2V0cyA9IHVucGFja2VkLm9mZnNldHM7CgkJfSwKCgkJX2luZGV4IDogZnVuY3Rpb24gKHRpbWVzdGFtcCkgewoJCQl2YXIgdGFyZ2V0ID0gK3RpbWVzdGFtcCwKCQkJCXVudGlscyA9IHRoaXMudW50aWxzLAoJCQkJaTsKCgkJCWZvciAoaSA9IDA7IGkgPCB1bnRpbHMubGVuZ3RoOyBpKyspIHsKCQkJCWlmICh0YXJnZXQgPCB1bnRpbHNbaV0pIHsKCQkJCQlyZXR1cm4gaTsKCQkJCX0KCQkJfQoJCX0sCgoJCXBhcnNlIDogZnVuY3Rpb24gKHRpbWVzdGFtcCkgewoJCQl2YXIgdGFyZ2V0ICA9ICt0aW1lc3RhbXAsCgkJCQlvZmZzZXRzID0gdGhpcy5vZmZzZXRzLAoJCQkJdW50aWxzICA9IHRoaXMudW50aWxzLAoJCQkJbWF4ICAgICA9IHVudGlscy5sZW5ndGggLSAxLAoJCQkJb2Zmc2V0LCBvZmZzZXROZXh0LCBvZmZzZXRQcmV2LCBpOwoKCQkJZm9yIChpID0gMDsgaSA8IG1heDsgaSsrKSB7CgkJCQlvZmZzZXQgICAgID0gb2Zmc2V0c1tpXTsKCQkJCW9mZnNldE5leHQgPSBvZmZzZXRzW2kgKyAxXTsKCQkJCW9mZnNldFByZXYgPSBvZmZzZXRzW2kgPyBpIC0gMSA6IGldOwoKCQkJCWlmIChvZmZzZXQgPCBvZmZzZXROZXh0ICYmIHR6Lm1vdmVBbWJpZ3VvdXNGb3J3YXJkKSB7CgkJCQkJb2Zmc2V0ID0gb2Zmc2V0TmV4dDsKCQkJCX0gZWxzZSBpZiAob2Zmc2V0ID4gb2Zmc2V0UHJldiAmJiB0ei5tb3ZlSW52YWxpZEZvcndhcmQpIHsKCQkJCQlvZmZzZXQgPSBvZmZzZXRQcmV2OwoJCQkJfQoKCQkJCWlmICh0YXJnZXQgPCB1bnRpbHNbaV0gLSAob2Zmc2V0ICogNjAwMDApKSB7CgkJCQkJcmV0dXJuIG9mZnNldHNbaV07CgkJCQl9CgkJCX0KCgkJCXJldHVybiBvZmZzZXRzW21heF07CgkJfSwKCgkJYWJiciA6IGZ1bmN0aW9uIChtb20pIHsKCQkJcmV0dXJuIHRoaXMuYWJicnNbdGhpcy5faW5kZXgobW9tKV07CgkJfSwKCgkJb2Zmc2V0IDogZnVuY3Rpb24gKG1vbSkgewoJCQlyZXR1cm4gdGhpcy5vZmZzZXRzW3RoaXMuX2luZGV4KG1vbSldOwoJCX0KCX07CgoJLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoJCUdsb2JhbCBNZXRob2RzCgkqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgoJZnVuY3Rpb24gbm9ybWFsaXplTmFtZSAobmFtZSkgewoJCXJldHVybiAobmFtZSB8fCAnJykudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cLy9nLCAnXycpOwoJfQoKCWZ1bmN0aW9uIGFkZFpvbmUgKHBhY2tlZCkgewoJCXZhciBpLCB6b25lLCB6b25lTmFtZTsKCgkJaWYgKHR5cGVvZiBwYWNrZWQgPT09ICJzdHJpbmciKSB7CgkJCXBhY2tlZCA9IFtwYWNrZWRdOwoJCX0KCgkJZm9yIChpID0gMDsgaSA8IHBhY2tlZC5sZW5ndGg7IGkrKykgewoJCQl6b25lID0gbmV3IFpvbmUocGFja2VkW2ldKTsKCQkJem9uZU5hbWUgPSBub3JtYWxpemVOYW1lKHpvbmUubmFtZSk7CgkJCXpvbmVzW3pvbmVOYW1lXSA9IHpvbmU7CgkJCXVwZ3JhZGVMaW5rc1RvWm9uZXMoem9uZU5hbWUpOwoJCX0KCX0KCglmdW5jdGlvbiBnZXRab25lIChuYW1lKSB7CgkJcmV0dXJuIHpvbmVzW25vcm1hbGl6ZU5hbWUobmFtZSldIHx8IG51bGw7Cgl9CgoJZnVuY3Rpb24gZ2V0TmFtZXMgKCkgewoJCXZhciBpLCBvdXQgPSBbXTsKCgkJZm9yIChpIGluIHpvbmVzKSB7CgkJCWlmICh6b25lcy5oYXNPd25Qcm9wZXJ0eShpKSAmJiB6b25lc1tpXSkgewoJCQkJb3V0LnB1c2goem9uZXNbaV0ubmFtZSk7CgkJCX0KCQl9CgoJCXJldHVybiBvdXQuc29ydCgpOwoJfQoKCWZ1bmN0aW9uIGFkZExpbmsgKGFsaWFzZXMpIHsKCQl2YXIgaSwgYWxpYXM7CgoJCWlmICh0eXBlb2YgYWxpYXNlcyA9PT0gInN0cmluZyIpIHsKCQkJYWxpYXNlcyA9IFthbGlhc2VzXTsKCQl9CgoJCWZvciAoaSA9IDA7IGkgPCBhbGlhc2VzLmxlbmd0aDsgaSsrKSB7CgkJCWFsaWFzID0gYWxpYXNlc1tpXS5zcGxpdCgnfCcpOwoJCQlwdXNoTGluayhhbGlhc1swXSwgYWxpYXNbMV0pOwoJCQlwdXNoTGluayhhbGlhc1sxXSwgYWxpYXNbMF0pOwoJCX0KCX0KCglmdW5jdGlvbiB1cGdyYWRlTGlua3NUb1pvbmVzICh6b25lTmFtZSkgewoJCWlmICghbGlua3Nbem9uZU5hbWVdKSB7CgkJCXJldHVybjsKCQl9CgoJCXZhciBpLAoJCQl6b25lID0gem9uZXNbem9uZU5hbWVdLAoJCQlsaW5rTmFtZXMgPSBsaW5rc1t6b25lTmFtZV07CgoJCWZvciAoaSA9IDA7IGkgPCBsaW5rTmFtZXMubGVuZ3RoOyBpKyspIHsKCQkJY29weVpvbmVXaXRoTmFtZSh6b25lLCBsaW5rTmFtZXNbaV0pOwoJCX0KCgkJbGlua3Nbem9uZU5hbWVdID0gbnVsbDsKCX0KCglmdW5jdGlvbiBjb3B5Wm9uZVdpdGhOYW1lICh6b25lLCBuYW1lKSB7CgkJdmFyIGxpbmtab25lID0gem9uZXNbbm9ybWFsaXplTmFtZShuYW1lKV0gPSBuZXcgWm9uZSgpOwoJCWxpbmtab25lLl9zZXQoem9uZSk7CgkJbGlua1pvbmUubmFtZSA9IG5hbWU7Cgl9CgoJZnVuY3Rpb24gcHVzaExpbmsgKHpvbmVOYW1lLCBsaW5rTmFtZSkgewoJCXpvbmVOYW1lID0gbm9ybWFsaXplTmFtZSh6b25lTmFtZSk7CgoJCWlmICh6b25lc1t6b25lTmFtZV0pIHsKCQkJY29weVpvbmVXaXRoTmFtZSh6b25lc1t6b25lTmFtZV0sIGxpbmtOYW1lKTsKCQl9IGVsc2UgewoJCQlsaW5rc1t6b25lTmFtZV0gPSBsaW5rc1t6b25lTmFtZV0gfHwgW107CgkJCWxpbmtzW3pvbmVOYW1lXS5wdXNoKGxpbmtOYW1lKTsKCQl9Cgl9CgoJZnVuY3Rpb24gbG9hZERhdGEgKGRhdGEpIHsKCQlhZGRab25lKGRhdGEuem9uZXMpOwoJCWFkZExpbmsoZGF0YS5saW5rcyk7CgkJdHouZGF0YVZlcnNpb24gPSBkYXRhLnZlcnNpb247Cgl9CgoJZnVuY3Rpb24gem9uZUV4aXN0cyAobmFtZSkgewoJCWlmICghem9uZUV4aXN0cy5kaWRTaG93RXJyb3IpIHsKCQkJem9uZUV4aXN0cy5kaWRTaG93RXJyb3IgPSB0cnVlOwoJCQkJbG9nRXJyb3IoIm1vbWVudC50ei56b25lRXhpc3RzKCciICsgbmFtZSArICInKSBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm9yIG9mICFtb21lbnQudHouem9uZSgnIiArIG5hbWUgKyAiJykiKTsKCQl9CgkJcmV0dXJuICEhZ2V0Wm9uZShuYW1lKTsKCX0KCglmdW5jdGlvbiBuZWVkc09mZnNldCAobSkgewoJCXJldHVybiAhIShtLl9hICYmIChtLl90em0gPT09IHVuZGVmaW5lZCkpOwoJfQoKCWZ1bmN0aW9uIGxvZ0Vycm9yIChtZXNzYWdlKSB7CgkJaWYgKHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgY29uc29sZS5lcnJvciA9PT0gJ2Z1bmN0aW9uJykgewoJCQljb25zb2xlLmVycm9yKG1lc3NhZ2UpOwoJCX0KCX0KCgkvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgkJbW9tZW50LnR6IG5hbWVzcGFjZQoJKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKCWZ1bmN0aW9uIHR6ICgpIHsKCQl2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCwgLTEpLAoJCQluYW1lID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXSwKCQkJem9uZSA9IGdldFpvbmUobmFtZSksCgkJCW91dCAgPSBtb21lbnQudXRjLmFwcGx5KG51bGwsIGFyZ3MpOwoKCQlpZiAoem9uZSAmJiBuZWVkc09mZnNldChvdXQpKSB7CgkJCW91dC5hZGQoem9uZS5wYXJzZShvdXQpLCAnbWludXRlcycpOwoJCX0KCgkJb3V0LnR6KG5hbWUpOwoKCQlyZXR1cm4gb3V0OwoJfQoKCXR6LnZlcnNpb24gICAgICA9IFZFUlNJT047Cgl0ei5kYXRhVmVyc2lvbiAgPSAnJzsKCXR6Ll96b25lcyAgICAgICA9IHpvbmVzOwoJdHouX2xpbmtzICAgICAgID0gbGlua3M7Cgl0ei5hZGQgICAgICAgICAgPSBhZGRab25lOwoJdHoubGluayAgICAgICAgID0gYWRkTGluazsKCXR6LmxvYWQgICAgICAgICA9IGxvYWREYXRhOwoJdHouem9uZSAgICAgICAgID0gZ2V0Wm9uZTsKCXR6LnpvbmVFeGlzdHMgICA9IHpvbmVFeGlzdHM7IC8vIGRlcHJlY2F0ZWQgaW4gMC4xLjAKCXR6Lm5hbWVzICAgICAgICA9IGdldE5hbWVzOwoJdHouWm9uZSAgICAgICAgID0gWm9uZTsKCXR6LnVucGFjayAgICAgICA9IHVucGFjazsKCXR6LnVucGFja0Jhc2U2MCA9IHVucGFja0Jhc2U2MDsKCXR6Lm5lZWRzT2Zmc2V0ICA9IG5lZWRzT2Zmc2V0OwoJdHoubW92ZUludmFsaWRGb3J3YXJkICAgPSB0cnVlOwoJdHoubW92ZUFtYmlndW91c0ZvcndhcmQgPSBmYWxzZTsKCgkvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgkJSW50ZXJmYWNlIHdpdGggTW9tZW50LmpzCgkqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgoJdmFyIGZuID0gbW9tZW50LmZuOwoKCW1vbWVudC50eiA9IHR6OwoKCW1vbWVudC51cGRhdGVPZmZzZXQgPSBmdW5jdGlvbiAobW9tLCBrZWVwVGltZSkgewoJCXZhciBvZmZzZXQ7CgkJaWYgKG1vbS5feikgewoJCQlvZmZzZXQgPSBtb20uX3oub2Zmc2V0KG1vbSk7CgkJCWlmIChNYXRoLmFicyhvZmZzZXQpIDwgMTYpIHsKCQkJCW9mZnNldCA9IG9mZnNldCAvIDYwOwoJCQl9CgkJCW1vbS56b25lKG9mZnNldCwga2VlcFRpbWUpOwoJCX0KCX07CgoJZm4udHogPSBmdW5jdGlvbiAobmFtZSkgewoJCWlmIChuYW1lKSB7CgkJCXRoaXMuX3ogPSBnZXRab25lKG5hbWUpOwoJCQlpZiAodGhpcy5feikgewoJCQkJbW9tZW50LnVwZGF0ZU9mZnNldCh0aGlzKTsKCQkJfSBlbHNlIHsKCQkJCWxvZ0Vycm9yKCJNb21lbnQgVGltZXpvbmUgaGFzIG5vIGRhdGEgZm9yICIgKyBuYW1lICsgIi4gU2VlIGh0dHA6Ly9tb21lbnRqcy5jb20vdGltZXpvbmUvZG9jcy8jL2RhdGEtbG9hZGluZy8uIik7CgkJCX0KCQkJcmV0dXJuIHRoaXM7CgkJfQoJCWlmICh0aGlzLl96KSB7IHJldHVybiB0aGlzLl96Lm5hbWU7IH0KCX07CgoJZnVuY3Rpb24gYWJicldyYXAgKG9sZCkgewoJCXJldHVybiBmdW5jdGlvbiAoKSB7CgkJCWlmICh0aGlzLl96KSB7IHJldHVybiB0aGlzLl96LmFiYnIodGhpcyk7IH0KCQkJcmV0dXJuIG9sZC5jYWxsKHRoaXMpOwoJCX07Cgl9CgoJZnVuY3Rpb24gcmVzZXRab25lV3JhcCAob2xkKSB7CgkJcmV0dXJuIGZ1bmN0aW9uICgpIHsKCQkJdGhpcy5feiA9IG51bGw7CgkJCXJldHVybiBvbGQuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKCQl9OwoJfQoKCWZuLnpvbmVOYW1lID0gYWJicldyYXAoZm4uem9uZU5hbWUpOwoJZm4uem9uZUFiYnIgPSBhYmJyV3JhcChmbi56b25lQWJicik7Cglmbi51dGMgICAgICA9IHJlc2V0Wm9uZVdyYXAoZm4udXRjKTsKCgkvLyBDbG9uaW5nIGEgbW9tZW50IHNob3VsZCBpbmNsdWRlIHRoZSBfeiBwcm9wZXJ0eS4KCXZhciBtb21lbnRQcm9wZXJ0aWVzID0gbW9tZW50Lm1vbWVudFByb3BlcnRpZXM7CglpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG1vbWVudFByb3BlcnRpZXMpID09PSAnW29iamVjdCBBcnJheV0nKSB7CgkJLy8gbW9tZW50IDIuOC4xKwoJCW1vbWVudFByb3BlcnRpZXMucHVzaCgnX3onKTsKCQltb21lbnRQcm9wZXJ0aWVzLnB1c2goJ19hJyk7Cgl9IGVsc2UgaWYgKG1vbWVudFByb3BlcnRpZXMpIHsKCQkvLyBtb21lbnQgMi43LjAKCQltb21lbnRQcm9wZXJ0aWVzLl96ID0gbnVsbDsKCX0KCglsb2FkRGF0YSh7CgkJInZlcnNpb24iOiAiMjAxNGoiLAoJCSJ6b25lcyI6IFsKCQkJIkFmcmljYS9BYmlkamFufExNVCBHTVR8Zy44IDB8MDF8LTJsZFhILlEiLAoJCQkiQWZyaWNhL0FjY3JhfExNVCBHTVQgR0hTVHwuUSAwIC1rfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMjZCYlguOCA2dHpYLjggTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFDMGsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFDMGsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFDMGsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFDMGsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFDMGsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIiwKCQkJIkFmcmljYS9BZGRpc19BYmFiYXxMTVQgRUFUIEJFQVQgQkVBVVR8LTJyLmcgLTMwIC0ydSAtMkp8MDEyMzF8LTFGM0NyLmcgM0R6ci5nIG9rTXUgTUZYSiIsCgkJCSJBZnJpY2EvQWxnaWVyc3xQTVQgV0VUIFdFU1QgQ0VUIENFU1R8LTkubCAwIC0xMCAtMTAgLTIwfDAxMjEyMTIxMjEyMTIxMjEzNDM0MzEzMTIxMjM0MzEyMTN8LTJuY285LmwgY05iOS5sIEhBMCAxOUEwIDFpTTAgMTFjMCAxb28wIFdvMCAxcmMwIFFNMCAxRU0wIFVNMCBEQTAgSW1vMCByZDAgRGUwIDlYejAgMWZiMCAxYXAwIDE2SzAgMnlvMCBtRXAwIGh3TDAganhBMCAxMUEwIGREZDAgMTdiMCAxMUIwIDFjTjAgMkR5MCAxY04wIDFmQjAgMWNMMCIsCgkJCSJBZnJpY2EvQmFuZ3VpfExNVCBXQVR8LWQuQSAtMTB8MDF8LTIyeTBkLkEiLAoJCQkiQWZyaWNhL0Jpc3NhdXxMTVQgV0FUIEdNVHwxMi5rIDEwIDB8MDEyfC0ybGRXVi5FIDJ4b25WLkUiLAoJCQkiQWZyaWNhL0JsYW50eXJlfExNVCBDQVR8LTJhLmsgLTIwfDAxfC0yR0plYS5rIiwKCQkJIkFmcmljYS9DYWlyb3xFRVQgRUVTVHwtMjAgLTMwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMWJJTzAgdmIwIDFpcDAgMTF6MCAxaU4wIDFuejAgMTJwMCAxcHowIDEwTjAgMXB6MCAxNnAwIDFqejAgczNkMCBWejAgMW9OMCAxMWIwIDFvTzAgMTBOMCAxcHowIDEwTjAgMXBiMCAxME4wIDFwYjAgMTBOMCAxcGIwIDEwTjAgMXB6MCAxME4wIDFwYjAgMTBOMCAxcGIwIDExZDAgMW9MMCAxMWQwIDFwYjAgMTFkMCAxb0wwIDExZDAgMW9MMCAxMWQwIDFvTDAgMTFkMCAxcGIwIDExZDAgMW9MMCAxMWQwIDFvTDAgMTFkMCAxb0wwIDExZDAgMXBiMCAxMWQwIDFvTDAgMTFkMCAxb0wwIDExZDAgMW9MMCAxMWQwIDFwYjAgMTFkMCAxb0wwIDExZDAgMVdMMCByZDAgMVJ6MCB3cDAgMXBiMCAxMWQwIDFvTDAgMTFkMCAxb0wwIDExZDAgMW9MMCAxMWQwIDFwYjAgMTFkMCAxcUwwIFhkMCAxb0wwIDExZDAgMW9MMCAxMWQwIDFwYjAgMTFkMCAxb0wwIDExZDAgMW9MMCAxMWQwIDFueTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCBXTDAgMXFOMCBSYjAgMXdwMCBPbjAgMXpkMCBMejAgMUVOMCBGYjAgYzEwIDhuMCA4TmQwIGdMMCBlMTAgbW4wIDFvMTAganowIGdOMCBwYjAgMXFOMCBkWDAgZTEwIHh6MCAxbzEwIGJiMCBlMTAgQW4wIDFvMTAgNXowIGUxMCBGWDAgMW8xMCAyTDAgZTEwIElMMCAxQzEwIEx6MCAxd3AwIFRYMCAxcU4wIFdMMCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCIsCgkJCSJBZnJpY2EvQ2FzYWJsYW5jYXxMTVQgV0VUIFdFU1QgQ0VUfHUuayAwIC0xMCAtMTB8MDEyMTIxMjEyMTIxMjEyMTIxMzEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0yZ01udC5FIDEzMEx0LkUgcmIwIERkMCBkVmIwIGI2cDAgVFgwIEVvQjAgTEwwIGduZDAgcnowIDQzZDAgQUwwIDFOZDAgWFgwIDFDcDAgcHowIGRFcDAgNG1uMCBTeU4wIEFMMCAxTmQwIHduMCAxRkIwIERiMCAxemQwIEx6MCAxTmYwIHdNMCBjbzAgZ28wIDFvMDAgczAwIGRBMCB2YzAgMTFBMCBBMDAgZTAwIHkwMCAxMUEwIHVvMCBlMDAgREEwIDExQTAgckEwIGUwMCBKYzAgV00wIG0wMCBnTTAgTTAwIFdNMCBqYzAgZTAwIFJBMCAxMUEwIGRBMCBlMDAgVW8wIDExQTAgODAwIGdNMCBYYzAgMTFBMCA1YzAgZTAwIDE3QTAgV00wIDJvMCBlMDAgMWFvMCAxOUEwIDFnMDAgMTZNMCAxaU0wIDE0MDAgMWxBMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcW8wIDEyMDAgMWtNMCAxNE0wIDFpMDAiLAoJCQkiQWZyaWNhL0NldXRhfFdFVCBXRVNUIENFVCBDRVNUfDAgLTEwIC0xMCAtMjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyfC0yNUtOMCAxMXowIGRyZDAgMThvMCAzSTAwIDE3YzAgMWZBMCAxYTAwIDFpbzAgMWEwMCAxeTdwMCBMTDAgZ25kMCByejAgNDNkMCBBTDAgMU5kMCBYWDAgMUNwMCBwejAgZEVwMCA0VkIwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJBZnJpY2EvRWxfQWFpdW58TE1UIFdBVCBXRVQgV0VTVHxRLk0gMTAgMCAtMTB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMnwtMXJEejcuYyAxR1ZBNy5jIDZMMCBBTDAgMU5kMCBYWDAgMUNwMCBwejAgMWNCQjAgQUwwIDFOZDAgd24wIDFGQjAgRGIwIDF6ZDAgTHowIDFOZjAgd00wIGNvMCBnbzAgMW8wMCBzMDAgZEEwIHZjMCAxMUEwIEEwMCBlMDAgeTAwIDExQTAgdW8wIGUwMCBEQTAgMTFBMCByQTAgZTAwIEpjMCBXTTAgbTAwIGdNMCBNMDAgV00wIGpjMCBlMDAgUkEwIDExQTAgZEEwIGUwMCBVbzAgMTFBMCA4MDAgZ00wIFhjMCAxMUEwIDVjMCBlMDAgMTdBMCBXTTAgMm8wIGUwMCAxYW8wIDE5QTAgMWcwMCAxNk0wIDFpTTAgMTQwMCAxbEEwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxbzAgMTIwMCAxa00wIDE0TTAgMWkwMCIsCgkJCSJBZnJpY2EvSm9oYW5uZXNidXJnfFNBU1QgU0FTVCBTQVNUfC0xdSAtMjAgLTMwfDAxMjEyMXwtMkdKZHUgMUFqZHUgMWNMMCAxY04wIDFjTDAiLAoJCQkiQWZyaWNhL0p1YmF8TE1UIENBVCBDQVNUIEVBVHwtMmEuOCAtMjAgLTMwIC0zMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxM3wtMXlXMmEuOCAxekswYS44IDE2TDAgMWlOMCAxN2IwIDFqZDAgMTdiMCAxaXAwIDE3ejAgMWkxMCAxN1gwIDFoQjAgMThuMCAxaGQwIDE5YjAgMWdwMCAxOXowIDFpTjAgMTdiMCAxaXAwIDE3ejAgMWkxMCAxOG4wIDFoZDAgMThMMCAxZ04wIDE5YjAgMWdwMCAxOXowIDFpTjAgMTd6MCAxaTEwIDE3WDAgeUdkMCIsCgkJCSJBZnJpY2EvTW9ucm92aWF8TU1UIExSVCBHTVR8SC44IEkudSAwfDAxMnwtMjNMemcuUSAyOXMwMS5tIiwKCQkJIkFmcmljYS9OZGphbWVuYXxMTVQgV0FUIFdBU1R8LTEwLmMgLTEwIC0yMHwwMTIxfC0ybGUxMC5jIDJKM2MwLmMgV24wIiwKCQkJIkFmcmljYS9Ucmlwb2xpfExNVCBDRVQgQ0VTVCBFRVR8LVEuSSAtMTAgLTIwIC0yMHwwMTIxMjEyMTMxMjEyMTIxMjEyMTIxMjEyMTMxMjMxMjN8LTIxSmNRLkkgMWhuQlEuSSB2eDAgNGlQMCB4eDAgNGVOMCBCYjAgN2lwMCBVMG4wIEExMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFkYjAgMWVOMCAxYmIwIDFlMTAgMWNMMCAxYzEwIDFkYjAgMWRkMCAxZGIwIDFjTjAgMWRiMCAxcTEwIGZBbjAgMWVwMCAxZGIwIEFLcTAgVEEwIDFvMDAiLAoJCQkiQWZyaWNhL1R1bmlzfFBNVCBDRVQgQ0VTVHwtOS5sIC0xMCAtMjB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMm5jbzkubCAxOHBhOS5sIDFxTTAgREEwIDNUYzAgMTFCMCAxemUwIFdNMCA3ejAgM2QwIDE0TDAgMWNOMCAxZjkwIDFhcjAgMTZKMCAxZ1hCMCBXTTAgMXJBMCAxMWMwIG53bzAgS28wIDFjTTAgMWNNMCAxckEwIDEwTTAgenVNMCAxME4wIDFhTjAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAiLAoJCQkiQWZyaWNhL1dpbmRob2VrfFNXQVQgU0FTVCBTQVNUIENBVCBXQVQgV0FTVHwtMXUgLTIwIC0zMCAtMjAgLTEwIC0yMHwwMTIxMzQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDV8LTJHSmR1IDFBamR1IDFjTDAgMVNxTDAgOU5BMCAxMUQwIDFuWDAgMTFCMCAxcUwwIFdOMCAxcUwwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFxTDAgV04wIDFxTDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMXFMMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxcUwwIFdOMCAxcUwwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFxTDAgV04wIDFxTDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxcUwwIFdOMCAxcUwwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFxTDAgV04wIDFxTDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMXFMMCAxMUIwIDFuWDAgMTFCMCIsCgkJCSJBbWVyaWNhL0FkYWt8TlNUIE5XVCBOUFQgQlNUIEJEVCBBSFNUIEhBU1QgSEFEVHxiMCBhMCBhMCBiMCBhMCBhMCBhMCA5MHwwMTIwMzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0NTY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzZ8LTE3U1gwIDh3VzAgaUIwIFFsYjAgNTJPMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCBzMTAgMVZ6MCBMQjAgMUJYMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIGNtMCAxMHEwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFtZXJpY2EvQW5jaG9yYWdlfENBVCBDQVdUIENBUFQgQUhTVCBBSERUIFlTVCBBS1NUIEFLRFR8YTAgOTAgOTAgYTAgOTAgOTAgOTAgODB8MDEyMDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDU2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2fC0xN1QwMCA4d1gwIGlBMCBRbGIwIDUyTzAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgczEwIDFWejAgTEIwIDFCWDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCBjbTAgMTBxMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL0FuZ3VpbGxhfExNVCBBU1R8NDYuNCA0MHwwMXwtMmtOdlIuVSIsCgkJCSJBbWVyaWNhL0FudGlndWF8TE1UIEVTVCBBU1R8NDcuYyA1MCA0MHwwMTJ8LTJrTnZRLk0gMXl4QVEuTSIsCgkJCSJBbWVyaWNhL0FyYWd1YWluYXxMTVQgQlJUIEJSU1R8M2MuTSAzMCAyMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0yZ2x3TC5jIEhkS0wuYyAxY2MwIDFlMTAgMWJYMCBFemQwIFNvMCAxdkEwIE1uMCAxQkIwIE1MMCAxQkIwIHpYMCBxZTEwIHhiMCAyZXAwIG56MCAxQzEwIHpYMCAxQzEwIExYMCAxQzEwIE1uMCBIMjEwIFJiMCAxdEIwIElMMCAxRmQwIEZYMCAxRU4wIEZYMCAxSEIwIEx6MCBkTU4wIEx6MCAxemQwIFJiMCAxd04wIFduMCAxdEIwIFJiMCAxdEIwIFdMMCAxdEIwIFJiMCAxemQwIE9uMCAxSEIwIEZYMCBueTEwIEx6MCIsCgkJCSJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXN8Q01UIEFSVCBBUlNUIEFSVCBBUlNUfDRnLk0gNDAgMzAgMzAgMjB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMzQzNDM0MzQzNDM0MzIzNDM0M3wtMjBVSEguYyBwS25ILmMgTW4wIDFpTjAgVGIwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTW4wIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTW4wIE1OMCAyanowIE1OMCA0bFgwIHUxMCA1TGIwIDFwQjAgRm56MCB1MTAgdUwwIDF2ZDAgU0wwIDF2ZDAgU0wwIDF2ZDAgMTd6MCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgYXNuMCBEYjAgenZkMCBCejAgMXRCMCBUWDAgMXdwMCBSYjAgMXdwMCBSYjAgMXdwMCBUWDAgZzBwMCAxME0wIGozYzAgdUwwIDFxTjAgV0wwIiwKCQkJIkFtZXJpY2EvQXJnZW50aW5hL0NhdGFtYXJjYXxDTVQgQVJUIEFSU1QgQVJUIEFSU1QgV0FSVHw0Zy5NIDQwIDMwIDMwIDIwIDQwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTM0MzQzNDM0NTQzNDMyMzUzNDN8LTIwVUhILmMgcEtuSC5jIE1uMCAxaU4wIFRiMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCBNTjAgMmp6MCBNTjAgNGxYMCB1MTAgNUxiMCAxcEIwIEZuejAgdTEwIHVMMCAxdmQwIFNMMCAxdmQwIFNMMCAxdmQwIDE3ejAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIGFzbjAgRGIwIHp2ZDAgQnowIDF0QjAgVFgwIDF3cDAgUmIwIDF3cTAgUmEwIDF3cDAgVFgwIGcwcDAgMTBNMCBha28wIDdCMCA4emIwIHVMMCIsCgkJCSJBbWVyaWNhL0FyZ2VudGluYS9Db3Jkb2JhfENNVCBBUlQgQVJTVCBBUlQgQVJTVCBXQVJUfDRnLk0gNDAgMzAgMzAgMjAgNDB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMzQzNDM0MzQ1NDM0MzIzNDM0M3wtMjBVSEguYyBwS25ILmMgTW4wIDFpTjAgVGIwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTW4wIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTW4wIE1OMCAyanowIE1OMCA0bFgwIHUxMCA1TGIwIDFwQjAgRm56MCB1MTAgdUwwIDF2ZDAgU0wwIDF2ZDAgU0wwIDF2ZDAgMTd6MCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgYXNuMCBEYjAgenZkMCBCejAgMXRCMCBUWDAgMXdwMCBSYjAgMXdxMCBSYTAgMXdwMCBUWDAgZzBwMCAxME0wIGozYzAgdUwwIDFxTjAgV0wwIiwKCQkJIkFtZXJpY2EvQXJnZW50aW5hL0p1anV5fENNVCBBUlQgQVJTVCBBUlQgQVJTVCBXQVJUIFdBUlNUfDRnLk0gNDAgMzAgMzAgMjAgNDAgMzB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMzQzNDM0NTY1NDM0MzIzNDN8LTIwVUhILmMgcEtuSC5jIE1uMCAxaU4wIFRiMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCBNTjAgMmp6MCBNTjAgNGxYMCB1MTAgNUxiMCAxcEIwIEZuejAgdTEwIHVMMCAxdmQwIFNMMCAxdmQwIFNMMCAxdmQwIDE3ejAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIGFzbjAgRGIwIHp2ZDAgQnowIDF0QjAgVFgwIDF6ZTAgVFgwIDFsZDAgV0swIDF3cDAgVFgwIGcwcDAgMTBNMCBqM2MwIHVMMCIsCgkJCSJBbWVyaWNhL0FyZ2VudGluYS9MYV9SaW9qYXxDTVQgQVJUIEFSU1QgQVJUIEFSU1QgV0FSVHw0Zy5NIDQwIDMwIDMwIDIwIDQwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTM0MzQzNDM0NTM0MzQzMjM1MzQzfC0yMFVISC5jIHBLbkguYyBNbjAgMWlOMCBUYjAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBNbjAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBNbjAgTU4wIDJqejAgTU4wIDRsWDAgdTEwIDVMYjAgMXBCMCBGbnowIHUxMCB1TDAgMXZkMCBTTDAgMXZkMCBTTDAgMXZkMCAxN3owIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCBhc24wIERiMCB6dmQwIEJ6MCAxdEIwIFRYMCAxd3AwIFFuMCBxTzAgMTZuMCBSYjAgMXdwMCBUWDAgZzBwMCAxME0wIGFrbzAgN0IwIDh6YjAgdUwwIiwKCQkJIkFtZXJpY2EvQXJnZW50aW5hL01lbmRvemF8Q01UIEFSVCBBUlNUIEFSVCBBUlNUIFdBUlQgV0FSU1R8NGcuTSA0MCAzMCAzMCAyMCA0MCAzMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEzNDM0MzQ1NjU2NTQzMjM1MzQzfC0yMFVISC5jIHBLbkguYyBNbjAgMWlOMCBUYjAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBNbjAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBNbjAgTU4wIDJqejAgTU4wIDRsWDAgdTEwIDVMYjAgMXBCMCBGbnowIHUxMCB1TDAgMXZkMCBTTDAgMXZkMCBTTDAgMXZkMCAxN3owIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCBhc24wIERiMCB6dmQwIEJ6MCAxdEIwIFRYMCAxdTIwIFNMMCAxdmQwIFRiMCAxd3AwIFRXMCBnMHAwIDEwTTAgYWdNMCBPcDAgN1RYMCB1TDAiLAoJCQkiQW1lcmljYS9BcmdlbnRpbmEvUmlvX0dhbGxlZ29zfENNVCBBUlQgQVJTVCBBUlQgQVJTVCBXQVJUfDRnLk0gNDAgMzAgMzAgMjAgNDB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMzQzNDM0MzQzNDM0MzIzNTM0M3wtMjBVSEguYyBwS25ILmMgTW4wIDFpTjAgVGIwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTW4wIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTW4wIE1OMCAyanowIE1OMCA0bFgwIHUxMCA1TGIwIDFwQjAgRm56MCB1MTAgdUwwIDF2ZDAgU0wwIDF2ZDAgU0wwIDF2ZDAgMTd6MCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgYXNuMCBEYjAgenZkMCBCejAgMXRCMCBUWDAgMXdwMCBSYjAgMXdwMCBSYjAgMXdwMCBUWDAgZzBwMCAxME0wIGFrbzAgN0IwIDh6YjAgdUwwIiwKCQkJIkFtZXJpY2EvQXJnZW50aW5hL1NhbHRhfENNVCBBUlQgQVJTVCBBUlQgQVJTVCBXQVJUfDRnLk0gNDAgMzAgMzAgMjAgNDB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMzQzNDM0MzQ1NDM0MzIzNDN8LTIwVUhILmMgcEtuSC5jIE1uMCAxaU4wIFRiMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCBNTjAgMmp6MCBNTjAgNGxYMCB1MTAgNUxiMCAxcEIwIEZuejAgdTEwIHVMMCAxdmQwIFNMMCAxdmQwIFNMMCAxdmQwIDE3ejAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIGFzbjAgRGIwIHp2ZDAgQnowIDF0QjAgVFgwIDF3cDAgUmIwIDF3cTAgUmEwIDF3cDAgVFgwIGcwcDAgMTBNMCBqM2MwIHVMMCIsCgkJCSJBbWVyaWNhL0FyZ2VudGluYS9TYW5fSnVhbnxDTVQgQVJUIEFSU1QgQVJUIEFSU1QgV0FSVHw0Zy5NIDQwIDMwIDMwIDIwIDQwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTM0MzQzNDM0NTM0MzQzMjM1MzQzfC0yMFVISC5jIHBLbkguYyBNbjAgMWlOMCBUYjAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBNbjAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBNbjAgTU4wIDJqejAgTU4wIDRsWDAgdTEwIDVMYjAgMXBCMCBGbnowIHUxMCB1TDAgMXZkMCBTTDAgMXZkMCBTTDAgMXZkMCAxN3owIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCBhc24wIERiMCB6dmQwIEJ6MCAxdEIwIFRYMCAxd3AwIFFuMCBxTzAgMTZuMCBSYjAgMXdwMCBUWDAgZzBwMCAxME0wIGFrMDAgbTEwIDhsYjAgdUwwIiwKCQkJIkFtZXJpY2EvQXJnZW50aW5hL1Nhbl9MdWlzfENNVCBBUlQgQVJTVCBBUlQgQVJTVCBXQVJUIFdBUlNUfDRnLk0gNDAgMzAgMzAgMjAgNDAgMzB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMzQzNDM0NTY1MzYzNTM0NjU2NTN8LTIwVUhILmMgcEtuSC5jIE1uMCAxaU4wIFRiMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCBNTjAgMmp6MCBNTjAgNGxYMCB1MTAgNUxiMCAxcEIwIEZuejAgdTEwIHVMMCAxdmQwIFNMMCAxdmQwIFNMMCAxdmQwIDE3ejAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIGFzbjAgRGIwIHp2ZDAgQnowIDF0QjAgWFgwIDFxMjAgU0wwIEFOMCBraW4wIDEwTTAgYWswMCBtMTAgOGxiMCA4TDAgamQwIDFxTjAgV0wwIDFxTjAiLAoJCQkiQW1lcmljYS9BcmdlbnRpbmEvVHVjdW1hbnxDTVQgQVJUIEFSU1QgQVJUIEFSU1QgV0FSVHw0Zy5NIDQwIDMwIDMwIDIwIDQwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTM0MzQzNDM0NTQzNDMyMzUzNDM0M3wtMjBVSEguYyBwS25ILmMgTW4wIDFpTjAgVGIwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTW4wIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTW4wIE1OMCAyanowIE1OMCA0bFgwIHUxMCA1TGIwIDFwQjAgRm56MCB1MTAgdUwwIDF2ZDAgU0wwIDF2ZDAgU0wwIDF2ZDAgMTd6MCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgYXNuMCBEYjAgenZkMCBCejAgMXRCMCBUWDAgMXdwMCBSYjAgMXdxMCBSYTAgMXdwMCBUWDAgZzBwMCAxME0wIGFrbzAgNE4wIDhCWDAgdUwwIDFxTjAgV0wwIiwKCQkJIkFtZXJpY2EvQXJnZW50aW5hL1VzaHVhaWF8Q01UIEFSVCBBUlNUIEFSVCBBUlNUIFdBUlR8NGcuTSA0MCAzMCAzMCAyMCA0MHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEzNDM0MzQzNDM0MzQzMjM1MzQzfC0yMFVISC5jIHBLbkguYyBNbjAgMWlOMCBUYjAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBNbjAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBNbjAgTU4wIDJqejAgTU4wIDRsWDAgdTEwIDVMYjAgMXBCMCBGbnowIHUxMCB1TDAgMXZkMCBTTDAgMXZkMCBTTDAgMXZkMCAxN3owIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCBhc24wIERiMCB6dmQwIEJ6MCAxdEIwIFRYMCAxd3AwIFJiMCAxd3AwIFJiMCAxd3AwIFRYMCBnMHAwIDEwTTAgYWpBMCA4cDAgOHpiMCB1TDAiLAoJCQkiQW1lcmljYS9BcnViYXxMTVQgQU5UIEFTVHw0ei5MIDR1IDQwfDAxMnwtMmtWN28uZCAyOEtMUy5kIiwKCQkJIkFtZXJpY2EvQXN1bmNpb258QU1UIFBZVCBQWVQgUFlTVHwzTy5FIDQwIDMwIDMwfDAxMjEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxM3wtMXg1ODkuayAxREtNOS5rIDNDTDAgM0RkMCAxMEwwIDFwQjAgMTBuMCAxcEIwIDEwbjAgMXBCMCAxY0wwIDFkZDAgMWRiMCAxZGQwIDFjTDAgMWRkMCAxY0wwIDFkZDAgMWNMMCAxZGQwIDFkYjAgMWRkMCAxY0wwIDFkZDAgMWNMMCAxZGQwIDFjTDAgMWRkMCAxZGIwIDFkZDAgMWNMMCAxbEIwIDE0bjAgMWRkMCAxY0wwIDFmZDAgV0wwIDFyZDAgMWFMMCAxZEIwIFh6MCAxcXAwIFhiMCAxcU4wIDEwTDAgMXJCMCBUWDAgMXRCMCBXTDAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCAxY0wwIFdOMCAxcUwwIDExQjAgMW5YMCAxaXAwIFdMMCAxcU4wIFdMMCAxcU4wIFdMMCAxdEIwIFRYMCAxdEIwIFRYMCAxdEIwIDE5WDAgMWExMCAxZnowIDFhMTAgMWZ6MCAxY04wIDE3YjAgMWlwMCAxN2IwIDFpcDAgMTdiMCAxaXAwIDE5WDAgMWZCMCAxOVgwIDFmQjAgMTlYMCAxaXAwIDE3YjAgMWlwMCAxN2IwIDFpcDAgMTlYMCAxZkIwIDE5WDAgMWZCMCAxOVgwIDFmQjAgMTlYMCAxaXAwIDE3YjAgMWlwMCAxN2IwIDFpcDAgMTlYMCAxZkIwIDE5WDAgMWZCMCAxOVgwIDFpcDAgMTdiMCAxaXAwIDE3YjAgMWlwMCAxOVgwIDFmQjAgMTlYMCAxZkIwIDE5WDAgMWZCMCAxOVgwIDFpcDAgMTdiMCAxaXAwIDE3YjAgMWlwMCIsCgkJCSJBbWVyaWNhL0F0aWtva2FufENTVCBDRFQgQ1dUIENQVCBFU1R8NjAgNTAgNTAgNTAgNTB8MDEwMTIzNHwtMjVUUTAgMWluMCBSbmIwIDNqZTAgOHgzMCBpdzAiLAoJCQkiQW1lcmljYS9CYWhpYXxMTVQgQlJUIEJSU1R8MnkuNCAzMCAyMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMmdseHAuVSBIZExwLlUgMWNjMCAxZTEwIDFiWDAgRXpkMCBTbzAgMXZBMCBNbjAgMUJCMCBNTDAgMUJCMCB6WDAgcWUxMCB4YjAgMmVwMCBuejAgMUMxMCB6WDAgMUMxMCBMWDAgMUMxMCBNbjAgSDIxMCBSYjAgMXRCMCBJTDAgMUZkMCBGWDAgMUVOMCBGWDAgMUhCMCBMejAgMUVOMCBMejAgMUMxMCBJTDAgMUhCMCBEYjAgMUhCMCBPbjAgMXpkMCBPbjAgMXpkMCBMejAgMXpkMCBSYjAgMXdOMCBXbjAgMXRCMCBSYjAgMXRCMCBXTDAgMXRCMCBSYjAgMXpkMCBPbjAgMUhCMCBGWDAgbDVCMCBSYjAiLAoJCQkiQW1lcmljYS9CYWhpYV9CYW5kZXJhc3xMTVQgTVNUIENTVCBQU1QgTURUIENEVHw3MSA3MCA2MCA4MCA2MCA1MHwwMTIxMjEyMTMxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyfC0xVVFGMCBkZUwwIDhsYzAgMTdjMCAxME0wIDFkZDAgb3RYMCBnbU4wIFAyTjAgMTNWZDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMWZCMCBXTDAgMWZCMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuVzAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAiLAoJCQkiQW1lcmljYS9CYXJiYWRvc3xMTVQgQk1UIEFTVCBBRFR8M1cudCAzVy50IDQwIDMwfDAxMjMyMzIzMjMyfC0xUTBJMS52IGpzTTAgMU9EQzEudiBJTDAgMWlwMCAxN2IwIDFpcDAgMTdiMCAxbGQwIDEzYjAiLAoJCQkiQW1lcmljYS9CZWxlbXxMTVQgQlJUIEJSU1R8M2QuVSAzMCAyMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJnbHdLLjQgSGRLSy40IDFjYzAgMWUxMCAxYlgwIEV6ZDAgU28wIDF2QTAgTW4wIDFCQjAgTUwwIDFCQjAgelgwIHFlMTAgeGIwIDJlcDAgbnowIDFDMTAgelgwIDFDMTAgTFgwIDFDMTAgTW4wIEgyMTAgUmIwIDF0QjAgSUwwIDFGZDAgRlgwIiwKCQkJIkFtZXJpY2EvQmVsaXplfExNVCBDU1QgQ0hEVCBDRFR8NVEuTSA2MCA1dSA1MHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMzEzMXwtMmtCdTcuYyBmUEE3LmMgT251IDF6Y3UgUmJ1IDF3b3UgUmJ1IDF3b3UgUmJ1IDF6Y3UgT251IDF6Y3UgT251IDF6Y3UgUmJ1IDF3b3UgUmJ1IDF3b3UgUmJ1IDF3b3UgUmJ1IDF6Y3UgT251IDF6Y3UgT251IDF6Y3UgUmJ1IDF3b3UgUmJ1IDF3b3UgUmJ1IDF6Y3UgT251IDF6Y3UgT251IDF6Y3UgT251IDF6Y3UgUmJ1IDF3b3UgUmJ1IDF3b3UgUmJ1IDF6Y3UgT251IDF6Y3UgT251IDF6Y3UgUmJ1IDF3b3UgUmJ1IDFmME11IHFuMCBseEIwIG1uMCIsCgkJCSJBbWVyaWNhL0JsYW5jLVNhYmxvbnxBU1QgQURUIEFXVCBBUFR8NDAgMzAgMzAgMzB8MDEwMjMwfC0yNVRTMCAxaW4wIFVHcDAgOHg1MCBpdTAiLAoJCQkiQW1lcmljYS9Cb2FfVmlzdGF8TE1UIEFNVCBBTVNUfDQyLkUgNDAgMzB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMmdsdlYuayBIZEtWLmsgMWNjMCAxZTEwIDFiWDAgRXpkMCBTbzAgMXZBMCBNbjAgMUJCMCBNTDAgMUJCMCB6WDAgcWUxMCB4YjAgMmVwMCBuejAgMUMxMCB6WDAgMUMxMCBMWDAgMUMxMCBNbjAgSDIxMCBSYjAgMXRCMCBJTDAgMUZkMCBGWDAgc21wMCBXTDAgMXRCMCAyTDAiLAoJCQkiQW1lcmljYS9Cb2dvdGF8Qk1UIENPVCBDT1NUfDRVLmcgNTAgNDB8MDEyMXwtMmViNzMuSSAzOHlvMy5JIDJlbjAiLAoJCQkiQW1lcmljYS9Cb2lzZXxQU1QgUERUIE1TVCBNV1QgTVBUIE1EVHw4MCA3MCA3MCA2MCA2MCA2MHwwMTAxMDIzNDI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyfC0yNjFxMCAxblgwIDExQjAgMW5YMCA4QzEwIEpDTDAgOHgyMCBpeDAgUXdOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIERkMCAxS24wIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL0NhbWJyaWRnZV9CYXl8enp6IE1TVCBNV1QgTVBUIE1ERFQgTURUIENTVCBDRFQgRVNUfDAgNzAgNjAgNjAgNTAgNjAgNjAgNTAgNTB8MDEyMzE0MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTY3ODY1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MXwtMjFKYzAgUk85MCA4eDIwIGl4MCBMQ0wwIDFmQTAgemdPMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUEwIDFuWDAgMkswIFdRMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9DYW1wb19HcmFuZGV8TE1UIEFNVCBBTVNUfDNDLnMgNDAgMzB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyfC0yZ2x3bC53IEhkTGwudyAxY2MwIDFlMTAgMWJYMCBFemQwIFNvMCAxdkEwIE1uMCAxQkIwIE1MMCAxQkIwIHpYMCBxZTEwIHhiMCAyZXAwIG56MCAxQzEwIHpYMCAxQzEwIExYMCAxQzEwIE1uMCBIMjEwIFJiMCAxdEIwIElMMCAxRmQwIEZYMCAxRU4wIEZYMCAxSEIwIEx6MCAxRU4wIEx6MCAxQzEwIElMMCAxSEIwIERiMCAxSEIwIE9uMCAxemQwIE9uMCAxemQwIEx6MCAxemQwIFJiMCAxd04wIFduMCAxdEIwIFJiMCAxdEIwIFdMMCAxdEIwIFJiMCAxemQwIE9uMCAxSEIwIEZYMCAxQzEwIEx6MCAxSXAwIEhYMCAxemQwIE9uMCAxSEIwIElMMCAxd3AwIE9uMCAxQzEwIEx6MCAxQzEwIE9uMCAxemQwIE9uMCAxemQwIFJiMCAxemQwIEx6MCAxQzEwIEx6MCAxQzEwIE9uMCAxemQwIE9uMCAxemQwIE9uMCAxemQwIE9uMCAxQzEwIEx6MCAxQzEwIEx6MCAxQzEwIE9uMCAxemQwIE9uMCAxemQwIFJiMCAxd3AwIE9uMCAxQzEwIEx6MCAxQzEwIE9uMCAxemQwIE9uMCAxemQwIE9uMCAxemQwIE9uMCAxQzEwIEx6MCAxQzEwIEx6MCAxQzEwIEx6MCAxQzEwIE9uMCAxemQwIFJiMCAxd3AwIE9uMCAxQzEwIEx6MCAxQzEwIE9uMCAxemQwIiwKCQkJIkFtZXJpY2EvQ2FuY3VufExNVCBDU1QgRVNUIEVEVCBDRFR8NUwuNCA2MCA1MCA0MCA1MHwwMTIzMjMyMzQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxfC0xVVFHMCAycTJvMCB5TEIwIDFsYjAgMTRwMCAxbGIwIDE0cDAgTHowIHhCMCAxNHAwIDFuWDAgMTFCMCAxblgwIDFmQjAgV0wwIDFmQjAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIiwKCQkJIkFtZXJpY2EvQ2FyYWNhc3xDTVQgVkVUIFZFVHw0ci5FIDR1IDQwfDAxMjF8LTJrVjd3LmsgMjhLTTIuayAxSXdPdSIsCgkJCSJBbWVyaWNhL0NheWVubmV8TE1UIEdGVCBHRlR8M3QuayA0MCAzMHwwMTJ8LTJtcnd1LkUgMmdXb3UuRSIsCgkJCSJBbWVyaWNhL0NheW1hbnxLTVQgRVNUfDU3LmIgNTB8MDF8LTJsMXVRLk4iLAoJCQkiQW1lcmljYS9DaGljYWdvfENTVCBDRFQgRVNUIENXVCBDUFR8NjAgNTAgNTAgNTAgNTB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDIwMTAxMDEwMTAxMDM0MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTI2MXMwIDFuWDAgMTFCMCAxblgwIDF3cDAgVFgwIFdOMCAxcUwwIDFjTjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDExQjAgMUh6MCAxNHAwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgUkIwIDh4MzAgaXcwIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVnowIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL0NoaWh1YWh1YXxMTVQgTVNUIENTVCBDRFQgTURUfDc0LmsgNzAgNjAgNTAgNjB8MDEyMTIxMjMyMzI0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MXwtMVVRRjAgZGVMMCA4bGMwIDE3YzAgMTBNMCAxZGQwIDJ6UU4wIDFsYjAgMTRwMCAxbGIwIDE0cTAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDFmQjAgV0wwIDFmQjAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIiwKCQkJIkFtZXJpY2EvQ29zdGFfUmljYXxTSk1UIENTVCBDRFR8NUEuZCA2MCA1MHwwMTIxMjEyMTIxfC0xWGQ2bi5MIDJsdTBuLkwgRGIwIDFLcDAgRGIwIHBSQjAgMTViMCAxa3AwIG1MMCIsCgkJCSJBbWVyaWNhL0NyZXN0b258TVNUIFBTVHw3MCA4MHwwMTB8LTI5RFIwIDQzQjAiLAoJCQkiQW1lcmljYS9DdWlhYmF8TE1UIEFNVCBBTVNUfDNJLmsgNDAgMzB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMnwtMmdsd2YuRSBIZExmLkUgMWNjMCAxZTEwIDFiWDAgRXpkMCBTbzAgMXZBMCBNbjAgMUJCMCBNTDAgMUJCMCB6WDAgcWUxMCB4YjAgMmVwMCBuejAgMUMxMCB6WDAgMUMxMCBMWDAgMUMxMCBNbjAgSDIxMCBSYjAgMXRCMCBJTDAgMUZkMCBGWDAgMUVOMCBGWDAgMUhCMCBMejAgMUVOMCBMejAgMUMxMCBJTDAgMUhCMCBEYjAgMUhCMCBPbjAgMXpkMCBPbjAgMXpkMCBMejAgMXpkMCBSYjAgMXdOMCBXbjAgMXRCMCBSYjAgMXRCMCBXTDAgMXRCMCBSYjAgMXpkMCBPbjAgMUhCMCBGWDAgNGExMCBIWDAgMXpkMCBPbjAgMUhCMCBJTDAgMXdwMCBPbjAgMUMxMCBMejAgMUMxMCBPbjAgMXpkMCBPbjAgMXpkMCBSYjAgMXpkMCBMejAgMUMxMCBMejAgMUMxMCBPbjAgMXpkMCBPbjAgMXpkMCBPbjAgMXpkMCBPbjAgMUMxMCBMejAgMUMxMCBMejAgMUMxMCBPbjAgMXpkMCBPbjAgMXpkMCBSYjAgMXdwMCBPbjAgMUMxMCBMejAgMUMxMCBPbjAgMXpkMCBPbjAgMXpkMCBPbjAgMXpkMCBPbjAgMUMxMCBMejAgMUMxMCBMejAgMUMxMCBMejAgMUMxMCBPbjAgMXpkMCBSYjAgMXdwMCBPbjAgMUMxMCBMejAgMUMxMCBPbjAgMXpkMCIsCgkJCSJBbWVyaWNhL0Rhbm1hcmtzaGF2bnxMTVQgV0dUIFdHU1QgR01UfDFlLkUgMzAgMjAgMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxM3wtMmE1V0ouayAyejVmSi5rIDE5VTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgREMwIiwKCQkJIkFtZXJpY2EvRGF3c29ufFlTVCBZRFQgWVdUIFlQVCBZRERUIFBTVCBQRFR8OTAgODAgODAgODAgNzAgODAgNzB8MDEwMTAyMzA0MDU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NXwtMjVUTjAgMWluMCAxbzEwIDEzVjAgU2VyMCA4eDAwIGl6MCBMQ0wwIDFmQTAganJBMCBmTmQwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL0Rhd3Nvbl9DcmVla3xQU1QgUERUIFBXVCBQUFQgTVNUfDgwIDcwIDcwIDcwIDcwfDAxMDIzMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTR8LTI1VE8wIDFpbjAgVUdwMCA4eDEwIGl5MCAzTkIwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMXFOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgTUwwIiwKCQkJIkFtZXJpY2EvRGVudmVyfE1TVCBNRFQgTVdUIE1QVHw3MCA2MCA2MCA2MHwwMTAxMDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMjYxcjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxcUwwIFdOMCBtbjAgT3JkMCA4eDIwIGl4MCBMQ04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCBzMTAgMVZ6MCBMQjAgMUJYMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9EZXRyb2l0fExNVCBDU1QgRVNUIEVXVCBFUFQgRURUfDV3LmIgNjAgNTAgNDAgNDAgNDB8MDEyMzQyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTJ8LTJDZ2lyLk4gcGVxci5OIDE1NkwwIDh4NDAgaXYwIDZmZDAgMTF6MCBKeTEwIFNMMCBkbkIwIDFjTDAgczEwIDFWejAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL0VkbW9udG9ufExNVCBNU1QgTURUIE1XVCBNUFR8N3guUSA3MCA2MCA2MCA2MHwwMTIxMjEyMTIxMjEyMTM0MTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMnlkNHEuOCBzaGRxLjggMWluMCAxN2QwIGh6MCAyZEIwIDFmejAgMWExMCAxMXowIDFxTjAgV0wwIDFxTjAgMTF6MCBJR04wIDh4MjAgaXgwIDNOQjAgMTF6MCBMRkIwIDFjTDAgM0NwMCAxY0wwIDY2TjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9FaXJ1bmVwZXxMTVQgQUNUIEFDU1QgQU1UfDRELnMgNTAgNDAgNDB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEzMXwtMmdsdmsudyBIZExrLncgMWNjMCAxZTEwIDFiWDAgRXpkMCBTbzAgMXZBMCBNbjAgMUJCMCBNTDAgMUJCMCB6WDAgcWUxMCB4YjAgMmVwMCBuejAgMUMxMCB6WDAgMUMxMCBMWDAgMUMxMCBNbjAgSDIxMCBSYjAgMXRCMCBJTDAgMUZkMCBGWDAgZFBCMCBPbjAgeVRkMCBkNVgwIiwKCQkJIkFtZXJpY2EvRWxfU2FsdmFkb3J8TE1UIENTVCBDRFR8NVUuTSA2MCA1MHwwMTIxMjF8LTFYaUczLmMgMkZ2YzMuYyBXTDAgMXFOMCBXTDAiLAoJCQkiQW1lcmljYS9FbnNlbmFkYXxMTVQgTVNUIFBTVCBQRFQgUFdUIFBQVHw3TS40IDcwIDgwIDcwIDcwIDcwfDAxMjEyMzI0NTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMnwtMVVRRTAgNFBYMCA4bU0wIDhsYzAgU04wIDFjTDAgcEhCMCA4M3IwIHpJMCA1TzEwIDFSejAgY09QMCAxMXowIDFvMTAgMTF6MCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIEJVcDAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCBVMTAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL0ZvcnRfV2F5bmV8Q1NUIENEVCBDV1QgQ1BUIEVTVCBFRFR8NjAgNTAgNTAgNTAgNTAgNDB8MDEwMTAxMDIzMDEwMTAxMDEwMTAxMDEwMTAxMDQwNDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0fC0yNjFzMCAxblgwIDExQjAgMW5YMCBRSTEwIERiMCBSQjAgOHgzMCBpdzAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDVUejAgMW8xMCBxTGIwIDFjTDAgMWNOMCAxY0wwIDFxaGQwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9Gb3J0YWxlemF8TE1UIEJSVCBCUlNUfDJ5IDMwIDIwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJnbHhxIEhkTHEgMWNjMCAxZTEwIDFiWDAgRXpkMCBTbzAgMXZBMCBNbjAgMUJCMCBNTDAgMUJCMCB6WDAgcWUxMCB4YjAgMmVwMCBuejAgMUMxMCB6WDAgMUMxMCBMWDAgMUMxMCBNbjAgSDIxMCBSYjAgMXRCMCBJTDAgMUZkMCBGWDAgMUVOMCBGWDAgMUhCMCBMejAgbnNwMCBXTDAgMXRCMCA1ejAgMm1OMCBPbjAiLAoJCQkiQW1lcmljYS9HbGFjZV9CYXl8TE1UIEFTVCBBRFQgQVdUIEFQVHwzWC5NIDQwIDMwIDMwIDMwfDAxMjEzNDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMklzSTAuYyBDd08wLmMgMWluMCBVR3AwIDh4NTAgaXUwIGlxMTAgMTF6MCBKZzEwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFtZXJpY2EvR29kdGhhYnxMTVQgV0dUIFdHU1R8M3EuVSAzMCAyMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0yYTVVeC40IDJ6NWR4LjQgMTlVMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIkFtZXJpY2EvR29vc2VfQmF5fE5TVCBORFQgTlNUIE5EVCBOV1QgTlBUIEFTVCBBRFQgQUREVHwzdS5RIDJ1LlEgM3UgMnUgMnUgMnUgNDAgMzAgMjB8MDEwMjMyMzIzMjMyMzIzMjQ1MjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzI2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY4Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2fC0yNVRTdC44IDFpbjAgRFhiMCAySGJYLjggV0wwIDFxTjAgV0wwIDFxTjAgV0wwIDF0QjAgVFgwIDF0QjAgV0wwIDFxTjAgV0wwIDFxTjAgN1VIdSBpdHUgMXRCMCBXTDAgMXFOMCBXTDAgMXFOMCBXTDAgMXFOMCBXTDAgMXRCMCBXTDAgMWxkMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgUzEwIGcwdSAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRuMSAxbGIwIDE0cDAgMW5XMCAxMUMwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpjWCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL0dyYW5kX1R1cmt8S01UIEVTVCBFRFQgQVNUfDU3LmIgNTAgNDAgNDB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyM3wtMmwxdVEuTiAySEhCUS5OIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9HdWF0ZW1hbGF8TE1UIENTVCBDRFR8NjIuNCA2MCA1MHwwMTIxMjEyMTIxfC0yNEtoVi5VIDJlZlhWLlUgQW4wIG10ZDAgTnowIGlmQjAgMTdiMCB6REIwIDExejAiLAoJCQkiQW1lcmljYS9HdWF5YXF1aWx8UU1UIEVDVHw1ZSA1MHwwMXwtMXlWU0siLAoJCQkiQW1lcmljYS9HdXlhbmF8TE1UIEdCR1QgR1lUIEdZVCBHWVR8M1EuRSAzSiAzSiAzMCA0MHwwMTIzNHwtMmR2VTcuayAyNEp6US5rIG1sYzAgQnhiZiIsCgkJCSJBbWVyaWNhL0hhbGlmYXh8TE1UIEFTVCBBRFQgQVdUIEFQVHw0ZS5vIDQwIDMwIDMwIDMwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMzQxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJJc0hKLkEgeHp6Si5BIDFkYjAgM0kzMCAxaW4wIDNIWDAgSUwwIDFFMTAgTUwwIDF5TjAgUGIwIDFCZDAgTW4wIDFCZDAgUnowIDF3MTAgWGIwIDF3MTAgTFgwIDF3MTAgWGIwIDF3MTAgTHowIDFDMTAgSnowIDFFMTAgT0wwIDF5TjAgVW4wIDFxcDAgWGIwIDFxcDAgMTFYMCAxdzEwIEx6MCAxSEIwIExYMCAxQzEwIEZYMCAxdzEwIFhiMCAxcXAwIFhiMCAxQkIwIExYMCAxdGQwIFhiMCAxcXAwIFhiMCBSZjAgOHg1MCBpdTAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDNRcDAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAzUXAwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgNmkxMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9IYXZhbmF8SE1UIENTVCBDRFR8NXQuQSA1MCA0MHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTFNZXV1Lm8gNzJ6dS5vIE1MMCBzbGQwIEFuMCAxTmQwIERiMCAxTmQwIEFuMCA2RXAwIEFuMCAxTmQwIEFuMCBKRGQwIE1uMCAxQXAwIE9uMCAxZmQwIDExWDAgMXFOMCBXTDAgMXdwMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxNG4wIDFsZDAgMTRMMCAxa04wIDE1YjAgMWtwMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWZCMCAxMXowIDE0cDAgMW5YMCAxMUIwIDFuWDAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxNG4wIDFsZDAgMTRuMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMWExMCAxaW4wIDFhMTAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxN2MwIDFvMDAgMTFBMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxMUEwIDZpMDAgUmMwIDF3bzAgVTAwIDF0QTAgUmMwIDF3bzAgVTAwIDF3bzAgVTAwIDF6YzAgVTAwIDFxTTAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgUmMwIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgUmMwIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgUmMwIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgUmMwIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAiLAoJCQkiQW1lcmljYS9IZXJtb3NpbGxvfExNVCBNU1QgQ1NUIFBTVCBNRFR8N24uUSA3MCA2MCA4MCA2MHwwMTIxMjEyMTMxNDE0MTQxfC0xVVFGMCBkZUwwIDhsYzAgMTdjMCAxME0wIDFkZDAgb3RYMCBnbU4wIFAyTjAgMTNWZDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIiwKCQkJIkFtZXJpY2EvSW5kaWFuYS9Lbm94fENTVCBDRFQgQ1dUIENQVCBFU1R8NjAgNTAgNTAgNTAgNTB8MDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTA0MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE0MTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMjYxczAgMW5YMCAxMUIwIDFuWDAgU2dOMCA4eDMwIGl3MCAzTkIwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxZnowIDFjTjAgMWNMMCAxY04wIDExejAgMW8xMCAxMXowIDFvMTAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgM0NuMCA4d3AwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgczEwIDFWejAgTEIwIDFCWDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIHo4bzAgMW8wMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL0luZGlhbmEvTWFyZW5nb3xDU1QgQ0RUIENXVCBDUFQgRVNUIEVEVHw2MCA1MCA1MCA1MCA1MCA0MHwwMTAxMDIzMDEwMTAxMDEwMTAxMDEwMTA0NTQ1NDU0NTQ1NDE0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0fC0yNjFzMCAxblgwIDExQjAgMW5YMCBTZ04wIDh4MzAgaXcwIGR5TjAgMTF6MCA2ZmQwIDExejAgMW8xMCAxMXowIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBqcnowIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVkEwIExBMCAxQlgwIDFlNnAwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9JbmRpYW5hL1BldGVyc2J1cmd8Q1NUIENEVCBDV1QgQ1BUIEVTVCBFRFR8NjAgNTAgNTAgNTAgNTAgNDB8MDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDQwMTAxMDEwMTAxMDEwMTAxMDEwMTAxNDEwMTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTR8LTI2MXMwIDFuWDAgMTFCMCAxblgwIFNnTjAgOHgzMCBpdzAgbmpYMCBXTjAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAzRmIwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCBzMTAgMVZ6MCBMQjAgMUJYMCAxY04wIDFmejAgMWExMCAxZnowIDE5Y28wIDFvMDAgUmQwIDF6YjAgT28wIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9JbmRpYW5hL1RlbGxfQ2l0eXxDU1QgQ0RUIENXVCBDUFQgRVNUIEVEVHw2MCA1MCA1MCA1MCA1MCA0MHwwMTAxMDIzMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDQ1NDU0MTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMjYxczAgMW5YMCAxMUIwIDFuWDAgU2dOMCA4eDMwIGl3MCAxbzEwIDExejAgZzBwMCAxMXowIDFvMTAgMTF6MCAxcUwwIFdOMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxZnowIDFjTjAgV0wwIDFxTjAgMWNMMCAxY04wIDFjTDAgMWNOMCBjYUwwIDFjTDAgMWNOMCAxY0wwIDFxaGQwIDFvMDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9JbmRpYW5hL1ZldmF5fENTVCBDRFQgQ1dUIENQVCBFU1QgRURUfDYwIDUwIDUwIDUwIDUwIDQwfDAxMDEwMjMwNDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NHwtMjYxczAgMW5YMCAxMUIwIDFuWDAgU2dOMCA4eDMwIGl3MCBrUEIwIEF3bjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxbG5kMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFtZXJpY2EvSW5kaWFuYS9WaW5jZW5uZXN8Q1NUIENEVCBDV1QgQ1BUIEVTVCBFRFR8NjAgNTAgNTAgNTAgNTAgNDB8MDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTA0NTQ1NDEwMTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTR8LTI2MXMwIDFuWDAgMTFCMCAxblgwIFNnTjAgOHgzMCBpdzAgMW8xMCAxMXowIGcwcDAgMTF6MCAxbzEwIDExejAgMXFMMCBXTjAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMWZ6MCAxY04wIFdMMCAxcU4wIDFjTDAgMWNOMCAxY0wwIDFjTjAgY2FMMCAxY0wwIDFjTjAgMWNMMCAxcWhkMCAxbzAwIFJkMCAxemIwIE9vMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFtZXJpY2EvSW5kaWFuYS9XaW5hbWFjfENTVCBDRFQgQ1dUIENQVCBFU1QgRURUfDYwIDUwIDUwIDUwIDUwIDQwfDAxMDEwMjMwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwNDU0NTQxMDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0fC0yNjFzMCAxblgwIDExQjAgMW5YMCBTZ04wIDh4MzAgaXcwIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxZnowIDFjTjAgMWNMMCAxY04wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBqcnowIDFjTDAgMWNOMCAxY0wwIDFxaGQwIDFvMDAgUmQwIDF6YTAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9JbnV2aWt8enp6IFBTVCBQRERUIE1TVCBNRFR8MCA4MCA2MCA3MCA2MHwwMTIxMzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzfC1GbkEwIHRXVTAgMWZBMCB3UGUwIDJwejAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFtZXJpY2EvSXFhbHVpdHx6enogRVdUIEVQVCBFU1QgRUREVCBFRFQgQ1NUIENEVHwwIDQwIDQwIDUwIDMwIDQwIDYwIDUwfDAxMjM0MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTY3MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzfC0xNkswMCA3blgwIGl2MCBMQ0wwIDFmQTAgemdPMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUMwIDFuWDAgMTFBMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9KYW1haWNhfEtNVCBFU1QgRURUfDU3LmIgNTAgNDB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMmwxdVEuTiAydU0xUS5OIDFWejAgTEIwIDFCWDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCIsCgkJCSJBbWVyaWNhL0p1bmVhdXxQU1QgUFdUIFBQVCBQRFQgWURUIFlTVCBBS1NUIEFLRFR8ODAgNzAgNzAgNzAgODAgOTAgOTAgODB8MDEyMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzA0MDMwMzAzNTY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzZ8LTE3VDIwIDh4MTAgaXkwIFZvMTAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgczEwIDFWejAgTEIwIDFCWDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNNMCAxY00wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCBjbzAgMTBxMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL0tlbnR1Y2t5L0xvdWlzdmlsbGV8Q1NUIENEVCBDV1QgQ1BUIEVTVCBFRFR8NjAgNTAgNTAgNTAgNTAgNDB8MDEwMTAxMDEwMjMwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTQ1NDU0NTQ1NDU0NTQxNDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NHwtMjYxczAgMW5YMCAxMUIwIDFuWDAgM0ZkMCBOYjAgTFBkMCAxMXowIFJCMCA4eDMwIGl3MCBCYjAgMTBOMCAyYkIwIDhpbjAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgeHowIGdzbzAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVkEwIExBMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL0tlbnR1Y2t5L01vbnRpY2VsbG98Q1NUIENEVCBDV1QgQ1BUIEVTVCBFRFR8NjAgNTAgNTAgNTAgNTAgNDB8MDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NHwtMjYxczAgMW5YMCAxMUIwIDFuWDAgU2dOMCA4eDMwIGl3MCBTV3AwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCBzMTAgMVZ6MCBMQjAgMUJYMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFBMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9MYV9QYXp8Q01UIEJPU1QgQk9UfDR3LkEgM3cuQSA0MHwwMTJ8LTF4MzdyLm8gMTNiMCIsCgkJCSJBbWVyaWNhL0xpbWF8TE1UIFBFVCBQRVNUfDU4LkEgNTAgNDB8MDEyMTIxMjEyMTIxMjEyMXwtMnR5R1AubyAxYkR6UC5vIHpYMCAxYU4wIDFjTDAgMWNOMCAxY0wwIDFQckIwIHpYMCAxTzEwIHpYMCA2R3AwIHpYMCA5OHAwIHpYMCIsCgkJCSJBbWVyaWNhL0xvc19BbmdlbGVzfFBTVCBQRFQgUFdUIFBQVHw4MCA3MCA3MCA3MHwwMTAxMDIzMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTI2MXEwIDFuWDAgMTFCMCAxblgwIFNnTjAgOHgxMCBpeTAgNVdwMCAxVmIwIDNkQjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCBzMTAgMVZ6MCBMQjAgMUJYMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9NYWNlaW98TE1UIEJSVCBCUlNUfDJtLlEgMzAgMjB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0yZ2x4Qi44IEhkTEIuOCAxY2MwIDFlMTAgMWJYMCBFemQwIFNvMCAxdkEwIE1uMCAxQkIwIE1MMCAxQkIwIHpYMCBxZTEwIHhiMCAyZXAwIG56MCAxQzEwIHpYMCAxQzEwIExYMCAxQzEwIE1uMCBIMjEwIFJiMCAxdEIwIElMMCAxRmQwIEZYMCAxRU4wIEZYMCAxSEIwIEx6MCBkTU4wIEx6MCA4UTEwIFdMMCAxdEIwIDV6MCAybU4wIE9uMCIsCgkJCSJBbWVyaWNhL01hbmFndWF8TU1UIENTVCBFU1QgQ0RUfDVKLmMgNjAgNTAgNTB8MDEyMTMxMzEyMTIxMzEzMXwtMXF1aWUuTSAxeUFNZS5NIDRtbjAgOVVwMCBEejAgMUsxMCBEejAgczNGMCAxS0gwIERCMCA5SW4wIGs4cDAgMTlYMCAxbzMwIDExeTAiLAoJCQkiQW1lcmljYS9NYW5hdXN8TE1UIEFNVCBBTVNUfDQwLjQgNDAgMzB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJnbHZYLlUgSGRLWC5VIDFjYzAgMWUxMCAxYlgwIEV6ZDAgU28wIDF2QTAgTW4wIDFCQjAgTUwwIDFCQjAgelgwIHFlMTAgeGIwIDJlcDAgbnowIDFDMTAgelgwIDFDMTAgTFgwIDFDMTAgTW4wIEgyMTAgUmIwIDF0QjAgSUwwIDFGZDAgRlgwIGRQQjAgT24wIiwKCQkJIkFtZXJpY2EvTWFydGluaXF1ZXxGRk1UIEFTVCBBRFR8NDQuayA0MCAzMHwwMTIxfC0ybVBUVC5FIDJMUGJULkUgMTlYMCIsCgkJCSJBbWVyaWNhL01hdGFtb3Jvc3xMTVQgQ1NUIENEVHw2RSA2MCA1MHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0xVVFHMCAyRmpDMCAxblgwIGk2cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMWZCMCBXTDAgMWZCMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCBVMTAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL01hemF0bGFufExNVCBNU1QgQ1NUIFBTVCBNRFR8NzUuRSA3MCA2MCA4MCA2MHwwMTIxMjEyMTMxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxfC0xVVFGMCBkZUwwIDhsYzAgMTdjMCAxME0wIDFkZDAgb3RYMCBnbU4wIFAyTjAgMTNWZDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMWZCMCBXTDAgMWZCMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAiLAoJCQkiQW1lcmljYS9NZW5vbWluZWV8Q1NUIENEVCBDV1QgQ1BUIEVTVHw2MCA1MCA1MCA1MCA1MHwwMTAxMDIzMDEwMTA0MTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMjYxczAgMW5YMCAxMUIwIDFuWDAgU2dOMCA4eDMwIGl3MCAxbzEwIDExejAgTENOMCAxZnowIDY0MTAgOUpiMCAxY00wIHMxMCAxVnowIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL01lcmlkYXxMTVQgQ1NUIEVTVCBDRFR8NVcucyA2MCA1MCA1MHwwMTIxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxfC0xVVFHMCAycTJvMCAyaHowIHd1MzAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMWZCMCBXTDAgMWZCMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAiLAoJCQkiQW1lcmljYS9NZXRsYWthdGxhfFBTVCBQV1QgUFBUIFBEVHw4MCA3MCA3MCA3MHwwMTIwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwfC0xN1QyMCA4eDEwIGl5MCBWbzEwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVnowIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAiLAoJCQkiQW1lcmljYS9NZXhpY29fQ2l0eXxMTVQgTVNUIENTVCBDRFQgQ1dUfDZBLkEgNzAgNjAgNTAgNTB8MDEyMTIxMjMyMzI0MjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyfC0xVVFGMCBkZUwwIDhsYzAgMTdjMCAxME0wIDFkZDAgZ0VuMCBUWDAgM3hkMCBKYjAgNnpCMCBTTDAgZTVkMCAxN2IwIDFQZmYwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDFmQjAgV0wwIDFmQjAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIiwKCQkJIkFtZXJpY2EvTWlxdWVsb258TE1UIEFTVCBQTVNUIFBNRFR8M0kuRSA0MCAzMCAyMHwwMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzJ8LTJtS2tmLmsgMkxUQWYuayBnUTEwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFtZXJpY2EvTW9uY3RvbnxFU1QgQVNUIEFEVCBBV1QgQVBUfDUwIDQwIDMwIDMwIDMwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEzNDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMklzSDAgQ3dOMCAxaW4wIHpBbzAgQW4wIDFOZDAgQW4wIDFOZDAgQW4wIDFOZDAgQW4wIDFOZDAgQW4wIDFOZDAgQW4wIDFLMTAgTHowIDF6QjAgTlgwIDF1MTAgV24wIFMyMCA4eDUwIGl1MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIDExejAgMW8xMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDNDcDAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNG4xIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJlWCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFtZXJpY2EvTW9udGVycmV5fExNVCBDU1QgQ0RUfDZGLmcgNjAgNTB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMVVRRzAgMkZqQzAgMW5YMCBpNnAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDFmQjAgV0wwIDFmQjAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIiwKCQkJIkFtZXJpY2EvTW9udGV2aWRlb3xNTVQgVVlUIFVZSFNUIFVZU1QgVVlUIFVZSFNUfDNJLkkgM3UgMzAgMjAgMzAgMnV8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEzNDM0MzQzNDM0MzQ1NDU0NTQzNDUzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzfC0yMFVJZi5nIDhqekouZyAxY0x1IDFkY3UgMWNMdSAxZGN1IDFjTHUgaXJjdSAxMXp1IDFvMHUgMTF6dSAxbzB1IDExenUgMXFNdSBXTHUgMXFNdSBXTHUgMXFNdSBXTHUgMXFNdSAxMXp1IDFvMHUgMTF6dSBOQXUgMTFidSAyaU11IHpXdSBEcTEwIDE5WDAgcGQwIGp6MCBjbTEwIDE5WDAgMWZCMCAxb24wIDExZDAgMW9MMCAxbkIwIDFmenUgMWFvdSAxZnp1IDFhb3UgMWZ6dSAzbkF1IEpiMCAzTU4wIDFTTHUgNGp6dSAyUEIwIExiMCAzRGQwIDFwYjAgaXhkMCBBbjAgMU1OMCBBbjAgMXdwMCBPbjAgMXdwMCBSYjAgMXpkMCBPbjAgMXdwMCBSYjAgczhwMCAxZkIwIDFpcDAgMTF6MCAxbGQwIDE0bjAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDE0bjAgMWxkMCAxNG4wIDFsZDAgMTRuMCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDE0bjAgMWxkMCAxNG4wIDFsZDAgMTRuMCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTRuMCAxbGQwIDE0bjAgMWxkMCAxNG4wIDFsZDAgMTRuMCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTRuMCAxbGQwIDE0bjAgMWxkMCAxNG4wIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxNG4wIDFsZDAgMTRuMCAxbGQwIDE0bjAgMWxkMCAxNG4wIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCIsCgkJCSJBbWVyaWNhL01vbnRyZWFsfEVTVCBFRFQgRVdUIEVQVHw1MCA0MCA0MCA0MHwwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMjMwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMjh0UjAgYlYwIDJtMzAgMWluMCAxMjF1IDFuYjAgMWcxMCAxMXowIDFvMHUgMTF6dSAxbzB1IDExenUgM1ZBdSBSenUgMXFNdSBXTHUgMXFNdSBXTHUgMXFLdSBXTDAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgNGtPMCA4eDQwIGl2MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCAxMXowIDFvMTAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9OYXNzYXV8TE1UIEVTVCBFRFR8NTkudSA1MCA0MHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJrTnVPLnUgMjZYZE8udSAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFtZXJpY2EvTmV3X1lvcmt8RVNUIEVEVCBFV1QgRVBUfDUwIDQwIDQwIDQwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yNjF0MCAxblgwIDExQjAgMW5YMCAxMUIwIDFxTDAgMWExMCAxMXowIDFxTjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgUkIwIDh4NDAgaXYwIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVnowIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL05pcGlnb258RVNUIEVEVCBFV1QgRVBUfDUwIDQwIDQwIDQwfDAxMDEyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMjVUUjAgMWluMCBSbmIwIDNqZTAgOHg0MCBpdjAgMTl5TjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFtZXJpY2EvTm9tZXxOU1QgTldUIE5QVCBCU1QgQkRUIFlTVCBBS1NUIEFLRFR8YjAgYTAgYTAgYjAgYTAgOTAgOTAgODB8MDEyMDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDU2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2fC0xN1NYMCA4d1cwIGlCMCBRbGIwIDUyTzAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgczEwIDFWejAgTEIwIDFCWDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCBjbDAgMTBxMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL05vcm9uaGF8TE1UIEZOVCBGTlNUfDI5LkUgMjAgMTB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMmdseE8uayBIZEtPLmsgMWNjMCAxZTEwIDFiWDAgRXpkMCBTbzAgMXZBMCBNbjAgMUJCMCBNTDAgMUJCMCB6WDAgcWUxMCB4YjAgMmVwMCBuejAgMUMxMCB6WDAgMUMxMCBMWDAgMUMxMCBNbjAgSDIxMCBSYjAgMXRCMCBJTDAgMUZkMCBGWDAgMUVOMCBGWDAgMUhCMCBMejAgbnNwMCBXTDAgMXRCMCAyTDAgMnBCMCBPbjAiLAoJCQkiQW1lcmljYS9Ob3J0aF9EYWtvdGEvQmV1bGFofE1TVCBNRFQgTVdUIE1QVCBDU1QgQ0RUfDcwIDYwIDYwIDYwIDYwIDUwfDAxMDEwMjMwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxNDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NHwtMjYxcjAgMW5YMCAxMUIwIDFuWDAgU2dOMCA4eDIwIGl4MCBRd04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgczEwIDFWejAgTEIwIDFCWDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9vMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFtZXJpY2EvTm9ydGhfRGFrb3RhL0NlbnRlcnxNU1QgTURUIE1XVCBNUFQgQ1NUIENEVHw3MCA2MCA2MCA2MCA2MCA1MHwwMTAxMDIzMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTR8LTI2MXIwIDFuWDAgMTFCMCAxblgwIFNnTjAgOHgyMCBpeDAgUXdOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVnowIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRvMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL05vcnRoX0Rha290YS9OZXdfU2FsZW18TVNUIE1EVCBNV1QgTVBUIENTVCBDRFR8NzAgNjAgNjAgNjAgNjAgNTB8MDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxNDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0fC0yNjFyMCAxblgwIDExQjAgMW5YMCBTZ04wIDh4MjAgaXgwIFF3TjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCBzMTAgMVZ6MCBMQjAgMUJYMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRvMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9PamluYWdhfExNVCBNU1QgQ1NUIENEVCBNRFR8NlYuRSA3MCA2MCA1MCA2MHwwMTIxMjEyMzIzMjQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxfC0xVVFGMCBkZUwwIDhsYzAgMTdjMCAxME0wIDFkZDAgMnpRTjAgMWxiMCAxNHAwIDFsYjAgMTRxMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMWZCMCBXTDAgMWZCMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCBVMTAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL1BhbmFtYXxDTVQgRVNUfDVqLkEgNTB8MDF8LTJ1ZHVFLm8iLAoJCQkiQW1lcmljYS9QYW5nbmlydHVuZ3x6enogQVNUIEFXVCBBUFQgQUREVCBBRFQgRURUIEVTVCBDU1QgQ0RUfDAgNDAgMzAgMzAgMjAgMzAgNDAgNTAgNjAgNTB8MDEyMzE0MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTY3Njc2NzY3Njg5NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3fC0xWGlNMCBQbkcwIDh4NTAgaXUwIExDTDAgMWZBMCB6Z08wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFvMDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQzAgMW5YMCAxMUEwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL1BhcmFtYXJpYm98TE1UIFBNVCBQTVQgTkVHVCBTUlQgU1JUfDNFLkUgM0UuUSAzRS5BIDN1IDN1IDMwfDAxMjM0NXwtMm5EVWouayBXcW8wLmMgcWFuWC5JIDFkbUxOLm8gbHpjMCIsCgkJCSJBbWVyaWNhL1Bob2VuaXh8TVNUIE1EVCBNV1R8NzAgNjAgNjB8MDEwMTAyMDIwMTB8LTI2MXIwIDFuWDAgMTFCMCAxblgwIFNnTjAgNEFsMSBBcDAgMWRiMCBTV3FYIDFjTDAiLAoJCQkiQW1lcmljYS9Qb3J0LWF1LVByaW5jZXxQUE1UIEVTVCBFRFR8NE4gNTAgNDB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMjhSSGIgMkZuTWIgMTlYMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRxMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxNG8wIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxNG8wIDFsYzAgMTRvMCAxbGMwIGk2bjAgMW5YMCAxMUIwIDFuWDAgZDQzMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFtZXJpY2EvUG9ydG9fQWNyZXxMTVQgQUNUIEFDU1QgQU1UfDR2LmMgNTAgNDAgNDB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMzF8LTJnbHZzLk0gSGRMcy5NIDFjYzAgMWUxMCAxYlgwIEV6ZDAgU28wIDF2QTAgTW4wIDFCQjAgTUwwIDFCQjAgelgwIHFlMTAgeGIwIDJlcDAgbnowIDFDMTAgelgwIDFDMTAgTFgwIDFDMTAgTW4wIEgyMTAgUmIwIDF0QjAgSUwwIDFGZDAgRlgwIE5CZDAgZDVYMCIsCgkJCSJBbWVyaWNhL1BvcnRvX1ZlbGhvfExNVCBBTVQgQU1TVHw0Zi5BIDQwIDMwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMmdsdkkubyBIZEtJLm8gMWNjMCAxZTEwIDFiWDAgRXpkMCBTbzAgMXZBMCBNbjAgMUJCMCBNTDAgMUJCMCB6WDAgcWUxMCB4YjAgMmVwMCBuejAgMUMxMCB6WDAgMUMxMCBMWDAgMUMxMCBNbjAgSDIxMCBSYjAgMXRCMCBJTDAgMUZkMCBGWDAiLAoJCQkiQW1lcmljYS9QdWVydG9fUmljb3xBU1QgQVdUIEFQVHw0MCAzMCAzMHwwMTIwfC0xN2xVMCA3WFQwIGl1MCIsCgkJCSJBbWVyaWNhL1JhaW55X1JpdmVyfENTVCBDRFQgQ1dUIENQVHw2MCA1MCA1MCA1MHwwMTAxMjMwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTI1VFEwIDFpbjAgUm5iMCAzamUwIDh4MzAgaXcwIDE5eU4wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL1Jhbmtpbl9JbmxldHx6enogQ1NUIENERFQgQ0RUIEVTVHwwIDYwIDQwIDUwIDUwfDAxMjEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzQzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMXwtdkRjMCBrZXUwIDFmQTAgemdPMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9SZWNpZmV8TE1UIEJSVCBCUlNUfDJqLkEgMzAgMjB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMmdseEUubyBIZExFLm8gMWNjMCAxZTEwIDFiWDAgRXpkMCBTbzAgMXZBMCBNbjAgMUJCMCBNTDAgMUJCMCB6WDAgcWUxMCB4YjAgMmVwMCBuejAgMUMxMCB6WDAgMUMxMCBMWDAgMUMxMCBNbjAgSDIxMCBSYjAgMXRCMCBJTDAgMUZkMCBGWDAgMUVOMCBGWDAgMUhCMCBMejAgbnNwMCBXTDAgMXRCMCAyTDAgMnBCMCBPbjAiLAoJCQkiQW1lcmljYS9SZWdpbmF8TE1UIE1TVCBNRFQgTVdUIE1QVCBDU1R8NlcuQSA3MCA2MCA2MCA2MCA2MHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEzNDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTV8LTJBRDUxLm8gdUhlMS5vIDFpbjAgczJMMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMXFOMCAxMXowIDY2TjAgMWNMMCAxY04wIDE5WDAgMWZCMCAxY0wwIDFmQjAgMWNMMCAxY04wIDFjTDAgTTMwIDh4MjAgaXgwIDFpcDAgMWNMMCAxaXAwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgMTF6MCAxbzEwIDExejAgM05CMCAxY0wwIDFjTjAiLAoJCQkiQW1lcmljYS9SZXNvbHV0ZXx6enogQ1NUIENERFQgQ0RUIEVTVHwwIDYwIDQwIDUwIDUwfDAxMjEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzQzMTMxMzEzMTMxMzQzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMXwtU25BMCBHV1MwIDFmQTAgemdPMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9TYW50YV9Jc2FiZWx8TE1UIE1TVCBQU1QgUERUIFBXVCBQUFR8N0QucyA3MCA4MCA3MCA3MCA3MHwwMTIxMjMyNDUyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzJ8LTFVUUUwIDRQWDAgOG1NMCA4bGMwIFNOMCAxY0wwIHBIQjAgODNyMCB6STAgNU8xMCAxUnowIGNPUDAgMTF6MCAxbzEwIDExejAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCBCVXAwIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIiwKCQkJIkFtZXJpY2EvU2FudGFyZW18TE1UIEFNVCBBTVNUIEJSVHwzQy5NIDQwIDMwIDMwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTN8LTJnbHdsLmMgSGRMbC5jIDFjYzAgMWUxMCAxYlgwIEV6ZDAgU28wIDF2QTAgTW4wIDFCQjAgTUwwIDFCQjAgelgwIHFlMTAgeGIwIDJlcDAgbnowIDFDMTAgelgwIDFDMTAgTFgwIDFDMTAgTW4wIEgyMTAgUmIwIDF0QjAgSUwwIDFGZDAgRlgwIE5CZDAiLAoJCQkiQW1lcmljYS9TYW50aWFnb3xTTVQgQ0xUIENMVCBDTFNUIENMU1R8NEcuSyA1MCA0MCA0MCAzMHwwMTAyMDMxMzEzMTMxMzEzMTMxMjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjR8LTJxNVRoLmUgZk5jaC5lIDVnTEcuSyAyMWJoLmUgalJBRy5LIDFwYmguZSAxMWQwIDFvTDAgMTFkMCAxb0wwIDExZDAgMW9MMCAxMWQwIDFwYjAgMTFkMCBuSFgwIG9wMCA5VUswIDFKZTAgUWVuMCBXTDAgMXpkMCBPbjAgMWlwMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxbGQwIDE0bjAgMXFOMCBXTDAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMXFOMCBXTDAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgV0wwIDFxTjAgMWNMMCAxY04wIDExejAgMWxkMCAxNG4wIDFxTjAgMTF6MCAxY04wIDE5WDAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgMTdiMCAxaXAwIDExejAgMWlwMCAxZnowIDFmQjAgMTF6MCAxcU4wIFdMMCAxcU4wIFdMMCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDE3YjAgMWlwMCAxMXowIDFvMTAgMTlYMCAxZkIwIDFuWDAgRzEwIDFFTDAgT3AwIDF6YjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF6YjAgT3AwIDF6YjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF6YjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF6YjAgT3AwIDF6YjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF6YjAgT3AwIDF6YjAgUmQwIDF3bjAgUmQwIiwKCQkJIkFtZXJpY2EvU2FudG9fRG9taW5nb3xTRE1UIEVTVCBFRFQgRUhEVCBBU1R8NEUgNTAgNDAgNHUgNDB8MDEyMTMxMzEzMTMxMzE0MTR8LTF0dGprIDFsSk1rIE1uMCA2c3AwIExidSAxQ291IHlMdSAxUkF1IHdMdSAxUU11IHh6dSAxUTB1IHhYdSAxUEF1IDEzakIwIGUwMCIsCgkJCSJBbWVyaWNhL1Nhb19QYXVsb3xMTVQgQlJUIEJSU1R8MzYucyAzMCAyMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTJ8LTJnbHdSLncgSGRLUi53IDFjYzAgMWUxMCAxYlgwIEV6ZDAgU28wIDF2QTAgTW4wIDFCQjAgTUwwIDFCQjAgelgwIHBUZDAgUFgwIDJlcDAgbnowIDFDMTAgelgwIDFDMTAgTFgwIDFDMTAgTW4wIEgyMTAgUmIwIDF0QjAgSUwwIDFGZDAgRlgwIDFFTjAgRlgwIDFIQjAgTHowIDFFTjAgTHowIDFDMTAgSUwwIDFIQjAgRGIwIDFIQjAgT24wIDF6ZDAgT24wIDF6ZDAgTHowIDF6ZDAgUmIwIDF3TjAgV24wIDF0QjAgUmIwIDF0QjAgV0wwIDF0QjAgUmIwIDF6ZDAgT24wIDFIQjAgRlgwIDFDMTAgTHowIDFJcDAgSFgwIDF6ZDAgT24wIDFIQjAgSUwwIDF3cDAgT24wIDFDMTAgTHowIDFDMTAgT24wIDF6ZDAgT24wIDF6ZDAgUmIwIDF6ZDAgTHowIDFDMTAgTHowIDFDMTAgT24wIDF6ZDAgT24wIDF6ZDAgT24wIDF6ZDAgT24wIDFDMTAgTHowIDFDMTAgTHowIDFDMTAgT24wIDF6ZDAgT24wIDF6ZDAgUmIwIDF3cDAgT24wIDFDMTAgTHowIDFDMTAgT24wIDF6ZDAgT24wIDF6ZDAgT24wIDF6ZDAgT24wIDFDMTAgTHowIDFDMTAgTHowIDFDMTAgTHowIDFDMTAgT24wIDF6ZDAgUmIwIDF3cDAgT24wIDFDMTAgTHowIDFDMTAgT24wIDF6ZDAiLAoJCQkiQW1lcmljYS9TY29yZXNieXN1bmR8TE1UIENHVCBDR1NUIEVHU1QgRUdUfDFyLlEgMjAgMTAgMCAxMHwwMTIxMzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0fC0yYTVXdy44IDJ6NWV3LjggMWEwMCAxY0swIDFjTDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIkFtZXJpY2EvU2l0a2F8UFNUIFBXVCBQUFQgUERUIFlTVCBBS1NUIEFLRFR8ODAgNzAgNzAgNzAgOTAgOTAgODB8MDEyMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzNDU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjV8LTE3VDIwIDh4MTAgaXkwIFZvMTAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgczEwIDFWejAgTEIwIDFCWDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCBjbzAgMTBxMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL1N0X0pvaG5zfE5TVCBORFQgTlNUIE5EVCBOV1QgTlBUIE5ERFR8M3UuUSAydS5RIDN1IDJ1IDJ1IDJ1IDF1fDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAyMzIzMjMyMzIzMjMyMzI0NTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzI2MjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyfC0yOG9pdC44IDE0TDAgMW5CMCAxaW4wIDFnbTAgRHowIDFKQjAgMWNMMCAxY04wIDFjTDAgMWZCMCAxOVgwIDFmQjAgMTlYMCAxZkIwIDE5WDAgMWZCMCAxOVgwIDFmQjAgMWNMMCAxY04wIDFjTDAgMWZCMCAxOVgwIDFmQjAgMTlYMCAxZkIwIDE5WDAgMWZCMCAxOVgwIDFmQjAgMWNMMCAxZkIwIDE5WDAgMWZCMCAxOVgwIDEwTzAgZUtYLjggMTlYMCAxaXEwIFdMMCAxcU4wIFdMMCAxcU4wIFdMMCAxdEIwIFRYMCAxdEIwIFdMMCAxcU4wIFdMMCAxcU4wIDdVSHUgaXR1IDF0QjAgV0wwIDFxTjAgV0wwIDFxTjAgV0wwIDFxTjAgV0wwIDF0QjAgV0wwIDFsZDAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0bjEgMWxiMCAxNHAwIDFuVzAgMTFDMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6Y1ggT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9Td2lmdF9DdXJyZW50fExNVCBNU1QgTURUIE1XVCBNUFQgQ1NUfDdiLmsgNzAgNjAgNjAgNjAgNjB8MDEyMTM0MTIxMjEyMTIxMjEyMTIxMjE1fC0yQUQ0TS5FIHVIZE0uRSAxaW4wIFVHcDAgOHgyMCBpeDAgMW8xMCAxN2IwIDFpcDAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIGlzTjAgMWNMMCAzQ3AwIDFjTDAgMWNOMCAxMXowIDFxTjAgV0wwIHBNcDAiLAoJCQkiQW1lcmljYS9UZWd1Y2lnYWxwYXxMTVQgQ1NUIENEVHw1TS5RIDYwIDUwfDAxMjEyMTIxfC0xV0dHYi44IDJFVGNiLjggV0wwIDFxTjAgV0wwIEdSZDAgQUwwIiwKCQkJIkFtZXJpY2EvVGh1bGV8TE1UIEFTVCBBRFR8NHouOCA0MCAzMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJhNVRvLlEgMzFOQm8uUSAxY0wwIDFjTjAgMWNMMCAxZkIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFtZXJpY2EvVGh1bmRlcl9CYXl8Q1NUIEVTVCBFV1QgRVBUIEVEVHw2MCA1MCA0MCA0MCA0MHwwMTIzMTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxfC0ycTVTMCAxaWFOMCA4eDQwIGl2MCBYTkIwIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAzQ3AwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL1Rvcm9udG98RVNUIEVEVCBFV1QgRVBUfDUwIDQwIDQwIDQwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yNVRSMCAxaW4wIDExV3UgMW56dSAxZkQwIFdKMCAxd3IwIE5iMCAxQXAwIE9uMCAxemQwIE9uMCAxd3AwIFRYMCAxdEIwIFRYMCAxdEIwIFRYMCAxdEIwIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMXFOMCA0a00wIDh4NDAgaXYwIDFvMTAgMTF6MCAxblgwIDExejAgMW8xMCAxMXowIDFvMTAgMXFMMCAxMUQwIDFuWDAgMTFCMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIDExejAgMW8xMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL1ZhbmNvdXZlcnxQU1QgUERUIFBXVCBQUFR8ODAgNzAgNzAgNzB8MDEwMjMwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMjVUTzAgMWluMCBVR3AwIDh4MTAgaXkwIDFvMTAgMTdiMCAxaXAwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMXFOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9XaGl0ZWhvcnNlfFlTVCBZRFQgWVdUIFlQVCBZRERUIFBTVCBQRFR8OTAgODAgODAgODAgNzAgODAgNzB8MDEwMTAyMzA0MDU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NXwtMjVUTjAgMWluMCAxbzEwIDEzVjAgU2VyMCA4eDAwIGl6MCBMQ0wwIDFmQTAgMUJlMCB4RHowIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJBbWVyaWNhL1dpbm5pcGVnfENTVCBDRFQgQ1dUIENQVHw2MCA1MCA1MCA1MHwwMTAxMDEwMjMwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTJhSWkwIFdMMCAzTkQwIDFpbjAgSmFwMCBSYjAgYUNOMCA4eDMwIGl3MCAxdEIwIDExejAgMWlwMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXJkMCAxMEwwIDFvcDAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxY0wwIDFjTjAgMTF6MCA2aTEwIFdMMCA2aTEwIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxNG8wIDFsYzAgMTRvMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxNG8wIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxNG8wIDFsYzAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxNG8wIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxNG8wIDFsYzAgMTRvMCAxbGMwIDE0bzAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFtZXJpY2EvWWFrdXRhdHxZU1QgWVdUIFlQVCBZRFQgQUtTVCBBS0RUfDkwIDgwIDgwIDgwIDkwIDgwfDAxMjAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzA0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0fC0xN1QxMCA4eDAwIGl6MCBWbzEwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVnowIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgY24wIDEwcTAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQW1lcmljYS9ZZWxsb3drbmlmZXx6enogTVNUIE1XVCBNUFQgTUREVCBNRFR8MCA3MCA2MCA2MCA1MCA2MHwwMTIzMTQxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTF8LTFwZEEwIGhpeDAgOHgyMCBpeDAgTENMMCAxZkEwIHpnTzAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIiwKCQkJIkFudGFyY3RpY2EvQ2FzZXl8enp6IEFXU1QgQ0FTVHwwIC04MCAtYjB8MDEyMTIxfC0ycTAwIDFEalMwIFQ5MCA0MFAwIEtMMCIsCgkJCSJBbnRhcmN0aWNhL0RhdmlzfHp6eiBEQVZUIERBVlR8MCAtNzAgLTUwfDAxMDEyMTIxfC12eW8wIGlYdDAgYWxqMCAxRDd2MCBWQjAgM1duMCBLTjAiLAoJCQkiQW50YXJjdGljYS9EdW1vbnREVXJ2aWxsZXx6enogUE1UIEREVVR8MCAtYTAgLWEwfDAxMDJ8LVUwbzAgY2ZxMCBiRm0wIiwKCQkJIkFudGFyY3RpY2EvTWFjcXVhcmllfEFFU1QgQUVEVCB6enogTUlTVHwtYTAgLWIwIDAgLWIwfDAxMDIwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTN8LTI5RTgwIDE5WDAgNFNMMCAxYXl5MCBMdnMwIDFjTTAgMW8wMCBSYzAgMXdvMCBSYzAgMXdvMCBVMDAgMXdvMCBMQTAgMUMwMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBSYzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCAxMUEwIDFxTTAgV00wIDFxTTAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF3bzAgV00wIDF0QTAgV00wIDF0QTAgVTAwIDF0QTAgVTAwIDF0QTAgMTFBMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxMUEwIDFvMDAgMWlvMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWNNMCAxY00wIDFhMDAgMWlvMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAiLAoJCQkiQW50YXJjdGljYS9NYXdzb258enp6IE1BV1QgTUFXVHwwIC02MCAtNTB8MDEyfC1DRW8wIDJmeWswIiwKCQkJIkFudGFyY3RpY2EvTWNNdXJkb3xOWk1UIE5aU1QgTlpTVCBOWkRUfC1idSAtY3UgLWMwIC1kMHwwMTAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyM3wtMUdDVnUgTHowIDF0QjAgMTF6dSAxbzB1IDExenUgMW8wdSAxMXp1IDFvMHUgMTRudSAxbGN1IDE0bnUgMWxjdSAxbGJ1IDExQXUgMW5YdSAxMUF1IDFuWHUgMTFBdSAxblh1IDExQXUgMW5YdSAxMUF1IDFxTHUgV011IDFxTHUgMTFBdSAxbjFidSBJTTAgMUMwMCBSYzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBSYzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBSYzAgMXpjMCBPbzAgMXFNMCAxNG8wIDFsYzAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxN2MwIDFpbzAgMTdjMCAxaW8wIDE3YzAgMWlvMCAxN2MwIDFsYzAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxN2MwIDFpbzAgMTdjMCAxaW8wIDE3YzAgMWxjMCAxNG8wIDFsYzAgMTRvMCAxbGMwIDE3YzAgMWlvMCAxN2MwIDFpbzAgMTdjMCAxaW8wIDE3YzAgMWlvMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWlvMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFjTTAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFjTTAgMWZBMCAxYTAwIDFmQTAgMWEwMCIsCgkJCSJBbnRhcmN0aWNhL1BhbG1lcnx6enogQVJTVCBBUlQgQVJUIEFSU1QgQ0xUIENMU1R8MCAzMCA0MCAzMCAyMCA0MCAzMHwwMTIxMjEyMTIxMjM0MzU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTZ8LWNhbzAgbkQwIDF2ZDAgU0wwIDF2ZDAgMTd6MCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgYXNuMCBEYjAganNOMCAxNE4wIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgV0wwIDFxTjAgMWNMMCAxY04wIDExejAgMWxkMCAxNG4wIDFxTjAgMTF6MCAxY04wIDE5WDAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgMTdiMCAxaXAwIDExejAgMWlwMCAxZnowIDFmQjAgMTF6MCAxcU4wIFdMMCAxcU4wIFdMMCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDE3YjAgMWlwMCAxMXowIDFvMTAgMTlYMCAxZkIwIDFuWDAgRzEwIDFFTDAgT3AwIDF6YjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF6YjAgT3AwIDF6YjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF6YjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF6YjAgT3AwIDF6YjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgUmQwIDF6YjAgT3AwIDF6YjAgUmQwIDF3bjAgUmQwIiwKCQkJIkFudGFyY3RpY2EvUm90aGVyYXx6enogUk9UVHwwIDMwfDAxfGdPbzAiLAoJCQkiQW50YXJjdGljYS9TeW93YXx6enogU1lPVHwwIC0zMHwwMXwtdnMwMCIsCgkJCSJBbnRhcmN0aWNhL1Ryb2xsfHp6eiBVVEMgQ0VTVHwwIDAgLTIwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfDFwdW8wIGhkMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJBbnRhcmN0aWNhL1Zvc3Rva3x6enogVk9TVHwwIC02MHwwMXwtdGpBMCIsCgkJCSJBcmN0aWMvTG9uZ3llYXJieWVufENFVCBDRVNUfC0xMCAtMjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yYXdNMCBRbTAgVzZvMCA1cGYwIFdNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgd0pjMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMXFNMCBXTTAgenBjMCAxYTAwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiQXNpYS9BZGVufExNVCBBU1R8LTJYLlMgLTMwfDAxfC1NRzJYLlMiLAoJCQkiQXNpYS9BbG1hdHl8TE1UIEFMTVQgQUxNVCBBTE1TVHwtNTcuTSAtNTAgLTYwIC03MHwwMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyfC0xUGM1Ny5NIGVVbzcuTSAyM0NMMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDNDbDAgMWNMMCAxY1EwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAiLAoJCQkiQXNpYS9BbW1hbnxMTVQgRUVUIEVFU1R8LTJuLkkgLTIwIC0zMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0xeVcybi5JIDFIaU1uLkkgS0wwIDFvTjAgMTFiMCAxb04wIDExYjAgMXBkMCAxZHowIDFjcDAgMTFiMCAxb3AwIDExYjAgZk8xMCAxZGIwIDFlMTAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFwZDAgMTBuMCAxbGQwIDE0bjAgMWhCMCAxNWIwIDFpcDAgMTlYMCAxY04wIDFjTDAgMWNOMCAxN2IwIDFsZDAgMTRvMCAxbGMwIDE3YzAgMWlvMCAxN2MwIDFpbzAgMTdjMCAxU28wIHkwMCAxZmMwIDFkYzAgMWNvMCAxZGMwIDFjTTAgMWNNMCAxY00wIDFvMDAgMTFBMCAxbGMwIDE3YzAgMWNNMCAxY00wIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCA0YlgwIERkMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAiLAoJCQkiQXNpYS9BbmFkeXJ8TE1UIEFOQVQgQU5BVCBBTkFTVCBBTkFTVCBBTkFTVCBBTkFUfC1iTi5VIC1jMCAtZDAgLWUwIC1kMCAtYzAgLWIwfDAxMjMyNDE0MTQxNDE0MTQxNDE0MTQxNTYxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNTYxfC0xUGNiTi5VIGVVbk4uVSAyM0NMMCAxZGIwIDFjTjAgMWRjMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNOMCBJTTAgclUwIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU4wIFdNMCIsCgkJCSJBc2lhL0FxdGF1fExNVCBGT1JUIEZPUlQgU0hFVCBTSEVUIFNIRVNUIEFRVFQgQVFUU1QgQVFUU1QgQVFUVHwtM2wuNCAtNDAgLTUwIC01MCAtNjAgLTYwIC01MCAtNjAgLTUwIC00MHwwMTIzNDUzNTM1MzUzNTM1MzUzNTM1MzY3Njc2NzY4OTg5ODk4OTg5ODk4OTg5ODk4OTZ8LTFQYzNsLjQgZVVubC40IDFqY0wwIEpEYzAgMWNMMCAxZGMwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMlVLMCBGejAgMWNMMCAxY1EwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNOMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgUlcwIiwKCQkJIkFzaWEvQXF0b2JlfExNVCBBS1RUIEFLVFQgQUtUU1QgQUtUVCBBUVRUIEFRVFNUfC0zTS5FIC00MCAtNTAgLTYwIC02MCAtNTAgLTYwfDAxMjM0MzIzMjMyMzIzMjMyMzIzMjMyNTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1fC0xUGMzTS5FIGVVbk0uRSAyM0NMMCAxZGIwIDFjTTAgMWRjMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDJVSzAgRnowIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIiwKCQkJIkFzaWEvQXNoZ2FiYXR8TE1UIEFTSFQgQVNIVCBBU0hTVCBBU0hTVCBUTVQgVE1UfC0zUi53IC00MCAtNTAgLTYwIC01MCAtNDAgLTUwfDAxMjMyMzIzMjMyMzIzMjMyMzIzMjMyNDE1NnwtMVBjM1IudyBlVW5SLncgMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTjAgYmEwIHhDMCIsCgkJCSJBc2lhL0JhZ2hkYWR8Qk1UIEFTVCBBRFR8LTJWLkEgLTMwIC00MHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTI2QmVWLkEgMkFDblYuQSAxMWIwIDFjcDAgMWR6MCAxZGQwIDFkYjAgMWNOMCAxY3AwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWRlMCAxZGMwIDFkYzAgMWRjMCAxY00wIDFkYzAgMWNNMCAxZGMwIDFjTTAgMWRjMCAxZGMwIDFkYzAgMWNNMCAxZGMwIDFjTTAgMWRjMCAxY00wIDFkYzAgMWRjMCAxZGMwIDFjTTAgMWRjMCAxY00wIDFkYzAgMWNNMCAxZGMwIDFkYzAgMWRjMCAxY00wIDFkYzAgMWNNMCAxZGMwIDFjTTAgMWRjMCIsCgkJCSJBc2lhL0JhaHJhaW58TE1UIEdTVCBBU1R8LTNtLmsgLTQwIC0zMHwwMTJ8LTIxSmZtLmsgMjdCWG0uayIsCgkJCSJBc2lhL0Jha3V8TE1UIEJBS1QgQkFLVCBCQUtTVCBCQUtTVCBBWlNUIEFaVCBBWlQgQVpTVHwtM2oubyAtMzAgLTQwIC01MCAtNDAgLTQwIC0zMCAtNDAgLTUwfDAxMjMyMzIzMjMyMzIzMjMyMzIzMjMyNDU2NTc4Nzg3ODc4Nzg3ODc4Nzg3ODc4Nzg3ODc4Nzg3ODc4Nzg3ODc4Nzg3ODc4Nzg3ODc4Nzg3ODc4Nzg3ODc4Nzg3ODc4Nzg3ODc4Nzg3ODc4Nzg3ODd8LTFQYzNqLm8gMWpVb2oubyBXQ0wwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxMEswIGMzMCAxY0owIDFjTDAgOHd1MCAxbzAwIDExejAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJBc2lhL0Jhbmdrb2t8Qk1UIElDVHwtNkcuNCAtNzB8MDF8LTIxOFNHLjQiLAoJCQkiQXNpYS9CZWlydXR8RUVUIEVFU1R8LTIwIC0zMHwwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTIxYXEwIDFvbjAgMTQxMCAxZGIwIDE5QjAgMWluMCAxaXAwIFdMMCAxbFFwMCAxMWIwIDFvTjAgMTFiMCAxb04wIDExYjAgMXBkMCAxMWIwIDFvTjAgMTFiMCBxNk4wIEVuMCAxb04wIDExYjAgMW9OMCAxMWIwIDFvTjAgMTFiMCAxcGQwIDExYjAgMW9OMCAxMWIwIDFvcDAgMTFiMCBkQTEwIDE3YjAgMWlOMCAxN2IwIDFpTjAgMTdiMCAxaU4wIDE3YjAgMXZCMCBTTDAgMW1wMCAxM3owIDFpTjAgMTdiMCAxaU4wIDE3YjAgMWpkMCAxMm4wIDFhMTAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFmQjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxcUwwIFdOMCAxcUwwIFdOMCAxcUwwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxcUwwIFdOMCAxcUwwIFdOMCAxcUwwIFdOMCAxcUwwIDExQjAgMW5YMCAxMUIwIDFuWDAiLAoJCQkiQXNpYS9CaXNoa2VrfExNVCBGUlVUIEZSVVQgRlJVU1QgRlJVU1QgS0dUIEtHU1QgS0dUfC00Vy5vIC01MCAtNjAgLTcwIC02MCAtNTAgLTYwIC02MHwwMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjQ1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2N3wtMVBjNFcubyBlVW5XLm8gMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDExYzAgMXRYMCAxN2IwIDFpcDAgMTdiMCAxaXAwIDE3YjAgMWlwMCAxN2IwIDFpcDAgMTlYMCAxY1B1IDFuWDAgMTFCMCAxblgwIDExQjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMXFMMCBXTjAgVDh1IiwKCQkJIkFzaWEvQnJ1bmVpfExNVCBCTlQgQk5UfC03RC5FIC03dSAtODB8MDEyfC0xS0lURC5FIGdEYzkuRSIsCgkJCSJBc2lhL0NhbGN1dHRhfEhNVCBCVVJUIElTVCBJU1R8LTVSLmsgLTZ1IC01dSAtNnV8MDEyMzJ8LTE4TEZSLmsgMXVubi5rIEhCMCA3elgwIiwKCQkJIkFzaWEvQ2hpdGF8TE1UIFlBS1QgWUFLVCBZQUtTVCBZQUtTVCBZQUtUIElSS1R8LTd4LlEgLTgwIC05MCAtYTAgLTkwIC1hMCAtODB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzI0MTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjU2fC0yMVE3eC5RIHBBbnguUSAyM0NMMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNOMCBJTTAgclUwIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCA4SHowIiwKCQkJIkFzaWEvQ2hvaWJhbHNhbnxMTVQgVUxBVCBVTEFUIENIT1NUIENIT1QgQ0hPVHwtN0MgLTcwIC04MCAtYTAgLTkwIC04MHwwMTIzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDV8LTJBUEhDIDJVa29DIGNLbjAgMWRhMCAxZGQwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxZkIwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCA2aEQwIDExejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAzRGIwIiwKCQkJIkFzaWEvQ2hvbmdxaW5nfENTVCBDRFR8LTgwIC05MHwwMTAxMDEwMTAxMDEwMTAxMHwtMWMxSTAgTFgwIDE2cDAgMWp6MCAxTXlwMCBSYjAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCIsCgkJCSJBc2lhL0NvbG9tYm98TU1UIElTVCBJSFNUIElTVCBMS1QgTEtUfC01ai53IC01dSAtNjAgLTZ1IC02dSAtNjB8MDEyMzE0NTF8LTJ6T3RqLncgMXJGYk4udyAxenp1IDdBcHUgMjNkejAgMTF6dSBuM2N1IiwKCQkJIkFzaWEvRGFjY2F8SE1UIEJVUlQgSVNUIERBQ1QgQkRUIEJEU1R8LTVSLmsgLTZ1IC01dSAtNjAgLTYwIC03MHwwMTIxMzQ1NHwtMThMRlIuayAxdW5uLmsgSEIwIG02bjAgTHFNdSAxeDZuMCAxaTAwIiwKCQkJIkFzaWEvRGFtYXNjdXN8TE1UIEVFVCBFRVNUfC0ycC5jIC0yMCAtMzB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTIxSmVwLmMgSGVwLmMgMTdiMCAxaXAwIDE3YjAgMWlwMCAxN2IwIDFpcDAgMTlYMCAxeFJCMCAxMVgwIDFvTjAgMTBMMCAxcEIwIDExYjAgMW9OMCAxMEwwIDFtcDAgMTNYMCAxb04wIDExYjAgMXBkMCAxMWIwIDFvTjAgMTFiMCAxb04wIDExYjAgMW9OMCAxMWIwIDFwZDAgMTFiMCAxb04wIDExYjAgMW9OMCAxMWIwIDFvTjAgMTFiMCAxcGQwIDExYjAgMW9OMCBOYjAgMUFOMCBOYjAgYmNwMCAxOVgwIDFncDAgMTlYMCAzbGQwIDF4WDAgVmQwIDFCejAgU3AwIDF2WDAgMTBwMCAxZHowIDFjTjAgMWNMMCAxZGIwIDFkYjAgMWcxMCAxYW4wIDFhcDAgMWRiMCAxZmQwIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWRiMCAxY3AwIDFkejAgMWMxMCAxZFgwIDFjTjAgMWRiMCAxZGQwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxZGIwIDFjTjAgMWRiMCAxY04wIDE5ejAgMWZCMCAxcUwwIDExQjAgMW9uMCBXcDAgMXFMMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxcUwwIFdOMCAxcUwwIFdOMCAxcUwwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFxTDAgV04wIDFxTDAiLAoJCQkiQXNpYS9EaWxpfExNVCBUTFQgSlNUIFRMVCBXSVRBfC04bS5rIC04MCAtOTAgLTkwIC04MHwwMTIzNDN8LTJsZThtLmsgMWRuWG0uayA4SEEwIDFldzAwIFhsZDAiLAoJCQkiQXNpYS9EdWJhaXxMTVQgR1NUfC0zRi5jIC00MHwwMXwtMjFKZkYuYyIsCgkJCSJBc2lhL0R1c2hhbmJlfExNVCBEVVNUIERVU1QgRFVTU1QgRFVTU1QgVEpUfC00ei5jIC01MCAtNjAgLTcwIC02MCAtNTB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzI0NXwtMVBjNHouYyBlVW56LmMgMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDE0TjAiLAoJCQkiQXNpYS9HYXphfEVFVCBFRVQgRUVTVCBJU1QgSURUfC0yMCAtMzAgLTMwIC0yMCAtMzB8MDEwMTAxMDEwMTAyMDIwMjAyMDIwMjAyMDIwMjAyMDIzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDMwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwfC0xYzJxMCA1UmIwIDEwcjAgMXB4MCAxME4wIDFwejAgMTZwMCAxakIwIDE2cDAgMWp4MCBwQmQwIFZ6MCAxb04wIDExYjAgMW9PMCAxME4wIDFwejAgMTBOMCAxcGIwIDEwTjAgMXBiMCAxME4wIDFwYjAgMTBOMCAxcHowIDEwTjAgMXBiMCAxME4wIDFwYjAgMTFkMCAxb0wwIGRXMCBoZkIwIERiMCAxZkIwIFJiMCBucEIwIDExejAgMUMxMCBJTDAgMXMxMCAxMG4wIDFvMTAgV0wwIDF6ZDAgT24wIDFsZDAgMTF6MCAxbzEwIDE0bjAgMW8xMCAxNG4wIDFuZDAgMTJuMCAxbmQwIFh6MCAxcTEwIDEybjAgTTEwIEMwMCAxN2MwIDFpbzAgMTdjMCAxaW8wIDE3YzAgMW8wMCAxY0wwIDFmQjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDE3YzAgMWlvMCAxOE4wIDFiejAgMTl6MCAxZ3AwIDE2MTAgMWlMMCAxMXowIDFvMTAgMTRvMCAxbEExIFNLWCAxeGQxIE1LWCAxQU4wIDFhMDAgMWZBMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWZCMCAxOVgwIDFmQjAgMTlYMCAxZkIwIDE5WDAgMWZCMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWZCMCAxOVgwIDFmQjAgMTlYMCAxZkIwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWZCMCAxOVgwIDFmQjAgMTlYMCAxZkIwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxZkIwIDE5WDAgMWZCMCAxOVgwIDFmQjAgMTlYMCAxZkIwIDFjTDAgMWNOMCAxY0wwIiwKCQkJIkFzaWEvSGVicm9ufEVFVCBFRVQgRUVTVCBJU1QgSURUfC0yMCAtMzAgLTMwIC0yMCAtMzB8MDEwMTAxMDEwMTAyMDIwMjAyMDIwMjAyMDIwMjAyMDIzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDMwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjB8LTFjMnEwIDVSYjAgMTByMCAxcHgwIDEwTjAgMXB6MCAxNnAwIDFqQjAgMTZwMCAxangwIHBCZDAgVnowIDFvTjAgMTFiMCAxb08wIDEwTjAgMXB6MCAxME4wIDFwYjAgMTBOMCAxcGIwIDEwTjAgMXBiMCAxME4wIDFwejAgMTBOMCAxcGIwIDEwTjAgMXBiMCAxMWQwIDFvTDAgZFcwIGhmQjAgRGIwIDFmQjAgUmIwIG5wQjAgMTF6MCAxQzEwIElMMCAxczEwIDEwbjAgMW8xMCBXTDAgMXpkMCBPbjAgMWxkMCAxMXowIDFvMTAgMTRuMCAxbzEwIDE0bjAgMW5kMCAxMm4wIDFuZDAgWHowIDFxMTAgMTJuMCBNMTAgQzAwIDE3YzAgMWlvMCAxN2MwIDFpbzAgMTdjMCAxbzAwIDFjTDAgMWZCMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMTdjMCAxaW8wIDE4TjAgMWJ6MCAxOXowIDFncDAgMTYxMCAxaUwwIDEyTDAgMW1OMCAxNG8wIDFsYzAgVGIwIDF4ZDEgTUtYIGJCMCBjbjAgMWNOMCAxYTAwIDFmQTAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFmQjAgMTlYMCAxZkIwIDE5WDAgMWZCMCAxOVgwIDFmQjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFmQjAgMTlYMCAxZkIwIDE5WDAgMWZCMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFmQjAgMTlYMCAxZkIwIDE5WDAgMWZCMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWZCMCAxOVgwIDFmQjAgMTlYMCAxZkIwIDE5WDAgMWZCMCAxY0wwIDFjTjAgMWNMMCIsCgkJCSJBc2lhL0hvX0NoaV9NaW5ofExNVCBQTE1UIElDVCBJRFQgSlNUfC03Ni5FIC03Ni51IC03MCAtODAgLTkwfDAxMjM0MjMyMzJ8LTJ5Qzc2LkUgYkswMC5hIDFoN2I2LnUgNWx6MCAxOG8wIDNPcTAgazViMCBhVzAwIEJBTTAiLAoJCQkiQXNpYS9Ib25nX0tvbmd8TE1UIEhLVCBIS1NUIEpTVHwtN0EuRyAtODAgLTkwIC05MHwwMTIxMzEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0yQ0ZIQS5HIDFzRVA2LkcgMWNMMCB5bHUgOTNYMCAxcVF1IDF0WDAgUmQwIDFJbjAgTkIwIDFjTDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxa0wwIDE0TjAgMW5YMCBVMTAgMXR6MCBVMTAgMXduMCBSZDAgMXduMCBVMTAgMXR6MCBVMTAgMXR6MCBVMTAgMXR6MCBVMTAgMXduMCBSZDAgMXduMCBSZDAgMXduMCBVMTAgMXR6MCBVMTAgMXR6MCAxN2QwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCBzMTAgMVZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDZmZDAgMTRuMCIsCgkJCSJBc2lhL0hvdmR8TE1UIEhPVlQgSE9WVCBIT1ZTVHwtNjYuQSAtNjAgLTcwIC04MHwwMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMnwtMkFQRzYuQSAyVWtvNi5BIGNLbjAgMWRiMCAxZGQwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxZkIwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCA2aEQwIDExejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCIsCgkJCSJBc2lhL0lya3V0c2t8SU1UIElSS1QgSVJLVCBJUktTVCBJUktTVCBJUktUfC02Vi41IC03MCAtODAgLTkwIC04MCAtOTB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzI0MTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjUyfC0yMXpHVi41IHBqWFYuNSAyM0NMMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNOMCBJTTAgclUwIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCA4SHowIiwKCQkJIkFzaWEvSXN0YW5idWx8SU1UIEVFVCBFRVNUIFRSU1QgVFJUfC0xVS5VIC0yMCAtMzAgLTQwIC0zMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMzQzNDM0MzQzNDIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJvZ05VLlUgZHp6VS5VIDExYjAgOHRCMCAxb24wIDE0MTAgMWRiMCAxOUIwIDFpbjAgM1JkMCBVbjAgMW9OMCAxMWIwIHpTcDAgQ0wwIG1OMCAxVnowIDFnTjAgMXB6MCA1UmQwIDFmejAgMXlwMCBNTDAgMWtwMCAxN2IwIDFpcDAgMTdiMCAxZkIwIDE5WDAgMWpCMCAxOEwwIDFpcDAgMTd6MCBxZGQwIHhYMCAzUzEwIFR6MCBkQTEwIDExejAgMW8xMCAxMXowIDFxTjAgMTF6MCAxemUwIDExQjAgV00wIDFxTzAgV0kwIDFuWDAgMXJCMCAxMEwwIDExQjAgMWluMCAxN2QwIDFpbjAgMnBYMCAxOUUwIDFmVTAgMTZRMCAxaUkwIDE2UTAgMWlJMCAxVmQwIHBiMCAzS3AwIDE0bzAgMWRmMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY0wwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTzAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBYYzAgMXFvMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTIwMCAxbkEwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiQXNpYS9KYWthcnRhfEJNVCBKQVZUIFdJQiBKU1QgV0lCIFdJQnwtNzcuYyAtN2sgLTd1IC05MCAtODAgLTcwfDAxMjMyNDI1fC0xUTBUayBsdU0wIG1Qek8gOHZXdSA2a3B1IDRQWHUgeGhjdSIsCgkJCSJBc2lhL0pheWFwdXJhfExNVCBXSVQgQUNTVHwtOW0uTSAtOTAgLTl1fDAxMjF8LTF1dTltLk0gc01NbS5NIEw0bnUiLAoJCQkiQXNpYS9KZXJ1c2FsZW18Sk1UIElTVCBJRFQgSUREVHwtMmsuRSAtMjAgLTMwIC00MHwwMTIxMjEyMTIxMjEzMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMjZCZWsuRSBTeU1rLkUgNVJiMCAxMHIwIDFweDAgMTBOMCAxcHowIDE2cDAgMWpCMCAxNnAwIDFqeDAgM0xCMCBFbTAgb3IwIDFjbjAgMWRCMCAxNm4wIDEwTzAgMWphMCAxdEMwIDE0bzAgMWNNMCAxYTAwIDExQTAgMU5hMCBBbjAgMU1QMCBBSjAgMUtwMCBMQzAgMW9vMCBXbDAgRVFOMCBEYjAgMWZCMCBSYjAgbnBCMCAxMXowIDFDMTAgSUwwIDFzMTAgMTBuMCAxbzEwIFdMMCAxemQwIE9uMCAxbGQwIDExejAgMW8xMCAxNG4wIDFvMTAgMTRuMCAxbmQwIDEybjAgMW5kMCBYejAgMXExMCAxMm4wIDFoQjAgMWRYMCAxZXAwIDFhTDAgMWVOMCAxN1gwIDFuZjAgMTF6MCAxdEIwIDE5VzAgMWUxMCAxN2IwIDFlcDAgMWdMMCAxOE4wIDFmejAgMWVOMCAxN2IwIDFncTAgMWduMCAxOWQwIDFkejAgMWMxMCAxN1gwIDFoQjAgMWduMCAxOWQwIDFkejAgMWMxMCAxN1gwIDFrcDAgMWR6MCAxYzEwIDFhTDAgMWVOMCAxb0wwIDEwTjAgMW9MMCAxME4wIDFvTDAgMTBOMCAxcnowIFcxMCAxcnowIFcxMCAxcnowIDEwTjAgMW9MMCAxME4wIDFvTDAgMTBOMCAxcnowIFcxMCAxcnowIFcxMCAxcnowIDEwTjAgMW9MMCAxME4wIDFvTDAgMTBOMCAxb0wwIDEwTjAgMXJ6MCBXMTAgMXJ6MCBXMTAgMXJ6MCAxME4wIDFvTDAgMTBOMCAxb0wwIDEwTjAgMXJ6MCBXMTAgMXJ6MCBXMTAgMXJ6MCBXMTAgMXJ6MCAxME4wIDFvTDAgMTBOMCAxb0wwIiwKCQkJIkFzaWEvS2FidWx8QUZUIEFGVHwtNDAgLTR1fDAxfC0xMFFzMCIsCgkJCSJBc2lhL0thbWNoYXRrYXxMTVQgUEVUVCBQRVRUIFBFVFNUIFBFVFNUfC1heS5BIC1iMCAtYzAgLWQwIC1jMHwwMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjQxMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjQxMnwtMVNMS3kuQSBpdlh5LkEgMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTjAgSU0wIHJVMCAxY0wwIDFjUTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFOMCBXTTAiLAoJCQkiQXNpYS9LYXJhY2hpfExNVCBJU1QgSVNUIEtBUlQgUEtUIFBLU1R8LTRzLmMgLTV1IC02dSAtNTAgLTUwIC02MHwwMTIxMzQ1NDU0NTR8LTJ4b3NzLmMgMXFPS1cuYyA3elgwIGV1cDAgTHFNdSAxZnkwMSAxY0wwIGRLMFggMTFiMCAxNjEwIDFqWDAiLAoJCQkiQXNpYS9LYXNoZ2FyfExNVCBYSlR8LTVPLmsgLTYwfDAxfC0xR2d0Ty5rIiwKCQkJIkFzaWEvS2F0aG1hbmR1fExNVCBJU1QgTlBUfC01Ri5nIC01dSAtNUp8MDEyfC0yMUpoRi5nIDJFR01iLmciLAoJCQkiQXNpYS9LaGFuZHlnYXxMTVQgWUFLVCBZQUtUIFlBS1NUIFlBS1NUIFZMQVQgVkxBU1QgVkxBVCBZQUtUfC05Mi5kIC04MCAtOTAgLWEwIC05MCAtYTAgLWIwIC1iMCAtYTB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzI0MTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzI1NjU2NTY1NjU2NTY1NjU3ODJ8LTIxUTkyLmQgcEFwMi5kIDIzQ0wwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY04wIElNMCByVTAgMWNMMCAxY1EwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCBxSzAgeU4wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDE3VjAgN3pEMCIsCgkJCSJBc2lhL0tyYXNub3lhcnNrfExNVCBLUkFUIEtSQVQgS1JBU1QgS1JBU1QgS1JBVHwtNmIucSAtNjAgLTcwIC04MCAtNzAgLTgwfDAxMjMyMzIzMjMyMzIzMjMyMzIzMjMyNDEyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzI1MnwtMjFIaWIucSBwckFiLnEgMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTjAgSU0wIHJVMCAxY0wwIDFjUTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgOEh6MCIsCgkJCSJBc2lhL0t1YWxhX0x1bXB1cnxTTVQgTUFMVCBNQUxTVCBNQUxUIE1BTFQgSlNUIE1ZVHwtNlQucCAtNzAgLTdrIC03ayAtN3UgLTkwIC04MHwwMTIzNDU0NnwtMkJnNlQucCAxN2FuVC5wIDdoWEUgZE0wMCAxN2JPIDhGeXUgMXNvMXUiLAoJCQkiQXNpYS9LdWNoaW5nfExNVCBCT1JUIEJPUlQgQk9SVFNUIEpTVCBNWVR8LTdsLmsgLTd1IC04MCAtOGsgLTkwIC04MHwwMTIzMjMyMzIzMjMyMzIzMjQyNXwtMUtJVGwuayBnRGJQLmsgNnludSBBbkUgMU8wayBBbkUgMU5BayBBbkUgMU5BayBBbkUgMU5BayBBbkUgMU8wayBBbkUgMU5BayBBbkUgcEFrIDhGejAgMXNvMTAiLAoJCQkiQXNpYS9LdXdhaXR8TE1UIEFTVHwtM2IuVSAtMzB8MDF8LU1HM2IuVSIsCgkJCSJBc2lhL01hY2FvfExNVCBNT1QgTU9TVCBDU1R8LTd5LmsgLTgwIC05MCAtODB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxM3wtMmxlN3kuayAxWE8zNC5rIDF3bjAgUmQwIDF3bjAgUjl1IDF3cXUgVTEwIDF0ejAgVFZ1IDF0ejAgMTdndSAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNKdSAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjT3UgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNKdSAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgS0VwMCIsCgkJCSJBc2lhL01hZ2FkYW58TE1UIE1BR1QgTUFHVCBNQUdTVCBNQUdTVCBNQUdUfC1hMy5jIC1hMCAtYjAgLWMwIC1iMCAtYzB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzI0MTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjUxfC0xUGNhMy5jIGVVbzMuYyAyM0NMMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNOMCBJTTAgclUwIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCA4SHowIiwKCQkJIkFzaWEvTWFrYXNzYXJ8TE1UIE1NVCBXSVRBIEpTVHwtN1YuQSAtN1YuQSAtODAgLTkwfDAxMjMyfC0yMUpqVi5BIHZmYzAgbXlMVi5BIDhNTDAiLAoJCQkiQXNpYS9NYW5pbGF8UEhUIFBIU1QgSlNUfC04MCAtOTAgLTkwfDAxMDIwMTAxMHwtMWtKSTAgQUwwIGNLMTAgNjVYMCBtWEIwIHZYMCBWSzEwIDFkYjAiLAoJCQkiQXNpYS9NdXNjYXR8TE1UIEdTVHwtM1MubyAtNDB8MDF8LTIxSmZTLm8iLAoJCQkiQXNpYS9OaWNvc2lhfExNVCBFRVQgRUVTVHwtMmQucyAtMjAgLTMwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0xVmMyZC5zIDJhM2NkLnMgMWNMMCAxcXAwIFh6MCAxOUIwIDE5WDAgMWZCMCAxZGIwIDFjcDAgMWNMMCAxZkIwIDE5WDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWZCMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFvMzAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJBc2lhL05vdm9rdXpuZXRza3xMTVQgS1JBVCBLUkFUIEtSQVNUIEtSQVNUIE5PVlNUIE5PVlQgTk9WVHwtNU0uTSAtNjAgLTcwIC04MCAtNzAgLTcwIC02MCAtNzB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzI0MTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzI1NjcyfC0xUGN0TS5NIGVVTE0uTSAyM0NMMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNOMCBJTTAgclUwIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU4wIFdNMCA4SHowIiwKCQkJIkFzaWEvTm92b3NpYmlyc2t8TE1UIE5PVlQgTk9WVCBOT1ZTVCBOT1ZTVHwtNXYuRSAtNjAgLTcwIC04MCAtNzB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzI0MTIzMjM0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDEyMXwtMjFRbnYuRSBwQUZ2LkUgMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTjAgSU0wIHJVMCAxY0wwIDFjUTAgbWwwIE9zMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgOEh6MCIsCgkJCSJBc2lhL09tc2t8TE1UIE9NU1QgT01TVCBPTVNTVCBPTVNTVCBPTVNUfC00Ui51IC01MCAtNjAgLTcwIC02MCAtNzB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzI0MTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjUyfC0yMjRzUi51IHBNTFIudSAyM0NMMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNOMCBJTTAgclUwIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCA4SHowIiwKCQkJIkFzaWEvT3JhbHxMTVQgVVJBVCBVUkFUIFVSQVNUIFVSQVQgVVJBU1QgT1JBVCBPUkFTVCBPUkFUfC0zcC5vIC00MCAtNTAgLTYwIC02MCAtNTAgLTQwIC01MCAtNTB8MDEyMzQzMjMyMzIzMjMyMzIzMjUxNTE2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY4fC0xUGMzcC5vIGVVbnAubyAyM0NMMCAxZGIwIDFjTTAgMWRjMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTjAgMWNNMCAxZkEwIDJVSzAgRnowIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFJXMCIsCgkJCSJBc2lhL1BvbnRpYW5ha3xMTVQgUE1UIFdJQiBKU1QgV0lCIFdJVEEgV0lCfC03aC5rIC03aC5rIC03dSAtOTAgLTgwIC04MCAtNzB8MDEyMzI0MjU2fC0ydWE3aC5rIFhFMDAgbXVuTC5rIDhSYXUgNmtwdSA0UFh1IHhoY3UgV3FudSIsCgkJCSJBc2lhL1B5b25neWFuZ3xMTVQgS1NUIEpDU1QgSlNUIEtTVHwtOG4gLTh1IC05MCAtOTAgLTkwfDAxMjM0fC0ydW04biA5N1hSIDEyRlh1IGpkQTAiLAoJCQkiQXNpYS9RYXRhcnxMTVQgR1NUIEFTVHwtM3EuOCAtNDAgLTMwfDAxMnwtMjFKZnEuOCAyN0JYcS44IiwKCQkJIkFzaWEvUXl6eWxvcmRhfExNVCBLSVpUIEtJWlQgS0laU1QgS0laVCBRWVpUIFFZWlQgUVlaU1R8LTRsLlEgLTQwIC01MCAtNjAgLTYwIC01MCAtNjAgLTcwfDAxMjM0MzIzMjMyMzIzMjMyMzIzMjMyNTY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3NnwtMVBjNGwuUSBlVW9sLlEgMjNDTDAgMWRiMCAxY00wIDFkYzAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAyVUswIGRDMCByVTAgMWNMMCAxY1EwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAiLAoJCQkiQXNpYS9SYW5nb29ufFJNVCBCVVJUIEpTVCBNTVR8LTZvLkUgLTZ1IC05MCAtNnV8MDEyM3wtMjFKaW8uRSBTbW5TLkUgN2o5dSIsCgkJCSJBc2lhL1JpeWFkaHxMTVQgQVNUfC0zNi5RIC0zMHwwMXwtVHZENi5RIiwKCQkJIkFzaWEvU2FraGFsaW58TE1UIEpDU1QgSlNUIFNBS1QgU0FLU1QgU0FLU1QgU0FLVHwtOXUuTSAtOTAgLTkwIC1iMCAtYzAgLWIwIC1hMHwwMTIzNDM0MzQzNDM0MzQzNDM0MzQzNDM1NjM0MzQzNDM0MzQzNTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjM2fC0yQUdWdS5NIDFpYU11Lk0gamUwMCAxcUZhMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNOMCBJTTAgclUwIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8xMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCA4SHowIiwKCQkJIkFzaWEvU2FtYXJrYW5kfExNVCBTQU1UIFNBTVQgU0FNU1QgVEFTVCBVWlNUIFVaVHwtNHIuUiAtNDAgLTUwIC02MCAtNjAgLTYwIC01MHwwMTIzNDMyMzIzMjMyMzIzMjMyMzIzMjM1NnwtMVBjNHIuUiBlVW9yLlIgMjNDTDAgMWRiMCAxY00wIDFkYzAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDExeDAgYmYwIiwKCQkJIkFzaWEvU2VvdWx8TE1UIEtTVCBKQ1NUIEpTVCBLU1QgS0RUIEtEVHwtOHIuUSAtOHUgLTkwIC05MCAtOTAgLTl1IC1hMHwwMTIzNDE1MTUxNTE1MTUxNTE0NjQ2NHwtMnVtOHIuUSA5N1hWLlEgMTJGWHUgampBMCBrS28wIDJJMHUgT0wwIDFGQjAgUmIwIDFxTjAgVFgwIDF0QjAgVFgwIDF0QjAgVFgwIDF0QjAgVFgwIDJhcDAgMTJGQnUgMTFBMCAxbzAwIDExQTAiLAoJCQkiQXNpYS9TaW5nYXBvcmV8U01UIE1BTFQgTUFMU1QgTUFMVCBNQUxUIEpTVCBTR1QgU0dUfC02VC5wIC03MCAtN2sgLTdrIC03dSAtOTAgLTd1IC04MHwwMTIzNDU0Njd8LTJCZzZULnAgMTdhblQucCA3aFhFIGRNMDAgMTdiTyA4Rnl1IE1zcHUgRFRBMCIsCgkJCSJBc2lhL1NyZWRuZWtvbHltc2t8TE1UIE1BR1QgTUFHVCBNQUdTVCBNQUdTVCBNQUdUIFNSRVR8LWFlLlEgLWEwIC1iMCAtYzAgLWIwIC1jMCAtYjB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzI0MTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjU2fC0xUGNhZS5RIGVVb2UuUSAyM0NMMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNOMCBJTTAgclUwIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCA4SHowIiwKCQkJIkFzaWEvVGFpcGVpfEpXU1QgSlNUIENTVCBDRFR8LTgwIC05MCAtODAgLTkwfDAxMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyfC0xaXc4MCBqb00wIDF5bzAgVHowIDFpcDAgMWpYMCAxY04wIDExYjAgMW9OMCAxMWIwIDFvTjAgMTFiMCAxb04wIDExYjAgMTBOMCAxQlgwIDEwcDAgMXB6MCAxMHAwIDFwejAgMTBwMCAxZGIwIDFkZDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxQkIwIE1MMCAxQmQwIE1MMCB1cTEwIDFkYjAgMWNOMCAxZGIwIDk3QjAgQUwwIiwKCQkJIkFzaWEvVGFzaGtlbnR8TE1UIFRBU1QgVEFTVCBUQVNTVCBUQVNTVCBVWlNUIFVaVHwtNEIuYiAtNTAgLTYwIC03MCAtNjAgLTYwIC01MHwwMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjQ1NnwtMVBjNEIuYiBlVW5CLmIgMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDExeTAgYmYwIiwKCQkJIkFzaWEvVGJpbGlzaXxUQk1UIFRCSVQgVEJJVCBUQklTVCBUQklTVCBHRVNUIEdFVCBHRVQgR0VTVHwtMlguYiAtMzAgLTQwIC01MCAtNDAgLTQwIC0zMCAtNDAgLTUwfDAxMjMyMzIzMjMyMzIzMjMyMzIzMjMyNDU2NTY1NjU3ODc4Nzg3ODc4Nzg3ODc4Nzg1Njd8LTFQYzJYLmIgMWpVblguYiBXQ0wwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAzeTAgMTlmMCAxY0swIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY00wIDFjTDAgMWZCMCAzTnowIDExQjAgMW5YMCAxMUIwIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIEFuMCBPczAgV00wIiwKCQkJIkFzaWEvVGVocmFufExNVCBUTVQgSVJTVCBJUlNUIElSRFQgSVJEVHwtM3AuSSAtM3AuSSAtM3UgLTQwIC01MCAtNHV8MDEyMzQzMjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTJ8LTJidERwLkkgMWQzYzAgMWh1TFQuSSBUWHUgMXB6MCBzTjAgdkF1IDFjTDAgMWRCMCAxZW4wIHBOQjAgVUwwIDFjTjAgMWR6MCAxY3AwIDFkejAgMWNwMCAxZHowIDFjcDAgMWR6MCAxY3AwIDFkejAgMWNOMCAxZHowIDFjcDAgMWR6MCAxY3AwIDFkejAgMWNwMCAxZHowIDFjTjAgMWR6MCAxY3AwIDFkejAgMWNwMCAxZHowIDFjcDAgMWR6MCAxY04wIDFkejAgNjRwMCAxZHowIDFjTjAgMWR6MCAxY3AwIDFkejAgMWNwMCAxZHowIDFjcDAgMWR6MCAxY04wIDFkejAgMWNwMCAxZHowIDFjcDAgMWR6MCAxY3AwIDFkejAgMWNOMCAxZHowIDFjcDAgMWR6MCAxY3AwIDFkejAgMWNwMCAxZHowIDFjTjAgMWR6MCAxY3AwIDFkejAgMWNwMCAxZHowIDFjcDAgMWR6MCAxY04wIDFkejAgMWNwMCAxZHowIDFjcDAgMWR6MCAxY3AwIDFkejAgMWNwMCAxZHowIDFjTjAgMWR6MCAxY3AwIDFkejAgMWNwMCAxZHowIDFjcDAgMWR6MCAxY04wIDFkejAgMWNwMCAxZHowIDFjcDAgMWR6MCAxY3AwIDFkejAiLAoJCQkiQXNpYS9UaGltYnV8TE1UIElTVCBCVFR8LTVXLkEgLTV1IC02MHwwMTJ8LVN1NVcuQSAxQkdNcy5BIiwKCQkJIkFzaWEvVG9reW98SkNTVCBKU1QgSkRUfC05MCAtOTAgLWEwfDAxMjEyMTIxMjF8LTFpdzkwIHBLcTAgUUwwIDFsQjAgMTNYMCAxekIwIE5YMCAxekIwIE5YMCIsCgkJCSJBc2lhL1VsYWFuYmFhdGFyfExNVCBVTEFUIFVMQVQgVUxBU1R8LTc3LncgLTcwIC04MCAtOTB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzJ8LTJBUEg3LncgMlVrbzcudyBjS24wIDFkYjAgMWRkMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWZCMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgNmhEMCAxMXowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAiLAoJCQkiQXNpYS9Vc3QtTmVyYXxMTVQgWUFLVCBZQUtUIE1BR1NUIE1BR1QgTUFHU1QgTUFHVCBNQUdUIFZMQVQgVkxBVHwtOXcuUyAtODAgLTkwIC1jMCAtYjAgLWIwIC1hMCAtYzAgLWIwIC1hMHwwMTIzNDM0MzQzNDM0MzQzNDM0MzQzNDU2NDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0Nzg5fC0yMVE5dy5TIHBBcHcuUyAyM0NMMCAxZDkwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNOMCBJTTAgclUwIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxN1YwIDd6RDAiLAoJCQkiQXNpYS9WbGFkaXZvc3Rva3xMTVQgVkxBVCBWTEFUIFZMQVNUIFZMQVNUIFZMQVR8LThMLnYgLTkwIC1hMCAtYjAgLWEwIC1iMHwwMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjQxMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyNTJ8LTFTSklMLnYgaXRYTC52IDIzQ0wwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY04wIElNMCByVTAgMWNMMCAxY1EwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDhIejAiLAoJCQkiQXNpYS9ZYWt1dHNrfExNVCBZQUtUIFlBS1QgWUFLU1QgWUFLU1QgWUFLVHwtOEMuVyAtODAgLTkwIC1hMCAtOTAgLWEwfDAxMjMyMzIzMjMyMzIzMjMyMzIzMjMyNDEyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzI1MnwtMjFROEMuVyBwQW9DLlcgMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTjAgSU0wIHJVMCAxY0wwIDFjUTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgOEh6MCIsCgkJCSJBc2lhL1lla2F0ZXJpbmJ1cmd8TE1UIFBNVCBTVkVUIFNWRVQgU1ZFU1QgU1ZFU1QgWUVLVCBZRUtTVCBZRUtUfC00Mi54IC0zSi41IC00MCAtNTAgLTYwIC01MCAtNTAgLTYwIC02MHwwMTIzNDM0MzQzNDM0MzQzNDM0MzQzNDM1MjY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njg2fC0yYWc0Mi54IDdtUWgucyBxQnZKLjUgMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTjAgSU0wIHJVMCAxY0wwIDFjUTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgOEh6MCIsCgkJCSJBc2lhL1llcmV2YW58TE1UIFlFUlQgWUVSVCBZRVJTVCBZRVJTVCBBTVNUIEFNVCBBTVQgQU1TVHwtMlcgLTMwIC00MCAtNTAgLTQwIC00MCAtMzAgLTQwIC01MHwwMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjQ1NjU2NTY1NjU3ODc4Nzg3ODc4Nzg3ODc4Nzg3ODc4Nzg3ODc4Nzg3fC0xUGMyVyAxalVuVyBXQ0wwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxYW0wIDJyMCAxY0owIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgM0ZiMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAiLAoJCQkiQXRsYW50aWMvQXpvcmVzfEhNVCBBWk9UIEFaT1NUIEFaT01UIEFaT1QgQVpPU1QgV0VUfDFTLncgMjAgMTAgMCAxMCAwIDB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMzIxMjMyMTIzMjEyMzIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjE0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTY1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTR8LTJsZFc1LnMgYVBYNS5zIFNwMCBMWDAgMXZjMCBUYzAgMXVNMCBTTTAgMXZjMCBUYzAgMXZjMCBTTTAgMXZjMCA2NjAwIDFjbzAgM0UwMCAxN2MwIDFmQTAgMWEwMCAxaW8wIDFhMDAgMWlvMCAxN2MwIDNJMDAgMTdjMCAxY00wIDFjTTAgM0ZjMCAxY00wIDFhMDAgMWZBMCAxaW8wIDE3YzAgMWNNMCAxY00wIDFhMDAgMWZBMCAxaW8wIDFxTTAgRGMwIDF0QTAgMWNNMCAxZGMwIDE0MDAgZ0wwIElNMCBzMTAgVTAwIGRYMCBSYzAgcGQwIFJjMCBnTDAgT28wIHBkMCBSYzAgZ0wwIE9vMCBwZDAgMTRvMCAxY00wIDFjUDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDNDbzAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgcUlsMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTjAgMWNMMCAxY04wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNOMCAxY0wwIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiQXRsYW50aWMvQmVybXVkYXxMTVQgQVNUIEFEVHw0ai5pIDQwIDMwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTFCblJFLkcgMUxUYkUuRyAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQXRsYW50aWMvQ2FuYXJ5fExNVCBDQU5UIFdFVCBXRVNUfDExLkEgMTAgMCAtMTB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzJ8LTFVdGFXLm8gWFBBVy5vIDFsQUswIDFhMTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJBdGxhbnRpYy9DYXBlX1ZlcmRlfExNVCBDVlQgQ1ZTVCBDVlR8MXkuNCAyMCAxMCAxMHwwMTIxM3wtMnhvbXAuVSAxcU9NcC5VIDd6WDAgMWRqZjAiLAoJCQkiQXRsYW50aWMvRmFlcm9lfExNVCBXRVQgV0VTVHxyLjQgMCAtMTB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJ1U253LlUgMldnb3cuVSAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJBdGxhbnRpYy9NYWRlaXJhfEZNVCBNQURUIE1BRFNUIE1BRE1UIFdFVCBXRVNUfDE3LkEgMTAgMCAtMTAgMCAtMTB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMzIxMjMyMTIzMjEyMzIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjE0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTR8LTJsZFdRLm8gYVBXUS5vIFNwMCBMWDAgMXZjMCBUYzAgMXVNMCBTTTAgMXZjMCBUYzAgMXZjMCBTTTAgMXZjMCA2NjAwIDFjbzAgM0UwMCAxN2MwIDFmQTAgMWEwMCAxaW8wIDFhMDAgMWlvMCAxN2MwIDNJMDAgMTdjMCAxY00wIDFjTTAgM0ZjMCAxY00wIDFhMDAgMWZBMCAxaW8wIDE3YzAgMWNNMCAxY00wIDFhMDAgMWZBMCAxaW8wIDFxTTAgRGMwIDF0QTAgMWNNMCAxZGMwIDE0MDAgZ0wwIElNMCBzMTAgVTAwIGRYMCBSYzAgcGQwIFJjMCBnTDAgT28wIHBkMCBSYzAgZ0wwIE9vMCBwZDAgMTRvMCAxY00wIDFjUDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDNDbzAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgcUlsMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTjAgMWNMMCAxY04wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNOMCAxY0wwIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiQXRsYW50aWMvUmV5a2phdmlrfFJNVCBJU1QgSVNTVCBHTVR8MXIuTSAxMCAwIDB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTN8LTJ1V213LmMgbWZhdy5jIDFCZDAgTUwwIDFMQjAgTkxYMCAxcGUwIHpkMCAxRUwwIExBMCAxQzAwIE9vMCAxd28wIFJjMCAxd28wIFJjMCAxd28wIFJjMCAxemMwIE9vMCAxemMwIDE0bzAgMWxjMCAxNG8wIDFsYzAgMTRvMCAxbzAwIDExQTAgMWxjMCAxNG8wIDFvMDAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxNG8wIDFsYzAgMTRvMCAxbGMwIDE0bzAgMW8wMCAxNG8wIDFsYzAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxNG8wIDFsYzAgMTRvMCAxbGMwIDE0bzAgMW8wMCAxNG8wIDFsYzAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxNG8wIDFsYzAgMTRvMCAxbzAwIDE0bzAiLAoJCQkiQXRsYW50aWMvU291dGhfR2VvcmdpYXxHU1R8MjB8MHwiLAoJCQkiQXRsYW50aWMvU3RhbmxleXxTTVQgRktUIEZLU1QgRktUIEZLU1R8M1AubyA0MCAzMCAzMCAyMHwwMTIxMjEyMTIxMjEyMTM0MzQzMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyfC0ya0p3OC5BIDEyYkE4LkEgMTlYMCAxZkIwIDE5WDAgMWlwMCAxOVgwIDFmQjAgMTlYMCAxZkIwIDE5WDAgMWZCMCBDbjAgMUNjMTAgV0wwIDFxTDAgVTEwIDF0ejAgVTEwIDFxTTAgV04wIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgV04wIDF0ejAgVTEwIDF0ejAgV04wIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgV04wIDF0ejAgV04wIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgV04wIDFxTjAgVTEwIDF3bjAgUmQwIDF3bjAgVTEwIDF0ejAgVTEwIDF0ejAgVTEwIDF0ejAgVTEwIDF0ejAgVTEwIDF3bjAgVTEwIDF0ejAgVTEwIDF0ejAgVTEwIiwKCQkJIkF1c3RyYWxpYS9BQ1R8QUVTVCBBRURUfC1hMCAtYjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMXwtMjkzbFggeGNYIDEwamQwIHlMMCAxY04wIDFjTDAgMWZCMCAxOVgwIDE3YzEwIExBMCAxQzAwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIFJjMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIDE0bzAgMW8wMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBVMDAgMXFNMCBXTTAgMXRBMCBXTTAgMXRBMCBVMDAgMXRBMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBSYzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDExQTAgMW8wMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCBXTTAgMXFNMCAxNG8wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCIsCgkJCSJBdXN0cmFsaWEvQWRlbGFpZGV8QUNTVCBBQ0RUfC05dSAtYXV8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMXwtMjkzbHQgeGNYIDEwamQwIHlMMCAxY04wIDFjTDAgMWZCMCAxOVgwIDE3YzEwIExBMCAxQzAwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIFJjMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIFJjMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIFUwMCAxcU0wIFdNMCAxdEEwIFdNMCAxdEEwIFUwMCAxdEEwIFUwMCAxdEEwIE9vMCAxemMwIFdNMCAxcU0wIFJjMCAxemMwIFUwMCAxdEEwIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgV00wIDFxTTAgMTRvMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAiLAoJCQkiQXVzdHJhbGlhL0JyaXNiYW5lfEFFU1QgQUVEVHwtYTAgLWIwfDAxMDEwMTAxMDEwMTAxMDEwfC0yOTNsWCB4Y1ggMTBqZDAgeUwwIDFjTjAgMWNMMCAxZkIwIDE5WDAgMTdjMTAgTEEwIEgxQTAgT28wIDF6YzAgT28wIDF6YzAgT28wIiwKCQkJIkF1c3RyYWxpYS9Ccm9rZW5fSGlsbHxBQ1NUIEFDRFR8LTl1IC1hdXwwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxfC0yOTNsdCB4Y1ggMTBqZDAgeUwwIDFjTjAgMWNMMCAxZkIwIDE5WDAgMTdjMTAgTEEwIDFDMDAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgUmMwIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgMTRvMCAxbzAwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIFUwMCAxcU0wIFdNMCAxdEEwIFdNMCAxdEEwIFUwMCAxdEEwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIFJjMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgV00wIDFxTTAgMTRvMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAiLAoJCQkiQXVzdHJhbGlhL0N1cnJpZXxBRVNUIEFFRFR8LWEwIC1iMHwwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxfC0yOUU4MCAxOVgwIDEwamQwIHlMMCAxY04wIDFjTDAgMWZCMCAxOVgwIDE3YzEwIExBMCAxQzAwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIFJjMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIDExQTAgMXFNMCBXTTAgMXFNMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXdvMCBXTTAgMXRBMCBXTTAgMXRBMCBVMDAgMXRBMCBVMDAgMXRBMCAxMUEwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFjTTAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDExQTAgMW8wMCAxaW8wIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFjTTAgMWEwMCAxaW8wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIiwKCQkJIkF1c3RyYWxpYS9EYXJ3aW58QUNTVCBBQ0RUfC05dSAtYXV8MDEwMTAxMDEwfC0yOTNsdCB4Y1ggMTBqZDAgeUwwIDFjTjAgMWNMMCAxZkIwIDE5WDAiLAoJCQkiQXVzdHJhbGlhL0V1Y2xhfEFDV1NUIEFDV0RUfC04SiAtOUp8MDEwMTAxMDEwMTAxMDEwMTAxMHwtMjkza0kgeGNYIDEwamQwIHlMMCAxY04wIDFjTDAgMWdTcDAgT28wIGw1QTAgT28wIGlKQTAgRzAwIHpVMDAgSU0wIDFxTTAgMTFBMCAxbzAwIDExQTAiLAoJCQkiQXVzdHJhbGlhL0hvYmFydHxBRVNUIEFFRFR8LWEwIC1iMHwwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDF8LTI5RTgwIDE5WDAgMTBqZDAgeUwwIDFjTjAgMWNMMCAxZkIwIDE5WDAgVmZCMCAxY00wIDFvMDAgUmMwIDF3bzAgUmMwIDF3bzAgVTAwIDF3bzAgTEEwIDFDMDAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgUmMwIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgMTFBMCAxcU0wIFdNMCAxcU0wIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxd28wIFdNMCAxdEEwIFdNMCAxdEEwIFUwMCAxdEEwIFUwMCAxdEEwIDExQTAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWNNMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMTFBMCAxbzAwIDFpbzAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFjTTAgMWNNMCAxYTAwIDFpbzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAiLAoJCQkiQXVzdHJhbGlhL0xISXxBRVNUIExIU1QgTEhEVCBMSERUfC1hMCAtYXUgLWJ1IC1iMHwwMTIxMjEyMTIxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzfHJhQzAgMXpkdSBSYjAgMXpkMCBPbjAgMXpkMCBPbjAgMXpkMCBPbjAgMXpkMCBUWHUgMXFNdSBXTHUgMXRBdSBXTHUgMXRBdSBUWHUgMXRBdSBPbnUgMXpjdSBPbnUgMXpjdSBPbnUgMXpjdSBSYnUgMXpjdSBPbnUgMXpjdSBPbnUgMXpjdSAxMXp1IDFvMHUgMTF6dSAxbzB1IDExenUgMW8wdSAxMXp1IDFxTXUgV0x1IDExQXUgMW5YdSAxcU11IDExenUgMW8wdSAxMXp1IDFvMHUgMTF6dSAxcU11IFdMdSAxcU11IDExenUgMW8wdSBXTHUgMXFNdSAxNG51IDFjTXUgMWNMdSAxY011IDFjTHUgMWNNdSAxY0x1IDFjTXUgMWNMdSAxZkF1IDFjTHUgMWNNdSAxY0x1IDFjTXUgMWNMdSAxY011IDFjTHUgMWNNdSAxY0x1IDFjTXUgMWNMdSAxZkF1IDFjTHUgMWNNdSAxY0x1IDFjTXUgMWNMdSAxY011IDFjTHUgMWNNdSAxY0x1IDFjTXUgMWZ6dSAxY011IDFjTHUgMWNNdSAxY0x1IDFjTXUgMWNMdSAxY011IDFjTHUgMWNNdSAxY0x1IDFmQXUgMWNMdSAxY011IDFjTHUgMWNNdSAxY0x1IDFjTXUgMWNMdSAxY011IDFjTHUgMWNNdSAxY0x1IDFmQXUgMWNMdSAxY011IDFjTHUgMWNNdSIsCgkJCSJBdXN0cmFsaWEvTGluZGVtYW58QUVTVCBBRURUfC1hMCAtYjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yOTNsWCB4Y1ggMTBqZDAgeUwwIDFjTjAgMWNMMCAxZkIwIDE5WDAgMTdjMTAgTEEwIEgxQTAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgUmMwIDF6YzAgT28wIiwKCQkJIkF1c3RyYWxpYS9NZWxib3VybmV8QUVTVCBBRURUfC1hMCAtYjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMXwtMjkzbFggeGNYIDEwamQwIHlMMCAxY04wIDFjTDAgMWZCMCAxOVgwIDE3YzEwIExBMCAxQzAwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIFJjMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIFJjMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIFUwMCAxcU0wIFdNMCAxcU0wIDExQTAgMXRBMCBVMDAgMXRBMCBVMDAgMXRBMCBPbzAgMXpjMCBPbzAgMXpjMCBSYzAgMXpjMCBPbzAgMXpjMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDExQTAgMW8wMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCBXTTAgMXFNMCAxNG8wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCIsCgkJCSJBdXN0cmFsaWEvUGVydGh8QVdTVCBBV0RUfC04MCAtOTB8MDEwMTAxMDEwMTAxMDEwMTAxMHwtMjkzalggeGNYIDEwamQwIHlMMCAxY04wIDFjTDAgMWdTcDAgT28wIGw1QTAgT28wIGlKQTAgRzAwIHpVMDAgSU0wIDFxTTAgMTFBMCAxbzAwIDExQTAiLAoJCQkiQ0VUfENFVCBDRVNUfC0xMCAtMjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTJhRmUwIDExZDAgMWlPMCAxMUEwIDFvMDAgMTFBMCBRcmMwIDZpMDAgV00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMTZNMCAxZ01NMCAxYTAwIDFmQTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxYTAwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiQ1NUNkNEVHxDU1QgQ0RUIENXVCBDUFR8NjAgNTAgNTAgNTB8MDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yNjFzMCAxblgwIDExQjAgMW5YMCBTZ04wIDh4MzAgaXcwIFF3TjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCBzMTAgMVZ6MCBMQjAgMUJYMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiQ2hpbGUvRWFzdGVySXNsYW5kfEVNVCBFQVNTVCBFQVNUIEVBU1QgRUFTU1R8N2gucyA2MCA3MCA2MCA1MHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzR8LTF1U2dHLncgbkhVRy53IG9wMCA5VUswIFJYQjAgV0wwIDF6ZDAgT24wIDFpcDAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMWxkMCAxNG4wIDFxTjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIFdMMCAxcU4wIDFjTDAgMWNOMCAxMXowIDFsZDAgMTRuMCAxcU4wIDExejAgMWNOMCAxOVgwIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDE3YjAgMWlwMCAxMXowIDFpcDAgMWZ6MCAxZkIwIDExejAgMXFOMCBXTDAgMXFOMCBXTDAgMXFOMCBXTDAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMXFOMCAxN2IwIDFpcDAgMTF6MCAxbzEwIDE5WDAgMWZCMCAxblgwIEcxMCAxRUwwIE9wMCAxemIwIFJkMCAxd24wIFJkMCAxd24wIFJkMCAxd24wIFJkMCAxd24wIFJkMCAxemIwIE9wMCAxemIwIFJkMCAxd24wIFJkMCAxd24wIFJkMCAxd24wIFJkMCAxd24wIFJkMCAxemIwIFJkMCAxd24wIFJkMCAxd24wIFJkMCAxd24wIFJkMCAxd24wIFJkMCAxemIwIE9wMCAxemIwIFJkMCAxd24wIFJkMCAxd24wIFJkMCAxd24wIFJkMCAxd24wIFJkMCAxemIwIE9wMCAxemIwIFJkMCAxd24wIFJkMCIsCgkJCSJFRVR8RUVUIEVFU1R8LTIwIC0zMHwwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8aERCMCAxYTAwIDFmQTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxYTAwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiRVNUfEVTVHw1MHwwfCIsCgkJCSJFU1Q1RURUfEVTVCBFRFQgRVdUIEVQVHw1MCA0MCA0MCA0MHwwMTAxMDIzMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTI2MXQwIDFuWDAgMTFCMCAxblgwIFNnTjAgOHg0MCBpdjAgUXdOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVnowIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCIsCgkJCSJFaXJlfERNVCBJU1QgR01UIEJTVCBJU1R8cC5sIC15LkQgMCAtMTAgLTEwfDAxMjMyMzIzMjMyMzI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyfC0yYXg5eS5EIFJjMCAxZnp5LkQgMTRNMCAxZmMwIDFnMDAgMWNvMCAxZGMwIDFjbzAgMW9vMCAxNDAwIDFkYzAgMTlBMCAxaW8wIDFpbzAgV00wIDFvMDAgMTRvMCAxbzAwIDE3YzAgMWlvMCAxN2MwIDFmQTAgMWEwMCAxbGMwIDE3YzAgMWlvMCAxN2MwIDFmQTAgMWEwMCAxaW8wIDE3YzAgMWlvMCAxN2MwIDFmQTAgMWNNMCAxaW8wIDE3YzAgMWZBMCAxYTAwIDFpbzAgMTdjMCAxaW8wIDE3YzAgMWZBMCAxYTAwIDFpbzAgMXFNMCBEYzAgZzVYMCAxNHAwIDF3bjAgMTdkMCAxaW8wIDExQTAgMW8wMCAxN2MwIDFmQTAgMWEwMCAxZkEwIDFjTTAgMWZBMCAxYTAwIDE3YzAgMWZBMCAxYTAwIDFpbzAgMTdjMCAxbGMwIDE3YzAgMWZBMCAxYTAwIDFpbzAgMTdjMCAxaW8wIDE3YzAgMWZBMCAxYTAwIDFhMDAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDF0QTAgSU0wIDkwbzAgVTAwIDF0QTAgVTAwIDF0QTAgVTAwIDF0QTAgVTAwIDF0QTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDF0QTAgVTAwIDF0QTAgVTAwIDF0QTAgMTF6MCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxNG8wIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIkV0Yy9HTVQrMHxHTVR8MHwwfCIsCgkJCSJFdGMvR01UKzF8R01UKzF8MTB8MHwiLAoJCQkiRXRjL0dNVCsxMHxHTVQrMTB8YTB8MHwiLAoJCQkiRXRjL0dNVCsxMXxHTVQrMTF8YjB8MHwiLAoJCQkiRXRjL0dNVCsxMnxHTVQrMTJ8YzB8MHwiLAoJCQkiRXRjL0dNVCsyfEdNVCsyfDIwfDB8IiwKCQkJIkV0Yy9HTVQrM3xHTVQrM3wzMHwwfCIsCgkJCSJFdGMvR01UKzR8R01UKzR8NDB8MHwiLAoJCQkiRXRjL0dNVCs1fEdNVCs1fDUwfDB8IiwKCQkJIkV0Yy9HTVQrNnxHTVQrNnw2MHwwfCIsCgkJCSJFdGMvR01UKzd8R01UKzd8NzB8MHwiLAoJCQkiRXRjL0dNVCs4fEdNVCs4fDgwfDB8IiwKCQkJIkV0Yy9HTVQrOXxHTVQrOXw5MHwwfCIsCgkJCSJFdGMvR01ULTF8R01ULTF8LTEwfDB8IiwKCQkJIkV0Yy9HTVQtMTB8R01ULTEwfC1hMHwwfCIsCgkJCSJFdGMvR01ULTExfEdNVC0xMXwtYjB8MHwiLAoJCQkiRXRjL0dNVC0xMnxHTVQtMTJ8LWMwfDB8IiwKCQkJIkV0Yy9HTVQtMTN8R01ULTEzfC1kMHwwfCIsCgkJCSJFdGMvR01ULTE0fEdNVC0xNHwtZTB8MHwiLAoJCQkiRXRjL0dNVC0yfEdNVC0yfC0yMHwwfCIsCgkJCSJFdGMvR01ULTN8R01ULTN8LTMwfDB8IiwKCQkJIkV0Yy9HTVQtNHxHTVQtNHwtNDB8MHwiLAoJCQkiRXRjL0dNVC01fEdNVC01fC01MHwwfCIsCgkJCSJFdGMvR01ULTZ8R01ULTZ8LTYwfDB8IiwKCQkJIkV0Yy9HTVQtN3xHTVQtN3wtNzB8MHwiLAoJCQkiRXRjL0dNVC04fEdNVC04fC04MHwwfCIsCgkJCSJFdGMvR01ULTl8R01ULTl8LTkwfDB8IiwKCQkJIkV0Yy9VQ1R8VUNUfDB8MHwiLAoJCQkiRXRjL1VUQ3xVVEN8MHwwfCIsCgkJCSJFdXJvcGUvQW1zdGVyZGFtfEFNVCBOU1QgTkVTVCBORVQgQ0VTVCBDRVR8LWoudyAtMWoudyAtMWsgLWsgLTIwIC0xMHwwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTIzMjMyMzQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDV8LTJhRmNqLncgMTFiMCAxaVAwIDExQTAgMWlvMCAxY00wIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFjbzAgMWlvMCAxeW8wIFBjMCAxYTAwIDFmQTAgMUJjMCBNbzAgMXRjMCBVbzAgMXRBMCBVMDAgMXVvMCBXMDAgMXMwMCBWQTAgMXNvMCBWYzAgMXNNMCBVTTAgMXdvMCBSYzAgMXUwMCBXbzAgMXJBMCBXMDAgMXMwMCBWQTAgMXNNMCBVTTAgMXcwMCBmVjAgQkNYLncgMXRBMCBVMDAgMXUwMCBXbzAgMXNtMCA2MDFrIFdNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDE2TTAgMWdNTTAgMWEwMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFmQTAgMWEwMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIkV1cm9wZS9BbmRvcnJhfFdFVCBDRVQgQ0VTVHwwIC0xMCAtMjB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC1VQkEwIDF4SU4wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiRXVyb3BlL0F0aGVuc3xBTVQgRUVUIEVFU1QgQ0VTVCBDRVR8LTF5LlEgLTIwIC0zMCAtMjAgLTEwfDAxMjEyMzQzNDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMmE2MXguUSBDTmJ4LlEgbW4wIGtVMTAgOWIwIDNFczAgWGEwIDFmYjAgMWRkMCBrM1gwIE56MCBTQ3AwIDF2YzAgU08wIDFjTTAgMWEwMCAxYW8wIDFmYzAgMWExMCAxZkcwIDFjZzAgMWRYMCAxYlgwIDFjUTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiRXVyb3BlL0JlbGZhc3R8R01UIEJTVCBCRFNUfDAgLTEwIC0yMHwwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTIxMjEyMTIxMjEwMTAxMjEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yYXhhMCBSYzAgMWZBMCAxNE0wIDFmYzAgMWcwMCAxY28wIDFkYzAgMWNvMCAxb28wIDE0MDAgMWRjMCAxOUEwIDFpbzAgMWlvMCBXTTAgMW8wMCAxNG8wIDFvMDAgMTdjMCAxaW8wIDE3YzAgMWZBMCAxYTAwIDFsYzAgMTdjMCAxaW8wIDE3YzAgMWZBMCAxYTAwIDFpbzAgMTdjMCAxaW8wIDE3YzAgMWZBMCAxY00wIDFpbzAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxN2MwIDFpbzAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxcU0wIERjMCAyUnowIERjMCAxemMwIE9vMCAxemMwIFJjMCAxd28wIDE3YzAgMWlNMCBGQTAgeEIwIDFmQTAgMWEwMCAxNG8wIGJiMCBMQTAgeEIwIFJjMCAxd28wIDExQTAgMW8wMCAxN2MwIDFmQTAgMWEwMCAxZkEwIDFjTTAgMWZBMCAxYTAwIDE3YzAgMWZBMCAxYTAwIDFpbzAgMTdjMCAxbGMwIDE3YzAgMWZBMCAxYTAwIDFpbzAgMTdjMCAxaW8wIDE3YzAgMWZBMCAxYTAwIDFhMDAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDF0QTAgSU0wIDkwbzAgVTAwIDF0QTAgVTAwIDF0QTAgVTAwIDF0QTAgVTAwIDF0QTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDF0QTAgVTAwIDF0QTAgVTAwIDF0QTAgMTF6MCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxNG8wIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIkV1cm9wZS9CZWxncmFkZXxDRVQgQ0VTVHwtMTAgLTIwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0xOVJDMCAzSVAwIFdNMCAxZkEwIDFjTTAgMWNNMCAxcmMwIFFvMCAxdm1vMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiRXVyb3BlL0JlcmxpbnxDRVQgQ0VTVCBDRU1UfC0xMCAtMjAgLTMwfDAxMDEwMTAxMDEwMTAxMjEwMTAxMjEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yYUZlMCAxMWQwIDFpTzAgMTFBMCAxbzAwIDExQTAgUXJjMCA2aTAwIFdNMCAxZkEwIDFjTTAgMWNNMCAxY00wIGtMMCBOYzAgbTEwIFdNMCAxYW8wIDFjcDAgZFgwIGp6MCBEZDAgMWlvMCAxN2MwIDFmQTAgMWEwMCAxZWhBMCAxYTAwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiRXVyb3BlL0JyYXRpc2xhdmF8Q0VUIENFU1R8LTEwIC0yMHwwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTJhRmUwIDExZDAgMWlPMCAxMUEwIDFvMDAgMTFBMCBRcmMwIDZpMDAgV00wIDFmQTAgMWNNMCAxNk0wIDFsYzAgMXRBMCAxN0EwIDExYzAgMWlvMCAxN2MwIDFpbzAgMTdjMCAxZmMwIDFhbzAgMWJOYzAgMWNNMCAxZkEwIDFhMDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJFdXJvcGUvQnJ1c3NlbHN8V0VUIENFVCBDRVNUIFdFU1R8MCAtMTAgLTIwIC0xMHwwMTIxMjEyMTAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0yZWhjMCAzelgwIDExYzAgMWlPMCAxMUEwIDFvMDAgMTFBMCBteTAgSWMwIDFxTTAgUmMwIDFFTTAgVU0wIDF1MDAgMTBvMCAxaW8wIDFpbzAgMTdjMCAxYTAwIDFmQTAgMWNNMCAxY00wIDFpbzAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxYTMwIDFpbzAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxN2MwIDFjTTAgMWNNMCAxYTAwIDFpbzAgMWNNMCAxY00wIDFhMDAgMWZBMCAxaW8wIDE3YzAgMWNNMCAxY00wIDFhMDAgMWZBMCAxaW8wIDFxTTAgRGMwIHkwMCA1V24wIFdNMCAxZkEwIDFjTTAgMTZNMCAxaU0wIDE2TTAgMUMwMCBVbzAgMWVlbzAgMWEwMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFmQTAgMWEwMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIkV1cm9wZS9CdWNoYXJlc3R8Qk1UIEVFVCBFRVNUfC0xSS5vIC0yMCAtMzB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMXhBcEkubyAyMExJLm8gUkEwIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxQXhjMCBPbjAgMWZBMCAxYTEwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY0swIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTDAgMWNOMCAxY0wwIDFmQjAgMW5YMCAxMUUwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiRXVyb3BlL0J1ZGFwZXN0fENFVCBDRVNUfC0xMCAtMjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMmFGZTAgMTFkMCAxaU8wIDExQTAgMWlwMCAxN2IwIDFvcDAgMXRiMCBRMm0wIDNOZTAgV00wIDFmQTAgMWNNMCAxY00wIDFvSjAgMWRjMCAxMDMwIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFhMDAgMWlNMCAxZkEwIDhIYTAgUmIwIDF3TjAgUmIwIDFCQjAgTHowIDFDMjAgTEIwIFNOWDAgMWExMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIkV1cm9wZS9CdXNpbmdlbnxDRVQgQ0VTVHwtMTAgLTIwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0xOUxjMCAxMUEwIDFvMDAgMTFBMCAxeEcxMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJFdXJvcGUvQ2hpc2luYXV8Q01UIEJNVCBFRVQgRUVTVCBDRVNUIENFVCBNU0sgTVNEfC0xVCAtMUkubyAtMjAgLTMwIC0yMCAtMTAgLTMwIC00MHwwMTIzMjMyMzIzMjMyMzIzMjMyMzQ1NDU0Njc2NzY3Njc2NzY3Njc2NzY3NjIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyfC0yNmpkVCB3R01hLkEgMjBMSS5vIFJBMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMjdBMCAyZW4wIDM5ZzAgV00wIDFmQTAgMWNNMCBWOTAgMXQ3ejAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDF0eTAgMmJEMCAxY00wIDFjSzAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxZkIwIDFuWDAgMTFFMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIkV1cm9wZS9Db3BlbmhhZ2VufENFVCBDRVNUfC0xMCAtMjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMmF6QzAgVHowIFZ1TzAgNjBxMCBXTTAgMWZBMCAxY00wIDFjTTAgMWNNMCBTMDAgMUhBMCBOYzAgMUMwMCBEYzAgMU5jMCBBbzAgMWg1QTAgMWEwMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIkV1cm9wZS9HaWJyYWx0YXJ8R01UIEJTVCBCRFNUIENFVCBDRVNUfDAgLTEwIC0yMCAtMTAgLTIwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMjEyMTIxMjEyMTAxMDEyMTAxMDEwMTAxMDEwMTAxMDEwMTAzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0M3wtMmF4YTAgUmMwIDFmQTAgMTRNMCAxZmMwIDFnMDAgMWNvMCAxZGMwIDFjbzAgMW9vMCAxNDAwIDFkYzAgMTlBMCAxaW8wIDFpbzAgV00wIDFvMDAgMTRvMCAxbzAwIDE3YzAgMWlvMCAxN2MwIDFmQTAgMWEwMCAxbGMwIDE3YzAgMWlvMCAxN2MwIDFmQTAgMWEwMCAxaW8wIDE3YzAgMWlvMCAxN2MwIDFmQTAgMWNNMCAxaW8wIDE3YzAgMWZBMCAxYTAwIDFpbzAgMTdjMCAxaW8wIDE3YzAgMWZBMCAxYTAwIDFpbzAgMXFNMCBEYzAgMlJ6MCBEYzAgMXpjMCBPbzAgMXpjMCBSYzAgMXdvMCAxN2MwIDFpTTAgRkEwIHhCMCAxZkEwIDFhMDAgMTRvMCBiYjAgTEEwIHhCMCBSYzAgMXdvMCAxMUEwIDFvMDAgMTdjMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFmQTAgMWEwMCAxN2MwIDFmQTAgMWEwMCAxaW8wIDE3YzAgMWxjMCAxN2MwIDFmQTAgMTBKejAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJFdXJvcGUvSGVsc2lua2l8SE1UIEVFVCBFRVNUfC0xRC5OIC0yMCAtMzB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMVd1TkQuTiBPVUxELk4gMWRBMCAxeEdxMCAxY00wIDFjTTAgMWNNMCAxY04wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJFdXJvcGUvS2FsaW5pbmdyYWR8Q0VUIENFU1QgQ0VUIENFU1QgTVNLIE1TRCBFRVNUIEVFVCBGRVR8LTEwIC0yMCAtMjAgLTMwIC0zMCAtNDAgLTMwIC0yMCAtMzB8MDEwMTAxMDEwMTAxMDIzMjQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc4N3wtMmFGZTAgMTFkMCAxaU8wIDExQTAgMW8wMCAxMUEwIFFyYzAgNmkwMCBXTTAgMWZBMCAxY00wIDFjTTAgQW0wIExiMCAxZW4wIG9wMCAxcE56MCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNOMCAxY0owIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCA4SHowIiwKCQkJIkV1cm9wZS9LaWV2fEtNVCBFRVQgTVNLIENFU1QgQ0VUIE1TRCBFRVNUfC0yMi40IC0yMCAtMzAgLTIwIC0xMCAtNDAgLTMwfDAxMjM0MzQyNTI1MjUyNTI1MjUyNTI1MjUyNTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjF8LTFQYzIyLjQgZVVvMi40IHJuejAgMkhnMCBXTTAgMWZBMCBkYTAgMXY0bTAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgRGIwIDMyMjAgMWNLMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNRMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiRXVyb3BlL0xpc2JvbnxMTVQgV0VUIFdFU1QgV0VNVCBDRVQgQ0VTVHxBLkogMCAtMTAgLTIwIC0xMCAtMjB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMzIxMjMyMTIzMjEyMzIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjE0MTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTI0NTQ1NDU0MjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0ybGRYbi5mIGFQV24uZiBTcDAgTFgwIDF2YzAgVGMwIDF1TTAgU00wIDF2YzAgVGMwIDF2YzAgU00wIDF2YzAgNjYwMCAxY28wIDNFMDAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxYTAwIDFpbzAgMTdjMCAzSTAwIDE3YzAgMWNNMCAxY00wIDNGYzAgMWNNMCAxYTAwIDFmQTAgMWlvMCAxN2MwIDFjTTAgMWNNMCAxYTAwIDFmQTAgMWlvMCAxcU0wIERjMCAxdEEwIDFjTTAgMWRjMCAxNDAwIGdMMCBJTTAgczEwIFUwMCBkWDAgUmMwIHBkMCBSYzAgZ0wwIE9vMCBwZDAgUmMwIGdMMCBPbzAgcGQwIDE0bzAgMWNNMCAxY1AwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAzQ28wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIHB2eTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTjAgMWNMMCAxY04wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNOMCAxY0wwIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiRXVyb3BlL0x1eGVtYm91cmd8TE1UIENFVCBDRVNUIFdFVCBXRVNUIFdFU1QgV0VUfC1vLkEgLTEwIC0yMCAwIC0xMCAtMjAgLTEwfDAxMjEyMTIxMzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQ1NjU2NTEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJERzBvLkEgdDZtby5BIFRCMCAxblgwIFVwMCAxbzIwIDExQTAgclcwIENNMCAxcVAwIFI5MCAxRU8wIFVLMCAxdTIwIDEwbTAgMWlwMCAxaW4wIDE3ZTAgMTlXMCAxZkIwIDFkYjAgMWNwMCAxaW4wIDE3ZDAgMWZ6MCAxYTEwIDFpbjAgMWExMCAxaW4wIDE3ZjAgMWZBMCAxYTAwIDFpbzAgMTdjMCAxY00wIDFjTTAgMWEwMCAxaW8wIDFjTTAgMWNNMCAxYTAwIDFmQTAgMWlvMCAxN2MwIDFjTTAgMWNNMCAxYTAwIDFmQTAgMWlvMCAxcU0wIERjMCB2QTAgNjBMMCBXTTAgMWZBMCAxY00wIDE3YzAgMWlvMCAxNk0wIDFDMDAgVW8wIDFlZW8wIDFhMDAgMWZBMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFhMDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJFdXJvcGUvTWFkcmlkfFdFVCBXRVNUIFdFTVQgQ0VUIENFU1R8MCAtMTAgLTIwIC0xMCAtMjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMjEyMTIxMjEyMzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDN8LTI4ZGQwIDExQTAgMWdvMCAxOUEwIDFjbzAgMWRBMCBiMUEwIDE4bzAgM0kwMCAxN2MwIDFmQTAgMWEwMCAxaW8wIDFhMDAgMWlvMCAxN2MwIGl5bzAgUmMwIDE4bzAgMWhjMCAxaW8wIDFhMDAgMTRvMCA1YUwwIE1NMCAxdmMwIDE3QTAgMWkwMCAxYmMwIDFlbzAgMTdkMCAxaW4wIDE3QTAgNmhBMCAxME4wIFhJTDAgMWExMCAxaW4wIDE3ZDAgMTlYMCAxY04wIDFmejAgMWExMCAxZlgwIDFjcDAgMWNPMCAxY00wIDFmQTAgMWEwMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIkV1cm9wZS9NYWx0YXxDRVQgQ0VTVHwtMTAgLTIwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTJhczEwIE0wMCAxY00wIDFjTTAgMTRvMCAxbzAwIFdNMCAxcU0wIDE3YzAgMWNNMCBNM0EwIDVNMjAgV00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMTZtMCAxZGUwIDFsYzAgMTRtMCAxbGMwIFdPMCAxcU0wIEdUVzAgT24wIDFDMTAgTHowIDFDMTAgTHowIDFFTjAgTHowIDFDMTAgTHowIDF6ZDAgT28wIDFDMDAgT24wIDFjcDAgMWNNMCAxbEEwIFhjMCAxcXEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFpTjAgMTl6MCAxZkIwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIkV1cm9wZS9NaW5za3xNTVQgRUVUIE1TSyBDRVNUIENFVCBNU0QgRUVTVCBGRVR8LTFPIC0yMCAtMzAgLTIwIC0xMCAtNDAgLTMwIC0zMHwwMTIzNDM0MzI1MjUyNTI1MjUyNTI1MjUyNTI2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNzJ8LTFQYzFPIGVVbk8gcU5YMCAzZ1EwIFdNMCAxZkEwIDFjTTAgQWwwIDF0c24wIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAzRmMwIDFjTjAgMWNLMCAxY00wIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgOEh5MCIsCgkJCSJFdXJvcGUvTW9uYWNvfFBNVCBXRVQgV0VTVCBXRU1UIENFVCBDRVNUfC05LmwgMCAtMTAgLTIwIC0xMCAtMjB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMzIzMjMyMzIzNDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTR8LTJuY285LmwgY05iOS5sIEhBMCAxOUEwIDFpTTAgMTFjMCAxb28wIFdvMCAxcmMwIFFNMCAxRU0wIFVNMCAxdTAwIDEwbzAgMWlvMCAxd28wIFJjMCAxYTAwIDFmQTAgMWNNMCAxY00wIDFpbzAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxYTAwIDFpbzAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxN2MwIDFjTTAgMWNNMCAxYTAwIDFpbzAgMWNNMCAxY00wIDFhMDAgMWZBMCAxaW8wIDE3YzAgMWNNMCAxY00wIDFhMDAgMWZBMCAxaW8wIDFxTTAgRGYwIDJSVjAgMTF6MCAxMUIwIDF6ZTAgV00wIDFmQTAgMWNNMCAxZmEwIDFhcTAgMTZNMCAxZWtuMCAxY0wwIDFmQzAgMWEwMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFmQTAgMWEwMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIkV1cm9wZS9Nb3Njb3d8TU1UIE1NVCBNU1QgTURTVCBNU0QgTVNLIE1TTSBFRVQgRUVTVCBNU0t8LTJ1LmggLTJ2LmogLTN2LmogLTR2LmogLTQwIC0zMCAtNTAgLTIwIC0zMCAtNDB8MDEyMTMyMzQ1NDY0NTc1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU4NzU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTk1fC0yYWcydS5oIDJweVcuVyAxYkEwIDExWDAgR04wIDFIYjAgYzIwIGltdi5qIDNEQTAgZHowIDE1QTAgYzEwIDJxMTAgaU0xMCAyM0NMMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNOMCBJTTAgclUwIDFjTDAgMWNRMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCA4SHowIiwKCQkJIkV1cm9wZS9QYXJpc3xQTVQgV0VUIFdFU1QgQ0VTVCBDRVQgV0VNVHwtOS5sIDAgLTEwIC0yMCAtMTAgLTIwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjM0MzQzNTI1NDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzR8LTJuY284LmwgY05iOC5sIEhBMCAxOUEwIDFpTTAgMTFjMCAxb28wIFdvMCAxcmMwIFFNMCAxRU0wIFVNMCAxdTAwIDEwbzAgMWlvMCAxd28wIFJjMCAxYTAwIDFmQTAgMWNNMCAxY00wIDFpbzAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxYTAwIDFpbzAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxN2MwIDFjTTAgMWNNMCAxYTAwIDFpbzAgMWNNMCAxY00wIDFhMDAgMWZBMCAxaW8wIDE3YzAgMWNNMCAxY00wIDFhMDAgMWZBMCAxaW8wIDFxTTAgRGYwIElrMCA1TTMwIFdNMCAxZkEwIDFjTTAgVngwIGhCMCAxYXEwIDE2TTAgMWVrbjAgMWNMMCAxZkMwIDFhMDAgMWZBMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFhMDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJFdXJvcGUvUmlnYXxSTVQgTFNUIEVFVCBNU0sgQ0VTVCBDRVQgTVNEIEVFU1R8LTFBLnkgLTJBLnkgLTIwIC0zMCAtMjAgLTEwIC00MCAtMzB8MDEwMTAyMzQ1NDU0NTM2MzYzNjM2MzYzNjM2MzYzNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyfC0yNVR6QS55IDExQTAgMWlNMCBrbzAgZ1dtMCB5RFhBLnkgMmJYMCAzZkUwIFdNMCAxZkEwIDFjTTAgMWNNMCA0bTAgMXNMeTAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY04wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY04wIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCAzb28wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIkV1cm9wZS9Sb21lfENFVCBDRVNUfC0xMCAtMjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMmFzMTAgTTAwIDFjTTAgMWNNMCAxNG8wIDFvMDAgV00wIDFxTTAgMTdjMCAxY00wIE0zQTAgNU0yMCBXTTAgMWZBMCAxY00wIDE2SzAgMWlPMCAxNm0wIDFkZTAgMWxjMCAxNG0wIDFsYzAgV08wIDFxTTAgR1RXMCBPbjAgMUMxMCBMejAgMUMxMCBMejAgMUVOMCBMejAgMUMxMCBMejAgMXpkMCBPbzAgMUMwMCBPbjAgMUMxMCBMejAgMXpkMCBPbjAgMUMxMCBMQTAgMUMwMCBMQTAgMXpjMCBPbzAgMUMwMCBPbzAgMXpjMCBPbzAgMWZDMCAxYTAwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiRXVyb3BlL1NhbWFyYXxMTVQgU0FNVCBTQU1UIEtVWVQgS1VZU1QgTVNEIE1TSyBFRVNUIEtVWVQgU0FNU1QgU0FNU1R8LTNrLmsgLTMwIC00MCAtNDAgLTUwIC00MCAtMzAgLTMwIC0zMCAtNTAgLTQwfDAxMjM0MzQzNDM0MzQzNDM0MzQzNTY1Njc4MjkyOTI5MjkyOTI5MjkyOTI5MjkyOTI5MjkyOTI5MjkyOTI5MmExMnwtMjJXTmsuayBxSGFrLmsgYmNuMCAxUXFvMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTjAgMWNNMCAxZkEwIDFjTTAgMWNOMCA4bzAgMTRqMCAxY0wwIDFjUTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFOMCBXTTAiLAoJCQkiRXVyb3BlL1NpbWZlcm9wb2x8U01UIEVFVCBNU0sgQ0VTVCBDRVQgTVNEIEVFU1QgTVNLfC0yZyAtMjAgLTMwIC0yMCAtMTAgLTQwIC0zMCAtNDB8MDEyMzQzNDMyNTI1MjUyNTI1MjUyNTI1MjUyMTYxNjE2NTI1MjUyNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTcyfC0xUGMyZyBlVW9nIHJFbjAgMnFzMCBXTTAgMWZBMCAxY00wIDNWMCAxdTBMMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMVEwMCA0ZUwwIDFjTDAgMWNOMCAxY0wwIDFjTjAgZFgwIFdMMCAxY04wIDFjTDAgMWZCMCAxbzMwIDExQjAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMXowIDFuVzAiLAoJCQkiRXVyb3BlL1NvZmlhfEVFVCBDRVQgQ0VTVCBFRVNUfC0yMCAtMTAgLTIwIC0zMHwwMTIxMjEwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMHwtMTY4TDAgV00wIDFmQTAgMWNNMCAxY00wIDFjTjAgMW1LSDAgMWRkMCAxZmIwIDFhcDAgMWZiMCAxYTIwIDFmeTAgMWEzMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjSzAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWZCMCAxblgwIDExRTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJFdXJvcGUvU3RvY2tob2xtfENFVCBDRVNUfC0xMCAtMjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTJhekMwIFRCMCAyeURlMCAxYTAwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiRXVyb3BlL1RhbGxpbm58VE1UIENFVCBDRVNUIEVFVCBNU0sgTVNEIEVFU1R8LTFEIC0xMCAtMjAgLTIwIC0zMCAtNDAgLTMwfDAxMjEwMzQyMTIxMjQ1NDU0NTQ1NDU0NTQ1NDU0NjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2M3wtMjZvTkQgdGVEIDExQTAgMVRhMCA0clhsIEtTTEQgMkZYMCAySmcwIFdNMCAxZkEwIDFjTTAgMThKMCAxc1RYMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTjAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMTAgMTFBMCAxcU0wIDVRTTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJFdXJvcGUvVGlyYW5lfExNVCBDRVQgQ0VTVHwtMWouayAtMTAgLTIwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0yZ2xCai5rIDE0cGNqLmsgNUxDMCBXTTAgNE0wIDFmQ0swIDEwbjAgMW9wMCAxMXowIDFwZDAgMTF6MCAxcU4wIFdMMCAxcXAwIFhiMCAxcXAwIFhiMCAxcXAwIDExejAgMWxCMCAxMXowIDFxTjAgMTF6MCAxaU4wIDE2bjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJFdXJvcGUvVXpoZ29yb2R8Q0VUIENFU1QgTVNLIE1TRCBFRVQgRUVTVHwtMTAgLTIwIC0zMCAtNDAgLTIwIC0zMHwwMTAxMDEwMjMyMzIzMjMyMzIzMjMyMzIzMjA0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTR8LTFjcUwwIDZpMDAgV00wIDFmQTAgMWNNMCAxbWwwIDFDcDAgMXIzVzAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFRMDAgMU5mMCAycHcwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY1EwIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJFdXJvcGUvVmllbm5hfENFVCBDRVNUfC0xMCAtMjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMmFGZTAgMTFkMCAxaU8wIDExQTAgMW8wMCAxMUEwIDNLTTAgMTRvMCBMQTAwIDZpMDAgV00wIDFmQTAgMWNNMCAxY00wIDFjTTAgNDAwIDJxTTAgMWEwMCAxY00wIDFjTTAgMWlvMCAxN2MwIDFnSGEwIDE5WDAgMWNQMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJFdXJvcGUvVmlsbml1c3xXTVQgS01UIENFVCBFRVQgTVNLIENFU1QgTVNEIEVFU1R8LTFvIC0xei5BIC0xMCAtMjAgLTMwIC0yMCAtNDAgLTMwfDAxMjMyNDUyNTI1NDY0NjQ2NDY0NjQ2NDY0NjQ2NDY0NzM3MzczNzM3MzczNzM1MjUzNzM3MzczNzM3MzczNzM3MzczNzM3MzczNzM3MzczNzM3MzczNzM3MzczNzM3MzczNzM3MzczNzM3MzczNzM3MzczNzM3M3wtMjkzZG8gNklMTS5vIDFPb3ouQSB6ejAgTWZkMCAyOVcwIDNpczAgV00wIDFmQTAgMWNNMCBMVjAgMXRnTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTjAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFCMCAxbzAwIDExQTAgMXFNMCA4aW8wIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIsCgkJCSJFdXJvcGUvVm9sZ29ncmFkfExNVCBUU0FUIFNUQVQgU1RBVCBWT0xUIFZPTFNUIFZPTFNUIFZPTFQgTVNLIE1TS3wtMlYuRSAtMzAgLTMwIC00MCAtNDAgLTUwIC00MCAtMzAgLTQwIC0zMHwwMTIzNDU0NTQ1NDU0NTQ1NDU0NTQ2NzY3NDg5ODk4OTg5ODk4OTg5ODk4OTg5ODk4OTg5ODk4OTg5ODk4OTg5ODl8LTIxSXFWLkUgY0xYVi5FIGNFTTAgMWdxbjAgTGNvMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTjAgMWNNMCAxZkEwIDFjTTAgMnB6MCAxY0owIDFjUTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgOEh6MCIsCgkJCSJFdXJvcGUvV2Fyc2F3fFdNVCBDRVQgQ0VTVCBFRVQgRUVTVHwtMW8gLTEwIC0yMCAtMjAgLTMwfDAxMjEyMTIzNDMxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMmN0ZG8gMUxYbyAxMWQwIDFpTzAgMTFBMCAxbzAwIDExQTAgMW9uMCAxMUEwIDZ6eTAgSFdQMCA1SU0wIFdNMCAxZkEwIDFjTTAgMWR6MCAxbUwwIDFlbjAgMTVCMCAxYXEwIDFuQTAgMTFBMCAxaW8wIDE3YzAgMWZBMCAxYTAwIGlEWDAgTEEwIDFjTTAgMWNNMCAxQzAwIE9vMCAxY00wIDFjTTAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMUMwMCBMQTAgdXNvMCAxYTAwIDFmQTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxYTAwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY04wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiRXVyb3BlL1phcG9yb3poeWV8Q1VUIEVFVCBNU0sgQ0VTVCBDRVQgTVNEIEVFU1R8LTJrIC0yMCAtMzAgLTIwIC0xMCAtNDAgLTMwfDAxMjM0MzQyNTI1MjUyNTI1MjUyNTI1MjUyNTI2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxfC0xUGMyayBlVW9rIHJkYjAgMlJFMCBXTTAgMWZBMCA4bTAgMXY5YTAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjSzAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNRMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAiLAoJCQkiSFNUfEhTVHxhMHwwfCIsCgkJCSJJbmRpYW4vQ2hhZ29zfExNVCBJT1QgSU9UfC00Ti5FIC01MCAtNjB8MDEyfC0yeG9zTi5FIDNBR0xOLkUiLAoJCQkiSW5kaWFuL0NocmlzdG1hc3xDWFR8LTcwfDB8IiwKCQkJIkluZGlhbi9Db2Nvc3xDQ1R8LTZ1fDB8IiwKCQkJIkluZGlhbi9LZXJndWVsZW58enp6IFRGVHwwIC01MHwwMXwtTUcwMCIsCgkJCSJJbmRpYW4vTWFoZXxMTVQgU0NUfC0zRi5NIC00MHwwMXwtMnlPM0YuTSIsCgkJCSJJbmRpYW4vTWFsZGl2ZXN8TU1UIE1WVHwtNFMgLTUwfDAxfC1vbGdTIiwKCQkJIkluZGlhbi9NYXVyaXRpdXN8TE1UIE1VVCBNVVNUfC0zTyAtNDAgLTUwfDAxMjEyMXwtMnhvck8gMzR1bk8gMTRMMCAxMmtyMCAxMXowIiwKCQkJIkluZGlhbi9SZXVuaW9ufExNVCBSRVR8LTNGLlEgLTQwfDAxfC0ybURERi5RIiwKCQkJIkt3YWphbGVpbnxNSFQgS1dBVCBNSFR8LWIwIGMwIC1jMHwwMTJ8LUFYMCBXOVgwIiwKCQkJIk1FVHxNRVQgTUVTVHwtMTAgLTIwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yYUZlMCAxMWQwIDFpTzAgMTFBMCAxbzAwIDExQTAgUXJjMCA2aTAwIFdNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDE2TTAgMWdNTTAgMWEwMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFmQTAgMWEwMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIiwKCQkJIk1TVHxNU1R8NzB8MHwiLAoJCQkiTVNUN01EVHxNU1QgTURUIE1XVCBNUFR8NzAgNjAgNjAgNjB8MDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yNjFyMCAxblgwIDExQjAgMW5YMCBTZ04wIDh4MjAgaXgwIFF3TjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCBzMTAgMVZ6MCBMQjAgMUJYMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiTlotQ0hBVHxDSEFTVCBDSEFTVCBDSEFEVHwtY2YgLWNKIC1kSnwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTJ8LVdxQWYgMWFkZWYgSU0wIDFDMDAgUmMwIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgUmMwIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgUmMwIDF6YzAgT28wIDFxTTAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxNG8wIDFsYzAgMTdjMCAxaW8wIDE3YzAgMWlvMCAxN2MwIDFpbzAgMTdjMCAxbGMwIDE0bzAgMWxjMCAxNG8wIDFsYzAgMTdjMCAxaW8wIDE3YzAgMWlvMCAxN2MwIDFsYzAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxN2MwIDFpbzAgMTdjMCAxaW8wIDE3YzAgMWlvMCAxN2MwIDFpbzAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWNNMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWNNMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFpbzAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFmQTAgMWEwMCAxZkEwIDFhMDAiLAoJCQkiUFNUOFBEVHxQU1QgUERUIFBXVCBQUFR8ODAgNzAgNzAgNzB8MDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yNjFxMCAxblgwIDExQjAgMW5YMCBTZ04wIDh4MTAgaXkwIFF3TjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCBzMTAgMVZ6MCBMQjAgMUJYMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAiLAoJCQkiUGFjaWZpYy9BcGlhfExNVCBXU1NUIFNTVCBTRFQgV1NEVCBXU1NUfGJxLlUgYnUgYjAgYTAgLWUwIC1kMHwwMTIzMjM0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NHwtMm5ETXguNCAxeVcwMy40IDJyUmJ1IDFmZjAgMWEwMCBDSTAgQVEwIDFjTTAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFjTTAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxaW8wIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWNNMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWNNMCAxZkEwIDFhMDAgMWZBMCAxYTAwIiwKCQkJIlBhY2lmaWMvQm91Z2FpbnZpbGxlfFBHVCBKU1QgQlNUfC1hMCAtOTAgLWIwfDAxMDJ8LTE2V3kwIDdDTjAgMk1RcDAiLAoJCQkiUGFjaWZpYy9DaHV1a3xDSFVUfC1hMHwwfCIsCgkJCSJQYWNpZmljL0VmYXRlfExNVCBWVVQgVlVTVHwtYmQuZyAtYjAgLWMwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJsOW5kLmcgMlN6Y2QuZyAxY0wwIDFvTjAgMTBMMCAxZkIwIDE5WDAgMWZCMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxZkIwIEx6MCAxTmQwIEFuMCIsCgkJCSJQYWNpZmljL0VuZGVyYnVyeXxQSE9UIFBIT1QgUEhPVHxjMCBiMCAtZDB8MDEyfG5JYzAgQjhuMCIsCgkJCSJQYWNpZmljL0Zha2FvZm98VEtUIFRLVHxiMCAtZDB8MDF8MUdmbjAiLAoJCQkiUGFjaWZpYy9GaWppfExNVCBGSlQgRkpTVHwtYlQuSSAtYzAgLWQwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMnwtMmJVelQuSSAzbThOVC5JIExBMCAxRU0wIElNMCBuSmMwIExBMCAxbzAwIFJjMCAxd28wIEFvMCAxTmMwIEFvMCAxUTAwIHh6MCAxU04wIHVNMCAxU00wIHhBMCAxU00wIHVNMCAxU00wIHVNMCAxU00wIHVNMCAxU00wIHVNMCAxU00wIHhBMCAxU00wIHVNMCAxU00wIHVNMCAxU00wIHVNMCAxU00wIHVNMCAxU00wIHVNMCAxU00wIHhBMCAxU00wIHVNMCAxU00wIHVNMCAxU00wIHVNMCAxU00wIHVNMCAxU00wIHVNMCAxVkEwIHVNMCAxU00wIHVNMCAxU00wIHVNMCAxU00wIHVNMCAxU00wIHVNMCAxU00wIiwKCQkJIlBhY2lmaWMvRnVuYWZ1dGl8VFZUfC1jMHwwfCIsCgkJCSJQYWNpZmljL0dhbGFwYWdvc3xMTVQgRUNUIEdBTFR8NVcubyA1MCA2MHwwMTJ8LTF5VlMxLkEgMmRUejEuQSIsCgkJCSJQYWNpZmljL0dhbWJpZXJ8TE1UIEdBTVR8OFguTSA5MHwwMXwtMmpvZjAuYyIsCgkJCSJQYWNpZmljL0d1YWRhbGNhbmFsfExNVCBTQlR8LWFELk0gLWIwfDAxfC0yam95RC5NIiwKCQkJIlBhY2lmaWMvR3VhbXxHU1QgQ2hTVHwtYTAgLWEwfDAxfDFmcHEwIiwKCQkJIlBhY2lmaWMvSG9ub2x1bHV8SFNUIEhEVCBIU1R8YXUgOXUgYTB8MDEwMTAyfC0xdGhMdSA4eDAgbGVmMCA4UHowIDQ2cDAiLAoJCQkiUGFjaWZpYy9LaXJpdGltYXRpfExJTlQgTElOVCBMSU5UfGFFIGEwIC1lMHwwMTJ8bklhRSBCOG5rIiwKCQkJIlBhY2lmaWMvS29zcmFlfEtPU1QgS09TVHwtYjAgLWMwfDAxMHwtQVgwIDFiZHowIiwKCQkJIlBhY2lmaWMvTWFqdXJvfE1IVCBNSFR8LWIwIC1jMHwwMXwtQVgwIiwKCQkJIlBhY2lmaWMvTWFycXVlc2FzfExNVCBNQVJUfDlpIDl1fDAxfC0yam9lRyIsCgkJCSJQYWNpZmljL01pZHdheXxOU1QgTkRUIEJTVCBTU1R8YjAgYTAgYjAgYjB8MDEwMjN8LXgzTjAgQW4wIHBKZDAgRXlNMCIsCgkJCSJQYWNpZmljL05hdXJ1fExNVCBOUlQgSlNUIE5SVHwtYjcuRSAtYnUgLTkwIC1jMHwwMTIxM3wtMVhkbjcuRSBQdnpCLkUgNVJDdSAxb3VKdSIsCgkJCSJQYWNpZmljL05pdWV8TlVUIE5VVCBOVVR8YmsgYnUgYjB8MDEyfC1LZk1FIDE3eTBhIiwKCQkJIlBhY2lmaWMvTm9yZm9sa3xOTVQgTkZUfC1iYyAtYnV8MDF8LUtnYmMiLAoJCQkiUGFjaWZpYy9Ob3VtZWF8TE1UIE5DVCBOQ1NUfC1iNS5NIC1iMCAtYzB8MDEyMTIxMjF8LTJsOW41Lk0gMkVxTTUuTSB4WDAgMVBCMCB5bjAgSGVQMCBBbzAiLAoJCQkiUGFjaWZpYy9QYWdvX1BhZ298TE1UIE5TVCBCU1QgU1NUfGJtLk0gYjAgYjAgYjB8MDEyM3wtMm5ETUIuYyAyZ1Z6Qi5jIEV5TTAiLAoJCQkiUGFjaWZpYy9QYWxhdXxQV1R8LTkwfDB8IiwKCQkJIlBhY2lmaWMvUGl0Y2Fpcm58UE5UIFBTVHw4dSA4MHwwMXwxOFZrdSIsCgkJCSJQYWNpZmljL1BvaG5wZWl8UE9OVHwtYjB8MHwiLAoJCQkiUGFjaWZpYy9Qb3J0X01vcmVzYnl8UEdUfC1hMHwwfCIsCgkJCSJQYWNpZmljL1Jhcm90b25nYXxDS1QgQ0tIU1QgQ0tUfGF1IDl1IGEwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMnxseVd1IElMMCAxemN1IE9udSAxemN1IE9udSAxemN1IFJidSAxemN1IE9udSAxemN1IE9udSAxemN1IE9udSAxemN1IE9udSAxemN1IE9udSAxemN1IFJidSAxemN1IE9udSAxemN1IE9udSAxemN1IE9udSIsCgkJCSJQYWNpZmljL1NhaXBhbnxNUFQgTVBUIENoU1R8LTkwIC1hMCAtYTB8MDEyfC1BVjAgMWcybjAiLAoJCQkiUGFjaWZpYy9UYWhpdGl8TE1UIFRBSFR8OVcuZyBhMHwwMXwtMmpvZTEuSSIsCgkJCSJQYWNpZmljL1RhcmF3YXxHSUxUfC1jMHwwfCIsCgkJCSJQYWNpZmljL1RvbmdhdGFwdXxUT1QgVE9UIFRPU1R8LWNrIC1kMCAtZTB8MDEyMTIxMjF8LTFhQjBrIDJuNWRrIDE1QTAgMXdvMCB4ejAgMVExMCB4ejAiLAoJCQkiUGFjaWZpYy9XYWtlfFdBS1R8LWMwfDB8IiwKCQkJIlBhY2lmaWMvV2FsbGlzfFdGVHwtYzB8MHwiLAoJCQkiV0VUfFdFVCBXRVNUfDAgLTEwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHxoREIwIDFhMDAgMWZBMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFhMDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCIKCQldLAoJCSJsaW5rcyI6IFsKCQkJIkFmcmljYS9BYmlkamFufEFmcmljYS9CYW1ha28iLAoJCQkiQWZyaWNhL0FiaWRqYW58QWZyaWNhL0Jhbmp1bCIsCgkJCSJBZnJpY2EvQWJpZGphbnxBZnJpY2EvQ29uYWtyeSIsCgkJCSJBZnJpY2EvQWJpZGphbnxBZnJpY2EvRGFrYXIiLAoJCQkiQWZyaWNhL0FiaWRqYW58QWZyaWNhL0ZyZWV0b3duIiwKCQkJIkFmcmljYS9BYmlkamFufEFmcmljYS9Mb21lIiwKCQkJIkFmcmljYS9BYmlkamFufEFmcmljYS9Ob3Vha2Nob3R0IiwKCQkJIkFmcmljYS9BYmlkamFufEFmcmljYS9PdWFnYWRvdWdvdSIsCgkJCSJBZnJpY2EvQWJpZGphbnxBZnJpY2EvU2FvX1RvbWUiLAoJCQkiQWZyaWNhL0FiaWRqYW58QWZyaWNhL1RpbWJ1a3R1IiwKCQkJIkFmcmljYS9BYmlkamFufEF0bGFudGljL1N0X0hlbGVuYSIsCgkJCSJBZnJpY2EvQWRkaXNfQWJhYmF8QWZyaWNhL0FzbWFyYSIsCgkJCSJBZnJpY2EvQWRkaXNfQWJhYmF8QWZyaWNhL0FzbWVyYSIsCgkJCSJBZnJpY2EvQWRkaXNfQWJhYmF8QWZyaWNhL0Rhcl9lc19TYWxhYW0iLAoJCQkiQWZyaWNhL0FkZGlzX0FiYWJhfEFmcmljYS9Eamlib3V0aSIsCgkJCSJBZnJpY2EvQWRkaXNfQWJhYmF8QWZyaWNhL0thbXBhbGEiLAoJCQkiQWZyaWNhL0FkZGlzX0FiYWJhfEFmcmljYS9Nb2dhZGlzaHUiLAoJCQkiQWZyaWNhL0FkZGlzX0FiYWJhfEFmcmljYS9OYWlyb2JpIiwKCQkJIkFmcmljYS9BZGRpc19BYmFiYXxJbmRpYW4vQW50YW5hbmFyaXZvIiwKCQkJIkFmcmljYS9BZGRpc19BYmFiYXxJbmRpYW4vQ29tb3JvIiwKCQkJIkFmcmljYS9BZGRpc19BYmFiYXxJbmRpYW4vTWF5b3R0ZSIsCgkJCSJBZnJpY2EvQmFuZ3VpfEFmcmljYS9CcmF6emF2aWxsZSIsCgkJCSJBZnJpY2EvQmFuZ3VpfEFmcmljYS9Eb3VhbGEiLAoJCQkiQWZyaWNhL0Jhbmd1aXxBZnJpY2EvS2luc2hhc2EiLAoJCQkiQWZyaWNhL0Jhbmd1aXxBZnJpY2EvTGFnb3MiLAoJCQkiQWZyaWNhL0Jhbmd1aXxBZnJpY2EvTGlicmV2aWxsZSIsCgkJCSJBZnJpY2EvQmFuZ3VpfEFmcmljYS9MdWFuZGEiLAoJCQkiQWZyaWNhL0Jhbmd1aXxBZnJpY2EvTWFsYWJvIiwKCQkJIkFmcmljYS9CYW5ndWl8QWZyaWNhL05pYW1leSIsCgkJCSJBZnJpY2EvQmFuZ3VpfEFmcmljYS9Qb3J0by1Ob3ZvIiwKCQkJIkFmcmljYS9CbGFudHlyZXxBZnJpY2EvQnVqdW1idXJhIiwKCQkJIkFmcmljYS9CbGFudHlyZXxBZnJpY2EvR2Fib3JvbmUiLAoJCQkiQWZyaWNhL0JsYW50eXJlfEFmcmljYS9IYXJhcmUiLAoJCQkiQWZyaWNhL0JsYW50eXJlfEFmcmljYS9LaWdhbGkiLAoJCQkiQWZyaWNhL0JsYW50eXJlfEFmcmljYS9MdWJ1bWJhc2hpIiwKCQkJIkFmcmljYS9CbGFudHlyZXxBZnJpY2EvTHVzYWthIiwKCQkJIkFmcmljYS9CbGFudHlyZXxBZnJpY2EvTWFwdXRvIiwKCQkJIkFmcmljYS9DYWlyb3xFZ3lwdCIsCgkJCSJBZnJpY2EvSm9oYW5uZXNidXJnfEFmcmljYS9NYXNlcnUiLAoJCQkiQWZyaWNhL0pvaGFubmVzYnVyZ3xBZnJpY2EvTWJhYmFuZSIsCgkJCSJBZnJpY2EvSnViYXxBZnJpY2EvS2hhcnRvdW0iLAoJCQkiQWZyaWNhL1RyaXBvbGl8TGlieWEiLAoJCQkiQW1lcmljYS9BZGFrfEFtZXJpY2EvQXRrYSIsCgkJCSJBbWVyaWNhL0FkYWt8VVMvQWxldXRpYW4iLAoJCQkiQW1lcmljYS9BbmNob3JhZ2V8VVMvQWxhc2thIiwKCQkJIkFtZXJpY2EvQW5ndWlsbGF8QW1lcmljYS9Eb21pbmljYSIsCgkJCSJBbWVyaWNhL0FuZ3VpbGxhfEFtZXJpY2EvR3JlbmFkYSIsCgkJCSJBbWVyaWNhL0FuZ3VpbGxhfEFtZXJpY2EvR3VhZGVsb3VwZSIsCgkJCSJBbWVyaWNhL0FuZ3VpbGxhfEFtZXJpY2EvTWFyaWdvdCIsCgkJCSJBbWVyaWNhL0FuZ3VpbGxhfEFtZXJpY2EvTW9udHNlcnJhdCIsCgkJCSJBbWVyaWNhL0FuZ3VpbGxhfEFtZXJpY2EvUG9ydF9vZl9TcGFpbiIsCgkJCSJBbWVyaWNhL0FuZ3VpbGxhfEFtZXJpY2EvU3RfQmFydGhlbGVteSIsCgkJCSJBbWVyaWNhL0FuZ3VpbGxhfEFtZXJpY2EvU3RfS2l0dHMiLAoJCQkiQW1lcmljYS9Bbmd1aWxsYXxBbWVyaWNhL1N0X0x1Y2lhIiwKCQkJIkFtZXJpY2EvQW5ndWlsbGF8QW1lcmljYS9TdF9UaG9tYXMiLAoJCQkiQW1lcmljYS9Bbmd1aWxsYXxBbWVyaWNhL1N0X1ZpbmNlbnQiLAoJCQkiQW1lcmljYS9Bbmd1aWxsYXxBbWVyaWNhL1RvcnRvbGEiLAoJCQkiQW1lcmljYS9Bbmd1aWxsYXxBbWVyaWNhL1ZpcmdpbiIsCgkJCSJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXN8QW1lcmljYS9CdWVub3NfQWlyZXMiLAoJCQkiQW1lcmljYS9BcmdlbnRpbmEvQ2F0YW1hcmNhfEFtZXJpY2EvQXJnZW50aW5hL0NvbW9kUml2YWRhdmlhIiwKCQkJIkFtZXJpY2EvQXJnZW50aW5hL0NhdGFtYXJjYXxBbWVyaWNhL0NhdGFtYXJjYSIsCgkJCSJBbWVyaWNhL0FyZ2VudGluYS9Db3Jkb2JhfEFtZXJpY2EvQ29yZG9iYSIsCgkJCSJBbWVyaWNhL0FyZ2VudGluYS9Db3Jkb2JhfEFtZXJpY2EvUm9zYXJpbyIsCgkJCSJBbWVyaWNhL0FyZ2VudGluYS9KdWp1eXxBbWVyaWNhL0p1anV5IiwKCQkJIkFtZXJpY2EvQXJnZW50aW5hL01lbmRvemF8QW1lcmljYS9NZW5kb3phIiwKCQkJIkFtZXJpY2EvQXJ1YmF8QW1lcmljYS9DdXJhY2FvIiwKCQkJIkFtZXJpY2EvQXJ1YmF8QW1lcmljYS9LcmFsZW5kaWprIiwKCQkJIkFtZXJpY2EvQXJ1YmF8QW1lcmljYS9Mb3dlcl9QcmluY2VzIiwKCQkJIkFtZXJpY2EvQXRpa29rYW58QW1lcmljYS9Db3JhbF9IYXJib3VyIiwKCQkJIkFtZXJpY2EvQ2hpY2Fnb3xVUy9DZW50cmFsIiwKCQkJIkFtZXJpY2EvRGVudmVyfEFtZXJpY2EvU2hpcHJvY2siLAoJCQkiQW1lcmljYS9EZW52ZXJ8TmF2YWpvIiwKCQkJIkFtZXJpY2EvRGVudmVyfFVTL01vdW50YWluIiwKCQkJIkFtZXJpY2EvRGV0cm9pdHxVUy9NaWNoaWdhbiIsCgkJCSJBbWVyaWNhL0VkbW9udG9ufENhbmFkYS9Nb3VudGFpbiIsCgkJCSJBbWVyaWNhL0Vuc2VuYWRhfEFtZXJpY2EvVGlqdWFuYSIsCgkJCSJBbWVyaWNhL0Vuc2VuYWRhfE1leGljby9CYWphTm9ydGUiLAoJCQkiQW1lcmljYS9Gb3J0X1dheW5lfEFtZXJpY2EvSW5kaWFuYS9JbmRpYW5hcG9saXMiLAoJCQkiQW1lcmljYS9Gb3J0X1dheW5lfEFtZXJpY2EvSW5kaWFuYXBvbGlzIiwKCQkJIkFtZXJpY2EvRm9ydF9XYXluZXxVUy9FYXN0LUluZGlhbmEiLAoJCQkiQW1lcmljYS9IYWxpZmF4fENhbmFkYS9BdGxhbnRpYyIsCgkJCSJBbWVyaWNhL0hhdmFuYXxDdWJhIiwKCQkJIkFtZXJpY2EvSW5kaWFuYS9Lbm94fEFtZXJpY2EvS25veF9JTiIsCgkJCSJBbWVyaWNhL0luZGlhbmEvS25veHxVUy9JbmRpYW5hLVN0YXJrZSIsCgkJCSJBbWVyaWNhL0phbWFpY2F8SmFtYWljYSIsCgkJCSJBbWVyaWNhL0tlbnR1Y2t5L0xvdWlzdmlsbGV8QW1lcmljYS9Mb3Vpc3ZpbGxlIiwKCQkJIkFtZXJpY2EvTG9zX0FuZ2VsZXN8VVMvUGFjaWZpYyIsCgkJCSJBbWVyaWNhL0xvc19BbmdlbGVzfFVTL1BhY2lmaWMtTmV3IiwKCQkJIkFtZXJpY2EvTWFuYXVzfEJyYXppbC9XZXN0IiwKCQkJIkFtZXJpY2EvTWF6YXRsYW58TWV4aWNvL0JhamFTdXIiLAoJCQkiQW1lcmljYS9NZXhpY29fQ2l0eXxNZXhpY28vR2VuZXJhbCIsCgkJCSJBbWVyaWNhL05ld19Zb3JrfFVTL0Vhc3Rlcm4iLAoJCQkiQW1lcmljYS9Ob3JvbmhhfEJyYXppbC9EZU5vcm9uaGEiLAoJCQkiQW1lcmljYS9QaG9lbml4fFVTL0FyaXpvbmEiLAoJCQkiQW1lcmljYS9Qb3J0b19BY3JlfEFtZXJpY2EvUmlvX0JyYW5jbyIsCgkJCSJBbWVyaWNhL1BvcnRvX0FjcmV8QnJhemlsL0FjcmUiLAoJCQkiQW1lcmljYS9SZWdpbmF8Q2FuYWRhL0Vhc3QtU2Fza2F0Y2hld2FuIiwKCQkJIkFtZXJpY2EvUmVnaW5hfENhbmFkYS9TYXNrYXRjaGV3YW4iLAoJCQkiQW1lcmljYS9TYW50aWFnb3xDaGlsZS9Db250aW5lbnRhbCIsCgkJCSJBbWVyaWNhL1Nhb19QYXVsb3xCcmF6aWwvRWFzdCIsCgkJCSJBbWVyaWNhL1N0X0pvaG5zfENhbmFkYS9OZXdmb3VuZGxhbmQiLAoJCQkiQW1lcmljYS9Ub3JvbnRvfENhbmFkYS9FYXN0ZXJuIiwKCQkJIkFtZXJpY2EvVmFuY291dmVyfENhbmFkYS9QYWNpZmljIiwKCQkJIkFtZXJpY2EvV2hpdGVob3JzZXxDYW5hZGEvWXVrb24iLAoJCQkiQW1lcmljYS9XaW5uaXBlZ3xDYW5hZGEvQ2VudHJhbCIsCgkJCSJBbnRhcmN0aWNhL01jTXVyZG98QW50YXJjdGljYS9Tb3V0aF9Qb2xlIiwKCQkJIkFudGFyY3RpY2EvTWNNdXJkb3xOWiIsCgkJCSJBbnRhcmN0aWNhL01jTXVyZG98UGFjaWZpYy9BdWNrbGFuZCIsCgkJCSJBcmN0aWMvTG9uZ3llYXJieWVufEF0bGFudGljL0phbl9NYXllbiIsCgkJCSJBcmN0aWMvTG9uZ3llYXJieWVufEV1cm9wZS9Pc2xvIiwKCQkJIkFzaWEvQXNoZ2FiYXR8QXNpYS9Bc2hraGFiYWQiLAoJCQkiQXNpYS9CYW5na29rfEFzaWEvUGhub21fUGVuaCIsCgkJCSJBc2lhL0Jhbmdrb2t8QXNpYS9WaWVudGlhbmUiLAoJCQkiQXNpYS9DYWxjdXR0YXxBc2lhL0tvbGthdGEiLAoJCQkiQXNpYS9DaG9uZ3Fpbmd8QXNpYS9DaHVuZ2tpbmciLAoJCQkiQXNpYS9DaG9uZ3Fpbmd8QXNpYS9IYXJiaW4iLAoJCQkiQXNpYS9DaG9uZ3Fpbmd8QXNpYS9TaGFuZ2hhaSIsCgkJCSJBc2lhL0Nob25ncWluZ3xQUkMiLAoJCQkiQXNpYS9EYWNjYXxBc2lhL0RoYWthIiwKCQkJIkFzaWEvSG9fQ2hpX01pbmh8QXNpYS9TYWlnb24iLAoJCQkiQXNpYS9Ib25nX0tvbmd8SG9uZ2tvbmciLAoJCQkiQXNpYS9Jc3RhbmJ1bHxFdXJvcGUvSXN0YW5idWwiLAoJCQkiQXNpYS9Jc3RhbmJ1bHxUdXJrZXkiLAoJCQkiQXNpYS9KZXJ1c2FsZW18QXNpYS9UZWxfQXZpdiIsCgkJCSJBc2lhL0plcnVzYWxlbXxJc3JhZWwiLAoJCQkiQXNpYS9LYXNoZ2FyfEFzaWEvVXJ1bXFpIiwKCQkJIkFzaWEvS2F0aG1hbmR1fEFzaWEvS2F0bWFuZHUiLAoJCQkiQXNpYS9NYWNhb3xBc2lhL01hY2F1IiwKCQkJIkFzaWEvTWFrYXNzYXJ8QXNpYS9VanVuZ19QYW5kYW5nIiwKCQkJIkFzaWEvTmljb3NpYXxFdXJvcGUvTmljb3NpYSIsCgkJCSJBc2lhL1Nlb3VsfFJPSyIsCgkJCSJBc2lhL1NpbmdhcG9yZXxTaW5nYXBvcmUiLAoJCQkiQXNpYS9UYWlwZWl8Uk9DIiwKCQkJIkFzaWEvVGVocmFufElyYW4iLAoJCQkiQXNpYS9UaGltYnV8QXNpYS9UaGltcGh1IiwKCQkJIkFzaWEvVG9reW98SmFwYW4iLAoJCQkiQXNpYS9VbGFhbmJhYXRhcnxBc2lhL1VsYW5fQmF0b3IiLAoJCQkiQXRsYW50aWMvRmFlcm9lfEF0bGFudGljL0Zhcm9lIiwKCQkJIkF0bGFudGljL1JleWtqYXZpa3xJY2VsYW5kIiwKCQkJIkF1c3RyYWxpYS9BQ1R8QXVzdHJhbGlhL0NhbmJlcnJhIiwKCQkJIkF1c3RyYWxpYS9BQ1R8QXVzdHJhbGlhL05TVyIsCgkJCSJBdXN0cmFsaWEvQUNUfEF1c3RyYWxpYS9TeWRuZXkiLAoJCQkiQXVzdHJhbGlhL0FkZWxhaWRlfEF1c3RyYWxpYS9Tb3V0aCIsCgkJCSJBdXN0cmFsaWEvQnJpc2JhbmV8QXVzdHJhbGlhL1F1ZWVuc2xhbmQiLAoJCQkiQXVzdHJhbGlhL0Jyb2tlbl9IaWxsfEF1c3RyYWxpYS9ZYW5jb3dpbm5hIiwKCQkJIkF1c3RyYWxpYS9EYXJ3aW58QXVzdHJhbGlhL05vcnRoIiwKCQkJIkF1c3RyYWxpYS9Ib2JhcnR8QXVzdHJhbGlhL1Rhc21hbmlhIiwKCQkJIkF1c3RyYWxpYS9MSEl8QXVzdHJhbGlhL0xvcmRfSG93ZSIsCgkJCSJBdXN0cmFsaWEvTWVsYm91cm5lfEF1c3RyYWxpYS9WaWN0b3JpYSIsCgkJCSJBdXN0cmFsaWEvUGVydGh8QXVzdHJhbGlhL1dlc3QiLAoJCQkiQ2hpbGUvRWFzdGVySXNsYW5kfFBhY2lmaWMvRWFzdGVyIiwKCQkJIkVpcmV8RXVyb3BlL0R1YmxpbiIsCgkJCSJFdGMvR01UKzB8RXRjL0dNVCIsCgkJCSJFdGMvR01UKzB8RXRjL0dNVC0wIiwKCQkJIkV0Yy9HTVQrMHxFdGMvR01UMCIsCgkJCSJFdGMvR01UKzB8RXRjL0dyZWVud2ljaCIsCgkJCSJFdGMvR01UKzB8R01UIiwKCQkJIkV0Yy9HTVQrMHxHTVQrMCIsCgkJCSJFdGMvR01UKzB8R01ULTAiLAoJCQkiRXRjL0dNVCswfEdNVDAiLAoJCQkiRXRjL0dNVCswfEdyZWVud2ljaCIsCgkJCSJFdGMvVUNUfFVDVCIsCgkJCSJFdGMvVVRDfEV0Yy9Vbml2ZXJzYWwiLAoJCQkiRXRjL1VUQ3xFdGMvWnVsdSIsCgkJCSJFdGMvVVRDfFVUQyIsCgkJCSJFdGMvVVRDfFVuaXZlcnNhbCIsCgkJCSJFdGMvVVRDfFp1bHUiLAoJCQkiRXVyb3BlL0JlbGZhc3R8RXVyb3BlL0d1ZXJuc2V5IiwKCQkJIkV1cm9wZS9CZWxmYXN0fEV1cm9wZS9Jc2xlX29mX01hbiIsCgkJCSJFdXJvcGUvQmVsZmFzdHxFdXJvcGUvSmVyc2V5IiwKCQkJIkV1cm9wZS9CZWxmYXN0fEV1cm9wZS9Mb25kb24iLAoJCQkiRXVyb3BlL0JlbGZhc3R8R0IiLAoJCQkiRXVyb3BlL0JlbGZhc3R8R0ItRWlyZSIsCgkJCSJFdXJvcGUvQmVsZ3JhZGV8RXVyb3BlL0xqdWJsamFuYSIsCgkJCSJFdXJvcGUvQmVsZ3JhZGV8RXVyb3BlL1BvZGdvcmljYSIsCgkJCSJFdXJvcGUvQmVsZ3JhZGV8RXVyb3BlL1NhcmFqZXZvIiwKCQkJIkV1cm9wZS9CZWxncmFkZXxFdXJvcGUvU2tvcGplIiwKCQkJIkV1cm9wZS9CZWxncmFkZXxFdXJvcGUvWmFncmViIiwKCQkJIkV1cm9wZS9CcmF0aXNsYXZhfEV1cm9wZS9QcmFndWUiLAoJCQkiRXVyb3BlL0J1c2luZ2VufEV1cm9wZS9WYWR1eiIsCgkJCSJFdXJvcGUvQnVzaW5nZW58RXVyb3BlL1p1cmljaCIsCgkJCSJFdXJvcGUvQ2hpc2luYXV8RXVyb3BlL1RpcmFzcG9sIiwKCQkJIkV1cm9wZS9IZWxzaW5raXxFdXJvcGUvTWFyaWVoYW1uIiwKCQkJIkV1cm9wZS9MaXNib258UG9ydHVnYWwiLAoJCQkiRXVyb3BlL01vc2Nvd3xXLVNVIiwKCQkJIkV1cm9wZS9Sb21lfEV1cm9wZS9TYW5fTWFyaW5vIiwKCQkJIkV1cm9wZS9Sb21lfEV1cm9wZS9WYXRpY2FuIiwKCQkJIkV1cm9wZS9XYXJzYXd8UG9sYW5kIiwKCQkJIkt3YWphbGVpbnxQYWNpZmljL0t3YWphbGVpbiIsCgkJCSJOWi1DSEFUfFBhY2lmaWMvQ2hhdGhhbSIsCgkJCSJQYWNpZmljL0NodXVrfFBhY2lmaWMvVHJ1ayIsCgkJCSJQYWNpZmljL0NodXVrfFBhY2lmaWMvWWFwIiwKCQkJIlBhY2lmaWMvSG9ub2x1bHV8UGFjaWZpYy9Kb2huc3RvbiIsCgkJCSJQYWNpZmljL0hvbm9sdWx1fFVTL0hhd2FpaSIsCgkJCSJQYWNpZmljL1BhZ29fUGFnb3xQYWNpZmljL1NhbW9hIiwKCQkJIlBhY2lmaWMvUGFnb19QYWdvfFVTL1NhbW9hIiwKCQkJIlBhY2lmaWMvUG9obnBlaXxQYWNpZmljL1BvbmFwZSIKCQldCgl9KTsKCgoJcmV0dXJuIG1vbWVudDsKfSkpOwo="></script>
<script src="data:application/x-javascript;base64,KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gbihuKXtyZXR1cm4gbi5mbi5mcXVhcnRlcj1mdW5jdGlvbihuKXt2YXIgdT10aGlzLmxhbmcoKS5fcXVhcnRlcnx8IlEiLHQ9e30scixpPW51bGw7cmV0dXJuIG49bnx8NCxuPjE/KHI9dGhpcy5zdWJ0cmFjdCgibW9udGhzIixuLTEpLGk9ci5jbG9uZSgpLmFkZCgieWVhcnMiLDEpKTpyPXRoaXMsdC5xdWFydGVyPU1hdGguY2VpbCgoci5tb250aCgpKzEpLzMpLHQueWVhcj1yLnllYXIoKSx0Lm5leHRZZWFyPWk/aS55ZWFyKCk6aSx0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIG49dSt0LnF1YXJ0ZXIrIiAiK3QueWVhcjtyZXR1cm4gaT9uKyIvIitpLmZvcm1hdCgiWVkiKTpufSx0fSxufXR5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJmRlZmluZS5hbWQ/ZGVmaW5lKCJtb21lbnQtZnF1YXJ0ZXIiLFsibW9tZW50Il0sbik6dHlwZW9mIG1vZHVsZSE9InVuZGVmaW5lZCI/bW9kdWxlLmV4cG9ydHM9bihyZXF1aXJlKCJtb21lbnQiKSk6dHlwZW9mIHdpbmRvdyE9InVuZGVmaW5lZCImJndpbmRvdy5tb21lbnQmJm4od2luZG93Lm1vbWVudCl9KS5hcHBseSh0aGlzKTs="></script>
<script src="data:application/x-javascript;base64,Ci8vIHBvbHlmaWxsIGluZGV4T2YgZm9yIElFOAppZiAoIUFycmF5LnByb3RvdHlwZS5pbmRleE9mKSB7CiAgQXJyYXkucHJvdG90eXBlLmluZGV4T2YgPSBmdW5jdGlvbihlbHQgLyosIGZyb20qLykgewogICAgdmFyIGxlbiA9IHRoaXMubGVuZ3RoID4+PiAwOwoKICAgIHZhciBmcm9tID0gTnVtYmVyKGFyZ3VtZW50c1sxXSkgfHwgMDsKICAgIGZyb20gPSAoZnJvbSA8IDApCiAgICAgICAgID8gTWF0aC5jZWlsKGZyb20pCiAgICAgICAgIDogTWF0aC5mbG9vcihmcm9tKTsKICAgIGlmIChmcm9tIDwgMCkKICAgICAgZnJvbSArPSBsZW47CgogICAgZm9yICg7IGZyb20gPCBsZW47IGZyb20rKykgewogICAgICBpZiAoZnJvbSBpbiB0aGlzICYmCiAgICAgICAgICB0aGlzW2Zyb21dID09PSBlbHQpCiAgICAgICAgcmV0dXJuIGZyb207CiAgICB9CiAgICByZXR1cm4gLTE7CiAgfTsKfQoKSFRNTFdpZGdldHMud2lkZ2V0KHsKCiAgbmFtZTogImR5Z3JhcGhzIiwKCiAgdHlwZTogIm91dHB1dCIsCgogIGZhY3Rvcnk6IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0KSB7CiAgICAKICAgIC8vIHJlZmVyZW5jZSB0byBkeWdyYXBoCiAgICB2YXIgZHlncmFwaCA9IG51bGw7CiAgICAKICAgIC8vIHJlZmVyZW5jZSB0byB3aWRnZXQgZ2xvYmFsIGdyb3VwcwogICAgdmFyIGdyb3VwcyA9IHRoaXMuZ3JvdXBzOwogCiAgICAvLyBhZGQgcXQgc3R5bGUgaWYgd2UgYXJlIHJ1bm5pbmcgdW5kZXIgUXQKICAgIGlmICh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCIgUXQvIikgPiAwKQogICAgICBlbC5jbGFzc05hbWUgKz0gIiBxdCI7CiAgICAKICAgIHJldHVybiB7CiAgICAgIAogICAgICByZW5kZXJWYWx1ZTogZnVuY3Rpb24oeCkgewogICAgICAgIAogICAgICAgIC8vIHJlZmVyZW5jZSB0byB0aGlzIGZvciBjbG9zdXJlcwogICAgICAgIHZhciB0aGl6ID0gdGhpczsKICAgICAgICAKICAgICAgICAvLyBnZXQgZHlncmFwaCBhdHRycyBhbmQgcG9wdWxhdGUgZmlsZSBmaWVsZAogICAgICAgIHZhciBhdHRycyA9IHguYXR0cnM7CiAgICAgICAgYXR0cnMuZmlsZSA9IHguZGF0YTsKCSAgICAgIAoJLy8gZGlzYWJsZSB6b29tIGludGVyYWN0aW9uIGV4Y2VwdCBmb3IgY2xpY2tzCiAgICAgICAgaWYgKGF0dHJzLmRpc2FibGVab29tKSB7CiAgICAgICAgICBhdHRycy5pbnRlcmFjdGlvbk1vZGVsID0gRHlncmFwaC5JbnRlcmFjdGlvbi5ub25JbnRlcmFjdGl2ZU1vZGVsXzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gY29udmVydCBub24tYXJyYXlzIHRvIGFycmF5cwogICAgICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCBhdHRycy5maWxlLmxlbmd0aDsgaW5kZXgrKykgewogICAgICAgICAgaWYgKCEkLmlzQXJyYXkoYXR0cnMuZmlsZVtpbmRleF0pKQogICAgICAgICAgICBhdHRycy5maWxlW2luZGV4XSA9IFtdLmNvbmNhdChhdHRycy5maWxlW2luZGV4XSk7CiAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAvLyByZXNvbHZlICJhdXRvIiBsZWdlbmQgYmVoYXZpb3IKICAgICAgICBpZiAoeC5hdHRycy5sZWdlbmQgPT0gImF1dG8iKSB7CiAgICAgICAgICBpZiAoeC5kYXRhLmxlbmd0aCA8PSAyKQogICAgICAgICAgICB4LmF0dHJzLmxlZ2VuZCA9ICJvbm1vdXNlb3ZlciI7CiAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHguYXR0cnMubGVnZW5kID0gImFsd2F5cyI7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGlmICh4LmZvcm1hdCA9PSAiZGF0ZSIpIHsKICAgICAgICAgIAogICAgICAgICAgLy8gc2V0IGFwcHJvcHJpYXRlZCBmdW5jdGlvbiBpbiBjYXNlIG9mIGZpeGVkIHR6CiAgICAgICAgICBpZiAoKGF0dHJzLmF4ZXMueC5heGlzTGFiZWxGb3JtYXR0ZXIgPT09IHVuZGVmaW5lZCkgJiYgeC5maXhlZHR6KQogICAgICAgICAgICBhdHRycy5heGVzLnguYXhpc0xhYmVsRm9ybWF0dGVyID0gdGhpcy54QXhpc0xhYmVsRm9ybWF0dGVyRml4ZWRUWih4LnR6b25lKTsKICAgICAgICAgICAgCiAgICAgICAgICBpZiAoKGF0dHJzLmF4ZXMueC52YWx1ZUZvcm1hdHRlciA9PT0gdW5kZWZpbmVkKSAmJiB4LmZpeGVkdHopCiAgICAgICAgICAgIGF0dHJzLmF4ZXMueC52YWx1ZUZvcm1hdHRlciA9IHRoaXMueFZhbHVlRm9ybWF0dGVyRml4ZWRUWih4LnNjYWxlLCB4LnR6b25lKTsKICAgICAgCiAgICAgICAgICBpZiAoKGF0dHJzLmF4ZXMueC50aWNrZXIgPT09IHVuZGVmaW5lZCkgJiYgeC5maXhlZHR6KQogICAgICAgICAgICBhdHRycy5heGVzLngudGlja2VyID0gdGhpcy5jdXN0b21EYXRlVGlja2VyRml4ZWRUWih4LnR6b25lKTsKICAgICAgICAKICAgICAgICAgIC8vIHByb3ZpZGUgYW4gYXV0b21hdGljIHggdmFsdWUgZm9ybWF0dGVyIGlmIG5vbmUgaXMgYWxyZWFkeSBzcGVjaWZpZWQKICAgICAgICAgIGlmICgoYXR0cnMuYXhlcy54LnZhbHVlRm9ybWF0dGVyID09PSB1bmRlZmluZWQpICYmICh4LmZpeGVkdHogIT0gdHJ1ZSkpCiAgICAgICAgICAgIGF0dHJzLmF4ZXMueC52YWx1ZUZvcm1hdHRlciA9IHRoaXMueFZhbHVlRm9ybWF0dGVyKHguc2NhbGUpOwogICAgICAgICAgCiAgICAgICAgICAvLyBjb252ZXJ0IHRpbWUgdG8ganMgdGltZQogICAgICAgICAgYXR0cnMuZmlsZVswXSA9IGF0dHJzLmZpbGVbMF0ubWFwKGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICAgIHJldHVybiB0aGl6Lm5vcm1hbGl6ZURhdGVWYWx1ZSh4LnNjYWxlLCB2YWx1ZSwgeC5maXhlZHR6KTsKICAgICAgICAgIH0pOwogICAgICAgICAgaWYgKGF0dHJzLmRhdGVXaW5kb3cgIT0gbnVsbCkgewogICAgICAgICAgICBhdHRycy5kYXRlV2luZG93ID0gYXR0cnMuZGF0ZVdpbmRvdy5tYXAoZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgICAgICB2YXIgZGF0ZSA9IHRoaXoubm9ybWFsaXplRGF0ZVZhbHVlKHguc2NhbGUsIHZhbHVlLCB4LmZpeGVkdHopOwogICAgICAgICAgICAgIHJldHVybiBkYXRlLmdldFRpbWUoKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIAogICAgICAgIC8vIHRyYW5zcG9zZSBhcnJheQogICAgICAgIGF0dHJzLmZpbGUgPSBIVE1MV2lkZ2V0cy50cmFuc3Bvc2VBcnJheTJEKGF0dHJzLmZpbGUpOwogICAgICAgIAogICAgICAgIC8vIGFkZCBkcmF3Q2FsbGJhY2sgZm9yIGdyb3VwCiAgICAgICAgaWYgKHguZ3JvdXAgIT0gbnVsbCkKICAgICAgICAgIHRoaXMuYWRkR3JvdXBEcmF3Q2FsbGJhY2soeCk7ICAKICAgICAgICAgIAogICAgICAgIC8vIGFkZCBzaGFkaW5nIGFuZCBldmVudCBjYWxsYmFjayBpZiBuZWNlc3NhcnkKICAgICAgICB0aGlzLmFkZFNoYWRpbmdDYWxsYmFjayh4KTsKICAgICAgICB0aGlzLmFkZEV2ZW50Q2FsbGJhY2soeCk7CiAgICAgICAgdGhpcy5hZGRab29tQ2FsbGJhY2soeCk7CiAgICAgICAgCiAgICAgICAgLy8gZGlzYWJsZSB5LWF4aXMgdG91Y2ggZXZlbnRzIG9uIG1vYmlsZSBwaG9uZXMKICAgICAgICBpZiAoYXR0cnMubW9iaWxlRGlzYWJsZVlUb3VjaCAhPT0gZmFsc2UgJiYgdGhpcy5pc01vYmlsZVBob25lKCkpIHsKICAgICAgICAgIC8vIGNyZWF0ZSBkZWZhdWx0IGludGVyYWN0aW9uIG1vZGVsIGlmIG5lY2Vzc2FyeQogICAgICAgICAgaWYgKCFhdHRycy5pbnRlcmFjdGlvbk1vZGVsKQogICAgICAgICAgICBhdHRycy5pbnRlcmFjdGlvbk1vZGVsID0gRHlncmFwaC5JbnRlcmFjdGlvbi5kZWZhdWx0TW9kZWw7CiAgICAgICAgICAvLyBkaXNhYmxlIHkgdG91Y2ggZGlyZWN0aW9uCiAgICAgICAgICBhdHRycy5pbnRlcmFjdGlvbk1vZGVsLnRvdWNoc3RhcnQgPSBmdW5jdGlvbihldmVudCwgZHlncmFwaCwgY29udGV4dCkgewogICAgICAgICAgICBEeWdyYXBoLmRlZmF1bHRJbnRlcmFjdGlvbk1vZGVsLnRvdWNoc3RhcnQoZXZlbnQsIGR5Z3JhcGgsIGNvbnRleHQpOwogICAgICAgICAgICBjb250ZXh0LnRvdWNoRGlyZWN0aW9ucyA9IHsgeDogdHJ1ZSwgeTogZmFsc2UgfTsKICAgICAgICAgIH07CiAgICAgICAgfQogICAgCiAgICAgICAgLy8gY3JlYXRlIHBsdWdpbnMKICAgICAgICBpZiAoeC5wbHVnaW5zKSB7CiAgICAgICAgICBhdHRycy5wbHVnaW5zID0gW107CiAgICAgICAgICBmb3IgKHZhciBwbHVnaW4gaW4geC5wbHVnaW5zKSB7CiAgICAgICAgICAgIGlmICh4LnBsdWdpbnMuaGFzT3duUHJvcGVydHkocGx1Z2luKSkgewogICAgICAgICAgICAgIAogICAgICAgICAgICAgIC8vIGdldCBwbHVnaW4gb3B0aW9ucwogICAgICAgICAgICAgIHZhciBvcHRpb25zID0geC5wbHVnaW5zW3BsdWdpbl07CiAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgLy8gY3JlYXRlIHBsdWdpbiBhbmQgYWRkIHRvIGR5Z3JhcGgKICAgICAgICAgICAgICB2YXIgcCA9IG5ldyBEeWdyYXBoLlBsdWdpbnNbcGx1Z2luXShvcHRpb25zKTsKICAgICAgICAgICAgICBhdHRycy5wbHVnaW5zLnB1c2gocCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIGN1c3RvbSBwbG90dGVyCiAgICAgICAgaWYgKHgucGxvdHRlcikgewogICAgICAgICAgYXR0cnMucGxvdHRlciA9IER5Z3JhcGguUGxvdHRlcnNbeC5wbG90dGVyXTsKICAgICAgICB9CgogICAgICAgIC8vIGN1c3RvbSBkYXRhIGhhbmRsZXIKICAgICAgICBpZiAoeC5kYXRhSGFuZGxlcikgewogICAgICAgICAgYXR0cnMuZGF0YUhhbmRsZXIgPSBEeWdyYXBoLkRhdGFIYW5kbGVyc1t4LmRhdGFIYW5kbGVyXTsKICAgICAgICB9CgogICAgICAgIC8vIGN1c3RvbSBjaXJjbGVzCiAgICAgICAgaWYgKHgucG9pbnRTaGFwZSkgewogICAgICAgICAgaWYgKHR5cGVvZiB4LnBvaW50U2hhcGUgPT09ICdzdHJpbmcnKSB7CiAgICAgICAgICAgIGF0dHJzLmRyYXdQb2ludENhbGxiYWNrID0gRHlncmFwaC5DaXJjbGVzW3gucG9pbnRTaGFwZS50b1VwcGVyQ2FzZSgpXTsKICAgICAgICAgICAgYXR0cnMuZHJhd0hpZ2hsaWdodFBvaW50Q2FsbGJhY2sgPSBEeWdyYXBoLkNpcmNsZXNbeC5wb2ludFNoYXBlLnRvVXBwZXJDYXNlKCldOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZm9yICh2YXIgcyBpbiB4LnBvaW50U2hhcGUpIHsKICAgICAgICAgICAgICBpZiAoeC5wb2ludFNoYXBlLmhhc093blByb3BlcnR5KHMpKSB7CiAgICAgICAgICAgICAgICBhdHRycy5zZXJpZXNbc10uZHJhd1BvaW50Q2FsbGJhY2sgPSBEeWdyYXBoLkNpcmNsZXNbeC5wb2ludFNoYXBlW3NdLnRvVXBwZXJDYXNlKCldOwogICAgICAgICAgICAgICAgYXR0cnMuc2VyaWVzW3NdLmRyYXdIaWdobGlnaHRQb2ludENhbGxiYWNrID0gRHlncmFwaC5DaXJjbGVzW3gucG9pbnRTaGFwZVtzXS50b1VwcGVyQ2FzZSgpXTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAKICAgICAgICAvLyBpZiB0aGVyZSBpcyBubyBleGlzdGluZyBkeWdyYXBoIHBlcmZvcm0gaW5pdGlhbGl6YXRpb24KICAgICAgICBpZiAoIWR5Z3JhcGgpIHsKICAgICAgICAgIAogICAgICAgICAgLy8gc3Vic2NyaWJlIHRvIGN1c3RvbSBzaG93biBldmVudCAoZmlyZWQgYnkgaW9zbGlkZXMgdG8gdHJpZ2dlcgogICAgICAgICAgLy8gc2hpbnkgcmVhY3Rpdml0eSBidXQgd2UgY2FuIHVzZSBpdCBhcyB3ZWxsKS4gdGhpcyBpcyBuZWNlc3NhcnkKICAgICAgICAgIC8vIGJlY2F1c2UgaWYgYSBkeWdyYXBoIHN0YXJ0cyBvdXQgYXMgZGlzcGxheTpub25lIGl0IGhhcyBoZWlnaHQKICAgICAgICAgIC8vIGFuZCB3aWR0aCA9PSAwIGFuZCB0aGlzIGRvZXNuJ3QgY2hhbmdlIHdoZW4gaXQgYmVjb21lcyB2aXNpYmxlCiAgICAgICAgICAkKGVsKS5jbG9zZXN0KCdzbGlkZScpLm9uKCdzaG93bicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBpZiAoZHlncmFwaCkKICAgICAgICAgICAgICBkeWdyYXBoLnJlc2l6ZSgpOyAgCiAgICAgICAgICB9KTsKICAgICAgICAgIAogICAgICAgICAgLy8gZG8gdGhlIHNhbWUgZm9yIHJldmVhbC5qcwogICAgICAgICAgJChlbCkuY2xvc2VzdCgnc2VjdGlvbi5zbGlkZScpLm9uKCdzaG93bicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBpZiAoZHlncmFwaCkKICAgICAgICAgICAgICBkeWdyYXBoLnJlc2l6ZSgpOyAgCiAgICAgICAgICB9KTsKICAgICAgICAgIAogICAgICAgICAgLy8gcmVkcmF3IG9uIFIgTWFya2Rvd24gey50YWJzZXR9IHRhYiB2aXNpYmlsaXR5IGNoYW5nZWQKICAgICAgICAgIHZhciB0YWIgPSAkKGVsKS5jbG9zZXN0KCdkaXYudGFiLXBhbmUnKTsKICAgICAgICAgIGlmICh0YWIgIT09IG51bGwpIHsKICAgICAgICAgICAgdmFyIHRhYklEID0gdGFiLmF0dHIoJ2lkJyk7CiAgICAgICAgICAgIHZhciB0YWJBbmNob3IgPSAkKCdhW2RhdGEtdG9nZ2xlPSJ0YWIiXVtocmVmPSIjJyArIHRhYklEICsgJyJdJyk7CiAgICAgICAgICAgIGlmICh0YWJBbmNob3IgIT09IG51bGwpIHsKICAgICAgICAgICAgICB0YWJBbmNob3Iub24oJ3Nob3duLmJzLnRhYicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgaWYgKGR5Z3JhcGgpCiAgICAgICAgICAgICAgICAgIGR5Z3JhcGgucmVzaXplKCk7ICAKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgLy8gYWRkIGRlZmF1bHQgZm9udCBmb3Igdmlld2VyIG1vZGUKICAgICAgICAgIGlmICh0aGlzLnF1ZXJ5VmFyKCJ2aWV3ZXJfcGFuZSIpID09PSAiMSIpCiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuZm9udEZhbWlseSA9ICJBcmlhbCwgc2Fucy1zZXJpZiI7CiAgICAKICAgICAgICAgIC8vIGluamVjdCBjc3MgaWYgbmVjZXNzYXJ5CiAgICAgICAgICBpZiAoeC5jc3MgIT0gbnVsbCkgewogICAgICAgICAgICB2YXIgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpOwogICAgICAgICAgICBzdHlsZS50eXBlID0gJ3RleHQvY3NzJzsKICAgICAgICAgICAgaWYgKHN0eWxlLnN0eWxlU2hlZXQpIAogICAgICAgICAgICAgIHN0eWxlLnN0eWxlU2hlZXQuY3NzVGV4dCA9IHguY3NzOwogICAgICAgICAgICBlbHNlIAogICAgICAgICAgICAgIHN0eWxlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHguY3NzKSk7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoc3R5bGUpOwogICAgICAgICAgfQogICAgICAgICAgCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIAogICAgICAgICAgICAvLyByZXRhaW4gdGhlIHVzZXJEYXRlV2luZG93IGlmIHJlcXVlc3RlZAogICAgICAgICAgICBpZiAoZHlncmFwaC51c2VyRGF0ZVdpbmRvdyAhPSBudWxsCiAgICAgICAgICAgICAgICAmJiBhdHRycy5yZXRhaW5EYXRlV2luZG93ID09IHRydWUpIHsKICAgICAgICAgICAgICBhdHRycy5kYXRlV2luZG93ID0gZHlncmFwaC54QXhpc1JhbmdlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAvLyByZW1vdmUgaXQgZnJvbSBncm91cHMgaWYgaXQncyB0aGVyZQogICAgICAgICAgICBpZiAoeC5ncm91cCAhPSBudWxsICYmIGdyb3Vwc1t4Lmdyb3VwXSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgdmFyIGluZGV4ID0gZ3JvdXBzW3guZ3JvdXBdLmluZGV4T2YoZHlncmFwaCk7CiAgICAgICAgICAgICAgaWYgKGluZGV4ICE9IC0xKQogICAgICAgICAgICAgICAgZ3JvdXBzW3guZ3JvdXBdLnNwbGljZShpbmRleCwgMSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIGRlc3Ryb3kgdGhlIGV4aXN0aW5nIGR5Z3JhcGggCiAgICAgICAgICAgIGR5Z3JhcGguZGVzdHJveSgpOwogICAgICAgICAgICBkeWdyYXBoID0gbnVsbDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gY3JlYXRlIHRoZSBkeWdyYXBoIGFuZCBhZGQgaXQgdG8gaXQncyBncm91cCAoaWYgYW55KQogICAgICAgIGR5Z3JhcGggPSB0aGl6LmR5Z3JhcGggPSBuZXcgRHlncmFwaChlbCwgYXR0cnMuZmlsZSwgYXR0cnMpOwogICAgICAgIGR5Z3JhcGgudXNlckRhdGVXaW5kb3cgPSBhdHRycy5kYXRlV2luZG93OwogICAgICAgIGlmICh4Lmdyb3VwICE9IG51bGwpCiAgICAgICAgICBncm91cHNbeC5ncm91cF0ucHVzaChkeWdyYXBoKTsKICAgCQogICAgICAgIC8vIGFkZCBzaGlueSBpbnB1dHMgZm9yIGRhdGUgd2luZG93IGFuZCBjbGljawogICAgICAgIGlmIChIVE1MV2lkZ2V0cy5zaGlueU1vZGUpIHsKICAgICAgICAgIHZhciBpc0RhdGUgPSB4LmZvcm1hdCA9PSAiZGF0ZSI7CiAgICAgICAgICB0aGlzLmFkZENsaWNrU2hpbnlJbnB1dChlbC5pZCwgaXNEYXRlKTsKICAgICAgICAgIHRoaXMuYWRkRGF0ZVdpbmRvd1NoaW55SW5wdXQoZWwuaWQsIGlzRGF0ZSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIHNldCBhbm5vdGF0aW9ucwogICAgICAgIGlmICh4LmFubm90YXRpb25zICE9IG51bGwpIHsKICAgICAgICAgIGR5Z3JhcGgucmVhZHkoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmICh4LmZvcm1hdCA9PSAiZGF0ZSIpIHsKICAgICAgICAgICAgICB4LmFubm90YXRpb25zLm1hcChmdW5jdGlvbihhbm5vdGF0aW9uKSB7CiAgICAgICAgICAgICAgICB2YXIgZGF0ZSA9IHRoaXoubm9ybWFsaXplRGF0ZVZhbHVlKHguc2NhbGUsIGFubm90YXRpb24ueCwgeC5maXhlZHR6KTsKICAgICAgICAgICAgICAgIGFubm90YXRpb24ueCA9IGRhdGUuZ2V0VGltZSgpOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGR5Z3JhcGguc2V0QW5ub3RhdGlvbnMoeC5hbm5vdGF0aW9ucyk7CiAgICAgICAgICB9KTsgCiAgICAgICAgfQogICAgICAgICAgCiAgICAgIH0sCiAgICAgIAogICAgICBjdXN0b21EYXRlVGlja2VyRml4ZWRUWiA6IGZ1bmN0aW9uKHR6KXsKICAgICAgICByZXR1cm4gZnVuY3Rpb24odCxlLGEsaSxyKSB7ICAgCiAgICAgICAgICB2YXIgYT1EeWdyYXBoLnBpY2tEYXRlVGlja0dyYW51bGFyaXR5KHQsZSxhLGkpOwogICAgICAgICAgaWYoYSA+PSAwKXsKICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBuPWkoImF4aXNMYWJlbEZvcm1hdHRlciIpLAogICAgICAgICAgICBvPWkoImxhYmVsc1VUQyIpLAogICAgICAgICAgICBzPW8/RHlncmFwaC5EYXRlQWNjZXNzb3JzVVRDOkR5Z3JhcGguRGF0ZUFjY2Vzc29yc0xvY2FsOwogICAgICAgICAgICBsPUR5Z3JhcGguVElDS19QTEFDRU1FTlRbYV0uZGF0ZWZpZWxkOwogICAgICAgICAgICBoPUR5Z3JhcGguVElDS19QTEFDRU1FTlRbYV0uc3RlcDsKICAgICAgICAgICAgcD1EeWdyYXBoLlRJQ0tfUExBQ0VNRU5UW2FdLnNwYWNpbmc7CiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgeSA9IFtdOwogICAgICAgICAgICB2YXIgZCA9IG1vbWVudCh0KTsKICAgICAgICAgICAgZC50eih0eik7IAogICAgICAgICAgICBkLm1pbGxpc2Vjb25kKDApOwogICAgICAgICAgCiAgICAgICAgICAgIGlmKGwgPiBEeWdyYXBoLkRBVEVGSUVMRF9NKXsKICAgICAgICAgICAgICB2YXIgeDsKICAgICAgICAgICAgICBpZiAobCA9PT0gRHlncmFwaC5EQVRFRklFTERfU1MpIHsgIC8vIHNlY29uZHMgCiAgICAgICAgICAgICAgICB4ID0gZC5zZWNvbmQoKTsgICAgICAgICAKICAgICAgICAgICAgICAgIGQuc2Vjb25kKHggLSB4ICUgaCk7ICAgICAKICAgICAgICAgICAgICB9IGVsc2UgaWYobCA9PT0gRHlncmFwaC5EQVRFRklFTERfTU0pewogICAgICAgICAgICAgICAgZC5zZWNvbmQoMCkKICAgICAgICAgICAgICAgIHggPSBkLm1pbnV0ZSgpOwogICAgICAgICAgICAgICAgZC5taW51dGUoeCAtIHggJSBoKTsKICAgICAgICAgICAgICB9IGVsc2UgaWYobCA9PT0gRHlncmFwaC5EQVRFRklFTERfSEgpewogICAgICAgICAgICAgICAgZC5zZWNvbmQoMCk7CiAgICAgICAgICAgICAgICBkLm1pbnV0ZSgwKTsKICAgICAgICAgICAgICAgIHggPSBkLmhvdXIoKTsKICAgICAgICAgICAgICAgIGQuaG91cih4IC0geCAlIGgpOwogICAgICAgICAgICAgIH0gZWxzZSBpZihsID09PSBEeWdyYXBoLkRBVEVGSUVMRF9EKXsKICAgICAgICAgICAgICAgIGQuc2Vjb25kKDApOwogICAgICAgICAgICAgICAgZC5taW51dGUoMCk7CiAgICAgICAgICAgICAgICBkLmhvdXIoMCk7CiAgICAgICAgICAgICAgICBpZiAoaCA9PSA3KSB7ICAvLyBvbmUgd2VlawogICAgICAgICAgICAgICAgICAgIGQuc3RhcnRPZignd2VlaycpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAKICAgICAgICAgICAgICB2ID0gZC52YWx1ZU9mKCk7CiAgICAgICAgICAgICAgXz1tb21lbnQodikudHoodHopOwogICAgICAgICAgICAKICAgICAgICAgICAgICAvLyBGb3Igc3BhY2luZ3MgY29hcnNlciB0aGFuIHR3by1ob3VybHksIHdlIHdhbnQgdG8gaWdub3JlIGRheWxpZ2h0CiAgICAgICAgICAgICAgLy8gc2F2aW5ncyB0cmFuc2l0aW9ucyB0byBnZXQgY29uc2lzdGVudCB0aWNrcy4gRm9yIGZpbmVyLWdyYWluZWQgdGlja3MsCiAgICAgICAgICAgICAgLy8gaXQncyBlc3NlbnRpYWwgdG8gc2hvdyB0aGUgRFNUIHRyYW5zaXRpb24gaW4gYWxsIGl0cyBtZXNzaW5lc3MuCiAgICAgICAgICAgICAgdmFyIHN0YXJ0X29mZnNldF9taW4gPSBtb21lbnQodikudHoodHopLnpvbmUoKTsKICAgICAgICAgICAgICB2YXIgY2hlY2tfZHN0ID0gKHAgPj0gRHlncmFwaC5USUNLX1BMQUNFTUVOVFtEeWdyYXBoLlRXT19IT1VSTFldLnNwYWNpbmcpOwogICAgICAgICAgICAgIAogICAgCSAgICAgICAgaWYoYTw9RHlncmFwaC5IT1VSTFkpewogICAgCQkgICAgICAgIGZvcih0PnYmJih2Kz1wLF89bW9tZW50KHYpLnR6KHR6KSk7ZT49djspewogICAgCQkJICAgICAgICB5LnB1c2goe3Y6dixsYWJlbDpuKF8sYSxpLHIpfSk7CiAgICAJCQkgICAgICAgIHYrPXA7CiAgICAJCQkgICAgICAgIF89bW9tZW50KHYpLnR6KHR6KTsKICAgIAkJICAgICAgICB9CiAgICAJICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICAgIGZvcih0PnYmJih2Kz1wLF89bW9tZW50KHYpLnR6KHR6KSk7ZT49djspeyAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgLy8gVGhpcyBlbnN1cmVzIHRoYXQgd2Ugc3RheSBvbiB0aGUgc2FtZSBob3VybHkgInJoeXRobSIgYWNyb3NzCiAgICAgICAgICAgICAgICAgIC8vIGRheWxpZ2h0IHNhdmluZ3MgdHJhbnNpdGlvbnMuIFdpdGhvdXQgdGhpcywgdGhlIHRpY2tzIGNvdWxkIGdldCBvZmYKICAgICAgICAgICAgICAgICAgLy8gYnkgYW4gaG91ci4gU2VlIHRlc3RzL2RheWxpZ2h0LXNhdmluZ3MuaHRtbCBvciBpc3N1ZSAxNDcuCiAgICAgICAgICAgICAgICAgIGlmIChjaGVja19kc3QgJiYgXy56b25lKCkgIT0gc3RhcnRfb2Zmc2V0X21pbikgewogICAgICAgICAgICAgICAgICAgIHZhciBkZWx0YV9taW4gPSBfLnpvbmUoKSAtIHN0YXJ0X29mZnNldF9taW47CiAgICAgICAgICAgICAgICAgICAgdiArPSBkZWx0YV9taW4gKiA2MCAqIDEwMDA7CiAgICAgICAgICAgICAgICAgICAgXz0gbW9tZW50KHYpLnR6KHR6KTsKICAgICAgICAgICAgICAgICAgICBzdGFydF9vZmZzZXRfbWluID0gXy56b25lKCk7CiAgICAKICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayB3aGV0aGVyIHdlJ3ZlIGJhY2tlZCBpbnRvIHRoZSBwcmV2aW91cyB0aW1lem9uZSBhZ2Fpbi4KICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gZHVyaW5nIGEgInNwcmluZyBmb3J3YXJkIiB0cmFuc2l0aW9uLiBJbiB0aGlzIGNhc2UsCiAgICAgICAgICAgICAgICAgICAgLy8gaXQncyBiZXN0IHRvIHNraXAgdGhpcyB0aWNrIGFsdG9nZXRoZXIgKHdlIG1heSBiZSBzaG9vdGluZyBmb3IgYQogICAgICAgICAgICAgICAgICAgIC8vIG5vbi1leGlzdGVudCB0aW1lIGxpa2UgdGhlIDJBTSB0aGF0J3Mgc2tpcHBlZCkgYW5kIGdvIHRvIHRoZSBuZXh0CiAgICAgICAgICAgICAgICAgICAgLy8gb25lLgogICAgICAgICAgICAgICAgICAgIGlmIChtb21lbnQodiArIHApLnR6KHR6KS56b25lKCkgIT0gc3RhcnRfb2Zmc2V0X21pbikgewogICAgICAgICAgICAgICAgICAgICAgdiArPSBwOwogICAgICAgICAgICAgICAgICAgICAgXz0gbW9tZW50KHYpLnR6KHR6KTsKICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X29mZnNldF9taW4gPSBfLnpvbmUoKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAoYT49RHlncmFwaC5EQUlMWXx8Xy5nZXQoJ2hvdXInKSVoPT09MCkmJnkucHVzaCh7djp2LGxhYmVsOm4oXyxhLGkscil9KTsKICAgIAkJCSAgICAgICAgdis9cDsKICAgIAkJCSAgICAgICAgXz1tb21lbnQodikudHoodHopOwogICAgCQkgICAgICAgIH0KICAgIAkgICAgICAgIH0KICAgIAkgICAgICB9ZWxzZXsKICAgICAgICAgICAgICB2YXIgc3RhcnRfeWVhciA9IG1vbWVudCh0KS50eih0eikueWVhcigpOwogICAgICAgICAgICAgIHZhciBlbmRfeWVhciAgID0gbW9tZW50KGUpLnR6KHR6KS55ZWFyKCk7CiAgICAgICAgICAgICAgdmFyIHN0YXJ0X21vbnRoID0gbW9tZW50KHQpLnR6KHR6KS5tb250aCgpOwogICAgICAgICAgICAgIAogICAgICAgICAgICAgIGlmKGwgPT09IER5Z3JhcGguREFURUZJRUxEX00pewogICAgICAgICAgICAgICAgdmFyIHN0ZXBfbW9udGggPSBoOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaWkgPSBzdGFydF95ZWFyOyBpaSA8PSBlbmRfeWVhcjsgaWkrKykgewogICAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IDEyOykgewogICAgICAgICAgICAgICAgICAgIHZhciBkdCA9IG1vbWVudChuZXcgRGF0ZShpaSwgaiwgMSkpLnR6KHR6KTsgCiAgICAgICAgICAgICAgICAgICAgLy8gZml4IHNvbWUgdHogYnVnCiAgICAgICAgICAgICAgICAgICAgZHQueWVhcihpaSk7CiAgICAgICAgICAgICAgICAgICAgZHQubW9udGgoaik7CiAgICAgICAgICAgICAgICAgICAgZHQuZGF0ZSgxKTsKICAgICAgICAgICAgICAgICAgICBkdC5ob3VyKDApOwogICAgICAgICAgICAgICAgICAgIHYgPSBkdC52YWx1ZU9mKCk7CiAgICAgICAgICAgICAgICAgICAgeS5wdXNoKHt2OnYsbGFiZWw6bihtb21lbnQodikudHoodHopLGEsaSxyKX0pOwogICAgICAgICAgICAgICAgICAgIGorPXN0ZXBfbW9udGg7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICAgIHZhciBzdGVwX3llYXIgPSBoOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaWkgPSBzdGFydF95ZWFyOyBpaSA8PSBlbmRfeWVhcjspIHsKICAgICAgICAgICAgICAgICAgdmFyIGR0ID0gbW9tZW50KG5ldyBEYXRlKGlpLCAxLCAxKSkudHoodHopOyAKICAgICAgICAgICAgICAgICAgLy8gZml4IHNvbWUgdHogYnVnCiAgICAgICAgICAgICAgICAgIGR0LnllYXIoaWkpOwogICAgICAgICAgICAgICAgICBkdC5tb250aChqKTsKICAgICAgICAgICAgICAgICAgZHQuZGF0ZSgxKTsKICAgICAgICAgICAgICAgICAgZHQuaG91cigwKTsKICAgICAgICAgICAgICAgICAgdiA9IGR0LnZhbHVlT2YoKTsKICAgICAgICAgICAgICAgICAgeS5wdXNoKHt2OnYsbGFiZWw6bihtb21lbnQodikudHoodHopLGEsaSxyKX0pOwogICAgICAgICAgICAgICAgICBpaSs9c3RlcF95ZWFyOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgIAkgICAgICB9CiAgICAJICAgICAgcmV0dXJuIHk7CiAgICAJICAgIH1lbHNlewogICAgICAgICAgIHJldHVybiBbXTsgCiAgICAJICAgIH0KICAgICAgICB9OwogICAgICB9LAogICAgCiAgICAgIHhBeGlzTGFiZWxGb3JtYXR0ZXJGaXhlZFRaIDogZnVuY3Rpb24odHopewogICAgICAKICAgICAgICByZXR1cm4gZnVuY3Rpb24gZGF0ZUF4aXNGb3JtYXR0ZXIoZGF0ZSwgZ3JhbnVsYXJpdHkpewogICAgICAgICAgdmFyIG1tbnQgPSBtb21lbnQoZGF0ZSkudHoodHopOwogICAgICAgICAgaWYgKGdyYW51bGFyaXR5ID49IER5Z3JhcGguREVDQURBTCl7CiAgICAgICAgICAgIHJldHVybiBtbW50LmZvcm1hdCgnWVlZWScpOwogICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgIGlmKGdyYW51bGFyaXR5ID49IER5Z3JhcGguTU9OVEhMWSl7CiAgICAgICAgICAgICAgcmV0dXJuIG1tbnQuZm9ybWF0KCdNTU0gWVlZWScpOwogICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICB2YXIgZnJhYyA9IG1tbnQuaG91cigpICogMzYwMCArIG1tbnQubWludXRlKCkgKiA2MCArIG1tbnQuc2Vjb25kKCkgKyBtbW50Lm1pbGxpc2Vjb25kKCk7CiAgICAgICAgICAgICAgICBpZiAoZnJhYyA9PT0gMCB8fCBncmFudWxhcml0eSA+PSBEeWdyYXBoLkRBSUxZKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiBtbW50LmZvcm1hdCgnREQgTU1NJyk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGlmIChtbW50LnNlY29uZCgpKSB7CiAgICAgICAgICAgICAgICAgICByZXR1cm4gbW1udC5mb3JtYXQoJ0hIOm1tOnNzJyk7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgIHJldHVybiBtbW50LmZvcm1hdCgnSEg6bW0nKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgfSAgICAgICAgIAogICAgICAgfQogICAgICB9LAogICAgICAgICAgICAgCiAgICAgIHhWYWx1ZUZvcm1hdHRlckZpeGVkVFo6IGZ1bmN0aW9uKHNjYWxlLCB0eikgewogICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIHJldHVybiBmdW5jdGlvbihtaWxsaXMpIHsKICAgICAgICAgIHZhciBtbW50ID0gbW9tZW50KG1pbGxpcykudHoodHopOwogICAgICAgICAgaWYgKHNjYWxlID09ICJ5ZWFybHkiKQogICAgICAgICAgICByZXR1cm4gbW1udC5mb3JtYXQoJ1lZWVknKSArICcgKCcgKyBtbW50LnpvbmVBYmJyKCkgKyAnKSc7CiAgICAgICAgICBlbHNlIGlmIChzY2FsZSA9PSAicXVhcnRlcmx5IikKICAgICAgICAgICAgcmV0dXJuIG1tbnQuZnF1YXJ0ZXIoMSkgKyAnICgnICsgbW1udC56b25lQWJicigpICsgJyknOwogICAgICAgICAgICBlbHNlIGlmIChzY2FsZSA9PSAibW9udGhseSIpCiAgICAgICAgICAgICAgcmV0dXJuIG1tbnQuZm9ybWF0KCdNTU0sIFlZWVknKSsgJyAoJyArIG1tbnQuem9uZUFiYnIoKSArICcpJzsKICAgICAgICAgICAgZWxzZSBpZiAoc2NhbGUgPT0gImRhaWx5IiB8fCBzY2FsZSA9PSAid2Vla2x5IikKICAgICAgICAgICAgICByZXR1cm4gbW1udC5mb3JtYXQoJ01NTSwgREQsIFlZWVknKSsgJyAoJyArIG1tbnQuem9uZUFiYnIoKSArICcpJzsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgIHJldHVybiBtbW50LmZvcm1hdCgnZGRkZCwgTU1NTSBERCwgWVlZWSBISDptbTpzcycpKyAnICgnICsgbW1udC56b25lQWJicigpICsgJyknOwogICAgICAgIH0KICAgICAgfSwKICAgICAgCiAgICAgIHhWYWx1ZUZvcm1hdHRlcjogZnVuY3Rpb24oc2NhbGUpIHsKICAgICAgICAKICAgICAgICB2YXIgbW9udGhOYW1lcyA9IFsiSmFuIiwgIkZlYiIsICJNYXIiLCAiQXByIiwgIk1heSIsICJKdW4iLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAiSnVsIiwgIkF1ZyIsICJTZXAiLCAiT2N0IiwgIk5vdiIsICJEZWMiXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICByZXR1cm4gZnVuY3Rpb24obWlsbGlzKSB7CiAgICAgICAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKG1pbGxpcyk7CiAgICAgICAgICBpZiAoc2NhbGUgPT0gInllYXJseSIpCiAgICAgICAgICAgIHJldHVybiBkYXRlLmdldEZ1bGxZZWFyKCk7CiAgICAgICAgICBlbHNlIGlmIChzY2FsZSA9PSAicXVhcnRlcmx5IikKICAgICAgICAgICAgcmV0dXJuIG1vbWVudChtaWxsaXMpLmZxdWFydGVyKDEpOwogICAgICAgICAgZWxzZSBpZiAoc2NhbGUgPT0gIm1vbnRobHkiKQogICAgICAgICAgICByZXR1cm4gbW9udGhOYW1lc1tkYXRlLmdldE1vbnRoKCldICsgJywgJyArIGRhdGUuZ2V0RnVsbFllYXIoKTsgCiAgICAgICAgICBlbHNlIGlmIChzY2FsZSA9PSAiZGFpbHkiIHx8IHNjYWxlID09ICJ3ZWVrbHkiKQogICAgICAgICAgICByZXR1cm4gbW9udGhOYW1lc1tkYXRlLmdldE1vbnRoKCldICsgJywgJyArIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlLmdldERhdGUoKSArICcsICcgKyAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpOwogICAgICAgICAgZWxzZQogICAgICAgICAgICByZXR1cm4gZGF0ZS50b0xvY2FsZVN0cmluZygpOwogICAgICAgIH0KICAgICAgfSwKICAgICAgCiAgICAgIGFkZFpvb21DYWxsYmFjazogZnVuY3Rpb24oeCkgewogICAgICAgIAogICAgICAgIC8vIGFsaWFzIHRoaXMKICAgICAgICB2YXIgdGhpeiA9IHRoaXM7CiAgICAgICAgCiAgICAgICAgLy8gZ2V0IGF0dHJzCiAgICAgICAgdmFyIGF0dHJzID0geC5hdHRyczsKICAgICAgICAKICAgICAgICAvLyBjaGVjayBmb3IgYW4gZXhpc3Rpbmcgem9vbUNhbGxiYWNrCiAgICAgICAgdmFyIHByZXZab29tQ2FsbGJhY2sgPSBhdHRyc1siem9vbUNhbGxiYWNrIl07CiAgICAgICAgCiAgICAgICAgYXR0cnMuem9vbUNhbGxiYWNrID0gZnVuY3Rpb24obWluRGF0ZSwgbWF4RGF0ZSwgeVJhbmdlcykgewogICAgICAgICAgCiAgICAgICAgICAvLyBjYWxsIGV4aXN0aW5nCiAgICAgICAgICBpZiAocHJldlpvb21DYWxsYmFjaykKICAgICAgICAgICAgcHJldlpvb21DYWxsYmFjayhtaW5EYXRlLCBtYXhEYXRlLCB5UmFuZ2VzKTsKICAgICAgICAgICAgCiAgICAgICAgICAvLyByZWNvcmQgdXNlciBkYXRlIHdpbmRvdyAob3IgbGFjayB0aGVyZW9mKQogICAgICAgICAgaWYgKGR5Z3JhcGgueEF4aXNFeHRyZW1lcygpWzBdICE9IG1pbkRhdGUgfHwKICAgICAgICAgICAgICBkeWdyYXBoLnhBeGlzRXh0cmVtZXMoKVsxXSAhPSBtYXhEYXRlKSB7CiAgICAgICAgICAgICBkeWdyYXBoLnVzZXJEYXRlV2luZG93ID0gW21pbkRhdGUsIG1heERhdGVdOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGR5Z3JhcGgudXNlckRhdGVXaW5kb3cgPSBudWxsOwogICAgICAgICAgfQogICAgICAgICAgCiAgICAgICAgICAvLyByZWNvcmQgaW4gZ3JvdXAgaWYgbmVjZXNzYXJ5CiAgICAgICAgICBpZiAoeC5ncm91cCAhPSBudWxsICYmIGdyb3Vwc1t4Lmdyb3VwXSAhPSBudWxsKSB7CiAgICAgICAgICAgIHZhciBncm91cCA9IGdyb3Vwc1t4Lmdyb3VwXTsKICAgICAgICAgICAgZm9yKHZhciBpID0gMDsgaTxncm91cC5sZW5ndGg7IGkrKykKICAgICAgICAgICAgICBncm91cFtpXS51c2VyRGF0ZVdpbmRvdyA9IGR5Z3JhcGgudXNlckRhdGVXaW5kb3c7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgfSwKICAgICAgCiAgICAgIGFkZEdyb3VwRHJhd0NhbGxiYWNrOiBmdW5jdGlvbih4KSB7CiAgICAgICAgCiAgICAgICAgLy8gZ2V0IGF0dHJzCiAgICAgICAgdmFyIGF0dHJzID0geC5hdHRyczsKICAgICAgICAKICAgICAgICAvLyBjaGVjayBmb3IgYW4gZXhpc3RpbmcgZHJhd0NhbGxiYWNrCiAgICAgICAgdmFyIHByZXZEcmF3Q2FsbGJhY2sgPSBhdHRyc1siZHJhd0NhbGxiYWNrIl07CiAgICAgICAgCiAgICAgICAgZ3JvdXBzW3guZ3JvdXBdID0gZ3JvdXBzW3guZ3JvdXBdIHx8IFtdOwogICAgICAgIHZhciBncm91cCA9IGdyb3Vwc1t4Lmdyb3VwXTsKICAgICAgICB2YXIgYmxvY2tSZWRyYXcgPSBmYWxzZTsKICAgICAgICBhdHRycy5kcmF3Q2FsbGJhY2sgPSBmdW5jdGlvbihtZSwgaW5pdGlhbCkgewogICAgICAgICAgCiAgICAgICAgICAvLyBjYWxsIGV4aXN0aW5nCiAgICAgICAgICBpZiAocHJldkRyYXdDYWxsYmFjaykKICAgICAgICAgICAgcHJldkRyYXdDYWxsYmFjayhtZSwgaW5pdGlhbCk7CiAgICAgICAgICAKICAgICAgICAgIC8vIHN5bmMgcGVlcnMgaW4gZ3JvdXAKICAgICAgICAgIGlmIChibG9ja1JlZHJhdyB8fCBpbml0aWFsKSByZXR1cm47CiAgICAgICAgICBibG9ja1JlZHJhdyA9IHRydWU7CiAgICAgICAgICB2YXIgcmFuZ2UgPSBkeWdyYXBoLnhBeGlzUmFuZ2UoKTsKICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgZ3JvdXAubGVuZ3RoOyBqKyspIHsKICAgICAgICAgICAgaWYgKGdyb3VwW2pdID09IG1lKSBjb250aW51ZTsKICAgICAgICAgICAgLy8gdXBkYXRlIGdyb3VwIHJhbmdlIG9ubHkgaWYgaXQncyBkaWZmZXJlbnQgKHByZXZlbnRzCiAgICAgICAgICAgIC8vIGluZmluaXRlIHJlY3Vyc2lvbiBpbiB1cGRhdGVPcHRpb25zKQogICAgICAgICAgICB2YXIgcGVlclJhbmdlID0gZ3JvdXBbal0ueEF4aXNSYW5nZSgpOwogICAgICAgICAgICBpZiAocGVlclJhbmdlWzBdICE9IHJhbmdlWzBdIHx8IHBlZXJSYW5nZVsxXSAhPSByYW5nZVsxXSkgewogICAgICAgICAgICAgIGdyb3VwW2pdLnVwZGF0ZU9wdGlvbnMoewogICAgICAgICAgICAgICAgZGF0ZVdpbmRvdzogcmFuZ2UKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgYmxvY2tSZWRyYXcgPSBmYWxzZTsKICAgICAgICB9OwogICAgICB9LAogICAgICAKICAgICAgYWRkU2hhZGluZ0NhbGxiYWNrOiBmdW5jdGlvbih4KSB7CiAgICAgICAgCiAgICAgICAgLy8gYmFpbCBpZiBubyBzaGFkaW5ncwogICAgICAgIGlmICh4LnNoYWRpbmdzLmxlbmd0aCA9PSAwKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIAogICAgICAgIC8vIGFsaWFzIHRoaXMKICAgICAgICB2YXIgdGhpeiA9IHRoaXM7CiAgICAgICAgCiAgICAgICAgLy8gZ2V0IGF0dHJzCiAgICAgICAgdmFyIGF0dHJzID0geC5hdHRyczsKICAgICAgICAKICAgICAgICAvLyBjaGVjayBmb3IgYW4gZXhpc3RpbmcgdW5kZXJsYXlDYWxsYmFjawogICAgICAgIHZhciBwcmV2VW5kZXJsYXlDYWxsYmFjayA9IGF0dHJzWyJ1bmRlcmxheUNhbGxiYWNrIl07CiAgICAgICAgCiAgICAgICAgLy8gaW5zdGFsbCBjYWxsYmFjawogICAgICAgIGF0dHJzLnVuZGVybGF5Q2FsbGJhY2sgPSBmdW5jdGlvbihjYW52YXMsIGFyZWEsIGcpIHsKICAgICAgICAgIAogICAgICAgICAgLy8gY2FsbCBleGlzdGluZwogICAgICAgICAgaWYgKHByZXZVbmRlcmxheUNhbGxiYWNrKQogICAgICAgICAgICBwcmV2VW5kZXJsYXlDYWxsYmFjayhjYW52YXMsIGFyZWEsIGcpOwogICAgICAgICAgICAKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgeC5zaGFkaW5ncy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB2YXIgc2hhZGluZyA9IHguc2hhZGluZ3NbaV07CiAgICAgICAgICAgIGNhbnZhcy5zYXZlKCk7CiAgICAgICAgICAgIGNhbnZhcy5maWxsU3R5bGUgPSBzaGFkaW5nLmNvbG9yOwogICAgICAgICAgICBpZiAoc2hhZGluZy5heGlzID09ICJ4IikgewogICAgICAgICAgICAgIHZhciB4MSA9IHNoYWRpbmcuZnJvbTsKICAgICAgICAgICAgICB2YXIgeDIgPSBzaGFkaW5nLnRvOwogICAgICAgICAgICAgIGlmICh4LmZvcm1hdCA9PSAiZGF0ZSIpIHsKICAgICAgICAgICAgICAgIHgxID0gdGhpei5ub3JtYWxpemVEYXRlVmFsdWUoeC5zY2FsZSwgeDEsIHguZml4ZWR0eikuZ2V0VGltZSgpOwogICAgICAgICAgICAgICAgeDIgPSB0aGl6Lm5vcm1hbGl6ZURhdGVWYWx1ZSh4LnNjYWxlLCB4MiwgeC5maXhlZHR6KS5nZXRUaW1lKCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHZhciBsZWZ0ID0gZy50b0RvbVhDb29yZCh4MSk7CiAgICAgICAgICAgICAgdmFyIHJpZ2h0ID0gZy50b0RvbVhDb29yZCh4Mik7CiAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgY2FudmFzLmZpbGxSZWN0KGxlZnQsIGFyZWEueSwgcmlnaHQgLSBsZWZ0LCBhcmVhLmgpOwogICAgICAgICAgICB9IGVsc2UgaWYgKHNoYWRpbmcuYXhpcyA9PSAieSIpIHsKICAgICAgICAgICAgICB2YXIgYm90dG9tID0gZy50b0RvbVlDb29yZChzaGFkaW5nLmZyb20pOwogICAgICAgICAgICAgIHZhciB0b3AgPSBnLnRvRG9tWUNvb3JkKHNoYWRpbmcudG8pOwogICAgCiAgICAgICAgICAgICAgY2FudmFzLmZpbGxSZWN0KGFyZWEueCwgYm90dG9tLCBhcmVhLncsIHRvcCAtIGJvdHRvbSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2FudmFzLnJlc3RvcmUoKTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICB9LAogICAgICAKICAgICAgYWRkRXZlbnRDYWxsYmFjazogZnVuY3Rpb24oeCkgewogICAgICAgIAogICAgICAgIC8vIGJhaWwgaWYgbm8gZXZldHMKICAgICAgICBpZiAoeC5ldmVudHMubGVuZ3RoID09IDApCiAgICAgICAgICByZXR1cm47CiAgICAgICAgCiAgICAgICAgLy8gYWxpYXMgdGhpcwogICAgICAgIHZhciB0aGl6ID0gdGhpczsKICAgICAgICAKICAgICAgICAvLyBnZXQgYXR0cnMKICAgICAgICB2YXIgYXR0cnMgPSB4LmF0dHJzOwogICAgICAgIAogICAgICAgIC8vIGNoZWNrIGZvciBhbiBleGlzdGluZyB1bmRlcmxheUNhbGxiYWNrCiAgICAgICAgdmFyIHByZXZVbmRlcmxheUNhbGxiYWNrID0gYXR0cnNbInVuZGVybGF5Q2FsbGJhY2siXTsKICAgICAgICAKICAgICAgICAvLyBpbnN0YWxsIGNhbGxiYWNrCiAgICAgICAgYXR0cnMudW5kZXJsYXlDYWxsYmFjayA9IGZ1bmN0aW9uKGNhbnZhcywgYXJlYSwgZykgewogICAgICAgICAgCiAgICAgICAgICAvLyBjYWxsIGV4aXN0aW5nCiAgICAgICAgICBpZiAocHJldlVuZGVybGF5Q2FsbGJhY2spCiAgICAgICAgICAgIHByZXZVbmRlcmxheUNhbGxiYWNrKGNhbnZhcywgYXJlYSwgZyk7CiAgICAgICAgICAgIAogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB4LmV2ZW50cy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAKICAgICAgICAgICAgLy8gZ2V0IGV2ZW50IGFuZCB4LWNvb3JkaW5hdGUKICAgICAgICAgICAgdmFyIGV2ZW50ID0geC5ldmVudHNbaV07CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBkcmF3IGxpbmUKICAgICAgICAgICAgY2FudmFzLnNhdmUoKTsKICAgICAgICAgICAgY2FudmFzLnN0cm9rZVN0eWxlID0gZXZlbnQuY29sb3I7CiAgICAgICAgICAgIGlmIChldmVudC5heGlzID09ICJ4IikgewogICAgICAgICAgICAgIHZhciB4UG9zOwogICAgICAgICAgICAgIGlmIChqUXVlcnkuaXNOdW1lcmljKGV2ZW50LnBvcykpIHsKICAgICAgICAgICAgICAgIHhQb3MgPSBnLnRvRG9tWENvb3JkKGV2ZW50LnBvcyk7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHhQb3MgPSB0aGl6Lm5vcm1hbGl6ZURhdGVWYWx1ZSh4LnNjYWxlLCBldmVudC5wb3MsIHguZml4ZWR0eikuZ2V0VGltZSgpOwogICAgICAgICAgICAgICAgeFBvcyA9IGcudG9Eb21YQ29vcmQoeFBvcyk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIAogICAgICAgICAgICAgIC8vIGRyYXcgbGluZQogICAgICAgICAgICAgIHRoaXouZGFzaGVkTGluZShjYW52YXMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4UG9zLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlYS55LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeFBvcywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZWEueSArIGFyZWEuaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3Ryb2tlUGF0dGVybik7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuYXhpcyA9PSAieSIpIHsKICAgICAgICAgICAgICB5UG9zID0gZy50b0RvbVlDb29yZChldmVudC5wb3MpOwogICAgICAgICAgICAgIAogICAgICAgICAgICAgIHRoaXouZGFzaGVkTGluZShjYW52YXMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmVhLngsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5UG9zLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlYS54ICsgYXJlYS53LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeVBvcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3Ryb2tlUGF0dGVybik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2FudmFzLnJlc3RvcmUoKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIGRyYXcgbGFiZWwKICAgICAgICAgICAgaWYgKGV2ZW50LmxhYmVsICE9IG51bGwpIHsKICAgICAgICAgICAgICBjYW52YXMuc2F2ZSgpOwogICAgICAgICAgICAgIHRoaXouc2V0Rm9udFNpemUoY2FudmFzLCAxMik7CiAgICAgICAgICAgICAgdmFyIHNpemUgPSBjYW52YXMubWVhc3VyZVRleHQoZXZlbnQubGFiZWwpOwogICAgICAgICAgICAgIGlmIChldmVudC5heGlzID09ICJ4IikgewogICAgICAgICAgICAgICAgdmFyIHR4ID0geFBvcyAtIDQ7CiAgICAgICAgICAgICAgICB2YXIgdHk7CiAgICAgICAgICAgICAgICBpZiAoZXZlbnQubGFiZWxMb2MgPT0gInRvcCIpCiAgICAgICAgICAgICAgICAgIHR5ID0gYXJlYS55ICsgc2l6ZS53aWR0aCArIDEwOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICB0eSA9IGFyZWEueSArIGFyZWEuaCAtIDEwOwogICAgICAgICAgICAgICAgY2FudmFzLnRyYW5zbGF0ZSh0eCwgdHkpOwogICAgICAgICAgICAgICAgY2FudmFzLnJvdGF0ZSgzICogTWF0aC5QSSAvIDIpOwogICAgICAgICAgICAgICAgY2FudmFzLnRyYW5zbGF0ZSgtdHgsLXR5KTsKICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmF4aXMgPT0gInkiKSB7CiAgICAgICAgICAgICAgICB2YXIgdHkgPSB5UG9zIC0gNDsKICAgICAgICAgICAgICAgIHZhciB0eDsKICAgICAgICAgICAgICAgIGlmIChldmVudC5sYWJlbExvYyA9PSAicmlnaHQiKQogICAgICAgICAgICAgICAgICB0eCA9IGFyZWEueCArIGFyZWEudyAtIHNpemUud2lkdGggLSAxMDsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgdHggPSBhcmVhLnggKyAxMDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY2FudmFzLmZpbGxTdHlsZSA9IGV2ZW50LmNvbG9yOwogICAgICAgICAgICAgIGNhbnZhcy5maWxsVGV4dChldmVudC5sYWJlbCwgdHgsIHR5KTsKICAgICAgICAgICAgICBjYW52YXMucmVzdG9yZSgpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgfSwKICAgICAgCiAgICAgIGFkZERhdGVXaW5kb3dTaGlueUlucHV0OiBmdW5jdGlvbihpZCwgaXNEYXRlKSB7CiAgICAgICAgICAKICAgICAgICAvLyBjaGVjayBmb3IgYW4gZXhpc3RpbmcgZHJhd0NhbGxiYWNrCiAgICAgICAgdmFyIHByZXZEcmF3Q2FsbGJhY2sgPSBkeWdyYXBoLmdldE9wdGlvbigiZHJhd0NhbGxiYWNrIik7CiAgICAgICAgCiAgICAgICAgLy8gaW5zdGFsbCB0aGUgY2FsbGJhY2sKICAgICAgICBkeWdyYXBoLnVwZGF0ZU9wdGlvbnMoewogICAgICAgICAgZHJhd0NhbGxiYWNrOiBmdW5jdGlvbihtZSwgaW5pdGlhbCkgewogICAgICAgICAgICAvLyBjYWxsIGV4aXN0aW5nCiAgICAgICAgICAgIGlmIChwcmV2RHJhd0NhbGxiYWNrKQogICAgICAgICAgICAgIHByZXZEcmF3Q2FsbGJhY2sobWUsIGluaXRpYWwpOwogICAgICAgICAgICAvLyBmaXJlIGlucHV0IGNoYW5nZQogICAgICAgICAgICB2YXIgcmFuZ2UgPSBkeWdyYXBoLnhBeGlzUmFuZ2UoKTsKICAgICAgICAgICAgaWYgKGlzRGF0ZSkKICAgICAgICAgICAgICByYW5nZSA9IFtuZXcgRGF0ZShyYW5nZVswXSksIG5ldyBEYXRlKHJhbmdlWzFdKV07CiAgICAgICAgICAgIGlmIChTaGlueS5vbklucHV0Q2hhbmdlKSAvLyBtYXkgbm90ZSBiZSByZWFkeSB5ZXQgaW4gY2FzZSBvZiBzdGF0aWMgcmVuZGVyCiAgICAgICAgICAgICAgU2hpbnkub25JbnB1dENoYW5nZShpZCArICJfZGF0ZV93aW5kb3ciLCByYW5nZSk7IAogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9LAogICAgICAKICAgICAgYWRkQ2xpY2tTaGlueUlucHV0OiBmdW5jdGlvbihpZCwgaXNEYXRlKSB7CiAgICAgICAgCiAgICAgICAgdmFyIHByZXZDbGlja0NhbGxiYWNrID0gZHlncmFwaC5nZXRPcHRpb24oImNsaWNrQ2FsbGJhY2siKQogICAgICAgIAogICAgICAgIGR5Z3JhcGgudXBkYXRlT3B0aW9ucyh7CiAgICAgICAgICBjbGlja0NhbGxiYWNrOiBmdW5jdGlvbihlLCB4LCBwb2ludHMpIHsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIGNhbGwgZXhpc3RpbmcKICAgICAgICAgICAgaWYgKHByZXZDbGlja0NhbGxiYWNrKQogICAgICAgICAgICAgIHByZXZDbGlja0NhbGxiYWNrKGUsIHgsIHBvaW50cyk7CiAgICAgICAgICAgICAgCgkJCSAgICAgIC8vIGZpcmUgaW5wdXQgY2hhbmdlCgkJCSAgICAgIGlmIChTaGlueS5vbklucHV0Q2hhbmdlKSB7IC8vIG1heSBub3RlIGJlIHJlYWR5IHlldCBpbiBjYXNlIG9mIHN0YXRpYyByZW5kZXIKICAgICAgICAgICAgICBTaGlueS5vbklucHV0Q2hhbmdlKGVsLmlkICsgIl9jbGljayIsIHsKICAgICAgICAJCQkJeDogaXNEYXRlID8gbmV3IERhdGUoeCkgOiB4LAogICAgICAgIAkJCQl4X2Nsb3Nlc3RfcG9pbnQ6IGlzRGF0ZSA/IG5ldyBEYXRlKHBvaW50c1swXS54dmFsKSA6IHBvaW50c1swXS54dmFsLAogICAgICAgIAkJCQl5X2Nsb3Nlc3RfcG9pbnQ6IHBvaW50c1swXS55dmFsLAogICAgICAgIAkJCQlzZXJpZXNfbmFtZTogcG9pbnRzWzBdLm5hbWUsCiAgICAgICAgCQkJCScubm9uY2UnOiBNYXRoLnJhbmRvbSgpIC8vIEZvcmNlIHJlYWN0aXZpdHkgaWYgY2xpY2sgaGFzbid0IGNoYW5nZWQKICAJCQkgICAgICB9KTsgCgkJCSAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfSwKICAgICAgCiAgICAgIC8vIEFkZCBkYXNoZWQgbGluZSBzdXBwb3J0IHRvIGNhbnZhcyByZW5kZXJpbmcgY29udGV4dAogICAgICAvLyBTZWU6IGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDU3NjcyNC9kb3R0ZWQtc3Ryb2tlLWluLWNhbnZhcwogICAgICBkYXNoZWRMaW5lOiBmdW5jdGlvbihjYW52YXMsIHgsIHksIHgyLCB5MiwgZGFzaEFycmF5KSB7CiAgICAgICAgY2FudmFzLmJlZ2luUGF0aCgpOwogICAgICAgIGlmICghZGFzaEFycmF5KSBkYXNoQXJyYXk9WzEwLDVdOwogICAgICAgIGlmIChkYXNoTGVuZ3RoPT0wKSBkYXNoTGVuZ3RoID0gMC4wMDE7IC8vIEhhY2sgZm9yIFNhZmFyaQogICAgICAgIHZhciBkYXNoQ291bnQgPSBkYXNoQXJyYXkubGVuZ3RoOwogICAgICAgIGNhbnZhcy5tb3ZlVG8oeCwgeSk7CiAgICAgICAgdmFyIGR4ID0gKHgyLXgpLCBkeSA9ICh5Mi15KTsKICAgICAgICB2YXIgc2xvcGUgPSBkeCA/IGR5L2R4IDogMWUxNTsKICAgICAgICB2YXIgZGlzdFJlbWFpbmluZyA9IE1hdGguc3FydCggZHgqZHggKyBkeSpkeSApOwogICAgICAgIHZhciBkYXNoSW5kZXg9MCwgZHJhdz10cnVlOwogICAgICAgIHdoaWxlIChkaXN0UmVtYWluaW5nPj0wLjEpewogICAgICAgICAgdmFyIGRhc2hMZW5ndGggPSBkYXNoQXJyYXlbZGFzaEluZGV4KyslZGFzaENvdW50XTsKICAgICAgICAgIGlmIChkYXNoTGVuZ3RoID4gZGlzdFJlbWFpbmluZykgZGFzaExlbmd0aCA9IGRpc3RSZW1haW5pbmc7CiAgICAgICAgICB2YXIgeFN0ZXAgPSBNYXRoLnNxcnQoIGRhc2hMZW5ndGgqZGFzaExlbmd0aCAvICgxICsgc2xvcGUqc2xvcGUpICk7CiAgICAgICAgICBpZiAoZHg8MCkgeFN0ZXAgPSAteFN0ZXA7CiAgICAgICAgICB4ICs9IHhTdGVwCiAgICAgICAgICB5ICs9IHNsb3BlKnhTdGVwOwogICAgICAgICAgY2FudmFzW2RyYXcgPyAnbGluZVRvJyA6ICdtb3ZlVG8nXSh4LHkpOwogICAgICAgICAgZGlzdFJlbWFpbmluZyAtPSBkYXNoTGVuZ3RoOwogICAgICAgICAgZHJhdyA9ICFkcmF3OwogICAgICAgIH0KICAgICAgICBjYW52YXMuc3Ryb2tlKCk7CiAgICAgIH0sCiAgICAgIAogICAgICBzZXRGb250U2l6ZTogZnVuY3Rpb24oY2FudmFzLCBzaXplKSB7CiAgICAgICAgdmFyIGNGb250ID0gY2FudmFzLmZvbnQ7CiAgICAgICAgdmFyIHBhcnRzID0gY0ZvbnQuc3BsaXQoJyAnKTsKICAgICAgICBpZiAocGFydHMubGVuZ3RoID09PSAyKQogICAgICAgICAgY2FudmFzLmZvbnQgPSBzaXplICsgJ3B4ICcgKyBwYXJ0c1sxXTsKICAgICAgICBlbHNlIGlmIChwYXJ0cy5sZW5ndGggPT09IDMpCiAgICAgICAgICBjYW52YXMuZm9udCA9IHBhcnRzWzBdICsgJyAnICsgc2l6ZSArICdweCAnICsgcGFydHNbMl07CiAgICAgIH0sCiAgICAgIAogICAgICAvLyBSZXR1cm5zIHRoZSB2YWx1ZSBvZiBhIEdFVCB2YXJpYWJsZQogICAgICBxdWVyeVZhcjogZnVuY3Rpb24obmFtZSkgewogICAgICAgIHJldHVybiBkZWNvZGVVUkkod2luZG93LmxvY2F0aW9uLnNlYXJjaC5yZXBsYWNlKAogICAgICAgICAgbmV3IFJlZ0V4cCgiXig/Oi4qWyZcXD9dIiArCiAgICAgICAgICAgICAgICAgICAgIGVuY29kZVVSSShuYW1lKS5yZXBsYWNlKC9bXC5cK1wqXS9nLCAiXFwkJiIpICsKICAgICAgICAgICAgICAgICAgICAgIig/OlxcPShbXiZdKikpPyk/LiokIiwgImkiKSwKICAgICAgICAgICIkMSIpKTsKICAgICAgfSwKICAgICAgCiAgICAgIC8vIFdlIGRlYWwgZXhjbHVzaXZlbHkgaW4gVVRDIGRhdGVzIHdpdGhpbiBSLCBob3dldmVyIGR5Z3JhcGhzIGRlYWxzIAogICAgICAvLyBleGNsdXNpdmVseSBpbiB0aGUgbG9jYWwgdGltZSB6b25lLiBUaGVyZWZvcmUsIGluIG9yZGVyIHRvIHBsb3QgZGF0ZQogICAgICAvLyBsYWJlbHMgdGhhdCBtYWtlIHNlbnNlIHRvIHRoZSB1c2VyIHdoZW4gd2UgYXJlIGRlYWxpbmcgd2l0aCBkYXlzLAogICAgICAvLyBtb250aHMgb3IgeWVhcnMgd2UgbmVlZCB0byBjb252ZXJ0IHRoZSBVVEMgZGF0ZSB2YWx1ZSB0byBhIGxvY2FsIHRpbWUKICAgICAgLy8gdmFsdWUgdGhhdCAibG9va3MgbGlrZSIgdGhlIGVxdWl2aWxhbnQgVVRDIHZhbHVlLiBUbyBkbyB0aGlzIHdlIGFkZCB0aGUKICAgICAgLy8gdGltZXpvbmUgb2Zmc2V0IHRvIHRoZSBVVEMgZGF0ZS4KICAgICAgLy8gRG9uJ3QgdXNlIGluIGNhc2Ugb2YgZml4ZWR0egogICAgICBub3JtYWxpemVEYXRlVmFsdWU6IGZ1bmN0aW9uKHNjYWxlLCB2YWx1ZSwgZml4ZWR0eikgewogICAgICAgIHZhciBkYXRlID0gbmV3IERhdGUodmFsdWUpOyAKICAgICAgICBpZiAoc2NhbGUgIT0gIm1pbnV0ZSIgJiYgc2NhbGUgIT0gImhvdXJseSIgJiYgc2NhbGUgIT0gInNlY29uZHMiICYmICFmaXhlZHR6KSB7CiAgICAgICAgICB2YXIgbG9jYWxBc1VUQyA9IGRhdGUuZ2V0VGltZSgpICsgKGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwKTsKICAgICAgICAgIGRhdGUgPSBuZXcgRGF0ZShsb2NhbEFzVVRDKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGRhdGU7CiAgICAgIH0sCiAgICAgIAogICAgICAvLyBzYWZlbHkgZGV0ZWN0IHJlbmRlcmluZyBvbiBhIG1vYmlsZSBwaG9uZQogICAgICBpc01vYmlsZVBob25lOiBmdW5jdGlvbigpIHsKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICByZXR1cm4gISB3aW5kb3cubWF0Y2hNZWRpYSgib25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSIpLm1hdGNoZXM7CiAgICAgICAgfQogICAgICAgIGNhdGNoKGUpIHsKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgICAgCiAgICAgIAogICAgICByZXNpemU6IGZ1bmN0aW9uKHdpZHRoLCBoZWlnaHQpIHsKICAgICAgICBpZiAoZHlncmFwaCkKICAgICAgICAgIGR5Z3JhcGgucmVzaXplKCk7CiAgICAgIH0sCiAgICAgIAogICAgICAvLyBleHBvcnQgZHlncmFwaCBzbyBvdGhlciBjb2RlIGNhbiBnZXQgYSBob2xkIG9mIGl0CiAgICAgIGR5Z3JhcGg6IG51bGwKICAgIAogICAgfTsKICB9LAogIAogIC8vIHRyYWNrIGdyb3VwcyBnbG9iYWxseQogIGdyb3Vwczoge30KICAKfSk7Cgo="></script>





<link href="data:text/css;charset=utf-8,%40font%2Dface%7Bfont%2Dfamily%3A%27Open%20Sans%27%3Bfont%2Dstyle%3Anormal%3Bfont%2Dweight%3A400%3Bsrc%3Alocal%28%27Open%20Sans%27%29%2Clocal%28OpenSans%29%2Curl%28data%3Aapplication%2Ffont%2Dwoff%3Bbase64%2Cd09GRgABAAAAAE8YABIAAAAAhWwAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAABlAAAABYAAAAWABAA3UdQT1MAAAGsAAAADAAAAAwAFQAKR1NVQgAAAbgAAABZAAAAdN3O3ptPUy8yAAACFAAAAF8AAABgoT6eyWNtYXAAAAJ0AAAAmAAAAMyvDbOdY3Z0IAAAAwwAAABZAAAAog9NGKRmcGdtAAADaAAABJsAAAe0fmG2EWdhc3AAAAgEAAAAEAAAABAAFQAjZ2x5ZgAACBQAADWFAABReBn1yj5oZWFkAAA9nAAAADYAAAA293bipmhoZWEAAD3UAAAAHwAAACQNzAapaG10eAAAPfQAAAIIAAADbLTLWYhrZXJuAAA%2F%2FAAAChcAAB6Qo%2Buk42xvY2EAAEoUAAABuQAAAbz3ewp%2FbWF4cAAAS9AAAAAgAAAAIAJ2AgpuYW1lAABL8AAAAKwAAAEyFNwvSnBvc3QAAEycAAABhgAAAiiYDmoRcHJlcAAATiQAAADyAAABCUO3lqQAAQAAAAwAAAAAAAAAAgABAAAA3AABAAAAAQAAAAoACgAKAAB4AR3HNcJBAQDA8d%2BrLzDatEXOrqDd4S2ayUX1beTyDwEyyrqCbXrY%2BxPD8ylAsF0tUn%2F4nlj89Z9A7%2BtETl5RXdNNZGDm%2BvXYXWjgLDRzEhoLBAYv0%2F0NHAAAAHgBY2Bm2cY4gYGVgYN1FqsxAwOjPIRmvsiQxviRg4mJm42NmZWFiYnlAQPTewcGhWgGBgYNBiAwdAx2ZgAK%2FP%2FLJv9PhKGFo5cpQoGBcT5IjsWDdRuQUmBgBgD40BA5AHgBY2BgYGRgBmIGBh4GFoYDQFqHQYGBBcjzYPBkqGM4zXCe4T%2BjIWMw0zGmW0x3FEQUpBTkFJQU1BSsFFwUShTWKAn9%2Fw%2FUpQBU7cWwgOEMwwWg6iCoamEFCQUZsGpLhOr%2Fjxn6%2Fz%2F6f5CB9%2F%2Fe%2Fz3%2Fc%2F7%2B%2Bvv877MHGx6sfbDmwcoHyx5MedD9IOGByr39QHeRAABARzfieAFjE2EQZ%2FBj3QYkS1m3sZ5lQAEsHgwiDBMZGP6%2FAfEQ5D8REAnUJfxnyv%2B3%2F1r%2Fv%2Fq3Eigi8W8PA1mAA0J1MzQy3GWYwdDP0Mcwk6GDoZGRn6ELAE09H%2F8AAAB4AXVUR3fbxhPfhRqr%2F6Cr3h8pi4wpN9K9V4QEYCrq7b2F0gC1R%2BXkS3rjKWXlfJeBfaF88jH1M6TfoqNzdWaXxZ0NM7%2FftJ2ZpXfzzeVILi0uzM%2FNzkxPTU68Md64GQZ%2Bvfa6d%2BP6tatXLl%2B6eOH8uVMnTxyvVg4fGisfhNfcV0f3luz%2F7Srmc9nMyPDQ4IDFWUUgjwMcKItSmEAASaNaEcFo069WAghjFIlAegyOQaNhIEhQxALHEqIeg2P0yHLjKUuvY%2Bn1LbktrrKrOgUI%2FMUH0ebLc5Lk73yIBO4YeUrL5GGUIimuSx6mKl2tCDD8oKmCmGrkaT5Xh%2Fp6rlphaS5PYp4kPAy3Un74OjeCdTi4nFosU6Qg%2BqRBsoazczLwHdeNqpVx3AW%2BoVjdhMThOo6YkGJTl862RFq5r263bbYSHyuswVrylsSBhHzVQKDU11g6hkfAxyOf%2FDVKJ1%2FHCvgBHtNRJ%2Bb7eSYepeQ4VLZBqAeMjgM7%2FzyJJF1kuGw%2FYFpEq458Xrr65YTUa6VCEKGKVdJ%2B2FoBYYNKCwV1K6B2s1mJnPB7Ww6GtyO04ya%2FHHWPHs5P4J65NyVa5VA0E0LocwPci45b6tvMvohm1BYc1h12Xd2GrbbHVkjB1pzs6IKtOHeYd%2BJYhFasmfs9Zt%2BSZlo9pu8eg0utWZAKB8vjaxBQx7cSbK3Qdr2nBwM27vrXcUHtLolLJyJjK3CAbDcFDo3hsPZ63IH2RrsoWyskdB47jiKitFtcAgqj4wQQxN3PB81RCiCo0Y1jnUVYlOj5JHhJd2JBevIEeSQxDWzTN8PEE3AL90KtP11dVrC5II1L1w331pHFq10vPBGYeyUCFRvB7PAEzMltdubhb%2BlZ4dw9w86yyNfG%2B%2Bu0ZWOBkmsb%2BGrsrKGIN4R0XPQimnAEcj3CI6ZDR35zzHJEZlcW5cQCTMwty4umkB5B4ajHwVNhQDqdMLSAmClnhLScgYgMbQJESALUrtIvjpQz9LVxuIPSiYgQkjusZ01l4BERrPtdO9KfDErKQLne6EUbJlXHqTccNzL163tuES26ickjo5va6FIkCyIyaFEYA%2BlejuqlFxLWIYKmQG9W0tlMe0yXu80wPe%2FOavEJrd8srSFziSal30wMj5H2mH7T6H218RQ93qOFysDEgtLBoRuQUeXjyPQKexdLjoa4vtAQJiBsEXYutEo9T1%2Fm5mUdBMbXFCzIq8Z6Yl5%2B7nyic%2B1mE3xisVatpBarpcC%2FmUs9%2Fs3Csty2GRPfLMo7FrfqcS1KDxIntwVjnkEtjRJoFKEVHWmelIyxd7Y9xlqGHTSA0VfbnBks08M4W21bHczuJBrTiYixiBnsMF7PepCwTAdrGcy8UqZb5uWGvIyX9QpW0XJSrqE7hNzjjGU5u1vgRe6k5DVv4DZvpVnP6Vi0yMKLOhUvPUq9tCzvFhi5mV9KVNMvWpfRJg1bggjEml6Uz6KmiiN92dh%2BGg19OHK4TmOC61TIcAFzsF7DPNQ0fkPjNzr4sMZHaEX5fk7uLZr9LHK9AW9KF2wU%2F%2F%2FBUfaOnlREfyrK%2Frv6Hyn3ISkAAAEAAwAIAAoADQAH%2F%2F8AD3gBhXwHfFRV1vg5974yvZdMQspkSIYkQkgmhdAyIIQQWsSADCLSpajUiMgiAkuJNGmhKyJGDCyybCiyiGBHRGQtyLIuf2UX19UPy7oWyFz%2B972ZBxOE72N%2BL2%2BYd%2Bbe0%2B5p99wBAscBBIN4ACjI4D4oUJEIVAbIL8wPYX4oP1TQ3um3%2B0v5dZz2bj44nsyKLhYPXKkaL1wCAhuuXcQ69dsWyAu7qF5PBMFqQzQRkzQgYvIQCuXleXYHlCXl2x1YZg%2BF7HxMDNAQLQoVetwuKZCZjRUTQqc%2Ff7RjebisqAeuEQJXmpZUdA%2F3KgcgsJA2kL1xDNPDZqCyQAWdXiIy5YOHThUq4%2FKB1XFpgPr5heVtJuSQvJzxOeKB6HfEplzKWCEA4Sc%2BVgqkw8bwIF16K7fg0ttNJr3DajEKBqfT5UlNkwXJKyD4hCRRlFySwU%2BTvTTJkJTh1wkms6l%2FpBWa08Fmt%2FWP%2BNz2AWYcYEez3WwXvU5qECE%2FVB5ylJXl5993Hyc3zw6hkHaPoerldxVjh7eMX%2FF3hYWxu0KF382pcKpXsV%2B9QlS93Mj%2FSz%2FujinsVE1dDTszcEk1u4LpPdjXmDdw6UAsqFlUg7rmf2J%2Bd3aGLmC757GBuEe55mHNXGxifZVrLtuNNUBhwbU6wSQ5IAOyoS2MCxcH7VmpXkHIdZlFP4BPtOvFdvlZZsncL0Kl1pZcS99Iam5eK1erfhFvrkviL9HDKc5X6OV%2FChUq7aGEvw5U6QuFVCbEhOSSZHegODM7WOzxhOzZ2cVFJaXFIbfHK2cH7WlELuK3EnR5vHZJEkzvHZw35S933n0ucur5ky%2FMO7SraN2mrVuqGiNPnIt%2BNnTy6HF4fMkfvf%2B6EEjfkpWPh7rtXrJgp%2BNAk9hzQScj6194%2F%2ByxlZE72Ow0KvcdloMLbPcBiDD%2B2jdSW%2FEk6MENfk55AfQMtwabaPC0aZWZ2a6Nob1NKgxRc3qemb%2FaF0jtk3xZPtkpc4Xjr3KVXE7WDfpi%2BsfVJ1RotwUyJVFVbE4ZV3JUPi0pLsq%2B%2BXMM4A9Vd%2B%2FYcXcVvrtx7bLN61av2oINVTU11dU1NVV4cuPaFRvXrV7xDGPNH6%2BheQJpbMQaHLiz8R9fXb5w8dLl5vO7XnzhD7uef37Xxa8u%2F%2F3ipa9pxpUqrt5AYeq1b8QPxVNg5BQWw13h9k4PpEqB3Lx2eW0DlmxfqkdfUhoy9Y6EnNZgW0t7MZ%2F6smlubka%2BI0NfFckQoDwPkjih%2Bd4yrpTleTdRqoinJE6Ts7AULcTt8mRxQbYjMeLcXMpYwucgMgaCkrrMn668Z97YBwZHJm%2F%2B%2FhnWZ%2FKwOzazl5c2DerS%2Bo2Xth9eshXXd7jTu7NHHeb98%2BVHfqw%2F%2Bz%2FCmp5zhvSZe3e%2FkSOubt2EO3tExnWrrbsy%2F51x94%2BaWFa%2F84V1k%2Fbfx2Z1fWE0%2B2It%2B2zfxGEfAaBiMbBctRiug0CpIBLFUpyK2R%2BOumYgYrZB%2BcZAdoT4%2BTfM0CpsksEggGCxGoNUsV4J5sVpc5SGJE6pwxvIJgM3r97%2B1Kq1S7et2UQKUI%2Fv7znOCn%2F8jpW80ohvKaN24aOatFEFAx8XLFYDFYItR0UbkQMljuIiEgx5HMS0efW2pWtXPbVdGZb9yjruPIInv%2FsR3z%2F%2BEisAhMFkrmCRXGCB9uEUKgoomw16o95qEwxoJiaT2cDtl84CUP5G4XWJOTBmWLK8olOmNOjMKhUpWZWHK5LZgl9279229we2OBUX50kuVjv5QDo7PBwnsvrhWJF%2BYDIuVagZDxeFHOF1MEKbsBMEQS%2BKJjOVdXJ1BKw61EH%2BfeqSTzTz3I7ZA3Zuv%2Bwhshy3sDFL2TjctJR6n2SDsfFJ3A0I5ewXfAgugw7s%2B0XQG0SAfFVWHOEsr6TyphSHW5NHFc9J6Wa%2B7B3Dfp42HguHAUINniPlZCpQ%2Fl0CogDIrW%2F8u85iv7sGv8ZzGzYAxjwV%2FMCxTwobJQCTWU8HRPQeruaaXpRqestVdUOXso7dupeF7px4Z8%2Bed3arKFc44AIg51W9ch4kIIiUEocmSk4sBpCcj15oUDRJXYYExl37RmirrkIv55rLASYJJF%2BS3t0nopeptU%2BE%2BmLrLK%2BlPgQyid3mCBU6UP1rVz8R2n770zc%2FXf7x8s%2FNn9fvaFi3rmFHPfmMLWRP4lycho%2FjNPY4W82Os88wiJ34K4tdAIQjAOQkx8YArcM2PaAOjSZBL8uolzAJFFvGDXd8ej67P2AvKpUkOYghcnK7zl300RBcsExwzJ%2Fhbrd7GuYBwhgAIYtbTx%2F3%2Bd4klJ3gtKCQnGIz9InYZEzqG8EkjSzNavCB%2FcXYlcQshhyMsZrI6PYLWc3lOG%2FvlA4rHr%2F3uTFD3r38%2Fr%2B3fMKOke9W4oJ9G566u7au84CpOz%2Fct5R99wF7W6dIYjjnawrHIAh3hlungFOWgXoyzVKbHOr1eD19Il6vISsrrU8kSzbY%2B0QMGpdjgYh60zDTHJKHoyP4404pw27zB4o1o62gq%2BBLL299am8j%2Bzv774zj995%2FdgTOZsOfWr3rnTWPj2h8qGbo1%2FM%2F%2FkYYvmxfms7TtPrM54E7ns4vwBw0rFy%2FaNJjRRVTet31OgCBPABhongUDOCAzuE0h6gnxChToCJ1ulB0iH0jeqvscFBZotflk%2BhMQ5oJDqhrC%2Fl%2F%2FFxmAUlGYeK5Z6Jl5MDec2yJQdc%2Bl5ViNduL1avoZ805eGll04jy6COKheT8S%2BU6kQwdw%2BlW6nPpXF4qtEoBziwAye3mMnRLkqlPRLqZdQlsKxTcLghkqhzjrLL5M%2BWgUwldSkjbL1HPLrCf51d8MHbv66zu%2FmcGl5Kz0YNZ0%2Bmcf759kbEB29qGGrZiYWop2b2R9fYqnKnlWOVzqXqgNfQIB5LtRr8fQLLT7CyT0ZLaL2K0WFzU5e0TcfmojkckcgvcyhJ4pNlr8Bd63VyEhIbiGhfIBFGTq8R9lqcWB2Dl1G79Rn%2F9i8n08OU3L%2F760UX2E369YuvqVUPrI9VryFR8CXc5V%2FrYefbW7svv%2FYNdxUHv%2FOnFVQ1V8yse2Dde0UcAIY%2FzU4L0sA1FEQg3jJT0jVAJFBlqbOOrALk1dCOmkuHNF%2BmpaKOYunHhldNAlZhEyFGpz4R20C%2Bc47Vmu%2B6gqXo9lewuq5TfXrLnZORk9Ink5JjAlNwvYvJBoF8E5N8qd9nN3jrmj7mOx8OPLDXqolpgwv0zZkpuzaeTynf%2BvWjNvnr22b%2BbsfDJR7%2Be%2BcL6dQ1bXlu3CDvOWfHIMytnrhJPHt7x4L7eg%2F48%2B8C5U0euLuu%2Ff8ozr1xteHTRssdGru8V3kwfeHTMsN937%2FzksLEzFdlO5NQpNsMLWdAtnJlizzQYAAQu26AljUvWZbEQlyuJi1Ymcr8Iaal2jjKNg5qJ9Ctqx02jMyDFKHJw8TpUIvjHKhXZQlZ0%2FIwe1eO%2B%2B6%2FRVHpg2mv%2FuPbBuguPMtfKLU%2BtuXfjkIFraEVzg2tlMuZg6O57%2FvXBP1C3kZ3H9od2PPV81RMVE%2FaNAy3HEcaokRS34Ta%2BLAA8XotzQMRiizkRDVfN87X0JXae6NzkVR6Znehb6J8XL%2BY3IKovXMjn0oEDMrkmmc2iXu9yGm0DIkab6hgTZklwj%2FT6FDccpXsmn6Rjlxv%2BknyrTFMR8%2BU%2FcF9%2BDiRwh%2FUCiChwdeXD58cDhSwsRjeikNNcTo83%2F0AtP2DDKLywji1nhxSezMTjgo9eVHOy3LBbJgIQ0OsEsToiIFRHrIjI4wHOlfxEz6a4ZOTXTLq9eTjdTofW1bEH6up%2Bg5GIBDhGEr2BkRNVlMZTa%2FP3HKVyrMMKrF3H%2FKPYUAWjlGsXaRnXrxTIhrJwqp%2FbMtnphFYWIdgGoLWtddqASGuPzdA7YhNaqFZLvVJSEa48LZwUd4YSN4mJ%2Baq%2FctSSXgtmD6gf2emV91%2F9KNj38bHd9l3PX0tq19dMnzFw3OSsgsWjj%2BzqPXn0w4On3e9nZ%2BNJLYFZ1yqkQ2ITFEM5zzwyA%2B1KLJ1kVwpAjsvSTgx3S%2BrQQeiisxv5Ky%2B9kGbnqUmllmSFEhOP6%2FG4ug6C2nJQUPdSt0td36R1IFMgbsUalrqlQAbw4KK1v1BwIH%2FudKqm8NCQbeMHP2LUtVk3rv7Fb4712N3Tt%2FDeaWvZt3%2B8wA7swe6Y%2F5cvjv3I1rHJn%2BAyhLM44ODVn14%2F7bBUDpq%2Fhpxb8c388XfdM%2BrU3veu%2BTws17Pv7O79aFvzMnvxc3aaHRq8sAZX4jgUsP7CfvYntoNhGYquJiAAAKJNPAIyWLjk0ojFqENR0SwqyILNaiG9I0bRYhFECoKD518xh6iplZYz%2B5W8H0OIlBsz%2FtURB6IHmnaT7itJORvb6A94cnbjGZYvHrnSg0zENwfPGTGddQIKJwCEo9xyW8ALGdA7nO0UUg1Wn89iEGQLjwd01iRrUlXEarWAxVcVsTjAWxUBevt4QnM9%2FgxBMbluwe4SAjxpj%2FmcgN0ef3cCt2IAhVVLsR%2F7%2BTIjjZjU9PTeY1ew4I9%2FOvhn8cCeI%2FNf9BnK2Pk3%2FkZ7TF00%2B6HoquhndauXPAGAMIdb09Oqr8gOu6jFpbdQb5IDekccglHi%2FHK2DL%2B4emRymUNIE3%2BRo3WokKfbtNP37Cs0%2F7rxjQ0X2Cvs2Rex%2FNNLuysbxBB7lX3FPmdvl64rwyU44QusOVSzuj8AUTgmDuEc04FdsYcWQQ8COJyiuSoiUsFSFREct4ppwc9rSBlA%2BZuAPZTBx2Az2Uo2CY%2FhIHysic%2F1z59PI%2FdU5CtWz%2BaJB9gi9gKmYebVKZgHgMq89Bc%2Br1GJWSSDAQXQoWAyS%2FreEUlCQsTeEUKRr3B03DZmUZBwxy%2F6S%2FMZmh%2BdTYZHt5OF4oH1LKc%2BeilhJj0UhpMlAKQ6pAbjTRPxSW45Q0CbAac3asPzwaNfrY9LTuyi2ilOhUvnI8SSohNapUJK7wiAaDLZe0dMgujtHRGdt4%2B8%2FHaphRyV9%2Brq5lT1xe9nfPc0a2IrDuKQL%2F%2F9bve3DrL%2Fso%2FQj0kbVrGXCYuWZWXjUhzzD7xn%2F%2BD6GvYau8Q%2BZe8H8LUY7WK6yuVQ2KdHBJ0giCCaTTraO6LTiQaJoshJV81RgnG%2FQbydi5f%2FDYnpjc2ssZGSRrI3Ws1z7dXkYQC8NoLNxfFqVpwaNht1OotVT4GzFDJj9GrpGI15%2BJJiPpxLMg0v6dVv9AONx9jclFWuR6fyFGvI0TNxvRC%2BUjHmnkjBViRGg4Ix0Yn6RGzLWkgJZRVRDKHw1TvRrzc2NpL1J6JN5M0l0dc5snnk4%2BjCBF0QIT1soQCCJCMFzgtw3EBXxTekkO0%2B0aio0pV%2FbIp9V%2BKIgpPrUZJOFCUev%2FJSmsuNBjuVjDK1gKQgp2DnLbuZlRjwuJUAn2MY4nce4COtZjadZSsCntbhh6zRomMm0bbpo%2Bbh4oGrVQLPOume7Uev%2FBCXo1IDsUG7sFsvcaytVpDB7jBS2aqjKCdypaUI4xPzabNJKZdj%2BWvNn%2BtsW4%2FRVB2xkGeEk582NR%2FnE3ZMwaxy2guAqFp99FZ5bu%2BIXqDW3hHqvLVNiOltBiTmueJRtpW9oZgjHIE9sBOOujo9%2Bv1%2Ffvn5h%2F9Eeb77LHuYa%2B94HIt1bArbxs6yU1iIuRjEAnYqZp%2BE8erqdUBRONnA%2Bc75DE6XQaiKGAySLDuqIjKVEtavhpXmSgW%2FmlplYChutYXx7Ay7tLsRZ5PWUePGL949euKoYPr7t1HOh2jK6mdXrVC5wHaoXLBCCp%2BZp8MeAIEa%2BOqmZtns6x0xC7KTL2yZM%2BMtlRs3J6I2pViG8q258sX7OOxndrH0tpz5ki3rzuqxivyf%2FDnN%2BWMCN1SGs8yIxKS3y0aDQdYTwePVm8EMVRGzmVDK5UepkSi6cntnp2Ku8ktw20SOf5bGNm4BcRXyGdhfcfkJ9jQ7%2FVXTzl2vfEZGRLeJB94%2Fzf4%2BLjqZjFi9cuWqJwDVHIFw29ha4V6a0wSQ5BSFrGxTGvV4uH30CFSfoEoJiY4mt0CGlozy8D%2Bo5jgx%2B6jmBbwy4BEI%2B9d3rHnZ0I%2FGN%2B7usnL1ey%2BxM389WLx%2F1%2BINHRbWXfoDLjz%2B6Z07su%2BYN73vyIFFvd959sV3qtf2nfFA35F3FQw8AoDgABCGcv7JvJ7iABSRUp1epgK3CYLmFeJ5qGYSi7k3IEsbWYFQyQrE9PWqJzjM14yPj2OHrLDdhgYZZafDrqOCmQ8UpzGUuFzsLkUnVHMYs4uij%2F2F%2FcJfFxrfee3ld8QDzf2vsC8wo5nuaa44%2BMabh%2BghQAAA4XW1%2FpMcNqJgMuooCJQqiPLlrxWvQhjgF8%2F%2FSgXTwej3O6M%2FNmF1x8zWHdVaFh%2F5uU3bnwXkmg1yXz6aT6km%2BQwpyW6LRdQn2Q0U9TGTotqUGOKqNclWAjJldKcyenwSZ0h8cyc75y5CT3v2xU42u%2BnL9p6UYpSa0Nne7yy%2B1EQ%2F7PaW6%2Fdbm0N88llHNx18ic5qnrv59RXv0YUK93QAQr1q9QNhhyCJ3ORLiskXFJMvtDT5KhocAz63Yu7rj%2FPIY0oTXmKdjuAkfHg%2F60QWROeQZnI4%2Bgq5M9oX4lybrUY5GWGrIBJRpnoDiChTUeOcJmE%2BqKL%2BGCJdcNEhlrSb%2BQ6T8%2BR887zoCZJPFyv1ZQBBscZ6pWKmQyqDLKBgMIoCNwcUdUrMcuuKmVot8AvlzU6qi9roq82%2F0LSFwoaNC69OAIQGdoRMVnSRY2mRUFAYoxcJlTDIOdBSfeJRD5nMSvEEu4B%2BdkS6svyKX6HWC0A%2Bi1c2Kd5c2XRy3h0mgYbo%2F4spg%2FKNEDuCzdrMFFACSacHOUgFevPMXj5rMb9CfMoLfOrSA%2BKF5b9KyigFJCgExOMgQVJYD1TWiQQEwrO%2BG5rpVFUTC3DfaPxsA1vG9pEg3dQ8jnwV9QJea2Zv0k3XKtUKsJLHIlEqwBgjmU%2FLQUfRp9mbCwCxTjhHHZIf9OA8AILRID2BkJ%2Bs1ZoxwDW1OMStBHU83G1fm5MZ0%2B4QzhUdK3f33F8MRKk50lPCUEXzoVc4K1NnTEvz%2BRw6yqMpYkzrFSFGI7jd1ooIt4LJFRHRA24o%2F98LVH4tX7NllapJZ7zS6LZn8QVeLKsVKjrQrxv43GPPvUychyc%2FVveH0F3HR77xCrNs%2FmPDWy89tOWB3js3Y1%2Bb1GPe7Jq5dxTuORZ11TZuHC3LD00fOhwI7OVWtVZygRPSeVUt0%2BD1Wq2mVGqiGX4zmNwOu8HOhccRljzgqoiArYV5DSXF1SDB1sddEk825YBijeRQiVcrvHAqyJ5Pv%2F3%2Bk0l%2F7GwKzGzQ6Wa811i%2FqXFjfb0wlJ1jP%2FDXxwMGLpdcbNHcsTuWvv7ll29fOPPJXwAQpnMOLxWGxbIaK6VuPU3ySmaOmQ0cHDPPzVmNGM9qlJ1DHgNzu6hmOGTcZXYV9f8d8HTbUOn8QrbvuW11Tz3swiw0oRPvyPQu96Sywe9%2B2mlNGRBlVqGU88fB%2BdM97E%2BVvGCx2CV7ht%2FhtgIgmqhez9mjt1FnRYR6bscerSYTkLTqvTcUDPLPA6osi%2BJOiG7ST%2F%2Fn2W%2B%2F%2B%2BTCTLMsNCxmTzdu3Ny4evOmNS9gNlr5647tA%2Frh0V%2B%2Fmfny%2B4Gv3r54%2Bi%2BfxLF0cN44IRk6hdOTDF4jpdzqtkrxGit4uRskyaUyyqIw6paZQyiRZQ632%2B%2BJsUuivNbh53Kb%2Bx%2F2JYp%2Fe%2F%2B7qFl8eecf%2FzBk65bfb7WQLstc2AZl1GMH9v3fJxx%2Fp2pttp%2F%2Bc%2FeGrS8oUksFoBYpHVxK3cVlMjkJ4UaSuj0GvhQMgKIsVkScspUqq0GtY98IAxWmOZS1p2QNgeJSXkPW3DX3mE%2BzrxreeANH3lObN6LH8KHopW83l9G3%2B3TugmsDC9PnPNkLgEKQuYQCzplcKIVu8HC4a56vQ5YpvYtY4ESnSHIzW6Vn%2BQzd72xlLbYWV0R0nXpFDJm6XKvOqvPk5pJekVxrm%2FJekTY2T7teEU9KnHUa%2Bzj%2F8pXd%2BrzbxD1uragaVBdAqDC%2BjaAUkrJv%2FOXKcGMXmJOnbhQXF%2FF3QsHJVnf87VhB3sSqoa%2Fte5X9jf3r7FdPzMgtC%2FccNOnTtwb3ZPb6ZWdOPLzh7amPD50%2F4z8%2F1T4uVE5ICkzt9ewxXYdBbfPqVx54ddvqMauTndXFnYfmBnY%2B2PS66ypEhs2ZFOn5IO08%2FZFvfn4cEPYCCD24nnuUzM5i0nFz7dF7vEkWvcMhVEQcNgOA3q0Y7xjlCatesVT2mALbtRUfM1P06cfm%2F%2BGZhgadoWD%2FjBMnyJuLfn%2Fkk%2BjrfHXnDOow4N5XP4gWAxDYDoDjxAtAwcr9tZ3PJCDa7Ga5MmImVlQ04%2F3EwqZSIqAJJVQc3NDQ1CG3TceObXI7CJWYU1Zc0qFDaSkAubaKudSxTZAEd4Q9TqPRrNP5kj22yognrLcC1z6ISzW5xSTOhATTljhb3v2det7Zv%2FeNGZnLt9g16B6h%2BaqNHZHv0yaP8TSV89QGJTzetxgMRqNOEkSdYHeYAGw2nY7KRje1xiKGfD5zeUyFyuJsRTUiQi0bdclYkzcER73JeuD5E2zOnB07dKSgy2icydpGlxLpQTZOcjW%2FXTo9NjcO5nNT4GQCoiASQHfca2tMVBjHYVRo6SRfJQGoCAfcdruDiz%2BgdwRo66xWHrfb4RPMPm5p0302p1UPDkUPuCLEt534Igi1bHVIVIgEzfAqepHh1bRDypryyOa1DVNmblnVsDhFl79rIuIAXcHhmYdfJicWLNj3cnSLcv%2Fzx9HjQmV99dDDg8e8%2BheuMZq2cnxdUBBOApeiri69x23S22xcWW02g%2FV2ytpSV72Jmrp7m4JG6NDUt95RNPXwJ%2Bq8d0XUSWM2dhSfU9EknsU6wSyDnOwzeLgds1GbYvxvmcVylSHFilGFxE4PYRT74fKaf%2FwOTZcvobX5lZ3PPffii88%2F10Cy2I%2FswyeR%2FAFNmMfeZ1f%2F8rfzH545p1j5vdyW1apU%2B6E8nOEzCrKsS3foHJkBwQhWq7siYrXprboUaHXDzMdZ0GLBqpaeO2hPAhMUr62Y%2BgRHrThpU8Niry7c%2BPBf%2F%2Bf7yzvryabGFc8%2B6xowcMRg1kUqqh9azT5h%2F1GcNr14%2BGTWl29fevfUeYVXHNNSlVexqMKW6qHJyT6bL8OfnOK1pqalecxOp8wtv80MFRHz%2F%2BY2VT5yJ1l63Ul6r3vQ0njtQyL9GzaIW15cvXnjnI8uf%2FfJ57P0SQsajObpM%2Fd9mHXp3YunT59birloRDO2a6z%2F9T38eEzFCzE9okGOpw1ywy6zXm8wEF4DsZrB4FYtg03rc2nRkaE5IY15ZEfvjt4eRQtfaahz6rrsFoaZNlk%2FfTbaJFSenDQjlrnS6XyW1twOtIplrqLzeuZaEfHYJKq%2Frj%2F5t8pdueG5kbsG25Hfpq50%2Bj%2Fe%2F%2BtjA%2FbXzF82%2BdmN88r%2FevSPL3Z6ftEjj7Yds%2BJ13jSzsaHnpjbt7h4Uvrdr2aAH%2ByzaXLm4R1W3O7p2KO71FCCkX%2FuG7BQrwKPWJlwu3jPioEKS1%2BC0OXtFLGGbVeaCkj1xU3kqIVjV5ONWqo52xVGXhtxKNuHyEMcdA5NSJuSy17ZurRiBXdlrw2vN8lyzHQeQZdU9%2F83mRWePngiAsIOvrjKhElx8fh86ZZPJ4DS4PSaz2aZzWdVV7TFqEbMS%2F4daVmW0rJcrhBY127EvX9TPNNQl6UP7Z7zztlAZLeMO6GMSvnpozV2Dj54hp7RcjgiVau%2BHAQ0ms6hHK6jhiJZl%2BNX0NFTicIYQt7ER%2B76ptuiMte%2FtYyP4oI%2F8o0cx9iPtrx6K5UpSgI%2FWinsblz4lNc3rsZipYBZ0yQ7ubnTuxCyYK7c2A1U2Z2Rlk8LhUHSq1BmbsoRPKeSfcBbp2qSdPsY%2B3jNxsk5nLHCcaHqjg0snBF7dzc6QBZ3OvHR%2FdK5QyUaz6j5l%2B4tJbXTp7trW9eRvHClACAIIOpXGzLBdFiVAUWlxQZ3RLaD1pnQ4ngmjmhUfYgteQT9m%2FJktwFVH2Cn27hFSQLxsGO6IfhU9jUdYD0AgfL1LfHw3z%2FsVMqnHK5jB7OBLO0UHfIJCVam1GRJo46KKOdrSUrLvuwFOnfnuS%2FtYTsWfl%2FStKu2xq3cXzuCVn9wf%2Bpn87mrGy5vtC03HtkAsZ6YPCZW3yJl7RUQr6npF0P2%2F5cz0oeZ%2FksHR0%2BTL6D5y31Q6eN685sPxrixetlPl5%2FYlJxu9AFbZRbmnpqlpTq09K3F7TdV%2FbpXcPJZTfEtxCddDvj7d3EK4ZLfHjedrpx794PFH58%2F49MClCxdM44aRZaRxE%2BaPjywnw0Zg4ebdS6Xj7NzZoCl4FhAvMxuZrfluorSo0RSABN%2BtlHzx8nKeJv3cDAiV7Ijaw5Oq4OwWDQ4H8UFqqsXiE2laujso0QScEzYFFXSDxYr7U7DPVNCV5Dj2pcRw4eKhDx%2BZ%2F9jjp45OnvHwVFIePIvB49LSPRvZ%2ByPvJcsjvOq5cRenZNg4zJn2qEvdpyXVQg6tAS%2FXAzu1JvkcpuoIdVglCaojEuTngS3pjfw38rSkOlOZT8nQVNOmbD9lKoU5HFg8t2TMUz2mRrqPyi95omTcisrHK%2FsMJSfuLFn%2FUKvsVinhsvqH%2FRkZSeoOPFuKdcJwrcuYCALV8343AGpSu4xtNPOWXcZcCQNO1%2FXt0PNKk%2FGszp3Ly0IVZPfVC2Lfxb3C5ZVhQDjK7fd5dVemazjNozNTahCARxo62irVJxKnwUz4SzDKgg%2B07k9ljt9sw2apra1KOJCldLR6NAOuqD89OWHNwpPHcdniPisKChY%2BtHv7My8sX%2FFdifTO%2Bxlov4LNXXfvoH7vstCH5z462QkQypUYSDzBpV4Zzk5y6s3mZI%2BdGD1OMS3dlORL6h%2FR%2B3xOcNr6RpxJIPa5uRWkRdPQzZ6Nm29lf5Lfinl2ypuduEqQxqONXTatnD0HG9jQblU05erVU2%2B99f%2FEEzUL%2B%2F1uGTs397MxS%2B7YtDz%2FxwtzsfO%2BU4psZqMkeIVtnHNByAibW0GmBSxtctLd7iwZeNSYn1gJchaVBku9il8r9co82Ja9clCxDnKwNLs0IXQ6VLV4%2BOLx8%2BeOq7t%2FUVXVgmF14%2BYuGrN42MKqeVtnzHh627QZW8mHj01aNmxh794Lhz059ZEFD%2FCHvfj7JZN%2BN2XbM1Onbd8BiscDEJT9Fw8MDrdzWGSj0WYS9URPTS6LW%2FYmGSwW2So5HBScbqsz3UmsTqvThG7JlATlWg%2B33RHrzL7lpjuGUOGj1uaovjBEKnH2HjYCJfY6dmGv72BvYGd%2BARu7j1wgZ5vZ3Ma57Ec08RslQBKsgaxUVYkkUR726QUqUDlmFjgmiYqtbgjFLYRiI5p%2FYebmnxVpXPuF1kupUABdeGdcdiE4pdy0Dj5fmkmCgNS13E07lbRqK%2Fn1%2FmCviN%2Btt%2FWK6OGGznh%2Fs4t9I39VVFmLztSUlwuwZdCiRC2l%2FKk33lG0dHD%2FqprTbw5%2FZmTxqMV9Z8yYvelw%2FcCqjf%2F%2B6K9P9H9t4KLl7R%2BcvmJR99W%2Ff6Ggbs3LPQbRnMF1WW0mD5q1NDW4IJjSKdy5prTH%2BklDl%2BfctXrZxm5rs9r27dWuY8e8oqHTRvWb0MVZPfnuKWXOMUCwWLTQ8eKH6u5TWpiTanKAI8lnpW495N90QCAhzctKeI%2FFxVnZpaXZWcU4pzgrq7Q0K6tYnFrUrl1RYUFBYfwOQGEM7xzvEdt5hxKeSwWDXmrNT0936a1esbSDZAKH1ZRuIuCwOYjJYXKk5AWcoRQByhNPBdhblgFRMxHuG90bnN2obu8KDjc3eYHM1py5DiFU2NqhNXTQOXMWz10weE77sRWvffDZq0880vHB5vXv4PB3les1tv2D02z76xP2YNvdezD3pT3s7N497JOXhMCeTTu3t%2F2dq9X3n575qfMjIXZI%2FQ7b%2Fu6brOGD0zj0rT%2BwD%2F%2BwB3P2xr8GQKCCushU8W1OdzqUhlt5pRQDokeJazP8rQwGh88D1EYJNTvSOakf3feGku9qVGpqG4xTV8ojfbXWGSt18iYUtdZJXEnDlt0%2FedPztWvHjM%2BbtnB%2BHauecmLUlAeov2bk6HHjJkhCcGFoRIcJs1jnI2OaCgRBqd8NhFraSI%2BCBGbICTupxI21YNTrBbMkWKwmUYegHGS5WbPRiyhjVuw2EAfPVEriM1kjLsUhtexzTK9lO0kQ1%2Fdk29mzvXB9yo23qh9EHfeDXhAhJWwiKKAki0J1RCSQr20nattixUJOXfM71Bv9Hhc%2BCdeuaV3LRAIbAAjXdUoX16r7wqGgF3iOLui5Zpn1JodXKu1gsnFoi9Pi0DmtjnQHAR63E4fT4bythikCCP22ZKVVoUS%2Bhp0Bqm51Fnr%2BL2UjHz5YPXLwfRNx36B%2Bl3eeXrwWxYbNVy%2F8n%2BpGrtwd7tNtSfXsNFaLo9jTdPZ89ub%2FpXB47YrkEiRpzW3r%2BoJ09UfBJLnmAoG5dBi5LJ5U83Z%2F2GIGp7L7nGwzHPNQhS3J7yWaAKe27LkytvA6c%2FfPn39g4Oqa%2Bfun195VPX3qwLunC2vmH9i%2FoGZlTdOCgdOm3l0zdZoiv%2FGASic8yQYLAMhwBiA6Q93NqCLLub9OUmpcstOLaHGCwAsItnQvZqjyadHEUVx6cz%2B0JMt%2Bsjy645vIQH91edGont0XbPj9msiaPXiIVI2%2FNHhk35IePbMLh0yeP6V6%2FZPPA4KflKlzBqAsnGkVRaCONIPUOstxn%2FMhJ%2BnrRKMzxUmcTl2yP92s88eVhKvIfTe2KDHRmKtlyd%2F2PpPpA3vsPbRzw4w1sz%2F8snbmA6Or7%2Bw%2BpUPP8mXDl2wVvqx%2BwJu%2F%2FYmVHWb32L5q0oAeXXrkBYa2LZl5056LnkfvwhP6xD0X5YAIN3pyAOvaT85494494cnCD133dnN3O1oEqNZDegiV4IHicLJoMOhs4HS6dC6%2BLeC2ulLMRKks6LWkMWHX6XqfaELKyMnTOhsGs13PNCxJNkz%2BZ%2F0Qg6GhAeewK698pKaNLwyr2caOScrsU1mzMEJygRWCYYcgIoBopDa7TidSq4jaQa%2F8RJkG7MortqVTEvILI6Z9PL1rzacn%2F%2Fov0pY1S3t%2FraYhx5WrKDBA2ED6Yh0dqvitsEECMJuofkCEQsyAJOqq2jzatUOseZR82L1nz%2B7xMwlZzIVNAOBQIge7xQhgUfrILXa7jtog%2F71CzQq3qDNoZYbSkOzBpo31obZtOw24a8BDQx4ubWIXRk7UT9S1Kckrtu%2BbHgSEvqQKP1d3kPleHwFKDSZuX2mGBGlK3sc5EGO7FpnEzw8MXLlQ8pQsvpNv4K4ld9471NP2%2FhFAoDt1kaPi26q3zgo7lONnEnBvHfMfbr3iP964r4XTTjgzJSYsWHJ0V%2F3qF3eu3%2FB8lN07fsKwYRMeGCZM3nHw8LPP7T%2Bw%2FTH%2Bb%2FYjjwCBau4hdsY9BF%2BZRr1AgMrEoJdu5R%2F4fBhELEUxdqM72c5aTGef1%2BIQVnvjPTGxCb3wfhzek01IufGW24c%2BAOIZzq8gnCYLACAbHrsGKMNHNDV6EPR%2FosTBA8ziYuCw7Tjs%2BThseQz2CwV2Ou3PYeV9xMZBVchkAMkvnuAQM34FFf4CxEZ9KD5qXmxUIBBiM2mNMBxSoY3Sba1zpQWwlbVVwCXk5EIqmmhqKj93lzEgkm2zG3tH7IEWecP9w%2B9rGZ4ohslCYnXDUm9MGF2J0ihbnJBfkf59Rs7q4vv9Y9X1ozq9%2BdbRTwPhSMnYbk2zOnXtXqqkXKHH1tZM7NOvw5ip2e0XjzjcWDEhMjB%2FyIz70jFvcU%2FeGRvmVKrdoPJ0bltbq9R1v%2FYaDgTdn4hNzIa84ltA1MLCGETS7SCOQSAGkdoSIv86xGsg3HKMrOsQE6CUQxiaKGmtgtyAkWIwIMNxKIN5QK4xAIk3MIIVnNA%2FfAdPM%2BwIOhPaRNEtuvROycm7kHm7iMHM7wabASUqOtByowkglmHm5an5G8bOiYau9y%2FSAF7vYVQ2zqR5UUeUXdxLDtMT0SMkNXqR9Lhag0cfURpetbZG%2FAvZr2jRHOZSOkc5ztkqzrMIAf55rM9N5VmbON8PqhxBs8aRmyFqoTwG4b4dxLFrV2MQyS0hsq5DTACHylWC%2FhhXgUA%2BgFip9id54Z5wod3t1glmAKcgCUk%2BrogS11erXC6%2FJJ%2BWL8jcIsuyoNfbqiJ6Kri17tNEXW55EDWhHZV7uVhLarxnM5QhVqpNqbM3bcJ9eBf%2Bbn%2F07S9xNlt4lIyKtaWSunqyntWxHSQcba5nhhhNYrmqS%2B3jurSmJdWx7jiVLwUx3sKsmLb5bgdRi4YYhP92EMegKQaR3RIiX4PgeGy65RhZ1yEmwMdxnW4b5z7CQrQJJmEDGMEX1st6ino0mXXgy0%2B0x2rMHLeOu0ewbTh8BHua7RiLw9m2MThS2DCa%2F3fbaLyfPTsaR%2BCIsWwrAOXzv877434CJ6RAQFkZnnRvmsAPExtcAA6rqFMCF0%2Ba32f2945YHTpRoDazQHnjnES1lrm3%2BFq4%2BYgL%2Fygm0lglwc7fxSoM1BZEj3qKzovZ1zsLv1479tEH9ykddGe2jnx04rGmh6Mjpu%2F9zy%2FNwbFk68SdWpPhmOUDNr2FDyl9dMMXV699l61D26bmvgOVZjp2ZRN9qTc7xVdOrI9LlUxpXLoVMfk7Nb7fDFELp2MQKbeDOAZzYhAZLSGyrkNMgA3xlRNMtEfCbHWUTvF5CmKjOFSQeO%2FfrHjvH9%2BpMOtFUbKDBB6vWeALiC8fs96sl2LdkZoVarkRrHVH8v9lCDcaJGexM%2BzzQ42NZ9GHnuYrO3mL5LvvUdvFy4zXWq%2FB6ei%2FV%2B5Y9yQAqv0oW6R0aK94ppxcMTUAXpMJUu25YkGhw5Hbrl12RaQd5LrV3S5tj%2Bvm0xpaZCBL2vZIQjWCo6Q2%2F2lnOTKUqE%2F1UYJv5ZAOKb36Lxv32p%2BOTCrfUnn27ofnjujZq094yVz2TcPf%2Fv7%2B58IPi6dX3OnPyC0L3b917LZdPTcF8w%2F0mVQxcHZN%2BcTisqHF1YMuXO0r7Nv3562c52pXkOTnPL8TACXovgLUVWlXOH6L57V56vN2t3t%2B7FP1eajFc%2FGz689fe%2BUW3xc%2FvP58whegruiOKsCNGRZehzj%2BcwyiTQwCqAIhKbtXOVDENWdkOJQLre3tedlIaF%2BWlJTe3ghi5y4pbYNtKyK%2BAqGgV6RD66BdECyZQU%2BxzqKriLgsNtBaO9R97viBxZsNL1corarUot3Jy%2F%2BqHSkOv7bLFExMz5TiAMaaVIb%2Fwg7NmPnUc0VVb4%2Ba%2F3xO8a6Hj%2F0reqcOO967tWbwurHswpy73lz03Mt7Jg1ZtfPpwzvoK7OWGon8BOY%2F%2ByddrEUqp%2Fie%2B4eMYP%2F9%2ByRWGwjyVpav5k5sXH9%2F5MVNo2XdQ6Sw4ektO5V1zXc4lW4kzreeMU%2BJFaqnVDtxVIn1ikl8vyqRVppEbn5e21993vp2z4%2F9rD7PafGcS1R7PsEQk1d7TaLX%2FgqAo9URXolZHHYXKGOgqI3xIgApTICovZYRgzDHIa79iUMMSoA4xl6IQTg0iG84RDrHQ4OYwA4CqBbHZ9d89VRlx1zyq6euqsJ5fsnUqhXwYN5jsTttkj7YRp9eETFSj91nsfLIR0%2B9LqSttY3QmLJw6%2F3b430QyITiIlAqxdlBMcj%2FlHpUk%2B6gRVqnV4kwil39%2Be%2FsK5T%2F9sUYXdkp9n3vr4YN77ll3OW%2Bpzc8v7NpC3vppe0vPUtC7Ev2FzR%2FcQmlWcInr25%2BcGHXgtrefZ6cNHMlm8b%2BtaaRbXjh4Aku21jXgbraqmOrzaLyJC1RNqNUrt0Vk%2F1HquySb%2Fe8drD6PPN2z4%2Bp45Ngi%2Bd8fu35a9%2Ff4vtcJtrzCSkx3Wh3fS2Ph2YhR9gJVO1CD4WTPAaDTSACKjsZTifKZjMqJ%2FQQ8tX1yhOfG8nPjUN6iccXE96Pp8ejezqVFHXsFCrqot3J8iefZP%2Fq3KW8Y1m4nPwYfwOUY3tEGCUsjvv7PvxEa3orl8vQ6iZn76u47uxt1M%2Bb2Kjnf3P2ZWVxBdGcfXw7QXSpTl4Si1SnX6L2X2yaUjNt%2BDw0Xd40o6Z25NzmV4rxTJ9pvAljfYjl95r63Iuxboyetf0XbEBQGjL6zuy7cMOvu8aRRcWffLRjTHRO6DzXjNjutSq5e2KSf0PVDI8mmZuf107VNOfWz4851OeBFs%2B5ZLXnE%2FyxtZarrfrYDqw6wr2xGWIjpKsAWu%2BI2t%2BVyXex0jOkFJfNZpfsrQMOsKeYPHqqT%2BNdjB7q5euvRZPnb3oYUWsXUUomXo%2FW9JUVbx7J4HugOKR748Sz333%2Fyd8fMwk63mSElTs38OYRzF9LmyID2Efsvwpjn83sV86KdcDaFQ1NOXQi58u3ce%2FZMxo1nF6Nmgn7Y%2FTmxejV%2BpuEyuv9TaJArLfsb%2BIw6gkU6UvxFLggHe4Ot0uSrE5nKpjtqZKY4bc6eDxpBaOR51hGGj%2BVwg8UUAc4b5zk4det2ia1fWVJO2TlvZF9aafq7NnSl1EYN4y9zJ7BYRgeN5RaonxdR8%2BRfs09fmXXEH%2Becs89LqzDiTgeF3ljSZmwlZ1m55QTGn6hNi32qy1yujAU0iAXCmBQuG26zkI8nqx8t7tVlk4oDOW1Mbbh0RHvSCKixdiunWg32pIyxcyKCIieFj7YoVjVRAeseV9R9a0q5rdyvYktTFkxnyvWs%2FNzup6pu8B%2BROnrBae6djz2%2BInL0aAOq4Y%2Fe8%2BQDVf9G154buPm5xvWCb3mrjKRjN%2B7vp4xEwtQh3q8Y%2Ba0KbPYz19MYDO5tw1mkLIPz3985rOPP%2F10x9NP7wBEE68Q7pH8YFF6wGWwWXmN0KJs3CSfKkwsE%2FIgzx1QzhIE0DR3nLfB89CcmUMWLuFF2u%2BWPJGTu3C%2Bt3TBoiIAgpP5iG2lhdp%2BkEMyxSpMejflw753u9KSrHUfcfpp29njxj46a8zY3z3YPRTq3rmsqJu4b9TM2lGjps8c3qFLlw78AkQdn%2Bk78TN1N5wPn%2BSzg2gC%2FnKrZc73En4mKLYb3o4vKU6BwvQ0olRTQpJEXXkDB%2FTOLAxZRpmn39tucP%2FKjIL21tHmqcL5rLZZnbvMquO3Tl1n1aldEci5Ff%2FFEyCCePMvngykw%2BK%2FeMIh5f8VUtYgffQ49lB7%2BR0HUNTpQenhP6WBBkscHEs5y%2BQZ1WF29yx63DMUTVyicNM3RdTpRZly061Rq55Od5RisXIk%2FbGKDPGARzmLjqmfcouq%2Fe4LkcAKAEQZizSpY1khOWwS0KwXbHbQUZP2M1%2Bx3pUgbyrhA%2FvjeGG9tcNjs9M6maNnb2B4FnXTeR1Tw7TF6DZldL0ZRcHuMIs2WRn9LW10DWe%2Fei9JQJ4ELUkjOsxJ7m6%2BQYbnXvbTY2Ow6D6FHh%2F7lTTBZZSVLOtqB8g4iCCHzeZK%2BdC1Y38ymWJ3vb5SBnteXszG7cAfyXB6EYzgPBD%2FURrIP3Wr6u%2BOqQ9OmDF94qRp5JtZj%2F9u9sx5C%2Ficym8TiHvgB8gGOwAEwU4c%2FM4nELJA1RaoJelK5ZPTbBAIlYikk0WuCInpvPM3e2CJ%2B16ASv2UpGqjUBAIkMRRWhRNSeqtK6QAyGYBkJXxUyYgEkE7ZYLxAQJIVjbPWkkXx4%2BZIJRzr1gnnuT0TQ2Xp3rTPZ5kI5Hl5NZ2wZDslYJtjN4kb%2F%2BILklMTUvtHyFp1rT0tPw0qqdJaUlpzsxM6BvJlJ0W3iDhg5ZN3bwwdMsfKruRW2ZQbuRlt9evdcorVpPyolGwuJT%2FdUDsCHUKOz4AWfRHQvA065Z1snHLxtW7%2FoddaNewgZANO4LY%2Bn9OPN%2BrQSxmD80rC7ed1%2FRm9%2FpuaEacl3tH9TwUsfXIpYPVzprl6o4iBXdYT0AUtDAtYc3y%2BEuJtrjkUwGEVlI650ylKvE%2B5ABA%2FHNTwuf9lc%2BBgItUcf0%2FAgZwQedwuks0ypTyaYjSqY%2BiqLe60l3E5aIWOZ1mxPuV70toergeGwR4g0v8V2eKi0otVJZJ05xV7GHcsHQO%2B0ESk9LSjDup6913x%2FKzVKdeX9THFGzb1v5TDDfpQ45bECoJ9%2B43cBcf0nCXXr%2FF8%2F43notvxJ6rVEnqc1TWG05X9cp%2BAAQRKWiHl2Knck80KgqljCAC4Aq1QvJpPHP6XaxCImp1FiUv6pwAUXstt2Ud9NrbHGJCAsQx9ufEKktsFtJBzroOMYF9EK%2FV%2BGK1mv8PflNJUQAAAAABAAAAARmahXJJOF8PPPUACQgAAAAAAMk1MYsAAAAAyehMTPua%2FdUJoghiAAAACQACAAAAAAAAeAFjYGRg4Oj9u4KBgXPN71n%2FqjkXAUVQwU0Ap6sHhAB4AW2SA6wYQRRF786%2B2d3atm3b9ldQ27atsG6D2mFt2zaC2ra2d%2FYbSU7u6C3OG7mIowAgGQFlKIBldiXM1CVQQRZiurMEffRtDLVOYqbqhBBSS%2Fohgnt9rG%2BooxYiTOXDMvUBGbnWixwgPUgnUoLMJCOj5n1IP3Oe1ImajzZpD0YOtxzG6rSALoOzOiUm6ps4K8NJPs6vc%2F4cZ1UBv4u85FoRnHWr4azjkRqYKFej8hP3eqCfDER61uyT44DbBzlkBTwZD8h8%2FsMabOD3ZmFWkAiUs5f4f2SFNZfv6iTPscW%2BjOHynEzEcLULuaQbivCdW5SDNcrx50uFYLzFHYotZl1umvNM1tgNWX%2BV%2F3gdebi3ThTgVEMWKYci4kHZhxBie3TYx3rHbGr%2BPdo7x4dIHTKe5DFn%2BO%2Fj%2BW2VnE3ooW6isf0LIUENvZs1gf%2FLHojJwdpplCP5gn%2F5gi26FoYa19ZVFOJ6Sxuoz%2Fq2Ti20IKVJdnqvYJwnhfPH%2F2f6YHoQF30aZaK9J8T026RxH5fA%2FWPW%2F8IW4zkpnIfoFLifGB86v0ffm5nbyRs5iaHR3hNBD0HSfTzoPugRM%2BhdN0x052KoHLBS0tdgpidAiEesDsgWYO73RWQz2LWIwjqnMe%2FuYISQtlbyf2NlT9Q9PoBcBnrO6I5ELoMeyHkNnIXGdv809H%2FDXNOTeAEc0jWMJFcQxvFnto%2F5LjEvHrdbmh2Kji9aPL4839TcKPNAa6mlZUyOmZk6lzbPJ3bo56%2F%2FCz%2BVaqqrat5rY8x7xnzxl3nvo%2B27jFnz8c%2FmI9Nmh2XBdMsilrBitsnD9rI8aiN5DI%2FjSftC9mIf9pMfIB4kHiI%2BhWfQY5aPAYYYYYwpcyfpMMX0aZzBWZzDeVygchGXcBlX8ApexWt4HW%2FgLbzNbnfwLt7DJ%2Fp0TX4%2BUucji1hCnY%2FU%2BcijVB7D46jzkb3Yh%2F3kB4gHiYeIT%2BEZ9JjlY4AhRhhjytxJOkwxfRpncBbncB4XqFzEJVzGFbyCV%2FEaXscbeAtvs9sdvIv3cjmftWavuWs2mg6byt3ooIsFOyx77Kos2kiWsIK%2FUVPDOjawiQmO4CgdxnAcJzClz2PVbNKsy2ZzvoncjQ66qE2kNpHaRJawgr9RU8M6NrCJCY6gNpFjOI4TmNIn36TNfGSH5RrssKtyN%2B59b410iF0sUFO0l2UJtY%2F8jU9rWMcGNjHBEUypf0z8mm7vZLvZaC%2FLzdhmV2XBvpBF25IlLJOvEFfRI%2BNjgCFGGGNK5Rs6Z7Ij%2F45yNzro4m9Ywzo2sIkJjuBj2ZnvLDdjGxntLLWzLGGZfIW4ih4ZHwMMMcIYUyq1s8xkl97bH0y3JkZyM36j%2F%2B58rvTQxwBDjDDGNzyVyX35Ccjd6KCLv2EN69jAJiY4go%2Flfr05F%2BUa7CCzGx10sYA9tiWLxCWs2BfyN%2BIa1rGBTUxwBEfpMIbjOIEpfdjHvGaTd9LJb0duRp2S1O1I3Y4sYZl8hbiKHhkfAwwxwhhTKt%2FQOZPfmY3%2F%2FSs3Y5tNpTpL9ZQeGR8DDDHCGN%2FwbCbdfHO5GbW51OZSm8sSlslXiKvokfExwBAjjDGlUpvLTBY0K5KbiDcT672SbXZY6k7lbnTQxQI1h%2B1FeZTKY3gcT2KvTWUf9pMZIB4kHiI%2BxcQzxGfpfA7P4wW8yG4eT%2FkYYIgRxvgb9TWsYwObmOAITlI%2Fxf7TOIOzOIfzuEDlIi7hMq7gFbyK1%2FA63sBbeJtvdwfv4j28zyaP8QmVL%2FimL%2FENJ5PJHt3RqtyMbbYlPfQxwBAjjPEN9ZksqkMqN6PuV7bZy7LDtuRudNDFwzx1FI%2FhcTzJp73Yh%2F3kB4gHiYeIT%2BEZ9JjlY4AhRhjjb1TWsI4NbGKCIzjJlCmcxhmcxTmcxwVcxCVcxhW8glfxGl7HG3gLbzPxDt7Fe%2FgY%2F%2Begvq0YCAEoCNa1n%2BKVyTUl3Q0uIhoe%2B3DnRfV7nXGOc5zjHOc4xznOcY5znOMc5zjHOc5xjnOc4xznOMc5znGOc5zjHOc4xznOcY5znOMc5zjHOc5xjnOc4xznOMc5znGOc5zjHOc4xznOcY5znOM8XZouTZemS1OAKcAUYAowBZgCTAHm3x31O7p3vNf5c1iXeBkEAQDFcbsJX0IqFBwK7tyEgkPC3R0K7hrXzsIhePPK%2F7c77jPM1yxSPua0WmuDzNcuNmuLtmq7sbyfsUu7De%2Fxu9fvvvDNfN3ioN9j5pq0ximd1hmd1TmlX7iky7qiq7qmG3pgXYd6pMd6oqd6pud6oZd6pdd6p%2Ff6oI%2F6pC%2FKSxvf9F0%2F1LFl1naRcwwzrAu7AHNarbW6oEu6rCu6qmu6ob9Y7xu%2BkbfHH1ZopCk25RVrhXKn4LCO6KiOGfvpd%2BR3is15xXmVWKGRptgaysQKpUwc1hEdVcpEysTI7xTbKHMcKzTSFDtCmVihkab4z0FdI0QQBAEUbRz6XLh3Lc7VcI%2FWN54IuxXFS97oH58%2BMBoclE1usbHHW77wlW985wcHHHLEMSecsUuPXMNRqfzib3pcllj5xd%2B0lSVW5nNIL3nF6389h%2BY5NG3Thja0oQ1taEMb2tCGNrQn%2BQwjrcwxM93gJre4Y89mvsdb3vGeD3zkE5%2F5wle%2B8Z0fHHDIEceccMaOX67wNz3747gObCQAQhCKdjlRzBVD5be7rwAmfOMQsUvPLj279OzSYBks49Ibl97In%2FHCuNDGO%2BNOW6qlWqqlWqqlWqqlWqqYUkwpphTzifnEfII92IM92IM92IM92IM92IM92I%2FD4%2FA4PA6Pw%2BPwODwOj8M%2Ff7kaaDXQyt7K3mqglcCVwNVAq4FWA60GWglZCVkJWQlZCVkJWQlZDbQyqhpoNdAPh3NAwCAAwwDM%2B7b2sg8kCjIO4zAO4zAO4zAO4zAO4zAO4zAO4zAO4zAO4zAO4zAO47AO67AO67AO67AO67AO67AO67AO67AO67AO67AO67AO63AO53AO53AO53AO53AO53AO53AO53AO53AO53AO53AO5xCHOMQhDnGIQxziEIc4xCEOcYhDHOIQhzjEIQ5xiEMd6lCHOtShDnWoQx3qUIc61KEOdahDHepQhzrUoQ6%2Fh%2BP6RpIjiKEoyOPvCARUoK9LctP5ZqXTop7q%2F6H%2F0H%2B4P9yfPz82bdm2Y9ee%2FT355bS3%2FdivDW9reFtDb4beDL0ZejP0ZujN0JuhN0Nvht4MvRl6M%2FRm6M3w1of3PVnJSlaykpWsZCUrWclKVrKSlaxkJStZySpWsYpVrGIVq1jFKlaxilWsYhWrWMUqVrGa1axmNatZzWpWs5rVrGY1q1nNalazmtWsYQ1rWMMa1rCGNaxhDWtYwxrWsIY1rGENa1nLWtaylrWsZS1rWcta1rKWtaxlLWtZyzrWsY51rGMd61jHOtaxjnWsYx3rWMc61rEeTf1o6kdTP%2F84rpMqCKAYhmH8Cfy2JjuLCPiYPDH1Y%2BrH1I%2BpH1M%2Fpn5M%2FZh6FEZhFEZhFEZhFEZhFEZhFFZhFVZhFVZhFVZhFVZhFVbhFE7hFE7hFE7hFE7hFE7hFCKgCChPHQFlc7I52ZxsTgQUAUVAEVAEFAFFQBFQBBQBRUARUAQUAUVAEVAEFAFFQBFQti5bl63L1mXrsnXZuggoAoqAIqAIKAKKgCKgCCgCioAioAgoAoqAIqAIKAKKgCKgCCgCyt5GQBFQBPTlwD7OEIaBKAxSOrmJVZa2TsJcwJ6r0%2F%2B9sBOGnTDshOF%2BDndyXG7k7vfh9%2Bn35fft978Thp2wKuqqqKtarmq58cYbb7zzzjvvfPDBBx988sknn3zxxRdfPHnyVPip8FPhp8JPhZ8KP78czLdxBDAMAMFc%2FbdAk4AERoMS5CpQOW82uWyPHexkJzvZyU52spOd7GQnu9jFLnaxi13sYhe72MVudrOb3exmN7vZzW52s8EGG2ywwQYbbLDBBnvZy172spe97GUve9nLJptssskmm2yyySabbLHFFltsscUWW2yxxX6%2B7P%2BrH%2Fqtf6%2B2Z3u2Z3u2Z3u2Z3u2Z3s%2BO66jKoYBGASA%2FiUFeLO2tqfgvhIgVkOshvj%2F8f%2FjF8VqiL8dqyG%2Bd4klllhiiSWWWGKJJY444ogjjjjiiCOO%2BPua0gPv7paRAHgBLcEDFOsGAADAurFtJw%2Fbt23btm3btm3btm3btq27UCik%2F1sq1CH0I9wl%2FDTSONInsjxyKcpGc0VrRNtGx0dXRF%2FFpFiV2KbYl3j%2B%2BJz4vkTaxKjEgcSXpJzMm6yb3ALkAnoCV0ARLAcOBjdCAJQJqgWNhJZDT2EbbgTPhz8h%2BZFJyDbkFSqgVdGh6Br0BhbFFCwHVhNrj43DXuH58V74WcIkahHvyDRkLXIGeY18SxWl%2BlMHaIVuSc%2Bh3zHpmNbMJOYuy7DF2E7sFvYMJ3Clf%2B3DHecNvjm%2Fm38g1BYmioxYS5wqbhZ3S0Wl2tJkab50U04pl5CHy9vlmwqlZFJaK4uVnco55YlaUK2kNla7qEPV6epi9aMW01jN0zJohbRZ2mptj3ZWu6e91wE9vT5LX63v0c%2Fq9%2FUPRiZjprHS2GmcNG4ar8yIOcycZC4yN5mHzMvmE%2FOrhVq6NcCaYC2wNlgHrAvWQ%2Ft%2Fe6w9115r77XP2fecrE4xp65zwM3lNnZnuBfdZ17E071sXj6vrTfP2%2BHd8F74lJ%2FeL%2BHv86%2F6D%2F23Qfogf1A%2BqB10CAYGk4LFwdaf2C%2BJfQAAAAABAAAA3QCKABYAVgAFAAIAEAAvAFwAAAEOAPgAAwABeAFljgNuBEAUhr%2FajBr3AHVY27btds0L7MH3Wysz897PZIAO7mihqbWLJoahiJvpl%2BWxc4HRIm6tyrQxwkMRtzNIooj7uSDDMRE%2BCdk859Ud50z%2BTZKAPMaqyjsm%2BHDGzI37GlqiNTu%2Ftj7E00x5rrBBXDWMWdUJdMrtUveHhCfCHJOeNB4m9CK%2Bd91PWZgY37oBfov%2FiTvjKgfsss4mR5w7x5kxPZUFNtEoQ3gBbMEDjJYBAADQ9%2F3nu2zbtm3b5p9t17JdQ7Zt21zmvGXXvJrZe0LA37Cw%2F3lDEBISIVKUaDFixYmXIJHEkkgqmeRSSCmV1NJIK530Msgok8yyyCqb7HLIKZfc8sgrn%2FwKKKiwIooqprgSSiqltDLKKqe8CiqqpLIqqqqmuhpqqqW2Ouqqp74GGmqksSaaaqa5FlpqpbU22mqnvQ466qSzLrrqprs9NpthprNWeWeWReZba6ctQYR5QaTplvvhp4VWm%2BOyt75bZ5fffvljk71uum6fHnpaopfbervhlvfCHnngof36%2BGappx57oq%2BPPpurv34GGGSgwTYYYpihhhthlJFGG%2BODscYbZ4JJJjphoykmm2qaT7445ZkDDnrujRcOOeyY46444qirZtvtnPPOBFG%2BBtFBTBAbxAXxQYJC7rvjrnv%2FxpJXmpPDXpqXaWDg6MKZX5ZaVJycX5TK4lpalA8SdnMyMITSRjxp%2BaVFxaUFqUWZ%2BUVQQWMobcKUlgYAHQ14sAAAeAFNSzVaxFAQfhP9tprgntWkeR2PGvd1GRwqaiyhxd1bTpGXbm%2FBPdAbrFaMzy%2BT75H4YoxiYFN0UaWoDWhP2IGtZtNuNJMW0fS8E3XHLHJEiga66lFTq0cNtR5dXhLRpSbXJTpJB5U00XSrgOqEGqjqwvxA9GsekiJBw2KIekUPdQCSJZAQ86hE8QMVxDoqhgKMQDDaZ6csYH9Msxic9YIOVXgLK2XO01WzXkrLSGFTwp10yq05WdyQxp1ktLG5FgK8rF8%2FP7PpkbQcLa%2FJ2Mh6Wu42D2sk7GXT657H%2BY7nH%2FNW%2BNzz%2Bf9ov%2F07DXE7QQYAAA%3D%3D%29%20format%28%22woff%22%29%7D%40font%2Dface%7Bfont%2Dfamily%3A%27Open%20Sans%27%3Bfont%2Dstyle%3Anormal%3Bfont%2Dweight%3A700%3Bsrc%3Alocal%28%27Open%20Sans%20Bold%27%29%2Clocal%28OpenSans%2DBold%29%2Curl%28data%3Aapplication%2Ffont%2Dwoff%3Bbase64%2Cd09GRgABAAAAAFIkABIAAAAAjFQAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAABlAAAABYAAAAWABAA3UdQT1MAAAGsAAAADAAAAAwAFQAKR1NVQgAAAbgAAABZAAAAdN3O3ptPUy8yAAACFAAAAGAAAABgonWhGGNtYXAAAAJ0AAAAmAAAAMyvDbOdY3Z0IAAAAwwAAABdAAAAqhMtGpRmcGdtAAADbAAABKQAAAfgu3OkdWdhc3AAAAgQAAAADAAAAAwACAAbZ2x5ZgAACBwAADiOAABYHAyUF61oZWFkAABArAAAADYAAAA29%2BHHDmhoZWEAAEDkAAAAHwAAACQOKQeIaG10eAAAQQQAAAICAAADbOuUTaVrZXJuAABDCAAAChcAAB6Qo%2Buk42xvY2EAAE0gAAABugAAAbyyH8b%2FbWF4cAAATtwAAAAgAAAAIAJoAh9uYW1lAABO%2FAAAALcAAAFcGJAzWHBvc3QAAE%2B0AAABhgAAAiiYDmoRcHJlcAAAUTwAAADnAAAA%2BMgJ%2FGsAAQAAAAwAAAAAAAAAAgABAAAA3AABAAAAAQAAAAoACgAKAAB4AR3HNcJBAQDA8d%2BrLzDatEXOrqDd4S2ayUX1beTyDwEyyrqCbXrY%2BxPD8ylAsF0tUn%2F4nlj89Z9A7%2BtETl5RXdNNZGDm%2BvXYXWjgLDRzEhoLBAYv0%2F0NHAAAAAADBQ8CvAAFAAgFmgUzAAABHwWaBTMAAAPRAGYB%2FAgCAgsIBgMFBAICBOAAAu9AACBbAAAAKAAAAAAxQVNDACAAIP%2F9Bh%2F%2BFACECI0CWCAAAZ8AAAAABF4FtgAAACAAA3gBY2BgYGRgBmIGBh4GFoYDQFqHQYGBBcjzYPBkqGM4zXCe4T%2BjIWMw0zGmW0x3FEQUpBTkFJQU1BSsFFwUShTWKAn9%2Fw%2FUpQBU7cWwgOEMwwWg6iCoamEFCQUZsGpLhOr%2Fjxn6%2Fz%2F6f5CB9%2F%2Fe%2Fz3%2Fc%2F7%2B%2Bvv877MHGx6sfbDmwcoHyx5MedD9IOGByr39QHeRAABARzfieAFjE2EQZ2Bg3QYkS1m3sZ5lQAEscUDxagaG%2F29APAT5TwRIgnSJ%2Fpny%2F%2FW%2F%2Fv8P%2Fu0Bigj9C2MgC3BAqKcM3xgZGLUZLjNsYmQCsoGY4S3DfYZNDAyMIQAKyCHTAAAAeAGNVEd320YQ3oUaqwO66gUpi6wpN9K9V4QEYCquKnxvoTRA7VE5%2BZLemEvKyvkvA%2BtC%2BeRj6m9Iv0VH5%2BrMLEiml1XhzPdNn3n0rj6%2FEKn2%2FNzszO1bN29cv%2FbcdOtqGPjNxrPelcuXLl44f%2B7smdOnjh09crhe279vqrpXPuM%2BPbmzYj%2B2rVws5HMT42OjIxZnNQE8DmCkKiphIgOZtOo1EUx2%2FHotkGEMIhGAH6NTstUykExAxAKmEqSGMFl6aLn6J0svs%2FSGltwWF9lFSiEFfO1L0eMLMwrlT30ZCdgy8g2S0cMoZVRcFz1MVVStCCB8raOD2Md4abHQlM2VQr3G0kIRxSJKsF%2FeSfn%2By9wI1v7gfGqxXBmDUKdBsgy3Z1TgO64b1WvTsE36hmJNExLGmzBhQoo1Kp2ti7T2QN%2Ft2WwxPlRalsvJCwpGEvTVI4HWH0HlEByQPhx468dJ7HwFatIP4BBFvTY7zHPtt5Qcxqq2FPohw3bk1s9%2FRJI%2BMl61HzISwWoCn1UuPSfEWWsdShHqWCe9R91FKWyp01JJ3wlw3Oy2Ao74%2FXUHwrsR2HGHn4%2F6rYez12DHzPMKrGooOgki%2BHtFumcdtzK0uf1PNMOxwDhN2HVpDOs9jy2iAt0ZlemCLTr3mHfkUARWTMyDAbOrTUx3wAzdY%2BniaOaUhtHq9LIMcOLrCXQXQSSv0GKkDdt%2BcVypt1fEuSORsRUwgrZrAsamYJy8fu%2BAd0Mu2iYFhexjy9FIVLaLcxLDUJxABnH%2F97XOJAYQOOjWoewQ5hV4Pgpe0t9YkB49gh5JjAtb880y4Yi8AztlY7hdKitYm1PGpe8GO5vA4qW%2BFxwJfMosAk2X9n9X2cVVfnA36pzHNHJGbbITj75NTwpn4wQ7ySKfAu9u4kVOBVotr8LTsbMMIl4VynHBizBEJNVKBAfMNA9867j0InNX8%2BranLw2s6DOmqIHBIbDfQR%2FCiOVk4XBY4VcNSeU5YxEaGgjIEIUZOMi%2FoeJag4mEB3PUOweCaG4wwbWWAYcEMGKn9mR%2FsegY3R6zdYg2jipGKfZctzINQ%2FvxkJa9BOjR44W0OpTKAskcnjLTcKyuU%2FSVIWSKzKSHQHebYW9mfGYjfSHYfbT3%2Bv877XhsIwGzEUaleEwITyE2u%2F0q0Yfqq0%2F0dMDWuicvDanKbjsB2RY%2BTQwOnfvbMUhiNPFyDCRwhZhdjE69Ty6FjoOoeX0spZz6qKxxu%2Bed523KNd2do1fm2%2FUa6nFGqnkH8%2BkHv94bkFt2oyJj%2BfVPYtbzbgRpXuRU5uCMc%2BgFqEIGkWQQpFmUckZe2fTY6xr2FEDGH2px5nBcgOMs6WelWF2lmiKEiFjITOaMd7AehSxXIZ1DWZeymhkXmHMy3l5r2SVLSflBN1D5D5nLM%2FZRomXuZOi16yBe7yb5j0ns%2BiihRdlFbd%2FS91eUBslhm7mPyZq0MNzmezgspUUgVimQ3kn6ug48mntu3E1%2BMuBy8u4JnkZCxkvQUGuNKAoG4RfIfxKho8TPoEnyndzdO%2Fi7m8Dpwt4XrnSBvH45462t2hTEX4Bafun%2Bq8jIzK%2FAAEAAgAIAAr%2F%2FwAPeAF8egd8lFXW9zn3PmX6PNMnPZNJMRRDMkzmDYgZMRRDCEmMMUPJIgZEepHlRYyIiNhRUdYuS4ksy9reLDYsdOmLLC%2FLy7L2CgKrrCJkLt%2B9T2YyYPl%2BD8804J5zT%2Fn%2FzznPBQKbACSTvAEoqJAdtUhUJpQYjBJVAUrKSkIOJ1ZUOEKOUGkfV8ARiPB7E72m87WJZF58ibzhXPVE6QsAAnMufI4H9XXsUBh1UpOJSJLmQNWqNsasLkKhsrKnA%2FT1HCF9PQzSAPYtD5V5PW4lmFeIK86EcCRbObLp2lGjGxpH4%2Bf0wLkjjU3NDSNGxYSMxbSdDkzomhE1SypQalCISvniob1lDuTL7injC1O%2BMr%2FxmeJtxeRt%2FiJviJ8mmrjFOr0BJCZ3QAbkQFu0ypCZ45HcRqNJQkiT%2FLKsOO02s2Ryudze7CxVUnw%2Bv9%2BtmKTcgEEymzPRlgN2e5rHaeOXyeeiisnJFagMOSsqSkr45kL8Tr450SfM5%2Fy1V66pGvBwTV1BcYcDEX67QjQkbo8cigTplyVI2OHh%2F6zdXHO4%2BiR6SjoxMPzo8O21h2tPx7O2lmylNV%2FtY5Nwubj3fXUA%2F8BuFveBr74CoNB84V6pSnFCLhRCL7g7OijfR7Oy3FalR49AcXYRFBnsQUcgkAYO6H15j6wiAGu%2BI%2BAo6pleFDAWKJZMX%2BaImNunWOpiskIVH796ewAqEzvV9gqX9nQ4Qd8S%2F1V%2FScSM%2FrmsTP9FfNUNIvzuVlRPMFxY5PB6fY6iwsJw3%2FJIOOTx%2BlT%2BWzaR%2BxYWecrR7fWFFanqi%2F33nnn9%2Bv%2BMvXr7mk933%2Fv5Gy3PrN6yZjg7WFV1D5s2oGoh7nx%2Bk2vvTrkeDT0HKlieXvvakkfecj%2F5uKnhm6iNHRk27a6bevTL%2BclH3ulVkX3cBTJUXjip%2FCDvBiO4wQ95PB6qo%2Flen0%2BWTRpofo8nLa04mB3UgpeX5PbMLEzzKz4%2FtapOlXt5a1llpXhN7FF7r8zJ37o%2FiN15Q2XhvsE8RdajOqwFyrwFGETXr%2F0F9u9dNnZsWW9869X1azow9qe%2Fkpc7D52mPRf%2F%2FHcJFrR1npvf9sWX336EO7%2F9x7lqeUMn6frt8y%2B%2F%2FZD%2FJjzecOGEAnxvWdzjpTAzWtHbGjRhlhdMXqvLVZSWnl5kpSoChLJVtcwXSPea8vNLSrT0dEnTegyPaZIUqIlJLnSKhAV%2FpfBuhb9EbE53bYVIM%2F3S45hfiZ%2B7th8IFPHN5QuXcscms1vF8kiAZ2qBsEEEFQX7FnJDeNy%2B8nIF2JLZ7%2F77DPtk3rJhVV9vefPD%2B57CzCF98cr82%2Bs631s4%2FvbxrKPf1XjT0Iqrh%2F%2BuafTMxR%2B9e%2B%2BmxqZnxzzx5l8embstxo7PeX0Ju3DjoqYJA7C611hyd3hAtH%2FzpD5jAAVm4DM6Zjj5C5WIAIu9DuxCIB0kuvEBAKGBbSTz%2BL%2B3Qm7UZjaZqCSBqtrN%2BVQgmAMTua3joeaMhBTicTt9wULS8PSj5x58eNk9Z5c9RUrRiPte3MTKzvyHRd5Yh9vFygP4yq3JlfmyfHG%2Bso1LyP%2F5yqgRNVjuDPclRSGvk7Q%2B%2FejZJY89%2FOA5sTT7ifVb%2Bzru%2FOEM7tv0EisFhErSJGUpbrBBOOo3ms0ypVZUVc0umUyqilarYrDxpN1aJrKQuykJwvwz%2FyPMUOCTXSqlRa6CiEzJy8U4J8DWf%2FjpM%2FeeOMZeLMKpxYqbPTyx088Oz8MKtnMuFqefm4gzAKEZPpUqpG1g5qivGRSjkSKAxWo2giJRKOFCysqS4vjNhQXCAa4Bxz1HEI%2ByNlx0FBextqOk9SjezW49yhaIHbGzuBtOggKe1wgFWVapDCXbdSNt5ghfoNCgMxLA3X1v%2B%2BdV%2Beg%2FvIsdR9MJYWVcS5rISqDg%2BCuVQQLkSiTc7QoHPANIGq49dw6wi7GwgmvujZoUrrSRNsaMLqjsmfjnkYu4aU6SlJZ28xECNyqt0mMrM2pBricBidueiNS5iDcRA0ir4h%2By4yQgGJP%2FDwLVF05IQ%2BW9XLoPLou6LYoTFPCnGT0jYkaV2kfEaBok8y%2B1kkYCeeDQnIEyQI2nUrlDE3kkDT3PzsfZhXMoxZHGw2OmTRl7w%2BSpLeQoW8gexttwNi7C6ewO9hD7%2FusTaELr8eOAMA%2BA1nJtTNAj6jJKAAZEs8WgqihJRgX9wJHOkYoXkf8iwR2RiKKqRRiitWw3lYdnr30cDzNae%2F8Tw%2F1L3sS5gFALINXpKDQgmp1pQxW86M3O8aoqMTlNtTGnSjATM2tjXEgCYfS3hKyuCkFHkzBeScI6WKhFVxLuD%2BEQLt4TkOo6CU5f1drrhvrrVly%2FdspDayfe%2B8EtQx7fuJG0HcbZLyyc1r%2B5qXbojtE1xa0dt4x%2F5c31r9hA6MYtP5DrVgijoiV5Po6KKs3MBOCVStFlgez8bG57v8%2Fvq4tZ%2FGilfr8pX7VqJm1EzJQGeg3j5%2FxX8ruWMbrG4oduFyXxMEFyQlkpkMeJTvhKbCMY1j%2Fo2ykPlEmSr335KxvYPvbZydev29P65KNrX58%2Bc92zfxv6%2BKil76PnU1Sl6fe%2Bl694%2F%2FzIweMjUO1ZPnH2TU3fxqa09%2Bl%2F6OHXAQgEAaSZuhddMDiaZ1epkRAzpTKAxyVzrnGh7JLreGi7qF1VqO5WvoGQ0DwF584uo3cpz4sCBzc9T9SAQPKgoqI082X2QfxhshCzXmZ5Jmoo6MvOYAk7gCWH6cudN5%2B98oSroZZNBoRWbuEw1ygDmqI9OZ36aJrbbTPYqIFmZrldRpdFA27ONADF4%2FHXxjyKYhkRU9LgYsIJ6e%2BpgHAkGUjkgUhLSBg2N9w3IMwpylMaKScT%2Fn6efcC%2BPLN8xActmMGOhu%2B4bH6EpsV%2FyAgOoO0n9%2F%2BHnR2B5h7hr455LAPJ1%2Bwc%2B1i1AYGhXOs6eQf4IR%2BuigYUp8WSlweZTnAWFNpz6mJ2u4d60kbEPGnUwENEvUTbVJbqTCjIAQJlPo8IXEUNdQEJcCAhMvd%2Fgvy8Q3E6TmsbErv%2B%2BZ2tRuuN%2F7f1X%2BzsNyv%2FvYhoN066sbVlcRuZiq%2FiWvuP7rEb%2F7LuhyPfsFPLMffdxfMnz7%2B1fu5qEc0RPdM6QIHLo14FgCDKRFYNMiWU1MaoAsLfupYpQwobhpDby4OfkoJ4iZQWPyy9jNLm8wLSdEtUyzvBB3lwOVwbLXYqnl6U%2Bo3%2BQo%2FHnp1ttBtL%2BihOZyBQXGwBS0Z9zJIGwfoYXGwTYYlLnVeWdKFwoCSqAj0%2FLqoW8qk7kShFiku3kK9cfCPVHyDedt%2FqpeyLL06zk4uXtU1DyfXfE2fPmrng0Ccjbhg%2Bflxtq7zz3ZUzXhrU%2FO6sjqN73mrbXD2iY%2FKzm89vbBp7Y%2F3VcwaOI3vqq674XdnlYysH1Ym8GajvcgekQQFURnOzZJfFEgyCCwqLtNy6mKZRrzd9RMyrUkMdR%2BNfdbfu7DIBzCIaw0J5kS16edcXuNOdBXwbyU1J1ewxtvTOqxtHP%2F3%2BJIOl3xOz3v0nmr9Y%2Bf2d8VNjp4xrbbm7jQ5mdazJdtYzasufW2r%2B83%2FH0fEE%2B3DTXbdNum1%2BHfd4stOSZuvMURh1OXnyAPjtnsaYXeumMPAnaOwXTOb4NVYT72PqU%2BxG7xcf6mPNQAQX6%2FIUcHKmcllV1UUlBRXFZdIaYyZNUjgzJ6Rpm8u6mKrApzM0vUgYbrTrbF2SFHbS18Xa5GhSmF5P7JYqZODSiqKajIK%2FVYNEqQIEZRigFxShVFwJURhGD6JU0ZlDP443kvW7ccNSPH2abWFfCns140peoYDeNeZHHSqlRgkMcp00ViJSV30QKhkjagSue7JMQH4304%2FFkrTgKC9Tjh69VLueUScBrhFPNVAUJJTKEur6Ce0u1dCFuorNZH28UayJb2IaDjjNtKWsWmioXPicrpB365FYFc3LTU9PA%2BB2dlqdhUV2QCMFCAazGmNBl900ImaXkg7mVCR4KJVkyfpRJFR5F86oRckaXOFoe0m%2F7W6YevPVY5uWvzf1w3P7vm99YGyIHU4139VjH6ob1tLvqqpxR9u2r5m2onVI9RVXsHUX9eMTLkxQdnCc6AuVEIv2VCsq3G5XOGzt77rMZaWBtEDvNOgN0au8hkhEMg3QTPzqkVUq5feAklS7rOucMleiPU7ivc6kQtuiYCqrfNTdlVF8fxLxCKgtj3iUQC44%2BjrzOa06UfyDSESH3x2j106vnpWmTXnhlT1o%2BUfT%2Fqt9NdGau79%2FZhf73%2BexCP2T2Pz%2FZefZXez6I%2FgIyv%2FEkRs7Yf3IFpM1FG27n5x%2B%2BNQ9Q%2FotPPTGQSQBH%2FPd%2F9Yf%2Fvjjne1sx152gh0p6f3eKHwYW3%2FEZZ93sA627uCCpcfMzwj7AIC8WN4IKljh6miAWKkBQZHNZgqip6CSZLOSmpjVSs0yBZocIpTouZRiZWGortKL8gsDiITjI5Uik%2BLHJ7FXiYTziRJnywoMgWdwNFstbzxXRcbikdvy72CqiPvXAaQznI%2Ft4Idczsm9VLdbktKzzeY83vfZ7QGDlqalDY9ZNLRSTbODPb0mZneCvyYG9BLcSxY9KQVDSTe5ArmSp7voCQYwWfE4HPqnwOu4AyOYNn%2FC%2FfPZh2fjx7C84%2FaZ8xev2nXHraxT3vDKpkVrHaacdQ%2B%2B%2FxGdXTuy8Zr4NrZo3PgNgDCXI%2FUBnh9eKI36VZeLN%2BNWnxscUBNzSKpskmtiJleyNBOvSfVEKuQRD2%2B0Iw4l2BUdoTI%2BZiikBS%2B9h9OfOtrxL7aJvdiOkQOHDrc2tEs72U%2FHmW846xyGi3DSZ3j9azd1FvUDImwoz%2BE2NIBd1OtGAIdVkjTZUhOTqWTlLbMzaamUcEELnGVzAbVA0BHKleew8ew2Ng534wR8gL3Dxq5ZjO%2FxGuQP7A55A7ubrcHDnUMBdY8RLs0Mg6L5BgnAqphMiBbFWBOzKNxLAnII3zehaKqJofOXXkp5iCsitPAkbol0bqDV8RN4ijmIm4tl7zK2BLqkUsalGqFvNN1AqVkBQDQJoSl5QlZS0MVSLhaCX7P9dHD8OHKMEwKWxLu8KBdxL6ZDTbQo3e8nNquVEFemy2DIsGlmjQdbOr9BNkt%2Br%2BzlsmTu1FB3wd0z5VlnstgW8BBwKLpv9YJL5RlPdMKNOALkU1L14E93sr%2ByVfg43vTxgZtW%2FGXnd1vevKGVHafhuOnyAlyMU3AcPjDybB377rOT591Y2mUHeYJu%2FUg004jIzW%2BQJFm2GGhNrMaABoNsUijK3QmbMnfKFN2XPIHtjr%2FNdmE5uRrDZG78Xj5t2EIGAOCFiawBT%2BozgRw%2BbSAGXiPLwM0MRsr79e4NCw4Rxa5IJL6kRnJurq0bOKEZy79hDV4k7gVL5JHn1l4AdgYS%2BtfxVS0wMJpjIcRkNiOAzUBl2cq%2FUrNZoXwP3VtwpgBXF1eWAOXEQAdVfSMRDKBcx1awhYvEZm7FB7CZETKxJf4D39CN6%2FHf8XkJ6VIlly6LPUkqBVCQArccJKJUl6GXoPq6r3PD1MsbzldfSPxvRcyR3dAvmukGo9nI1bbxUPHKisdJjEQxq9QGilBcN36X0mUp6hA6Y9DpEYujXuXykscVRBpkK4wudhzbcaSC07GdfUgtRrZEms9Wzok3cw1WSi3nqklH6R3oPr8kYcedOm6WR9NMYETFagVwUFlRVM1MVW5RVLtHv11adI%2FEnAKwL1KEcM%2FJO9nv43fpSiwh81U7%2BqQGdrQtXseFv4FZvycdQPQ8%2BVKfDHgE0jgAfBZF8RpdNTGjRO01Mer6daQROSBexQQy16Hxpkj%2Bkj3BXubXE3gz1vNr%2FPlDb76Bs9nSNzaSY%2BxxdivejVP5tZCj0mP%2FOYvf4smfoAvtpHU62rkEFkhGowdsNrvdbQXBV3ZNM9TENGr%2FTSzoRn%2FZLXHoEyAo4ckJSx%2Bau%2BBBspEdYacX8yA6iCb0UGXmlKkTd504Fz8rb%2FgchAXYat0CdkjjEZynUFmSCDVIJg9AhmYypVOVEwBXRFK5UWSV22N7Ev4uHU92T9OQe%2BLX7PPaKziWzWZnfL9pJMZW1bO5OPS3LSUP1S3lg9poocvnk0ySppm8njQw8cTzu4wWMA6PAZgtFm40C%2FWaRcikzJbSWfPzuXKqQ0sxKLdfgl3BF0A82brsgaXLW7gB12EPzH7oTqxuZWvZKtp73M0Tm%2BPz4vvlDUeOLdxZwVwPk1KRVS2cQX0ce4s4n%2BRlpKcHICC7LeCGy4rdAbAELNlGX3ZNzCdRYyq%2BuhvwVHHWrRpn%2BIvGGoVFl%2FMhDadWMcJP9LZen9cr%2Bdin7JuOx%2FZeN2FqnzFL7767DtWvZu2f2TrnyermlsJrn977BC7f%2Flkz5g4srx3e8%2Borqypveeqmzf8qL%2F13n8KGgcUDKqrHbRP6FwNIYiqrimdLCgBFNBhVKlHOuxSdv3y2lARgcoLtYrOlOn53IGEMEF7k%2BdXC13JCQdThQHSbDQaX08hRhsdSYuuXVBAOtyLx4BHI6%2B6CYLnlEXbyLfYFex%2FD9zz7BAf0ztqVZ%2B7EwHn6YufCPz33%2FDraBqjXfyHBI2K%2BRonRKAOiVZYkC3BDJ%2Bq9VNpUJOaj%2BsXtVx6h57CC2dmLTMMKdPlKFXO0a4DY%2BdTwvZeN%2FqJLhrqRy8gSsx%2BT0e52yQh%2Bv2ynlszMrKwci9mcnemSzdRvt6NJiOSi%2BEtCbgo1UyM3WkiKOMKJUtMlGvCIi78nPihD2fPbzWFJ6WPdxqngfix9q9Sr9HQdwoJDth5mUy%2Fnm1hKoRixV%2FmpUJxwVT85trLi1EAa6twb%2BaS%2B9uuhNBsStmnSbVMVzTXLnPpUo6oYTYpJ0C2VLGYDkWXJqFCUkhDL9evG%2BooUZ3VpjZj8Izex59h6fnXg56wfNmF%2FDGMtC5Pi%2BGHyHdka%2F47Y4j27dJCYyF2B7wZVlZEQEERvNFFF4QqiSgVDdslOjEH5Z65AarLLowIDZAGWchEZbA%2FLwDo6mozsXBTfQUqoXleVJiZ0RugfzTJISFUVEExmlYuSRP1I0IAGUcZdOgxNpl1qFqqPbALSzPPvkbfjTVJ6vIrs30m%2FRXi%2F0ykkLWUbyWw9T7KjVgXRIIFRJlTBfN2EuvH0BNZX4iUpmc0y8bOPPmIblXMHz60Xa1gA6MDkVFt%2FZIKYnGpfnBa6sUmAHY9%2FmJhqI4S4fJ%2BQL55xoKIY%2BVYNoOZTiaaCvQtCfCFHMMy1CH34IX7GMmfKjQd%2FUoR8AzFIA%2BR3QIHeUTdBWVYkSTznFd6SVJko0DW%2BxLKLeyTRZYcwiGjADQ%2FjqVO8uP6KGOiGzmqyKN4maq1OtpHWXhja9SRIRonoRhEaJZ5K0NrOFyl%2F%2FvMAAGKNdIQ%2BqATAwK1gBjVKRVTIdwCUpB%2FrioP0XWLww7EvHPD6PGRL5ZkqbKpcLx3ptW2gZ%2Fz7GYIdmjju9pfm6E8Zq6OFTovBQvLy%2FP78LIMhaEkbFrNYZLfbPjjm5jWdnDM4JnvBk0Az%2Fy%2BZVYSeXlcUJWdMvMcN9%2B1u8h0omny9N6YT%2BhuGr1r0xzd%2BOr%2F5xbv%2FOn7T8Y9PswO%2FX3znY5MWPHHDsNfXvfono1K6rn7f%2BK3vx32E27h55MJbxwOBFVznDsUNTsjh7BvIojRg1Mw2n89szrWA2WPUFFDSh8QUL7iGxEC7mCz83SHi7H5mUeZ0aISzRVANCgTlw1AfH9d2D8WobftHX%2B7YNsMT%2BhpLLZbJM2ZOJJNvaZk%2BQ5rNdrPv2XH2t6XzFTdbPuiJ9jP3rwh0PPOXNWvWAMLoCyfoMWk2eDi6esRYymclxCubh8RkDexcM%2B%2BlZZJuOTk32SdwmnJoYkjgUBQyIf4DZqJx81Mjh9525cmTzcuHVf%2FBTQZgFvauOZFVwBH49ZIydr4kH4iQK81M2CcaDRi9Gi%2BobTZhqFy7xwIOIyi6fTTdPt5ft4%2BoT4Q%2BecShOXlPGioU%2FBLkji3iOnVPiAnZ9vHnOw9ON%2Fmw7Jv%2B1omT5kyVp7dNmDnLjWVoRx7zq9vG4YSfTjyy5vt7ViWNk9BynD61y%2BDMEKROSUpzOLKcJlOm3%2BOkzuoYFVUUVMesmuoZHFNTel5aloiry3bI3RbgrbNeR4XKwOMJ6AVAxMMtOP2GaQZcT2aVs%2B%2FY3zDt7LdoiJfID985vmNc3Qb61PyZM%2Bd3NmAPdGAahth3Jx%2B789Eel5%2B4rCjB7nSOkgMeuCKa7SZElSn1%2BqwAPhndyHVz283akJgZqJ4bgp8v7QVDiRwWFgxH9KfOeieocBWpiZ1l%2B9eu3bj%2Fufm1o2uv6ocGOq9zCZ23rKHh3ZdLPsoafsVgoKAwtzSV26sYyiEKd0SrzFlZAwZIfRwOUqzmSkGUpIHpPXr4fJFg8Kp0K1jRqlj7qv2GxYy5Eke5wr7FpDpWXFxYWDksVqi5e1fH3BkXz%2Bn4pxIOWz79gRHv0LneqJs2FQ76ewKfPao%2BpSsqEvmsj%2BykQFfCF6ZeRcGFyUQK8v26El%2F4WGzqS33OfxjpXbL2ndc3sTfYvm9%2BvP3WksHVg5tvOnmsZKGTFc2buvrNabOfa5w5%2Fdrrmura10otT%2FceNqZjJ5Xzew187smt%2F1i1bPw9We5Roeh1xYVrZ732vkM6L1UOHVlb2WcEHT5q0qRRuwBhBYC0lmeDB8LRdATw2Y0Wg8Fo9Nolp1MaEnNqJkCjR6D%2FJfU5336yUOPaKqJJEuCQeFQirWX7O%2B6YxfZjqapqE%2F61bQ958LsXt8S%2F40CwpeDekav%2Fvh0ILAPAD7lsA1jEZFcyGsFksprtJg9Rr4kR6DJ%2FZWoO7uobKtNnnyJUlrW3X3ttO14phMgLHn98yIjzPqkFgFxoY259XSt4oSTqd%2FL0JgaDT%2FNcE9PAaBctOk%2FsjOTEKYEwCRGJxwB6tajQpMDBcxoHXzN8CJbum6GLZe60066mRmnd%2BeJXN6mThXRIWPMH%2FUn%2BNdGgxLmTUKrIsmYzWa0Gg8lkN4P41WCzUcXkofbu2oTf3cjSZdpuokXRuGOyi1dx22KswGZWhYd5AffOIrF9jYxdh40sI74Et93MVivueDXr0gYPcG0ouF4DRIkAevQioLvExgPivyvuhO7qQJ5BQRgeLXS7XPrsKDMzI6PAajSaTPkuq9WRKzu46XwOzWzPRJNH7%2BG7krl7%2BOC8ePqbjJDCRIiEfKFykdziVfBd8q%2Bke9n%2B%2BuvnTGL7vy529F437Xwso%2FdL097ZwvbVXz9jOnlw3rz12%2BLfSS1Lh1%2B%2FurZpy%2BF4kfhtxYuQjGCut1tMFxHAq6vrscoOoatQFU0Xx29SyV%2FXLRG8TS0ierkyof%2BZtWWXEPbn7boC9dce3JHE5yf0pzhpostXLJYMcLnSvcYhMa9mp0Nidu8vu%2FxUrvPeVQMOCCQs6MzrxGVT5986ecr8W6dQmX3ELvzxh7swGyl%2FI6Xt6%2F70Qnv7mhfYKbbnQTS8jE7s8wA7B4LrOep1cC1ckMMn1Hl%2BRVFNlKpZmqrlcuQEq9U9hBOEwa5mQEaKzBKmSBWoSQVlTvPepDFCnPndRKFJtuemosq2GZrG9p%2FtaZv8wfaPbt58TGf7vePdSx%2Fwsv5K9SPtbB87%2FT%2Fs7H10mU722JDgM67pTN1euaIq8dIsyh%2BTpOUZ%2Bfg6PcNnz%2FZanE5V4I0FhsQsv8m6iSfIBUmS5S2dL8HBXl8ook%2BLIkFBaLdMkafPPzxZ2v7R5zsmPXeFIQMJ22e1lq48uri9oOMZ9uLa9lNYiho3Z9%2B6xqU%2FbcBDAybXN3ZFFJ3LddVEh0mcejw5BCxZZVnUS7wGFxqlMrTMRy%2BJIqpdWewrCD%2B6iu3%2Fsre97yvSbCP7xLR8SXyH1LKxZTYkqp%2F1XIZ4dpmjpLktAEU5bnchWNw5lhxTli9rcMynUdPgGPX%2BvJ2%2F2BgiqPTHK2HB5clePsGgXCkPt082oetPnbx1%2FbDrDtW395oycuG8yJd%2F3%2FXu6MZHa5Zcv2zRrf2wZn1HILfzsvKx%2Bb0rCstHz73%2B8VXN%2F8y%2F%2FJriK%2FqHR%2F%2B30LeE6xuRa8AjToRYDHa7y2UyEIfB4fWZnHbn4JjVYrfL3HVyQt3QpktOVnRhgnBcxKOXvoLpIyFPwCO6cjK3bsas9tdeeHRt8xasYDuu%2BTD4aeiNN0jGwgknTn4e%2F%2FyqK4UOT%2FGc4zM%2BcENZ1E8cDrfby3t%2Fj9NoJ7JNtumyPcmJ1sVDgItr7tQYgH%2BgrxdrpR2zt72PpSLjsXRp7XUHt5Mj8dki4Ynt%2FEpI9JkPcrlm6BV1m0GWiYgIK0G0GNEuC5llKWndDU1X%2Fx0SbTfiOtaElf%2FINyryZYexkjVJLfFF86aMXUzaumS4AZRtXEaWOMsoSyaOIVng81ETVTMyMjNzVEXJ9plMVLbbMxQ7yDqidR3RdPz2LIDSIO1WQ8wBsin%2FpGskRZpuUfew19lm7LMwJ1eRcrT7sG6R5NCsqBgvN92NPdk7uARPdt4vtTDH4m9q1lxH%2FPGvvE03jMkcer4XnuKKI5gApOW6bWqi%2BYoMaKSUSAQlGWWzQVWtfIZmMSoUAA1mj4T2S2cBqaROkYZeq3KlhdkClOu%2FmD2BI48cxZHsMWxja46fYO2kPwmyZ7A1fiy%2BDRewhcJLzK17ycs1KTC73ZrXK0koahm%2FJgob%2FpNT8no0p9XJMTHDAFyVskQJkKKvhBlTUzxHyokifvTqgNsSaw9mmBRz7n4cwoqu%2BvcfR9RErqqfl%2Bfkfr2%2FYcZNo8ic866XXnR8Z72xNZI450HXce2MIn%2BoKqkIYDYgmvQhAm8c7YR%2FMwyOoefSIULSSMJGySlCWEwR6LrOB4nC0uhAZiCmDrLp6%2B3xekDI4T38Id7D54ipCHUbcnIcfn%2BuNTMzIFGXy8qjKd9qSbTzYosp2hbbF7bnuBrm%2BREWRw08Coc18VTQ4xFQ6%2BEJhDmL2m6%2Fc%2FOZG4cpn31T3XpmM9quH32qucGAVz7Z9jEdXMUObcyzBF8xskNVg%2BknbU8BIO5gJWSlYgMK7tcIpZJMAaCyhONDYlbqCOKOo0cV29lA1ylOauB7yBN7yOHlOmgGQ75bkoI52TabW3Z7qCzl%2F3%2F2IIuHzuFynuSi2BZnlftyiBSnzxyCyzwcrImh4e0Xbhz2%2B9mfKtWtL7xTP39x26LeM2aFPyFVQ7CnuWmyw5K3EXsOrqIfh2dPY5tNjY2nGm7QTxGQIqmCtoEHIlG%2FAg4zmKnd7qNeu82mSJSaHQ5QoCRU1lYi9ElBdqqp5pwa1sv%2FRAMmELwQB0baym968pqFwxaOC99ePv7pgf89chFZcXX5l1NzcyPRii%2Bnphf8lzhBwpbiQanl0rP6Dg26zurbad4v56mukCugE0Wi7Vh7JsTasSV5lIO0dJbKBcljHAhLOdJqfN6cwad7QYchPV3OyCA%2Bn4mYMrPSXCNiBtuIGMiGNH4pGWmKygXqpwH4S8%2BePzvOII575nOCTh4R15lS69q26gmSEBt94OCr7YtF6z7vlm8b7mpdcN%2BrL%2FfHcyhjZk77c8arjmflv%2FBn9kZObzbAuFFEB4A0ST%2Bd2BztZXeaidFqTfd6iV%2FzO51ado7Fn%2BavjxnT0sDFqcleG3P6QR7xs%2BNNXUfUIJTSVqjbjT%2BpBpRfbpXXFSKawsFwiBuQbNyyZcyzs2sbcS679w9k3%2Fmvbhr%2B6qufy7sbvojGrt10dOm6WtZ5ttes1keObtl5BAjMBCYFpHXcnkW8R87TLC6j7EsnBrDZ8jIhM%2FOyYp9LSycWo2xQPZ4ctYBHz%2FYyHc11H2qb9S%2BiA4oURXyC3SM%2B0WGqPrVIoJJaFCmMXFRdbixfuGzBqEk3j1qwfGE43Pbogt%2BNn93Y9siC8v1T6%2BqnzxxRO50cnPC7BcsWhCMLly6MTZs8uu2RtlBo%2FiNtYyYOnz6ttm7aDBHpCoDEp%2BPghZnR%2F7I53U6Plce2UaYyMYkJqxeRED%2FHBp%2FidDkbYkCRuuwmm93WEFPtdgt6FMsl5xX9mtiW3kNfypcpEhAfkgPKkCfoEXdAGF7cGCBD0YAVbOGWH374gX38448%2FvsOW4BViZBv3vHrfq8eO8RdyHMhFiKNCMGoniiKGmUaJSlTVsUcEbCpFdAhyJGBIAFHnAbag8wAAgUm89lnw%2F0o5D7g2jvTvPzOzu9KCJNSFaAKEBMYHAokSuQpiY04OODjYsWxCcjbkNaluuPdyiXuaS0jHpPfeE0N68fVO%2FObSe%2B8uy39mVlqEzr76oeyi%2BbG7U3bK83yfkUZBGZwCMyKlaRaXRRTLC6E4JyfkAld4DKmpsbkrK0ttpSafxzc15nHqTVNjepQycUvmivi5NiuyMYtA0qyNo3NOVr9OFfZJmt75WUW7VMhOWtE4fsubj9zRP33SzuaW6LxFB3rWTJj4xSuvXdHyYsOAb%2Fbpj257c%2BOS5s4tvmrim7appHXPputbn8kPlVdURssit194%2FxklXdGr7p3261Hh7uKKUGH0uu2nzi8Pxya1V5qmAUYu4UfygiRwVi0%2FYrQaWIvIdGcQ4pBB7dzU9snCdpLZJF%2FSOXJNjdRPPa0uMhVd2TKurqk5Mq5FXFPXEB0%2F7ucNExvqGieOb6wDIIw7lSbR99oBPqhmvm9ikm0mm7%2Fc7yzPc%2BbV1IrpYEmnX1mlhbZglpActKMVbEo36zBrHWyifBGnSASrw44ZvIhr6bwgFCxiuH4R45HIul%2Bc91p4c3j55tf%2FfvilPddGFx5b8zJqf5X9DCi9v%2Fm10vvcrj6U09uHsg%2F0Ke%2F29invHSBfX7VJ%2BTAv99nwkcNvfNd82xjlI%2F4%2FSu%2BrLyi3%2FObXaPaLTJb0b6xlBfCX%2BDHKMLqgAOoieZk65HLlmXXU56PLK%2FRmGI2e9HQbys4GEGweShSEA0F1mAtak3BQbR1SPGxVVo3K6irbp3YM1ToJV3pGr452r7n58XnrWi6tr79h3tY9yqTy%2FKbYvMvxsYvGRLrPu%2FBCWegef0l%2BcNcmpeGP%2FqIz6oqkNPas06Fd6BEEkMAIbZHRaUaDTKd2RMKCgERqGDdkGNkrBpBGCE4XBIMoIpOMsR4lWko4kLBqJI%2BK5j8Faab66Q897w8yR4ALIR3yqYfpaPGg8hFyDSo70RG06A12%2FoayC49HL1E%2Fs9K3DL2QNXzKGb8fhTCZCCJkRZgzSkcQkogAAdYJoQTf6LXQWZQQHjx2hLz1I7pgEIaGErEHWAIzAAhaezTEW%2BS5kUqBYFHUgcViJEbamxB9uT%2FROLFE8QLBIegdsp5%2BnaSN8spKbara53ErgY4FlFnoIwadmhP5X7VaYcvuz5QHAu8h%2FcO3K%2Bs89eFTJuceP%2Bdft9utd0xUFqDpyj3kqh3K1%2BH6uhrlzX%2FZctHQEckuSNLhJG8MjPTGCNLRbwWDZH%2BFr%2F6Jm7D5hAmyIDMiQ0ZGTrbVkMkqRQ3FUq17vL06HSowmDyctbXd2N5201ln3XjW5a88G6uvnz2nLjJHWMg%2B7W0766bZL10emd02YWJ7G%2BNFAYSwiCGdcx%2BZGTqdRB35BoSomd9sMRrSZYQkAYOKeoYC8S5MM5WnxriwyfZwnAs9I2%2Fh3kG0RVlFY12UNylYiiCAo%2FgZTriVRKwOA5LAgiyuTNnkwQ4Hyucer4lJXb96j39EPHUF%2BJnjK%2F5%2BbriipGXeqiuf3np9%2B4YudA6O3jbYEQv6S2bt37Cle8be7rMBwVgcxo%2BIr4APJkRy7enY7QbIl%2FLTzVK65C8mdrvDIed4PSa5IIE5pbQ8dlABTRX6S6xu1DgHrezj3QjuuaN9%2Fn1P7N541ards5oXtJ3REgwFWsOdE%2Fb9v3W9wlu7a432i6at2N7wzOzzq6tvrAr76ePuDExYn%2BqLI0JEDyCnCdwXdyjui3uFjR%2FVNMjMIUk6ao6YiGZWHZ0i%2FDX75U5H1aEgAOK2LmrkhkxmMUmXJFnOsjrBQR%2FdrXNlOGl7yiCq4Y2Z%2BzTTkbYwT8qwtv73xo0CxS6XhZtDZ7WvpVaAD0ZnlC6fNWF%2Bvigy%2Byj67YoVdz%2FPrAF7Z8wo%2F9mM65SDUhQQLFSOCbslO2RAIOJINwsiAoTMFr0emUykKWYSWc8XiHtk4gMlbe5qgAb7UsMIa0IFwu6bbumd0PqX1%2F72IW5Tjkmn%2F3QfCVmPHEWCwiKd8Cj0e7KGEUURmUU6Ebk1RiCQCHSypSLhfEr%2F%2B2Eqe2hQsaNeALBCVcRlNjI7Fh1Y7Gaz0W60ySYW9pXNXt9QQI0EXB1%2F3PjAIiZPQYprQ3RWgnr3Xd88KXuOu%2FGW5v7s6Kwj6xc5btOZJpzh7hmf2cktXDiKGxPRSYI8MjopD%2BWfMDoJeePRSb4QbvyciNkVzReismdxFD2z4Oyi0vHr6MwOwnTUfEt8ic9KPBFjIvYqgzhkDw%2FxTGK3kxc9YlKPgt969IarH3%2FwwP4nFG9dY%2BPEiY2NdULbnf0v3Hr7wAu3dHR2dnTMm5cy6s2OlKZTy49OL2AW1Ib01FNiGh70BD7YIdHEB79%2FOej1B9UBL%2B6NL0aoFonqQehRdg4ip%2FLxIFqsSMPn2KuMXYbaUNsyJZw1fMrGrnIA6Qpa2n5Y%2BTuAYvg1fgUA6eAP5Nrjj4L8IMFW%2BuJUVye0D51Au5h8T7W6B7CZSZlyNlXeJ75ClUs8XEnM8as%2BEb9qmXpVwDBeWUH%2BLLTzNU5DpKiQug4YJk0jh0pMoyDbnI1lQp0JPk9rzJdhoRy8xZvKwaN4g9Cm5HHsnddbrUub3bCVWHLF4ldiF1wYPjM27aFzzp37w3lvHP3F7rOrUcnw6jY6d1dT86yJ4eiY0sOnTO6%2F%2FYLru%2Bj0cyyamXhHhoZU2lu3GPuhiOexHiQ0HfQPYqfoh9HVJ1B0w2%2F%2FheIgzFQV2SMV52iKgYTCOlIxU1N0cUXaQwR7uWRYkxbXSNDfPYvXhpfEa4MpdD7OPtrg4sg4yUbMNmIRLCjNZEJsvgbgEETRbiYUvqb4syENGQkj%2FJFkkzkxTAQrMmlscsKiQLvUAAeUNb8G7yQ062PCs0QKkEYsI9rR6nzH9imOvcoLeLew9%2FghbKIUT%2BhoLlq5jiPvcYqZDnXNrC6WKXZGjNP8%2BVlGYAXOBfY556p5%2BZaodTT0KC89ZE%2BUXqqiG9pSFPdShT1JcXDoO1XhHnmNmZqia%2BgnXgMYFag1wGbucZ7cAJnQGCmivUCW3ep0GlBamtthAIqVWwGovcRJi9eKLYy8TgmP0%2BBgddahWmkscQqUlpiPo4MhBwPPA1tV5FzFz7cKwm9%2Bd%2BCzzzahATIdd1Du%2FG5GoOPWnR9%2BofQoyl1qHsRXeDuriLez36eUA%2BdUeTlUxtt7N1fgvJMpulHDv1AchOdUhXek4hxNMZBQZI1UzNQUXVzB2vvoeGkj2IAMglnogXTIjaRLBGTZYORGZXcgqMUn8260FqnLBlSM7lL%2BuB%2BVocqr6Rhetkf5tfL7vfj3qKxH%2BSMavZf%2B%2BVuaSiUAhD7DLeIHkgA2yIZCCEdyXJ4cuz0tB9LAW%2BTMK3Ab3QxXJQWpdOWImbyK8arGGFaJqpEG2V2IO%2FyqihEFV1Wm94Xts3tnv8iA1RevaL1x1sDRP56CjrR2UWL1%2FZBiOG0%2BWqzyvXWXXHDpANrEwNWGNfM3DSi%2FfHYJ%2Frbsp%2B8e6j5uKR4aUmlIXgO18Vocrdaz1uOkKrqR6V8oDkKPqsgfqZipKbq4gr0RJcl9kqDwq4yNv3kb1KtYuCSJSmbrqZpIDiOjjbIoSpJTMDbFZEdTTJAFWdIRyZowKGrdjOZBjePIDroW0tZGwh2UUz1yNcPaH1CQ4fikjst3rbt0NcHv%2FagMUij5c2Vc18rz5%2FNZJM3JfMkD1dAaGU3tegXFxQDlWSZTbXkgUGPKKtBBcbEui2SWhkqnxEIQcFgyozFLwnGq7ZUx0g03TH%2FaTYLqcnOkuuX8iaFL8zhXsVAn4a3SSDRSWl1%2FRVfoo3fmXTau%2BubIbfnTo2vnNjQ0TVjXsWQjbb4%2BhL9FfuGvkV%2BcNqai1JldVTJn7srmu%2B7JLfy6KLhqVGhcaeOylsh5lbWnl49r6TrnKPVMv%2FLO%2FazH5ASbVEBr5VQ%2BUtQfAPb2jbbEazY1vfvCE6Xna%2BkHfxhi6RUj001a%2BkAasPTikemClt4lAX%2B3T%2BGCYcUDmqJ%2FlKrwqwogTCEpQjeUQBBOgS2RydU1JDM%2FP2g3GoNBuabG7%2FGMKZPlsC%2FfW50fjVVXsyDp7OxQNJZtNo6aSoF3p%2BS0NFDHPHgbYiBJgQZGv%2FERLZmZ0t5q6wkJKnqMhzBz8MufZG0ZXsZRzHYYrWJk1TDShwoZfiVWbn2rce4L19%2F03NdfPRtr2nHzvKc%2Femdx%2Fd3LDyM4XkaJq%2Bcfm%2FbY8bqFq1fv6FyOvX%2B1oHvwefbOru7Y0zcz5q91cn3Tq52bInXKZx9RCGvWp8UlOEsQzpxD6T%2F05acLVrNap952xtZhP0xWx0%2B0iY%2BfnCrjtT1FbQ2389oqStRWanr34n%2BeflDP00eNTBe09C6rWpeVidoeugYAvcGv8LTaXynTgF0DGRLXuBwA%2Fy5J0T00eaRi6JdU8UmS4qDyuqqwJBTvUMXlkqApuriC9Vdu9UkSBIfk5fPVpZGx4MYuV46oJ%2BkEY0tOTnr6qEKLpcQNmZh%2BSJ2ImdjppB56CnnSKS02%2BRpiJifBU2MEnYC8izsQ2clwI9I%2B1YYLf3Gtkw8SVgdtm4XAwyNdtX46hDAvXCL2GCmnN3ZetuitjjuuvUr5%2F0PfKX9DwuFDDfpT17zfga0rz19x8fIFq84TXdXF99Wdtr1n%2Fm5lz4fKh8pLyPrJR8gyV%2Bhdtuva4%2FMv2Lj1ih27%2Blg74MwMf2tPV9%2FaEPAZUHI97ucl3KK2k5t4PReeOJ319ZfAyRW8pRiS%2BgUt3aSlD6jpeSPTBS29y6C2pIDWK8yCw0JYeIl7wbKhNGJ1pqWZBQEIyYUcNwVKAXHz0vPBYdBQiw8WTxJRTWOGj2%2BK1tf%2FPFpXNzVaf2ojO%2BKOwcEvTpva%2FPOG6c1EmNrUMqWhpRkIfcaHKAN0OZ81eEfOGnzxWQOjb0jBFAZx%2FC%2BzhmCNsJ9hQWsvOLVn0n5GBm1eUrt%2FzK5jR21o%2FOiJKy9AhwzKa%2F6alefjSoYJlXV2dVyL7IwUqpp%2BQes1ytH2RjTouvnWlnFKMOP2oSGVpeD1c2ZST4ByefGmpvMavgVOruA1XMnTC0emC1p6V0B9A0u1np977PkV5qi9zXh%2BBQ8XJOgmziYWsLhqD%2B1vHQZzli2Dxi8VWsCcbXDIRM6dEpOdxEnL%2BCQocxLLTDtnDWdWTT4Wyh0nAU7ot8Herhf%2F%2FuZLf5xv0ulUfvGjOONEDrXMYEgzK%2BCtE9qVsXpQVixvbB7mnLQ8CVqeut5Qc%2F0zNdcJKk9oH6byMk5M5VGJGk2mO108BE7wQmekxuJwGFF%2Bvs6WAeDL0umKLHa6drMgI7HQX0YznaWSNBddcwhCLotpRQ5tBcd%2BThplmiAy%2BBMMx2M6XcOLuERnVGvx%2B3WnH9vn31Wm9Cv3oTPQhPGbvaRDW9Q9dstdd%2FXVrfR7t8jpaBvqQuejTSZZXeCR145%2B8%2B1PDivZbnPyN%2BhT3SphMXhgNARhQWRMoMKEHQ6%2FX19RkWu3V%2BXr9aEchzvgiMYCATCbfxaNmc3YJNDOmfLEZnDT4VwQvFNiQupwHj45Cp00iOdT56kG4bniI7dDo6KTeT2fSk%2BLtyhf7dl5pPfHLSgb4QUvT7nsi2%2BR%2BbhTt2fL%2BU90tDx99FwN5Pu4fbWMBnC3%2FZprdiD9%2FciByqY1XcvYaf26naXlbOCeHGf7BhavuJhFHD0h%2FFXwSAVgZP0Zi5ozAMh6jE0ZWF4vsh39sg5pyx2NKqQzEZ2XGU%2BdFNAgrdc1Ne977elTUafn6kbhr2ed0XJ29tMLqh5sYBENqFX4M4lKD8Q9ehmS1eqmkUWyR8ay7CDxvRTYHVKNZ7qk8YhEdy1YcOklCy%2B67Pqa0tKaiorSGvGlCzavv%2BiCDZu7ykKhsrKqKkDwa%2BHPgkEygQuqIm4KNEUEQjLdBhvobPTrYvM6MzavFyCQ9fpZmoNENQebXw6qkISXvbF5mNVHiE23yjF6xRM27knfvXTUtKZoET%2B%2FfAk7F%2Buray7vKyjOr%2BKHAr4bGHqI3IN7%2BG5S%2BAS7SU0nbeih999Xlbp%2FqtQllG7Sj%2Fp4jIw7kiaIOqTTySBou5KZB5gLq7jGWhvCumKTs7N6sN5L%2Bp1zkG2h8t3HkHQFCVwRmQhIknSCRC8wvD8WUrffQHtNwbWDkz3iI84XlPdRySFI3luLeVIwEfnuWhIEtNuffHstwOzeZBl%2F%2BgzwRczUIGsiggSSZNFlkHRtI0Z%2BoT8E%2BbOoWSnwxY%2FoUzVPdILhSZyRP8ezp2Vz%2BE4SGJn%2FndpNDXwrMFMaMYjsRi%2BqN9Luoz60qB5QH885cqO31JNM8Ua1DBJFgVlJkOt5SRihMGIaeQcIpN7Ap91gROGgt0eWkkvbi2wunXrfKIyCdLA9wszuRplAgHssUq3uc6%2FavnXvvku37cGf9hzou3r%2FLbcAELbTizQXhfm75mXsYF6m6kEvys4gbKuXAofMQuS5LUhtbJnmP9AJy8gdX3yp56m7v%2BAps89kZzPacGPqPmctKUf%2BVkA7vpHbtCsijrgDV9RLQAg9pa0JI9VZmsxW0W%2FVN5vqlE12xKZeO24nRzp2bfoHPRPEf7z2SBs4vvHEBm8ApCxj83oe25YVSSeAEcaCFtqW8B8j5EX48mN%2F%2FIKMjge2AeK7BW0S%2B6EYdkQaJaL3%2BXI8RW5ntmywWIrSafaLika5cnP12dklBpdLzpRy83Knx0heRt66PJxOMvMy82yFPiiEabFCndlkMzXHbNp2YiNNoxZenyxzKUghO%2FCtQOhvro%2FH5DgKdA420DrVfS4oWELdb%2F7qWvq7BuL7XXhXXu9CVyrtGKN5yj0hZNq9ecn93ynPj9q6VMBLtvjQpG%2Be6ps7ebnwys5f3ucNFDzwTXgIxqK0Tx5wFVff9zVyT%2F%2FQ4%2BXsWgfzjp%2B0n6MTYDbdHRriMbs%2FSh7wQyNfQ04lboD45x8nfd7MPgcMBhzF34tPQRpYGbthFXUmWnBEBixim90k62TJikTRaiW6PJLPDTwBLSYu4RpNwn%2B8DhpfWI1CfA%2BzWrZnHP5%2BzefKBrTh0zXKHkmuzliH39q3rwfXHT%2FUN3Nu1gWuZ9Wn05u0pyuGRuJWn14KAMTT4QTpzcPp0q6k3PF0dS8BvtMDAcsjIIiIQGKXQLYPAt8FgTU2uvZ8EQDruB3sL%2FEV7krVDmZIWNNupYoPkxTdQ3NGKoYYgS4mKQ4q76sKS0JxHADfqZupKbq4gq9wuaT6%2FwCVeR0IAAAAAQAAAAEZmiehT9dfDzz1AAkIAAAAAADJQhegAAAAAMnoSqH7DP2oCo0IjQABAAkAAgAAAAAAAHgBY2BkYODo%2FbuCgYGr9zfPv0quXqAIKrgJAJZXBsIAeAFtkQOsGEEQhv%2Fbnd272rZtG0Ft27ZtW1G9dYMiamrbZlgrqN17M89K8uVfTna%2FoRs4AwCUGVBCU0zQl7DAlEIZWoPOfhXUs0BbVQAL1CG0ZepQd9STPdUW9dQ61FGN%2BU5LpOW1pswUpmU0hZj%2BTGOmWnQ2lPNyV2rEoO%2FA%2BmUw0CwATG8cNjkwyXzEYZrG9Of5NUyy%2BXBY7Q4Hm9a8tgCH%2FWU4bOcwPfmsjc7GvDcYPWk7StjU2G8qAf5xwHQE6D%2BzHRXUbqzi96bmrEQNEeim4V965jWnB%2Bho0sNRHnTn7E5H0V3nQAlaAGsawqkxWKfGhDPoO2Ts%2FGdwsk5fIecd011vh9O%2FOaegHO9toBWAfYLM5JBSxvoNquliyEeDvUucbeXvMd55vIqRtTGMJTnzAkP5bdnsXvTX6VGOPkbfYe%2ByRgh%2F6xHoLms6QDmmlvyFPThTB2PEtbczfMbr3XUu1JD7fmqUjaYre68jzpPD3wJIH6QH0RyQ5L6Ui%2FGeGFqDOZLiPj7iXnpkDsKJ5%2BTwO3LmEe8JYecb2fcazoXMC%2FEd4z0J7EFS3MdH3EuPJJX07gom%2Bff4%2FDMcpS1ee85bBLQNGO84cgiqPerpVcghUBEeK%2FS1jzBBfUZbwUv5X%2F7bkOlslqCEwJ5TBw4lBFsBJdRuHA4vYk%2Fown8RLYvLrQAAeAEc0jWMJFcQxvFnto%2F5LjEvHrdbmh2Kji9aPL4839TcKPNAa6mlZUyOmZk6lzbPJ3bo56%2F%2FCz%2BVaqqrat5rY8x7xnzxl3nvo%2B27jFnz8c%2FmI9Nmh2XBdMsilrBitsnD9rI8aiN5DI%2FjSftC9mIf9pMfIB4kHiI%2BhWfQY5aPAYYYYYwpcyfpMMX0aZzBWZzDeVygchGXcBlX8ApexWt4HW%2FgLbzNbnfwLt7DJ%2Fp0TX4%2BUucji1hCnY%2FU%2BcijVB7D46jzkb3Yh%2F3kB4gHiYeIT%2BEZ9JjlY4AhRhhjytxJOkwxfRpncBbncB4XqFzEJVzGFbyCV%2FEaXscbeAtvs9sdvIv3cjmftWavuWs2mg6byt3ooIsFOyx77Kos2kiWsIK%2FUVPDOjawiQmO4CgdxnAcJzClz2PVbNKsy2ZzvoncjQ66qE2kNpHaRJawgr9RU8M6NrCJCY6gNpFjOI4TmNIn36TNfGSH5RrssKtyN%2B59b410iF0sUFO0l2UJtY%2F8jU9rWMcGNjHBEUypf0z8mm7vZLvZaC%2FLzdhmV2XBvpBF25IlLJOvEFfRI%2BNjgCFGGGNK5Rs6Z7Ij%2F45yNzro4m9Ywzo2sIkJjuBj2ZnvLDdjGxntLLWzLGGZfIW4ih4ZHwMMMcIYUyq1s8xkl97bH0y3JkZyM36j%2F%2B58rvTQxwBDjDDGNzyVyX35Ccjd6KCLv2EN69jAJiY4go%2Flfr05F%2BUa7CCzGx10sYA9tiWLxCWs2BfyN%2BIa1rGBTUxwBEfpMIbjOIEpfdjHvGaTd9LJb0duRp2S1O1I3Y4sYZl8hbiKHhkfAwwxwhhTKt%2FQOZPfmY3%2F%2FSs3Y5tNpTpL9ZQeGR8DDDHCGN%2FwbCbdfHO5GbW51OZSm8sSlslXiKvokfExwBAjjDGlUpvLTBY0K5KbiDcT672SbXZY6k7lbnTQxQI1h%2B1FeZTKY3gcT2KvTWUf9pMZIB4kHiI%2BxcQzxGfpfA7P4wW8yG4eT%2FkYYIgRxvgb9TWsYwObmOAITlI%2Fxf7TOIOzOIfzuEDlIi7hMq7gFbyK1%2FA63sBbeJtvdwfv4j28zyaP8QmVL%2FimL%2FENJ5PJHt3RqtyMbbYlPfQxwBAjjPEN9ZksqkMqN6PuV7bZy7LDtuRudNDFwzx1FI%2FhcTzJp73Yh%2F3kB4gHiYeIT%2BEZ9JjlY4AhRhjjb1TWsI4NbGKCIzjJlCmcxhmcxTmcxwVcxCVcxhW8glfxGl7HG3gLbzPxDt7Fe%2FgY%2F%2Begvq0YCAEoCNa1n%2BKVyTUl3Q0uIhoe%2B3DnRfV7nXGOc5zjHOc4xznOcY5znOMc5zjHOc5xjnOc4xznOMc5znGOc5zjHOc4xznOcY5znOMc5zjHOc5xjnOc4xznOMc5znGOc5zjHOc4xznOcY5znOM8XZouTZemS1OAKcAUYAowBZgCTAHm3x31O7p3vNf5c1iXeBkEAQDFcbsJX0IqFBwK7tyEgkPC3R0K7hrXzsIhePPK%2F7c77jPM1yxSPua0WmuDzNcuNmuLtmq7sbyfsUu7De%2Fxu9fvvvDNfN3ioN9j5pq0ximd1hmd1TmlX7iky7qiq7qmG3pgXYd6pMd6oqd6pud6oZd6pdd6p%2Ff6oI%2F6pC%2FKSxvf9F0%2F1LFl1naRcwwzrAu7AHNarbW6oEu6rCu6qmu6ob9Y7xu%2BkbfHH1ZopCk25RVrhXKn4LCO6KiOGfvpd%2BR3is15xXmVWKGRptgaysQKpUwc1hEdVcpEysTI7xTbKHMcKzTSFDtCmVihkab4z0FdI0QQBAEUbRz6XLh3Lc7VcI%2FWN54IuxXFS97oH58%2BMBoclE1usbHHW77wlW985wcHHHLEMSecsUuPXMNRqfzib3pcllj5xd%2B0lSVW5nNIL3nF6389h%2BY5NG3Thja0oQ1taEMb2tCGNrQn%2BQwjrcwxM93gJre4Y89mvsdb3vGeD3zkE5%2F5wle%2B8Z0fHHDIEceccMaOX67wNz3747gObCQAQhCKdjlRzBVD5be7rwAmfOMQsUvPLj279OzSYBks49Ibl97In%2FHCuNDGO%2BNOW6qlWqqlWqqlWqqlWqqYUkwpphTzifnEfII92IM92IM92IM92IM92IM92I%2FD4%2FA4PA6Pw%2BPwODwOj8M%2Ff7kaaDXQyt7K3mqglcCVwNVAq4FWA60GWglZCVkJWQlZCVkJWQlZDbQyqhpoNdAPh3NAwCAAwwDM%2B7b2sg8kCjIO4zAO4zAO4zAO4zAO4zAO4zAO4zAO4zAO4zAO4zAO47AO67AO67AO67AO67AO67AO67AO67AO67AO67AO67AO63AO53AO53AO53AO53AO53AO53AO53AO53AO53AO53AO5xCHOMQhDnGIQxziEIc4xCEOcYhDHOIQhzjEIQ5xiEMd6lCHOtShDnWoQx3qUIc61KEOdahDHepQhzrUoQ6%2Fh%2BP6RpIjiKEoyOPvCARUoK9LctP5ZqXTop7q%2F6H%2F0H%2B4P9yfPz82bdm2Y9ee%2FT355bS3%2FdivDW9reFtDb4beDL0ZejP0ZujN0JuhN0Nvht4MvRl6M%2FRm6M3w1of3PVnJSlaykpWsZCUrWclKVrKSlaxkJStZySpWsYpVrGIVq1jFKlaxilWsYhWrWMUqVrGa1axmNatZzWpWs5rVrGY1q1nNalazmtWsYQ1rWMMa1rCGNaxhDWtYwxrWsIY1rGENa1nLWtaylrWsZS1rWcta1rKWtaxlLWtZyzrWsY51rGMd61jHOtaxjnWsYx3rWMc61rEeTf1o6kdTP%2F84rpMqCKAYhmH8Cfy2JjuLCPiYPDH1Y%2BrH1I%2BpH1M%2Fpn5M%2FZh6FEZhFEZhFEZhFEZhFEZhFFZhFVZhFVZhFVZhFVZhFVbhFE7hFE7hFE7hFE7hFE7hFCKgCChPHQFlc7I52ZxsTgQUAUVAEVAEFAFFQBFQBBQBRUARUAQUAUVAEVAEFAFFQBFQti5bl63L1mXrsnXZuggoAoqAIqAIKAKKgCKgCCgCioAioAgoAoqAIqAIKAKKgCKgCCgCyt5GQBFQBPTlwD7OEIaBKAxSOrmJVZa2TsJcwJ6r0%2F%2B9sBOGnTDshOF%2BDndyXG7k7vfh9%2Bn35fft978Thp2wKuqqqKtarmq58cYbb7zzzjvvfPDBBx988sknn3zxxRdfPHnyVPip8FPhp8JPhZ8KP78czLdxBDAMAMFc%2FbdAk4AERoMS5CpQOW82uWyPHexkJzvZyU52spOd7GQnu9jFLnaxi13sYhe72MVudrOb3exmN7vZzW52s8EGG2ywwQYbbLDBBnvZy172spe97GUve9nLJptssskmm2yyySabbLHFFltsscUWW2yxxX6%2B7P%2BrH%2Fqtf6%2B2Z3u2Z3u2Z3u2Z3u2Z3s%2BO66jKoYBGASA%2FiUFeLO2tqfgvhIgVkOshvj%2F8f%2FjF8VqiL8dqyG%2Bd4klllhiiSWWWGKJJY444ogjjjjiiCOO%2BPua0gPv7paRAHgBLcEDlNxQAADArI3Ydv7Vtm3btm3btm3btm3bD7VvBoIgLXVVqCf0ztXT9dzd3j3cvcX90CN5Snmae%2Fp45np2e356gbeH94HP8Q3x3feH%2FX38NwJwoHigQ2Ba4GBQCK4NfgxVDE0OnQr7w1nCI8P7wi8jdqR4ZGzkRDQSLRmdH%2F0UqxTrEVsbux%2FPHe8b3xh%2FlgglzESJRJfE6MS6ZChZJzkj%2BRouCA9GJKQuMhI5hsZRHR2A7kZ%2FYZWxldhtPDPeFd%2BIPybyE0OIy2SIrEy2IneSX8mvFKB6UpfodPQYeiOTjmnK3GOzsCPYpexaLjdXiRvBHeJ%2B8BX5Lvxe%2FqOACmWEnsJ60SsyYjqxiLhE3CoeE6%2BLL8RvUlRqJXWThkszpJXSbjkq83JaOZ9cXm4gd5IXKZACK4qSSSmiVFWmq0lVUtOr%2BdXyagO1oxbRSM3UsmnFtOpaC62nNkqbo7M60HPppfXaemu9j77X4IwUI49RxqhrtDWOGzeM92Y985lFWWWtcdZia4d10%2FpiU3YZu6%2B91j7rME5xp5szGVAgDcgBioDhYDpYDjaDE%2BAmeAW%2Bp8R%2FA5ajfCcAAAABAAAA3QCKABYAWAAFAAIAEAAvAFwAAAEAAQsAAwABeAF9jgNuRAEYhL%2FaDGoc4DluVNtug5pr8xh7jj3jTpK18pszwBDP9NHTP0IPs1DOexlmtpz3sc9iOe9nmddyPsA8%2BXI%2BqI1COZ%2FkliIXhPkiyDo3vCnG2CaEn0%2B2lH%2BgmfIvotowZa3769ULZST4K%2BcujqTb%2Fj36S4w%2FQmgDF0tWvalemNWLX%2BKSMBvYkhQSLG2FZR%2BafmERIsqPpn7%2ByvxjfMlsTjlihz3OuZE38bTtlAAa%2FTAFAHgBbMEDjJYBAADQ9%2F3nu2zbtm3b5p9t17JdQ7Zt21zmvGXXvJrZe0LA37Cw%2F3lDEBISIVKUaDFixYmXIJHEkkgqmeRSSCmV1NJIK530Msgok8yyyCqb7HLIKZfc8sgrn%2FwKKKiwIooqprgSSiqltDLKKqe8CiqqpLIqqqqmuhpqqqW2Ouqqp74GGmqksSaaaqa5FlpqpbU22mqnvQ466qSzLrrqprs9NpthprNWeWeWReZba6ctQYR5QaTplvvhp4VWm%2BOyt75bZ5fffvljk71uum6fHnpaopfbervhlvfCHnngof36%2BGappx57oq%2BPPpurv34GGGSgwTYYYpihhhthlJFGG%2BODscYbZ4JJJjphoykmm2qaT7445ZkDDnrujRcOOeyY46444qirZtvtnPPOBFG%2BBtFBTBAbxAXxQYJC7rvjrnv%2FxpJXmpPDXpqXaWDg6MKZX5ZaVJycX5TK4lpalA8SdnMyMITSRjxp%2BaVFxaUFqUWZ%2BUVQQWMobcKUlgYAHQ14sAAAeAFFSzVCLEEQ7fpjH113V1ybGPd1KRyiibEhxt1vsj3ZngE9AIfgBmMR5fVk8qElsRjHOHAYW%2BQwyumxct4bKxXkWDEvx7JjdszQNAZcekzi9Zho8oV8NCbnIT%2FfEXNRJwqmlaemnQMbN8E1OE7Mzb%2FP%2F8xzKZrEMA2hl3rQATa0Uxs2bN%2B2f8M2AEpwj5yQBvklvJ3AqRcEaMKrWq%2F19eWakl7NsZbyJoNblqlZc7KywcRbRnBjc00FeF6%2Fenoi05EcG62tsXhkPcdk87BHVC%2BZXleUPrOsUHaUI2tb4y%2F8OwbsTEAJAA%3D%3D%29%20format%28%22woff%22%29%7Dhtml%7Bfont%2Dfamily%3Asans%2Dserif%3B%2Dwebkit%2Dtext%2Dsize%2Dadjust%3A100%25%3B%2Dms%2Dtext%2Dsize%2Dadjust%3A100%25%7Dbody%7Bmargin%3A0%7Darticle%2Caside%2Cdetails%2Cfigcaption%2Cfigure%2Cfooter%2Cheader%2Chgroup%2Cmain%2Cmenu%2Cnav%2Csection%2Csummary%7Bdisplay%3Ablock%7Daudio%2Ccanvas%2Cprogress%2Cvideo%7Bdisplay%3Ainline%2Dblock%3Bvertical%2Dalign%3Abaseline%7Daudio%3Anot%28%5Bcontrols%5D%29%7Bdisplay%3Anone%3Bheight%3A0%7D%5Bhidden%5D%2Ctemplate%7Bdisplay%3Anone%7Da%7Bbackground%2Dcolor%3Atransparent%7Da%3Aactive%2Ca%3Ahover%7Boutline%3A0%7Dabbr%5Btitle%5D%7Bborder%2Dbottom%3A1px%20dotted%7Db%2Cstrong%7Bfont%2Dweight%3A700%7Ddfn%7Bfont%2Dstyle%3Aitalic%7Dh1%7Bmargin%3A%2E67em%200%3Bfont%2Dsize%3A2em%7Dmark%7Bcolor%3A%23000%3Bbackground%3A%23ff0%7Dsmall%7Bfont%2Dsize%3A80%25%7Dsub%2Csup%7Bposition%3Arelative%3Bfont%2Dsize%3A75%25%3Bline%2Dheight%3A0%3Bvertical%2Dalign%3Abaseline%7Dsup%7Btop%3A%2D%2E5em%7Dsub%7Bbottom%3A%2D%2E25em%7Dimg%7Bborder%3A0%7Dsvg%3Anot%28%3Aroot%29%7Boverflow%3Ahidden%7Dfigure%7Bmargin%3A1em%2040px%7Dhr%7Bheight%3A0%3B%2Dmoz%2Dbox%2Dsizing%3Acontent%2Dbox%3Bbox%2Dsizing%3Acontent%2Dbox%7Dpre%7Boverflow%3Aauto%7Dcode%2Ckbd%2Cpre%2Csamp%7Bfont%2Dfamily%3Amonospace%2Cmonospace%3Bfont%2Dsize%3A1em%7Dtable%7Bborder%2Dspacing%3A0%3Bborder%2Dcollapse%3Acollapse%3Bwidth%3A100%25%3Bmargin%3A20px%20auto%7Dth%2Ctd%7Bborder%2Dbottom%3A1px%20solid%20%23bbb%3Btext%2Dalign%3Aleft%3Bpadding%3A10px%7Dth%7Bbackground%2Dcolor%3A%2363a0e1%3Bcolor%3A%23fff%7Dtr%3Anth%2Dchild%28odd%29%7Bbackground%2Dcolor%3A%23eee%7Dtr%3Anth%2Dchild%28even%29%7Bbackground%2Dcolor%3A%23fff%7Dbody%7Bfont%2Dfamily%3A%27Open%20Sans%27%2C%27Helvetica%20Neue%27%2CHelvetica%2CArial%2Csans%2Dserif%3Bfont%2Dsize%3A16px%3Bfont%2Dweight%3A400%3Bline%2Dheight%3A1%2E5%3Bcolor%3A%23666%3Bbackground%3A%23fafafa%20url%28data%3Aimage%2Fjpeg%3Bbase64%2C%2F9j%2F4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP%2FsABFEdWNreQABAAQAAABQAAD%2F4QNYaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu%2B7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI%2FPiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI%2BIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI%2BIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKDEzLjAgMjAxMjAzMDUubS40MTUgMjAxMi8wMy8wNToyMTowMDowMCkgIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkZBRERGMjMyNzVDRjExRTFCREEzRUU0NTcyQzU1NEZDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkZBRERGMjMzNzVDRjExRTFCREEzRUU0NTcyQzU1NEZDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RkFEREYyMzA3NUNGMTFFMUJEQTNFRTQ1NzJDNTU0RkMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RkFEREYyMzE3NUNGMTFFMUJEQTNFRTQ1NzJDNTU0RkMiLz4gPC9yZGY6RGVzY3JpcHRpb24%2BIDwvcmRmOlJERj4gPC94OnhtcG1ldGE%2BIDw%2FeHBhY2tldCBlbmQ9InIiPz7%2F7gAOQWRvYmUAZMAAAAAB%2F9sAhAACAgICAgICAgICAwICAgMEAwICAwQFBAQEBAQFBgUFBQUFBQYGBwcIBwcGCQkKCgkJDAwMDAwMDAwMDAwMDAwMAQMDAwUEBQkGBgkNCwkLDQ8ODg4ODw8MDAwMDA8PDAwMDAwMDwwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz%2FwAARCACvAK8DAREAAhEBAxEB%2F8QAZAABAQEBAAAAAAAAAAAAAAAAAQACCQEBAAAAAAAAAAAAAAAAAAAAABAAAgICAgEDAwQDAQEAAAAAAREAITFBUWFxgZEC8LHBodHhEvEiMkJiEQEAAAAAAAAAAAAAAAAAAAAA%2F9oADAMBAAIRAxEAPwDvWECSrMCMCzfEAFWYCORTgF0xj7wKi8PagWcesCKxfx%2B0CvY%2FrdwGuGTuBnIa9vvAT%2BmoCgvO4FRGfWAbxigYDt65gWk8wJIq4Ev2cCeT6QLMAdrp%2BfECdCBdfr1Agiz7wHswB%2BlUIEMq6G4Dzz3ADrAf%2FqA8BwM%2F8rxvmBpLqBZ%2FP0IFvxACDr1gTenAglwsuA9VjDUAQCUB4vJ3AeXAy7AxfmA0VZ5gFXfp%2FiA874gWdotrqBCnjkwB0AAsgQLRFlWtwLdF3zAkR5KEBN6BgBIzlcXAL1Ty4GubMAd77fvAcjnv9oGGqXgiBo2k6N394EW%2BQcdQNAwM28agJpnUCV%2BRzAyiKbBHrAQdezgVP%2B3X6QEGm4BjyT2YEUgH%2FXJcBpjPiAF8kjqA0d%2BxgRx9OBZDzxAOljLgPo4EGdLqAFMnj%2FoQJG%2Ft3AjWCEIDXjqBPuhmBUq8OBEfrzAna3x5gR%2B11ANgZgWv9a4gBwTkUvSBMfJcE2DxAVyWoCrJDPUC9PA8QBdk2nuAYumYGuhniADyT%2F8AUCIBV4NKBEMIQHWD9GACus1AiChpEpeIEtDXcCw36QKxTHRgR5GdA1AfRiBXzXUCyE7MAV7TLEDVcQMgh%2BTVwIcEveoDZ36wA9msqBPCDavzA0XUDJJCQe4Cdb6EC5O9j8QDgDHOhAGq8bgLtbFnxAhW7cBV%2FmAK4DnvqA6gZ1wOIEx6KoDdhJc3AF3XfMBxwgIELC1xAgDsn%2BOIFYwF3Anh%2BkAPhdwEHpQA2SDjmBAeVxAVriAeivMC%2BW%2FrqBYtZgQrSPPMDXj3gHMAINcjIGYCbA1AcnxAM%2BYF6ekAADJ2clKBE4GoA2XSy4GiRl1AgrRswLYyXzAkSqswAg8qBAjeBkuA5SNcj7wDzauBfmAkujTxAhz6qBeK7gJeoBXFcwDtwKh4IcBQa1Aua4cC4HGoBkYpQCj6%2FvAd4HmAAL5Er%2Fo5gPIHuIEFQ3tagX21zAEcodjuA2fkaAr1gKsX5v8AMAL0nxAgN5JzAXQt%2BIE%2BMQIUXzAqxhYuBPv01AgQ%2BHACUtk6gSQR%2BVnBgO0TcAJFElDbgVn01APkNfHJP6QGxe%2FeBbAx34gJT44gBaNl58wHvJgWqfUCgR2vpQBHIp5MC%2BvoQG868wLv%2BIANCloQH64gWPMAWBdbgaMDOMfEM%2F8AUBOIGf8A0KQ45gaHl8QME%2FFDQIYPrA1yyyMvEBNA%2BzgBo1fmBcey1AfJVXAFtM%2FQgNh2ydDMA096ECVtWLEC5ECXvowLN%2B%2BvWAo%2FiBZwbgWPyYEDt1ACBnOxArFuA7QOnmBYoQLBSQyIAtkP5CBY1%2FkwHv8ASBP6MACyUXAUDYHjiBdb2IFtcQC2gaMB%2FBuAAC68QHIK4owIChrnmBEaODi%2FtAlbgTAxfEAvrr4mBd86gVMbtmAEepHetQFL3qAoNgXzAvTGoFs%2FVQKlmoGTln4tYPpAvkheeIChSXJgABLtELHUDVED81AFh15%2FWBXTDgKs8uxAAQbD%2B0BD16gwCvbH2gJ%2BtwD4oFPJqAAGy6IydQIAjJf9cAVA0lWn%2BYAzotFLxUC8i%2BPECoC6QgV5ACgOR5gSQHXEA%2BJFotfpAiz1yIFz%2FZrbgOOvtALeXAWv2gT6%2FwAwDN6q4CFfJ1zACL8QI1dDDcCZ%2FwDSxAsa9oEtkVqBP1%2BXWIFpX4%2FmBFFd%2FgwF00cO%2FtAAB5GR4gJKulzAn7wIn%2BosC69YF6KBdnHECzACFa%2Fj6UBMA60MGAeWT8bgaskaHMC8mgYAstcmBL4nQ1XiBBBoAcwKj09wJKtGhAiKANMagWBt494DiBMYz%2BIEnk5gK9IByFQ3AvS9wAmwdflwFg7zwYEEOh%2BIGSWTRSHqeoGr4KgAIIrTqBqBkEG4FnANQLCHmBZrZ8QIjNOBBYGBAhku7xAbY4%2BnAr%2FjcCHUC7PpAPt9YgLPAfECy78CAFtAonmAscmoBZAPKf0YGqO%2FaAHT1iA%2BYFqAVsrUCORa5gFApILPcBPlCAUn%2BsCqysccwJnjJSgTJ%2B5MCskd2YFagN6QcCu7N4gC7RqoFQROBgcQIC%2FMCvftuBbIC8iBNjiBNaJ7gTsUTAQMWzuAJUPixhQLV1wDAiU1ZOYF5oYqBXeuYFxmsCBqBknUCIQfBgPk5gZ%2F19cLcBYOECRR6gP0oF%2B8ANfH%2Fa0s8wGgO%2B4Cq%2FKgZNI4tOAWz8fkXv3ga46%2FMAOOuv4gAPxZLZ%2BlASEDgM5gKaJo7ECWf1gCJI4gWFotOAN3hYgbgHoQMQJ61swIlVvAgCHqIAEK0WQaNQFs7Dw4DkuBkH4nCKoH7wNLCx3AD8WfiQf%2BTncB6PqBAEGSgPlv5QE%2FzABw%2FWA8uAdp6AgOaJvUAJQJF7eYESeYEEKpDEAoB4dwEY4JgLxu9QEYFtwA0ATXMCzxXcCAQAKJ5gAfLujAbNfTgQuBE856gW7L2IFgZviBFrk11AAmSDQ%2FzArIy3mAnP2MCgWxXkwLY5GIAP8AbBumBr1gXsBqACvBP1qAjN8QJ%2B%2BxAT%2FAL9IEqo%2FmAKlr8QNfRgHjMB5gZoE7NOAmyExAvHdwCrzRgS%2BXvgcQEPvkOAXpQNPPUAGPv5gT6znz3AB%2FY3%2BkBdAr0MCDtaMAsk2RUB5eIFfFu4GQ1YvfmBUFeq3UDTMD%2F9k%3D%29%200%200%20repeat%7Dp%7Bmargin%2Dtop%3A0%7Da%7Bcolor%3A%232879d0%7Da%3Ahover%7Bcolor%3A%232268b2%7Dheader%7Bpadding%2Dtop%3A40px%3Bpadding%2Dbottom%3A20px%3Bbackground%3A%232e7bcf%20url%28data%3Aimage%2Fjpeg%3Bbase64%2C%2F9j%2F4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP%2FsABFEdWNreQABAAQAAABGAAD%2F4QNYaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu%2B7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI%2FPiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI%2BIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI%2BIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKDEzLjAgMjAxMjAzMDUubS40MTUgMjAxMi8wMy8wNToyMTowMDowMCkgIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVBMjI2RDk5Nzc1NjExRTFCREEzRUU0NTcyQzU1NEZDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVBMjI2RDlBNzc1NjExRTFCREEzRUU0NTcyQzU1NEZDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RkFEREYyMzQ3NUNGMTFFMUJEQTNFRTQ1NzJDNTU0RkMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUEyMjZEOTg3NzU2MTFFMUJEQTNFRTQ1NzJDNTU0RkMiLz4gPC9yZGY6RGVzY3JpcHRpb24%2BIDwvcmRmOlJERj4gPC94OnhtcG1ldGE%2BIDw%2FeHBhY2tldCBlbmQ9InIiPz7%2F7gAOQWRvYmUAZMAAAAAB%2F9sAhAAEAwMDAwMEAwMEBgQDBAYHBQQEBQcIBgYHBgYICggJCQkJCAoKDAwMDAwKDAwNDQwMEREREREUFBQUFBQUFBQUAQQFBQgHCA8KCg8UDg4OFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT%2FwAARCAMgAFADAREAAhEBAxEB%2F8QAewABAQEBAQEAAAAAAAAAAAAAAQIAAwQFAQEBAQEBAAAAAAAAAAAAAAABAAIDBxAAAQMDBAIBAgUFAQEAAwAAAREhAgAxEkFRYQNxIjLRBIHhUmITkaGxwSNCM%2FGSwhEBAQADAQEBAAMAAAAAAAAAAAERMUEhAmFRgRL%2F2gAMAwEAAhEDEQA%2FAPhT7u%2FtMuzs75T7CQs5SkZWRyXr2qSTzDyi23dAnMl56MFO1OBQZzMQszc6mnETGc1n7n%2B7PRMHKhOYx%2F6nkKd6MRAzkkh%2FIf6mpHKeT9n%2FAJXXalZTnPD%2FAOl11PFWPwWkzkJSTs31O4pwXb7P7v7n7X7jq7ujuMZAhRlJJDJUKEKCj1j7%2BJ9Syxr5%2BrLK84BQgwujPW2VEFfjaN32tRBhJJQempsDUiQVkcFO7uP61RMAVgDFANlYrTSmIIB9P8800YVr8NOTpWSkiWIAgpWz8UpREll67u%2B9CMAc%2Bv015Z6rpYR6JcgLt55poIQyUK42481IIABFdTp45oyikCZOf%2FwaV1gix9iTo3NSAxxIU6aeeaVhSAFjYf681lXCPURuynQLpzSlEjKfsh1bkc0cJh%2F9OtT%2BCc%2BaroAgmJtcBfXmrKL5BRGz22qISRiLX%2FbxakFJEzDcW3o8LDJY28sWWpB0NlXgjWpMFyFkTjalMshFWvxxUIQSs2Gp03oNMAcutUuFtvpVUj1xLG4ZfPFKZlsfjvxUGyigZHLLwOKkTj7rEn8efFSZlgoQ%2FhueKlNhY4ljcM30qUJxyRDkm%2FHigj1ERcqSL%2FlUMk4kzQFdX58VExxz62RwQ6a%2BKv5ECs03W781dRWS%2FJk5vjSqCTiCZoHsvFURJKy9tNPPig5AJWHt%2BDu9SYGSH3umppwipVDLTm%2BNCCkxHtqd6dAkkmYJt538VQmJ94e%2BoS7vRVEAHE%2BjqNCmtKOJJ%2BCERu%2B1Sb2xHo6lnSocYqsvW9i%2B9SIBJgcE%2Fqz1QgAgH1RwjHmoKQmXw0a%2B1CQigejvvxzTCognL1%2FsXepUwUT6%2FRFIUod6qohIoSpRQ6eeamSyov8A524opCxEYkkop04p6ioyk55Zr0Kt6kwKngJzUoPTEubh0F35pRQEsdNANvNS8BxwF0Uqyf7qgJwBm5H4DeomIH8nWi6MnPJqXQ6GwVEtzV4isl0tx%2Bmoj2xAYuV%2BOwqRlkMrDa2%2BtEqwwyBhYjdlvUA6GyKNqkSCJ3ZONqoR7IFAX8DtSChWSprtvQqYLnC1xoN6roxBQCxVQyroeKQzEhnSy7jxUdVpYABtSj%2F2o9RKLNiur8jimIBFhddP6%2BKsiVhgI2Nw6%2BeKvUVipYvHdrVYSfXENqdRxxT6sqkADJQfxIsDWfUvpge7u6erqCz7JRjEKB7Skg03otxLk%2FM9kaff3dpl2dvfLs7JEZTlKRJQI5NX%2BZPJDmtnLIDPSynanATlLF%2B3Uup4qx%2BLJzms%2FwDow5LPViBs5rGJ7NtS71YaAnPEn%2BQ33NWPweseyap%2FIbPfarCYzmR%2F9FP41YTGUll%2F0IA0dnqWa7%2FZ%2Fd%2Fc%2FafcdXf09xEomJMQZASGS4yARQdRWfv5n1MWNfP1ZcyvOhATC5DPzW2KU9h66XfagpQ4hIhVLPxSFFTmkX%2FF3oTAFYetgmpR6v7MAVD6uqC%2FNIx4SCqYqEYvtQoHxAENU1qWCQfYgeLu9JMAcoHB1C33oSAI4m9xpweaQf8A0x%2F87ft81cI9cQ5Yk2qGTLH3Kv45qkwW9VgR%2BDc%2BagBjiXKEghtf61IkDJiUTbRKl4k4p8iqkWHHNSURH2c%2Fh5G5qUaCGfWCtxfyaKYfbEkpcM1qmWQ5L6huNqmg%2BI%2BJQ8cVInIGdv7b%2FSpMMlhZWVU3pSQqaK23NSUklJa3F0oQKoLFDxSCpWaon4XWpGOWcCoVRst6DEAxxKA3Cvx4pwyVGTscd%2BPFRBMTEMbll8UAkhZ3%2Frz4qPjMsGfy1zxTgyxmxJxZQf8ANQYItigCKvFSyPXAMXUIoqiJIWbHyvPipGOOXWg1CPyeKr7EFkYn3fd9akSSvy0LPtehAqi56l32FJJJWXsn9WegMslgkz%2FffxSR7YoZ2IOvPFVUZ1%2BVhztUmMjiEn7ONeKsIkn39v8ALPQiCTLr99Rv%2BqqxJGSH1dQzjepYKFUxQJztUgAcQMNSLH600MhWZxVfLuKNmlD6nDjVnqQQ4kYahkPPNOQUJPx02O1CCEgejrZ%2BKUSCskit0vvQVQXKAME8Kz1JzAjiXP4jyd6R4fXL8P8AVCBxQOSHdOBzSiyzuvjnzUayBYOV4HPmgD0xLlFGnB5pJ9RL5FU%2F1UgRExCk3KM%2BnNQJAykST%2FTmpHrxM%2Bty6MnPmikDLFGuALJrSj7KyW4ulA6PYRbFVsceK0mKrIN%2FbeskhVgG5Lb1IexBsybc1JvZdA122pDe2IsxOyVLDFVmWF0tuy1FUBLPrVLhbb0LKFjiWIQjXzxUPCoBsbXXjxRUFGIYopsX0pRkYrM6OL81JkivWgPD8nipQLHFXuNePFLR9V1THcbeKGalY4hrk%2F1binNUUShmoO9%2BRxQfF9EJdvf0dXXEy7OyUYwCgKTJAFPNH1cS2mTNkHZ3fcdpl2dvdLs7CQs5SkSQiXL0SSeYVoM5r%2F8AQol1O1awBnIgEdhcnWT1L1sp5SAmUCoHZ6PCwnIGB%2FkJO6l3NOBlhKaEHsLJqajmsZSV%2Bw2UubpUutlIBP5Dcq5qxBkmcgZH%2BS3JZ6MF2%2B0%2B7%2B4%2B07%2Brv6e2QkCFAlNJASXEoig6is%2FfzPqYrXzbL484BxQwsea0ywUFoaXfahYCFPiLnf61rK0ogrP0b8XU0IAAmHp5KFnpQC4pgjhn55qSkkSmDY7HagA%2FEDDUsh0Sk1iqy9GLq%2B4oRgufWMWUKXZ6qY5oMShLkKU880sscQbm1k%2FbRGgscUUopdPHNLMUUJmVP9ORQWAAlBCUNm5p2PEsIG4cafnVhK9SS7EbW9fNCSRERDm5VhxzSeKOKzUlPHIoDRTPqxJVr%2BfNRmwFQtEqR%2BmpZIUlkRLstqsIEyQfF1X48UIlVlZNLb1JhksLL%2BDPpSgMjEsGK6c1ZRfIlrcbURJWSAtfePFKUVWaJ%2BKb0Ix%2BUPjptutVUc1ilira8Gr1H1U%2BpXF%2F%2FwBfFVpSscAgNzc%2FlT1KOPuUP9eRxRERisWL%2FwCFPFQSsREsTZX88UorEHWyX48ULA%2F54htTr44pHGJis1HlDyOKGlQxy61B0R%2F3HimrqBI4n31G%2FwBKERIq02Sz7UFjIiI9nU6l7f4pwNqMpLP23GrPUgJFY%2B%2Fm%2B9GFIM5J89Q7804SspL8haz7Vnw4QZHFDPU78VoYUZFZe%2B%2B7PQsGEpZ9ayuQzu9Vwol8SvXchn%2BtRYtL4aMUO1qAHQLDUqCrW5pXCVJn6X8uFqycEXh6My3Z6EkKYfBAoZ6UXyeP%2FlNdqkEliBhuiLxUiQVmcF%2FrvQjAHLrOLKDqzmirrkMcT7bacHmtXaJxyVXIt5HmrKHrjFyxOnjmnPqUcQZueW581lRgYiUHP9OfNIwmOOBchxoOeakfVXJHrqOKEwTAKTrpwOaSxMQZueW580RUxTPrQm40581cU2FlibXH6TvV1QrISRkThmoQdAVipJ%2FT5qyiShmicW3qwsNFSYWXW25tVVgDJCqXCWpTeyoEAS7bVeJvfEIiqduKsxE5LOw2LWWhGK5wCi420NJjmDAwKA3DL54qBGIlqpFwePFBAIEIsQpOvA4pVJxJmxUakvccUJokGUGdjfmoAYkE4lFDKv8AqnCY45IWOLu1qjG9cQxR9X04qBOOU1Ba5%2FELpUV9HWe37jo6oRJ7OyUYwCj5SkgvzWfrVtantjdnf3dxl2dvfLsnIhZylKRLIFN6pMeSD%2FVuxnPJf5DZw98agkzkg%2F6FVuppws0mc1n%2FANCE5LOKMHLZSWIMzeyl3qwsj%2BSaH%2Fo%2B6nY1WRH%2BSQJTs0cEnarETfyTEB%2F0Lkup2qwmM5LM%2FwAhTZSz%2BKQ7%2FZ%2FefcfZ%2Fc9Xd09xEgYqMpASAkuMkRQUesfXzPqYw18%2FVl28oXF4ah35rYwUKtFUjdDdKLUCCIhIb71InIymMVVXfepMPlFYu2%2B%2Fmmph8fgzb81dTe2S46JrtapBCgGGpZ2tVkEiSy9FP4u4oODASy6%2FTUCx3opm0JEgqSXCtsvNOGSAMlUrjtx5pIOOIClCToOKESI5TWTuLc%2BaeBgIrByujDfzR6QBERKrcOl70o%2BuVz8Wb9tHEPTEexRTp%2BdVVJRZ3Ul258vUjERz61JVRpz5oXQ6OBcJatA%2ByiwCcbVESySPxv8Atom0o5ZTYapbfWrzAD5Qtovx3v8AjUQ%2BJRLj9NRZ1FkTjaqBvbG0bn9PDVKl1k44tvzUqYZZQsijZb0VTaFjiUW%2B978VocIxVg6bhwnihCRikWNzr%2BVU2eKOOU2OqvzTwAGOXWxuz6r4oLNiVDKNR9KkGUMVx%2FtjVEFhhrc6%2BOKVVMsmTd7v4oFMMc%2Btiqh154opmwssT7a8tWhCrvNWcPteoiRkkffU%2Fqo6lEyyn77pdnq4Apyh7bbu9RCnE%2B6FQ7%2FSospUe2ln2vVAyyx%2Bep3e1VVKvJJ%2F5Z%2BKqqYE5Q99Qz70HqUb4I7X5rTM0pJKPXS77WegpkCkf%2BetkP1qm0qQ9p%2Bm%2B7vVwBDlD0Tl2eosksT6q4Z6iEKj10u%2B1qoAhw%2BGpUPZqTVIVl6%2BLu9ApiDl1%2Bmod9%2BazVNoZC6u7eea2Jo%2Bq6qm3HmpCQjjFzc6D60TaUccp%2Bx105p9wgMcoOVbTnzQQkcTe40%2FOpMyhz8bJ%2B2qaTeuA9jco2rPelU%2Bqyvy3PJoopjjn1uVUMnNFM3A6OBcJatA%2ByiwCcbVESySPxv%2B2ibSjllNhqlt9avMAPlC2i%2FHe%2F41EPiUS4%2FTUWdRZE42qgb2xtG5%2FTw1SpdZOOLb81KmGWULIo2W9FU2hsSiorve%2FFbCvVbOm4slCEkxiUKKdfyokRIjlNjy%2FNPuEAAZQQHcP%2B7xQmYxLEuNfypwcxmEkIcR30xqiCDEMbnXxxUslgZsQl358UCunR1nt7%2Bjq64k9vZKMYBQFMpINqLq2tT2xuz7j7jtMuzt7pdkyRlOUpSkwRyXpkk1Bm3o%2Fknkv8hs4BO16sJMpzAH%2FUqTf2%2BlU2lGXYsv%2Bh11LPVjxZGc1h7qDyXepN%2FJNCf5Cqh1OtGImHZMH5sQ4U7U4Tfydgh%2F9HUgFTxUmzkTL3PhSgenIrv9n959x9p9x09%2FR2mMomKxWSSAkDjJEUFHrn9%2FM%2BpjDfz9WV5kb4I7X5roxNKSSj10u%2B1noKZApH%2FnrZD9aptKkPafpvu71cAQ5Q9E5dnqLJLE%2BquGeohCo9dLvtaqAIcPhqVD2ak1SFZevi7vQKYg5dfpqHffms1TaGQuru3nmtiaPquqptx5qQkI4xc3Og%2BtE2lHHKfsddOafcIDHKDlW0580EJHE3uNPzqTMoc%2FGyftqmk3rgPY3KNqz3pVPqsr8tzyaKKY459blVDJzRTNwOjgXCWrQPsosAnG1REskj8b%2Ftom0o5ZTYapbfWrzAD5Qtovx3v%2BNRD4lEuP01FnUWRONqoG9sbRuf08NUqXWTji2%2FNSphllCyKNlvRVNoWOJRb73vxWhwjFWDpuHCeKEJGKRY3Ov5VTZ4o45TY6q%2FNPAAY5dbG7Pqvigs2JUMo1H0qQZQxXH%2B2NUQWGGtzr44pVUyyZN3u%2FigUwxz62KqHXniimbSyF1d2881oTR9V1VNuPNSEhHGLm50H1om0o45T9jrpzT7hAY5Qcq2nPmghI4m9xp%2BdSZlDn42T9tU0m9cB7G5RtWe9Kp9VlflueTRRTHHPrcqoZOaKZuB0cC4S1aB9lFgE42qIlkkfjf9tE2lHLKbDVLb61eYAfKFtF%2BO9%2FxqIfEolx%2Bmos6iyJxtVA3tjaNz%2BnhqlS6yccW35qVMMsoWRRst6KptCxxKLfe9%2BK0OEYqwdNw4TxQhIxSLG51%2FKqbPFHHKbHVX5p4ADHLrY3Z9V8UFmxKhlGo%2BlSDKGK4%2F2xqiCww1udfHFKqmWTJu938UCmGOfWxVQ688UUzYWWJ9teWrQhV3mrOH2vURIySPvqf1UdSiZZT990uz1cAU5Q9tt3eohTifdCod%2FpUWUqPbSz7XqgZZY%2FPU7vaqqlXkk%2F8s%2FFVVMCcoe%2BoZ96D1AQxJEbEb881vDM0pXsLc7VlA%2FGJxCKd%2FrVCSmU%2FUa%2F5px4AHlBIjdfx80LLXiWBcb%2FAFpwstaSEBRH%2FwDmrBH%2FAI%2BOpZ%2BOalaSUMlAbzvQK6dMJdvf0dMICXZ2SjGAXWUkFzrRfJbWp7Zhuzv%2B57TLs7ezsn2SI9pylKRACOSVpkk0M2jLuyVZInKKlXi9TKXegeak81Ta9UZdqyeeqOd6vMLNGXasFMkN1XepZbPuQlZKoS680Yi9Ydnat5IQ7khUpxKm%2Fk7sLyuVuqNViJsu0mTyQ2DnWnIrv9n93939n9x09%2FTOUTExJCyEZASBxkhCgpXP7ksxW%2Fn6svjyshdXdvPNdGJo%2Bq6qm3HmpCQjjFzc6D60TaUccp%2Bx105p9wgMcoOVbTnzQQkcTe40%2FOpMyhz8bJ%2B2qaTeuA9jco2rPelU%2Bqyvy3PJoopjjn1uVUMnNFM3A6OBcJatA%2ByiwCcbVESySPxv%2B2ibSjllNhqlt9avMAPlC2i%2FHe%2F41EPiUS4%2FTUWdRZE42qgb2xtG5%2FTw1SpdZOOLb81KmGWULIo2W9FU2hY4lFvve%2FFaHCMVYOm4cJ4oQkYpFjc6%2FlVNnijjlNjqr808ABjl1sbs%2Bq%2BKCzYlQyjUfSpBlDFcf7Y1RBYYa3OvjilVTLJk3e7%2BKBTDHPrYqodeeKKZsLLE%2B2vLVoQq7zVnD7XqIkZJH31P6qOpRMsp%2B%2B6XZ6uAKcoe227vUQpxPuhUO%2F0qLKVHtpZ9r1QMssfnqd3tVVSrySf%2BWfiqqmBOUPfUM%2B9B6jEodHCOOa0zNKQqHFkuNqkmUSkXFzqKJsqMTlNg668058AETlCzXcb0EIcCF1GopWGQqC3xS%2F7aJpDE4aXOo4alVRBWTjhwNaBTCJy6y1xchb0UzaVjiUW%2B978VocIxVg6bhwnihCRikWNzr%2BVU2eKOOU2OqvzTwAGOXWxuz6r4oLNiVDKNR9KkGUMVx%2FtjVEFhhrc6%2BOKVVMsmTd7v4oFMMc%2Btiqh154opmwssT7a8tWhCrvNWcPteoiRkkffU%2Fqo6lEyyn77pdnq4Apyh7bbu9RCnE%2B6FQ7%2FSospUe2ln2vVAyyx%2Bep3e1VVKvJJ%2F5Z%2BKqqYE5Q99Qz70HqUb4I7X5rTM0pJKPXS77WegpkCkf%2BetkP1qm0qQ9p%2Bm%2B7vVwBDlD0Tl2eosksT6q4Z6iEKj10u%2B1qoAhw%2BGpUPZqTVIVl6%2BLu9ApiDl1%2Bmod9%2BazVNoQGJclwreea6Dikityqf680JMhHGJdFOg%2BtE2VEDKbnVW5p4AADKCElENhZfNCYAGJu5Gn50nxkAkhLiNvw80IIMbm5RtW5pXhIiDNV5ZdfNArp0dR7e%2Fo6utT2dkoxhFgplJA5NF8mWp7Y3Z3%2Fc9pl2dvZ2T7JEe05SlIgBHJK0ySaGbRl3ZKskTlFSrxeplLvQPNSeapteqMu1ZPPVHO9XmFmjLtWCmSG6rvUstn3ISslUJdeaMResOztW8kIdyQqU4lTfyd2F5XK3VGqxE2XaTJ5IbBzrTkV3%2Bz%2B7%2B7%2Bz%2B46e%2FpnKJiYkhZCMgJA4yQhQUrn9yWYrfz9WXx5WQuru3nmujE0fVdVTbjzUhIRxi5udB9aJtKOOU%2FY66c0%2B4QGOUHKtpz5oISOJvcafnUmZQ5%2BNk%2FbVNJvXAexuUbVnvSqfVZX5bnk0UUxxz63KqGTmimbgdHAuEtWgfZRYBONqiJZJH43%2FbRNpRyymw1S2%2BtXmAHyhbRfjvf8aiHxKJcfpqLOosicbVQN7Y2jc%2Fp4apUusnHFt%2BalTDLKFkUbLeiqbQscSi33vfitDhGKsHTcOE8UISMUixudfyqmzxRxymx1V%2BaeAAxy62N2fVfFBZsSoZRqPpUgyhiuP9saogsMNbnXxxSqplkybvd%2FFAphjn1sVUOvPFFM2FlifbXlq0IVd5qzh9r1ESMkj76n9VHUomWU%2FfdLs9XAFOUPbbd3qIU4n3QqHf6VFlKj20s%2B16oGWWPz1O72qqpV5JP%2FLPxVVTAnKHvqGfeg9RiUOjhHHNaZmlIVDiyXG1STKJSLi51FE2VGJymwddeac%2BACJyhZruN6CEOBC6jUUrDIVBb4pf9tE0hicNLnUcNSqogrJxw4GtAphE5dZa4uQt6KZtKxxKLfe9%2BK0OEYqwdNw4TxQhIxSLG51%2FKqbPFHHKbHVX5p4ADHLrY3Z9V8UFmxKhlGo%2BlSDKGK4%2F2xqiCww1udfHFKqmWTJu938UCmGOfWxVQ688UUzYWWJ9teWrQhV3mrOH2vURIySPvqf1UdSiZZT990uz1cAU5Q9tt3eohTifdCod%2FpUWUqPbSz7XqgZZY%2FPU7vaqqlXkk%2F8ALPxVVTAnKHvqGfeg9SjfBHa%2FNaZmlJJR66Xfaz0FMgUj%2FwA9bIfrVNpUh7T9N93ergCHKHonLs9RZJYn1Vwz1EIVHrpd9rVQBDh8NSoezUmqQrL18Xd6BTEHLr9NQ7781mqbQgMS5LhW8810HFJFblU%2F15oSZCOMS6KdB9aJsqIGU3OqtzTwAAGUEJKIbCy%2BaEwAMTdyNPzpPjIBJCXEbfh5oQQY3NyjatzSvCREGaryy6%2BaBXTo6j29%2FR1dans7JRjCLBTKSByaL5MtT2xuzv8Aue0y7O3s7J9kiPacpSkQAjklaZJNDNoy7slWSJyipV4vUyl3oHmpPNU2vVGXasnnqjnerzCzRl2rBTJDdV3qWWz7kJWSqEuvNGIvWHZ2reSEO5IVKcSpv5O7C8rlbqjVYibLtJk8kNg51pyK7%2FZ%2Fd%2Fd%2FZ%2FcdPf0zlExMSQshGQEgcZIQoKVz%2B5LMVv5%2BrL48rIXV3bzzXRiaPquqptx5qQkI4xc3Og%2BtE2lHHKfsddOafcIDHKDlW0580EJHE3uNPzqTMoc%2FGyftqmk3rgPY3KNqz3pVPqsr8tzyaKKY459blVDJzRTNwOjgXCWrQPsosAnG1REskj8b%2Ftom0o5ZTYapbfWrzAD5Qtovx3v%2BNRD4lEuP01FnUWRONqoG9sbRuf08NUqXWTji2%2FNSphllCyKNlvRVNoWOJRb73vxWhwjFWDpuHCeKEJGKRY3Ov5VTZ4o45TY6q%2FNPAAY5dbG7Pqvigs2JUMo1H0qQZQxXH%2B2NUQWGGtzr44pVUyyZN3u%2FigUwxz62KqHXniimbCyxPtry1aEKu81Zw%2B16iJGSR99T%2BqjqUTLKfvul2ergCnKHttu71EKcT7oVDv8ASospUe2ln2vVAyyx%2Bep3e1VVKvJJ%2FwCWfiqqmBOUPfUM%2B9B6jEodHCOOa0zNKQqHFkuNqkmUSkXFzqKJsqMTlNg668058AETlCzXcb0EIcCF1GopWGQqC3xS%2FwC2iaQxOGlzqOGpVUQVk44cDWgUwicustcXIW9FM2lY4lFvve%2FFaHCMVYOm4cJ4oQkYpFjc6%2FlVNnijjlNjqr808ABjl1sbs%2Bq%2BKCzYlQyjUfSpBlDFcf7Y1RBYYa3OvjilVTLJk3e7%2BKBTDHPrYqodeeKKZsLLE%2B2vLVoQq7zVnD7XqIkZJH31P6qOpRMsp%2B%2B6XZ6uAKcoe227vUQpxPuhUO%2F0qLKVHtpZ9r1QMssfnqd3tVVSrySf%2BWfiqqmBOUPfUM%2B9B6lG%2BCO1%2Ba0zNKSSj10u%2B1noKZApH%2FnrZD9aptKkPafpvu71cAQ5Q9E5dnqLJLE%2BquGeohCo9dLvtaqAIcPhqVD2ak1SFZevi7vQKYg5dfpqHffms1TaEBiXJcK3nmug4pIrcqn%2BvNCTIRxiXRToPrRNlRAym51VuaeAAAyghJRDYWXzQmABibuRp%2BdJ8ZAJIS4jb8PNCCDG5uUbVuaV4SIgzVeWXXzQK6dHUe3v6OrrU9nZKMYRYKZSQOTRfJlqe2N2d%2F3PaZdnb2dk%2ByRHtOUpSIARyStMkmhm0Zd2SrJE5RUq8XqZS70DzUnmqbXqjLtWTz1RzvV5hZoy7Vgpkhuq71LLZ9yErJVCXXmjEXrDs7VvJCHckKlOJU38ndheVyt1RqsRNl2kyeSGwc605Fd%2Fs%2Fu%2Fu%2Fs%2FuOnv6ZyiYmJIWQjICQOMkIUFK5%2FclmK38%2FVl8eVkLq7t55roxNH1XVU2481ISEcYubnQfWibSjjlP2OunNPuEBjlByrac%2BaCEjib3Gn51JmUOfjZP21TSb1wHsblG1Z70qn1WV%2BW55NFFMcc%2Btyqhk5opm4HRwLhLVoH2UWATjaoiWSR%2BN%2F20TaUcspsNUtvrV5gB8oW0X473%2FGoh8SiXH6aizqLInG1UDe2No3P6eGqVLrJxxbfmpUwyyhZFGy3oqm0LHEot9734rQ4RirB03DhPFCEjFIsbnX8qps8UccpsdVfmngAMcutjdn1XxQWbEqGUaj6VIMoYrj%2FAGxqiCww1udfHFKqmWTJu938UCmGOfWxVQ688UUzYWWJ9teWrQhV3mrOH2vURIySPvqf1UdSiZZT990uz1cAU5Q9tt3eohTifdCod%2FpUWUqPbSz7XqgZZY%2FPU7vaqqlXkk%2F8s%2FFVVMCcoe%2BoZ96D1GJQ6OEcc1pmaUhUOLJcbVJMolIuLnUUTZUYnKbB115pz4AInKFmu43oIQ4ELqNRSsMhUFvil%2F20TSGJw0udRw1KqiCsnHDga0CmETl1lri5C3opm0rHEot9734rQ4RirB03DhPFCEjFIsbnX8qps8UccpsdVfmngAMcutjdn1XxQWbEqGUaj6VIMoYrj%2FbGqILDDW518cUqqZZMm73fxQKYY59bFVDrzxRTNhZYn215atCFXeas4fa9REjJI%2B%2Bp%2FVR1KJllP33S7PVwBTlD223d6iFOJ90Kh3%2BlRZSo9tLPteqBllj89Tu9qqqVeST%2FAMs%2FFVVMCcoe%2BoZ96D1KN8Edr81pmaUklHrpd9rPQUyBSP8Az1sh%2BtU2lSHtP033d6uAIcoeicuz1FklifVXDPUQhUeul32tVAEOHw1Kh7NSapCsvXxd3oFMQcuv01DvvzWaptCAxLkuFbzzXQcUkVuVT%2FXmhJkI4xLop0H1omyogZTc6q3NPAAAZQQkohsLL5oTAAxN3I0%2FOk%2BMgEkJcRt%2BHmhBBjc3KNq3NK8JEQZqvLLr5oFdOjqPb39HV1qezslGMIsFMpIHJovky1PbG7O%2F7ntMuzt7OyfZIj2nKUpEAI5JWmSTQzaMu7JVkicoqVeL1Mpd6B5qTzVNr1Rl2rJ56o53q8ws0ZdqwUyQ3Vd6lls%2B5CVkqhLrzRiL1h2dq3khDuSFSnEqb%2BTuwvK5W6o1WImy7SZPJDYOdaciu%2F2f3f3f2f3HT39M5RMTEkLIRkBIHGSEKClc%2FuSzFb%2Bfqy%2BPKyF1d28810Ymj6rqqbceakJCOMXNzoPrRNpRxyn7HXTmn3CAxyg5VtOfNBCRxN7jT86kzKHPxsn7appN64D2Nyjas96VT6rK%2FLc8miimOOfW5VQyc0UzcDo4Fwlq0D7KLAJxtURLJI%2FG%2FwC2ibSjllNhqlt9avMAPlC2i%2FHe%2FwCNRD4lEuP01FnUWRONqoG9sbRuf08NUqXWTji2%2FNSphllCyKNlvRVNoWOJRb73vxWhwjFWDpuHCeKEJGKRY3Ov5VTZ4o45TY6q%2FNPAAY5dbG7Pqvigs2JUMo1H0qQZQxXH%2B2NUQWGGtzr44pVUyyZN3u%2FigUwxz62KqHXniimbCyxPtry1aEKu81Zw%2B16iJGSR99T%2BqjqUTLKfvul2ergCnKHttu71EKcT7oVDv9KiylR7aWfa9UDLLH56nd7VVUq8kn%2Fln4qqpgTlD31DPvQeoxKHRwjjmtMzSkKhxZLjapJlEpFxc6iibKjE5TYOuvNOfABE5Qs13G9BCHAhdRqKVhkKgt8Uv%2B2iaQxOGlzqOGpVUQVk44cDWgUwicustcXIW9FM2lY4lFvve%2FFaHCMVYOm4cJ4oQkYpFjc6%2FlVNnijjlNjqr808ABjl1sbs%2Bq%2BKCzYlQyjUfSpBlDFcf7Y1RBYYa3OvjilVTLJk3e7%2BKBTDHPrYqodeeKKZsLLE%2B2vLVoQq7zVnD7XqIkZJH31P6qOpRMsp%2B%2B6XZ6uAKcoe227vUQpxPuhUO%2F0qLKVHtpZ9r1QMssfnqd3tVVSrySf%2BWfiqqmBOUPfUM%2B9B6lG%2BCO1%2Ba0zNKSSj10u%2B1noKZApH%2FnrZD9aptKkPafpvu71cAQ5Q9E5dnqLJLE%2BquGeohCo9dLvtaqAIcPhqVD2ak1SFZevi7vQKYg5dfpqHffms1TaGQuru3nmtiaPquqptx5qQkI4xc3Og%2BtE2lHHKfsddOafcIDHKDlW0580EJHE3uNPzqTMoc%2FGyftqmk3rgPY3KNqz3pVPqsr8tzyaKKY459blVDJzRTNx%2F%2F9k%3D%29%200%200%20repeat%2Dx%3Bborder%2Dbottom%3Asolid%201px%20%23275da1%3Btext%2Dalign%3Acenter%7Dheader%20h1%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A%2E5em%3Bfont%2Dsize%3A2em%3Bfont%2Dweight%3A700%3Bline%2Dheight%3A1%3Bcolor%3A%23fff%3Bletter%2Dspacing%3A%2D1px%7Dheader%20h2%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A1em%3Bfont%2Dsize%3A1%2E5em%3Bfont%2Dweight%3A400%3Bline%2Dheight%3A1%2E3%3Bcolor%3A%239ddcff%3Bletter%2Dspacing%3A0%7Dheader%20h3%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A1em%3Bfont%2Dsize%3A1%2E2em%3Bfont%2Dweight%3A400%3Bline%2Dheight%3A1%2E2%3Bcolor%3A%239ddcff%3Bletter%2Dspacing%3A0%7D%2Einner%2C%2Etoc%7Bposition%3Arelative%3Bwidth%3A840px%3Bfont%2Dsize%3A1%2E1em%3Bmargin%3A0%20auto%7D%2Etoc%7Bpadding%2Dtop%3A1em%3Bpadding%2Dbottom%3A0%7D%2Etoc%20ul%7Bmargin%2Dbottom%3A0%7D%23content%2Dwrapper%7Bpadding%2Dtop%3A30px%3Bborder%2Dtop%3Asolid%201px%20%23fff%7D%23main%2Dcontent%20img%7Bmax%2Dwidth%3A100%25%7Dcode%2Cpre%7Bmargin%2Dbottom%3A30px%3Bfont%2Dfamily%3AMonaco%2CConsolas%2C%22Bitstream%20Vera%20Sans%20Mono%22%2C%22Lucida%20Console%22%2CTerminal%2Cmonospace%3Bfont%2Dsize%3A1em%3Bcolor%3A%23222%7Dcode%7Bpadding%3A0%203px%3Bbackground%2Dcolor%3A%23f2f8fc%3Bborder%3Asolid%201px%20%23dbe7f3%7Dpre%7Bpadding%3A20px%3Boverflow%3Aauto%3Btext%2Dshadow%3Anone%3Bbackground%3A%23fff%3Bborder%3Asolid%201px%20%23f2f2f2%3Bfont%2Dsize%3A%2E9em%7Dpre%20code%7Bpadding%3A0%3Bcolor%3A%232879d0%3Bbackground%2Dcolor%3A%23fff%3Bborder%3Anone%7Dul%2Col%2Cdl%7Bmargin%2Dbottom%3A20px%7Dhr%7Bheight%3A1px%3Bmargin%2Dtop%3A1em%3Bmargin%2Dbottom%3A1em%3Bborder%3A0%3Bbackground%3A%23aaa%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20right%2C%23eee%2C%23aaa%2C%23eee%29%7Dform%7Bpadding%3A20px%3Bbackground%3A%23f2f2f2%7D%23main%2Dcontent%20h1%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A0%3Bfont%2Dsize%3A2em%3Bfont%2Dweight%3A700%3Bcolor%3A%23474747%3Bletter%2Dspacing%3A%2D1px%7D%23main%2Dcontent%20h1%3Abefore%7Bpadding%2Dright%3A%2E3em%3Bmargin%2Dleft%3A%2D%2E8em%3Bcolor%3A%239ddcff%3Bcontent%3A%22%2F%22%7D%23main%2Dcontent%20h2%7Bmargin%2Dbottom%3A8px%3Bfont%2Dsize%3A1%2E5em%3Bfont%2Dweight%3A700%3Bcolor%3A%23474747%7D%23main%2Dcontent%20h2%3Abefore%7Bpadding%2Dright%3A%2E3em%3Bmargin%2Dleft%3A%2D1%2E2em%3Bcontent%3A%22%2F%2F%22%3Bcolor%3A%239ddcff%7D%23main%2Dcontent%20h3%7Bmargin%2Dtop%3A24px%3Bmargin%2Dbottom%3A8px%3Bfont%2Dsize%3A1%2E2em%3Bfont%2Dweight%3A700%3Bcolor%3A%23474747%7D%23main%2Dcontent%20h3%3Abefore%7Bpadding%2Dright%3A%2E3em%3Bmargin%2Dleft%3A%2D1%2E7em%3Bcontent%3A%22%2F%2F%2F%22%3Bcolor%3A%239ddcff%7D%23main%2Dcontent%20h4%7Bmargin%2Dbottom%3A8px%3Bfont%2Dsize%3A1%2E1em%3Bfont%2Dweight%3A700%3Bcolor%3A%23474747%7Dh4%3Abefore%7Bpadding%2Dright%3A%2E3em%3Bmargin%2Dleft%3A%2D2em%3Bcontent%3A%22%2F%2F%2F%2F%22%3Bcolor%3A%239ddcff%7D%23main%2Dcontent%20h5%7Bmargin%2Dbottom%3A8px%3Bfont%2Dsize%3A1em%3Bcolor%3A%23474747%7Dh5%3Abefore%7Bpadding%2Dright%3A%2E3em%3Bmargin%2Dleft%3A%2D2%2E4em%3Bcontent%3A%22%2F%2F%2F%2F%2F%22%3Bcolor%3A%239ddcff%7D%23main%2Dcontent%20h6%7Bmargin%2Dbottom%3A8px%3Bfont%2Dsize%3A%2E9em%3Bcolor%3A%23474747%7Dh6%3Abefore%7Bpadding%2Dright%3A%2E3em%3Bmargin%2Dleft%3A%2D3em%3Bcontent%3A%22%2F%2F%2F%2F%2F%2F%22%3Bcolor%3A%239ddcff%7Dp%7Bmargin%2Dbottom%3A20px%7Da%7Btext%2Ddecoration%3Anone%7Dp%20a%7Bfont%2Dweight%3A400%7Dblockquote%7Bpadding%3A0%200%200%2030px%3Bmargin%2Dbottom%3A20px%3Bfont%2Dsize%3A1%2E1em%3Bborder%2Dleft%3A10px%20solid%20%23e9e9e9%7Dul%2Col%7Bpadding%2Dleft%3A30px%7Ddl%20dd%7Bfont%2Dstyle%3Aitalic%3Bfont%2Dweight%3A100%7D%2Eclearfix%3Aafter%7Bdisplay%3Ablock%3Bheight%3A0%3Bclear%3Aboth%3Bvisibility%3Ahidden%3Bcontent%3A%27%2E%27%7D%2Eclearfix%7Bdisplay%3Ainline%2Dblock%7D%2A%20html%20%2Eclearfix%7Bheight%3A1%25%7D%2Eclearfix%7Bdisplay%3Ablock%7D%40media%20only%20screen%20and%20%28max%2Dwidth%3A%20850px%29%7B%2Etoc%2C%2Einner%7Bwidth%3A93%25%3Bfont%2Dsize%3A1em%7Dheader%7Bpadding%3A10px%200%7Dheader%20h1%2Cheader%20h2%7Bwidth%3A100%25%7Dheader%20h1%7Bfont%2Dsize%3A1%2E75em%7Dheader%20h2%7Bfont%2Dsize%3A1%2E2em%7Dheader%20h3%7Bfont%2Dsize%3A1em%7D%23main%2Dcontent%20h1%3Abefore%2C%23main%2Dcontent%20h2%3Abefore%2C%23main%2Dcontent%20h3%3Abefore%2C%23main%2Dcontent%20h4%3Abefore%2C%23main%2Dcontent%20h5%3Abefore%2C%23main%2Dcontent%20h6%3Abefore%7Bpadding%2Dright%3A0%3Bmargin%2Dleft%3A0%3Bcontent%3Anone%7D%7D%0Acode%20%3E%20span%2Ekw%20%7B%20color%3A%20%23a71d5d%3B%20font%2Dweight%3A%20normal%3B%20%7D%20%0Acode%20%3E%20span%2Edt%20%7B%20color%3A%20%23795da3%3B%20%7D%20%0Acode%20%3E%20span%2Edv%20%7B%20color%3A%20%230086b3%3B%20%7D%20%0Acode%20%3E%20span%2Ebn%20%7B%20color%3A%20%230086b3%3B%20%7D%20%0Acode%20%3E%20span%2Efl%20%7B%20color%3A%20%230086b3%3B%20%7D%20%0Acode%20%3E%20span%2Ech%20%7B%20color%3A%20%234070a0%3B%20%7D%20%0Acode%20%3E%20span%2Est%20%7B%20color%3A%20%23183691%3B%20%7D%20%0Acode%20%3E%20span%2Eco%20%7B%20color%3A%20%23969896%3B%20font%2Dstyle%3A%20italic%3B%20%7D%20%0Acode%20%3E%20span%2Eot%20%7B%20color%3A%20%23007020%3B%20%7D%20%0A" rel="stylesheet" type="text/css" />

</head>

<body>




<header>
<div class="inner">
<h1 class="title toc-ignore">Produção Industrial Mensal - PIM</h1>
<h3 class="author">Ministério da Economia - Secretaria de Política Econômica</h3>
</div>
</header>



<div id="content-wrapper">
  <div class="inner clearfix">
    <section id="main-content">
<blockquote>
<ul>
<li><p>Em setembro de 2019, a produção industrial cresceu 0.34% frente ao mês anterior (com ajuste sazonal).</p></li>
<li><p>O resultado veio abaixo da mediana das expectativas de mercado (-0,30% a 1,60%; mediana de 0,70%).</p></li>
<li><p>A indústria extrativa caiu 1.22% e a indústria de transformação avançou 0.93%, com ajuste sazonal.</p></li>
<li><p>Frente a setembro de 2018, a produção industrial cresceu 1.1%, abaixo da mediana das expectativas de mercado (-0,30% a 2,90%; mediana de 1,60%).</p></li>
<li><p>A Indústria Extrativa apresentou recuo de 2.68%, enquanto a Indústria de Transformação registrou alta de 1.56%.</p></li>
<li><p>Com o resultado de setembro e a revisão dos resultados anteriores, o carry-over para 2019 ficou em -1.02%.</p></li>
<li><p>No ano, a indústria geral acumula queda de 1.35%.</p></li>
<li><p>Em 12 meses, a indústria geral acumula queda de 1.34%.</p></li>
</ul>
</blockquote>
<div id="variacao-na-margem---principais-impactos-positivos" class="section level3">
<h3>Variação na margem - Principais impactos positivos</h3>
<table class="table table-condensed">
<thead>
<tr>
<th style="text-align:left;">
</th>
<th style="text-align:center;">
Variação %
</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;">
Fabricação de móveis
</td>
<td style="text-align:center;">
4.26
</td>
</tr>
<tr>
<td style="text-align:left;">
Fabricação de produtos diversos
</td>
<td style="text-align:center;">
6.62
</td>
</tr>
<tr>
<td style="text-align:left;">
Fabricação de celulose, papel e produtos de papel
</td>
<td style="text-align:center;">
9.38
</td>
</tr>
</tbody>
</table>
</div>
<div id="variacao-na-margem---principais-impactos-negativos" class="section level3">
<h3>Variação na margem - Principais impactos negativos</h3>
<table class="table table-condensed">
<thead>
<tr>
<th style="text-align:left;">
</th>
<th style="text-align:center;">
Variação %
</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;">
Fabricação de produtos têxteis
</td>
<td style="text-align:center;">
-7.72
</td>
</tr>
<tr>
<td style="text-align:left;">
Fabricação de produtos minerais não metálicos
</td>
<td style="text-align:center;">
-4.55
</td>
</tr>
<tr>
<td style="text-align:left;">
Preparação de couros e fabricação de artf.couro
</td>
<td style="text-align:center;">
-2.75
</td>
</tr>
</tbody>
</table>
</div>
<div id="variacao-interanual---principais-impactos-positivos" class="section level3">
<h3>Variação interanual - Principais impactos positivos</h3>
<table class="table table-condensed">
<thead>
<tr>
<th style="text-align:left;">
</th>
<th style="text-align:center;">
Variação %
</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;">
Fabricação de produtos de metal, exceto maq. e equipamentos
</td>
<td style="text-align:center;">
9.07
</td>
</tr>
<tr>
<td style="text-align:left;">
Fabricação de produtos alimentícios
</td>
<td style="text-align:center;">
10.40
</td>
</tr>
<tr>
<td style="text-align:left;">
Fabricação de coque, derivados de petróleo e biocombustíveis
</td>
<td style="text-align:center;">
11.37
</td>
</tr>
</tbody>
</table>
</div>
<div id="variacao-interanual---principais-impactos-negativos" class="section level3">
<h3>Variação interanual - Principais impactos negativos</h3>
<table class="table table-condensed">
<thead>
<tr>
<th style="text-align:left;">
</th>
<th style="text-align:center;">
Variação %
</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;">
Confecção de artigos do vestuário e acessórios
</td>
<td style="text-align:center;">
-25.90
</td>
</tr>
<tr>
<td style="text-align:left;">
Fabricação de produtos têxteis
</td>
<td style="text-align:center;">
-15.21
</td>
</tr>
<tr>
<td style="text-align:left;">
Metalurgia
</td>
<td style="text-align:center;">
-9.12
</td>
</tr>
</tbody>
</table>
<p><strong>Tabela 1 - Produção Industrial (variação %)</strong></p>
<table class="table table-condensed">
<thead>
<tr>
<th style="text-align:left;">
</th>
<th style="text-align:center;">
Variação na margem
</th>
<th style="text-align:center;">
Variação trimestral na margem
</th>
<th style="text-align:center;">
Variação interanual
</th>
<th style="text-align:center;">
Variação trimestral
</th>
<th style="text-align:center;">
Acum. no ano
</th>
<th style="text-align:center;">
Acum. 12 meses
</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;">
Indústria Geral
</td>
<td style="text-align:center;">
0.34
</td>
<td style="text-align:center;">
0.27
</td>
<td style="text-align:center;">
1.10
</td>
<td style="text-align:center;">
-1.19
</td>
<td style="text-align:center;">
<span style="color: grey">-1.35</span>
</td>
<td style="text-align:center;">
<span style="color: grey">-1.34</span>
</td>
</tr>
<tr>
<td style="text-align:left;">
Extrativa
</td>
<td style="text-align:center;">
-1.22
</td>
<td style="text-align:center;">
14.83
</td>
<td style="text-align:center;">
-2.68
</td>
<td style="text-align:center;">
-4.48
</td>
<td style="text-align:center;">
<span style="color: grey">-9.77</span>
</td>
<td style="text-align:center;">
<span style="color: grey">-6.53</span>
</td>
</tr>
<tr>
<td style="text-align:left;">
Transformação
</td>
<td style="text-align:center;">
0.93
</td>
<td style="text-align:center;">
-0.62
</td>
<td style="text-align:center;">
1.56
</td>
<td style="text-align:center;">
-0.82
</td>
<td style="text-align:center;">
<span style="color: grey">-0.17</span>
</td>
<td style="text-align:center;">
<span style="color: grey">-0.62</span>
</td>
</tr>
<tr>
<td style="text-align:left;">
Veículo
</td>
<td style="text-align:center;">
4.26
</td>
<td style="text-align:center;">
-0.16
</td>
<td style="text-align:center;">
6.88
</td>
<td style="text-align:center;">
1.05
</td>
<td style="text-align:center;">
<span style="color: grey">2.72</span>
</td>
<td style="text-align:center;">
<span style="color: grey">2.51</span>
</td>
</tr>
<tr>
<td style="text-align:left;">
Máquinas e Equipamentos
</td>
<td style="text-align:center;">
-2.75
</td>
<td style="text-align:center;">
-2.44
</td>
<td style="text-align:center;">
3.89
</td>
<td style="text-align:center;">
0.96
</td>
<td style="text-align:center;">
<span style="color: grey">1.14</span>
</td>
<td style="text-align:center;">
<span style="color: grey">1.19</span>
</td>
</tr>
<tr>
<td style="text-align:left;">
Farmacêuticos
</td>
<td style="text-align:center;">
-4.55
</td>
<td style="text-align:center;">
-1.61
</td>
<td style="text-align:center;">
-9.12
</td>
<td style="text-align:center;">
-2.67
</td>
<td style="text-align:center;">
<span style="color: grey">-3.40</span>
</td>
<td style="text-align:center;">
<span style="color: grey">0.21</span>
</td>
</tr>
<tr>
<td style="text-align:left;">
Minerais não Metálicos
</td>
<td style="text-align:center;">
1.00
</td>
<td style="text-align:center;">
-0.25
</td>
<td style="text-align:center;">
-1.20
</td>
<td style="text-align:center;">
-0.82
</td>
<td style="text-align:center;">
<span style="color: grey">1.58</span>
</td>
<td style="text-align:center;">
<span style="color: grey">1.66</span>
</td>
</tr>
<tr>
<td style="text-align:left;">
Bens de Capital
</td>
<td style="text-align:center;">
-0.51
</td>
<td style="text-align:center;">
-0.67
</td>
<td style="text-align:center;">
0.76
</td>
<td style="text-align:center;">
1.09
</td>
<td style="text-align:center;">
<span style="color: grey">0.74</span>
</td>
<td style="text-align:center;">
<span style="color: grey">1.32</span>
</td>
</tr>
<tr>
<td style="text-align:left;">
Intermediários
</td>
<td style="text-align:center;">
0.23
</td>
<td style="text-align:center;">
1.25
</td>
<td style="text-align:center;">
0.11
</td>
<td style="text-align:center;">
-2.40
</td>
<td style="text-align:center;">
<span style="color: grey">-2.44</span>
</td>
<td style="text-align:center;">
<span style="color: grey">-2.31</span>
</td>
</tr>
<tr>
<td style="text-align:left;">
Bens de Consumo
</td>
<td style="text-align:center;">
2.32
</td>
<td style="text-align:center;">
-0.36
</td>
<td style="text-align:center;">
8.71
</td>
<td style="text-align:center;">
1.08
</td>
<td style="text-align:center;">
<span style="color: grey">1.55</span>
</td>
<td style="text-align:center;">
<span style="color: grey">0.60</span>
</td>
</tr>
</tbody>
</table>
<p><strong>Gráfico 1 - Produção Industrial, Transformação e Extrativa</strong> <div id="htmlwidget-90e7d38e9bcfcc22aec5" style="width:800px;height:400px;" class="dygraphs html-widget"></div>
<script type="application/json" data-for="htmlwidget-90e7d38e9bcfcc22aec5">{"x":{"attrs":{"labels":["month","PIM Total","Transformação","Extrativa"],"retainDateWindow":false,"axes":{"x":{"pixelsPerLabel":60,"drawAxis":true},"y":{"drawAxis":true}},"colors":["#3689e6","#ed5353","#68b723"],"series":{"PIM Total":{"axis":"y","strokeWidth":3},"Transformação":{"axis":"y","strokeWidth":3},"Extrativa":{"axis":"y","strokeWidth":3}},"stackedGraph":false,"fillGraph":false,"fillAlpha":0.15,"stepPlot":false,"drawPoints":false,"pointSize":1,"drawGapEdgePoints":false,"connectSeparatedPoints":false,"strokeWidth":1,"strokeBorderColor":"white","colorValue":0.5,"colorSaturation":1,"includeZero":false,"drawAxesAtZero":false,"logscale":false,"axisTickSize":3,"axisLineColor":"black","axisLineWidth":0.3,"axisLabelColor":"black","axisLabelFontSize":14,"axisLabelWidth":60,"drawGrid":true,"gridLineColor":"white","gridLineWidth":0.2,"rightGap":5,"digitsAfterDecimal":2,"labelsKMB":false,"labelsKMG2":false,"labelsUTC":false,"maxNumberWidth":6,"animatedZooms":false,"mobileDisableYTouch":true,"disableZoom":false,"legend":"always","labelsDivWidth":622,"labelsShowZeroValues":true,"labelsSeparateLines":false,"hideOverlayOnMouseOut":true,"showRangeSelector":true,"rangeSelectorHeight":30,"rangeSelectorPlotFillColor":"#abacae","rangeSelectorPlotStrokeColor":"#808FAB","interactionModel":"Dygraph.Interaction.defaultModel"},"scale":"monthly","annotations":[],"shadings":[],"events":[],"format":"date","data":[["2010-01-01T00:00:00.000Z","2010-02-01T00:00:00.000Z","2010-03-01T00:00:00.000Z","2010-04-01T00:00:00.000Z","2010-05-01T00:00:00.000Z","2010-06-01T00:00:00.000Z","2010-07-01T00:00:00.000Z","2010-08-01T00:00:00.000Z","2010-09-01T00:00:00.000Z","2010-10-01T00:00:00.000Z","2010-11-01T00:00:00.000Z","2010-12-01T00:00:00.000Z","2011-01-01T00:00:00.000Z","2011-02-01T00:00:00.000Z","2011-03-01T00:00:00.000Z","2011-04-01T00:00:00.000Z","2011-05-01T00:00:00.000Z","2011-06-01T00:00:00.000Z","2011-07-01T00:00:00.000Z","2011-08-01T00:00:00.000Z","2011-09-01T00:00:00.000Z","2011-10-01T00:00:00.000Z","2011-11-01T00:00:00.000Z","2011-12-01T00:00:00.000Z","2012-01-01T00:00:00.000Z","2012-02-01T00:00:00.000Z","2012-03-01T00:00:00.000Z","2012-04-01T00:00:00.000Z","2012-05-01T00:00:00.000Z","2012-06-01T00:00:00.000Z","2012-07-01T00:00:00.000Z","2012-08-01T00:00:00.000Z","2012-09-01T00:00:00.000Z","2012-10-01T00:00:00.000Z","2012-11-01T00:00:00.000Z","2012-12-01T00:00:00.000Z","2013-01-01T00:00:00.000Z","2013-02-01T00:00:00.000Z","2013-03-01T00:00:00.000Z","2013-04-01T00:00:00.000Z","2013-05-01T00:00:00.000Z","2013-06-01T00:00:00.000Z","2013-07-01T00:00:00.000Z","2013-08-01T00:00:00.000Z","2013-09-01T00:00:00.000Z","2013-10-01T00:00:00.000Z","2013-11-01T00:00:00.000Z","2013-12-01T00:00:00.000Z","2014-01-01T00:00:00.000Z","2014-02-01T00:00:00.000Z","2014-03-01T00:00:00.000Z","2014-04-01T00:00:00.000Z","2014-05-01T00:00:00.000Z","2014-06-01T00:00:00.000Z","2014-07-01T00:00:00.000Z","2014-08-01T00:00:00.000Z","2014-09-01T00:00:00.000Z","2014-10-01T00:00:00.000Z","2014-11-01T00:00:00.000Z","2014-12-01T00:00:00.000Z","2015-01-01T00:00:00.000Z","2015-02-01T00:00:00.000Z","2015-03-01T00:00:00.000Z","2015-04-01T00:00:00.000Z","2015-05-01T00:00:00.000Z","2015-06-01T00:00:00.000Z","2015-07-01T00:00:00.000Z","2015-08-01T00:00:00.000Z","2015-09-01T00:00:00.000Z","2015-10-01T00:00:00.000Z","2015-11-01T00:00:00.000Z","2015-12-01T00:00:00.000Z","2016-01-01T00:00:00.000Z","2016-02-01T00:00:00.000Z","2016-03-01T00:00:00.000Z","2016-04-01T00:00:00.000Z","2016-05-01T00:00:00.000Z","2016-06-01T00:00:00.000Z","2016-07-01T00:00:00.000Z","2016-08-01T00:00:00.000Z","2016-09-01T00:00:00.000Z","2016-10-01T00:00:00.000Z","2016-11-01T00:00:00.000Z","2016-12-01T00:00:00.000Z","2017-01-01T00:00:00.000Z","2017-02-01T00:00:00.000Z","2017-03-01T00:00:00.000Z","2017-04-01T00:00:00.000Z","2017-05-01T00:00:00.000Z","2017-06-01T00:00:00.000Z","2017-07-01T00:00:00.000Z","2017-08-01T00:00:00.000Z","2017-09-01T00:00:00.000Z","2017-10-01T00:00:00.000Z","2017-11-01T00:00:00.000Z","2017-12-01T00:00:00.000Z","2018-01-01T00:00:00.000Z","2018-02-01T00:00:00.000Z","2018-03-01T00:00:00.000Z","2018-04-01T00:00:00.000Z","2018-05-01T00:00:00.000Z","2018-06-01T00:00:00.000Z","2018-07-01T00:00:00.000Z","2018-08-01T00:00:00.000Z","2018-09-01T00:00:00.000Z","2018-10-01T00:00:00.000Z","2018-11-01T00:00:00.000Z","2018-12-01T00:00:00.000Z","2019-01-01T00:00:00.000Z","2019-02-01T00:00:00.000Z","2019-03-01T00:00:00.000Z","2019-04-01T00:00:00.000Z","2019-05-01T00:00:00.000Z","2019-06-01T00:00:00.000Z","2019-07-01T00:00:00.000Z","2019-08-01T00:00:00.000Z","2019-09-01T00:00:00.000Z"],[100.7,100.5,103,103.1,102.9,102.4,101.8,101.3,101.7,101.4,102.1,102.7,102.8,104.1,104.9,102,104.9,102.9,103.1,102.2,100.1,99.3,100,102.4,97.8,99.2,98.3,98.5,98.8,98.9,100.4,102.8,100.7,102.2,100.6,101.2,102.1,99.7,101.2,102.8,102.6,103.2,102.4,103,103.5,102.5,102.9,98.8,100.7,101.2,101.1,100.2,98.7,96.2,98.3,99.3,99.3,99.8,98.7,95.3,96,95.5,94.9,93.1,92.1,91.2,89.6,90.3,88.3,88.1,86.4,84.7,86.1,85,85.5,85.3,85.7,84.9,85.5,83.5,84.5,83.4,84,85.3,86.4,87.6,85.5,85.8,86.1,86.9,87.4,87.1,87.6,87.9,88.5,91.1,89.1,88.9,89.3,89.8,80,90.1,90.1,89.1,87,87.5,87.4,87.6,87.2,87.7,86.6,86.9,86.9,86.4,86.2,87.2,87.5],[101.7,101.7,103,103.5,103,102.6,101.5,101,101.5,101.5,102,103.7,103.7,104.7,106.2,102.3,104.6,103.1,103,101.6,99.8,99.5,99.7,103.6,97.7,98.1,98.1,97.9,98.3,98.8,100.2,102.7,101.2,101.7,100.9,102,103.1,100.5,102.3,104,103.7,104.1,102.9,103.1,104,102.4,102.9,99.8,101.4,101.9,101.8,100.4,98.8,95.3,97.9,98.1,98,98.2,97.5,94.6,94.6,93.4,92.7,90.8,90.1,88.9,87.7,88.1,86.3,86.4,85,83.6,84.4,81.6,84.2,84.3,84.2,83.8,84.1,82.6,83.4,82.3,82.4,83.4,83.7,84,83.6,82.9,84.2,85,85.7,85.8,86.5,86.8,87.4,90.7,87.9,86.5,87.9,88.1,77.6,88.5,88.3,87.8,86.1,86.1,85.9,85.7,85.8,86.5,86.2,87.3,86.7,86,85.6,86,86.8],[94.8,95.8,98.7,98.3,97.4,96.8,98.5,98.9,102.2,98.5,99.6,100,100.1,100,98.7,100.7,100.2,100.8,99.7,99.7,100.6,99.6,102.8,102,93.3,103.4,101,100.4,102.9,100.2,99.8,99.2,96.6,104.3,97.3,101.1,95.4,94.5,93,93.9,94.1,97,96.9,97,96.1,100,100.2,97.2,97.4,96.3,100.3,100.6,101.3,100.9,103.7,105.5,106.3,107.7,105.8,107.5,108.8,109,111.3,112,108.7,109.5,107.4,109.6,109.1,107.1,95.4,95.4,90.5,96.6,94,94.5,96.3,95.8,97.4,97.4,98.9,97.9,99.5,102.1,102.9,103.5,102.2,102.2,101.2,102.1,100.5,99.9,100.8,100.2,100.6,98.6,102.5,97.6,100.7,100.3,101.6,102,101.2,100,99.5,102.5,102,103.6,103.9,88.5,86.5,78.5,84.5,87.1,92.2,98.1,96.9]],"fixedtz":false,"tzone":"UTC"},"evals":["attrs.interactionModel"],"jsHooks":[]}</script></p>
<p>–</p>
<p><strong>Gráfico 2 - Produção Industrial - Variação mensal</strong> <div id="htmlwidget-c91d8ad74717bd56079c" style="width:800px;height:400px;" class="dygraphs html-widget"></div>
<script type="application/json" data-for="htmlwidget-c91d8ad74717bd56079c">{"x":{"attrs":{"labels":["month","PIM Total"],"retainDateWindow":false,"axes":{"x":{"pixelsPerLabel":60,"drawAxis":true},"y":{"drawAxis":true}},"colors":["#3689e6","#3689e6"],"series":{"PIM Total":{"axis":"y","strokeWidth":3,"plotter":"/**\n * Bar Chart plotter is adapted from http://dygraphs.com/tests/plotters.html\n */\nfunction barSeriesPlotter(e) {\n  var g = e.dygraph;\n  var ctx = e.drawingContext;\n  var points = e.points;\n  var axis = g.attr_(\"axis\", e.setName);\n  var y_bottom = g.toDomYCoord(0, axis == \"y2\" ? 1 : 0);\n\n  ctx.fillStyle = e.color;\n  ctx.strokeStyle = e.color;\n\n  // Find the minimum separation between x-values.\n  // This determines the bar width.\n  var min_sep = Infinity;\n  for (var i = 1; i < points.length; i++) {\n    var sep = points[i].canvasx - points[i - 1].canvasx;\n    if (sep < min_sep) min_sep = sep;\n  }\n  var bar_width = Math.floor(2.0 / 3 * min_sep);\n\n  // Do the actual plotting.\n  for (var i = 0; i < points.length; i++) {\n    var p = points[i];\n    var center_x = p.canvasx;\n\n    ctx.fillRect(center_x - bar_width / 2, p.canvasy,\n      bar_width, y_bottom - p.canvasy);\n\n    ctx.strokeRect(center_x - bar_width / 2, p.canvasy,\n      bar_width, y_bottom - p.canvasy);\n  }\n}\n"}},"stackedGraph":false,"fillGraph":false,"fillAlpha":0.15,"stepPlot":false,"drawPoints":false,"pointSize":1,"drawGapEdgePoints":false,"connectSeparatedPoints":false,"strokeWidth":1,"strokeBorderColor":"white","colorValue":0.5,"colorSaturation":1,"includeZero":false,"drawAxesAtZero":false,"logscale":false,"axisTickSize":3,"axisLineColor":"black","axisLineWidth":0.3,"axisLabelColor":"black","axisLabelFontSize":14,"axisLabelWidth":60,"drawGrid":true,"gridLineColor":"white","gridLineWidth":0.2,"rightGap":5,"digitsAfterDecimal":2,"labelsKMB":false,"labelsKMG2":false,"labelsUTC":false,"maxNumberWidth":6,"animatedZooms":false,"mobileDisableYTouch":true,"disableZoom":false,"legend":"always","labelsDivWidth":622,"labelsShowZeroValues":true,"labelsSeparateLines":false,"hideOverlayOnMouseOut":true,"showRangeSelector":true,"rangeSelectorHeight":30,"rangeSelectorPlotFillColor":"#abacae","rangeSelectorPlotStrokeColor":"#808FAB","interactionModel":"Dygraph.Interaction.defaultModel"},"scale":"monthly","annotations":[],"shadings":[],"events":[],"format":"date","data":[["2010-01-01T00:00:00.000Z","2010-02-01T00:00:00.000Z","2010-03-01T00:00:00.000Z","2010-04-01T00:00:00.000Z","2010-05-01T00:00:00.000Z","2010-06-01T00:00:00.000Z","2010-07-01T00:00:00.000Z","2010-08-01T00:00:00.000Z","2010-09-01T00:00:00.000Z","2010-10-01T00:00:00.000Z","2010-11-01T00:00:00.000Z","2010-12-01T00:00:00.000Z","2011-01-01T00:00:00.000Z","2011-02-01T00:00:00.000Z","2011-03-01T00:00:00.000Z","2011-04-01T00:00:00.000Z","2011-05-01T00:00:00.000Z","2011-06-01T00:00:00.000Z","2011-07-01T00:00:00.000Z","2011-08-01T00:00:00.000Z","2011-09-01T00:00:00.000Z","2011-10-01T00:00:00.000Z","2011-11-01T00:00:00.000Z","2011-12-01T00:00:00.000Z","2012-01-01T00:00:00.000Z","2012-02-01T00:00:00.000Z","2012-03-01T00:00:00.000Z","2012-04-01T00:00:00.000Z","2012-05-01T00:00:00.000Z","2012-06-01T00:00:00.000Z","2012-07-01T00:00:00.000Z","2012-08-01T00:00:00.000Z","2012-09-01T00:00:00.000Z","2012-10-01T00:00:00.000Z","2012-11-01T00:00:00.000Z","2012-12-01T00:00:00.000Z","2013-01-01T00:00:00.000Z","2013-02-01T00:00:00.000Z","2013-03-01T00:00:00.000Z","2013-04-01T00:00:00.000Z","2013-05-01T00:00:00.000Z","2013-06-01T00:00:00.000Z","2013-07-01T00:00:00.000Z","2013-08-01T00:00:00.000Z","2013-09-01T00:00:00.000Z","2013-10-01T00:00:00.000Z","2013-11-01T00:00:00.000Z","2013-12-01T00:00:00.000Z","2014-01-01T00:00:00.000Z","2014-02-01T00:00:00.000Z","2014-03-01T00:00:00.000Z","2014-04-01T00:00:00.000Z","2014-05-01T00:00:00.000Z","2014-06-01T00:00:00.000Z","2014-07-01T00:00:00.000Z","2014-08-01T00:00:00.000Z","2014-09-01T00:00:00.000Z","2014-10-01T00:00:00.000Z","2014-11-01T00:00:00.000Z","2014-12-01T00:00:00.000Z","2015-01-01T00:00:00.000Z","2015-02-01T00:00:00.000Z","2015-03-01T00:00:00.000Z","2015-04-01T00:00:00.000Z","2015-05-01T00:00:00.000Z","2015-06-01T00:00:00.000Z","2015-07-01T00:00:00.000Z","2015-08-01T00:00:00.000Z","2015-09-01T00:00:00.000Z","2015-10-01T00:00:00.000Z","2015-11-01T00:00:00.000Z","2015-12-01T00:00:00.000Z","2016-01-01T00:00:00.000Z","2016-02-01T00:00:00.000Z","2016-03-01T00:00:00.000Z","2016-04-01T00:00:00.000Z","2016-05-01T00:00:00.000Z","2016-06-01T00:00:00.000Z","2016-07-01T00:00:00.000Z","2016-08-01T00:00:00.000Z","2016-09-01T00:00:00.000Z","2016-10-01T00:00:00.000Z","2016-11-01T00:00:00.000Z","2016-12-01T00:00:00.000Z","2017-01-01T00:00:00.000Z","2017-02-01T00:00:00.000Z","2017-03-01T00:00:00.000Z","2017-04-01T00:00:00.000Z","2017-05-01T00:00:00.000Z","2017-06-01T00:00:00.000Z","2017-07-01T00:00:00.000Z","2017-08-01T00:00:00.000Z","2017-09-01T00:00:00.000Z","2017-10-01T00:00:00.000Z","2017-11-01T00:00:00.000Z","2017-12-01T00:00:00.000Z","2018-01-01T00:00:00.000Z","2018-02-01T00:00:00.000Z","2018-03-01T00:00:00.000Z","2018-04-01T00:00:00.000Z","2018-05-01T00:00:00.000Z","2018-06-01T00:00:00.000Z","2018-07-01T00:00:00.000Z","2018-08-01T00:00:00.000Z","2018-09-01T00:00:00.000Z","2018-10-01T00:00:00.000Z","2018-11-01T00:00:00.000Z","2018-12-01T00:00:00.000Z","2019-01-01T00:00:00.000Z","2019-02-01T00:00:00.000Z","2019-03-01T00:00:00.000Z","2019-04-01T00:00:00.000Z","2019-05-01T00:00:00.000Z","2019-06-01T00:00:00.000Z","2019-07-01T00:00:00.000Z","2019-08-01T00:00:00.000Z","2019-09-01T00:00:00.000Z"],[1.61453077699294,-0.198609731876864,2.48756218905473,0.0970873786407811,-0.19398642095052,-0.485908649173961,-0.585937500000011,-0.491159135559927,0.394866732477794,-0.294985250737456,0.690335305719914,0.587659157688547,0.0973709834469316,1.26459143968871,0.768491834774276,-2.76453765490944,2.84313725490197,-1.90657769304099,0.194363459669566,-0.872938894277397,-2.05479452054795,-0.799200799200794,0.704934541792546,2.4,-4.49218750000001,1.43149284253579,-0.907258064516137,0.203458799593093,0.30456852791878,0.1012145748988,1.51668351870575,2.39043824701195,-2.04280155642023,1.48957298907646,-1.5655577299413,0.596421471172981,0.88932806324109,-2.35063663075415,1.50451354062187,1.58102766798418,-0.194552529182879,0.584795321637444,-0.775193798449614,0.5859375,0.485436893203883,-0.966183574879231,0.390243902439025,-3.98445092322645,1.92307692307694,0.496524329692161,-0.0988142292490224,-0.890207715133517,-1.49700598802395,-2.53292806484295,2.18295218295217,1.01729399796542,0,0.503524672708955,-1.10220440881763,-3.44478216818643,0.734522560335793,-0.520833333333337,-0.628272251308892,-1.89673340358273,-1.07411385606875,-0.977198697068393,-1.75438596491229,0.78125,-2.21483942414175,-0.22650056625142,-1.92962542565266,-1.96759259259259,1.65289256198347,-1.27758420441346,0.588235294117645,-0.233918128654975,0.468933177022279,-0.933488914819136,0.706713780918711,-2.33918128654971,1.19760479041917,-1.30177514792899,0.71942446043165,1.54761904761904,1.28956623681127,1.38888888888888,-2.3972602739726,0.350877192982457,0.349650349650354,0.929152148664358,0.575373993095507,-0.343249427917636,0.574052812858783,0.34246575342467,0.682593856655278,2.93785310734462,-2.19538968166849,-0.224466891133546,0.449943757030358,0.559910414333697,-10.913140311804,12.625,0,-1.10987791342952,-2.35690235690235,0.574712643678166,-0.114285714285711,0.228832951945068,-0.456621004566204,0.573394495412849,-1.25427594070696,0.346420323325658,0,-0.575373993095507,-0.231481481481488,1.1600928074246,0.344036697247696]],"fixedtz":false,"tzone":"UTC"},"evals":["attrs.series.PIM Total.plotter","attrs.interactionModel"],"jsHooks":[]}</script></p>
<p>–</p>
<p><strong>Gráfico 3 - Indústria de Transformação e Indústria Extrativa - Variação mensal</strong> <div id="htmlwidget-e24f45ba7649f7984a90" style="width:800px;height:400px;" class="dygraphs html-widget"></div>
<script type="application/json" data-for="htmlwidget-e24f45ba7649f7984a90">{"x":{"attrs":{"labels":["month","Transformação","Extrativa"],"retainDateWindow":false,"axes":{"x":{"pixelsPerLabel":60,"drawAxis":true},"y":{"drawAxis":true}},"colors":["#ed5353","#68b723"],"series":{"Transformação":{"axis":"y","strokeWidth":3},"Extrativa":{"axis":"y","strokeWidth":3}},"stackedGraph":false,"fillGraph":false,"fillAlpha":0.15,"stepPlot":false,"drawPoints":false,"pointSize":1,"drawGapEdgePoints":false,"connectSeparatedPoints":false,"strokeWidth":1,"strokeBorderColor":"white","colorValue":0.5,"colorSaturation":1,"includeZero":false,"drawAxesAtZero":false,"logscale":false,"axisTickSize":3,"axisLineColor":"black","axisLineWidth":0.3,"axisLabelColor":"black","axisLabelFontSize":14,"axisLabelWidth":60,"drawGrid":true,"gridLineColor":"white","gridLineWidth":0.2,"rightGap":5,"digitsAfterDecimal":2,"labelsKMB":false,"labelsKMG2":false,"labelsUTC":false,"maxNumberWidth":6,"animatedZooms":false,"mobileDisableYTouch":true,"disableZoom":false,"legend":"always","labelsDivWidth":622,"labelsShowZeroValues":true,"labelsSeparateLines":false,"hideOverlayOnMouseOut":true,"showRangeSelector":true,"rangeSelectorHeight":30,"rangeSelectorPlotFillColor":"#abacae","rangeSelectorPlotStrokeColor":"#808FAB","interactionModel":"Dygraph.Interaction.defaultModel"},"scale":"monthly","annotations":[],"shadings":[],"events":[],"format":"date","data":[["2010-01-01T00:00:00.000Z","2010-02-01T00:00:00.000Z","2010-03-01T00:00:00.000Z","2010-04-01T00:00:00.000Z","2010-05-01T00:00:00.000Z","2010-06-01T00:00:00.000Z","2010-07-01T00:00:00.000Z","2010-08-01T00:00:00.000Z","2010-09-01T00:00:00.000Z","2010-10-01T00:00:00.000Z","2010-11-01T00:00:00.000Z","2010-12-01T00:00:00.000Z","2011-01-01T00:00:00.000Z","2011-02-01T00:00:00.000Z","2011-03-01T00:00:00.000Z","2011-04-01T00:00:00.000Z","2011-05-01T00:00:00.000Z","2011-06-01T00:00:00.000Z","2011-07-01T00:00:00.000Z","2011-08-01T00:00:00.000Z","2011-09-01T00:00:00.000Z","2011-10-01T00:00:00.000Z","2011-11-01T00:00:00.000Z","2011-12-01T00:00:00.000Z","2012-01-01T00:00:00.000Z","2012-02-01T00:00:00.000Z","2012-03-01T00:00:00.000Z","2012-04-01T00:00:00.000Z","2012-05-01T00:00:00.000Z","2012-06-01T00:00:00.000Z","2012-07-01T00:00:00.000Z","2012-08-01T00:00:00.000Z","2012-09-01T00:00:00.000Z","2012-10-01T00:00:00.000Z","2012-11-01T00:00:00.000Z","2012-12-01T00:00:00.000Z","2013-01-01T00:00:00.000Z","2013-02-01T00:00:00.000Z","2013-03-01T00:00:00.000Z","2013-04-01T00:00:00.000Z","2013-05-01T00:00:00.000Z","2013-06-01T00:00:00.000Z","2013-07-01T00:00:00.000Z","2013-08-01T00:00:00.000Z","2013-09-01T00:00:00.000Z","2013-10-01T00:00:00.000Z","2013-11-01T00:00:00.000Z","2013-12-01T00:00:00.000Z","2014-01-01T00:00:00.000Z","2014-02-01T00:00:00.000Z","2014-03-01T00:00:00.000Z","2014-04-01T00:00:00.000Z","2014-05-01T00:00:00.000Z","2014-06-01T00:00:00.000Z","2014-07-01T00:00:00.000Z","2014-08-01T00:00:00.000Z","2014-09-01T00:00:00.000Z","2014-10-01T00:00:00.000Z","2014-11-01T00:00:00.000Z","2014-12-01T00:00:00.000Z","2015-01-01T00:00:00.000Z","2015-02-01T00:00:00.000Z","2015-03-01T00:00:00.000Z","2015-04-01T00:00:00.000Z","2015-05-01T00:00:00.000Z","2015-06-01T00:00:00.000Z","2015-07-01T00:00:00.000Z","2015-08-01T00:00:00.000Z","2015-09-01T00:00:00.000Z","2015-10-01T00:00:00.000Z","2015-11-01T00:00:00.000Z","2015-12-01T00:00:00.000Z","2016-01-01T00:00:00.000Z","2016-02-01T00:00:00.000Z","2016-03-01T00:00:00.000Z","2016-04-01T00:00:00.000Z","2016-05-01T00:00:00.000Z","2016-06-01T00:00:00.000Z","2016-07-01T00:00:00.000Z","2016-08-01T00:00:00.000Z","2016-09-01T00:00:00.000Z","2016-10-01T00:00:00.000Z","2016-11-01T00:00:00.000Z","2016-12-01T00:00:00.000Z","2017-01-01T00:00:00.000Z","2017-02-01T00:00:00.000Z","2017-03-01T00:00:00.000Z","2017-04-01T00:00:00.000Z","2017-05-01T00:00:00.000Z","2017-06-01T00:00:00.000Z","2017-07-01T00:00:00.000Z","2017-08-01T00:00:00.000Z","2017-09-01T00:00:00.000Z","2017-10-01T00:00:00.000Z","2017-11-01T00:00:00.000Z","2017-12-01T00:00:00.000Z","2018-01-01T00:00:00.000Z","2018-02-01T00:00:00.000Z","2018-03-01T00:00:00.000Z","2018-04-01T00:00:00.000Z","2018-05-01T00:00:00.000Z","2018-06-01T00:00:00.000Z","2018-07-01T00:00:00.000Z","2018-08-01T00:00:00.000Z","2018-09-01T00:00:00.000Z","2018-10-01T00:00:00.000Z","2018-11-01T00:00:00.000Z","2018-12-01T00:00:00.000Z","2019-01-01T00:00:00.000Z","2019-02-01T00:00:00.000Z","2019-03-01T00:00:00.000Z","2019-04-01T00:00:00.000Z","2019-05-01T00:00:00.000Z","2019-06-01T00:00:00.000Z","2019-07-01T00:00:00.000Z","2019-08-01T00:00:00.000Z","2019-09-01T00:00:00.000Z"],[null,0,1.27826941986233,0.485436893203883,-0.483091787439616,-0.388349514563113,-1.07212475633528,-0.492610837438423,0.495049504950495,0,0.492610837438434,1.66666666666666,0,0.964320154291221,1.43266475644699,-3.6723163841808,2.24828934506354,-1.434034416826,-0.0969932104752602,-1.35922330097088,-1.77165354330708,-0.300601202404804,0.201005025125633,3.91173520561685,-5.69498069498069,0.409416581371547,0,-0.203873598368998,0.408580183861074,0.508646998982698,1.417004048583,2.49500998003993,-1.460564751704,0.494071146245068,-0.786627335299894,1.09018830525272,1.07843137254902,-2.52182347235693,1.7910447761194,1.66177908113392,-0.288461538461537,0.385728061716484,-1.15273775216137,0.194363459669566,0.872938894277397,-1.53846153846153,0.48828125,-3.01263362487854,1.60320641282565,0.493096646942792,-0.0981354268891121,-1.37524557956777,-1.59362549800798,-3.54251012145749,2.72822665267578,0.204290091930526,-0.101936799184499,0.204081632653064,-0.712830957230148,-2.97435897435898,0,-1.26849894291754,-0.749464668094224,-2.04962243797195,-0.770925110132159,-1.33185349611541,-1.34983127109112,0.456100342075239,-2.04313280363223,0.11587485515645,-1.62037037037037,-1.64705882352942,0.956937799043067,-3.31753554502371,3.18627450980393,0.11876484560569,-0.118623962040321,-0.475059382422804,0.357995226730301,-1.78359096313913,0.968523002421318,-1.31894484412471,0.121506682867567,1.21359223300972,0.359712230215825,0.358422939068093,-0.476190476190486,-0.83732057416267,1.56815440289506,0.950118764845609,0.823529411764712,0.116686114352382,0.815850815850827,0.346820809248549,0.691244239631339,3.77574370709381,-3.08710033076075,-1.59271899886235,1.6184971098266,0.227531285551752,-11.9182746878547,14.0463917525773,-0.225988700564972,-0.566251415628538,-1.93621867881549,0,-0.232288037166073,-0.232828870779977,0.116686114352382,0.815850815850827,-0.346820809248549,1.27610208816704,-0.687285223367695,-0.807381776239913,-0.465116279069777,0.467289719626174,0.930232558139532],[null,1.0548523206751,3.02713987473904,-0.405268490374877,-0.915564598168861,-0.616016427104726,1.75619834710745,0.406091370558381,3.33670374115267,-3.62035225048924,1.11675126903552,0.401606425702816,0.099999999999989,-0.0999000999000965,-1.3,2.02634245187436,-0.49652432969215,0.598802395209574,-1.09126984126984,0,0.902708124373119,-0.994035785288272,3.21285140562249,-0.778210116731515,-8.52941176470589,10.8252947481243,-2.32108317214701,-0.594059405940583,2.49003984063745,-2.62390670553936,-0.399201596806398,-0.601202404809609,-2.62096774193549,7.97101449275364,-6.71140939597316,3.90544707091469,-5.63798219584568,-0.943396226415105,-1.58730158730159,0.967741935483879,0.212992545260904,3.08182784272051,-0.103092783505154,0.103199174406599,-0.9278350515464,4.05827263267431,0.2,-2.99401197604791,0.205761316872421,-1.129363449692,4.15368639667706,0.299102691924213,0.695825049701781,-0.394866732477783,2.77502477700693,1.73577627772421,0.758293838862567,1.3170272812794,-1.76415970287838,1.60680529300568,1.20930232558139,0.183823529411775,2.11009174311927,0.628930817610063,-2.94642857142857,0.735970561177557,-1.91780821917807,2.048417132216,-0.456204379562042,-1.83318056828597,-10.9243697478992,0,-5.13626834381552,6.74033149171269,-2.69151138716356,0.531914893617014,1.9047619047619,-0.519210799584635,1.67014613778707,0,1.5400410677618,-1.01112234580384,1.63432073544432,2.61306532663317,0.783545543584729,0.583090379008744,-1.25603864734299,0,-0.978473581213313,0.88932806324109,-1.56709108716944,-0.597014925373129,0.900900900900892,-0.595238095238093,0.399201596806376,-1.98807157057654,3.9553752535497,-4.78048780487805,3.17622950819674,-0.397219463753729,1.29611166500498,0.393700787401574,-0.784313725490193,-1.18577075098815,-0.5,3.01507537688441,-0.487804878048781,1.56862745098039,0.289575289575295,-14.8219441770934,-2.25988700564972,-9.24855491329479,7.64331210191083,3.07692307692307,5.8553386911596,6.39913232104121,-1.22324159021405]],"fixedtz":false,"tzone":"UTC"},"evals":["attrs.interactionModel"],"jsHooks":[]}</script></p>
<p>–</p>
<p><strong>Gráfico 4 - Produção Industrial - Variação mensal</strong> <div id="htmlwidget-88aa7cca0447b79189f8" style="width:800px;height:400px;" class="dygraphs html-widget"></div>
<script type="application/json" data-for="htmlwidget-88aa7cca0447b79189f8">{"x":{"attrs":{"labels":["month","PIM Total"],"retainDateWindow":false,"axes":{"x":{"pixelsPerLabel":60,"drawAxis":true},"y":{"drawAxis":true}},"colors":["#3689e6","#3689e6"],"series":{"PIM Total":{"axis":"y","strokeWidth":3,"plotter":"/**\n * Bar Chart plotter is adapted from http://dygraphs.com/tests/plotters.html\n */\nfunction barSeriesPlotter(e) {\n  var g = e.dygraph;\n  var ctx = e.drawingContext;\n  var points = e.points;\n  var axis = g.attr_(\"axis\", e.setName);\n  var y_bottom = g.toDomYCoord(0, axis == \"y2\" ? 1 : 0);\n\n  ctx.fillStyle = e.color;\n  ctx.strokeStyle = e.color;\n\n  // Find the minimum separation between x-values.\n  // This determines the bar width.\n  var min_sep = Infinity;\n  for (var i = 1; i < points.length; i++) {\n    var sep = points[i].canvasx - points[i - 1].canvasx;\n    if (sep < min_sep) min_sep = sep;\n  }\n  var bar_width = Math.floor(2.0 / 3 * min_sep);\n\n  // Do the actual plotting.\n  for (var i = 0; i < points.length; i++) {\n    var p = points[i];\n    var center_x = p.canvasx;\n\n    ctx.fillRect(center_x - bar_width / 2, p.canvasy,\n      bar_width, y_bottom - p.canvasy);\n\n    ctx.strokeRect(center_x - bar_width / 2, p.canvasy,\n      bar_width, y_bottom - p.canvasy);\n  }\n}\n"}},"stackedGraph":false,"fillGraph":false,"fillAlpha":0.15,"stepPlot":false,"drawPoints":false,"pointSize":1,"drawGapEdgePoints":false,"connectSeparatedPoints":false,"strokeWidth":1,"strokeBorderColor":"white","colorValue":0.5,"colorSaturation":1,"includeZero":false,"drawAxesAtZero":false,"logscale":false,"axisTickSize":3,"axisLineColor":"black","axisLineWidth":0.3,"axisLabelColor":"black","axisLabelFontSize":14,"axisLabelWidth":60,"drawGrid":true,"gridLineColor":"white","gridLineWidth":0.2,"rightGap":5,"digitsAfterDecimal":2,"labelsKMB":false,"labelsKMG2":false,"labelsUTC":false,"maxNumberWidth":6,"animatedZooms":false,"mobileDisableYTouch":true,"disableZoom":false,"legend":"always","labelsDivWidth":622,"labelsShowZeroValues":true,"labelsSeparateLines":false,"hideOverlayOnMouseOut":true,"showRangeSelector":true,"rangeSelectorHeight":30,"rangeSelectorPlotFillColor":"#abacae","rangeSelectorPlotStrokeColor":"#808FAB","interactionModel":"Dygraph.Interaction.defaultModel"},"scale":"monthly","annotations":[],"shadings":[],"events":[],"format":"date","data":[["2010-01-01T00:00:00.000Z","2010-02-01T00:00:00.000Z","2010-03-01T00:00:00.000Z","2010-04-01T00:00:00.000Z","2010-05-01T00:00:00.000Z","2010-06-01T00:00:00.000Z","2010-07-01T00:00:00.000Z","2010-08-01T00:00:00.000Z","2010-09-01T00:00:00.000Z","2010-10-01T00:00:00.000Z","2010-11-01T00:00:00.000Z","2010-12-01T00:00:00.000Z","2011-01-01T00:00:00.000Z","2011-02-01T00:00:00.000Z","2011-03-01T00:00:00.000Z","2011-04-01T00:00:00.000Z","2011-05-01T00:00:00.000Z","2011-06-01T00:00:00.000Z","2011-07-01T00:00:00.000Z","2011-08-01T00:00:00.000Z","2011-09-01T00:00:00.000Z","2011-10-01T00:00:00.000Z","2011-11-01T00:00:00.000Z","2011-12-01T00:00:00.000Z","2012-01-01T00:00:00.000Z","2012-02-01T00:00:00.000Z","2012-03-01T00:00:00.000Z","2012-04-01T00:00:00.000Z","2012-05-01T00:00:00.000Z","2012-06-01T00:00:00.000Z","2012-07-01T00:00:00.000Z","2012-08-01T00:00:00.000Z","2012-09-01T00:00:00.000Z","2012-10-01T00:00:00.000Z","2012-11-01T00:00:00.000Z","2012-12-01T00:00:00.000Z","2013-01-01T00:00:00.000Z","2013-02-01T00:00:00.000Z","2013-03-01T00:00:00.000Z","2013-04-01T00:00:00.000Z","2013-05-01T00:00:00.000Z","2013-06-01T00:00:00.000Z","2013-07-01T00:00:00.000Z","2013-08-01T00:00:00.000Z","2013-09-01T00:00:00.000Z","2013-10-01T00:00:00.000Z","2013-11-01T00:00:00.000Z","2013-12-01T00:00:00.000Z","2014-01-01T00:00:00.000Z","2014-02-01T00:00:00.000Z","2014-03-01T00:00:00.000Z","2014-04-01T00:00:00.000Z","2014-05-01T00:00:00.000Z","2014-06-01T00:00:00.000Z","2014-07-01T00:00:00.000Z","2014-08-01T00:00:00.000Z","2014-09-01T00:00:00.000Z","2014-10-01T00:00:00.000Z","2014-11-01T00:00:00.000Z","2014-12-01T00:00:00.000Z","2015-01-01T00:00:00.000Z","2015-02-01T00:00:00.000Z","2015-03-01T00:00:00.000Z","2015-04-01T00:00:00.000Z","2015-05-01T00:00:00.000Z","2015-06-01T00:00:00.000Z","2015-07-01T00:00:00.000Z","2015-08-01T00:00:00.000Z","2015-09-01T00:00:00.000Z","2015-10-01T00:00:00.000Z","2015-11-01T00:00:00.000Z","2015-12-01T00:00:00.000Z","2016-01-01T00:00:00.000Z","2016-02-01T00:00:00.000Z","2016-03-01T00:00:00.000Z","2016-04-01T00:00:00.000Z","2016-05-01T00:00:00.000Z","2016-06-01T00:00:00.000Z","2016-07-01T00:00:00.000Z","2016-08-01T00:00:00.000Z","2016-09-01T00:00:00.000Z","2016-10-01T00:00:00.000Z","2016-11-01T00:00:00.000Z","2016-12-01T00:00:00.000Z","2017-01-01T00:00:00.000Z","2017-02-01T00:00:00.000Z","2017-03-01T00:00:00.000Z","2017-04-01T00:00:00.000Z","2017-05-01T00:00:00.000Z","2017-06-01T00:00:00.000Z","2017-07-01T00:00:00.000Z","2017-08-01T00:00:00.000Z","2017-09-01T00:00:00.000Z","2017-10-01T00:00:00.000Z","2017-11-01T00:00:00.000Z","2017-12-01T00:00:00.000Z","2018-01-01T00:00:00.000Z","2018-02-01T00:00:00.000Z","2018-03-01T00:00:00.000Z","2018-04-01T00:00:00.000Z","2018-05-01T00:00:00.000Z","2018-06-01T00:00:00.000Z","2018-07-01T00:00:00.000Z","2018-08-01T00:00:00.000Z","2018-09-01T00:00:00.000Z","2018-10-01T00:00:00.000Z","2018-11-01T00:00:00.000Z","2018-12-01T00:00:00.000Z","2019-01-01T00:00:00.000Z","2019-02-01T00:00:00.000Z","2019-03-01T00:00:00.000Z","2019-04-01T00:00:00.000Z","2019-05-01T00:00:00.000Z","2019-06-01T00:00:00.000Z","2019-07-01T00:00:00.000Z","2019-08-01T00:00:00.000Z"],[2.8776978417266,2.94416243654823,2.64479410780045,2.89710289710292,1.38067061143985,0.163078930202243,-1.1326860841424,-1.16731517509729,-0.879192445457522,-0.0981996726677536,0.459317585301844,1.05124835742443,1.44167758846656,1.82887001959502,1.10533159947988,0.710594315245494,-0.641436818473373,-0.0321543408360214,-1.15458627325209,-1.42027114267269,-2.99131553554198,-2.85528877352369,-1.21152586771447,-0.464190981432344,0,-2.12131256214784,-1.39906728847434,-1.26920507682032,0.30477480528277,0.709459459459461,2.19891745602168,2.59959486833221,2.54948004025493,0.463422707712691,0.0329055610398088,-0.58881256133464,-0.16474464579902,-0.328947368421051,-0.0658111220796287,1.18811881188117,1.84818481848184,1.48172538689497,0.652315720808883,0.0972132209980492,0.259571706683981,0.097213220998027,-1.52152800258983,-2.1359223300971,-2.65458077047587,-0.394477317554232,0.0330687830687904,-0.232790156301965,-2.6072607260726,-3.07438016528925,-2.06666666666667,0.609962724500157,1.77353342428375,1.36147038801906,-1.04412260020209,-2.81501340482572,-3.69375419744795,-2.51872021783527,-2.24137931034484,-2.33612273361226,-3.49162011173184,-3.73897707231042,-3.21313816494109,-2.96671490593343,-2.27189446683767,-3.0616008852822,-3.35570469798657,-3.56205474315709,-2.6636225266362,-1.0030864197531,-0.544323483670295,0.273651290070376,-0.272798129384244,0.117279124315872,-1.01364522417154,-0.937866354044548,-1.83522061694652,-0.787711697518712,-0.31558185404339,1.7104216388226,2.93767368003177,2.69093787099328,1.25146656237778,-0.732741997686071,-0.269749518304452,0.579374275782163,1.55400155400154,1.27511591962908,0.844854070660506,0.9946442234124,2.06028233498665,2.32292460015233,1.93181818181818,-0.07476635514021,-0.260513583922595,-3.7160906726124,-2.7684249906472,-2.91044776119402,3.93670397529911,2.42400923432091,1.3066871637202,-2.74786483475676,-1.38993238166792,-0.531107738998482,0.229095074455898,-0.380952380952371,-0.381388253241799,-0.800000000000001,-0.49713193116635,-0.650842266462481,-0.230414746543761,0.269023827824744]],"fixedtz":false,"tzone":"UTC"},"evals":["attrs.series.PIM Total.plotter","attrs.interactionModel"],"jsHooks":[]}</script></p>
<p>–</p>
<p><strong>Gráfico 5 - Indústria de Transformação e Indústria Extrativa - Variação mensal</strong> <div id="htmlwidget-f0ab43df1324c20f51d2" style="width:800px;height:400px;" class="dygraphs html-widget"></div>
<script type="application/json" data-for="htmlwidget-f0ab43df1324c20f51d2">{"x":{"attrs":{"labels":["month","Transformação","Extrativa"],"retainDateWindow":false,"axes":{"x":{"pixelsPerLabel":60,"drawAxis":true},"y":{"drawAxis":true}},"colors":["#ed5353","#68b723"],"series":{"Transformação":{"axis":"y","strokeWidth":3},"Extrativa":{"axis":"y","strokeWidth":3}},"stackedGraph":false,"fillGraph":false,"fillAlpha":0.15,"stepPlot":false,"drawPoints":false,"pointSize":1,"drawGapEdgePoints":false,"connectSeparatedPoints":false,"strokeWidth":1,"strokeBorderColor":"white","colorValue":0.5,"colorSaturation":1,"includeZero":false,"drawAxesAtZero":false,"logscale":false,"axisTickSize":3,"axisLineColor":"black","axisLineWidth":0.3,"axisLabelColor":"black","axisLabelFontSize":14,"axisLabelWidth":60,"drawGrid":true,"gridLineColor":"white","gridLineWidth":0.2,"rightGap":5,"digitsAfterDecimal":2,"labelsKMB":false,"labelsKMG2":false,"labelsUTC":false,"maxNumberWidth":6,"animatedZooms":false,"mobileDisableYTouch":true,"disableZoom":false,"legend":"always","labelsDivWidth":622,"labelsShowZeroValues":true,"labelsSeparateLines":false,"hideOverlayOnMouseOut":true,"showRangeSelector":true,"rangeSelectorHeight":30,"rangeSelectorPlotFillColor":"#abacae","rangeSelectorPlotStrokeColor":"#808FAB","interactionModel":"Dygraph.Interaction.defaultModel"},"scale":"monthly","annotations":[],"shadings":[],"events":[],"format":"date","data":[["2010-01-01T00:00:00.000Z","2010-02-01T00:00:00.000Z","2010-03-01T00:00:00.000Z","2010-04-01T00:00:00.000Z","2010-05-01T00:00:00.000Z","2010-06-01T00:00:00.000Z","2010-07-01T00:00:00.000Z","2010-08-01T00:00:00.000Z","2010-09-01T00:00:00.000Z","2010-10-01T00:00:00.000Z","2010-11-01T00:00:00.000Z","2010-12-01T00:00:00.000Z","2011-01-01T00:00:00.000Z","2011-02-01T00:00:00.000Z","2011-03-01T00:00:00.000Z","2011-04-01T00:00:00.000Z","2011-05-01T00:00:00.000Z","2011-06-01T00:00:00.000Z","2011-07-01T00:00:00.000Z","2011-08-01T00:00:00.000Z","2011-09-01T00:00:00.000Z","2011-10-01T00:00:00.000Z","2011-11-01T00:00:00.000Z","2011-12-01T00:00:00.000Z","2012-01-01T00:00:00.000Z","2012-02-01T00:00:00.000Z","2012-03-01T00:00:00.000Z","2012-04-01T00:00:00.000Z","2012-05-01T00:00:00.000Z","2012-06-01T00:00:00.000Z","2012-07-01T00:00:00.000Z","2012-08-01T00:00:00.000Z","2012-09-01T00:00:00.000Z","2012-10-01T00:00:00.000Z","2012-11-01T00:00:00.000Z","2012-12-01T00:00:00.000Z","2013-01-01T00:00:00.000Z","2013-02-01T00:00:00.000Z","2013-03-01T00:00:00.000Z","2013-04-01T00:00:00.000Z","2013-05-01T00:00:00.000Z","2013-06-01T00:00:00.000Z","2013-07-01T00:00:00.000Z","2013-08-01T00:00:00.000Z","2013-09-01T00:00:00.000Z","2013-10-01T00:00:00.000Z","2013-11-01T00:00:00.000Z","2013-12-01T00:00:00.000Z","2014-01-01T00:00:00.000Z","2014-02-01T00:00:00.000Z","2014-03-01T00:00:00.000Z","2014-04-01T00:00:00.000Z","2014-05-01T00:00:00.000Z","2014-06-01T00:00:00.000Z","2014-07-01T00:00:00.000Z","2014-08-01T00:00:00.000Z","2014-09-01T00:00:00.000Z","2014-10-01T00:00:00.000Z","2014-11-01T00:00:00.000Z","2014-12-01T00:00:00.000Z","2015-01-01T00:00:00.000Z","2015-02-01T00:00:00.000Z","2015-03-01T00:00:00.000Z","2015-04-01T00:00:00.000Z","2015-05-01T00:00:00.000Z","2015-06-01T00:00:00.000Z","2015-07-01T00:00:00.000Z","2015-08-01T00:00:00.000Z","2015-09-01T00:00:00.000Z","2015-10-01T00:00:00.000Z","2015-11-01T00:00:00.000Z","2015-12-01T00:00:00.000Z","2016-01-01T00:00:00.000Z","2016-02-01T00:00:00.000Z","2016-03-01T00:00:00.000Z","2016-04-01T00:00:00.000Z","2016-05-01T00:00:00.000Z","2016-06-01T00:00:00.000Z","2016-07-01T00:00:00.000Z","2016-08-01T00:00:00.000Z","2016-09-01T00:00:00.000Z","2016-10-01T00:00:00.000Z","2016-11-01T00:00:00.000Z","2016-12-01T00:00:00.000Z","2017-01-01T00:00:00.000Z","2017-02-01T00:00:00.000Z","2017-03-01T00:00:00.000Z","2017-04-01T00:00:00.000Z","2017-05-01T00:00:00.000Z","2017-06-01T00:00:00.000Z","2017-07-01T00:00:00.000Z","2017-08-01T00:00:00.000Z","2017-09-01T00:00:00.000Z","2017-10-01T00:00:00.000Z","2017-11-01T00:00:00.000Z","2017-12-01T00:00:00.000Z","2018-01-01T00:00:00.000Z","2018-02-01T00:00:00.000Z","2018-03-01T00:00:00.000Z","2018-04-01T00:00:00.000Z","2018-05-01T00:00:00.000Z","2018-06-01T00:00:00.000Z","2018-07-01T00:00:00.000Z","2018-08-01T00:00:00.000Z","2018-09-01T00:00:00.000Z","2018-10-01T00:00:00.000Z","2018-11-01T00:00:00.000Z","2018-12-01T00:00:00.000Z","2019-01-01T00:00:00.000Z","2019-02-01T00:00:00.000Z","2019-03-01T00:00:00.000Z","2019-04-01T00:00:00.000Z","2019-05-01T00:00:00.000Z","2019-06-01T00:00:00.000Z","2019-07-01T00:00:00.000Z","2019-08-01T00:00:00.000Z"],[3.75554796858997,2.99159663865547,2.12060967528165,1.84271141822967,0.881201044386426,-0.356911096690471,-1.42164781906301,-1.64995147201554,-1.00944317811789,-0.0327761389708248,1.05263157894739,1.7763157894737,2.32786885245901,2.40885416666665,1.22818358112478,0.320410124959936,-1.46217418944693,-0.798212005108578,-1.72468859789205,-1.80645161290324,-3.15416800772449,-2.82742931426714,-0.525624178712203,0.0332336324360138,0.133779264214029,-2.93923381770147,-2.29235880398669,-1.70340681362724,0.374276964954068,1.08806528391703,2.51444104655114,3.08474576271187,2.79179280188362,0.696055684454744,0.16441959881619,0.130890052356003,0.592495062541154,0.426789231779368,0.261437908496731,1.43979057591621,1.92873488067997,1.27118644067798,0.0322580645161441,-0.577293136626056,-0.386224654007084,-0.257981296356014,-1.58064516129032,-1.74474959612277,-2.00452634982218,0,0,-0.692840646651283,-3.4742707309079,-3.97895429135154,-3.22259136212624,-0.169779286926997,0.78767123287673,0.823892893923794,-1.25850340136054,-2.58239891267416,-3.77936670071504,-3.30692387185669,-3.41820718521101,-3.18471337579618,-3.88314926968294,-3.6836403033586,-3.25292397660817,-2.85396590066715,-2.21222347206601,-2.64450321118247,-2.70888973674172,-2.99079754601228,-3.14318975552971,-1.88235294117647,-1.14624505928852,1.24198717948718,0.839328537170259,0.799680127948821,-0.87059754649782,-0.871977804201352,-1.50733835779454,-0.958083832335321,-0.799680127948821,0.483286347160705,1.20918984280531,1.28980249899233,0.400801603206413,-0.159299084030262,0.318344608038212,1.75648702594813,2.31352213801355,2.34034113447044,1.64770498234601,1.63742690058482,2.67441860465119,2.66306445387881,1.68776371308015,-0.981502453756145,-1.31578947368421,-4.33798566578649,-3.0880670987419,-3.08571428571429,4.33753943217665,3.14712824547598,2.20125786163523,-2.45653817082387,-1.71624713958807,-0.99999999999999,-0.0387446726075269,0.310438494373289,1.01010101010099,0.852713178294584,0.580270793036752,-0.653846153846149,-0.999231360491937,-0.615384615384629],[3.95271518285925,6.59543109801033,6.43402399127588,4.61975835110162,1.10611821638438,-0.0341530054644656,-0.0679347826086918,2.42735042735043,2.35736248718825,2.07341944255606,-0.50066755674234,0.0333778371161442,-0.0666000666000643,0.234820530023461,-0.100100100100098,-0.16661112962344,0.970548862115139,0.43420173680695,0.200267022696909,-0.563473649320512,-0.266045892916544,0.932711525649577,1.46666666666666,-0.600200066688894,-1.41914191419142,-2.20105124835741,2.24756793022478,1.87479075995984,1.94827007054081,-0.623359580052518,-1.67597765363129,-2.6029654036244,-0.924397490921103,-0.334224598930488,2.40189445196213,-2.09930023325557,-2.41448692152917,-6.54112983151635,-4.22055820285908,-3.43642611683849,0.742311770943793,2.3454157782516,3.52313167259786,1.75438596491229,1.77083333333332,1.85630800962531,2.55172413793101,0.580006823609702,-1.82247721903476,-1.1432414256893,0.814111261872452,3.88449639051223,2.99319727891156,2.92732166890981,2.61416280608868,4.19418758256276,4.44589735207586,3.12802321831664,1.74326465927099,0.813771517996864,1.7198248905566,2.52336448598129,3.16671841043155,2.05963725791578,0.334244910361603,-2.0162503761661,-1.65662650602411,-1.24167171411267,0.0614250614250356,-4.5635528330781,-8.64765409383624,-13.65868631062,-9.33889602053915,-5.63947633434039,1.35087095627442,0.814159292035388,1.95659907506225,1.54331813398809,2.0365168539326,2.47732030704817,1.62348877374783,1.96145905024088,1.97480422199523,3.50101971447996,4.11744853189335,3.03839732888149,1.11658456486041,-0.940032414910852,-1.00453661697992,-1.33160116921079,-1.01439790575918,-1.4075286415712,-0.954575378538502,-0.297520661157036,-0.597609561752988,0.2658690594882,-0.961538461538447,0.467601870407464,-1.02751077229036,1.3056578506863,1.03058510638299,2.07635632953784,0.198281559814939,-1.0529779532741,-0.918635170603654,0.263852242744056,2.46092450947788,2.48344370860927,-2.63157894736841,-9.4774423888348,-18.0936995153473,-15.7094594594595,-10.3262818214414,4.06311637080867,11.1823647294589,14.8340663734506]],"fixedtz":false,"tzone":"UTC"},"evals":["attrs.interactionModel"],"jsHooks":[]}</script></p>
<p>–</p>
<p><strong>Gráfico 6 - Indústria de Transformação e Indústria Extrativa - Variação mensal</strong> <div id="htmlwidget-cf885c36594a33ed249a" style="width:800px;height:400px;" class="dygraphs html-widget"></div>
<script type="application/json" data-for="htmlwidget-cf885c36594a33ed249a">{"x":{"attrs":{"labels":["month","Bens de Capital"],"retainDateWindow":false,"axes":{"x":{"pixelsPerLabel":60,"drawAxis":true},"y":{"drawAxis":true}},"colors":["#3689e6","#3689e6"],"series":{"Bens de Capital":{"axis":"y","strokeWidth":3}},"stackedGraph":false,"fillGraph":false,"fillAlpha":0.15,"stepPlot":false,"drawPoints":false,"pointSize":1,"drawGapEdgePoints":false,"connectSeparatedPoints":false,"strokeWidth":1,"strokeBorderColor":"white","colorValue":0.5,"colorSaturation":1,"includeZero":false,"drawAxesAtZero":false,"logscale":false,"axisTickSize":3,"axisLineColor":"black","axisLineWidth":0.3,"axisLabelColor":"black","axisLabelFontSize":14,"axisLabelWidth":60,"drawGrid":true,"gridLineColor":"white","gridLineWidth":0.2,"rightGap":5,"digitsAfterDecimal":2,"labelsKMB":false,"labelsKMG2":false,"labelsUTC":false,"maxNumberWidth":6,"animatedZooms":false,"mobileDisableYTouch":true,"disableZoom":false,"legend":"always","labelsDivWidth":622,"labelsShowZeroValues":true,"labelsSeparateLines":false,"hideOverlayOnMouseOut":true,"showRangeSelector":true,"rangeSelectorHeight":30,"rangeSelectorPlotFillColor":"#abacae","rangeSelectorPlotStrokeColor":"#808FAB","interactionModel":"Dygraph.Interaction.defaultModel"},"scale":"monthly","annotations":[],"shadings":[],"events":[],"format":"date","data":[["2010-01-01T00:00:00.000Z","2010-02-01T00:00:00.000Z","2010-03-01T00:00:00.000Z","2010-04-01T00:00:00.000Z","2010-05-01T00:00:00.000Z","2010-06-01T00:00:00.000Z","2010-07-01T00:00:00.000Z","2010-08-01T00:00:00.000Z","2010-09-01T00:00:00.000Z","2010-10-01T00:00:00.000Z","2010-11-01T00:00:00.000Z","2010-12-01T00:00:00.000Z","2011-01-01T00:00:00.000Z","2011-02-01T00:00:00.000Z","2011-03-01T00:00:00.000Z","2011-04-01T00:00:00.000Z","2011-05-01T00:00:00.000Z","2011-06-01T00:00:00.000Z","2011-07-01T00:00:00.000Z","2011-08-01T00:00:00.000Z","2011-09-01T00:00:00.000Z","2011-10-01T00:00:00.000Z","2011-11-01T00:00:00.000Z","2011-12-01T00:00:00.000Z","2012-01-01T00:00:00.000Z","2012-02-01T00:00:00.000Z","2012-03-01T00:00:00.000Z","2012-04-01T00:00:00.000Z","2012-05-01T00:00:00.000Z","2012-06-01T00:00:00.000Z","2012-07-01T00:00:00.000Z","2012-08-01T00:00:00.000Z","2012-09-01T00:00:00.000Z","2012-10-01T00:00:00.000Z","2012-11-01T00:00:00.000Z","2012-12-01T00:00:00.000Z","2013-01-01T00:00:00.000Z","2013-02-01T00:00:00.000Z","2013-03-01T00:00:00.000Z","2013-04-01T00:00:00.000Z","2013-05-01T00:00:00.000Z","2013-06-01T00:00:00.000Z","2013-07-01T00:00:00.000Z","2013-08-01T00:00:00.000Z","2013-09-01T00:00:00.000Z","2013-10-01T00:00:00.000Z","2013-11-01T00:00:00.000Z","2013-12-01T00:00:00.000Z","2014-01-01T00:00:00.000Z","2014-02-01T00:00:00.000Z","2014-03-01T00:00:00.000Z","2014-04-01T00:00:00.000Z","2014-05-01T00:00:00.000Z","2014-06-01T00:00:00.000Z","2014-07-01T00:00:00.000Z","2014-08-01T00:00:00.000Z","2014-09-01T00:00:00.000Z","2014-10-01T00:00:00.000Z","2014-11-01T00:00:00.000Z","2014-12-01T00:00:00.000Z","2015-01-01T00:00:00.000Z","2015-02-01T00:00:00.000Z","2015-03-01T00:00:00.000Z","2015-04-01T00:00:00.000Z","2015-05-01T00:00:00.000Z","2015-06-01T00:00:00.000Z","2015-07-01T00:00:00.000Z","2015-08-01T00:00:00.000Z","2015-09-01T00:00:00.000Z","2015-10-01T00:00:00.000Z","2015-11-01T00:00:00.000Z","2015-12-01T00:00:00.000Z","2016-01-01T00:00:00.000Z","2016-02-01T00:00:00.000Z","2016-03-01T00:00:00.000Z","2016-04-01T00:00:00.000Z","2016-05-01T00:00:00.000Z","2016-06-01T00:00:00.000Z","2016-07-01T00:00:00.000Z","2016-08-01T00:00:00.000Z","2016-09-01T00:00:00.000Z","2016-10-01T00:00:00.000Z","2016-11-01T00:00:00.000Z","2016-12-01T00:00:00.000Z","2017-01-01T00:00:00.000Z","2017-02-01T00:00:00.000Z","2017-03-01T00:00:00.000Z","2017-04-01T00:00:00.000Z","2017-05-01T00:00:00.000Z","2017-06-01T00:00:00.000Z","2017-07-01T00:00:00.000Z","2017-08-01T00:00:00.000Z","2017-09-01T00:00:00.000Z","2017-10-01T00:00:00.000Z","2017-11-01T00:00:00.000Z","2017-12-01T00:00:00.000Z","2018-01-01T00:00:00.000Z","2018-02-01T00:00:00.000Z","2018-03-01T00:00:00.000Z","2018-04-01T00:00:00.000Z","2018-05-01T00:00:00.000Z","2018-06-01T00:00:00.000Z","2018-07-01T00:00:00.000Z","2018-08-01T00:00:00.000Z","2018-09-01T00:00:00.000Z","2018-10-01T00:00:00.000Z","2018-11-01T00:00:00.000Z","2018-12-01T00:00:00.000Z","2019-01-01T00:00:00.000Z","2019-02-01T00:00:00.000Z","2019-03-01T00:00:00.000Z","2019-04-01T00:00:00.000Z","2019-05-01T00:00:00.000Z","2019-06-01T00:00:00.000Z","2019-07-01T00:00:00.000Z","2019-08-01T00:00:00.000Z","2019-09-01T00:00:00.000Z"],[102.9,102,104.4,107.8,110.4,107,106.4,106.9,108.4,108,111.6,110.7,110,111.4,114.3,109.7,115.2,115.8,115.9,115.3,110,109.9,110.8,116.7,88.6,104.2,103.2,103.1,101.2,99.9,101.6,102,98.7,99.5,95.8,100.3,106.7,112.1,112,116.4,112.2,117.7,111.9,114.4,119.5,115.8,111,93.7,109.6,111,108.9,105.2,101.8,92.9,100.8,101.7,102.4,102.7,102.7,81.5,94.7,89.9,85.7,81.9,78.1,73.9,73.6,68.4,71,70.4,69.4,55.8,64.7,65.5,67.4,68.2,71.5,69.7,69.1,68.1,67.9,67.1,69.3,67.3,67.4,71.5,68.8,69.2,70.4,72.9,73.9,73.6,74.2,75.2,75.6,77.6,77.8,77.4,79.6,80.1,65.3,80.7,76.4,81,79.9,81,77.4,74.1,72.6,76.7,77,79.4,79.6,79.4,79.2,79,78.6]],"fixedtz":false,"tzone":"UTC"},"evals":["attrs.interactionModel"],"jsHooks":[]}</script></p>
<p>–</p>
<p><strong>Gráfico 7 - Produção Industrial Total - Variação Anual</strong> <div id="htmlwidget-1a02e05366e289f20e00" style="width:800px;height:400px;" class="dygraphs html-widget"></div>
<script type="application/json" data-for="htmlwidget-1a02e05366e289f20e00">{"x":{"attrs":{"labels":["month","PIM Total"],"retainDateWindow":false,"axes":{"x":{"pixelsPerLabel":60,"drawAxis":true},"y":{"drawAxis":true}},"colors":["#3689e6","#3689e6"],"series":{"PIM Total":{"axis":"y","strokeWidth":3,"plotter":"/**\n * Bar Chart plotter is adapted from http://dygraphs.com/tests/plotters.html\n */\nfunction barSeriesPlotter(e) {\n  var g = e.dygraph;\n  var ctx = e.drawingContext;\n  var points = e.points;\n  var axis = g.attr_(\"axis\", e.setName);\n  var y_bottom = g.toDomYCoord(0, axis == \"y2\" ? 1 : 0);\n\n  ctx.fillStyle = e.color;\n  ctx.strokeStyle = e.color;\n\n  // Find the minimum separation between x-values.\n  // This determines the bar width.\n  var min_sep = Infinity;\n  for (var i = 1; i < points.length; i++) {\n    var sep = points[i].canvasx - points[i - 1].canvasx;\n    if (sep < min_sep) min_sep = sep;\n  }\n  var bar_width = Math.floor(2.0 / 3 * min_sep);\n\n  // Do the actual plotting.\n  for (var i = 0; i < points.length; i++) {\n    var p = points[i];\n    var center_x = p.canvasx;\n\n    ctx.fillRect(center_x - bar_width / 2, p.canvasy,\n      bar_width, y_bottom - p.canvasy);\n\n    ctx.strokeRect(center_x - bar_width / 2, p.canvasy,\n      bar_width, y_bottom - p.canvasy);\n  }\n}\n"}},"stackedGraph":false,"fillGraph":false,"fillAlpha":0.15,"stepPlot":false,"drawPoints":false,"pointSize":1,"drawGapEdgePoints":false,"connectSeparatedPoints":false,"strokeWidth":1,"strokeBorderColor":"white","colorValue":0.5,"colorSaturation":1,"includeZero":false,"drawAxesAtZero":false,"logscale":false,"axisTickSize":3,"axisLineColor":"black","axisLineWidth":0.3,"axisLabelColor":"black","axisLabelFontSize":14,"axisLabelWidth":60,"drawGrid":true,"gridLineColor":"white","gridLineWidth":0.2,"rightGap":5,"digitsAfterDecimal":2,"labelsKMB":false,"labelsKMG2":false,"labelsUTC":false,"maxNumberWidth":6,"animatedZooms":false,"mobileDisableYTouch":true,"disableZoom":false,"legend":"always","labelsDivWidth":622,"labelsShowZeroValues":true,"labelsSeparateLines":false,"hideOverlayOnMouseOut":true,"showRangeSelector":true,"rangeSelectorHeight":30,"rangeSelectorPlotFillColor":"#abacae","rangeSelectorPlotStrokeColor":"#808FAB","interactionModel":"Dygraph.Interaction.defaultModel"},"scale":"monthly","annotations":[],"shadings":[],"events":[],"format":"date","data":[["2010-01-01T00:00:00.000Z","2010-02-01T00:00:00.000Z","2010-03-01T00:00:00.000Z","2010-04-01T00:00:00.000Z","2010-05-01T00:00:00.000Z","2010-06-01T00:00:00.000Z","2010-07-01T00:00:00.000Z","2010-08-01T00:00:00.000Z","2010-09-01T00:00:00.000Z","2010-10-01T00:00:00.000Z","2010-11-01T00:00:00.000Z","2010-12-01T00:00:00.000Z","2011-01-01T00:00:00.000Z","2011-02-01T00:00:00.000Z","2011-03-01T00:00:00.000Z","2011-04-01T00:00:00.000Z","2011-05-01T00:00:00.000Z","2011-06-01T00:00:00.000Z","2011-07-01T00:00:00.000Z","2011-08-01T00:00:00.000Z","2011-09-01T00:00:00.000Z","2011-10-01T00:00:00.000Z","2011-11-01T00:00:00.000Z","2011-12-01T00:00:00.000Z","2012-01-01T00:00:00.000Z","2012-02-01T00:00:00.000Z","2012-03-01T00:00:00.000Z","2012-04-01T00:00:00.000Z","2012-05-01T00:00:00.000Z","2012-06-01T00:00:00.000Z","2012-07-01T00:00:00.000Z","2012-08-01T00:00:00.000Z","2012-09-01T00:00:00.000Z","2012-10-01T00:00:00.000Z","2012-11-01T00:00:00.000Z","2012-12-01T00:00:00.000Z","2013-01-01T00:00:00.000Z","2013-02-01T00:00:00.000Z","2013-03-01T00:00:00.000Z","2013-04-01T00:00:00.000Z","2013-05-01T00:00:00.000Z","2013-06-01T00:00:00.000Z","2013-07-01T00:00:00.000Z","2013-08-01T00:00:00.000Z","2013-09-01T00:00:00.000Z","2013-10-01T00:00:00.000Z","2013-11-01T00:00:00.000Z","2013-12-01T00:00:00.000Z","2014-01-01T00:00:00.000Z","2014-02-01T00:00:00.000Z","2014-03-01T00:00:00.000Z","2014-04-01T00:00:00.000Z","2014-05-01T00:00:00.000Z","2014-06-01T00:00:00.000Z","2014-07-01T00:00:00.000Z","2014-08-01T00:00:00.000Z","2014-09-01T00:00:00.000Z","2014-10-01T00:00:00.000Z","2014-11-01T00:00:00.000Z","2014-12-01T00:00:00.000Z","2015-01-01T00:00:00.000Z","2015-02-01T00:00:00.000Z","2015-03-01T00:00:00.000Z","2015-04-01T00:00:00.000Z","2015-05-01T00:00:00.000Z","2015-06-01T00:00:00.000Z","2015-07-01T00:00:00.000Z","2015-08-01T00:00:00.000Z","2015-09-01T00:00:00.000Z","2015-10-01T00:00:00.000Z","2015-11-01T00:00:00.000Z","2015-12-01T00:00:00.000Z","2016-01-01T00:00:00.000Z","2016-02-01T00:00:00.000Z","2016-03-01T00:00:00.000Z","2016-04-01T00:00:00.000Z","2016-05-01T00:00:00.000Z","2016-06-01T00:00:00.000Z","2016-07-01T00:00:00.000Z","2016-08-01T00:00:00.000Z","2016-09-01T00:00:00.000Z","2016-10-01T00:00:00.000Z","2016-11-01T00:00:00.000Z","2016-12-01T00:00:00.000Z","2017-01-01T00:00:00.000Z","2017-02-01T00:00:00.000Z","2017-03-01T00:00:00.000Z","2017-04-01T00:00:00.000Z","2017-05-01T00:00:00.000Z","2017-06-01T00:00:00.000Z","2017-07-01T00:00:00.000Z","2017-08-01T00:00:00.000Z","2017-09-01T00:00:00.000Z","2017-10-01T00:00:00.000Z","2017-11-01T00:00:00.000Z","2017-12-01T00:00:00.000Z","2018-01-01T00:00:00.000Z","2018-02-01T00:00:00.000Z","2018-03-01T00:00:00.000Z","2018-04-01T00:00:00.000Z","2018-05-01T00:00:00.000Z","2018-06-01T00:00:00.000Z","2018-07-01T00:00:00.000Z","2018-08-01T00:00:00.000Z","2018-09-01T00:00:00.000Z","2018-10-01T00:00:00.000Z","2018-11-01T00:00:00.000Z","2018-12-01T00:00:00.000Z","2019-01-01T00:00:00.000Z","2019-02-01T00:00:00.000Z","2019-03-01T00:00:00.000Z","2019-04-01T00:00:00.000Z","2019-05-01T00:00:00.000Z","2019-06-01T00:00:00.000Z","2019-07-01T00:00:00.000Z","2019-08-01T00:00:00.000Z","2019-09-01T00:00:00.000Z"],[15.8831003811944,16.9513797634691,18.6230248306998,16.5492957746479,14.2387732749178,11.1713665943601,9.41658137154555,8.53413654618473,6.43863179074446,1.98863636363638,5.32544378698223,2.6567481402763,2.19298245614035,7.19101123595507,-0.666032350142709,-1.81268882175226,2.68456375838926,0.292682926829269,-0.748362956033688,2.49768732654949,-0.945179584120981,-1.29990714948933,-2.43445692883895,-0.931677018633537,-4.82832618025751,-5.8700209643606,-4.50191570881227,-4.82051282051282,-4.29505135387488,-4.37743190661478,-1.50801131008482,0.631768953068601,-1.33587786259541,5.17403574788335,0.575815738963525,-3.65726227795193,6.53889515219841,-1.89309576837416,-2.00601805416248,9.69827586206897,2.4390243902439,3.4587995930824,3.34928229665072,0.448430493273544,3.77176015473888,0.715563506261185,1.24045801526718,-2.27765726681128,-2.01058201058202,4.76730987514189,-0.409416581371547,-5.69744597249509,-3.14285714285714,-6.68633235004916,-3.33333333333333,-5.08928571428572,-1.58434296365331,-2.93072824156305,-5.937794533459,-2.66370699223084,-4.85961123110151,-9.31744312026002,-3.08324768756424,-7.50000000000001,-8.45624385447396,-2.52897787144363,-8.52490421455939,-8.18438381937911,-10.7007575757576,-11.0704483074108,-12.2244488977956,-11.9726339794755,-13.3938706015891,-9.43847072879331,-11.2407211028632,-6.53153153153153,-7.30397422126745,-5.18918918918918,-6.1780104712042,-4.71311475409836,-3.81760339342523,-7.20164609053497,-1.25570776255707,0,2.09698558322413,0.13192612137205,2.0310633213859,-4.45783132530121,4.40324449594438,0.798175598631712,2.79017857142858,3.97849462365591,2.53583241455346,5.43237250554323,4.73988439306359,4.92227979274611,5.51989730423619,1.84453227931487,1.05386416861826,9.07944514501893,-6.32630410654826,2.94117647058822,4.01737242128122,1.5511892450879,-2.47311827956989,0.736067297581489,-1.21412803532008,-3.82716049382715,-1.94647201946473,2.19922380336353,-6.14136732329085,-3.69942196531792,7.58293838862558,-5.82417582417583,-2.50521920668058,-2.03665987780041,1.10253583241455]],"fixedtz":false,"tzone":"UTC"},"evals":["attrs.series.PIM Total.plotter","attrs.interactionModel"],"jsHooks":[]}</script></p>
<p>–</p>
<p><strong>Gráfico 8 - Indústria de Transformação e Indústria Extrativa - Variação anual</strong> <div id="htmlwidget-4cf869148b82dd50e02e" style="width:800px;height:400px;" class="dygraphs html-widget"></div>
<script type="application/json" data-for="htmlwidget-4cf869148b82dd50e02e">{"x":{"attrs":{"labels":["month","Transformação","Extrativa"],"retainDateWindow":false,"axes":{"x":{"pixelsPerLabel":60,"drawAxis":true},"y":{"drawAxis":true}},"colors":["#ed5353","#68b723"],"series":{"Transformação":{"axis":"y","strokeWidth":3},"Extrativa":{"axis":"y","strokeWidth":3}},"stackedGraph":false,"fillGraph":false,"fillAlpha":0.15,"stepPlot":false,"drawPoints":false,"pointSize":1,"drawGapEdgePoints":false,"connectSeparatedPoints":false,"strokeWidth":1,"strokeBorderColor":"white","colorValue":0.5,"colorSaturation":1,"includeZero":false,"drawAxesAtZero":false,"logscale":false,"axisTickSize":3,"axisLineColor":"black","axisLineWidth":0.3,"axisLabelColor":"black","axisLabelFontSize":14,"axisLabelWidth":60,"drawGrid":true,"gridLineColor":"white","gridLineWidth":0.2,"rightGap":5,"digitsAfterDecimal":2,"labelsKMB":false,"labelsKMG2":false,"labelsUTC":false,"maxNumberWidth":6,"animatedZooms":false,"mobileDisableYTouch":true,"disableZoom":false,"legend":"always","labelsDivWidth":622,"labelsShowZeroValues":true,"labelsSeparateLines":false,"hideOverlayOnMouseOut":true,"showRangeSelector":true,"rangeSelectorHeight":30,"rangeSelectorPlotFillColor":"#abacae","rangeSelectorPlotStrokeColor":"#808FAB","interactionModel":"Dygraph.Interaction.defaultModel"},"scale":"monthly","annotations":[],"shadings":[],"events":[],"format":"date","data":[["2010-01-01T00:00:00.000Z","2010-02-01T00:00:00.000Z","2010-03-01T00:00:00.000Z","2010-04-01T00:00:00.000Z","2010-05-01T00:00:00.000Z","2010-06-01T00:00:00.000Z","2010-07-01T00:00:00.000Z","2010-08-01T00:00:00.000Z","2010-09-01T00:00:00.000Z","2010-10-01T00:00:00.000Z","2010-11-01T00:00:00.000Z","2010-12-01T00:00:00.000Z","2011-01-01T00:00:00.000Z","2011-02-01T00:00:00.000Z","2011-03-01T00:00:00.000Z","2011-04-01T00:00:00.000Z","2011-05-01T00:00:00.000Z","2011-06-01T00:00:00.000Z","2011-07-01T00:00:00.000Z","2011-08-01T00:00:00.000Z","2011-09-01T00:00:00.000Z","2011-10-01T00:00:00.000Z","2011-11-01T00:00:00.000Z","2011-12-01T00:00:00.000Z","2012-01-01T00:00:00.000Z","2012-02-01T00:00:00.000Z","2012-03-01T00:00:00.000Z","2012-04-01T00:00:00.000Z","2012-05-01T00:00:00.000Z","2012-06-01T00:00:00.000Z","2012-07-01T00:00:00.000Z","2012-08-01T00:00:00.000Z","2012-09-01T00:00:00.000Z","2012-10-01T00:00:00.000Z","2012-11-01T00:00:00.000Z","2012-12-01T00:00:00.000Z","2013-01-01T00:00:00.000Z","2013-02-01T00:00:00.000Z","2013-03-01T00:00:00.000Z","2013-04-01T00:00:00.000Z","2013-05-01T00:00:00.000Z","2013-06-01T00:00:00.000Z","2013-07-01T00:00:00.000Z","2013-08-01T00:00:00.000Z","2013-09-01T00:00:00.000Z","2013-10-01T00:00:00.000Z","2013-11-01T00:00:00.000Z","2013-12-01T00:00:00.000Z","2014-01-01T00:00:00.000Z","2014-02-01T00:00:00.000Z","2014-03-01T00:00:00.000Z","2014-04-01T00:00:00.000Z","2014-05-01T00:00:00.000Z","2014-06-01T00:00:00.000Z","2014-07-01T00:00:00.000Z","2014-08-01T00:00:00.000Z","2014-09-01T00:00:00.000Z","2014-10-01T00:00:00.000Z","2014-11-01T00:00:00.000Z","2014-12-01T00:00:00.000Z","2015-01-01T00:00:00.000Z","2015-02-01T00:00:00.000Z","2015-03-01T00:00:00.000Z","2015-04-01T00:00:00.000Z","2015-05-01T00:00:00.000Z","2015-06-01T00:00:00.000Z","2015-07-01T00:00:00.000Z","2015-08-01T00:00:00.000Z","2015-09-01T00:00:00.000Z","2015-10-01T00:00:00.000Z","2015-11-01T00:00:00.000Z","2015-12-01T00:00:00.000Z","2016-01-01T00:00:00.000Z","2016-02-01T00:00:00.000Z","2016-03-01T00:00:00.000Z","2016-04-01T00:00:00.000Z","2016-05-01T00:00:00.000Z","2016-06-01T00:00:00.000Z","2016-07-01T00:00:00.000Z","2016-08-01T00:00:00.000Z","2016-09-01T00:00:00.000Z","2016-10-01T00:00:00.000Z","2016-11-01T00:00:00.000Z","2016-12-01T00:00:00.000Z","2017-01-01T00:00:00.000Z","2017-02-01T00:00:00.000Z","2017-03-01T00:00:00.000Z","2017-04-01T00:00:00.000Z","2017-05-01T00:00:00.000Z","2017-06-01T00:00:00.000Z","2017-07-01T00:00:00.000Z","2017-08-01T00:00:00.000Z","2017-09-01T00:00:00.000Z","2017-10-01T00:00:00.000Z","2017-11-01T00:00:00.000Z","2017-12-01T00:00:00.000Z","2018-01-01T00:00:00.000Z","2018-02-01T00:00:00.000Z","2018-03-01T00:00:00.000Z","2018-04-01T00:00:00.000Z","2018-05-01T00:00:00.000Z","2018-06-01T00:00:00.000Z","2018-07-01T00:00:00.000Z","2018-08-01T00:00:00.000Z","2018-09-01T00:00:00.000Z","2018-10-01T00:00:00.000Z","2018-11-01T00:00:00.000Z","2018-12-01T00:00:00.000Z","2019-01-01T00:00:00.000Z","2019-02-01T00:00:00.000Z","2019-03-01T00:00:00.000Z","2019-04-01T00:00:00.000Z","2019-05-01T00:00:00.000Z","2019-06-01T00:00:00.000Z","2019-07-01T00:00:00.000Z","2019-08-01T00:00:00.000Z","2019-09-01T00:00:00.000Z"],[15.6289707750953,16.7758846657929,18.9189189189189,16.4912280701754,14.1921397379913,11.2554112554113,9.28571428571427,8.40000000000001,6.00000000000001,1.69172932330828,4.99021526418786,2.12314225053079,1.97802197802197,7.40740740740742,-0.757575757575757,-2.00803212851406,2.67686424474189,0.0972762645914393,-0.840336134453779,2.58302583025829,-0.943396226415094,-1.57116451016636,-2.79589934762349,-1.14345114345116,-4.95689655172413,-6.58307210031348,-4.77099236641222,-5.43032786885246,-4.8417132216015,-4.76190476190477,-1.50659133709982,1.16906474820144,-0.761904761904764,5.44600938967137,1.43815915627996,-4.52155625657202,7.14285714285714,-1.11856823266219,-1.10220440881763,11.8093174431203,3.91389432485323,4.38775510204081,4.20650095602295,0.711111111111107,4.22264875239922,1.246660730187,1.03969754253308,-2.09251101321585,-2.43386243386243,5.20361990950227,-1.41843971631206,-6.97674418604651,-4.33145009416197,-8.01564027370479,-4.49541284403671,-6.61959399823477,-3.03867403314917,-4.22163588390501,-7.29653882132836,-4.61192350956131,-7.04989154013015,-11.9354838709677,-4.72764645426516,-9.89583333333334,-10.5314960629921,-4.03825717321997,-10.1825168107589,-9.82986767485822,-12.3456790123457,-12.3048668503214,-12.6135216952573,-12.0283018867925,-12.9521586931155,-9.15750915750916,-10.6796116504854,-5.08670520231215,-6.71067106710672,-4.09745293466224,-5.66844919786096,-3.66876310272537,-3.14192849404116,-7.12041884816753,-2.0785219399538,-1.20643431635388,0.402144772117974,-0.940860215053763,1.08695652173914,-5.96833130328867,4.24528301886793,0.11547344110856,2.72108843537413,4.13492927094667,2.68456375838926,5.97519729425027,5.4245283018868,6.37720488466758,6.54205607476634,2.98507462686568,1.5531660692951,10.6217616580311,-7.35294117647058,3.34486735870818,4.41501103752759,1.8808777429467,-2.50544662309368,0.425531914893629,-1.67785234899329,-5.2295918367347,-2.5062656641604,3.95256916996047,-5.1764705882353,-1.05386416861827,11.4774114774115,-4.57589285714285,-1.69133192389006,-2.15384615384615,1.56424581005588],[21.3917525773196,20.891364902507,15.2019002375297,17.5742574257426,15.6908665105386,9.31537598204266,10.2564102564103,10.7066381156317,13.5911602209945,8.62068965517242,11.5990990990991,10.3896103896104,5.52016985138004,4.49308755760369,0,1.57894736842106,2.93522267206479,3.90143737166324,0.968992248062017,0.870406189555117,-1.36186770428015,1.88492063492065,3.53178607467204,2.15686274509803,-7.04225352112676,3.1973539140022,1.64948453608247,-0.310880829015536,2.55653883972466,-0.69169960474309,-0.287907869481763,-0.287631831255986,-3.84615384615385,5.25803310613437,-5.16569200779727,-0.671785028790794,2.05627705627704,-8.76068376068375,-9.12778904665315,-5.82120582120583,-8.4372003835091,-3.38308457711444,-3.17613089509144,-2.01923076923076,-0.307692307692309,-3.79278445883441,2.98047276464544,-3.47826086956521,2.01484623541888,1.63934426229506,8.8169642857143,5.84988962472408,7.64397905759162,4.11946446961895,6.75944333996026,8.83218842001963,10.8024691358025,7.88461538461538,5.48902195608783,10.7107107107107,11.6424116424116,13.0184331797235,10.4615384615385,11.6788321167883,7.49027237354085,8.6053412462908,3.63128491620111,3.69702434625789,2.78551532033426,-0.623885918003564,-9.93377483443708,-11.121157323689,-16.6666666666667,-11.3149847094801,-15.9702878365831,-15.499533146592,-11.2217194570136,-12.3861566484517,-9.25426774483378,-11.4782608695652,-9.30442637759711,-8.69955156950672,4.41176470588236,7.12105798575788,13.854748603352,7.1264367816092,9.6132596685083,6.62983425414365,5.50458715596331,6.54885654885655,3.36633663366337,2.35756385068764,1.89243027888446,2.35756385068764,1.10663983903421,-3.41880341880342,-0.196270853778213,-5.5793991416309,-2.72177419354839,-1.24352331606218,0.579710144927525,0,1.05363984674329,0,-1.3685239491691,2.39923224568137,1.49253731343284,5.01474926253687,1.27826941986233,-9.31818181818183,-13.3678756476684,-22.7701993704092,-16.7146974063401,-14.6341463414634,-8.72037914691943,-1.9193857965451,-2.67591674925669]],"fixedtz":false,"tzone":"UTC"},"evals":["attrs.interactionModel"],"jsHooks":[]}</script></p>
<p>–</p>
<p><strong>Gráfico 9 - Indústria de Transformação e Indústria Extrativa - Variação mensal</strong> <div id="htmlwidget-7ed76e9b7739d4b4c19f" style="width:800px;height:400px;" class="dygraphs html-widget"></div>
<script type="application/json" data-for="htmlwidget-7ed76e9b7739d4b4c19f">{"x":{"attrs":{"labels":["month","PIM Total"],"retainDateWindow":false,"axes":{"x":{"pixelsPerLabel":60,"drawAxis":true},"y":{"drawAxis":true}},"colors":["#3689e6","#3689e6"],"series":{"PIM Total":{"axis":"y","strokeWidth":3,"plotter":"/**\n * Bar Chart plotter is adapted from http://dygraphs.com/tests/plotters.html\n */\nfunction barSeriesPlotter(e) {\n  var g = e.dygraph;\n  var ctx = e.drawingContext;\n  var points = e.points;\n  var axis = g.attr_(\"axis\", e.setName);\n  var y_bottom = g.toDomYCoord(0, axis == \"y2\" ? 1 : 0);\n\n  ctx.fillStyle = e.color;\n  ctx.strokeStyle = e.color;\n\n  // Find the minimum separation between x-values.\n  // This determines the bar width.\n  var min_sep = Infinity;\n  for (var i = 1; i < points.length; i++) {\n    var sep = points[i].canvasx - points[i - 1].canvasx;\n    if (sep < min_sep) min_sep = sep;\n  }\n  var bar_width = Math.floor(2.0 / 3 * min_sep);\n\n  // Do the actual plotting.\n  for (var i = 0; i < points.length; i++) {\n    var p = points[i];\n    var center_x = p.canvasx;\n\n    ctx.fillRect(center_x - bar_width / 2, p.canvasy,\n      bar_width, y_bottom - p.canvasy);\n\n    ctx.strokeRect(center_x - bar_width / 2, p.canvasy,\n      bar_width, y_bottom - p.canvasy);\n  }\n}\n"}},"stackedGraph":false,"fillGraph":false,"fillAlpha":0.15,"stepPlot":false,"drawPoints":false,"pointSize":1,"drawGapEdgePoints":false,"connectSeparatedPoints":false,"strokeWidth":1,"strokeBorderColor":"white","colorValue":0.5,"colorSaturation":1,"includeZero":false,"drawAxesAtZero":false,"logscale":false,"axisTickSize":3,"axisLineColor":"black","axisLineWidth":0.3,"axisLabelColor":"black","axisLabelFontSize":14,"axisLabelWidth":60,"drawGrid":true,"gridLineColor":"white","gridLineWidth":0.2,"rightGap":5,"digitsAfterDecimal":2,"labelsKMB":false,"labelsKMG2":false,"labelsUTC":false,"maxNumberWidth":6,"animatedZooms":false,"mobileDisableYTouch":true,"disableZoom":false,"legend":"always","labelsDivWidth":622,"labelsShowZeroValues":true,"labelsSeparateLines":false,"hideOverlayOnMouseOut":true,"showRangeSelector":true,"rangeSelectorHeight":30,"rangeSelectorPlotFillColor":"#abacae","rangeSelectorPlotStrokeColor":"#808FAB","interactionModel":"Dygraph.Interaction.defaultModel"},"scale":"monthly","annotations":[],"shadings":[],"events":[],"format":"date","data":[["2010-01-01T00:00:00.000Z","2010-02-01T00:00:00.000Z","2010-03-01T00:00:00.000Z","2010-04-01T00:00:00.000Z","2010-05-01T00:00:00.000Z","2010-06-01T00:00:00.000Z","2010-07-01T00:00:00.000Z","2010-08-01T00:00:00.000Z","2010-09-01T00:00:00.000Z","2010-10-01T00:00:00.000Z","2010-11-01T00:00:00.000Z","2010-12-01T00:00:00.000Z","2011-01-01T00:00:00.000Z","2011-02-01T00:00:00.000Z","2011-03-01T00:00:00.000Z","2011-04-01T00:00:00.000Z","2011-05-01T00:00:00.000Z","2011-06-01T00:00:00.000Z","2011-07-01T00:00:00.000Z","2011-08-01T00:00:00.000Z","2011-09-01T00:00:00.000Z","2011-10-01T00:00:00.000Z","2011-11-01T00:00:00.000Z","2011-12-01T00:00:00.000Z","2012-01-01T00:00:00.000Z","2012-02-01T00:00:00.000Z","2012-03-01T00:00:00.000Z","2012-04-01T00:00:00.000Z","2012-05-01T00:00:00.000Z","2012-06-01T00:00:00.000Z","2012-07-01T00:00:00.000Z","2012-08-01T00:00:00.000Z","2012-09-01T00:00:00.000Z","2012-10-01T00:00:00.000Z","2012-11-01T00:00:00.000Z","2012-12-01T00:00:00.000Z","2013-01-01T00:00:00.000Z","2013-02-01T00:00:00.000Z","2013-03-01T00:00:00.000Z","2013-04-01T00:00:00.000Z","2013-05-01T00:00:00.000Z","2013-06-01T00:00:00.000Z","2013-07-01T00:00:00.000Z","2013-08-01T00:00:00.000Z","2013-09-01T00:00:00.000Z","2013-10-01T00:00:00.000Z","2013-11-01T00:00:00.000Z","2013-12-01T00:00:00.000Z","2014-01-01T00:00:00.000Z","2014-02-01T00:00:00.000Z","2014-03-01T00:00:00.000Z","2014-04-01T00:00:00.000Z","2014-05-01T00:00:00.000Z","2014-06-01T00:00:00.000Z","2014-07-01T00:00:00.000Z","2014-08-01T00:00:00.000Z","2014-09-01T00:00:00.000Z","2014-10-01T00:00:00.000Z","2014-11-01T00:00:00.000Z","2014-12-01T00:00:00.000Z","2015-01-01T00:00:00.000Z","2015-02-01T00:00:00.000Z","2015-03-01T00:00:00.000Z","2015-04-01T00:00:00.000Z","2015-05-01T00:00:00.000Z","2015-06-01T00:00:00.000Z","2015-07-01T00:00:00.000Z","2015-08-01T00:00:00.000Z","2015-09-01T00:00:00.000Z","2015-10-01T00:00:00.000Z","2015-11-01T00:00:00.000Z","2015-12-01T00:00:00.000Z","2016-01-01T00:00:00.000Z","2016-02-01T00:00:00.000Z","2016-03-01T00:00:00.000Z","2016-04-01T00:00:00.000Z","2016-05-01T00:00:00.000Z","2016-06-01T00:00:00.000Z","2016-07-01T00:00:00.000Z","2016-08-01T00:00:00.000Z","2016-09-01T00:00:00.000Z","2016-10-01T00:00:00.000Z","2016-11-01T00:00:00.000Z","2016-12-01T00:00:00.000Z","2017-01-01T00:00:00.000Z","2017-02-01T00:00:00.000Z","2017-03-01T00:00:00.000Z","2017-04-01T00:00:00.000Z","2017-05-01T00:00:00.000Z","2017-06-01T00:00:00.000Z","2017-07-01T00:00:00.000Z","2017-08-01T00:00:00.000Z","2017-09-01T00:00:00.000Z","2017-10-01T00:00:00.000Z","2017-11-01T00:00:00.000Z","2017-12-01T00:00:00.000Z","2018-01-01T00:00:00.000Z","2018-02-01T00:00:00.000Z","2018-03-01T00:00:00.000Z","2018-04-01T00:00:00.000Z","2018-05-01T00:00:00.000Z","2018-06-01T00:00:00.000Z","2018-07-01T00:00:00.000Z","2018-08-01T00:00:00.000Z","2018-09-01T00:00:00.000Z","2018-10-01T00:00:00.000Z","2018-11-01T00:00:00.000Z","2018-12-01T00:00:00.000Z","2019-01-01T00:00:00.000Z","2019-02-01T00:00:00.000Z","2019-03-01T00:00:00.000Z","2019-04-01T00:00:00.000Z","2019-05-01T00:00:00.000Z","2019-06-01T00:00:00.000Z","2019-07-01T00:00:00.000Z","2019-08-01T00:00:00.000Z"],[17.272338606242,17.21446179129,17.406962785114,16.4466239155036,13.9188686267212,11.5576102418208,9.67184801381693,8.12268284462421,5.5810899540381,4.53655352480418,3.32115576220524,3.45308685036623,3.97375136711631,2.69891342446551,1.32924335378324,0.0971817298347943,0.424697811172825,0.733184571246404,0.692913385826777,0.280548628428945,0.0932835820895539,-1.56103652825477,-1.57505625200899,-2.69723533378287,-3.8569424964937,-5.05119453924915,-5.04540867810296,-4.53074433656958,-4.48926480156148,-3.3860759493671,-1.68908351579607,-0.714951818464415,1.49114631873253,1.49064383127182,0.849118223383405,1.00485100485102,0.218818380743979,0.754852624011493,1.87743535246194,3.22033898305085,5.07493188010899,3.0789387487717,2.35443843461662,2.47338760175329,1.59167431894705,1.875,0,-0.926243567753027,0.0727802037846059,0.677845165893687,-0.695410292072329,-3.11986863711002,-5.15397082658021,-4.35335239911026,-5.00466272925085,-3.36083104185761,-3.22386260921964,-3.46625766871167,-3.8860103626943,-4.57063711911356,-5.63636363636364,-5.70517363571935,-6.58263305322129,-6.3728813559322,-6.22009569377993,-6.61129568106313,-6.54450261780106,-9.13689535251343,-9.99377334993774,-11.3123609787099,-11.7250673854447,-12.5181422351234,-11.6377649325626,-11.3866967305524,-9.1079460269865,-8.39971035481535,-6.3411078717201,-6.22554251156172,-5.35714285714287,-4.90605427974949,-5.25769629885853,-4.19204586169831,-3.09160305343512,0.207382828701785,0.741386829481039,1.44189991518238,-0.783505154639164,0.711462450592881,0.311284046692584,2.6555386949924,2.55271920088791,3.11013538236371,3.97955458196422,4.22587883320868,5.04135486411974,5.04966887417218,4.11255411255411,2.7591973244147,3.9484621778886,0.94191522762952,1.59038013964314,0.221729490022171,2.81385281385282,1.02909865152592,-0.0351123595505598,-0.968783638320769,-1.31233595800524,-2.28526398739164,-1.24740124740125,-2.11554109031733,-2.71891243502599,-0.816485225505459,-0.801832760595667,-0.479351032448383,-3.40350877192983,-1.19423955040393]],"fixedtz":false,"tzone":"UTC"},"evals":["attrs.series.PIM Total.plotter","attrs.interactionModel"],"jsHooks":[]}</script></p>
<p>–</p>
<p><strong>Gráfico 10 - Indústria de Transformação e Indústria Extrativa - Variação anual</strong> <div id="htmlwidget-bc8ea45f9b7e5b7dac9e" style="width:800px;height:400px;" class="dygraphs html-widget"></div>
<script type="application/json" data-for="htmlwidget-bc8ea45f9b7e5b7dac9e">{"x":{"attrs":{"labels":["month","Transformação","Extrativa"],"retainDateWindow":false,"axes":{"x":{"pixelsPerLabel":60,"drawAxis":true},"y":{"drawAxis":true}},"colors":["#ed5353","#68b723"],"series":{"Transformação":{"axis":"y","strokeWidth":3},"Extrativa":{"axis":"y","strokeWidth":3}},"stackedGraph":false,"fillGraph":false,"fillAlpha":0.15,"stepPlot":false,"drawPoints":false,"pointSize":1,"drawGapEdgePoints":false,"connectSeparatedPoints":false,"strokeWidth":1,"strokeBorderColor":"white","colorValue":0.5,"colorSaturation":1,"includeZero":false,"drawAxesAtZero":false,"logscale":false,"axisTickSize":3,"axisLineColor":"black","axisLineWidth":0.3,"axisLabelColor":"black","axisLabelFontSize":14,"axisLabelWidth":60,"drawGrid":true,"gridLineColor":"white","gridLineWidth":0.2,"rightGap":5,"digitsAfterDecimal":2,"labelsKMB":false,"labelsKMG2":false,"labelsUTC":false,"maxNumberWidth":6,"animatedZooms":false,"mobileDisableYTouch":true,"disableZoom":false,"legend":"always","labelsDivWidth":622,"labelsShowZeroValues":true,"labelsSeparateLines":false,"hideOverlayOnMouseOut":true,"showRangeSelector":true,"rangeSelectorHeight":30,"rangeSelectorPlotFillColor":"#abacae","rangeSelectorPlotStrokeColor":"#808FAB","interactionModel":"Dygraph.Interaction.defaultModel"},"scale":"monthly","annotations":[],"shadings":[],"events":[],"format":"date","data":[["2010-01-01T00:00:00.000Z","2010-02-01T00:00:00.000Z","2010-03-01T00:00:00.000Z","2010-04-01T00:00:00.000Z","2010-05-01T00:00:00.000Z","2010-06-01T00:00:00.000Z","2010-07-01T00:00:00.000Z","2010-08-01T00:00:00.000Z","2010-09-01T00:00:00.000Z","2010-10-01T00:00:00.000Z","2010-11-01T00:00:00.000Z","2010-12-01T00:00:00.000Z","2011-01-01T00:00:00.000Z","2011-02-01T00:00:00.000Z","2011-03-01T00:00:00.000Z","2011-04-01T00:00:00.000Z","2011-05-01T00:00:00.000Z","2011-06-01T00:00:00.000Z","2011-07-01T00:00:00.000Z","2011-08-01T00:00:00.000Z","2011-09-01T00:00:00.000Z","2011-10-01T00:00:00.000Z","2011-11-01T00:00:00.000Z","2011-12-01T00:00:00.000Z","2012-01-01T00:00:00.000Z","2012-02-01T00:00:00.000Z","2012-03-01T00:00:00.000Z","2012-04-01T00:00:00.000Z","2012-05-01T00:00:00.000Z","2012-06-01T00:00:00.000Z","2012-07-01T00:00:00.000Z","2012-08-01T00:00:00.000Z","2012-09-01T00:00:00.000Z","2012-10-01T00:00:00.000Z","2012-11-01T00:00:00.000Z","2012-12-01T00:00:00.000Z","2013-01-01T00:00:00.000Z","2013-02-01T00:00:00.000Z","2013-03-01T00:00:00.000Z","2013-04-01T00:00:00.000Z","2013-05-01T00:00:00.000Z","2013-06-01T00:00:00.000Z","2013-07-01T00:00:00.000Z","2013-08-01T00:00:00.000Z","2013-09-01T00:00:00.000Z","2013-10-01T00:00:00.000Z","2013-11-01T00:00:00.000Z","2013-12-01T00:00:00.000Z","2014-01-01T00:00:00.000Z","2014-02-01T00:00:00.000Z","2014-03-01T00:00:00.000Z","2014-04-01T00:00:00.000Z","2014-05-01T00:00:00.000Z","2014-06-01T00:00:00.000Z","2014-07-01T00:00:00.000Z","2014-08-01T00:00:00.000Z","2014-09-01T00:00:00.000Z","2014-10-01T00:00:00.000Z","2014-11-01T00:00:00.000Z","2014-12-01T00:00:00.000Z","2015-01-01T00:00:00.000Z","2015-02-01T00:00:00.000Z","2015-03-01T00:00:00.000Z","2015-04-01T00:00:00.000Z","2015-05-01T00:00:00.000Z","2015-06-01T00:00:00.000Z","2015-07-01T00:00:00.000Z","2015-08-01T00:00:00.000Z","2015-09-01T00:00:00.000Z","2015-10-01T00:00:00.000Z","2015-11-01T00:00:00.000Z","2015-12-01T00:00:00.000Z","2016-01-01T00:00:00.000Z","2016-02-01T00:00:00.000Z","2016-03-01T00:00:00.000Z","2016-04-01T00:00:00.000Z","2016-05-01T00:00:00.000Z","2016-06-01T00:00:00.000Z","2016-07-01T00:00:00.000Z","2016-08-01T00:00:00.000Z","2016-09-01T00:00:00.000Z","2016-10-01T00:00:00.000Z","2016-11-01T00:00:00.000Z","2016-12-01T00:00:00.000Z","2017-01-01T00:00:00.000Z","2017-02-01T00:00:00.000Z","2017-03-01T00:00:00.000Z","2017-04-01T00:00:00.000Z","2017-05-01T00:00:00.000Z","2017-06-01T00:00:00.000Z","2017-07-01T00:00:00.000Z","2017-08-01T00:00:00.000Z","2017-09-01T00:00:00.000Z","2017-10-01T00:00:00.000Z","2017-11-01T00:00:00.000Z","2017-12-01T00:00:00.000Z","2018-01-01T00:00:00.000Z","2018-02-01T00:00:00.000Z","2018-03-01T00:00:00.000Z","2018-04-01T00:00:00.000Z","2018-05-01T00:00:00.000Z","2018-06-01T00:00:00.000Z","2018-07-01T00:00:00.000Z","2018-08-01T00:00:00.000Z","2018-09-01T00:00:00.000Z","2018-10-01T00:00:00.000Z","2018-11-01T00:00:00.000Z","2018-12-01T00:00:00.000Z","2019-01-01T00:00:00.000Z","2019-02-01T00:00:00.000Z","2019-03-01T00:00:00.000Z","2019-04-01T00:00:00.000Z","2019-05-01T00:00:00.000Z","2019-06-01T00:00:00.000Z","2019-07-01T00:00:00.000Z","2019-08-01T00:00:00.000Z"],[18.1570762052877,17.2598545732874,16.4777021919879,15.5713218820015,14.0590405904059,11.8353969410051,9.59051724137931,7.42049469964665,5.70236439499303,4.13110276544895,3.26050420168069,2.51822398939694,2.6982560052649,2.67624020887729,1.62232316677482,1.16316639741518,0.291167906826262,1.17225659394333,0.852179613241555,0.131578947368416,-1.01973684210526,-1.9672131147541,-1.43229166666669,-2.71493212669685,-4.06920858699137,-6.57978385251115,-6.09833971902938,-6.00447141488343,-4.83870967741935,-4.31284196974573,-1.94995125121871,-0.0985545335085214,1.56198072449321,1.60535117056855,0.594451783355354,1.66112956810631,2.07080828323314,4.08302143586254,4.31825909554573,5.33469249065579,5.69491525423729,4.50723175243861,2.78422273781902,1.94015126603091,1.2761780104712,1.81040157998684,0.164149704530514,-0.620915032679736,-0.81806282722513,-0.261523373651507,-0.880052151238586,-2.90322580645161,-5.54842847979474,-6.01866752494369,-6.06256046436633,-5.16129032258064,-4.91114701130856,-5.04364694471385,-4.85086856768273,-5.72180203880304,-6.76344440778622,-7.99737790888233,-8.94442617560013,-9.10299003322258,-8.38709677419355,-8.66438356164381,-9.131479574322,-10.8503401360544,-11.3829425756031,-12.2574055158325,-12.1598346538064,-11.7544471573073,-11.6772823779193,-10.8656929105807,-9.67858432647165,-7.63888888888889,-6.4862861378799,-5.47431571053619,-5.36456365697017,-4.57840518885921,-4.79294478527608,-3.72526193247965,-2.70588235294117,-1.38339920948616,0.600961538461542,0.439648281374883,0.159936025589746,-0.791452314998009,-0.0792707094728451,1.11067036890122,2.39520958083832,3.15873650539784,4.34957712444624,5.07859733978238,6.7714631197098,6.61322645290581,5.57546794105934,4.37723836052528,4.79041916167664,1.15676106900677,0.833002776675906,-0.196155355041217,3.15789473684212,1.62790697674418,0.347356233114615,-0.997314921365566,-2.71800679501698,-3.23308270676691,-2.67823462844211,-1.44872283644681,-0.952380952380949,2.602523659306,2.28166797797011,1.53301886792454,-2.64550264550264,-1.44927536231884],[20.2050405809483,19.5454545454545,18.2075090835688,16.6864843440349,14.0350877192982,11.7602138220695,10.0635989524878,11.4998139188686,10.7169253510717,10.9346139637975,9.83787767133384,8.9422028353326,6.64534470504619,3.2837884548911,2.25409836065575,1.7663043478261,3.14529914529915,2.73317389818928,2.03942895989122,0.133511348464621,0.100133511348455,0.899100899100924,2.11338477021132,-0.533867200533866,-0.466511162945671,-0.368139223560893,1.80360721442887,1.56875834445926,0.596619158104095,0.73162620552043,-0.333111259160557,-1.46666666666668,0.0666888962987722,-1.5841584158416,-0.558475689881732,-1.44246897014425,-2.57783729494475,-4.97144776620759,-7.67716535433072,-7.6569175156096,-6.09555189456343,-4.91911521954439,-2.774064171123,-1.89445196211094,-2.33255581472842,-0.637156270959094,-1.75090849025438,0.340367597004776,-0.0343642611683959,3.92364793213149,5.61478322672353,7.54448398576513,6.2456140350877,6.21527777777777,6.60020625644553,8.79310344827586,9.00716479017401,7.93115086061424,7.93544048419639,9.26051560379919,11.8253695427982,11.9387755102041,11.8102288021534,9.86101919258768,9.04887714663145,6.4400130761687,5.28861657529829,3.35974643423136,1.97183098591547,-2.56410256410255,-7.19626168224299,-12.6668736417262,-13.1570857669843,-14.5852324521422,-14.2040325007523,-14.2168674698795,-13.2041187159297,-11.0872235872236,-10.9954058192955,-9.93560257589696,-9.69920196439532,-4.91014120667522,0.537092984222887,8.24742268041236,9.20353982300883,9.78299537531129,7.99719396702911,7.30337078651688,6.59455687369157,4.93955094991363,4.0949759119064,2.55362614913177,2.27736233854521,1.78872764090448,-0.0333889816360622,-0.919540229885063,-3.17666126418152,-2.52754374594947,-3.02046118869764,-0.981675392670167,-0.523731587561371,0.329163923633957,0.231404958677683,-0.166002656042485,0.365569956796286,0.795755968169765,2.90581162324648,2.58534968511768,-0.903916973552055,-7.28058510638298,-15.1038178164769,-17.5479180436219,-17.7031918394209,-13.4514435695538,-8.50923482849605,-4.48952444296641]],"fixedtz":false,"tzone":"UTC"},"evals":["attrs.interactionModel"],"jsHooks":[]}</script></p>
<p>–</p>
<p><strong>Gráfico 11 - Indústria Total e Indústria de Transformação - Média Móvel (12)</strong> <div id="htmlwidget-3fce8c02b98e8f55d831" style="width:800px;height:400px;" class="dygraphs html-widget"></div>
<script type="application/json" data-for="htmlwidget-3fce8c02b98e8f55d831">{"x":{"attrs":{"labels":["month","Transformação","Extrativa"],"retainDateWindow":false,"axes":{"x":{"pixelsPerLabel":60,"drawAxis":true},"y":{"drawAxis":true}},"colors":["#ed5353","#68b723"],"series":{"Transformação":{"axis":"y","strokeWidth":3},"Extrativa":{"axis":"y","strokeWidth":3}},"stackedGraph":false,"fillGraph":false,"fillAlpha":0.15,"stepPlot":false,"drawPoints":false,"pointSize":1,"drawGapEdgePoints":false,"connectSeparatedPoints":false,"strokeWidth":1,"strokeBorderColor":"white","colorValue":0.5,"colorSaturation":1,"includeZero":false,"drawAxesAtZero":false,"logscale":false,"axisTickSize":3,"axisLineColor":"black","axisLineWidth":0.3,"axisLabelColor":"black","axisLabelFontSize":14,"axisLabelWidth":60,"drawGrid":true,"gridLineColor":"white","gridLineWidth":0.2,"rightGap":5,"digitsAfterDecimal":2,"labelsKMB":false,"labelsKMG2":false,"labelsUTC":false,"maxNumberWidth":6,"animatedZooms":false,"mobileDisableYTouch":true,"disableZoom":false,"legend":"always","labelsDivWidth":622,"labelsShowZeroValues":true,"labelsSeparateLines":false,"hideOverlayOnMouseOut":true,"showRangeSelector":true,"rangeSelectorHeight":30,"rangeSelectorPlotFillColor":"#abacae","rangeSelectorPlotStrokeColor":"#808FAB","interactionModel":"Dygraph.Interaction.defaultModel"},"scale":"monthly","annotations":[],"shadings":[],"events":[],"format":"date","data":[["2010-01-01T00:00:00.000Z","2010-02-01T00:00:00.000Z","2010-03-01T00:00:00.000Z","2010-04-01T00:00:00.000Z","2010-05-01T00:00:00.000Z","2010-06-01T00:00:00.000Z","2010-07-01T00:00:00.000Z","2010-08-01T00:00:00.000Z","2010-09-01T00:00:00.000Z","2010-10-01T00:00:00.000Z","2010-11-01T00:00:00.000Z","2010-12-01T00:00:00.000Z","2011-01-01T00:00:00.000Z","2011-02-01T00:00:00.000Z","2011-03-01T00:00:00.000Z","2011-04-01T00:00:00.000Z","2011-05-01T00:00:00.000Z","2011-06-01T00:00:00.000Z","2011-07-01T00:00:00.000Z","2011-08-01T00:00:00.000Z","2011-09-01T00:00:00.000Z","2011-10-01T00:00:00.000Z","2011-11-01T00:00:00.000Z","2011-12-01T00:00:00.000Z","2012-01-01T00:00:00.000Z","2012-02-01T00:00:00.000Z","2012-03-01T00:00:00.000Z","2012-04-01T00:00:00.000Z","2012-05-01T00:00:00.000Z","2012-06-01T00:00:00.000Z","2012-07-01T00:00:00.000Z","2012-08-01T00:00:00.000Z","2012-09-01T00:00:00.000Z","2012-10-01T00:00:00.000Z","2012-11-01T00:00:00.000Z","2012-12-01T00:00:00.000Z","2013-01-01T00:00:00.000Z","2013-02-01T00:00:00.000Z","2013-03-01T00:00:00.000Z","2013-04-01T00:00:00.000Z","2013-05-01T00:00:00.000Z","2013-06-01T00:00:00.000Z","2013-07-01T00:00:00.000Z","2013-08-01T00:00:00.000Z","2013-09-01T00:00:00.000Z","2013-10-01T00:00:00.000Z","2013-11-01T00:00:00.000Z","2013-12-01T00:00:00.000Z","2014-01-01T00:00:00.000Z","2014-02-01T00:00:00.000Z","2014-03-01T00:00:00.000Z","2014-04-01T00:00:00.000Z","2014-05-01T00:00:00.000Z","2014-06-01T00:00:00.000Z","2014-07-01T00:00:00.000Z","2014-08-01T00:00:00.000Z","2014-09-01T00:00:00.000Z","2014-10-01T00:00:00.000Z","2014-11-01T00:00:00.000Z","2014-12-01T00:00:00.000Z","2015-01-01T00:00:00.000Z","2015-02-01T00:00:00.000Z","2015-03-01T00:00:00.000Z","2015-04-01T00:00:00.000Z","2015-05-01T00:00:00.000Z","2015-06-01T00:00:00.000Z","2015-07-01T00:00:00.000Z","2015-08-01T00:00:00.000Z","2015-09-01T00:00:00.000Z","2015-10-01T00:00:00.000Z","2015-11-01T00:00:00.000Z","2015-12-01T00:00:00.000Z","2016-01-01T00:00:00.000Z","2016-02-01T00:00:00.000Z","2016-03-01T00:00:00.000Z","2016-04-01T00:00:00.000Z","2016-05-01T00:00:00.000Z","2016-06-01T00:00:00.000Z","2016-07-01T00:00:00.000Z","2016-08-01T00:00:00.000Z","2016-09-01T00:00:00.000Z","2016-10-01T00:00:00.000Z","2016-11-01T00:00:00.000Z","2016-12-01T00:00:00.000Z","2017-01-01T00:00:00.000Z","2017-02-01T00:00:00.000Z","2017-03-01T00:00:00.000Z","2017-04-01T00:00:00.000Z","2017-05-01T00:00:00.000Z","2017-06-01T00:00:00.000Z","2017-07-01T00:00:00.000Z","2017-08-01T00:00:00.000Z","2017-09-01T00:00:00.000Z","2017-10-01T00:00:00.000Z","2017-11-01T00:00:00.000Z","2017-12-01T00:00:00.000Z","2018-01-01T00:00:00.000Z","2018-02-01T00:00:00.000Z","2018-03-01T00:00:00.000Z","2018-04-01T00:00:00.000Z","2018-05-01T00:00:00.000Z","2018-06-01T00:00:00.000Z","2018-07-01T00:00:00.000Z","2018-08-01T00:00:00.000Z","2018-09-01T00:00:00.000Z","2018-10-01T00:00:00.000Z","2018-11-01T00:00:00.000Z","2018-12-01T00:00:00.000Z","2019-01-01T00:00:00.000Z","2019-02-01T00:00:00.000Z","2019-03-01T00:00:00.000Z"],[99.8666666666667,100.575,101.108333333333,101.283333333333,101.733333333333,101.941666666667,102.108333333333,102.641666666667,102.583333333333,102.433333333333,102.666666666667,102.691666666667,102.625,102.85,102.766666666667,102.65,102.433333333333,102.358333333333,101.983333333333,101.516666666667,101.125,100.733333333333,100.35,99.975,99.8416666666667,99.9,99.7833333333333,100.241666666667,100.291666666667,100,100.483333333333,100.341666666667,100.175,100.925,101.133333333333,101.416666666667,101.708333333333,101.75,102.075,102.141666666667,102.25,102.075,101.916666666667,102.266666666667,102.233333333333,101.75,101.475,100.908333333333,100.608333333333,100.133333333333,99.9916666666667,99.7166666666667,99.1916666666667,98.9916666666667,98.6166666666667,97.9,97.65,97.05,96.3333333333333,96.1333333333333,95.3916666666667,94.6666666666667,93.725,92.7166666666667,91.7,90.825,89.8416666666667,89.1833333333333,88.3,87.8166666666667,87.25,86.85,86.3583333333333,85.975,85.675,85.0916666666667,85,85,85.1333333333333,85.1416666666667,85.2833333333333,84.975,85.2916666666667,85.35,85.5583333333333,85.8666666666667,86.0583333333333,86.4666666666667,86.8083333333333,87.125,87.4833333333333,87.6,87.675,88.275,87.8,88.0166666666667,88.325,88.45,88.2583333333333,88.3166666666667,88.225,87.9666666666667,87.8333333333333,87.975,87.5333333333333,87.2666666666667,87.8,87.3583333333333,87.1583333333333,86.9916666666667,87.075],[100.216666666667,100.916666666667,101.416666666667,101.566666666667,101.991666666667,102.158333333333,102.308333333333,102.858333333333,102.791666666667,102.625,102.858333333333,102.866666666667,102.791666666667,103.025,102.941666666667,102.8,102.55,102.458333333333,102.075,101.55,101.133333333333,100.691666666667,100.258333333333,99.85,99.7166666666667,99.825,99.7583333333333,100.241666666667,100.366666666667,100.008333333333,100.533333333333,100.45,100.358333333333,101.266666666667,101.6,101.958333333333,102.325,102.391666666667,102.758333333333,102.875,102.966666666667,102.808333333333,102.616666666667,103,102.883333333333,102.283333333333,101.9,101.216666666667,100.808333333333,100.183333333333,99.9083333333333,99.5083333333333,98.8583333333333,98.5166666666667,97.975,97.05,96.6666666666667,95.875,94.9833333333333,94.6666666666667,93.7833333333333,92.9166666666667,91.8333333333333,90.7166666666667,89.675,88.825,87.9,87.275,86.45,86.0833333333333,85.575,85.2666666666667,84.825,84.5333333333333,84.2916666666667,83.725,83.575,83.5,83.525,83.4666666666667,83.5416666666667,83.1333333333333,83.4333333333333,83.4416666666667,83.6416666666667,83.9583333333333,84.1583333333333,84.6,84.9833333333333,85.375,85.7833333333333,85.9666666666667,86.075,86.7583333333333,86.2166666666667,86.4583333333333,86.7916666666667,86.9416666666667,86.75,86.7833333333333,86.6583333333333,86.3166666666667,86.15,86.4,86.0333333333333,85.9583333333333,86.7416666666667,86.4,86.2666666666667,86.0916666666667,86.2083333333333]],"fixedtz":false,"tzone":"UTC"},"evals":["attrs.interactionModel"],"jsHooks":[]}</script></p>
<p>–</p>
<p><strong>Gráfico 12 - Bens de Capital, Intermediários e de Consumo Duráveis - Média Móvel (12)</strong> <div id="htmlwidget-46b592108f3eb3842ce8" style="width:800px;height:400px;" class="dygraphs html-widget"></div>
<script type="application/json" data-for="htmlwidget-46b592108f3eb3842ce8">{"x":{"attrs":{"labels":["month","Bens de Capital","Bens Intermediários","Bens de Consumo Duráveis"],"retainDateWindow":false,"axes":{"x":{"pixelsPerLabel":60,"drawAxis":true},"y":{"drawAxis":true}},"colors":["#3689e6","#ed5353","#68b723"],"series":{"Bens de Capital":{"axis":"y","strokeWidth":3},"Bens Intermediários":{"axis":"y","strokeWidth":3},"Bens de Consumo Duráveis":{"axis":"y","strokeWidth":3}},"stackedGraph":false,"fillGraph":false,"fillAlpha":0.15,"stepPlot":false,"drawPoints":false,"pointSize":1,"drawGapEdgePoints":false,"connectSeparatedPoints":false,"strokeWidth":1,"strokeBorderColor":"white","colorValue":0.5,"colorSaturation":1,"includeZero":false,"drawAxesAtZero":false,"logscale":false,"axisTickSize":3,"axisLineColor":"black","axisLineWidth":0.3,"axisLabelColor":"black","axisLabelFontSize":14,"axisLabelWidth":60,"drawGrid":true,"gridLineColor":"white","gridLineWidth":0.2,"rightGap":5,"digitsAfterDecimal":2,"labelsKMB":false,"labelsKMG2":false,"labelsUTC":false,"maxNumberWidth":6,"animatedZooms":false,"mobileDisableYTouch":true,"disableZoom":false,"legend":"always","labelsDivWidth":622,"labelsShowZeroValues":true,"labelsSeparateLines":false,"hideOverlayOnMouseOut":true,"showRangeSelector":true,"rangeSelectorHeight":30,"rangeSelectorPlotFillColor":"#abacae","rangeSelectorPlotStrokeColor":"#808FAB","interactionModel":"Dygraph.Interaction.defaultModel"},"scale":"monthly","annotations":[],"shadings":[],"events":[],"format":"date","data":[["2010-01-01T00:00:00.000Z","2010-02-01T00:00:00.000Z","2010-03-01T00:00:00.000Z","2010-04-01T00:00:00.000Z","2010-05-01T00:00:00.000Z","2010-06-01T00:00:00.000Z","2010-07-01T00:00:00.000Z","2010-08-01T00:00:00.000Z","2010-09-01T00:00:00.000Z","2010-10-01T00:00:00.000Z","2010-11-01T00:00:00.000Z","2010-12-01T00:00:00.000Z","2011-01-01T00:00:00.000Z","2011-02-01T00:00:00.000Z","2011-03-01T00:00:00.000Z","2011-04-01T00:00:00.000Z","2011-05-01T00:00:00.000Z","2011-06-01T00:00:00.000Z","2011-07-01T00:00:00.000Z","2011-08-01T00:00:00.000Z","2011-09-01T00:00:00.000Z","2011-10-01T00:00:00.000Z","2011-11-01T00:00:00.000Z","2011-12-01T00:00:00.000Z","2012-01-01T00:00:00.000Z","2012-02-01T00:00:00.000Z","2012-03-01T00:00:00.000Z","2012-04-01T00:00:00.000Z","2012-05-01T00:00:00.000Z","2012-06-01T00:00:00.000Z","2012-07-01T00:00:00.000Z","2012-08-01T00:00:00.000Z","2012-09-01T00:00:00.000Z","2012-10-01T00:00:00.000Z","2012-11-01T00:00:00.000Z","2012-12-01T00:00:00.000Z","2013-01-01T00:00:00.000Z","2013-02-01T00:00:00.000Z","2013-03-01T00:00:00.000Z","2013-04-01T00:00:00.000Z","2013-05-01T00:00:00.000Z","2013-06-01T00:00:00.000Z","2013-07-01T00:00:00.000Z","2013-08-01T00:00:00.000Z","2013-09-01T00:00:00.000Z","2013-10-01T00:00:00.000Z","2013-11-01T00:00:00.000Z","2013-12-01T00:00:00.000Z","2014-01-01T00:00:00.000Z","2014-02-01T00:00:00.000Z","2014-03-01T00:00:00.000Z","2014-04-01T00:00:00.000Z","2014-05-01T00:00:00.000Z","2014-06-01T00:00:00.000Z","2014-07-01T00:00:00.000Z","2014-08-01T00:00:00.000Z","2014-09-01T00:00:00.000Z","2014-10-01T00:00:00.000Z","2014-11-01T00:00:00.000Z","2014-12-01T00:00:00.000Z","2015-01-01T00:00:00.000Z","2015-02-01T00:00:00.000Z","2015-03-01T00:00:00.000Z","2015-04-01T00:00:00.000Z","2015-05-01T00:00:00.000Z","2015-06-01T00:00:00.000Z","2015-07-01T00:00:00.000Z","2015-08-01T00:00:00.000Z","2015-09-01T00:00:00.000Z","2015-10-01T00:00:00.000Z","2015-11-01T00:00:00.000Z","2015-12-01T00:00:00.000Z","2016-01-01T00:00:00.000Z","2016-02-01T00:00:00.000Z","2016-03-01T00:00:00.000Z","2016-04-01T00:00:00.000Z","2016-05-01T00:00:00.000Z","2016-06-01T00:00:00.000Z","2016-07-01T00:00:00.000Z","2016-08-01T00:00:00.000Z","2016-09-01T00:00:00.000Z","2016-10-01T00:00:00.000Z","2016-11-01T00:00:00.000Z","2016-12-01T00:00:00.000Z","2017-01-01T00:00:00.000Z","2017-02-01T00:00:00.000Z","2017-03-01T00:00:00.000Z","2017-04-01T00:00:00.000Z","2017-05-01T00:00:00.000Z","2017-06-01T00:00:00.000Z","2017-07-01T00:00:00.000Z","2017-08-01T00:00:00.000Z","2017-09-01T00:00:00.000Z","2017-10-01T00:00:00.000Z","2017-11-01T00:00:00.000Z","2017-12-01T00:00:00.000Z","2018-01-01T00:00:00.000Z","2018-02-01T00:00:00.000Z","2018-03-01T00:00:00.000Z","2018-04-01T00:00:00.000Z","2018-05-01T00:00:00.000Z","2018-06-01T00:00:00.000Z","2018-07-01T00:00:00.000Z","2018-08-01T00:00:00.000Z","2018-09-01T00:00:00.000Z","2018-10-01T00:00:00.000Z","2018-11-01T00:00:00.000Z","2018-12-01T00:00:00.000Z","2019-01-01T00:00:00.000Z","2019-02-01T00:00:00.000Z","2019-03-01T00:00:00.000Z"],[101.633333333333,103.733333333333,105.125,105.758333333333,106.708333333333,107.225,107.766666666667,109.258333333333,109.425,109.4,110.066666666667,110.733333333333,111.183333333333,112.2,112.375,112.533333333333,112.341666666667,112.591666666667,111.233333333333,110.341666666667,109.991666666667,109.425,108.458333333333,106.983333333333,106.091666666667,104.8,103.341666666667,102.941666666667,101.625,100.008333333333,101.591666666667,102.008333333333,102.091666666667,103.975,104.658333333333,105.933333333333,107.058333333333,108.008333333333,109.933333333333,111.458333333333,112.525,112.2,112.275,113.016666666667,112.391666666667,111.008333333333,110.166666666667,108.241666666667,107.316666666667,105.816666666667,104.808333333333,103.525,102.516666666667,101.725,100.433333333333,98.0583333333333,97.0166666666667,95.0666666666667,92.825,91.6,89.1666666666667,86.3416666666667,83.575,80.55,77.9583333333333,75.9666666666667,73.5083333333333,71.8083333333333,70.0666666666667,69.0666666666667,68.45,68.3833333333333,67.7083333333333,68.0583333333333,67.8083333333333,67.2916666666667,67.475,68.2083333333333,68.5,68.7,68.975,68.6583333333333,69.125,69.175,69.6083333333333,70.1833333333333,70.5666666666667,71.45,71.9416666666667,72.45,73.3,73.7,74.275,75.5333333333333,75.1333333333333,75.675,76.125,76.7666666666667,77.025,77.7166666666667,77.8833333333333,77.6083333333333,77.2166666666667,77.6333333333333,76.8583333333333,76.85,78.1083333333333,77.8166666666667,78.25,77.9916666666667,78.0416666666667],[99.7416666666667,100.375,100.808333333333,101.008333333333,101.416666666667,101.6,101.658333333333,101.975,101.983333333333,101.866666666667,102.033333333333,102,101.783333333333,101.866666666667,101.891666666667,101.866666666667,101.716666666667,101.633333333333,101.3,101.041666666667,100.575,100.083333333333,99.725,99.375,99.3083333333333,99.5333333333333,99.5333333333333,100.008333333333,100.15,100.016666666667,100.325,100.058333333333,99.925,100.45,100.55,100.608333333333,100.758333333333,100.683333333333,100.716666666667,100.55,100.591666666667,100.391666666667,100.166666666667,100.25,100.258333333333,99.8833333333333,99.6166666666667,99.4,99.1166666666667,98.85,98.75,98.5666666666667,98.075,97.9666666666667,97.8083333333333,97.525,97.3833333333333,97.1333333333333,96.75,96.6583333333333,96.2083333333333,95.7833333333333,95.1666666666667,94.55,93.7,92.8583333333333,91.9916666666667,91.425,90.55,89.9833333333333,89.3583333333333,88.7833333333333,88.3916666666667,87.8416666666667,87.55,86.9583333333333,86.8916666666667,86.8416666666667,86.925,86.8083333333333,86.9,86.6916666666667,86.95,87.05,87.1333333333333,87.2833333333333,87.4416666666667,87.7083333333333,88.025,88.3333333333333,88.625,88.6916666666667,88.6583333333333,88.9833333333333,88.6,88.725,88.9916666666667,89.05,88.8,88.725,88.5833333333333,88.375,88.3083333333333,88.3,87.9916666666667,87.5833333333333,87.8083333333333,87.325,86.9,86.7416666666667,86.75],[102.816666666667,103.383333333333,103.625,103.441666666667,104.041666666667,104.516666666667,104.858333333333,106.125,105.366666666667,104.658333333333,104.466666666667,104.35,104.441666666667,104.558333333333,103.791666666667,102.908333333333,101.85,101.4,100.616666666667,98.4833333333333,98.025,97.6416666666667,97.3083333333333,97.2083333333333,97.2,97.5666666666667,98.0666666666667,99.4416666666667,100.3,100.008333333333,101.033333333333,101.275,101.341666666667,102.925,103.475,104.05,104.333333333333,104.116666666667,104.783333333333,104.825,104.608333333333,104.416666666667,104.058333333333,105.7,105.266666666667,104.175,103.133333333333,100.308333333333,99.2333333333333,97.7,97.25,96.5916666666667,95.5666666666667,94.925,93.8583333333333,91.5916666666667,91.1083333333333,89.75,88.475,88.4416666666667,87.4083333333333,86.275,83.8916666666667,81.3083333333333,79,77.3833333333333,75.425,73.5416666666667,71.65,70.0333333333333,68.7916666666667,68.375,67.3083333333333,66.5583333333333,66.0833333333333,65.55,65.9666666666667,66.2416666666667,66.4666666666667,67.4,67.9416666666667,67.9666666666667,69.1,69.4,69.875,71.0166666666667,71.9583333333333,73.0333333333333,73.975,75.0166666666667,76.0333333333333,76.875,77.8916666666667,79.7916666666667,79.05,79.8833333333333,80.9166666666667,81.65,81.3666666666667,81.875,81.7,80.9083333333333,80.6416666666667,81.45,80.2833333333333,80.35,82.0083333333333,81.625,81.725,81.2916666666667,81.8583333333333]],"fixedtz":false,"tzone":"UTC"},"evals":["attrs.interactionModel"],"jsHooks":[]}</script></p>
<p>–</p>
</div>
    </section>
  </div>
</div>



<!-- dynamically load mathjax for compatibility with self-contained -->
<script>
  (function () {
    var script = document.createElement("script");
    script.type = "text/javascript";
    script.src  = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
    document.getElementsByTagName("head")[0].appendChild(script);
  })();
</script>

</body>
</html>