# Name: rss_suparchive v0.18 # Type: Client side plugin # Article listings by date or by category/section. Archive menu by month or year with totals # Author: Rob Sable # URL: http://www.wilshireone.com/ # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxMDp7czo0OiJuYW1lIjtzOjE0OiJyc3Nfc3VwYXJjaGl2ZSI7czo2OiJhdXRob3IiO3M6 OToiUm9iIFNhYmxlIjtzOjEwOiJhdXRob3JfdXJpIjtzOjI3OiJodHRwOi8vd3d3LndpbHNo aXJlb25lLmNvbS8iO3M6NzoidmVyc2lvbiI7czo0OiIwLjE4IjtzOjExOiJkZXNjcmlwdGlv biI7czo5MDoiQXJ0aWNsZSBsaXN0aW5ncyBieSBkYXRlIG9yIGJ5IGNhdGVnb3J5L3NlY3Rp b24uIEFyY2hpdmUgbWVudSBieSBtb250aCBvciB5ZWFyIHdpdGggdG90YWxzIjtzOjQ6ImNv ZGUiO3M6MTgwOTM6IgovLyByc3Nfc3VwYXJjaGl2ZSBhcnRpY2xlIGxpc3RpbmcgcGx1Z2lu Ci8vIGJ5IFJvYiBTYWJsZQovLyBodHRwOi8vd3d3LndpbHNoaXJlb25lLmNvbQovLyBWZXJz aW9uIDAuMSAgIC0gMTEvMDIvMjAwNAovLyBGdWxsIHJldmlzaW9uIGhpc3RvcnkgYXQgaHR0 cDovL3d3dy53aWxzaGlyZW9uZS5jb20vdGV4dHBhdHRlcm4tcGx1Z2lucy9yc3Mtc3VwYXJj aGl2ZQovLyBWZXJzaW9uIDAuMTYuMSAtIDAxLzA5LzIwMDYgLSBGaXggYnJva2VuIGZpbGUg ZG93bmxvYWRzLiAgRml4IGluYWR2ZXJ0ZW50IGRhdGUgZmlsdGVyaW5nIG9uIGFydGljbGUg cGFnZXMuCi8vIFZlcnNpb24gMC4xNyAtIDA4LzA4LzA2IC0gQ2hhbmdlIGNhdGVnb3JpZXMg dG8gZGlzcGxheSB0aXRsZSBpbnN0ZWFkIG9mIG5hbWUuCi8vIFZlcnNpb24gMC4xOCAtIDA4 LzA5LzA2IC0gQWRkIHNob3djb21tZW50c2NvdW50LCBzaG93emVyb2NvdW50LCBjb3VudHBy ZWZpeCwgY291bnRzdWZmaXggdG8gc3VwYXJjaGl2ZSBhbmQgc3VwYXJjaGl2ZV9ieWNhdC4g IENoYW5nZSB0byB1c2Ugc3RyZnRpbWUgZm9yIGRhdGUgZm9ybWF0dGluZyB0byBhbGxvdyBm b3IgbG9jYWxpemF0aW9uLiAgQWRkIHdpbGRjYXJkIGFuZCBleGNsdWRlIGZvcm1hdCBmb3Ig c2VjdGlvbiBhdHRyaWJ1dGUgb24gYWxsIDMgdGFncy4gKHRoYW5rcyBBbmRyZXcpLgoKcmVn aXN0ZXJfY2FsbGJhY2soJ3Jzc19zdXBhcmNoaXZlX2luaXQnLCdwcmV0ZXh0Jyk7CgpmdW5j dGlvbiByc3Nfc3VwYXJjaGl2ZV9pbml0KCkgewogIGdsb2JhbCAkYXR0YWNoX3RpdGxlc190 b19wZXJtYWxpbmtzOwogICRzdWJwYXRoID0gcHJlZ19xdW90ZShwcmVnX3JlcGxhY2UoIi9o dHRwOlwvXC8uKihcLy4qKS9VaSIsIiQxIixodSksIi8iKTsKICAkcmVxID0gcHJlZ19yZXBs YWNlKCIvXiRzdWJwYXRoL2kiLCIvIixzZXJ2ZXJTZXQoJ1JFUVVFU1RfVVJJJykpOwogIGV4 dHJhY3QoY2hvcFVybCgkcmVxKSk7CgogICRmID0gc2FmZV9maWVsZCgndGl0bGUnLCd0eHBf c2VjdGlvbicsIm5hbWU9JyIuZG9TbGFzaCgkdTEpLiInIik7CiAgaWYgKCFlbXB0eSgkZikp IHsKICAgIGlmICgkdTIgJiYgaXNfbnVtZXJpYygkdTIpKSAkX1BPU1RbJ3MnXSA9ICR1MTsK ICAgIGlmICgoJHUzICYmICFpc19udW1lcmljKCR1MykpIHx8ICghJGF0dGFjaF90aXRsZXNf dG9fcGVybWFsaW5rcyAmJiAhJHUzKSkgJF9QT1NUWydpZCddID0gJHUyOwogIH0KfQoKZnVu Y3Rpb24gcnNzX3N1cGFyY2hpdmVfbWVudSgkYXR0cykgewogIGdsb2JhbCAkcywgJHByZXRl eHQ7CiAgZXh0cmFjdCgkcHJldGV4dCk7CgoJZXh0cmFjdChsQXR0cyhhcnJheSgKCQknc2Vj dGlvbicgPT4gImFydGljbGUiLAoJCSdsaW5rdG9zZWN0aW9uJyA9PiAkcywKCQkndGltZWZy YW1lJyA9PiAiUEFTVCIsCgkJJ2xpbWl0JyA9PiA2LAoJCSdzaG93aGVhZGVyJyA9PiAiMCIs CgkJJ2hlYWRlcmxhYmVsJyA9PiAiTW9udGhseSBBcmNoaXZlcyIsCgkJJ2hlYWRlcmxldmVs JyA9PiAiMiIsCgkJJ3Nob3djb3VudCcgPT4gIjEiLAoJCSdjb3VudGxhYmVsJyA9PiAiIiwK CQknbW9kZScgPT4gIk1PTlRIIgoJKSwkYXR0cykpOwoKCglmb3JlYWNoIChleHBsb2RlKCcs JywgJHNlY3Rpb24pIGFzICRzZWN0aW9uKQoJewoJCXN3aXRjaCAoc3Vic3RyKHRyaW0oJHNl Y3Rpb24pLCAwLCAxKSkKCQl7CgkJCWNhc2UgJyonOgoJCQkJJHNjdHNxbFtdID0gIiAoc2Vj dGlvbiBsaWtlICclJykgIjsKCQkJYnJlYWs7CgkJCWNhc2UgJyEnOgoJCQkJJG5vdHNjdHNx bFtdID0gIiBBTkQgKHNlY3Rpb24gIT0gJyIgLiBkb1NsYXNoKHN0cl9yZXBsYWNlKCchJywn Jywkc2VjdGlvbikpIC4gIicpICI7CgkJCWJyZWFrOwoJCQlkZWZhdWx0OgoJCQkJJHNjdHNx bFtdID0gIiAoc2VjdGlvbiA9ICciIC4gZG9TbGFzaCgkc2VjdGlvbikgLiAiJykgIjsKCQkJ YnJlYWs7CgkJfQoJfQoJJHNlY3Rpb25zID0gJyBBTkQgKCcgLiBqb2luKCcgT1IgJywgJHNj dHNxbCkgLiBAam9pbignIEFORCAnLCAkbm90c2N0c3FsKSAuICcpICc7CgogICRwb3N0ZWQ9 ICgkdGltZWZyYW1lID09ICJGVVRVUkUiKSA/ICIgQU5EIFBvc3RlZCA+PSBub3coKSBPUkRF UiBCWSBwb3N0ZWQgYXNjICIgOiAiIEFORCBwb3N0ZWQgPCBub3coKSBPUkRFUiBCWSBwb3N0 ZWQgZGVzYyAiOwogICRwb3N0ZWQ9IGlzc2V0KCRwb3N0ZWQpID8gJHBvc3RlZCA6ICIgT1JE RVIgQlkgcG9zdGVkIGRlc2MgIjsKCiAgJHdoZXJlID0gInN0YXR1cz00ICRzZWN0aW9ucyAk cG9zdGVkIjsKICAkcmVzID0gc2FmZV9yb3dzKCJpZCwgdW5peF90aW1lc3RhbXAocG9zdGVk KSBhcyBwb3N0ZWQiLCJ0ZXh0cGF0dGVybiIsICR3aGVyZSk7CgogIGlmKCAkcmVzICkgewog ICAgJGRhdGVmb3JtYXQgPSAoJG1vZGUgPT0gIllFQVIiKSA/ICIlWSIgOiAiJUIgJVkiOwog ICAgJGM9LTE7ICRwPTA7ICRsYXN0bz0iIjsKICAgICRsYXN0ZCA9IHNhZmVfc3RyZnRpbWUo JGRhdGVmb3JtYXQsJHJlc1swXVsicG9zdGVkIl0pOwogICAgJG91dHB1dFtdID0gKCRzaG93 aGVhZGVyKSA/ICc8aCcgLiRoZWFkZXJsZXZlbC4gJz4nIC4kaGVhZGVybGFiZWwuICc8L2gn IC4kaGVhZGVybGV2ZWwuICc+Jy5uIDogJyc7CiAgICAkb3V0cHV0W10gPSAnPHVsIGNsYXNz PSJyc3NNZW51Ij4nLm47CiAgICBmb3JlYWNoKCAkcmVzIGFzICRhICkgewogICAgICAgICRk YXRlID0gc2FmZV9zdHJmdGltZSgkZGF0ZWZvcm1hdCwkYVsicG9zdGVkIl0pOwogICAgICAg ICRkYXRlbGluayA9ICgkbW9kZSA9PSAiWUVBUiIpID8gIi8iLnNhZmVfc3RyZnRpbWUoJyVZ JywkbGFzdG8pIDogIi8iLnNhZmVfc3RyZnRpbWUoJyVZJywkbGFzdG8pLiIvIi5zYWZlX3N0 cmZ0aW1lKCclbScsJGxhc3RvKTsKICAgICAgICAkYysrOwogICAgICAgICRjb3VudCA9ICgk c2hvd2NvdW50KSA/ICcgPHNwYW4gY2xhc3M9InJzc01vbnRoQ291bnQiPignLiRjLiRjb3Vu dGxhYmVsLicpPC9zcGFuPicgOiAnJzsKICAgICAgICAkb3V0cHV0W10gPSAoJGxhc3RkICE9 ICRkYXRlICYmICRwIDw9ICgkbGltaXQtMSkpID8gJzxsaT48YSBocmVmPSInLmh1LiRsaW5r dG9zZWN0aW9uLiRkYXRlbGluay4nIj4nLiRsYXN0ZC4kY291bnQuJzwvYT48L2xpPicubiA6 ICIiOwogICAgICAgIGlmICgkcCA8PSAoJGxpbWl0LTEpKSB7CiAgICAgICAgICBpZiAoJGxh c3RkICE9ICRkYXRlKSB7ICRjPTA7ICRwKys7IH07CiAgICAgICAgICAkbGFzdGQgPSAkZGF0 ZTsKICAgICAgICAgICRsYXN0byA9ICRhWyJwb3N0ZWQiXTsKICAgICAgICB9CiAgICB9CiAg ICAkZGF0ZWxpbmsgPSAoJG1vZGUgPT0gIllFQVIiKSA/ICIvIi5zYWZlX3N0cmZ0aW1lKCcl WScsJGxhc3RvKSA6ICIvIi5zYWZlX3N0cmZ0aW1lKCclWScsJGxhc3RvKS4iLyIuc2FmZV9z dHJmdGltZSgnJW0nLCRsYXN0byk7CiAgICAkY291bnQgPSAoJHNob3djb3VudCkgPyAnIDxz cGFuIGNsYXNzPSJyc3NNb250aENvdW50Ij4oJy4oJGMrMSkuJGNvdW50bGFiZWwuJyk8L3Nw YW4+JyA6ICcnOwogICAgJG91dHB1dFtdID0gKCRwIDw9ICgkbGltaXQtMSkpID8gJzxsaT48 YSBocmVmPSInLmh1LiRsaW5rdG9zZWN0aW9uLiRkYXRlbGluay4nIj4nLiRsYXN0ZC4kY291 bnQuJzwvYT48L2xpPicubiA6ICcnOwogICAgJG91dHB1dFtdID0gJzwvdWw+Jy5uLm47CiAg ICByZXR1cm4gIGltcGxvZGUoICIiLCAkb3V0cHV0KTsKICB9CiAgcmV0dXJuOwp9CgpmdW5j dGlvbiByc3Nfc3VwYXJjaGl2ZSgkYXR0cykgewoKCWdsb2JhbCAkc2l0ZXVybCwgJGMsICRz LCAkdXJsX21vZGUsICRwcmV0ZXh0LCAkdGhpc2FydGljbGU7CglleHRyYWN0KCRwcmV0ZXh0 KTsKCglleHRyYWN0KGxBdHRzKGFycmF5KAoJCSdzZWN0aW9uJyA9PiAiYXJ0aWNsZSIsCgkJ J2NhdGVnb3J5JyA9PiBpc3NldCgkbm9jYXRmaWx0ZXIpID8gIiIgOiAkYywKCQknYXV0aG9y JyA9PiBncHMoJ2F1dGhvcicpLAoJCSdkYXRlZm9ybWF0JyA9PiAiJUIgJWQsICVZIiwKCQkn c2hvd3NlY3Rpb24nID0+ICIwIiwKCQknc2hvd2NhdHMnID0+ICIwIiwKCQknc2hvd2F1dGhv cicgPT4gIjAiLAoJCSdzaG93ZXhjZXJwdCcgPT4gIjAiLAoJCSdzZWNzdGFydCcgPT4gImlu IiwKCQknY2F0c3RhcnQnID0+ICJ1bmRlciIsCgkJJ2NhdHNlcCcgPT4gImFuZCIsCgkJJ2F1 dGhvcnNlcCcgPT4gImJ5IiwKCQknYWRkYnJlYWsnID0+ICIwIiwKCQknc2hvd3N1YmRhdGUn ID0+ICIwIiwKCQknc3ViZGF0ZWZvcm1hdCcgPT4gIiVkIiwKCQknc3ViZGF0ZXNlcCcgPT4g IjogIiwKCQknbGltaXQnID0+IDk5OTk5OTk5OSwKCQknZm9ybScgPT4gIiIsCgkJJ2NsYXNz JyA9PiAiIiwKCQknc29ydGJ5JyA9PiAiIiwKCQkndGltZWZyYW1lJyA9PiAiUEFTVCIsCgkJ J3Nob3djb21tZW50c2NvdW50JyA9PiAiMCIsCgkJJ3Nob3d6ZXJvY291bnQnID0+ICIxIiwK CQknY291bnRwcmVmaXgnID0+ICIiLAoJCSdjb3VudHN1ZmZpeCcgPT4gIiIKCSksJGF0dHMp KTsKCgkkY2F0ZWdvcnkgPSBkb1NsYXNoKCRjYXRlZ29yeSk7CgoJZm9yZWFjaCAoZXhwbG9k ZSgnLCcsICRzZWN0aW9uKSBhcyAkc2VjdGlvbikKCXsKCQlzd2l0Y2ggKHN1YnN0cih0cmlt KCRzZWN0aW9uKSwgMCwgMSkpCgkJewoJCQljYXNlICcqJzoKCQkJCSRzY3RzcWxbXSA9ICIg KHNlY3Rpb24gbGlrZSAnJScpICI7CgkJCWJyZWFrOwoJCQljYXNlICchJzoKCQkJCSRub3Rz Y3RzcWxbXSA9ICIgKHNlY3Rpb24gIT0gJyIgLiBkb1NsYXNoKHN0cl9yZXBsYWNlKCchJywn Jywkc2VjdGlvbikpIC4gIicpICI7CgkJCWJyZWFrOwoJCQlkZWZhdWx0OgoJCQkJJHNjdHNx bFtdID0gIiAoc2VjdGlvbiA9ICciIC4gZG9TbGFzaCgkc2VjdGlvbikgLiAiJykgIjsKCQkJ YnJlYWs7CgkJfQoJfQoJJHNlY3Rpb25zID0gJyBBTkQgKCcgLiBAam9pbignIE9SICcsICRz Y3RzcWwpIC4gQGpvaW4oJyBBTkQgJywgJG5vdHNjdHNxbCkgLiAnKSAnOwoKCWZvcmVhY2gg KGV4cGxvZGUoJywnLCAkY2F0ZWdvcnkpIGFzICRjYXRlZ29yeSkgewoJCWlmICgkY2F0ZWdv cnkpICRjYXRzcWxbXSA9ICIgKGNhdGVnb3J5MSA9ICciIC4gdXJsZGVjb2RlKCRjYXRlZ29y eSkgLiAiJykgT1IgKGNhdGVnb3J5MiA9ICciIC4gdXJsZGVjb2RlKCRjYXRlZ29yeSkgLiAi JykgICI7Cgl9CgkkY2F0ZWdvcmllcz0gaXNzZXQoJGNhdHNxbCkgPyAnIEFORCAoJyAuIGpv aW4oJyBPUiAnLCAkY2F0c3FsKSAuICcpICcgOiAiIjsKCglmb3JlYWNoIChleHBsb2RlKCcs JywgJGF1dGhvcikgYXMgJGF1dGhvcikgewoJCWlmICgkYXV0aG9yKSAkYXV0aHNxbFtdID0g IiAoYXV0aG9yaWQgPSAnIiAuICRhdXRob3IgLiAiJykgIjsKCX0KCSRhdXRob3JzPSBpc3Nl dCgkYXV0aHNxbCkgPyAnIEFORCAoJyAuIGpvaW4oJyBPUiAnLCAkYXV0aHNxbCkgLiAnKSAn IDogIiI7CgoJJG9mZnNldHNxbD0gaXNzZXQoJG9mZnNldCkgPyAnTElNSVQgJy4kb2Zmc2V0 LicsOTk5OTk5OTk5OScgOiAiIjsKCglzd2l0Y2ggKCR0aW1lZnJhbWUpIHsKCQljYXNlICJG VVRVUkUiOgoJCQkgJHBvc3RlZCA9ICIgQU5EIHBvc3RlZCA+PSBub3coKSAiOwoJCQkgYnJl YWs7CgkJY2FzZSAiUEFTVCI6CgkJCSAkcG9zdGVkID0gIiBBTkQgcG9zdGVkIDwgbm93KCkg IjsKCQkJIGJyZWFrOwoJCWNhc2UgIkFMTCI6CgkJCSAkcG9zdGVkID0gIiI7CgkJCSBicmVh azsKCQljYXNlICJSRUNFTlQiOgoJCQkkcG9zdGVkID0gIiBBTkQgcG9zdGVkIDw9IEZST01f VU5JWFRJTUUoIi4kcHJldl9wb3N0ZWQuIikiOwoJCQkgYnJlYWs7CgkJY2FzZSAiTEFURVIi OgoJCQkkcG9zdGVkID0gIiBBTkQgcG9zdGVkID49IEZST01fVU5JWFRJTUUoIi4kbmV4dF9w b3N0ZWQuIikiOwoJCQkgYnJlYWs7CgkJZGVmYXVsdDoKCQkJJHBvc3RlZCA9ICIiOwoJfQoK CSRvcmRlcmJ5PSAoJHRpbWVmcmFtZSA9PSAiRlVUVVJFIikgPyAiIE9SREVSIEJZIHBvc3Rl ZCBhc2MgIiA6ICIgT1JERVIgQlkgcG9zdGVkIGRlc2MgIjsKCSRvcmRlcmJ5PSAoJHNvcnRi eSA9PSAiUkFORE9NIikgPyAiIE9SREVSIEJZIHJhbmQoKSAiIDogJG9yZGVyYnkgOwoKCSRz dWJwYXRoID0gcHJlZ19xdW90ZShwcmVnX3JlcGxhY2UoIi9odHRwOlwvXC8uKihcLy4qKS9V aSIsIiQxIixodSksIi8iKTsKCSRyZXEgPSBwcmVnX3JlcGxhY2UoIi9eJHN1YnBhdGgvaSIs Ii8iLHNlcnZlclNldCgnUkVRVUVTVF9VUkknKSk7CglleHRyYWN0KGNob3BVcmwoJHJlcSkp OwoKCSRzaG93WSA9ICgkdTIgIT0gIiIpID8gJHUyLiItIiA6ICIiOwoJJHNob3dNID0gKCR1 MyAhPSAiIikgPyAkdTMuIi0iIDogIiI7Cgkkc2hvd0QgPSAoJHU0ICE9ICIiKSA/ICR1NCA6 ICIiOwoKCWlmICgkc2hvd1kgJiYgaXNfbnVtZXJpYygkdTIpICYmICEkdGhpc2FydGljbGUp ICRwb3N0ZWQgPSAiIEFORCBQb3N0ZWQgTElLRSAnIi4kc2hvd1kuJHNob3dNLiRzaG93RC4i JScgIjsKCgkkd2hlcmUgPSAic3RhdHVzPTQgJHNlY3Rpb25zICRjYXRlZ29yaWVzICRhdXRo b3JzICRwb3N0ZWQgJG9yZGVyYnkgJG9mZnNldHNxbCI7CgoJaWYgKCRmb3JtKSB7CgkJLy8g UEFHSU5HIElORk8KCQkkdG90YWwgPSBnZXRDb3VudCgidGV4dHBhdHRlcm4iLCAkd2hlcmUp OwoJCSRudW1QYWdlcyA9ICgkdG90YWwgPiAwICYmICRsaW1pdCkgPyBjZWlsKCR0b3RhbC8k bGltaXQpIDogMTsKCQkkcGcgPSAoISRwZykgPyAxIDogJHBnOwoJCSRvZmZzZXQgPSAoJHBn IC0gMSkgKiAkbGltaXQ7CgoJCSRwYWdlb3V0WydwZyddICAgICAgICA9ICRwZzsKCQkkcGFn ZW91dFsnbnVtUGFnZXMnXSAgPSAkbnVtUGFnZXM7CgkJJHBhZ2VvdXRbJ3MnXSAgICAgICAg ID0gJHM7CgkJJHBhZ2VvdXRbJ2MnXSAgICAgICAgID0gJGM7CgoJCSRHTE9CQUxTWyd0aGlz cGFnZSddID0gJHBhZ2VvdXQ7CgoJCSRyZXMgPSBzYWZlX3Jvd3MoIiosIHVuaXhfdGltZXN0 YW1wKFBvc3RlZCkgYXMgdVBvc3RlZCIsICJ0ZXh0cGF0dGVybiIsICR3aGVyZS4iIExJTUlU ICIuJG9mZnNldC4iLCIuJGxpbWl0KTsKCgkJaWYgKCRyZXMpIHsKCQkJZm9yZWFjaCgkcmVz IGFzICRhKSB7CgkJCQlleHRyYWN0KCRhKTsKCQkJCXBvcHVsYXRlQXJ0aWNsZURhdGEoJGEp OwoJCQkJJGFydGljbGUgPSBmZXRjaCgnRm9ybScsICd0eHBfZm9ybScsICduYW1lJywgJGZv cm0pOwoJCQkJJGFydGljbGVzW10gPSBwYXJzZSgkYXJ0aWNsZSk7CgkJCQkvLyBGT1IgUEFH SU5HCgkJCQkkR0xPQkFMU1sndVBvc3RlZCddID0gJHVQb3N0ZWQ7CgkJCQkkR0xPQkFMU1sn bGltaXQnXSA9ICRsaW1pdDsKCQkJCXVuc2V0KCRHTE9CQUxTWyd0aGlzYXJ0aWNsZSddKTsK CQkJfQoJCQlyZXR1cm4gam9pbignJywkYXJ0aWNsZXMpOwoJCX0KCX0KCglpZiAoJGxpbWl0 KSAkd2hlcmUuPSAiIExJTUlUICRsaW1pdCI7CgkkcmVzID0gc2FmZV9yb3dzKCJJRCwgdGl0 bGUsIGF1dGhvcmlkLCB1bml4X3RpbWVzdGFtcChQb3N0ZWQpIGFzIHBvc3RlZCwgc2VjdGlv biwgY2F0ZWdvcnkxLCBjYXRlZ29yeTIsIHVybF90aXRsZSwgZXhjZXJwdCwgY29tbWVudHNf Y291bnQiLCJ0ZXh0cGF0dGVybiIsICR3aGVyZSk7CgkkbGFzdGQgPSBzYWZlX3N0cmZ0aW1l KCRkYXRlZm9ybWF0LCAtMjIwODk4ODgwMCk7CgkkY291bnQ9MDsKCSRvdXRwdXQgPSBhcnJh eSgpOwoKCWlmICgkcmVzKSB7CgkJJG91dHB1dFtdID0gIjxkbCI7CgkJJG91dHB1dFtdID0g aXNzZXQoJGNsYXNzKSA/ICIgY2xhc3M9XCIkY2xhc3NcIiIgOiAiIjsKCQkkb3V0cHV0W10g PSBpc3NldCgkaWQpICYmICgkaWQpID8gIiBpZD1cIiRpZFwiIiA6ICIiOwoJCSRvdXRwdXRb XSA9ICI+IjsKCgkJZm9yZWFjaCgkcmVzIGFzICRhKSB7CgkJCSRkYXRlID0gc2FmZV9zdHJm dGltZSgkZGF0ZWZvcm1hdCwkYVsicG9zdGVkIl0pOwoJCQkkc3ViZGF0ZSA9IHNhZmVfc3Ry ZnRpbWUoJHN1YmRhdGVmb3JtYXQsJGFbInBvc3RlZCJdKTsKCQkJJHRpdGxlID0gKCRhWyJ1 cmxfdGl0bGUiXSkgPyAkYVsidXJsX3RpdGxlIl06IHN0cmlwU3BhY2UoJGFbInRpdGxlIl0p OwoJCQkkdGl0bGUgPSAoJHVybF9tb2RlKSA/ICR0aXRsZSA6ICcnOwoJCQkkc2hvd3RpdGxl ID0gJGFbInRpdGxlIl07CgkJCSRzZWN0aW9uID0gJGFbInNlY3Rpb24iXTsKCQkJJGlkID0g JGFbIklEIl07CgkJCSRjYXQxID0gJGFbImNhdGVnb3J5MSJdOwoJCQkkY2F0MiA9ICRhWyJj YXRlZ29yeTIiXTsKCQkJJGF1dGhvciA9ICRhWyJhdXRob3JpZCJdOwoJCQkkZXhjZXJwdCA9 ICRhWyJleGNlcnB0Il07CgkJCSRjYyA9ICRhWyJjb21tZW50c19jb3VudCJdOwoKCQkJaWYg KCRzaG93YXV0aG9yKSB7CgkJCQkkYXV0aHJlcyA9IHNhZmVfcm93KCJyZWFsbmFtZSIsInR4 cF91c2VycyIsICJuYW1lPSckYXV0aG9yJyIpOwoJCQkJJGFyZWFsbmFtZSA9ICRhdXRocmVz WyJyZWFsbmFtZSJdOwoJCQl9CgoJCQkkcGVybWxpbmsgPSBwZXJtbGlua3VybCgkYSk7CgkJ CSRzZWN0aW9ubGluayA9ICgkdXJsX21vZGUpID8gdXJsZW5jb2RlKCRzZWN0aW9uKSA6ICc/ cz0nLnVybGVuY29kZSgkc2VjdGlvbik7CgkJCSRjc2xpbmsgPSAoJHVybF9tb2RlKSA/IHVy bGVuY29kZSgkcykgOiAnP3M9Jy51cmxlbmNvZGUoJHMpOwoJCQkkYXV0aG9ybGluayA9ICgk dXJsX21vZGUpID8gJGNzbGluay4nLz9hdXRob3I9Jy51cmxlbmNvZGUoJGF1dGhvcikgOiAk Y3NsaW5rLicmYW1wO2F1dGhvcj0nLnVybGVuY29kZSgkYXV0aG9yKTsKCQkJJGNhdDFsaW5r ID0gKCR1cmxfbW9kZSkgPyAkc2VjdGlvbmxpbmsuJy8/Yz0nLnVybGVuY29kZSgkY2F0MSkg OiAkc2VjdGlvbmxpbmsuJyZhbXA7Yz0nLnVybGVuY29kZSgkY2F0MSk7CgkJCSRjYXQybGlu ayA9ICgkdXJsX21vZGUpID8gJHNlY3Rpb25saW5rLicvP2M9Jy51cmxlbmNvZGUoJGNhdDIp IDogJHNlY3Rpb25saW5rLicmYW1wO2M9Jy51cmxlbmNvZGUoJGNhdDIpOwoKCQkJJGNudCA9 ICghJHNob3d6ZXJvY291bnQgJiYgJGNjID09IDApID8gIiIgOiAkY291bnRwcmVmaXguJGNj LiRjb3VudHN1ZmZpeDsKCQkJJGNvbW1jb3VudCA9ICgkc2hvd2NvbW1lbnRzY291bnQpID8g JzxzcGFuIGNsYXNzPSJyc3NDbW50Q250Ij4nLiRjbnQuJzwvc3Bhbj4nIDogJyc7CgoJCQkk b3V0cHV0W10gPSAoJGxhc3RkICE9ICRkYXRlKSA/ICI8ZHQ+JGRhdGU8L2R0PiIubiA6ICIi OwoJCQkkb3V0cHV0W10gPSAiPGRkPiI7CgkJCSRvdXRwdXRbXSA9ICgkc2hvd3N1YmRhdGUg PT0gIjEiKSA/ICc8c3BhbiBjbGFzcz0icnNzU3ViZGF0ZSI+Jy4kc3ViZGF0ZS4kc3ViZGF0 ZXNlcC4nPC9zcGFuPicgOiAiIjsKCQkJJG91dHB1dFtdID0gIjxhIGhyZWY9XCIkcGVybWxp bmtcIiB0aXRsZT1cIlBlcm1hbmVudCBsaW5rIHRvICRzaG93dGl0bGVcIiBjbGFzcz1cInJz c0FydGljbGUiOwoJCQkkb3V0cHV0W10gPSAoKyskY291bnQgJSAyKSA/ICIgcnNzQWx0IiA6 ICIiOwoJCQkkb3V0cHV0W10gPSAiXCI+IjsKCQkJJG91dHB1dFtdID0gIiRzaG93dGl0bGU8 L2E+IjsKCQkJJG91dHB1dFtdID0gJGNvbW1jb3VudDsKCQkJJG91dHB1dFtdID0gKCRhZGRi cmVhaykgPyAiPGJyLz4iIDogIiI7CgkJCSRvdXRwdXRbXSA9ICgkc2hvd2F1dGhvcikgPyAi ICRhdXRob3JzZXAgPGEgaHJlZj1cIiRhdXRob3JsaW5rXCIgdGl0bGU9XCJMaW5rIHRvIGFy dGljbGVzIGJ5ICRhdXRob3JcIiBjbGFzcz1cInJzc0F1dGhvclwiPiRhcmVhbG5hbWU8L2E+ ICIgOiAiIjsKCQkJJG91dHB1dFtdID0gKCRzaG93c2VjdGlvbikgPyAiICRzZWNzdGFydCA8 YSBocmVmPVwiJHNlY3Rpb25saW5rXCIgdGl0bGU9XCJMaW5rIHRvICRzZWN0aW9uIHNlY3Rp b25cIiBjbGFzcz1cInJzc1NlY3Rpb25cIj4kc2VjdGlvbjwvYT4gIiA6ICIiOwoJCQkkY2F0 b25lID0gJHNob3djYXRzICYmICRjYXQxOwoJCQkkY2F0dHdvID0gJHNob3djYXRzICYmICRj YXQyOwoJCQkkb3V0cHV0W10gPSAoJGNhdG9uZSkgPyAiICRjYXRzdGFydCA8YSBocmVmPVwi JGNhdDFsaW5rXCIgdGl0bGU9XCJMaW5rIHRvICRjYXQxXCIgY2xhc3M9XCJyc3NDYXRcIj4i LmZldGNoX2NhdGVnb3J5X3RpdGxlKCRjYXQxKS4iPC9hPiAiIDogIiI7CgkJCSRvdXRwdXRb XSA9ICgkY2F0dHdvKSA/ICIgJGNhdHNlcCA8YSBocmVmPVwiJGNhdDJsaW5rXCIgdGl0bGU9 XCJMaW5rIHRvICRjYXQyXCIgY2xhc3M9XCJyc3NDYXRcIj4iLmZldGNoX2NhdGVnb3J5X3Rp dGxlKCRjYXQyKS4iPC9hPiAiIDogIiI7CgkJCSRvdXRwdXRbXSA9ICgkc2hvd2V4Y2VycHQp ID8gIjxici8+JGV4Y2VycHQiIDogIiI7CgkJCSRvdXRwdXRbXSA9ICI8L2RkPiIubjsKCQkJ JGxhc3RkID0gJGRhdGU7CgkJfQoJCSRvdXRwdXRbXSA9ICI8L2RsPiI7Cgl9CgoJcmV0dXJu ICgkb3V0cHV0KSA/IGltcGxvZGUoJycsICRvdXRwdXQpIDogJyc7Cn0KCmZ1bmN0aW9uIHJz c19zdXBhcmNoaXZlX2J5Y2F0KCRhdHRzKSB7CglnbG9iYWwgJHMsICRjLCAkdXJsX21vZGUs ICRwcmV0ZXh0LCAkc2l0ZXVybCwgJGlkOwoKCWV4dHJhY3QobEF0dHMoYXJyYXkoCgkJJ3Nl Y3Rpb24nID0+ICJhcnRpY2xlIiwKCQknc2hvd2hlYWRlcicgPT4gIjAiLAoJCSdoZWFkZXJs YWJlbCcgPT4gIkFydGljbGVzIEJ5IENhdGVnb3J5OiIsCgkJJ3Nob3dtZW51JyA9PiAiMCIs CgkJJ3Nob3djYXRzJyA9PiAiMSIsCgkJJ3Nob3djYXRzb25seScgPT4gIjAiLAoJCSdzaG93 Y2F0Y291bnQnID0+ICIxIiwKCQknc2hvd3NlY3Rpb25zJyA9PiAiMCIsCgkJJ3Nob3dzZWN0 aW9uY291bnQnID0+ICIwIiwKCQknc2hvd2p1bXAnID0+ICIwIiwKCQknanVtcGxhYmVsJyA9 PiAiXiBiYWNrIHRvIHRvcCIsCgkJJ3VzZWFydGNhdDEnID0+ICIwIiwKCQkndXNlYXJ0Y2F0 MicgPT4gIjAiLAoJCSd1c2VhcnRjYXRzJyA9PiAiMCIsCgkJJ2xpbWl0JyA9PiAiOTk5OTk5 OTk5IiwKCQkndGltZWZyYW1lJyA9PiAiUEFTVCIsCgkJJ2xpbmt0b3NlY3Rpb24nID0+ICIi LAoJCSdmb3JtJyA9PiAiIiwKCQknZm9ybXdyYXB0YWcnID0+ICIiLAoJCSdhZGRicmVhaycg PT4gIjAiLAoJCSdzaG93ZGF0ZScgPT4gIjAiLAoJCSdkYXRlZm9ybWF0JyA9PiAiJUIgJWQs ICVZIiwKCQknZGF0ZXNlcCcgPT4gIiAmcmFxdW8sICIsCgkJJ3Nob3dleGNlcnB0JyA9PiAi MCIsCgkJJ3Nob3dhdXRob3InID0+ICIwIiwKCQknYXV0aG9yc2VwJyA9PiAiYnkgIiwKCQkn c2hvd2NvbW1lbnRzY291bnQnID0+ICIwIiwKCQknc2hvd3plcm9jb3VudCcgPT4gIjEiLAoJ CSdjb3VudHByZWZpeCcgPT4gIiIsCgkJJ2NvdW50c3VmZml4JyA9PiAiIgoJKSwkYXR0cykp OwoKCSRzZWN0aW9uID0gaXNzZXQoJHNlY3Rpb24pID8gJHNlY3Rpb24gOiAiIjsKCSRsaW5r dG9zZWN0aW9uID0gKCRsaW5rdG9zZWN0aW9uKSA/ICRsaW5rdG9zZWN0aW9uLiIvIiA6ICIi OwoKCWlmICgkdXNlYXJ0Y2F0MSB8fCAkdXNlYXJ0Y2F0MiB8fCAkdXNlYXJ0Y2F0cykgewoJ CSRjYSA9IHNhZmVfcm93KCdjYXRlZ29yeTEsIGNhdGVnb3J5MicsICd0ZXh0cGF0dGVybics ICdpZD0nLiRpZCk7CgkJZXh0cmFjdCgkY2EpOwoJfQoKCSRjYXRzcWwgPSAoJHVzZWFydGNh dDEpID8gIiBBTkQgbmFtZSA9ICciLiRjYXRlZ29yeTEuIicgIiA6ICIiOwoJJGNhdHNxbC49 ICgkdXNlYXJ0Y2F0MikgPyAiIEFORCBuYW1lID0gJyIuJGNhdGVnb3J5Mi4iJyAiIDogIiI7 CgoJaWYgKCR1c2VhcnRjYXRzKSB7CgkkY2F0c3FsID0gIiBBTkQgKG5hbWUgPSAnIi4kY2F0 ZWdvcnkxLiInIE9SIG5hbWUgPSAnIi4kY2F0ZWdvcnkyLiInKSAiOwoJfSBlbHNlIHsKCWlm ICgkYyAmJiAhJHNob3djYXRzb25seSkgJGNhdHNxbCA9ICIgQU5EIG5hbWUgPSAnIi4kYy4i JyAiOwoJfQoKCWZvcmVhY2ggKGV4cGxvZGUoJywnLCAkc2VjdGlvbikgYXMgJHNlY3Rpb24p Cgl7CgkJc3dpdGNoIChzdWJzdHIodHJpbSgkc2VjdGlvbiksIDAsIDEpKQoJCXsKCQkJY2Fz ZSAnKic6CgkJCQkkc2N0c3FsW10gPSAiIChzZWN0aW9uIGxpa2UgJyUnKSAiOwoJCQlicmVh azsKCQkJY2FzZSAnISc6CgkJCQkkbm90c2N0c3FsW10gPSAiIEFORCAoc2VjdGlvbiAhPSAn IiAuIGRvU2xhc2goc3RyX3JlcGxhY2UoJyEnLCcnLCRzZWN0aW9uKSkgLiAiJykgIjsKCQkJ YnJlYWs7CgkJCWRlZmF1bHQ6CgkJCQkkc2N0c3FsW10gPSAiIChzZWN0aW9uID0gJyIgLiBk b1NsYXNoKCRzZWN0aW9uKSAuICInKSAiOwoJCQlicmVhazsKCQl9Cgl9Cgkkc2Vjc3FsID0g KCRzZWN0aW9uICE9IG51bGwpICA/ICcgQU5EICgnIC4gam9pbignIE9SICcsICRzY3RzcWwp IC4gQGpvaW4oJyBBTkQgJywgJG5vdHNjdHNxbCkgLiAnKSAnIDogJyc7CgoJJHN1YnBhdGgg PSBwcmVnX3F1b3RlKHByZWdfcmVwbGFjZSgiL2h0dHA6XC9cLy4qKFwvLiopL1VpIiwiJDEi LGh1KSwiLyIpOwoJJHJlcSA9IHByZWdfcmVwbGFjZSgiL14kc3VicGF0aC9pIiwiLyIsc2Vy dmVyU2V0KCdSRVFVRVNUX1VSSScpKTsKCWV4dHJhY3QoY2hvcFVybCgkcmVxKSk7CgoJJHNo b3dZID0gKCR1MiAhPSAiIikgPyAkdTIuIi0iIDogIiI7Cgkkc2hvd00gPSAoJHUzICE9ICIi KSA/ICR1My4iLSIgOiAiIjsKCSRzaG93RCA9ICgkdTQgIT0gIiIpID8gJHU0IDogIiI7CgoJ JGRhdGVwb3N0ZWQgPSAoJHNob3dZICYmIGlzX251bWVyaWMoJHUzKSkgPyAiIEFORCBQb3N0 ZWQgTElLRSAnIi4kc2hvd1kuJHNob3dNLiRzaG93RC4iJScgIiA6ICIgQU5EIHBvc3RlZCA8 IG5vdygpIjsKCgkkcSA9ICdTRUxFQ1QgRElTVElOQ1QgbmFtZSBGUk9NICcuUEZYLid0eHBf Y2F0ZWdvcnksICcuUEZYLid0ZXh0cGF0dGVybiBXSEVSRSBuYW1lICE9ImRlZmF1bHQiIGFu ZCB0eXBlPSJhcnRpY2xlIiBhbmQgKGNhdGVnb3J5MSA9IG5hbWUgb3IgY2F0ZWdvcnkyID0g bmFtZSkgJy4gJGNhdHNxbC4kc2Vjc3FsIC4nQU5EIHN0YXR1cz00ICcuJGRhdGVwb3N0ZWQu JyBPUkRFUiBCWSBuYW1lJzsKCSRyc2MgPSBnZXRSb3dzKCRxLCIiKTsKCglpZiAoJHJzYyAm JiAkc2hvd21lbnUpIHsKCQlmb3JlYWNoKCRyc2MgYXMgJHIpIHsKCQkJZXh0cmFjdCgkcik7 CgkJCSRjYXRuYW1lID0gJHJbIm5hbWUiXTsKCQkJJGNtW10gPSAnPGxpPjxhIGhyZWY9IiNj Xycuc3RyaXBTcGFjZSgkY2F0bmFtZSkuJyI+Jy5mZXRjaF9jYXRlZ29yeV90aXRsZSgkY2F0 bmFtZSkuJzwvYT48L2xpPicubjsKCQl9CgkJJGNhdG1lbnUgPSAnPHVsIGNsYXNzPSJyc3ND YXRBcmNoaXZlTWVudSI+Jy5pbXBsb2RlKCcnLCAkY20pLic8L3VsPicubjsKCX0KCgkkb3V0 W10gPSAoISRmb3JtKSA/ICc8ZGl2IGlkPSJyc3NDYXRBcmNoaXZlIj4nLm4gOiAnJzsKCSRv dXRbXSA9ICgkc2hvd2hlYWRlcikgPyAnPGRpdiBpZD0icnNzQ2F0QXJjaGl2ZUhlYWRlciI+ Jy4kaGVhZGVybGFiZWwuJzwvZGl2PicubiA6ICcnOwoKCSRvdXRbXSA9ICgkc2hvd21lbnUp ID8gJGNhdG1lbnUgOiAnJzsKCgkkcnMgPSBnZXRSb3dzKCRxLCIiKTsKCglpZiAoJHJzKSB7 CgkJJG91dFtdID0gKCEkZm9ybSkgPyAnPGRpdiBpZD0icnNzQ2F0TGlzdCI+Jy5uIDogJyc7 CgkJJG91dFtdID0gKCRzaG93Y2F0c29ubHkgJiYgISRmb3JtKSA/ICc8dWw+JyA6ICcnOwoJ CWZvcmVhY2goJHJzIGFzICRhKSB7CgkJCWV4dHJhY3QoJGEpOwoJCQkkY2F0bmFtZSA9ICRh WyJuYW1lIl07CgoJCQlzd2l0Y2ggKCR0aW1lZnJhbWUpIHsKCQkJCWNhc2UgIkZVVFVSRSI6 CgkJCQkJICRwb3N0ZWQgPSAiIEFORCBwb3N0ZWQgPj0gbm93KCkgIjsKCQkJCQkgYnJlYWs7 CgkJCQljYXNlICJQQVNUIjoKCQkJCQkgJHBvc3RlZCA9ICIgQU5EIHBvc3RlZCA8IG5vdygp ICI7CgkJCQkJIGJyZWFrOwoJCQkJY2FzZSAiQUxMIjoKCQkJCQkgJHBvc3RlZCA9ICIiOwoJ CQkJCSBicmVhazsKCQkJCWRlZmF1bHQ6CgkJCQkJJHBvc3RlZCA9ICIiOwoJCQl9CgoJCQkk cG9zdGVkID0gKCRzaG93WSAmJiBpc19udW1lcmljKCR1MykpID8gIiBBTkQgUG9zdGVkIExJ S0UgJyIuJHNob3dZLiRzaG93TS4kc2hvd0QuIiUnICIgOiAkcG9zdGVkOwoKCQkJJG5vaWRz cWwgPSAoJHVzZWFydGNhdDEgfHwgJHVzZWFydGNhdDIgfHwgJHVzZWFydGNhdHMpID8gImlk IDw+ICIuJGlkLiIgQU5EICIgOiAiIjsKCQkJJHNjc3FsID0gJG5vaWRzcWwuICIgKGNhdGVn b3J5MSA9ICciIC4gZG9TbGFzaCgkY2F0bmFtZSkgLiAiJyBvciBjYXRlZ29yeTIgPSAnIiAu IGRvU2xhc2goJGNhdG5hbWUpIC4gIicpIiAuJHNlY3NxbC4gIiBBTkQgc3RhdHVzPTQgJHBv c3RlZCBPUkRFUiBCWSBzZWN0aW9uLCBwb3N0ZWQgZGVzYyI7CgoJCQkkcnNjbnQgPSBzYWZl X3Jvd3MoIiosIHVuaXhfdGltZXN0YW1wKFBvc3RlZCkgYXMgdVBvc3RlZCwgSUQsIHRpdGxl LCBhdXRob3JpZCwgdW5peF90aW1lc3RhbXAocG9zdGVkKSBhcyBwb3N0ZWQsIHNlY3Rpb24s IGNhdGVnb3J5MSwgY2F0ZWdvcnkyLCB1cmxfdGl0bGUiLCJ0ZXh0cGF0dGVybiIsICRzY3Nx bCk7CgkJCSRjYXRjbnQgPSAoJHNob3djYXRzICYmICRzaG93Y2F0Y291bnQpID8gIiAoIi5j b3VudCgkcnNjbnQpLiIpICIgOiAiIjsKCgkJCWlmICgkc2hvd2NhdHNvbmx5ICYmICEkZm9y bSkgewoJCQkJJG91dFtdID0gKCRzaG93Y2F0cykgPyAnPGxpPjxhIGhyZWY9IicuaHUuJGxp bmt0b3NlY3Rpb24uJz9jPScudXJsZW5jb2RlKCRjYXRuYW1lKS4nIiB0aXRsZT0iVmlldyBh bGwgYXJ0aWNsZXMgZmlsZWQgdW5kZXIgJy4kY2F0bmFtZS4nIj4nLmZldGNoX2NhdGVnb3J5 X3RpdGxlKCRjYXRuYW1lKS4nPC9hPicuJGNhdGNudC4nPC9saT4nLm4gOiAnJzsKCQkJfSBl bHNlICB7CgkJCQkkb3V0W10gPSAoJHNob3djYXRzKSA/ICc8ZGl2IGlkPSJjXycuc3RyaXBT cGFjZSgkY2F0bmFtZSkuJyIgY2xhc3M9InJzc0NjYXQiPjxhIGhyZWY9IicuaHUuJGxpbmt0 b3NlY3Rpb24uJz9jPScudXJsZW5jb2RlKCRjYXRuYW1lKS4nIiB0aXRsZT0iVmlldyBhbGwg YXJ0aWNsZXMgZmlsZWQgdW5kZXIgJy4kY2F0bmFtZS4nIj4nLmZldGNoX2NhdGVnb3J5X3Rp dGxlKCRjYXRuYW1lKS4nPC9hPicuJGNhdGNudC4nPC9kaXY+Jy5uIDogJyc7CgkJCX0KCgkJ CQlpZiAoJGZvcm0pIHsKCQkJCQkvLyBQQUdJTkcgSU5GTwoJCQkJCSR0b3RhbCA9IGdldENv dW50KCJ0ZXh0cGF0dGVybiIsICRzY3NxbCk7CgkJCQkJJG51bVBhZ2VzID0gKCR0b3RhbCA+ IDAgJiYgJGxpbWl0KSA/IGNlaWwoJHRvdGFsLyRsaW1pdCkgOiAxOwoJCQkJCSRwZyA9ICgh JHBnKSA/IDEgOiAkcGc7CgkJCQkJJG9mZnNldCA9ICgkcGcgLSAxKSAqICRsaW1pdDsKCgkJ CQkJJHBhZ2VvdXRbJ3BnJ10gICAgICAgID0gJHBnOwoJCQkJCSRwYWdlb3V0WydudW1QYWdl cyddICA9ICRudW1QYWdlczsKCQkJCQkkcGFnZW91dFsncyddICAgICAgICAgPSAkczsKCQkJ CQkkcGFnZW91dFsnYyddICAgICAgICAgPSAkYzsKCgkJCQkJJEdMT0JBTFNbJ3RoaXNwYWdl J10gPSAkcGFnZW91dDsKCgkJCQkJJGZybVdoZXJlID0gJHNjc3FsLiIgTElNSVQgIi4kb2Zm c2V0LiIsIi4kbGltaXQ7CgkJCQkJJHJlcyA9IHNhZmVfcm93cygiKiwgdW5peF90aW1lc3Rh bXAoUG9zdGVkKSBhcyB1UG9zdGVkIiwgInRleHRwYXR0ZXJuIiwgJGZybVdoZXJlKTsKCgkJ CQkJaWYgKCRyZXMpIHsKCQkJCQkJZm9yZWFjaCgkcmVzIGFzICRiKSB7CgkJCQkJCQlleHRy YWN0KCRiKTsKCQkJCQkJCXBvcHVsYXRlQXJ0aWNsZURhdGEoJGIpOwoJCQkJCQkJJGFydGlj bGUgPSBmZXRjaCgnRm9ybScsICd0eHBfZm9ybScsICduYW1lJywgJGZvcm0pOwoJCQkJCQkJ JGFydGljbGVzW10gPSBwYXJzZSgkYXJ0aWNsZSk7CgkJCQkJCQkvLyBGT1IgUEFHSU5HCgkJ CQkJCQkkR0xPQkFMU1sndVBvc3RlZCddID0gJHVQb3N0ZWQ7CgkJCQkJCQkkR0xPQkFMU1sn bGltaXQnXSA9ICRsaW1pdDsKCQkJCQkJCXVuc2V0KCRHTE9CQUxTWyd0aGlzYXJ0aWNsZSdd KTsKCQkJCQkJfQoJCQkJCX0KCQkJCQkkb3V0W10gPSAoJGZvcm13cmFwdGFnKSA/IHRhZyhq b2luKCcnLCRhcnRpY2xlcyksICRmb3Jtd3JhcHRhZykgOiBqb2luKCcnLCRhcnRpY2xlcyk7 CgkJCQkJdW5zZXQoJGFydGljbGVzKTsKCQkJfQoKCQkJaWYgKCEkZm9ybSkgewoJCQkJaWYg KCRsaW1pdCkgJHNjc3FsLj0gIiBMSU1JVCAkbGltaXQiOwoJCQkJJHJzMyA9IHNhZmVfcm93 cygiKiwgdW5peF90aW1lc3RhbXAoUG9zdGVkKSBhcyB1UG9zdGVkLCBJRCwgdGl0bGUsIGF1 dGhvcmlkLCB1bml4X3RpbWVzdGFtcChwb3N0ZWQpIGFzIHBvc3RlZCwgc2VjdGlvbiwgY2F0 ZWdvcnkxLCBjYXRlZ29yeTIsIHVybF90aXRsZSwgY29tbWVudHNfY291bnQiLCJ0ZXh0cGF0 dGVybiIsICRzY3NxbCk7CgkJCQkkbGFzdHMgPSAiIjsKCQkJfQoKCQkJaWYgKCRyczMgJiYg ISRzaG93Y2F0c29ubHkgJiYgISRmb3JtKSB7CgkJCQkkb3V0W10gPSAnPHVsPicubjsKCQkJ CWZvcmVhY2goJHJzMyBhcyAkZCkgewoJCQkJCSRhaWQ9ICRkWyJJRCJdOwoJCQkJCSRhc2Vj dGlvbj0gJGRbInNlY3Rpb24iXTsKCgkJCQkJJHRpdGxlID0gKCRkWyJ1cmxfdGl0bGUiXSkg PyAkZFsidXJsX3RpdGxlIl06IHN0cmlwU3BhY2UoJGRbInRpdGxlIl0pOwoJCQkJCSR0aXRs ZSA9ICgkdXJsX21vZGUpID8gJHRpdGxlIDogJyc7CgkJCQkJJHNob3d0aXRsZSA9ICRkWyJ0 aXRsZSJdOwoJCQkJCSRwb3N0ZGF0ZSA9IHNhZmVfc3RyZnRpbWUoJGRhdGVmb3JtYXQsJGRb InBvc3RlZCJdKTsKCQkJCQkkYXV0aG9yID0gJGRbImF1dGhvcmlkIl07CgkJCQkJJGV4Y2Vy cHQgPSAkZFsiZXhjZXJwdCJdOwoJCQkJCSRjYyA9ICRkWyJjb21tZW50c19jb3VudCJdOwoK CQkJCQkkY250ID0gKCEkc2hvd3plcm9jb3VudCAmJiAkY2MgPT0gMCkgPyAiIiA6ICRjb3Vu dHByZWZpeC4kY2MuJGNvdW50c3VmZml4OwoJCQkJCSRjb21tY291bnQgPSAoJHNob3djb21t ZW50c2NvdW50KSA/ICc8c3BhbiBjbGFzcz0icnNzQ21udENudCI+Jy4kY250Lic8L3NwYW4+ JyA6ICcnOwoKCQkJCQkkYXV0aHJlcyA9IHNhZmVfcm93KCJyZWFsbmFtZSIsInR4cF91c2Vy cyIsICJuYW1lPSckYXV0aG9yJyIpOwoJCQkJCSRhcmVhbG5hbWUgPSAkYXV0aHJlc1sicmVh bG5hbWUiXTsKCgkJCQkJJHBlcm1saW5rID0gcGVybWxpbmt1cmwoJGQpOwoKCQkJCQlpZiAo JGxhc3RzICE9ICRhc2VjdGlvbiAmJiAkc2hvd3NlY3Rpb25zKSB7CgkJCQkJCSRzY3RjbnQg PSAoJHNob3dzZWN0aW9uY291bnQpID8gIiAoIi5jb3VudCgkcnMzKS4iKSIgOiAiIjsKCQkJ CQkJJG91dFtdID0gJzxsaT48ZGl2IGNsYXNzPSJyc3NDc2VjIj5pbiA8YSBocmVmPSInLmh1 LiRhc2VjdGlvbi4nLz9jPScuJGNhdG5hbWUuJyIgdGl0bGU9IlZpZXcgYXJ0aWNsZXMgZmls ZWQgdW5kZXIgJy4kY2F0bmFtZS4nIGluICcuJGFzZWN0aW9uLiciPicuJGFzZWN0aW9uLic8 L2E+Jy4kc2N0Y250Lic8L2Rpdj48L2xpPicubjsKCQkJCQkJJGNudCA9IDE7CgkJCQkJfQoK CQkJCQkkb3V0W10gPSAnPGxpIGNsYXNzPSJyc3NDYXJ0Ij4nOwoJCQkJCSRvdXRbXSA9ICc8 YSBocmVmPSInLiRwZXJtbGluay4nIiB0aXRsZT0iUGVybWFuZW50IGxpbmsgdG8gJy4kc2hv d3RpdGxlLiciPicuJHNob3d0aXRsZS4nPC9hPic7CgkJCQkJJG91dFtdID0gJGNvbW1jb3Vu dDsKCQkJCQkkb3V0W10gPSAoJGFkZGJyZWFrKSA/ICI8YnIvPiIgOiAiIjsKCQkJCQkkb3V0 W10gPSAoJHNob3dhdXRob3IpID8gJGF1dGhvcnNlcC4kYXJlYWxuYW1lIDogIiI7CgkJCQkJ JG91dFtdID0gKCRzaG93ZGF0ZSkgPyAnPHNwYW4gY2xhc3M9InJzc1N1YmRhdGUiPicuJGRh dGVzZXAuJHBvc3RkYXRlLic8L3NwYW4+JyA6ICcnOwoJCQkJCSRvdXRbXSA9ICgkc2hvd2V4 Y2VycHQpID8gIjxici8+JGV4Y2VycHQiIDogIiI7CgoJCQkJCSRvdXRbXSA9ICc8L2xpPicu bjsKCgkJCQkJJGNudCsrOwoJCQkJCSRsYXN0cyA9ICRhc2VjdGlvbjsKCQkJCX0KCQkJCSRv dXRbXSA9ICc8L3VsPicubjsKCQkJCSRvdXRbXSA9ICgkc2hvd2p1bXApID8gJzxkaXYgY2xh c3M9InJzc0p1bXAiPjxhIGhyZWY9IiNyc3NDYXRBcmNoaXZlIj4nLiAkanVtcGxhYmVsIC4n PC9hPjwvZGl2PicgOiAnJzsKCQkJfQoJCX0KCQkkb3V0W10gPSAoJHNob3djYXRzb25seSAm JiAhJGZvcm0pID8gJzwvdWw+JyA6ICcnOwoJCSRvdXRbXSA9ICghJGZvcm0pID8gbi4nPC9k aXY+Jy5uLic8L2Rpdj4nLm4gOiAnJzsKCX0KCXJldHVybiAoJG91dCkgPyBpbXBsb2RlKCcn LCAkb3V0KSA6ICcnOwp9CiI7czo0OiJ0eXBlIjtzOjE6IjAiO3M6NToib3JkZXIiO3M6MToi NSI7czo0OiJoZWxwIjtzOjE4MzI4OiI8cD4KPGhyPjxiciAvPgo8YSBocmVmPSJodHRwOi8v d3d3LndpbHNoaXJlb25lLmNvbS90ZXh0cGF0dGVybi1wbHVnaW5zL3Jzcy1zdXBhcmNoaXZl Ij5MYXRlc3QgRG9jdW1lbnRhdGlvbjwvYT48YnIgLz4KPGhyPjxiciAvPgpUaGUgPGEgaHJl Zj0iI3Jzc19zdXBhcmNoaXZlIj5yc3Nfc3VwYXJjaGl2ZTwvYT4gaXMgdXNlZCB0byBnZW5l cmF0ZSBhbiBhcnRpY2xlIGxpc3RpbmcgZ3JvdXBlZCBieSBkYXRlLiAgVGhlIG92ZXJhbGwg c3RydWN0dXJlIHVzZWQgZm9yIHRoZSBhcmNoaXZlIGlzIHRoZSA8c3BhbiBjbGFzcz0iY2Fw cyI+WEhUTUw8L3NwYW4+IERlZmluaXRpb24gTGlzdCAoPGNvZGU+JiMzODtsdDtkbCYjMzg7 Z3Q7PC9jb2RlPiwgPGNvZGU+JiMzODtsdDtkdCYjMzg7Z3Q7PC9jb2RlPiBhbmQgPGNvZGU+ JiMzODtsdDtkZCYjMzg7Z3Q7PC9jb2RlPiB0YWdzKS4gIEVudHJpZXMgd2lsbCBiZSBncm91 cGVkIGJ5IGRhdGUgdW5kZXIgdGhlIDxjb2RlPiYjMzg7bHQ7ZHQmIzM4O2d0OzwvY29kZT4g dGFnLiAgVGhlIHBsdWdpbiBzdXBwb3J0cyBtdWx0aXBsZSBzZWN0aW9ucyBhbmQgY2FuIG91 dHB1dCBsaW5rcyB0byB0aGUgc2VjdGlvbiBhbmQgY2F0ZWdvcmllcyBvZiBhIHBhcnRpY3Vs YXIgYXJ0aWNsZS4gIFRoZSBhcmNoaXZlIGNhbiBiZSBmaWx0ZXJlZCBieSBkYXksIG1vbnRo IG9yIHllYXIgYnkgZ2VuZXJhdGluZyBVUkxzIGluIHRoZSBmb3JtYXQgL3lvdXJhcmNoaXZl c2VjdGlvbi95eXl5L21tL2RkIG9yIC95b3VyYXJjaGl2ZXNlY3Rpb24veXl5eS9tbSBvciAv eW91cmFyY2hpdmVzZWN0aW9uL3l5eXksIHdoaWNoIGlzIGRvbmUgYnkgdXNpbmcgdGhlIHJz c19zdXBhcmNoaXZlX21lbnUgdGFnIG9yIHRoZSByc3NfcG9zdGVkIHBsdWdpbi48YnIgLz4K VGhlIDxhIGhyZWY9IiNyc3Nfc3VwYXJjaGl2ZV9ieWNhdCI+cnNzX3N1cGFyY2hpdmVfYnlj YXQ8L2E+IGlzIHVzZWQgdG8gZ2VuZXJhdGUgYW4gYXJ0aWNsZSBsaXN0aW5nIGdyb3VwZWQg YnkgY2F0ZWdvcnkgYW5kIG9wdGlvbmFsbHkgYnkgc2VjdGlvbiBpbiB0aGUgZm9ybSBvZiBh biB1bm9yZGVyZWQgbGlzdC4gIEl0IGNhbiBhbHNvIGJlIHVzZWQgdG8gZ2VuZXJhdGUgcmVs YXRlZCBhcnRpY2xlIGxpc3RpbmdzLiAgVGhlIGFyY2hpdmUgY2FuIGJlIGZpbHRlcmVkIGJ5 IGRheSwgbW9udGggb3IgeWVhciBieSBnZW5lcmF0aW5nIFVSTHMgaW4gdGhlIGZvcm1hdCAv eW91cmFyY2hpdmVzZWN0aW9uL3l5eXkvbW0vZGQgb3IgL3lvdXJhcmNoaXZlc2VjdGlvbi95 eXl5L21tIG9yIC95b3VyYXJjaGl2ZXNlY3Rpb24veXl5eSwgd2hpY2ggaXMgZG9uZSBieSB1 c2luZyB0aGUgcnNzX3N1cGFyY2hpdmVfbWVudSB0YWcgb3IgdGhlIHJzc19wb3N0ZWQgcGx1 Z2luLjxiciAvPgpUaGUgPGEgaHJlZj0iI3Jzc19zdXBhcmNoaXZlX21lbnUiPnJzc19zdXBh cmNoaXZlX21lbnU8L2E+IGlzIHVzZWQgdG8gZ2VuZXJhdGUgYW4gdW5vcmRlcmVkIGxpc3Qg dGhhdCBkaXNwbGF5cyB4IG51bWJlciBvZiBtb250aHMgYW5kIHRoZSBudW1iZXIgb3MgcG9z dHMgcGVyIG1vbnRoLiAgSXQgaXMgdXNlZCB0byBsaW5rIHRvIGFuIGFyY2hpdmUgcGFnZSBm aWx0ZXJlZCBieSBtb250aC48YnIgLz4KPGhyPjwvcD4KCgk8aDEgaWQ9InJzc19zdXBhcmNo aXZlIj5yc3Nfc3VwYXJjaGl2ZTwvaDE+CgoJPHA+PHN0cm9uZz5zZWN0aW9uPC9zdHJvbmc+ PGJyIC8+CkFjY2VwdHMgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBzZWN0aW9ucy4gIE5P IHNwYWNlcyBhZnRlciBjb21tYXMuPGJyIC8+CldpbGRjYXJkcyBhbmQgbmVnYXRpdmVzIGNh biBhbHNvIGJlIHVzZWQgd2hlbiBzcGVjaWZ5aW5nIHNlY3Rpb25zLiBGb3IgaW5zdGFuY2Us IHNlY3Rpb249JiM4MjIxOyomIzgyMjE7IChhbGwgc2VjdGlvbnMsIHJlZ2FyZGxlc3Mgb2Yg aG93IG1hbnkpLCBzZWN0aW9uPSYjODIyMTshcGhvdG9zLHdyaXRpbmcsdGhvdWdodHMmIzgy MjE7ICh3cml0aW5nIDxzcGFuIGNsYXNzPSJjYXBzIj5BTkQ8L3NwYW4+IHRob3VnaHRzIDxz cGFuIGNsYXNzPSJjYXBzIj5BTkQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJjYXBzIj5OT1Q8L3Nw YW4+IHBob3RvcyksIG9yIGp1c3Qgc2VjdGlvbj0mIzgyMjE7IXBob3RvcyYjODIyMTsgKGFs bCBzZWN0aW9ucyBleGNlcHQgcGhvdG9zKS48YnIgLz4KRGVmYXVsdDogICYjODIyMDthcnRp Y2xlJiM4MjIxOzxiciAvPgpFeGFtcGxlOiBzZWN0aW9uPSYjODIyMDtzZWN0aW9uT25lLHNl Y3Rpb25Ud28mIzgyMjE7PC9wPgoKCTxwPjxzdHJvbmc+Y2F0ZWdvcnk8L3N0cm9uZz48YnIg Lz4KQWNjZXB0cyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGNhdGVnb3JpZXMuICBOTyBz cGFjZXMgYWZ0ZXIgY29tbWFzLiAgSWYgY3VycmVudGx5IGJyb3dzaW5nIGJ5IGNhdGVnb3J5 LCB0aGUgZ2xvYmFsIGNhdGVnb3J5IHdpbGwgYmUgdXNlZCBhcyB0aGUgZGVmYXVsdC48YnIg Lz4KRGVmYXVsdDogICYjODIyMDskYyAoZ2xvYmFsIGNhdGVnb3J5KSYjODIyMTs8YnIgLz4K RXhhbXBsZTogY2F0ZWdvcmllcz0mIzgyMjA7Y2F0T25lLGNhdFR3byYjODIyMTs8L3A+CgoJ PHA+PHN0cm9uZz5hdXRob3I8L3N0cm9uZz48YnIgLz4KQWNjZXB0cyBhIGNvbW1hIHNlcGFy YXRlIGxpc3Qgb2YgYXV0aG9yIGlkcy4gTk8gc3BhY2VzLiBBbHNvIGxvb2tzIGZvciBhIHF1 ZXJ5IHN0cmluZyBwYXJhbWV0ZXIgbmFtZWQgJiM4MjIwO2F1dGhvciYjODIyMTsgaWYgbm8g YXV0aG9yIGlzIHNldCBpbiB0aGUgdGFnLiAoaS5lLCAvP2F1dGhvcj1yb2IpPGJyIC8+CkRl ZmF1bHQ6ICYjODIyMDsmIzgyMjE7PGJyIC8+CkV4YW1wbGU6IGF1dGhvcj0mIzgyMjA7cm9i LGpvZSxqYXNvbiYjODIyMTs8L3A+CgoJPHA+PHN0cm9uZz50aW1lZnJhbWU8L3N0cm9uZz48 YnIgLz4KQWNjZXB0cyBvbmUgb2YgMyBvcHRpb25zICYjODIyMDtQQVNUJiM4MjIxOywgJiM4 MjIwO0ZVVFVSRSYjODIyMTsgb3IgJiM4MjIwO0FMTCYjODIyMTsuICBCeSBkZWZhdWx0ICg8 c3BhbiBjbGFzcz0iY2FwcyI+UEFTVDwvc3Bhbj4pIHdpbGwgZGlzcGxheSBhcnRpY2xlcyB3 aXRoIGEgcG9zdGVkIGRhdGUgYmVmb3JlIHRoZSBjdXJyZW50IGRhdGUvdGltZS48YnIgLz4K U2VsZWN0aW5nIDxzcGFuIGNsYXNzPSJjYXBzIj5GVVRVUkU8L3NwYW4+IHdpbGwgZGlzcGxh eSBhcnRpY2xlcyB3aXRoIGEgcG9zdGVkIGRhdGUgYWZ0ZXIgdGhlIGN1cnJlbnQgZGF0ZS90 aW1lLiAgU2VsZWN0aW5nIDxzcGFuIGNsYXNzPSJjYXBzIj5BTEw8L3NwYW4+IHdpbGwgZGlz cGxheSBhbGwgYXJ0aWNsZXMgcmVnYXJkbGVzcyBvZiBwb3N0ZWQgZGF0ZS48YnIgLz4KRGVm YXVsdDogICYjODIyMDtQQVNUJiM4MjIxOzxiciAvPgpFeGFtcGxlOiB0aW1lZnJhbWU9JiM4 MjIwO0ZVVFVSRSYjODIyMTs8L3A+CgoJPHA+PHN0cm9uZz5mb3JtPC9zdHJvbmc+PGJyIC8+ ClVzZXMgdGhlIGZvcm0gdG8gZm9ybWF0IHRoZSByZXN1bHRzLiAgV2hlbiB1c2luZyBhIGZv cm0sIHNlY3Rpb24sIGNhdGVnb3J5LCBhdXRob3IgYW5kIGxpbWl0IGFyZSB0aGUgb25seSBv dGhlciBwcm9wZXJ0aWVzIHRoYXQgY2FuIGJlIHVzZWQuICBQYWdpbmcgdXNpbmcgdGhlIG5l d2VyIGFuZCBvbGRlciB0YWdzIGlzIHN1cHBvcnRlZC48YnIgLz4KRGVmYXVsdDogICYjODIy MDsmIzgyMjE7PGJyIC8+CkV4YW1wbGU6IGZvcm09JiM4MjIwO2xvZmkmIzgyMjE7PC9wPgoK CTxwPjxzdHJvbmc+ZGF0ZWZvcm1hdDwvc3Ryb25nPjxiciAvPgpBY2NlcHRzIDxhIGhyZWY9 Imh0dHA6Ly91czIucGhwLm5ldC9zdHJmdGltZSI+c3RyZnRpbWU8L2E+IGRhdGUgZm9ybWF0 LjxiciAvPgpEZWZhdWx0OiAgJiM4MjIwOyVCICVkLCAlWSYjODIyMTs8YnIgLz4KRXhhbXBs ZTogZGF0ZWZvcm1hdD0mIzgyMjE7JUIvJWQvJVkmIzgyMjE7PC9wPgoKCTxwPjxzdHJvbmc+ Y2xhc3M8L3N0cm9uZz48YnIgLz4KQXNzaWducyBhIDxhY3JvbnltIHRpdGxlPSJDYXNjYWRp bmcgU3R5bGUgU2hlZXRzIj5DU1M8L2Fjcm9ueW0+IGNsYXNzIHRvIHRoZSA8Y29kZT4mIzM4 O2x0O2RsJiMzODtndDs8L2NvZGU+IHRhZy48YnIgLz4KRGVmYXVsdDogICYjODIyMDsmIzgy MjE7PGJyIC8+CkV4YW1wbGU6IGNsYXNzPSYjODIyMDtjbGFzc25hbWUmIzgyMjE7PC9wPgoK CTxwPjxzdHJvbmc+c2hvd3NlY3Rpb248L3N0cm9uZz48YnIgLz4KRGlzcGxheXMgYSBsaW5r IHRvIHRoZSBzZWN0aW9uIHRoZSBhcnRpY2xlIGFwcGVhcnMgaW4uPGJyIC8+CkRlZmF1bHQ6 ICAmIzgyMjA7MCYjODIyMTs8YnIgLz4KRXhhbXBsZTogc2hvd3NlY3Rpb249JiM4MjIwOzEm IzgyMjE7PC9wPgoKCTxwPjxzdHJvbmc+c2hvd2NhdHM8L3N0cm9uZz48YnIgLz4KRGlzcGxh eXMgYSBsaW5rIHRvIHRoZSBjYXRlZ29yaWVzIHRoZSBhcnRpY2xlIGFwcGVhcnMgaW4uPGJy IC8+CkRlZmF1bHQ6ICAmIzgyMjA7MCYjODIyMTs8YnIgLz4KRXhhbXBsZTogc2hvd2NhdHM9 JiM4MjIwOzEmIzgyMjE7PC9wPgoKCTxwPjxzdHJvbmc+c2hvd2F1dGhvcjwvc3Ryb25nPjxi ciAvPgpEaXNwbGF5cyBhIGxpbmsgdG8gdGhlIGN1cnJlbnQgc2VjdGlvbiBmaWx0ZXJlZCBi eSB0aGUgYXV0aG9yIG9mIHRoZSBjdXJyZW50IGFydGljbGUuPGJyIC8+CkRlZmF1bHQ6ICYj ODIyMDswJiM4MjIxOzxiciAvPgpFeGFtcGxlOiBzaG93YXV0aG9yPSYjODIyMDsxJiM4MjIx OzwvcD4KCgk8cD48c3Ryb25nPnNob3dleGNlcnB0PC9zdHJvbmc+PGJyIC8+CkRpc3BsYXlz IHRoZSBleGNlcnB0IG9mIHRoZSBhcnRpY2xlLjxiciAvPgpEZWZhdWx0OiAmIzgyMjA7MCYj ODIyMTs8YnIgLz4KRXhhbXBsZTogc2hvd2V4Y2VycHQ9JiM4MjIwOzEmIzgyMjE7PC9wPgoK CTxwPjxzdHJvbmc+c2hvd2NvbW1lbnRzY291bnQ8L3N0cm9uZz48YnIgLz4KU2hvd3MgdGhl IG51bWJlciBvZiBjb21tZW50cyBuZXh0IHRvIGFuIGFydGljbGUuPGJyIC8+CkRlZmF1bHQ6 ICYjODIyMDswJiM4MjIxOzxiciAvPgpFeGFtcGxlOiBzaG93Y29tbWVudHNjb3VudD0mIzgy MjA7MSYjODIyMTs8L3A+CgoJPHA+PHN0cm9uZz5zaG93emVyb2NvdW50PC9zdHJvbmc+PGJy IC8+ClNob3dzIHRoZSBudW1iZXIgb2YgY29tbWVudHMgbmV4dCB0byBhbiBhcnRpY2xlIGFz IHRoZSBudW1iZXIgemVybyAoMCkgaWYgdGhlcmUgYXJlIG5vIGNvbW1lbnRzLjxiciAvPgpE ZWZhdWx0OiAmIzgyMjA7MSYjODIyMTs8YnIgLz4KRXhhbXBsZTogc2hvd3plcm9jb3VudD0m IzgyMjA7MCYjODIyMTs8L3A+CgoJPHA+PHN0cm9uZz5jb3VudHByZWZpeDwvc3Ryb25nPjxi ciAvPgpUZXh0IGRpc3BsYXllZCBiZWZvcmUgdGhlIHNob3djb3VudCBudW1iZXIuPGJyIC8+ CkRlZmF1bHQ6ICAmIzgyMjA7JiM4MjIxOzxiciAvPgpFeGFtcGxlOiBjb3VudHByZWZpeD0m IzgyMjE7KCYjODIyMTs8L3A+CgoJPHA+PHN0cm9uZz5jb3VudHN1ZmZpeDwvc3Ryb25nPjxi ciAvPgpUZXh0IGRpc3BsYXllZCBhZnRlciB0aGUgc2hvd2NvdW50IG51bWJlci48YnIgLz4K RGVmYXVsdDogICYjODIyMDsmIzgyMjE7PGJyIC8+CkV4YW1wbGU6IGNvdW50c3VmZml4PSYj ODIyMTspJiM4MjIxOzwvcD4KCgk8cD48c3Ryb25nPnNlY3N0YXJ0PC9zdHJvbmc+PGJyIC8+ ClBsYWNlcyB0aGUgZ2l2ZW4gdGV4dCBiZWZvcmUgdGhlIHNlY3Rpb24gbGluay48YnIgLz4K RGVmYXVsdDogICYjODIyMDtpbiYjODIyMTs8YnIgLz4KRXhhbXBsZTogc2Vjc3RhcnQ9JiM4 MjIwO1Bvc3RlZCBJbjomIzgyMjE7PC9wPgoKCTxwPjxzdHJvbmc+Y2F0c3RhcnQ8L3N0cm9u Zz48YnIgLz4KUGxhY2VzIHRoZSBnaXZlbiB0ZXh0IGJlZm9yZSB0aGUgY2F0ZWdvcnkgbGlu a3MuPGJyIC8+CkRlZmF1bHQ6ICAmIzgyMjA7dW5kZXImIzgyMjE7PGJyIC8+CkV4YW1wbGU6 IGNhdHN0YXJ0PSYjODIyMDtVbmRlcjomIzgyMjE7PC9wPgoKCTxwPjxzdHJvbmc+Y2F0c2Vw PC9zdHJvbmc+PGJyIC8+ClBsYWNlcyB0aGUgZ2l2ZW4gdGV4dCBpbiBiZXR3ZWVuIHRoZSBj YXRlZ29yeSBsaW5rcyBpZiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lLjxiciAvPgpEZWZhdWx0 OiAgJiM4MjIwO2FuZCYjODIyMTs8YnIgLz4KRXhhbXBsZTogY2F0c2VwPSYjODIyMTs6OiYj ODIyMTs8L3A+CgoJPHA+PHN0cm9uZz5hdXRob3JzZXA8L3N0cm9uZz48YnIgLz4KUGxhY2Vz IHRoZSBnaXZlbiB0ZXh0IGJlZm9yZSB0aGUgYXV0aG9yIGxpbmsuPGJyIC8+CkRlZmF1bHQ6 ICYjODIyMDtieSYjODIyMTs8YnIgLz4KRXhhbXBsZTogYXV0aG9yc2VwPSYjODIyMDtwb3N0 ZWQgYnkmIzgyMjE7PC9wPgoKCTxwPjxzdHJvbmc+YWRkYnJlYWs8L3N0cm9uZz48YnIgLz4K QWRkcyBhbiA8c3BhbiBjbGFzcz0iY2FwcyI+SFRNTDwvc3Bhbj4gbGluZSBicmVhayBhZnRl ciB0aGUgYXJ0aWNsZSBsaW5rLjxiciAvPgpEZWZhdWx0OiAgJiM4MjIwOzAmIzgyMjE7PGJy IC8+CkV4YW1wbGU6IGFkZGJyZWFrPSYjODIyMDsxJiM4MjIxOzwvcD4KCgk8cD48c3Ryb25n PnNob3dzdWJkYXRlPC9zdHJvbmc+PGJyIC8+CkRpc3BsYXlzIGEgZGF0ZSBwcmVjZWVkaW5n IHRoZSBhcnRpY2xlIHRpdGxlLjxiciAvPgpEZWZhdWx0OiAgJiM4MjIwOzAmIzgyMjE7PGJy IC8+CkV4YW1wbGU6IHNob3dzdWJkYXRlPSYjODIyMDsxJiM4MjIxOzwvcD4KCgk8cD48c3Ry b25nPnN1YmRhdGVmb3JtYXQ8L3N0cm9uZz48YnIgLz4KQWNjZXB0cyA8YSBocmVmPSJodHRw Oi8vdXMyLnBocC5uZXQvc3RyZnRpbWUiPnN0cmZ0aW1lPC9hPiBkYXRlIGZvcm1hdC48YnIg Lz4KRGVmYXVsdDogICYjODIyMDslZCYjODIyMTs8YnIgLz4KRXhhbXBsZTogc3ViZGF0ZWZv cm1hdD0mIzgyMjE7JWQsICVZJiM4MjIxOzwvcD4KCgk8cD48c3Ryb25nPnN1YmRhdGVzZXA8 L3N0cm9uZz48YnIgLz4KUGxhY2VzIHRoZSBnaXZlbiB0ZXh0IGluIGJldHdlZW4gdGhlIHN1 YmRhdGUgYW5kIHRoZSBhcnRpY2xlIHRpdGxlLjxiciAvPgpEZWZhdWx0OiAgJiM4MjIwOzog JiM4MjIwOzxiciAvPgpFeGFtcGxlOiBzdWJkYXRlc2VwPSYjODIyMTsgJiM4MjExOyAmIzgy MjA7PC9wPgoKCTxwPjxzdHJvbmc+bGltaXQ8L3N0cm9uZz48YnIgLz4KTGltaXRzIHRoZSBu dW1iZXIgb2YgYXJ0aWNsZXMgbGlzdGVkLiAgV2hlbiBpbiBmb3JtcyBtb2RlLCBsaW1pdHMg dGhlIG51bWJlciBvZiBhcnRpY2xlcyBwZXIgcGFnZS48YnIgLz4KRGVmYXVsdDogICYjODIy MDsmIzgyMjE7PGJyIC8+CkV4YW1wbGU6IGxpbWl0PSYjODIyMDs1JiM4MjIxOzwvcD4KCgk8 cD48c3Ryb25nPnNvcnRieTwvc3Ryb25nPjxiciAvPgpEZXRlcm1pbmVzIGhvdyB0aGUgcmVz dWx0IGxpc3QgaXMgc29ydGVkLiAgU29ydGVkIGJ5IDxzcGFuIGNsYXNzPSJjYXBzIj5EQVRF PC9zcGFuPiBieSBkZWZhdWx0IGJhc2VkIG9uIHRoZSB0aW1lZnJhbWUgc2VsZWN0ZWQuICYj ODIyMDtSQU5ET00mIzgyMjE7IGlzIHRoZSBvbmx5IG90aGVyIG9wdGlvbi48YnIgLz4KRGVm YXVsdDogICYjODIyMDsmIzgyMjE7PGJyIC8+CkV4YW1wbGU6IHNvcnR5Ynk9JiM4MjIwO1JB TkRPTSYjODIyMTs8L3A+CgoJPHA+PHN0cm9uZz5vZmZzZXQ8L3N0cm9uZz48YnIgLz4KRXhj bHVkZXMgeCBudW1iZXIgb2YgYXJ0aWNsZXMgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBh cnRpY2xlIGxpc3RpbmcuPGJyIC8+CkRlZmF1bHQ6ICAmIzgyMjA7JiM4MjIxOzxiciAvPgpF eGFtcGxlOiBvZmZzZXQ9JiM4MjIwOzEmIzgyMjE7PC9wPgoKCTxwPlNvbWUgYWRkaXRpb25h bCBjb252ZW5pZW5jZXMgYnVpbHQgaW50byB0aGUgdGFnIGluY2x1ZGU6PC9wPgoKCTx1bD4K CQk8bGk+aW5jbHVzaW9uIG9mIHRpdGxlIGF0dHJpYnV0ZXMgb24gdGhlIGxpbmsgdGFnczwv bGk+CgkJPGxpPnRoZSBhZGRpdGlvbiBvZiBhIGNsYXNzIG5hbWVkIDxlbT5yc3NBcnRpY2xl PC9lbT4gdG8gdGhlIGFydGljbGUgbGluazwvbGk+CgkJPGxpPnRoZSBhZGRpdGlvbiBvZiBh IGNsYXNzIG5hbWVkIDxlbT5yc3NBbHQ8L2VtPiB0byBldmVyeSBvdGhlciBhcnRpY2xlIGxp bmsgdG8gYWxsb3cgZm9yIHVzZSBvZiBhIGZsaXAvZmxvcCBlZmZlY3Q8L2xpPgoJCTxsaT50 aGUgYWRkaXRpb24gb2YgYSBjbGFzcyBuYW1lZCA8ZW0+cnNzQXV0aG9yPC9lbT4gdG8gdGhl IGF1dGhvciBuYW1lPC9saT4KCQk8bGk+dGhlIGFkZGl0aW9uIG9mIGEgY2xhc3MgbmFtZWQg PGVtPnJzc1N1YmRhdGU8L2VtPiB0byB0aGUgc3ViZGF0ZTwvbGk+CgkJPGxpPnRoZSBhZGRp dGlvbiBvZiBhIGNsYXNzIG5hbWVkIDxlbT5yc3NTZWN0aW9uPC9lbT4gdG8gdGhlIHNlY3Rp b24gbGluazwvbGk+CgkJPGxpPnRoZSBhZGRpdGlvbiBvZiBhIGNsYXNzIG5hbWVkIDxlbT5y c3NDYXQ8L2VtPiB0byB0aGUgY2F0ZWdvcnkgbGlua3M8L2xpPgoJCTxsaT50aGUgYWRkaXRp b24gb2YgYSBjbGFzcyBuYW1lZCA8ZW0+cnNzQ21udENudDwvZW0+IHRvIHRoZSBjb21tZW50 IGNvdW50czwvbGk+Cgk8L3VsPgoKCTxwPjxocj48L3A+CgoJPGgxIGlkPSJyc3Nfc3VwYXJj aGl2ZV9ieWNhdCI+cnNzX3N1cGFyY2hpdmVfYnljYXQ8L2gxPgoKCTxwPjxzdHJvbmc+Tk9U RTo8L3N0cm9uZz4gSWYgYSBnbG9iYWwgY2F0ZWdvcnkgaXMgc2V0IHRoZSBsaXN0aW5nIHdp bGwgYmUgZmlsdGVyZWQgYnkgdGhhdCBjYXRlZ29yeS48L3A+CgoJPHA+PHN0cm9uZz5zZWN0 aW9uPC9zdHJvbmc+PGJyIC8+CkFjY2VwdHMgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBz ZWN0aW9ucy4gIE5PIHNwYWNlcyBhZnRlciBjb21tYXMuPGJyIC8+CldpbGRjYXJkcyBhbmQg bmVnYXRpdmVzIGNhbiBhbHNvIGJlIHVzZWQgd2hlbiBzcGVjaWZ5aW5nIHNlY3Rpb25zLiBG b3IgaW5zdGFuY2UsIHNlY3Rpb249JiM4MjIxOyomIzgyMjE7IChhbGwgc2VjdGlvbnMsIHJl Z2FyZGxlc3Mgb2YgaG93IG1hbnkpLCBzZWN0aW9uPSYjODIyMTshcGhvdG9zLHdyaXRpbmcs dGhvdWdodHMmIzgyMjE7ICh3cml0aW5nIDxzcGFuIGNsYXNzPSJjYXBzIj5BTkQ8L3NwYW4+ IHRob3VnaHRzIDxzcGFuIGNsYXNzPSJjYXBzIj5BTkQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJj YXBzIj5OT1Q8L3NwYW4+IHBob3RvcyksIG9yIGp1c3Qgc2VjdGlvbj0mIzgyMjE7IXBob3Rv cyYjODIyMTsgKGFsbCBzZWN0aW9ucyBleGNlcHQgcGhvdG9zKS48YnIgLz4KRGVmYXVsdDog ICYjODIyMDthcnRpY2xlJiM4MjIxOzxiciAvPgpFeGFtcGxlOiBzZWN0aW9uPSYjODIyMDtz ZWN0aW9uT25lLHNlY3Rpb25Ud28mIzgyMjE7PC9wPgoKCTxwPjxzdHJvbmc+dGltZWZyYW1l PC9zdHJvbmc+PGJyIC8+CkFjY2VwdHMgb25lIG9mIDMgb3B0aW9ucyAmIzgyMjA7UEFTVCYj ODIyMTssICYjODIyMDtGVVRVUkUmIzgyMjE7IG9yICYjODIyMDtBTEwmIzgyMjE7LiAgQnkg ZGVmYXVsdCAoPHNwYW4gY2xhc3M9ImNhcHMiPlBBU1Q8L3NwYW4+KSB3aWxsIGRpc3BsYXkg YXJ0aWNsZXMgd2l0aCBhIHBvc3RlZCBkYXRlIGJlZm9yZSB0aGUgY3VycmVudCBkYXRlL3Rp bWUuPGJyIC8+ClNlbGVjdGluZyA8c3BhbiBjbGFzcz0iY2FwcyI+RlVUVVJFPC9zcGFuPiB3 aWxsIGRpc3BsYXkgYXJ0aWNsZXMgd2l0aCBhIHBvc3RlZCBkYXRlIGFmdGVyIHRoZSBjdXJy ZW50IGRhdGUvdGltZS4gIFNlbGVjdGluZyA8c3BhbiBjbGFzcz0iY2FwcyI+QUxMPC9zcGFu PiB3aWxsIGRpc3BsYXkgYWxsIGFydGljbGVzIHJlZ2FyZGxlc3Mgb2YgcG9zdGVkIGRhdGUu PGJyIC8+CkRlZmF1bHQ6ICAmIzgyMjA7UEFTVCYjODIyMTs8YnIgLz4KRXhhbXBsZTogdGlt ZWZyYW1lPSYjODIyMDtGVVRVUkUmIzgyMjE7PC9wPgoKCTxwPjxzdHJvbmc+Zm9ybTwvc3Ry b25nPjxiciAvPgpVc2VzIHRoZSBmb3JtIHRvIGZvcm1hdCB0aGUgcmVzdWx0cy4gUGFnaW5n IHVzaW5nIHRoZSBuZXdlciBhbmQgb2xkZXIgdGFncyBpcyBzdXBwb3J0ZWQuPGJyIC8+CkRl ZmF1bHQ6ICAmIzgyMjA7JiM4MjIxOzxiciAvPgpFeGFtcGxlOiBmb3JtPSYjODIyMDtsb2Zp JiM4MjIxOzwvcD4KCgk8cD48c3Ryb25nPmZvcm13cmFwdGFnPC9zdHJvbmc+PGJyIC8+ClRo aXMgdGFnIHdpbGwgd3JhcCB0aGUgb3V0cHV0IG9mIGVhY2ggaW5kaXZpZHVhbCBmb3JtIHVz ZWQgaW4gdGhlIGxpc3RpbmcuPGJyIC8+CkRlZmF1bHQ6ICAmIzgyMjA7JiM4MjIxOzxiciAv PgpFeGFtcGxlOiBmb3Jtd3JhcHRhZz0mIzgyMjA7dWwmIzgyMjE7PC9wPgoKCTxwPjxzdHJv bmc+YWRkYnJlYWs8L3N0cm9uZz48YnIgLz4KQWRkcyBhbiA8c3BhbiBjbGFzcz0iY2FwcyI+ SFRNTDwvc3Bhbj4gbGluZSBicmVhayBhZnRlciB0aGUgYXJ0aWNsZSBsaW5rLjxiciAvPgpE ZWZhdWx0OiAgJiM4MjIwOzAmIzgyMjE7PGJyIC8+CkV4YW1wbGU6IGFkZGJyZWFrPSYjODIy MDsxJiM4MjIxOzwvcD4KCgk8cD48c3Ryb25nPnNob3dkYXRlPC9zdHJvbmc+PGJyIC8+CkRp c3BsYXlzIGEgZGF0ZSBhZnRlciB0aGUgYXJ0aWNsZSB0aXRsZS48YnIgLz4KRGVmYXVsdDog ICYjODIyMDswJiM4MjIxOzxiciAvPgpFeGFtcGxlOiBzaG93ZGF0ZT0mIzgyMjA7MSYjODIy MTs8L3A+CgoJPHA+PHN0cm9uZz5kYXRlZm9ybWF0PC9zdHJvbmc+PGJyIC8+CkFjY2VwdHMg PGEgaHJlZj0iaHR0cDovL3VzMi5waHAubmV0L3N0cmZ0aW1lIj5zdHJmdGltZTwvYT4gZGF0 ZSBmb3JtYXQuPGJyIC8+CkRlZmF1bHQ6ICYjODIyMDslQiAlZCwgJVkmIzgyMjE7PGJyIC8+ CkV4YW1wbGU6IGRhdGVmb3JtYXQ9JiM4MjIxOyVkICVCICVZJiM4MjIxOzwvcD4KCgk8cD48 c3Ryb25nPmRhdGVzZXA8L3N0cm9uZz48YnIgLz4KUGxhY2VzIHRoZSBnaXZlbiB0ZXh0IGlu IGJldHdlZW4gdGhlIGRhdGUgYW5kIHRoZSBhcnRpY2xlIHRpdGxlLjxiciAvPgpEZWZhdWx0 OiAgJiM4MjIwOyAmcmFxdW87ICYjODIyMDs8YnIgLz4KRXhhbXBsZTogZGF0ZXNlcD0mIzgy MjE7ICZyYXF1bzsgJiM4MjIwOzwvcD4KCgk8cD48c3Ryb25nPnNob3dhdXRob3I8L3N0cm9u Zz48YnIgLz4KRGlzcGxheXMgdGhlIGFydGljbGUgYXV0aG9ycyBuYW1lIGFmdGVyIHRoZSB0 aXRsZSAoYW5kIGRhdGUgaWYgYXBwbGljYWJsZSkuPGJyIC8+CkRlZmF1bHQ6ICYjODIyMDsw JiM4MjIxOzxiciAvPgpFeGFtcGxlOiBzaG93YXV0aG9yPSYjODIyMDsxJiM4MjIxOzwvcD4K Cgk8cD48c3Ryb25nPmF1dGhvcnNlcDwvc3Ryb25nPjxiciAvPgpQbGFjZXMgdGhlIGdpdmVu IHRleHQgYmVmb3JlIHRoZSBhdXRob3IgbmFtZS48YnIgLz4KRGVmYXVsdDogJiM4MjIwO2J5 JiM4MjIxOzxiciAvPgpFeGFtcGxlOiBhdXRob3JzZXA9JiM4MjIwO2J5ICYjODIyMDs8L3A+ CgoJPHA+PHN0cm9uZz5zaG93ZXhjZXJwdDwvc3Ryb25nPjxiciAvPgpEaXNwbGF5cyB0aGUg ZXhjZXJwdCBvZiB0aGUgYXJ0aWNsZS48YnIgLz4KRGVmYXVsdDogJiM4MjIwOzAmIzgyMjE7 PGJyIC8+CkV4YW1wbGU6IHNob3dleGNlcnB0PSYjODIyMDsxJiM4MjIxOzwvcD4KCgk8cD48 c3Ryb25nPnNob3doZWFkZXI8L3N0cm9uZz48YnIgLz4KRGlzcGxheXMgdGhlIGhlYWRlciBs YWJlbCBmb3IgdGhlIGFydGljbGUgbGlzdGluZy48YnIgLz4KRGVmYXVsdDogJiM4MjIwOzAm IzgyMjE7PGJyIC8+CkV4YW1wbGU6IHNob3doZWFkZXI9JiM4MjIwOzEmIzgyMjE7PC9wPgoK CTxwPjxzdHJvbmc+aGVhZGVybGFiZWw8L3N0cm9uZz48YnIgLz4KVGhlIGhlYWRlciB0ZXh0 LjxiciAvPgpEZWZhdWx0OiAmIzgyMjA7QXJ0aWNsZXMgQnkgQ2F0ZWdvcnk6JiM4MjIxOzxi ciAvPgpFeGFtcGxlOiBoZWFkZXJsYWJlbD0mIzgyMjA7Q2F0ZWdvcnkgQXJjaGl2ZSYjODIy MTs8L3A+CgoJPHA+PHN0cm9uZz5zaG93bWVudTwvc3Ryb25nPjxiciAvPgpTaG93cyBhbiB1 bm9yZGVyZWQgbGlzdCBvZiBjYXRlZ29yaWVzIGJlaW5nIGxpc3RlZCB3aXRoIGJ1aWx0IGlu IGFuY2hvciBsaW5rcy48YnIgLz4KRGVmYXVsdDogJiM4MjIwOzAmIzgyMjE7PGJyIC8+CkV4 YW1wbGU6IHNob3dtZW51PSYjODIyMDsxJiM4MjIxOzwvcD4KCgk8cD48c3Ryb25nPnNob3dj YXRzPC9zdHJvbmc+PGJyIC8+ClNob3dzIGNhdGVnb3J5IG5hbWUgaGVhZGVycy48YnIgLz4K RGVmYXVsdDogJiM4MjIwOzEmIzgyMjE7PGJyIC8+CkV4YW1wbGU6IHNob3djYXRzPSYjODIy MDswJiM4MjIxOzwvcD4KCgk8cD48c3Ryb25nPnNob3djYXRzb25seTwvc3Ryb25nPjxiciAv PgpTaG93cyBjYXRlZ29yeSBuYW1lIGhlYWRlcnMgd2l0aG91dCBhcnRpY2xlIGxpbmtzIGJl bG93IHRvIGJlIHVzZWQgYXMgYSBjYXRlZ29yeSBtZW51LjxiciAvPgpEZWZhdWx0OiAmIzgy MjA7MCYjODIyMTs8YnIgLz4KRXhhbXBsZTogc2hvd2NhdHNvbmx5PSYjODIyMDsxJiM4MjIx OzwvcD4KCgk8cD48c3Ryb25nPmxpbmt0b3NlY3Rpb248L3N0cm9uZz48YnIgLz4KRGVub3Rl cyB0aGUgc2VjdGlvbiB0aGF0IHRoZSBjYXRlZ29yeSBoZWFkZXJzIHdpbGwgbGluayB0byB3 aGVuIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBpcyBidWlsdC48YnIgLz4K RGVmYXVsdDogJiM4MjIwOyYjODIyMTs8YnIgLz4KRXhhbXBsZTogbGlua3Rvc2VjdGlvbj0m IzgyMjA7YXJjaGl2ZSYjODIyMTs8L3A+CgoJPHA+PHN0cm9uZz5zaG93Y2F0Y291bnQ8L3N0 cm9uZz48YnIgLz4KU2hvd3MgdGhlIGFydGljbGUgY291bnQgd2l0aGluIHRoZSBjYXRlZ29y eSBuZXh0IHRvIHRoZSBjYXRlZ29yeSBuYW1lLjxiciAvPgpEZWZhdWx0OiAmIzgyMjA7MSYj ODIyMTs8YnIgLz4KRXhhbXBsZTogc2hvd2NhdGNvdW50PSYjODIyMDswJiM4MjIxOzwvcD4K Cgk8cD48c3Ryb25nPnNob3dzZWN0aW9uczwvc3Ryb25nPjxiciAvPgpTaG93cyB0aGUgc2Vj dGlvbiBuYW1lIGhlYWRlcnM8YnIgLz4KRGVmYXVsdDogJiM4MjIwOzAmIzgyMjE7PGJyIC8+ CkV4YW1wbGU6IHNob3dzZWN0aW9ucz0mIzgyMjA7MSYjODIyMTs8L3A+CgoJPHA+PHN0cm9u Zz5zaG93c2VjdGlvbmNvdW50PC9zdHJvbmc+PGJyIC8+ClNob3dzIHRoZSBhcnRpY2xlIGNv dW50IHdpdGhpbiB0aGUgc2VjdGlvbiBuZXh0IHRvIHRoZSBzZWN0aW9uIG5hbWUuPGJyIC8+ CkRlZmF1bHQ6ICYjODIyMDswJiM4MjIxOzxiciAvPgpFeGFtcGxlOiBzaG93c2VjdGlvbmNv dW50PSYjODIyMDsxJiM4MjIxOzwvcD4KCgk8cD48c3Ryb25nPnNob3djb21tZW50c2NvdW50 PC9zdHJvbmc+PGJyIC8+ClNob3dzIHRoZSBudW1iZXIgb2YgY29tbWVudHMgbmV4dCB0byBh biBhcnRpY2xlLjxiciAvPgpEZWZhdWx0OiAmIzgyMjA7MCYjODIyMTs8YnIgLz4KRXhhbXBs ZTogc2hvd2NvbW1lbnRzY291bnQ9JiM4MjIwOzEmIzgyMjE7PC9wPgoKCTxwPjxzdHJvbmc+ c2hvd3plcm9jb3VudDwvc3Ryb25nPjxiciAvPgpTaG93cyB0aGUgbnVtYmVyIG9mIGNvbW1l bnRzIG5leHQgdG8gYW4gYXJ0aWNsZSBhcyB0aGUgbnVtYmVyIHplcm8gKDApIGlmIHRoZXJl IGFyZSBubyBjb21tZW50cy48YnIgLz4KRGVmYXVsdDogJiM4MjIwOzEmIzgyMjE7PGJyIC8+ CkV4YW1wbGU6IHNob3d6ZXJvY291bnQ9JiM4MjIwOzAmIzgyMjE7PC9wPgoKCTxwPjxzdHJv bmc+Y291bnRwcmVmaXg8L3N0cm9uZz48YnIgLz4KVGV4dCBkaXNwbGF5ZWQgYmVmb3JlIHRo ZSBzaG93Y291bnQgbnVtYmVyLjxiciAvPgpEZWZhdWx0OiAgJiM4MjIwOyYjODIyMTs8YnIg Lz4KRXhhbXBsZTogY291bnRwcmVmaXg9JiM4MjIxOygmIzgyMjE7PC9wPgoKCTxwPjxzdHJv bmc+Y291bnRzdWZmaXg8L3N0cm9uZz48YnIgLz4KVGV4dCBkaXNwbGF5ZWQgYWZ0ZXIgdGhl IHNob3djb3VudCBudW1iZXIuPGJyIC8+CkRlZmF1bHQ6ICAmIzgyMjA7JiM4MjIxOzxiciAv PgpFeGFtcGxlOiBjb3VudHN1ZmZpeD0mIzgyMjE7KSYjODIyMTs8L3A+CgoJPHA+PHN0cm9u Zz5zaG93anVtcDwvc3Ryb25nPjxiciAvPgpEaXNwbGF5cyBhIGp1bXAgYmFjayB0byB0b3Ag bGluayBiZWxvdyBlYWNoIGNhdGVnb3J5IGdyb3VwaW5nLjxiciAvPgpEZWZhdWx0OiAmIzgy MjA7MCYjODIyMTs8YnIgLz4KRXhhbXBsZTogc2hvd2p1bXA9JiM4MjIwOzEmIzgyMjE7PC9w PgoKCTxwPjxzdHJvbmc+anVtcGxhYmVsPC9zdHJvbmc+PGJyIC8+ClRoZSB0ZXh0IG9mIHRo ZSBqdW1wIGJhY2sgdG8gdG9wIGxpbmsuPGJyIC8+CkRlZmF1bHQ6ICYjODIyMDteIGJhY2sg dG8gdG9wJiM4MjIxOzxiciAvPgpFeGFtcGxlOiBqdW1wbGFiZWw9JiM4MjIwO0JhY2sgVG8g VG9wJiM4MjIxOzwvcD4KCgk8cD48c3Ryb25nPnVzZWFydGNhdDE8L3N0cm9uZz48YnIgLz4K SWYgYW4gYXJ0aWNsZSBpZCBpcyBpbiB0aGUgY3VycmVudCBwYWdlIHNjb3BlLCB0aGUgbGlz dGluZyB3aWxsIGJlIGZpbHRlcmVkIGJ5IENhdGVnb3J5MSBvZiB0aGF0IGFydGljbGUuIENh biBiZSB1c2VkIGZvciBhIHJlbGF0ZWQgYXJ0aWNsZXMgbGlzdGluZy48YnIgLz4KRGVmYXVs dDogJiM4MjIwOzAmIzgyMjE7PGJyIC8+CkV4YW1wbGU6IHVzZWFydGNhdDE9JiM4MjIwOzEm IzgyMjE7PC9wPgoKCTxwPjxzdHJvbmc+dXNlYXJ0Y2F0Mjwvc3Ryb25nPjxiciAvPgpJZiBh biBhcnRpY2xlIGlkIGlzIGluIHRoZSBjdXJyZW50IHBhZ2Ugc2NvcGUsIHRoZSBsaXN0aW5n IHdpbGwgYmUgZmlsdGVyZWQgYnkgQ2F0ZWdvcnkyIG9mIHRoYXQgYXJ0aWNsZS4gQ2FuIGJl IHVzZWQgZm9yIGEgcmVsYXRlZCBhcnRpY2xlcyBsaXN0aW5nLjxiciAvPgpEZWZhdWx0OiAm IzgyMjA7MCYjODIyMTs8YnIgLz4KRXhhbXBsZTogdXNlYXJ0Y2F0Mj0mIzgyMjA7MSYjODIy MTs8L3A+CgoJPHA+PHN0cm9uZz51c2VhcnRjYXRzPC9zdHJvbmc+PGJyIC8+CklmIGFuIGFy dGljbGUgaWQgaXMgaW4gdGhlIGN1cnJlbnQgcGFnZSBzY29wZSwgdGhlIGxpc3Rpbmcgd2ls bCBiZSBmaWx0ZXJlZCBieSBDYXRlZ29yeTEgb3IgQ2F0ZWdvcnkyIG9mIHRoYXQgYXJ0aWNs ZS4gQ2FuIGJlIHVzZWQgZm9yIGEgcmVsYXRlZCBhcnRpY2xlcyBsaXN0aW5nLjxiciAvPgpE ZWZhdWx0OiAmIzgyMjA7MCYjODIyMTs8YnIgLz4KRXhhbXBsZTogdXNlYXJ0Y2F0cz0mIzgy MjA7MSYjODIyMTs8L3A+CgoJPHA+PHN0cm9uZz5saW1pdDwvc3Ryb25nPjxiciAvPgpMaW1p dHMgdGhlIG51bWJlciBvZiBhcnRpY2xlcyBkaXNwbGF5ZWQuPGJyIC8+CkRlZmF1bHQ6ICYj ODIyMDsmIzgyMjE7PGJyIC8+CkV4YW1wbGU6IGxpbWl0PSYjODIyMDsxMCYjODIyMTs8L3A+ CgoJPHA+PGhyPjwvcD4KCgk8aDEgaWQ9InJzc19zdXBhcmNoaXZlX21lbnUiPnJzc19zdXBh cmNoaXZlX21lbnU8L2gxPgoKCTxwPjxzdHJvbmc+bW9kZTwvc3Ryb25nPjxiciAvPgpBY2Nl cHRzIG9uZSBvZiAyIG9wdGlvbnMgJiM4MjIwO01PTlRIJiM4MjIxOyBvciAmIzgyMjA7WUVB UiYjODIyMTsuICBCeSBkZWZhdWx0ICg8c3BhbiBjbGFzcz0iY2FwcyI+TU9OVEg8L3NwYW4+ KSB3aWxsIGRpc3BsYXkgYSBsaXN0IG9mIG1vbnRocyBhbmQgdGhlIG51bWJlciBvZiBwb3N0 cyBpbiBlYWNoIHdpdGggYSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBvZiAveW91 cmFyY2hpdmUveXl5eS9tbS48YnIgLz4KU2VsZWN0aW5nICYjODIyMDtZRUFSJiM4MjIxOyB3 aWxsIGRpc3BsYXkgYSBsaXN0IG9mIHllYXJzIGFuZCB0aGUgbnVtYmVyIG9mIHBvc3RzIGlu IGVhY2ggd2l0aCBhIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IG9mIC95b3VyYXJj aGl2ZS95eXl5LjxiciAvPgpEZWZhdWx0OiAgJiM4MjIwO1BBU1QmIzgyMjE7PGJyIC8+CkV4 YW1wbGU6IHRpbWVmcmFtZT0mIzgyMjA7RlVUVVJFJiM4MjIxOzwvcD4KCgk8cD48c3Ryb25n PnNlY3Rpb248L3N0cm9uZz48YnIgLz4KQWNjZXB0cyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0 IG9mIHNlY3Rpb25zIHRoYXQgcG9zdHMgYXJlIGxpc3RlZCBmcm9tLiAgTk8gc3BhY2VzIGFm dGVyIGNvbW1hcy48YnIgLz4KV2lsZGNhcmRzIGFuZCBuZWdhdGl2ZXMgY2FuIGFsc28gYmUg dXNlZCB3aGVuIHNwZWNpZnlpbmcgc2VjdGlvbnMuIEZvciBpbnN0YW5jZSwgc2VjdGlvbj0m IzgyMjE7KiYjODIyMTsgKGFsbCBzZWN0aW9ucywgcmVnYXJkbGVzcyBvZiBob3cgbWFueSks IHNlY3Rpb249JiM4MjIxOyFwaG90b3Msd3JpdGluZyx0aG91Z2h0cyYjODIyMTsgKHdyaXRp bmcgPHNwYW4gY2xhc3M9ImNhcHMiPkFORDwvc3Bhbj4gdGhvdWdodHMgPHNwYW4gY2xhc3M9 ImNhcHMiPkFORDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImNhcHMiPk5PVDwvc3Bhbj4gcGhvdG9z KSwgb3IganVzdCBzZWN0aW9uPSYjODIyMTshcGhvdG9zJiM4MjIxOyAoYWxsIHNlY3Rpb25z IGV4Y2VwdCBwaG90b3MpLjxiciAvPgpEZWZhdWx0OiAgJiM4MjIwO2FydGljbGUmIzgyMjE7 PGJyIC8+CkV4YW1wbGU6IHNlY3Rpb249JiM4MjIwO3NlY3Rpb25PbmUsc2VjdGlvblR3byYj ODIyMTs8L3A+CgoJPHA+PHN0cm9uZz5saW5rdG9zZWN0aW9uPC9zdHJvbmc+PGJyIC8+CkRl bm90ZXMgdGhlIHNlY3Rpb24gdGhhdCB0aGUgbW9udGhzIHdpbGwgbGluayB0byB3aGVuIHRo ZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBpcyBidWlsdC48YnIgLz4KRGVmYXVs dDogJiM4MjIwOyRzIChjdXJyZW50IGdsb2JhbCBzZWN0aW9uKSYjODIyMTs8YnIgLz4KRXhh bXBsZTogbGlua3Rvc2VjdGlvbj0mIzgyMjA7YXJjaGl2ZSYjODIyMTs8L3A+CgoJPHA+PHN0 cm9uZz50aW1lZnJhbWU8L3N0cm9uZz48YnIgLz4KQWNjZXB0cyBvbmUgb2YgMyBvcHRpb25z ICYjODIyMDtQQVNUJiM4MjIxOywgJiM4MjIwO0ZVVFVSRSYjODIyMTsgb3IgJiM4MjIwO0FM TCYjODIyMTsuICBCeSBkZWZhdWx0ICg8c3BhbiBjbGFzcz0iY2FwcyI+UEFTVDwvc3Bhbj4p IHdpbGwgZGlzcGxheSBhcnRpY2xlcyB3aXRoIGEgcG9zdGVkIGRhdGUgYmVmb3JlIHRoZSBj dXJyZW50IGRhdGUvdGltZS48YnIgLz4KU2VsZWN0aW5nIDxzcGFuIGNsYXNzPSJjYXBzIj5G VVRVUkU8L3NwYW4+IHdpbGwgZGlzcGxheSBhcnRpY2xlcyB3aXRoIGEgcG9zdGVkIGRhdGUg YWZ0ZXIgdGhlIGN1cnJlbnQgZGF0ZS90aW1lLiAgU2VsZWN0aW5nIDxzcGFuIGNsYXNzPSJj YXBzIj5BTEw8L3NwYW4+IHdpbGwgZGlzcGxheSBhbGwgYXJ0aWNsZXMgcmVnYXJkbGVzcyBv ZiBwb3N0ZWQgZGF0ZS48YnIgLz4KRGVmYXVsdDogICYjODIyMDtQQVNUJiM4MjIxOzxiciAv PgpFeGFtcGxlOiB0aW1lZnJhbWU9JiM4MjIwO0ZVVFVSRSYjODIyMTs8L3A+CgoJPHA+PHN0 cm9uZz5saW1pdDwvc3Ryb25nPjxiciAvPgpUaGUgbnVtYmVyIG9mIG1vbnRocyB0aGF0IHdp bGwgYmUgc2hvd24gaW4gdGhlIGxpc3RpbmcuPGJyIC8+CkRlZmF1bHQ6ICYjODIyMDs2JiM4 MjIxOzxiciAvPgpFeGFtcGxlOiBsaW1pdD0mIzgyMjA7MyYjODIyMTs8L3A+CgoJPHA+PHN0 cm9uZz5zaG93Y291bnQ8L3N0cm9uZz48YnIgLz4KU2hvd3MgdGhlIG51bWJlciBvZiBhcnRp Y2xlcyBwb3N0ZWQgaW4gYSBtb250aCBuZXh0IHRvIHRoZSBuYW1lIG9mIHRoZSBtb250aC48 YnIgLz4KRGVmYXVsdDogJiM4MjIwOzEmIzgyMjE7PGJyIC8+CkV4YW1wbGU6IHNob3djb3Vu dD0mIzgyMjA7MCYjODIyMTs8L3A+CgoJPHA+PHN0cm9uZz5zaG93aGVhZGVyPC9zdHJvbmc+ PGJyIC8+ClNob3dzIGFuIDxzcGFuIGNsYXNzPSJjYXBzIj5YSFRNTDwvc3Bhbj4gaGVhZGlu ZyB0YWcgKDxobj4pIGFib3ZlIHRoZSBtb250aCBsaXN0LjxiciAvPgpEZWZhdWx0OiAmIzgy MjA7MCYjODIyMTs8YnIgLz4KRXhhbXBsZTogc2hvd2hlYWRlcj0mIzgyMjA7MSYjODIyMTs8 L3A+CgoJPHA+PHN0cm9uZz5oZWFkZXJsYWJlbDwvc3Ryb25nPjxiciAvPgpUaGUgdGV4dCB0 aGF0IGFwcGVhcnMgd2l0aGluIHRoZSBoZWFkZXIgdGFncy48YnIgLz4KRGVmYXVsdDogJiM4 MjIwO01vbnRobHkgQXJjaGl2ZXMmIzgyMjE7PGJyIC8+CkV4YW1wbGU6IGhlYWRlcmxhYmVs PSYjODIyMDtQb3N0cyBCeSBEYXRlJiM4MjIxOzwvcD4KCgk8cD48c3Ryb25nPmhlYWRlcmxl dmVsPC9zdHJvbmc+PGJyIC8+ClRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+WEhUTUw8L3NwYW4+ IGhlYWRpbmcgdGFnIGxldmVsICgxLDIsMyw0LDUgb3IgNikuPGJyIC8+CkRlZmF1bHQ6ICYj ODIyMDsyJiM4MjIxOzxiciAvPgpFeGFtcGxlOiBoZWFkZXJsZXZlbD0mIzgyMjA7MyYjODIy MTs8L3A+CgoJPHA+U29tZSBhZGRpdGlvbmFsIGNvbnZlbmllbmNlcyBidWlsdCBpbnRvIHRo ZSB0YWcgaW5jbHVkZTo8L3A+CgoJPHVsPgoJCTxsaT50aGUgYWRkaXRpb24gb2YgYW4gY2xh c3MgbmFtZWQgPGVtPnJzc01lbnU8L2VtPiB0byB0aGUgdWwgdGFnPC9saT4KCQk8bGk+dGhl IGFkZGl0aW9uIG9mIGEgY2xhc3MgbmFtZWQgPGVtPnJzc01vbnRoQ291bnQ8L2VtPiB0byB0 aGUgbW9udGhseSBwb3N0IHRvdGFsczwvbGk+Cgk8L3VsPgoKCTxwPjxocj48L3A+CgoJPHA+ U2VlIFVzYWdlIEV4YW1wbGVzIEF0IDxhIGhyZWY9Imh0dHA6Ly93d3cud2lsc2hpcmVvbmUu Y29tL2xhYiI+d2lsc2hpcmUgfCBvbmU8L2E+PC9wPgoKCTxwPjxocj48L3A+IjtzOjM6Im1k NSI7czozMjoiZmMwMjY0YjFhZmJhMWYyNjUwYjY1NzM4YjQzMWIwZjciO30=