✔ Kriterierna för föreningar med högst arvode ✔ Så många har fortfarande 0 kronor i arvode ✔ Det är det genomsnittliga styrelsearvodet ✔ Experten: Mjuka faktorer som spelar in
CjxoNCBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+PHN0cm9uZz7inJQgU8OlIHNlciBhcnZvZGV0IHV0IGkgYW5kcmEgZsO2cmVuaW5nYXIg4pyUIEtyaXRlcmllcm5hIGbDtnIgZsO2cmVuaW5nYXIgbWVkIGjDtmdzdCBhcnZvZGUg4pyUIFPDpSBtw6VuZ2EgaGFyIGZvcnRmYXJhbmRlIDAga3Jvbm9yIGkgYXJ2b2RlIOKclCBEZXQgw6RyIGRldCBnZW5vbXNuaXR0bGlnYSBzdHlyZWxzZWFydm9kZXQg4pyUIEV4cGVydGVuOiBNanVrYSBmYWt0b3JlciBzb20gc3BlbGFyIGluPC9zdHJvbmc+PC9oND4KCgoKPGg0IGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPk1lZCBpbnNhbWxhZCBkYXRhIGbDtnIgw7Z2ZXIgNTAwIGbDtnJlbmluZ2FyIGhhciB2aSBhbmFseXNlcmF0IGh1ciBhcnZvZGVuIGhhciB1dHZlY2tsYXRzIOKAkyBiZXJvZW5kZSBww6UgZsO2cmVuaW5nYXJuYXMgc3RvcmxlayBvY2ggYW50YWwgbWVkbGVtbWFyLiBWaWxrYSBoYXIgaMO2anQsIG9jaCBodXIgbcOlbmdhIGRlbMOkZ2FyZSBrcsOkdnMgZsO2ciByaWt0aWd0IGjDtmdhIGFydm9kZW4/ICBSZXN1bHRhdGVuIGdlciBlbiBpbmJsaWNrIGkgaHVyIHN0eXJlbHNlYXJ2b2RldCBzZXIgdXQgaSBkYWcg4oCTIG9jaCBodXIgZGV0IGbDtnLDpG5kcmF0cyDDtnZlciB0aWQuIDwvc3Ryb25nPjwvaDQ+CgoKCgoKCgo8cD5TdHlyZWxzZWFydm9kZXQga2FuIHZhcmllcmEga3JhZnRpZ3QgbWVsbGFuIG9saWthIHNhbWbDpGxsaWdoZXRzZsO2cmVuaW5nYXIuIEZha3RvcmVyIHNvbSBlbmdhZ2VtYW5nLCBmcmFtdGlkYSBhcmJldHNiw7ZyZGEgb2NoIG9tZmF0dG5pbmdlbiBhdiBkZXQgbMO2cGFuZGUgYXJiZXRldCBtw6VzdGUgdsOkZ2FzIGluIOKAkyBzYW10aWRpZ3QgZHJpdmVyIHNhbXRpZGVuIGZyYW0gZXR0IHNraWZ0ZSBpIGLDpWRlIGVuZ2FnZW1hbmcgb2NoIGludHJlc3NlLiZuYnNwOzwvcD4KCgoKPHA+RGV0IGthbiB2YXJhIGVuIGvDpG5zbGlnIGZyw6VnYSwgb2NoIG3DpW5nYSBmw7ZyZW5pbmdhciBoYXIgw6RuIGkgZGFnIGVuIHN0eXJlbHNlIHNvbSBpbnRlIGbDpXIgbsOlZ290IGFydm9kZS4gTWVuIHRyZW5kZW4gcGVrYXIgYmFyYSDDpXQgZXR0IGjDpWxsLCBtZW5hciBNYXJrdXMgUMOlbHNzb24sIENoZWYgZsO2ciB2ZXJrc2FtaGV0c2lubm92YXRpb24gb2NoIHV0dmVja2xpbmcgcMOlIFNCQy4gU2p1bmthbmRlIGVuZ2FnZW1hbmcgdGlsbHNhbW1hbnMgbWVkIGjDtmdhIGbDtnJ2w6RudG5pbmdhciBmcsOlbiBtZWRsZW1tYXIgcMOldmVya2FyIG5pdsOlZXJuYSBww6Ugc3R5cmVsc2VhcnZvZGV0LjwvcD4KCgoKPGRpdiBjbGFzcz0id3AtYmxvY2stY29sdW1ucyBpcy1sYXlvdXQtZmxleCB3cC1jb250YWluZXItY29yZS1jb2x1bW5zLWlzLWxheW91dC0xIHdwLWJsb2NrLWNvbHVtbnMtaXMtbGF5b3V0LWZsZXgiPgo8ZGl2IGNsYXNzPSJ3cC1ibG9jay1jb2x1bW4gaXMtbGF5b3V0LWZsb3cgd3AtYmxvY2stY29sdW1uLWlzLWxheW91dC1mbG93Ij4KPHA+4oCTIFZpIGhhciBlbiBnZW5lcmVsbCBmw7Zyw6RuZHJpbmcgZMOkciBoZWxhIGbDtnJlbmluZ3N2w6RybGRlbiBmw7Zyw6RuZHJhcy4gRGV0IMOkciBzdsOlcmFyZSBhdHQgZW5nYWdlcmEgcGVyc29uZXIgaSBzdHlyZWxzZWFyYmV0ZXQsIG9jaCB2aWxsIG1hbiBoYSBrb21wZXRlbnRhIGxlZGFtw7Z0ZXIgYmVow7Z2ZXIgbWFuIGbDtnLDpG5kcmEgc2l0dCBmcmFtdGlkc3TDpG5rLiBTaXR0ZXIgbWFuIHNvbSBsZWRhbW90IHNrYSBtYW4gaGEgZXJzw6R0dG5pbmcgZsO2ciBzaXR0IGFuc3Zhciwgc8OkZ2VyIGhhbi4mbmJzcDs8L3A+CgoKCjxwPkJvc3RhZHNyw6R0dHNmw7ZyZW5pbmdhciBoYXIga29tbWl0IGVuIGzDpG5ncmUgYml0IHDDpSB2w6RnZW4gw6RuIHNhbWbDpGxsaWdoZXRzZsO2cmVuaW5nYXIuIE1lbiBmw7ZyZmx5dHRuaW5nZW4gZnLDpW4gZWxkc2rDpGxhcm5hLCBzb20gaGFyIHNldHQgdGlsbCBhdHQgZsO2cmVuaW5nZW4gZmx1dGl0IHDDpSBkZSBzZW5hc3RlIDIwIMOlcmVuLCB0aWxsIGVuIG1lciBzYW10aWRhIHN0eXJlbHNlIGLDtnJqYXIgc3luYXMgw6R2ZW4gaG9zIHNhbWbDpGxsaWdoZXRzZsO2cmVuaW5nYXIuJm5ic3A7Jm5ic3A7PC9wPgo8L2Rpdj4KCgoKPGRpdiBjbGFzcz0id3AtYmxvY2stY29sdW1uIGlzLWxheW91dC1mbG93IHdwLWJsb2NrLWNvbHVtbi1pcy1sYXlvdXQtZmxvdyI+CjxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWltYWdlIHNpemUtbGFyZ2UgaXMtcmVzaXplZCI+PGltZyBzcmM9Imh0dHBzOi8vc2FtZmFsbGlnaGV0ZXJuYS5zZS93cC1jb250ZW50L3VwbG9hZHMvMjAyNC8wOS9NYXJrdXMtUC1wYS1TQkMtODIxeDEwMjQucG5nIiBhbHQ9IiIgY2xhc3M9IndwLWltYWdlLTE2MTY3IiBzdHlsZT0id2lkdGg6MjcxcHg7aGVpZ2h0OmF1dG8iLz48ZmlnY2FwdGlvbiBjbGFzcz0id3AtZWxlbWVudC1jYXB0aW9uIj5NYXJrdXMgUMOlbHNzb24sIENoZWYgZsO2ciB2ZXJrc2FtaGV0c2lubm92YXRpb24gb2NoIHV0dmVja2xpbmcgcMOlIFNCQy4gRk9UTzogU0JDPC9maWdjYXB0aW9uPjwvZmlndXJlPgo8L2Rpdj4KPC9kaXY+CgoKCjxwPuKAkyBEZXQgc2l0dGVyIGZvcnRmYXJhbmRlIG3DpW5nYSBlbGRzasOkbGFyIGt2YXIgZMOkciB1dGUgb2NoIGRlIGtvbW1lciBub2cgaW50ZSBnw7ZyYSBuw6VncmEgc3TDtnJyZSBmw7Zyw6RuZHJpbmdhci4gRnLDpWdhbiDDpHIgdmFkIHNvbSBow6RuZGVyIG7DpHIgZW4gbnkgc3R5cmVsc2Ugcm90ZXJhcyBpbj8gRGlza3Vzc2lvbmVuIG9tIHN0eXJlbHNlYXJ2b2RlIGtvbW1lciBvZnRhIHVwcCBkw6UuIERldCBrb3N0YXIgYXR0IHRhIGhhbmQgb20gc2FrZXIsIG9jaCBhdHQgbsOlZ29uIHNrYSBnw7ZyYSBkZXQgw6V0IG1lZGxlbW1hcm5hLCBkZXQgYmVow7Z2ZXIgbWFuIGluc2UuJm5ic3A7PC9wPgoKCgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPlVwcMOldGfDpWVuZGUgdHJlbmQgPC9oMj4KCgoKPHA+U3RhdGlzdGlrZW4gdmlzYXIgZW4gc3RhZGlnIMO2a25pbmcgYXYgZGV0IGdlbm9tc25pdHRsaWdhIHN0eXJlbHNlYXJ2b2RldCwgbWVkIGVuIHRvdGFsIHByb2NlbnR1ZWxsIMO2a25pbmcgcMOlIGNpcmthIDM0IHByb2NlbnQgc2VkYW4gMjAyMC4gU2FtdGlkaWd0IHNha25hciBmb3J0ZmFyYW5kZSBtYWpvcml0ZXRlbiBhdiBzYW1mw6RsbGlnaGV0c2bDtnJlbmluZ2FyIGV0dCBzdHlyZWxzZWFydm9kZSBzb20gw7Z2ZXJzdGlnZXIgOTk5IGtyb25vci4gPC9wPgoKCgo8cD5Gw7ZyZW5pbmdhciBtZWQgZsOkcnJlIG1lZGxlbW1hciBoYXIgZXR0IGjDtmdyZSBnZW5vbXNuaXR0bGlndCBhcnZvZGUgcGVyIGRlbMOkZ2FyZSwgdmlzYXIgc3RhdGlzdGlrZW4uIEjDtmdzdCBzbml0dCBmw7ZyICYjODIyMDtrcm9ub3IgcGVyIGRlbMOkZ2FyZSYjODIyMTsgaGFyIGbDtnJlbmluZ2FyIGkgc3Bhbm5ldCAxMDAtMTUwIG1lZGxlbW1hciBtZWQgMTg0IGtyb25vciBwZXIgbWVkbGVtLiA8L3A+CgoKCjxwPkbDtnJlbmluZ2FyIG1lZCA1MC0xMDAgbWVkbGVtbWFyIGhhZGUgZXR0IGdlbm9tc25pdHRsaWd0IGFydm9kZSBww6UgMTAuNTAwIGtyb25vciwgbWVkYW4gZsO2cmVuaW5nYXIgbWVkIGZsZXIgw6RuIDQwMCBtZWRsZW1tYXIgaGFkZSBldHQgZ2Vub21zbml0dGxpZ3QgYXJ2b2RlIHDDpSAxNTIuMjExIGtyLiBIw6RyIHNrYSBkb2NrIHRpbGzDpGdnYXMgYXR0IGFuc3TDpGxsZGEgaW50ZSBoYXIgc29ydGVyYXRzIHV0LCB2aWxrZXQgZHJhciB1cHAgc25pdHRldCBibGFuZCBkZSBzdMO2cnJlIGbDtnJlbmluZ2FybmEuIEV4a2x1ZGVyYXIgdmkgZsO2cmVuaW5nYXIgbWVkIGbDtnJtb2RhZGUgYW5zdMOkbGxkYSBsYW5kZXQgaSBzdMOkbGxldCBkZXQgZ2Vub21zbml0dGxpZ3QgYXJ2b2RlIHDDpSA2Mi4wMDAga3Jvbm9yLjwvcD4KCgoKPHA+MjEsMzEgcHJvY2VudCBhdiBmw7ZyZW5pbmdhcm5hIGhhciBow7ZqdCBzaXR0IGFydm9kZSBzZWRhbiAyMDIwLCBtZWRhbiBjaXJrYSAxMSBwcm9jZW50IGhhciBzw6Rua3QgZGV0LiBNYWpvcml0ZXRlbiwgNjcgcHJvY2VudCAsIGhhciBsw6RtbmF0IGFydm9kZXQgb2bDtnLDpG5kcmF0LjwvcD4KCgoKPGg0IGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPkdlbm9tc25pdHRsaWd0IHN0eXJlbHNlYXJ2b2RlIDIwMjAtMjAyMyA8L3N0cm9uZz48L2g0PgoKCgo8cD48ZW0+TGluamVkaWFncmFtbWV0IG5lZGFuIHZpc2FyIHZhZCBkZXQgZ2Vub21zbml0dGxpZ2Egc3R5cmVsc2VhcnZvZGV0IHBlciDDpXIgKHV0YmV0YWxkIGtsdW1wc3VtbWEgdGlsbCBoZWxhIHN0eXJlbHNlbikgaGFyIHZhcml0IG1lbGxhbiAyMDIwLTIwMjMuIDwvZW0+PC9wPgoKCgo8ZGl2IGNsYXNzPSJ3cC1ibG9jay1jb2x1bW5zIGlzLWxheW91dC1mbGV4IHdwLWNvbnRhaW5lci1jb3JlLWNvbHVtbnMtaXMtbGF5b3V0LTIgd3AtYmxvY2stY29sdW1ucy1pcy1sYXlvdXQtZmxleCI+CjxkaXYgY2xhc3M9IndwLWJsb2NrLWNvbHVtbiBpcy1sYXlvdXQtZmxvdyB3cC1ibG9jay1jb2x1bW4taXMtbGF5b3V0LWZsb3ciIHN0eWxlPSJmbGV4LWJhc2lzOjY2LjY2JSI+CjwhRE9DVFlQRSBodG1sPgo8aHRtbCBsYW5nPSJzdiI+CjxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgogICAgPHRpdGxlPkdlbm9tc25pdHRsaWd0IHN0eXJlbHNlYXJ2b2RlPC90aXRsZT4KICAgIDxzdHlsZT4KICAgICAgICBib2R5IHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7CiAgICAgICAgfQoKICAgICAgICAuY2hhcnQtY29udGFpbmVyIHsKICAgICAgICAgICAgbWF4LXdpZHRoOiA2MDBweDsKICAgICAgICAgICAgbWFyZ2luOiAyMHB4IGF1dG87CiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkM2QzZDM7IC8qIExqdXNncsOlIHJhbSAqLwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpOyAvKiBTdWJ0aWwgc2t1Z2dhICovCiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IC8qIFbDpG5zdGVyanVzdGVyaW5nICovCiAgICAgICAgfQoKICAgICAgICBjYW52YXMgewogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICAgICAgICBtYXgtaGVpZ2h0OiA0MDBweDsgLyogTMOlcyBtYXgtaMO2amQgZsO2ciBkaWFncmFtbWV0ICovCiAgICAgICAgfQoKICAgICAgICAvKiBSZXNwb25zaXYgZGVzaWduICovCiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHsKICAgICAgICAgICAgLmNoYXJ0LWNvbnRhaW5lciB7CiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGNhbnZhcyB7CiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMDBweDsgLyogTWluc2thciBtYXgtaMO2amRlbiBww6UgbWluZHJlIHNrw6RybWFyICovCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KCjxkaXYgY2xhc3M9ImNoYXJ0LWNvbnRhaW5lciI+CiAgICA8Y2FudmFzIGlkPSJhcnZvZGVDaGFydCI+PC9jYW52YXM+CjwvZGl2PgoKPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vY2hhcnQuanMiPjwvc2NyaXB0Pgo8c2NyaXB0PgogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICBjb25zdCBjdHggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXJ2b2RlQ2hhcnQnKS5nZXRDb250ZXh0KCcyZCcpOwoKICAgICAgICBjb25zdCBkYXRhID0gewogICAgICAgICAgICBsYWJlbHM6IFsnMjAyMCcsICcyMDIxJywgJzIwMjInLCAnMjAyMyddLAogICAgICAgICAgICBkYXRhc2V0czogW3sKICAgICAgICAgICAgICAgIGxhYmVsOiAnR2Vub21zbml0dGxpZ3Qgc3R5cmVsc2VhcnZvZGUgKGtyKScsCiAgICAgICAgICAgICAgICBkYXRhOiBbMTM5NTYuMzMsIDE2MDg5Ljg0LCAxNzY0Ni45MSwgMTg4MzAuNDRdLAogICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAncmdiYSg3NSwgMTkyLCAxOTIsIDAuMiknLAogICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6ICdyZ2JhKDc1LCAxOTIsIDE5MiwgMSknLAogICAgICAgICAgICAgICAgYm9yZGVyV2lkdGg6IDIsCiAgICAgICAgICAgICAgICBmaWxsOiBmYWxzZSwgIC8vIEluZ2VuIGJha2dydW5kc2Z5bGxuYWQKICAgICAgICAgICAgICAgIHRlbnNpb246IDAuMSAgLy8gR2VyIGVuIGzDpHR0IGt1cnZhIHDDpSBsaW5qZW4KICAgICAgICAgICAgfV0KICAgICAgICB9OwoKICAgICAgICBjb25zdCBjb25maWcgPSB7CiAgICAgICAgICAgIHR5cGU6ICdsaW5lJywgIC8vIMOEbmRyYXQgdGlsbCBsaW5qZWRpYWdyYW0KICAgICAgICAgICAgZGF0YTogZGF0YSwKICAgICAgICAgICAgb3B0aW9uczogewogICAgICAgICAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSwKICAgICAgICAgICAgICAgIG1haW50YWluQXNwZWN0UmF0aW86IGZhbHNlLAogICAgICAgICAgICAgICAgc2NhbGVzOiB7CiAgICAgICAgICAgICAgICAgICAgeTogewogICAgICAgICAgICAgICAgICAgICAgICBiZWdpbkF0WmVybzogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHsgIC8vIEJlc2tyaXZuaW5nIGF2IHktYXhlbG4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnU3R5cmVsc2VhcnZvZGUgKGtyKScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250OiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogMTQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAnYm9sZCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgdGlja3M6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrOiBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS50b0xvY2FsZVN0cmluZygnc3YtU0UnKSArICcga3InOyAvLyBMw6RnZyB0aWxsICdrcicgZWZ0ZXIgdmFyamUgdsOkcmRlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udDogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDEyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlaWdodDogJzMwMCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJyMwMDAnCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHg6IHsKICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHsgIC8vIEJlc2tyaXZuaW5nIGF2IHgtYXhlbG4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnw4VyJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQ6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAxNCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6ICdib2xkJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICB0aWNrczogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udDogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDEyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlaWdodDogJzMwMCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJyMwMDAnCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgcGx1Z2luczogewogICAgICAgICAgICAgICAgICAgIGxlZ2VuZDogewogICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH07CgogICAgICAgIG5ldyBDaGFydChjdHgsIGNvbmZpZyk7CiAgICB9KTsKPC9zY3JpcHQ+Cgo8L2JvZHk+CjwvaHRtbD4KCjwvZGl2PgoKCgo8ZGl2IGNsYXNzPSJ3cC1ibG9jay1jb2x1bW4gaXMtbGF5b3V0LWZsb3cgd3AtYmxvY2stY29sdW1uLWlzLWxheW91dC1mbG93IiBzdHlsZT0iZmxleC1iYXNpczozMy4zMyUiPjwvZGl2Pgo8L2Rpdj4KCgoKPGg0IGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj5Gw7ZyZW5pbmdlbnMgZWtvbm9taSBzcGVsYXIgc3RvciByb2xsPC9oND4KCgoKPHA+RGVzc3V0b20gc3BlbGFyIGbDtnJlbmluZ2VucyBla29ub21pIGluLiBJIGVuIHNhbWbDpGxsaWdoZXQgbWVkIGzDpWcgb21zw6R0dG5pbmcgYmxpciBldHQgc3R5cmVsc2VhcnZvZGUgdHlkbGlnYXJlIMOkbiBpIGVuIGbDtnJlbmluZyBtZWQgaMO2ZyBvbXPDpHR0bmluZywgb2F2c2V0dCBvbSBkZXQgc3BlZ2xhciBhcmJldHNiw7ZyZGFuIG9jaCBhbnN2YXJzYmlsZGVuIGVsbGVyIGludGUuPC9wPgoKCgo8cD7igJMgQXJ2b2RldCBrYW5za2UgYmxpciBlbiBnYW5za2Egc3RvciBkZWwgYXYgZsO2cmVuaW5nZW5zIGtvc3RuYWRlciwgdGlsbCBza2lsbG5hZCBmcsOlbiBmw7ZyZW5pbmdhciBkw6RyIGFydm9kZXQgZsO2cnN2aW5uZXIgaSBtw6RuZ2Rlbiwgc8OkZ2VyIE1hcmt1cyBQw6Vsc3Nvbi48L3A+CgoKCjxoNCBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+SWRlZWxsYSByb2xsZW4gc25hcnQgZXR0IG1pbm5lIGJsb3R0PC9oND4KCgoKPHA+RGUga2xhc3Npc2thIGh1bmTDpXJlbiBpIHN0eXJlbHNlbiwgc29tIHZhcmplIG1lZGxlbSBnw7ZyIHV0YW4gZXJzw6R0dG5pbmcsIMOkciBlbiBmw7ZybGVnYWQgc3RyYXRlZ2kuIERldCBoYXIgdmlzc2VybGlnZW4gZnVuZ2VyYXQgaGlzdG9yaXNrdCwgbWVuIGbDtnJ1dHPDpHR0bmluZ2FybmEgw6RyIGFubm9ybHVuZGEgaWRhZyBqw6RtZsO2cnQgbWVkIGbDtnIgMTUgw6VyIHNlZGFuLCBtZW5hciBNYXJrdXMuIEpvYmIsIGZhbWlsaiBvY2ggYW5kcmEgaW50cmVzc2VuIMOkdGVyIHVwcCBhbGwgdGlkIOKAkyB2aWxrZXQgZ8O2ciBhdHQgc3R5cmVsc2VhcmJldGV0IGhhbW5hciBpIGtsw6RtLiZuYnNwOzwvcD4KCgoKPHA+4oCTJm5ic3A7IE1hbiBtw6VzdGUgYsO2cmphIGxldGEgaSBhbmRyYSDDpG5kYW4gb2NoIGhpdHRhIHLDpHR0IGtvbXBldGVucywgb2NoIGthbnNrZSBiZXRhbGEgZXR0IHN0eXJlbHNlYXJ2b2RlIGbDtnIgZGV0LiBBbGxhIMOkciBpbnRlIGhlbGxlciBsw6RtcGxpZ2EgYXR0IHNpdHRhIGkgc3R5cmVsc2VuLiBKYWcgdHJvciBhdHQgbsOlZ29uc3RhbnMgaMOkbmdlciBkZXQgaMOkciBpaG9wIGkgZsO2cmZseXR0bmluZ2VuIHNvbSB2aSBoYXIgcMOlYsO2cmphdCwgbWVuIGludGUga29tbWl0IHPDpSBsw6VuZ3QgaSDDpG4sIHPDpGdlciBNYXJrdXMgb2NoIGZvcnRzw6R0dGVyOiZuYnNwOzwvcD4KCgoKPHA+4oCTIEhhciBkZSAobGVkYW3DtnRlcm5hIHJlZCBhbm0uKSBsdXN0IGF0dCBsw6RnZ2EgYWxsIHNpbiB0aWQgcMOlIHNhbWbDpGxsaWdoZXRlbiwgZnJhbWbDtnJhbGx0IG9hdmzDtm5hdD8gSHVyIG15Y2tldCB0aWQgaGFyIG1hbiBzb20gcHJpdmF0cGVyc29uIMO2dmVyIGbDtnIgZGV0IGjDpHIsIGkgZsO2cmjDpWxsYW5kZSB0aWxsIGbDtnJmbHl0dG5pbmdlbiB2aSBzZXR0IGRlIHNlbmFzdGUgw6VydGlvbmRlbj8mbmJzcDs8L3A+CgoKCjxwPkRldCBrYW4gdmFyYSBlbiBrw6Ruc2xpZyBmcsOlZ2EuIE7DpHIgZnLDpWdhbiBvbSBzdHlyZWxzZWFydm9kZSBmw7ZyIHNhbWbDpGxsaWdoZXRlbnMgc3R5cmVsc2UgbHlmdHMgcMOlIHN0w6RtbWFuIMOkciBkZXQgaW50ZSBvdmFubGlndCBhdHQgdGFwcGEgZGV0IHNha2xpZ2EsIGJlcsOkdHRhciBNYXJrdXMuIERldCBzb20gZmFrdGlza3QgbGlnZ2VyIHRpbGwgZ3J1bmQgZsO2ciBzdHlyZWxzZWFydm9kZXQuIEjDpHIgZ8OkbGxlciBkZXQgYXR0IHZhcmEgdHlkbGlnIG1vdCBtZWRsZW1tYXJuYS4mbmJzcDs8L3A+CgoKCjxwPuKAkyBEZXQgYmxpciBhbGx0aWQgZW4ga8OkbnNsb2Zyw6VnYSBww6Ugc3TDpG1tYW4gbsOkciB2aSBwcmF0YXIgYXJ2b2RlLiBEw6RyZsO2ciDDpHIgZGV0IHZpa3RpZ3QgYXR0IHZlcmtsaWdlbiBtb3RpdmVyYSB2YXJmw7ZyIGRldCDDpHIgZW4gc2vDpGxpZyBmw7Zyw6RuZHJpbmcuIERldCBrYW5za2Ugw6RyIHJlZG92aXNuaW5nIGF2IG5lZGxhZ2RhIHRpbW1hciwgZXR0IHN0w7ZycmUgYW5zdmFyIG9jaCBhcmJldGV0IG1hbiBmYWt0aXNrdCBnw7ZyLiBBcmd1bWVudGVyYSBvcmRlbnRsaWdlbiB2YXJmw7ZyIGVuIGjDtmpuaW5nIMOkciBuw7ZkdsOkbmRpZ3QsIGhlbHQgZW5rZWx0LCBzw6RnZXIgTWFya3VzIFDDpWxzc29uLiZuYnNwOzwvcD4KCgoKPGg0IGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj5Gb3JtdWxlcmEgaW5mb3JtYXRpb24gcMOlIGV0dCBicmEgc8OkdHQ8L2g0PgoKCgo8cD5Hw6VyIG1hbiBmcsOlbiBhdHQgaW50ZSBoYSBuw6Vnb3QgYXJ2b2RlIHRpbGwgYXR0IHLDtnN0YSBpZ2Vub20gZXR0IHN0eXJlbHNlYXJ2b2RlIGthbiDDpHZlbiBkZW4gbMOkZ3N0YSBzdW1tYW4gbMOldGEgc29tIGjDtmcuIE7DpHIgbWFuIHZpZCDDpXJzc3TDpG1tYW4gcHJlc2VudGVyYXIgZsO2cnNsYWdldCBrYW4gZGV0IGTDpHJmw7ZyIHZhcmEgYnJhIGF0dCBicnl0YSBuZXIgc3VtbWFuIHPDpSBsw6VuZ3QgZGV0IGfDpXIuIEV0dCB0aW1hcnZvZGUgcMOlIDE1IGtyb25vciDDpHIgc3bDpXJhcmUgYXR0IGFyZ3VtZW50ZXJhIG1vdCDDpG4gZW4ga2x1bXBzdW1tYSBww6UgNTAuMDAwIGtyb25vci4mbmJzcDs8L3A+CgoKCjxwPuKAkyBBbmRlbHPDpGdhcmUga2Fuc2tlIHR5Y2tlciBhdHQgZGV0IGzDpXRlciBzb20gasOkdHRlbXlja2V0IHBlbmdhciwgbWVuIG9tIG1hbiBzw6RnZXIgbsOlZ290IGkgc3RpbCBtZWQgYXR0IOKAmHZpIGhhciBhbmFseXNlcmF0IGFuc3ZhcnNvbXLDpWRlbiBvY2ggbmVkbGFnZGEgdGltbWFyIHZpbGtldCBtb3RzdmFyYXIgZGVuIGjDpHIgdGltZXJzw6R0dG5pbmdlbuKAmSBzw6UgYmxpciBkZXQgb2Z0YSBldHQgZ2Fuc2thIGzDpWd0IGFydm9kZS4gSW5nZW4gYmxpciByaWsgcMOlIGRldCBow6RyLiZuYnNwOzwvcD4KCgoKPGg0IGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPkfDpXIgZGV0IGF0dCBhbnbDpG5kYSBuw6Vnb24gbcOldHRzdG9jayBmw7ZyIGF0dCBiZXN0w6RtbWEgc3R5cmVsc2VhcnZvZGU/Jm5ic3A7PC9zdHJvbmc+PC9oND4KCgoKPHA+4oCTIEdydW5kZnLDpWdhbiDDpHIgYWxsdGlkIHZhZCBldHQgc2vDpGxpZ3QgYXJ2b2RlIMOkci4gTcOlbmdhIHNhbWbDpGxsaWdoZXRlciBoYXIganUgaW50ZSBlbnMgZXR0IHN0eXJlbHNlYXJ2b2RlIGlkYWcuIE1lbiBqYWcgZ2lsbGFyIHbDpGwgYXR0IGtvcHBsYSBkZXQgdGlsbCBuw6Vnb3QgdHlwIGF2IGluZGV4LCB0aWxsIGV4ZW1wZWwgcHJpc2Jhc2JlbG9wcGV0LiZuYnNwOzwvcD4KCgoKPGgxIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPlN0YXRpc3RpazogU8OlIHNlciBzdHlyZWxzZWFydm9kZXQgdXQ8L3N0cm9uZz48L2gxPgoKCgo8cD5HZW5vbSBhdHQgYWdncmVnZXJhIHN0YXRpc3RpayBmcsOlbiBMYW50bcOkdGVyaWV0IG9jaCBTa2F0dGVteW5kaWdoZXRlbiBoYXIgdmkga2FydGxhZ3QgaHVyIHN0eXJlbHNlYXJ2b2RldCBzZXIgdXQgaSBsYW5kZXRzIHNhbWbDpGxsaWdoZXRzZsO2cmVuaW5nYXIuIFZpIGthbiBzZSBzYW1iYW5kIHNvbSBldHQgaMO2Z3JlIGFydm9kZSBmw7ZyIHN0w7ZycmUgZsO2cmVuaW5nYXIsIG9jaCBlbiB1cHDDpXRnw6VlbmRlIHRyZW5kIGkgYXJ2b2Rlc25pdsOlZXIuIDwvcD4KCgoKPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPlV0dmVja2xpbmcgYXYgc3R5cmVsc2VhcnZvZGUgMjAyMC0yMDIzPC9zdHJvbmc+PC9oMz4KCgoKPGRpdiBjbGFzcz0id3AtYmxvY2stY29sdW1ucyBpcy1sYXlvdXQtZmxleCB3cC1jb250YWluZXItY29yZS1jb2x1bW5zLWlzLWxheW91dC0zIHdwLWJsb2NrLWNvbHVtbnMtaXMtbGF5b3V0LWZsZXgiPgo8ZGl2IGNsYXNzPSJ3cC1ibG9jay1jb2x1bW4gaXMtbGF5b3V0LWZsb3cgd3AtYmxvY2stY29sdW1uLWlzLWxheW91dC1mbG93Ij4KPCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9InN2Ij4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8dGl0bGU+R2Vub21zbml0dGxpZ3Qgc3R5cmVsc2VhcnZvZGUgcGVyIMOlcjwvdGl0bGU+CiAgICA8c3R5bGU+CiAgICAgICAgYm9keSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsKICAgICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgICAgICBwYWRkaW5nOiAzMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0OwogICAgICAgIH0KCiAgICAgICAgLmNoYXJ0LWNvbnRhaW5lciB7CiAgICAgICAgICAgIG1heC13aWR0aDogNjAwcHg7CiAgICAgICAgICAgIG1hcmdpbjogNDBweCBhdXRvOwogICAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZDNkM2QzOyAvKiBManVzZ3LDpSByYW0gKi8KICAgICAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsgLyogU3VidGlsIHNrdWdnYSAqLwogICAgICAgIH0KCiAgICAgICAgY2FudmFzIHsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogYXV0bzsKICAgICAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7IC8qIEzDpXMgbWF4LWjDtmpkIGbDtnIgZGlhZ3JhbW1ldCAqLwogICAgICAgIH0KCiAgICAgICAgLyogUmVzcG9uc2l2IGRlc2lnbiAqLwogICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7CiAgICAgICAgICAgIC5jaGFydC1jb250YWluZXIgewogICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgICAgICAgICAgICAgcGFkZGluZzogMCAxMHB4OwogICAgICAgICAgICB9CgogICAgICAgICAgICBjYW52YXMgewogICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMzAwcHg7IC8qIE1pbnNrYXIgbWF4LWjDtmpkZW4gcMOlIG1pbmRyZSBza8Okcm1hciAqLwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+Cgo8ZGl2IGNsYXNzPSJjaGFydC1jb250YWluZXIiPgogICAgPGNhbnZhcyBpZD0iYXJ2b2RlQmFyQ2hhcnQiPjwvY2FudmFzPgo8L2Rpdj4KCjxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2NoYXJ0LmpzIj48L3NjcmlwdD4KPHNjcmlwdD4KICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgY29uc3QgY3R4ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Fydm9kZUJhckNoYXJ0JykuZ2V0Q29udGV4dCgnMmQnKTsKCiAgICAgICAgY29uc3QgZGF0YSA9IHsKICAgICAgICAgICAgbGFiZWxzOiBbJzIwMjAnLCAnMjAyMScsICcyMDIyJywgJzIwMjMnXSwKICAgICAgICAgICAgZGF0YXNldHM6IFt7CiAgICAgICAgICAgICAgICBsYWJlbDogJ0dlbm9tc25pdHRsaWd0IHN0eXJlbHNlYXJ2b2RlIChrciknLAogICAgICAgICAgICAgICAgZGF0YTogWzEzOTU2LjMzLCAxNjA4OS44NCwgMTc2NDYuOTEsIDE4ODMwLjQ0XSwKICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoNzUsIDE5MiwgMTkyLCAwLjIpJywKICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yOiAncmdiYSg3NSwgMTkyLCAxOTIsIDEpJywKICAgICAgICAgICAgICAgIGJvcmRlcldpZHRoOiAxCiAgICAgICAgICAgIH1dCiAgICAgICAgfTsKCiAgICAgICAgY29uc3QgY29uZmlnID0gewogICAgICAgICAgICB0eXBlOiAnYmFyJywKICAgICAgICAgICAgZGF0YTogZGF0YSwKICAgICAgICAgICAgb3B0aW9uczogewogICAgICAgICAgICAgICAgaW5kZXhBeGlzOiAneScsICAvLyBHw7ZyIHN0YXBlbGRpYWdyYW1tZXQgaG9yaXNvbnRlbGx0CiAgICAgICAgICAgICAgICByZXNwb25zaXZlOiB0cnVlLAogICAgICAgICAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsCiAgICAgICAgICAgICAgICBzY2FsZXM6IHsKICAgICAgICAgICAgICAgICAgICB4OiB7CiAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luQXRaZXJvOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogeyAgLy8gQmVza3Jpdm5pbmcgYXYgeC1heGVsbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udDogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDE0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlaWdodDogJ2JvbGQnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIHRpY2tzOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjazogZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUudG9Mb2NhbGVTdHJpbmcoJ3N2LVNFJykgKyAnIGtyJzsgLy8gTMOkZ2cgdGlsbCAna3InIGVmdGVyIHZhcmplIHbDpHJkZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQ6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAxMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6ICczMDAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICcjMDAwJwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICB5OiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiB7ICAvLyBCZXNrcml2bmluZyBhdiB5LWF4ZWxuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250OiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogMTQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAnYm9sZCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgdGlja3M6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQ6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAxMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6ICczMDAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICcjMDAwJwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHBsdWdpbnM6IHsKICAgICAgICAgICAgICAgICAgICBsZWdlbmQ6IHsKICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICBuZXcgQ2hhcnQoY3R4LCBjb25maWcpOwogICAgfSk7Cjwvc2NyaXB0PgoKPC9ib2R5Pgo8L2h0bWw+CgoKCgo8cD48ZW0+VGFiZWxsZW4gdmlzYXIgdXR2ZWNrbGluZ2VuIGF2IGRldCBnZW5vbXNuaXR0bGlnYSBzdHlyZWxzZWFydm9kZXQgw7Z2ZXIgdGlkLiBCZWxvcHBlbiByZXByZXNlbnRlcmFyIGRlbiB0b3RhbGEgc3VtbWFuIHNvbSBiZXRhbGF0cyB1dCB0aWxsIGhlbGEgc3R5cmVsc2VuLCBpbnRlIHBlciBpbmRpdmlkLCB1dGFuIHNvbSBlbiBzYW1tYW5sYWdkIGVyc8OkdHRuaW5nIGbDtnIgc2FtdGxpZ2Egc3R5cmVsc2VtZWRsZW1tYXIuPC9lbT48L3A+CjwvZGl2Pgo8L2Rpdj4KCgoKPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj5TdHlyZWxzZWFydm9kZSBiZXJvZW5kZSBww6UgYW50YWxldCBkZWzDpGdhcmUgPC9oMz4KCgoKPGRpdiBjbGFzcz0id3AtYmxvY2stY29sdW1ucyBpcy1sYXlvdXQtZmxleCB3cC1jb250YWluZXItY29yZS1jb2x1bW5zLWlzLWxheW91dC00IHdwLWJsb2NrLWNvbHVtbnMtaXMtbGF5b3V0LWZsZXgiPgo8ZGl2IGNsYXNzPSJ3cC1ibG9jay1jb2x1bW4gaXMtbGF5b3V0LWZsb3cgd3AtYmxvY2stY29sdW1uLWlzLWxheW91dC1mbG93Ij4KPCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9InN2Ij4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8dGl0bGU+R2Vub21zbml0dGxpZ3Qgc3R5cmVsc2VhcnZvZGUgcGVyIGFudGFsIG1lZGxlbW1hciAyMDIzPC90aXRsZT4KICAgIDxzdHlsZT4KICAgICAgICBib2R5IHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7CiAgICAgICAgfQoKICAgICAgICAuY2hhcnQtY29udGFpbmVyIHsKICAgICAgICAgICAgbWF4LXdpZHRoOiA2MDBweDsKICAgICAgICAgICAgbWFyZ2luOiAyMHB4IGF1dG87CiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkM2QzZDM7IC8qIExqdXNncsOlIHJhbSAqLwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpOyAvKiBTdWJ0aWwgc2t1Z2dhICovCiAgICAgICAgfQoKICAgICAgICBjYW52YXMgewogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICAgICAgICBtYXgtaGVpZ2h0OiA0MDBweDsgLyogTMOlcyBtYXgtaMO2amQgZsO2ciBkaWFncmFtbWV0ICovCiAgICAgICAgfQoKICAgICAgICAvKiBSZXNwb25zaXYgZGVzaWduICovCiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHsKICAgICAgICAgICAgLmNoYXJ0LWNvbnRhaW5lciB7CiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGNhbnZhcyB7CiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMDBweDsgLyogTWluc2thciBtYXgtaMO2amRlbiBww6UgbWluZHJlIHNrw6RybWFyICovCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KCjxkaXYgY2xhc3M9ImNoYXJ0LWNvbnRhaW5lciI+CiAgICA8Y2FudmFzIGlkPSJtZWRsZW1BcnZvZGVDaGFydCI+PC9jYW52YXM+CjwvZGl2PgoKPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vY2hhcnQuanMiPjwvc2NyaXB0Pgo8c2NyaXB0PgogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICBjb25zdCBjdHggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVkbGVtQXJ2b2RlQ2hhcnQnKS5nZXRDb250ZXh0KCcyZCcpOwoKICAgICAgICBjb25zdCBkYXRhID0gewogICAgICAgICAgICBsYWJlbHM6IFsnNTAtMTAwJywgJzEwMC0xNTAnLCAnMTUwLTI1MCcsICcyNTAtNDAwJywgJzQwMCsnXSwKICAgICAgICAgICAgZGF0YXNldHM6IFt7CiAgICAgICAgICAgICAgICBsYWJlbDogJ0dlbm9tc25pdHRsaWd0IHN0eXJlbHNlYXJ2b2RlIDIwMjMgKGtyKScsCiAgICAgICAgICAgICAgICBkYXRhOiBbMTA0NTMuNDgsIDI2MTI5LjI3LCAzMDU5MC43NSwgMzk2OTguMzIsIDYyMDUzLjcwXSwKICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoNzUsIDE5MiwgMTkyLCAwLjIpJywKICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yOiAncmdiYSg3NSwgMTkyLCAxOTIsIDEpJywKICAgICAgICAgICAgICAgIGJvcmRlcldpZHRoOiAxCiAgICAgICAgICAgIH1dCiAgICAgICAgfTsKCiAgICAgICAgY29uc3QgY29uZmlnID0gewogICAgICAgICAgICB0eXBlOiAnYmFyJywKICAgICAgICAgICAgZGF0YTogZGF0YSwKICAgICAgICAgICAgb3B0aW9uczogewogICAgICAgICAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSwKICAgICAgICAgICAgICAgIG1haW50YWluQXNwZWN0UmF0aW86IGZhbHNlLAogICAgICAgICAgICAgICAgc2NhbGVzOiB7CiAgICAgICAgICAgICAgICAgICAgeTogewogICAgICAgICAgICAgICAgICAgICAgICBiZWdpbkF0WmVybzogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHsgIC8vIEJlc2tyaXZuaW5nIGF2IHktYXhlbG4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQ6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAxNCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6ICdib2xkJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICB0aWNrczogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s6IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnRvTG9jYWxlU3RyaW5nKCdzdi1TRScpICsgJyBrcic7IC8vIEzDpGdnIHRpbGwgJ2tyJyBlZnRlciB2YXJqZSB2w6RyZGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250OiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogMTIsICAvLyBNaW5kcmUgb2NoIHR1bm5hcmUgdGV4dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlaWdodDogJzMwMCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJyMwMDAnCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHg6IHsKICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHsgIC8vIEJlc2tyaXZuaW5nIGF2IHgtYXhlbG4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnQW50YWwgbWVkbGVtbWFyJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQ6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAxNCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6ICdib2xkJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICB0aWNrczogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udDogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDEyLCAgLy8gTWluZHJlIG9jaCB0dW5uYXJlIHRleHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6ICczMDAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICcjMDAwJwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHBsdWdpbnM6IHsKICAgICAgICAgICAgICAgICAgICBsZWdlbmQ6IHsKICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICBuZXcgQ2hhcnQoY3R4LCBjb25maWcpOwogICAgfSk7Cjwvc2NyaXB0PgoKPC9ib2R5Pgo8L2h0bWw+Cgo8L2Rpdj4KCgoKPGRpdiBjbGFzcz0id3AtYmxvY2stY29sdW1uIGlzLWxheW91dC1mbG93IHdwLWJsb2NrLWNvbHVtbi1pcy1sYXlvdXQtZmxvdyI+CjxwPjxlbT5UYWJlbGxlbiBuZWRhbiB2aXNhciBodXIgc3R5cmVsc2VhcnZvZGV0IHNraWxqZXIgc2lnIMOldCBiZXJvZW5kZSBww6UgaHVyIG3DpW5nYSBkZWzDpGdhcmUgc2FtZsOkbGxpZ2hldHNmw7ZyZW5pbmdlbiBoYXIuIERldCDDpHIgYWxsdHPDpSB0b3RhbHQgdXRiZXRhbHQgYXJ2b2RlICgyMDIzKS4gIFZpIGhhciDDpHZlbiByZW5zYXQgZsO2cmVuaW5nYXIgc29tIG1lZCBzdG9yIHNhbm5vbGlrIGhhciBhbnN0w6RsbHQgcGVyc29uZXIuIDwvZW0+PC9wPgo8L2Rpdj4KPC9kaXY+CgoKCjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+PHN0cm9uZz5TdHlyZWxzZWFydm9kZSBwZXIgZGVsw6RnYXJlPC9zdHJvbmc+PC9oMz4KCgoKPGRpdiBjbGFzcz0id3AtYmxvY2stY29sdW1ucyBpcy1sYXlvdXQtZmxleCB3cC1jb250YWluZXItY29yZS1jb2x1bW5zLWlzLWxheW91dC02IHdwLWJsb2NrLWNvbHVtbnMtaXMtbGF5b3V0LWZsZXgiPgo8ZGl2IGNsYXNzPSJ3cC1ibG9jay1jb2x1bW4gaXMtbGF5b3V0LWZsb3cgd3AtYmxvY2stY29sdW1uLWlzLWxheW91dC1mbG93Ij4KPCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9InN2Ij4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8dGl0bGU+S3Jvbm9yIHBlciBkZWzDpGdhcmUgcGVyIGFudGFsIG1lZGxlbW1hciAyMDIzPC90aXRsZT4KICAgIDxzdHlsZT4KICAgICAgICBib2R5IHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7CiAgICAgICAgfQoKICAgICAgICAuY2hhcnQtY29udGFpbmVyIHsKICAgICAgICAgICAgbWF4LXdpZHRoOiA2MDBweDsKICAgICAgICAgICAgbWFyZ2luOiAyMHB4IGF1dG87CiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkM2QzZDM7IC8qIExqdXNncsOlIHJhbSAqLwogICAgICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpOyAvKiBTdWJ0aWwgc2t1Z2dhICovCiAgICAgICAgfQoKICAgICAgICBjYW52YXMgewogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgaGVpZ2h0OiBhdXRvOwogICAgICAgICAgICBtYXgtaGVpZ2h0OiA0MDBweDsgLyogTMOlcyBtYXgtaMO2amQgZsO2ciBkaWFncmFtbWV0ICovCiAgICAgICAgfQoKICAgICAgICAvKiBSZXNwb25zaXYgZGVzaWduICovCiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHsKICAgICAgICAgICAgLmNoYXJ0LWNvbnRhaW5lciB7CiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGNhbnZhcyB7CiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMDBweDsgLyogTWluc2thciBtYXgtaMO2amRlbiBww6UgbWluZHJlIHNrw6RybWFyICovCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KCjxkaXYgY2xhc3M9ImNoYXJ0LWNvbnRhaW5lciI+CiAgICA8Y2FudmFzIGlkPSJkZWxhZ2FyZUNoYXJ0Ij48L2NhbnZhcz4KPC9kaXY+Cgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9jaGFydC5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQ+CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAgIGNvbnN0IGN0eCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZWxhZ2FyZUNoYXJ0JykuZ2V0Q29udGV4dCgnMmQnKTsKCiAgICAgICAgY29uc3QgZGF0YSA9IHsKICAgICAgICAgICAgbGFiZWxzOiBbJzUwLTEwMCcsICcxMDAtMTUwJywgJzE1MC0yNTAnLCAnMjUwLTQwMCcsICc0MDArJ10sCiAgICAgICAgICAgIGRhdGFzZXRzOiBbewogICAgICAgICAgICAgICAgbGFiZWw6ICdLcm9ub3IgcGVyIGRlbMOkZ2FyZSAyMDIzIChrciknLAogICAgICAgICAgICAgICAgZGF0YTogWzEyMi4yOSwgMTg0Ljg4LCAxNjcuNjIsIDExNi4zMiwgNjcuOTNdLAogICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAncmdiYSg3NSwgMTkyLCAxOTIsIDAuMiknLAogICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6ICdyZ2JhKDc1LCAxOTIsIDE5MiwgMSknLAogICAgICAgICAgICAgICAgYm9yZGVyV2lkdGg6IDEKICAgICAgICAgICAgfV0KICAgICAgICB9OwoKICAgICAgICBjb25zdCBjb25maWcgPSB7CiAgICAgICAgICAgIHR5cGU6ICdiYXInLAogICAgICAgICAgICBkYXRhOiBkYXRhLAogICAgICAgICAgICBvcHRpb25zOiB7CiAgICAgICAgICAgICAgICByZXNwb25zaXZlOiB0cnVlLAogICAgICAgICAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsCiAgICAgICAgICAgICAgICBzY2FsZXM6IHsKICAgICAgICAgICAgICAgICAgICB5OiB7CiAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luQXRaZXJvOiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogeyAgLy8gQmVza3Jpdm5pbmcgYXYgeS1heGVsbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udDogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDE0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlaWdodDogJ2JvbGQnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIHRpY2tzOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjazogZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUudG9Mb2NhbGVTdHJpbmcoJ3N2LVNFJykgKyAnIGtyJzsgLy8gTMOkZ2cgdGlsbCAna3InIGVmdGVyIHZhcmplIHbDpHJkZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQ6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAxMiwgIC8vIE1pbmRyZSBvY2ggdHVubmFyZSB0ZXh0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAnMzAwJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnIzAwMCcKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgeDogewogICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogeyAgLy8gQmVza3Jpdm5pbmcgYXYgeC1heGVsbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICdBbnRhbCBtZWRsZW1tYXInLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udDogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDE0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlaWdodDogJ2JvbGQnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIHRpY2tzOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250OiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogMTIsICAvLyBNaW5kcmUgb2NoIHR1bm5hcmUgdGV4dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlaWdodDogJzMwMCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJyMwMDAnCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgcGx1Z2luczogewogICAgICAgICAgICAgICAgICAgIGxlZ2VuZDogewogICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH07CgogICAgICAgIG5ldyBDaGFydChjdHgsIGNvbmZpZyk7CiAgICB9KTsKPC9zY3JpcHQ+Cgo8L2JvZHk+CjwvaHRtbD4KCjwvZGl2PgoKCgo8ZGl2IGNsYXNzPSJ3cC1ibG9jay1jb2x1bW4gaXMtbGF5b3V0LWZsb3cgd3AtYmxvY2stY29sdW1uLWlzLWxheW91dC1mbG93Ij4KPGRpdiBjbGFzcz0id3AtYmxvY2stY29sdW1ucyBpcy1sYXlvdXQtZmxleCB3cC1jb250YWluZXItY29yZS1jb2x1bW5zLWlzLWxheW91dC01IHdwLWJsb2NrLWNvbHVtbnMtaXMtbGF5b3V0LWZsZXgiPgo8ZGl2IGNsYXNzPSJ3cC1ibG9jay1jb2x1bW4gaXMtbGF5b3V0LWZsb3cgd3AtYmxvY2stY29sdW1uLWlzLWxheW91dC1mbG93Ij4KPHA+PGVtPlN0YXBlbGRpYWdyYW1tZXQgdmlzYXIgZ2Vub21zbml0dGxpZ3QgYXJ2b2RlIHBlciBkZWzDpGdhcmUgYmVyb2VuZGUgcMOlIGFudGFsZXQgbWVkbGVtbWFyIGkgZsO2cmVuaW5nZW4gZsO2ciDDpXIgMjAyMy48L2VtPjwvcD4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CgoKCjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+PHN0cm9uZz5TdHlyZWxzZWFydm9kZSBiZXJvZW5kZSBww6UgYW50YWxldCBkZWzDpGdhcmU8L3N0cm9uZz48L2gzPgoKCgo8ZGl2IGNsYXNzPSJ3cC1ibG9jay1jb2x1bW5zIGlzLWxheW91dC1mbGV4IHdwLWNvbnRhaW5lci1jb3JlLWNvbHVtbnMtaXMtbGF5b3V0LTggd3AtYmxvY2stY29sdW1ucy1pcy1sYXlvdXQtZmxleCI+CjxkaXYgY2xhc3M9IndwLWJsb2NrLWNvbHVtbiBpcy1sYXlvdXQtZmxvdyB3cC1ibG9jay1jb2x1bW4taXMtbGF5b3V0LWZsb3ciPgo8IURPQ1RZUEUgaHRtbD4KPGh0bWwgbGFuZz0ic3YiPgo8aGVhZD4KICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4KICAgIDx0aXRsZT5Gw7Zyw6RuZHJpbmcgYXYgYXJ2b2RlIHNlZGFuIDIwMjA8L3RpdGxlPgogICAgPHN0eWxlPgogICAgICAgIGJvZHkgewogICAgICAgICAgICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIG1hcmdpbjogMDsKICAgICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDsKICAgICAgICB9CgogICAgICAgIC5jaGFydC1jb250YWluZXIgewogICAgICAgICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgICAgICAgICBtYXJnaW46IDIwcHggYXV0bzsKICAgICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2QzZDNkMzsgLyogTGp1c2dyw6UgcmFtICovCiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMSk7IC8qIFN1YnRpbCBza3VnZ2EgKi8KICAgICAgICB9CgogICAgICAgIGNhbnZhcyB7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IGF1dG87CiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDQwMHB4OyAvKiBMw6VzIG1heC1ow7ZqZCBmw7ZyIGRpYWdyYW1tZXQgKi8KICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7ICAvKiBGw7ZyIGF0dCBzw6RrZXJzdMOkbGxhIGF0dCBkZXQgaGFudGVyYXMgc29tIGV0dCBibG9ja2VsZW1lbnQgKi8KICAgICAgICB9CgogICAgICAgIC8qIFJlc3BvbnNpdiBkZXNpZ24gKi8KICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkgewogICAgICAgICAgICAuY2hhcnQtY29udGFpbmVyIHsKICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMTBweDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgY2FudmFzIHsKICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwMHB4OyAvKiBNaW5za2FyIG1heC1ow7ZqZGVuIHDDpSBtaW5kcmUgc2vDpHJtYXIgKi8KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICA8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoKPGRpdiBjbGFzcz0iY2hhcnQtY29udGFpbmVyIj4KICAgIDxjYW52YXMgaWQ9ImFydm9kZVBpZUNoYXJ0Ij48L2NhbnZhcz4KPC9kaXY+Cgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9jaGFydC5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQ+CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgZnVuY3Rpb24gKCkgewogICAgICAgIGNvbnN0IGN0eCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhcnZvZGVQaWVDaGFydCcpLmdldENvbnRleHQoJzJkJyk7CgogICAgICAgIGNvbnN0IGRhdGEgPSB7CiAgICAgICAgICAgIGxhYmVsczogWydIw7ZqdCBhcnZvZGUnLCAnU8Okbmt0IGFydm9kZScsICdPZsO2csOkbmRyYXQgYXJ2b2RlJ10sCiAgICAgICAgICAgIGRhdGFzZXRzOiBbewogICAgICAgICAgICAgICAgZGF0YTogWzIxLjMxLCAxMC45NiwgNjcuMzNdLCAgLy8gUHJvY2VudGFuZGVsYXIKICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogWwogICAgICAgICAgICAgICAgICAgICdyZ2JhKDc1LCAxOTIsIDE5MiwgMC42KScsCiAgICAgICAgICAgICAgICAgICAgJ3JnYmEoMjU1LCAxNTksIDY0LCAwLjYpJywKICAgICAgICAgICAgICAgICAgICAncmdiYSgxNTMsIDEwMiwgMjU1LCAwLjYpJwogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yOiBbCiAgICAgICAgICAgICAgICAgICAgJ3JnYmEoNzUsIDE5MiwgMTkyLCAxKScsCiAgICAgICAgICAgICAgICAgICAgJ3JnYmEoMjU1LCAxNTksIDY0LCAxKScsCiAgICAgICAgICAgICAgICAgICAgJ3JnYmEoMTUzLCAxMDIsIDI1NSwgMSknCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgYm9yZGVyV2lkdGg6IDEKICAgICAgICAgICAgfV0KICAgICAgICB9OwoKICAgICAgICBjb25zdCBjb25maWcgPSB7CiAgICAgICAgICAgIHR5cGU6ICdwaWUnLAogICAgICAgICAgICBkYXRhOiBkYXRhLAogICAgICAgICAgICBvcHRpb25zOiB7CiAgICAgICAgICAgICAgICByZXNwb25zaXZlOiB0cnVlLAogICAgICAgICAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsCiAgICAgICAgICAgICAgICBwbHVnaW5zOiB7CiAgICAgICAgICAgICAgICAgICAgbGVnZW5kOiB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYm90dG9tJywKICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxzOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250OiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogMTIsICAvLyBNaW5kcmUgb2NoIHR1bm5hcmUgdGV4dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlaWdodDogJzMwMCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJyMwMDAnCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICBjb25zdCBhcnZvZGVQaWVDaGFydCA9IG5ldyBDaGFydChjdHgsIGNvbmZpZyk7CiAgICB9KTsKPC9zY3JpcHQ+Cgo8L2JvZHk+CjwvaHRtbD4KCjwvZGl2PgoKCgo8ZGl2IGNsYXNzPSJ3cC1ibG9jay1jb2x1bW4gaXMtbGF5b3V0LWZsb3cgd3AtYmxvY2stY29sdW1uLWlzLWxheW91dC1mbG93Ij4KPGRpdiBjbGFzcz0id3AtYmxvY2stY29sdW1ucyBpcy1sYXlvdXQtZmxleCB3cC1jb250YWluZXItY29yZS1jb2x1bW5zLWlzLWxheW91dC03IHdwLWJsb2NrLWNvbHVtbnMtaXMtbGF5b3V0LWZsZXgiPgo8ZGl2IGNsYXNzPSJ3cC1ibG9jay1jb2x1bW4gaXMtbGF5b3V0LWZsb3cgd3AtYmxvY2stY29sdW1uLWlzLWxheW91dC1mbG93Ij4KPHA+PGVtPkNpcmtlbGRpYWdyYW1tZXQgdmlzYXIgaHVyIHN0b3IgYW5kZWwgYXYgZsO2cmVuaW5nYXJuYSBzb20gaGFyIGjDtmp0LCBzw6Rua3QgZWxsZXIgbMOkbW5hdCBzaXR0IGFydm9kZSBvZsO2csOkbmRyYXQuIERpYWdyYW1tZXQgZ2VyIGVuIMO2dmVyYmxpY2sgw7Z2ZXIgZsO2csOkbmRyaW5nYXJuYSBpIGFydm9kZW5hIGTDpHIgbWFqb3JpdGV0ZW4gYXYgZsO2cmVuaW5nYXJuYSBoYXIgbMOkbW5hdCBhcnZvZGV0IG9mw7Zyw6RuZHJhdCwgbWVkYW4gZW4gbWluZHJlIGFuZGVsIGhhciB2YWx0IGF0dCBow7ZqYSBlbGxlciBzw6Rua2EgZGV0LjwvZW0+PC9wPgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KCgoKPGg0IGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPk9tIHVuZGVyc8O2a25pbmdlbjo8L3N0cm9uZz48L2g0PgoKCgo8cD5VbmRlcnPDtmtuaW5nZW4gYnlnZ2VyIHDDpSBkYXRhIGZyw6VuIDUwMiBzYW1mw6RsbGlnaGV0c2bDtnJlbmluZ2FyLCBzb20gdmFsZGVzIHV0IHNsdW1wbcOkc3NpZ3QgbWVuIG1lZCBrcml0ZXJpZXIgZ8OkbGxhbmRlIGFudGFsZXQgZGVsw6RnYXJlIGkgdmFyamUgZsO2cmVuaW5nLiBVbmRlcnPDtmtuaW5nZW4gZm9rdXNlcmFyIGVuYmFydCBww6UgZsO2cmVuaW5nYXJuYXMgc3R5cmVsc2VhcnZvZGVuIG9jaCBkZXJhcyB1dHZlY2tsaW5nIMO2dmVyIHRpZC4gVXBwZ2lmdGVybmEgc2FtbGFkZXMgaW4gdW5kZXIgYXVndXN0aSAyMDI0LCBvY2ggYWxsIGRhdGEgaMOkcnN0YW1tYXIgZnLDpW4gTGFudG3DpHRlcmlldCBvY2ggU2thdHRldmVya2V0LiBJbmZvcm1hdGlvbmVuIGhhciBhZ2dyZWdhdHMgZsO2ciBhdHQga3VubmEgcHJlc2VudGVyYXMgaSBkZW5uYSByYXBwb3J0LjwvcD4KCgoKPHA+RGV0IMOkciB2aWt0aWd0IGF0dCBub3RlcmEgYXR0IHVydmFsZXQga2Fuc2tlIGludGUgw6RyIGhlbHQgcmVwcmVzZW50YXRpdnQgZsO2ciBhbGxhIHNhbWbDpGxsaWdoZXRzZsO2cmVuaW5nYXIgaSBTdmVyaWdlLiBEZXQgYsO2ciBub3RlcmFzIGF0dCBmw7ZyZW5pbmdhciBtZWQgw7Z2ZXIgNDAwIGRlbMOkZ2FyZSDDpHIgdW5kZXJyZXByZXNlbnRlcmFkZSBpIGrDpG1mw7ZyZWxzZSBtZWQgZsO2cmVuaW5nYXIgaSBpbnRlcnZhbGxldCA1MC0yNTAgZGVsw6RnYXJlLCB2aWxrZXQga2FuIHDDpXZlcmthIGJhbGFuc2VuIGkgcmVzdWx0YXRlbi4gVmlkYXJlIGhhciB2aXNzYSBhdiBkZSBzdMO2cnJlIGbDtnJlbmluZ2FybmEgYW5zdMOkbGxkYSwgdmlsa2V0IHDDpXZlcmthciBkZXJhcyB1dGJldGFsYWRlIHN0eXJlbHNlYXJ2b2RlbiBvY2gga2FuIGxlZGEgdGlsbCBldHQgaMO2Z3JlIGdlbm9tc25pdHQgaW5vbSBkZSBzdMO2cnJlIG1lZGxlbXNrYXRlZ29yaWVybmEuPC9wPgoKCgo8cD48L3A+Cg==