[Kimchi-devel] [PATCH] Adding new-ui distributable prototypes and widgets

sguimaraes943 at gmail.com sguimaraes943 at gmail.com
Fri Aug 7 19:50:34 UTC 2015


From: samhenri <sguimaraes943 at gmail.com>

Added some of the new-ui widgets and login page mockup. These files were generated with gulp.js.
I will add the source files in the next patch.


Signed-off-by: samhenri <samuel.guimaraes at eldorado.org.br>
---
 ui/new-ui-samples/android-chrome-144x144.png       |   Bin 0 -> 9965 bytes
 ui/new-ui-samples/android-chrome-192x192.png       |   Bin 0 -> 15190 bytes
 ui/new-ui-samples/android-chrome-36x36.png         |   Bin 0 -> 1663 bytes
 ui/new-ui-samples/android-chrome-48x48.png         |   Bin 0 -> 2322 bytes
 ui/new-ui-samples/android-chrome-72x72.png         |   Bin 0 -> 3915 bytes
 ui/new-ui-samples/android-chrome-96x96.png         |   Bin 0 -> 5684 bytes
 ui/new-ui-samples/apple-touch-icon-114x114.png     |   Bin 0 -> 9159 bytes
 ui/new-ui-samples/apple-touch-icon-120x120.png     |   Bin 0 -> 9860 bytes
 ui/new-ui-samples/apple-touch-icon-144x144.png     |   Bin 0 -> 12771 bytes
 ui/new-ui-samples/apple-touch-icon-152x152.png     |   Bin 0 -> 13861 bytes
 ui/new-ui-samples/apple-touch-icon-180x180.png     |   Bin 0 -> 15806 bytes
 ui/new-ui-samples/apple-touch-icon-57x57.png       |   Bin 0 -> 3613 bytes
 ui/new-ui-samples/apple-touch-icon-60x60.png       |   Bin 0 -> 3839 bytes
 ui/new-ui-samples/apple-touch-icon-72x72.png       |   Bin 0 -> 4862 bytes
 ui/new-ui-samples/apple-touch-icon-76x76.png       |   Bin 0 -> 5193 bytes
 ui/new-ui-samples/apple-touch-icon-precomposed.png |   Bin 0 -> 16413 bytes
 ui/new-ui-samples/apple-touch-icon.png             |   Bin 0 -> 15806 bytes
 ui/new-ui-samples/browserconfig.xml                |    12 +
 ui/new-ui-samples/css/button-flat.css              |   271 +
 ui/new-ui-samples/css/checkbox-flat.css            |    50 +
 ui/new-ui-samples/css/fontello.css                 |  1137 ++
 ui/new-ui-samples/css/main.css                     |  9157 ++++++++++
 ui/new-ui-samples/css/menu-flat.css                |   179 +
 ui/new-ui-samples/css/radio-flat.css               |    60 +
 ui/new-ui-samples/css/selectmenu-flat.css          |   177 +
 ui/new-ui-samples/css/textbox-flat.css             |    44 +
 ui/new-ui-samples/css/vendor.css                   |  1801 ++
 ui/new-ui-samples/favicon-16x16.png                |   Bin 0 -> 1301 bytes
 ui/new-ui-samples/favicon-194x194.png              |   Bin 0 -> 21106 bytes
 ui/new-ui-samples/favicon-32x32.png                |   Bin 0 -> 2165 bytes
 ui/new-ui-samples/favicon-96x96.png                |   Bin 0 -> 8147 bytes
 ui/new-ui-samples/favicon.ico                      |   Bin 0 -> 15086 bytes
 ui/new-ui-samples/fonts/fontawesome-webfont.eot    |   Bin 0 -> 60767 bytes
 ui/new-ui-samples/fonts/fontawesome-webfont.svg    |   565 +
 ui/new-ui-samples/fonts/fontawesome-webfont.ttf    |   Bin 0 -> 122092 bytes
 ui/new-ui-samples/fonts/fontawesome-webfont.woff   |   Bin 0 -> 71508 bytes
 ui/new-ui-samples/fonts/fontawesome-webfont.woff2  |   Bin 0 -> 56780 bytes
 ui/new-ui-samples/fonts/fontello.eot               |   Bin 0 -> 42700 bytes
 ui/new-ui-samples/fonts/fontello.svg               |   220 +
 ui/new-ui-samples/fonts/fontello.ttf               |   Bin 0 -> 42532 bytes
 ui/new-ui-samples/fonts/fontello.woff              |   Bin 0 -> 24196 bytes
 .../fonts/glyphicons-halflings-regular.eot         |   Bin 0 -> 20127 bytes
 .../fonts/glyphicons-halflings-regular.svg         |   288 +
 .../fonts/glyphicons-halflings-regular.ttf         |   Bin 0 -> 45404 bytes
 .../fonts/glyphicons-halflings-regular.woff        |   Bin 0 -> 23424 bytes
 .../fonts/glyphicons-halflings-regular.woff2       |   Bin 0 -> 18028 bytes
 ui/new-ui-samples/images/high.png                  |   Bin 0 -> 812 bytes
 ui/new-ui-samples/images/icon-centos.png           |   Bin 0 -> 4734 bytes
 ui/new-ui-samples/images/icon-debian.png           |   Bin 0 -> 4239 bytes
 ui/new-ui-samples/images/icon-fedora.png           |   Bin 0 -> 4449 bytes
 ui/new-ui-samples/images/icon-gentoo.png           |   Bin 0 -> 15307 bytes
 ui/new-ui-samples/images/icon-opensuse.png         |   Bin 0 -> 3046 bytes
 ui/new-ui-samples/images/icon-ubuntu.png           |   Bin 0 -> 4818 bytes
 ui/new-ui-samples/images/icon-vm.png               |   Bin 0 -> 2976 bytes
 ui/new-ui-samples/images/logo-white.png            |   Bin 0 -> 7438 bytes
 ui/new-ui-samples/images/logo.ico                  |   Bin 0 -> 1214 bytes
 ui/new-ui-samples/images/logo.png                  |   Bin 0 -> 17195 bytes
 ui/new-ui-samples/images/logo.svg                  |    26 +
 ui/new-ui-samples/images/low.png                   |   Bin 0 -> 813 bytes
 ui/new-ui-samples/images/med.png                   |   Bin 0 -> 873 bytes
 ui/new-ui-samples/index.html                       |   134 +
 ui/new-ui-samples/js/button-flat.js                |   419 +
 ui/new-ui-samples/js/checkbox-flat.js              |    86 +
 ui/new-ui-samples/js/main.js                       |     1 +
 ui/new-ui-samples/js/menu-flat.js                  |    98 +
 ui/new-ui-samples/js/radio-flat.js                 |    86 +
 ui/new-ui-samples/js/selectmenu-flat.js            |   130 +
 ui/new-ui-samples/js/textbox-flat.js               |    39 +
 ui/new-ui-samples/js/vendor.js                     |  5523 ++++++
 ui/new-ui-samples/js/vendor/bootstrap.js           |  2345 +++
 ui/new-ui-samples/js/vendor/jquery-ui.js           | 16617 +++++++++++++++++++
 ui/new-ui-samples/js/vendor/jquery.js              |  9210 ++++++++++
 ui/new-ui-samples/js/vendor/modernizr.js           |  1406 ++
 ui/new-ui-samples/manifest.json                    |    41 +
 ui/new-ui-samples/mstile-144x144.png               |   Bin 0 -> 4103 bytes
 ui/new-ui-samples/mstile-150x150.png               |   Bin 0 -> 3891 bytes
 ui/new-ui-samples/mstile-310x150.png               |   Bin 0 -> 4172 bytes
 ui/new-ui-samples/mstile-310x310.png               |   Bin 0 -> 5531 bytes
 ui/new-ui-samples/mstile-70x70.png                 |   Bin 0 -> 2602 bytes
 ui/new-ui-samples/robots.txt                       |     4 +
 ui/new-ui-samples/widgets/action_button.html       |   186 +
 ui/new-ui-samples/widgets/dialog.html              |    78 +
 ui/new-ui-samples/widgets/dialog_bootstrap.html    |   102 +
 ui/new-ui-samples/widgets/gauge-flat.html          |    53 +
 ui/new-ui-samples/widgets/grid.html                |    80 +
 ui/new-ui-samples/widgets/line.html                |   168 +
 ui/new-ui-samples/widgets/list.html                |    46 +
 .../menu-button-radio-checkbox-text-select.html    |   166 +
 ui/new-ui-samples/widgets/message.html             |    49 +
 ui/new-ui-samples/widgets/messagebar-flat.html     |    49 +
 ui/new-ui-samples/widgets/tabs.html                |    68 +
 91 files changed, 51171 insertions(+)
 create mode 100644 ui/new-ui-samples/android-chrome-144x144.png
 create mode 100644 ui/new-ui-samples/android-chrome-192x192.png
 create mode 100644 ui/new-ui-samples/android-chrome-36x36.png
 create mode 100644 ui/new-ui-samples/android-chrome-48x48.png
 create mode 100644 ui/new-ui-samples/android-chrome-72x72.png
 create mode 100644 ui/new-ui-samples/android-chrome-96x96.png
 create mode 100644 ui/new-ui-samples/apple-touch-icon-114x114.png
 create mode 100644 ui/new-ui-samples/apple-touch-icon-120x120.png
 create mode 100644 ui/new-ui-samples/apple-touch-icon-144x144.png
 create mode 100644 ui/new-ui-samples/apple-touch-icon-152x152.png
 create mode 100644 ui/new-ui-samples/apple-touch-icon-180x180.png
 create mode 100644 ui/new-ui-samples/apple-touch-icon-57x57.png
 create mode 100644 ui/new-ui-samples/apple-touch-icon-60x60.png
 create mode 100644 ui/new-ui-samples/apple-touch-icon-72x72.png
 create mode 100644 ui/new-ui-samples/apple-touch-icon-76x76.png
 create mode 100644 ui/new-ui-samples/apple-touch-icon-precomposed.png
 create mode 100644 ui/new-ui-samples/apple-touch-icon.png
 create mode 100644 ui/new-ui-samples/browserconfig.xml
 create mode 100755 ui/new-ui-samples/css/button-flat.css
 create mode 100644 ui/new-ui-samples/css/checkbox-flat.css
 create mode 100644 ui/new-ui-samples/css/fontello.css
 create mode 100755 ui/new-ui-samples/css/main.css
 create mode 100644 ui/new-ui-samples/css/menu-flat.css
 create mode 100644 ui/new-ui-samples/css/radio-flat.css
 create mode 100644 ui/new-ui-samples/css/selectmenu-flat.css
 create mode 100644 ui/new-ui-samples/css/textbox-flat.css
 create mode 100644 ui/new-ui-samples/css/vendor.css
 create mode 100644 ui/new-ui-samples/favicon-16x16.png
 create mode 100644 ui/new-ui-samples/favicon-194x194.png
 create mode 100644 ui/new-ui-samples/favicon-32x32.png
 create mode 100644 ui/new-ui-samples/favicon-96x96.png
 create mode 100644 ui/new-ui-samples/favicon.ico
 create mode 100644 ui/new-ui-samples/fonts/fontawesome-webfont.eot
 create mode 100644 ui/new-ui-samples/fonts/fontawesome-webfont.svg
 create mode 100644 ui/new-ui-samples/fonts/fontawesome-webfont.ttf
 create mode 100644 ui/new-ui-samples/fonts/fontawesome-webfont.woff
 create mode 100644 ui/new-ui-samples/fonts/fontawesome-webfont.woff2
 create mode 100644 ui/new-ui-samples/fonts/fontello.eot
 create mode 100644 ui/new-ui-samples/fonts/fontello.svg
 create mode 100644 ui/new-ui-samples/fonts/fontello.ttf
 create mode 100644 ui/new-ui-samples/fonts/fontello.woff
 create mode 100644 ui/new-ui-samples/fonts/glyphicons-halflings-regular.eot
 create mode 100644 ui/new-ui-samples/fonts/glyphicons-halflings-regular.svg
 create mode 100644 ui/new-ui-samples/fonts/glyphicons-halflings-regular.ttf
 create mode 100644 ui/new-ui-samples/fonts/glyphicons-halflings-regular.woff
 create mode 100644 ui/new-ui-samples/fonts/glyphicons-halflings-regular.woff2
 create mode 100644 ui/new-ui-samples/images/high.png
 create mode 100644 ui/new-ui-samples/images/icon-centos.png
 create mode 100644 ui/new-ui-samples/images/icon-debian.png
 create mode 100644 ui/new-ui-samples/images/icon-fedora.png
 create mode 100644 ui/new-ui-samples/images/icon-gentoo.png
 create mode 100644 ui/new-ui-samples/images/icon-opensuse.png
 create mode 100644 ui/new-ui-samples/images/icon-ubuntu.png
 create mode 100644 ui/new-ui-samples/images/icon-vm.png
 create mode 100644 ui/new-ui-samples/images/logo-white.png
 create mode 100644 ui/new-ui-samples/images/logo.ico
 create mode 100644 ui/new-ui-samples/images/logo.png
 create mode 100644 ui/new-ui-samples/images/logo.svg
 create mode 100644 ui/new-ui-samples/images/low.png
 create mode 100644 ui/new-ui-samples/images/med.png
 create mode 100755 ui/new-ui-samples/index.html
 create mode 100755 ui/new-ui-samples/js/button-flat.js
 create mode 100644 ui/new-ui-samples/js/checkbox-flat.js
 create mode 100755 ui/new-ui-samples/js/main.js
 create mode 100644 ui/new-ui-samples/js/menu-flat.js
 create mode 100644 ui/new-ui-samples/js/radio-flat.js
 create mode 100644 ui/new-ui-samples/js/selectmenu-flat.js
 create mode 100644 ui/new-ui-samples/js/textbox-flat.js
 create mode 100644 ui/new-ui-samples/js/vendor.js
 create mode 100644 ui/new-ui-samples/js/vendor/bootstrap.js
 create mode 100644 ui/new-ui-samples/js/vendor/jquery-ui.js
 create mode 100644 ui/new-ui-samples/js/vendor/jquery.js
 create mode 100644 ui/new-ui-samples/js/vendor/modernizr.js
 create mode 100644 ui/new-ui-samples/manifest.json
 create mode 100644 ui/new-ui-samples/mstile-144x144.png
 create mode 100644 ui/new-ui-samples/mstile-150x150.png
 create mode 100644 ui/new-ui-samples/mstile-310x150.png
 create mode 100644 ui/new-ui-samples/mstile-310x310.png
 create mode 100644 ui/new-ui-samples/mstile-70x70.png
 create mode 100755 ui/new-ui-samples/robots.txt
 create mode 100644 ui/new-ui-samples/widgets/action_button.html
 create mode 100644 ui/new-ui-samples/widgets/dialog.html
 create mode 100644 ui/new-ui-samples/widgets/dialog_bootstrap.html
 create mode 100644 ui/new-ui-samples/widgets/gauge-flat.html
 create mode 100644 ui/new-ui-samples/widgets/grid.html
 create mode 100644 ui/new-ui-samples/widgets/line.html
 create mode 100644 ui/new-ui-samples/widgets/list.html
 create mode 100644 ui/new-ui-samples/widgets/menu-button-radio-checkbox-text-select.html
 create mode 100644 ui/new-ui-samples/widgets/message.html
 create mode 100644 ui/new-ui-samples/widgets/messagebar-flat.html
 create mode 100644 ui/new-ui-samples/widgets/tabs.html

diff --git a/ui/new-ui-samples/android-chrome-144x144.png b/ui/new-ui-samples/android-chrome-144x144.png
new file mode 100644
index 0000000000000000000000000000000000000000..f6e28d098a966800c1d07015467b517d825a5fdf
GIT binary patch
literal 9965
zcma)iRZtvE)a5{M=ff=ox53>KoZuSVWpD`$ZUKhi5FiXXxChq^9yGW^a0%`{IGcap
z_F=cS`gWh{bL({7m#)55eWEqh6>+gBu>b%7uF^+2?SJ^~e<lX<ztx`6>+Bz(*h#BN
z0|0f2*iV+I|Mu^!KWeK10RGGXz!wMr at bHiNvJU`w at c;ma765=)IsicCp53Y?@h^d9
zrJ^VYc>SM|*HN1Ck3k13smY_Sqhk^A3hk7%0097|3ne*eUEigXAj34%L9aE$NrmU>
zEdL~~0O$(<L-`$Bbb-w<GZSAuxyrnS(rt2arQBz<J at jq5#Nbiodc8|f4eJOrvhSko
zm$pDGpS)H!dNcs at TOW=9rR;={#HWD0&FtmXZ_yO1 at uZJ`P08YS`^!C#!~@Dq1I`LE
zEOCFJ*G~)Aem&}?wEThN1gYYyBy1k8RrtgH|0Xu{AJDk)`E}mms}V82GdTz_@>@xO
zIEaH-vQG4mHZ{?81a$DEnw9)Q-0GVS{fXM+qyM at zby(53(88SF^UnD-N3+qPe9`(;
zz?b)5O3==d>=C;UzVc$#^;k8ID^(B9ri|0+g=aji+MyB&lu at ZqlwiO<%2B$C$XfAh
z at m?>LKkeE+x-v)549Ayc878C2-5)wS=8|iHu11*-$$IJE(8#3#z!(1H(E+0rb5YVP
z*st}K(}(HQPQ=c at FcAnQ@^}r84Y^l%+=y#P=17x9!uS?ZNB=Gl6E+p?xd`@r2w+J`
z@>oX~=7-BCR8x#rrWpQ+_x=ieCuj3Zb(4AqrTF{Ke;iD{=+)^Yrj|X8G<Lzh4?VfG
zhtv)t`rgI5`w<DmGE!lTp4>@j7^Au{$gzp_L)}dA>hlgwknsEVj3%*p`=vX1nl_6R
ze(%r2%pm9H1n;kTq{u)c`j0xgBjm>^xU%(@usFQ7_}<D-8O$RR)*MRdUf|n{hP^H@
ztN0XHX|XLPC7FkgW;1;Tl^3flPgD^=pcCCQ85~sNXHn4Dly>@%izxFCmPt%J7>WFw
z#d2~j+Qt*1j-J8CJ}M=Hg3J^L$VXPmP9 at SCF<CfkPIwUaxo<mlHx{ZlGHg~d=Iv2+
zInD4Sds*1 at l~75^ysP&tPnqQ<6iNO9K*qw<eg`5*CM=<x>z{OP#2ed}%{c0Kt3q0s
zL%y(w_cbKY%v>@i+5ybR3W1P`Y3yxKXMaJ~hV0rGVZ==)7?rxt+_*nE`@Vcy<k?<-
zPT217d6Zl>G{a-D at 5gZJ5R<&vVb~l~&%74PjZuLy5_3oRV$z{FKz5KQ{u9vdmn-m;
z4nNDb?}NKnLCO#Bm4c2%pLbJkFR3b9sBvUsq)>>Z?8EN$5z+tZ<y9o&Rb)`L7trbb
zBS-$K6u3FJ{fuCwZC`g;0~juCObru2VJ at mKb5pk*H+>83H6m=$zG5t3M$8_RcX2$j
z<A&-KavPAG>!KM at EzoQvYTo|96aA*9Gm!=VXStaC<(VrqQHDGp1(p5Vldz~I9(b1;
z#?QTrlE6GV^l92cXcc2U#3(V5i8kQ(dPkZo=0X&QRJu^ltg!m%^M3YBvc|9(J3XfD
znmw;McQ0uNSZj7h^X?m3*iXkly{a0y*ygW<FK39=10~-4kuJg5*qsG*DH$Zv-i$CA
z{$ymasBjTa<h>2gx<brPqoV?7LC-dO+?}E8&$zGEZP0`Ul6RFC!+oQO at jU5^@{jb_
zjFt*{1SS0vb&sw*{0;WJjyR-+nGZ2(9Bnrh7w2`yiCvECe!~;qzrTB6Uj0Uw*H0L;
zKzl<%98QTFg=VK2PMJ!8Yy~C=C8Hx&U?Cp3(t(BCB~?<ni#I<d6Ob}5&8)xApmAf=
z9$7T{M(_r}-yNsG3fzmq3fGFSptN!xoJ=q at rkJk!bO3+SkD|=^F!@s0RnKDPfiy6i
z=lIUzUOW~FDU`D8i#6f`fXj-Ke*9kPK7N-&j*b|NjD$<vz!=Xm4$^36WjHeAtO at QJ
zJ>)jEm+%bDu-=NOK4-JP-zFjD(ATu$(TV?E9+qkANH?I4G4 at SxD)Q1aNV{WH`J<pj
zNZ#}MtH667DP*ad5`c~6e5eGMV)yrVx*qt0c>?Gn-l*fFWmr1tGED at 1$iy)+AGx`V
zFdh!IBm>q?R_ck5j%=BLCiY{`_No)8d&4psSik83f at daR&KQyuV%!Y6GFz>NvJ6LY
zh~A|4#9Gqui&vU4BqCf<EaYzC;aEEQojuPx1$&b|(pC-ZkL2a_%mRueVnqBp`IMu1
zQ?oiGT7;fAKR<f)MsJf&W%$C<r&9j9E;HX5yA458Yj-(x#`a3f%}ivl_L?ktZCNWZ
zFa)JYq?5{RwT!jIwZtn<OnRnWnnD#@O0z25M8CbI#WsJ4dEVap4++D<QLN^3l9L2@
zkluokm06iER)(cSxfn|~UzsK9D><R0uH{>7WT-~bHWEetyI3J!YhI5}M5KH5aF+2!
z8*nmKM>olU)tU(K$sSZfI?FewUh6%n7gtqQMZV12xbgr#7xuYb=?Z<}l)%d>w+nd;
z3OM##&<bym32`W*n8j)yB^9NC`>+%6@`{CLRzyu_mubxv6bhHUW1p4P;#oE2+C60-
zyL=~@$qD%~U6rWDO>23=&`_0TN8bKX`J#y9?KnN78z}ErW4d`0!M_(l+>yTz6jw!%
zrL`O!)Oy<BgZHxQsvm%TWJ~vTFn6Iwl8awWhS-rOLf*cyjFbe_7#M?n<e(5P1=-pd
zB?iOc1?+O=>V2xI<0M1_r^9OzVYMp}`7)`~tIX!eKr&0v7#a8B{X12N`Ub%8P8o!T
zY7rC0iP8XcWEt=#&7>2Oajvi_hDjcUIIT|(o}P!horE9M%`EB%|DM at v-SlZPDfcsK
zvf6<()nDJ#8iCkQqY0`O8#BZ}RP)Y*aA*WTr%;$bKchT7lWoi}%?X3<-(4nFr{nc;
zNi88Ixt<%=Ca>LL0Ji;ce0C<~#G<)!S6B$6n2q}_k6l5EE6rI3(pn~jbtj}+i<$iB
zbb8(>Z1X>*Ng6g at Z*CHUok<YpJZ50igny}>J+SC<ruw`rJe=b~O#=-z!@E{$iqpp0
zhBSdedMu at 0$AJ>(Ac;WLL|8K%nu(!1O7XqKD&`5MOdexV8j42ZB|y(I>d1t14V+r?
z%fL9I&N`xYnWUEIy70pGQ5%~DmVLF)Fk&%6XS!l=a9I9E#d(igJlvT-oD({Nsh4oR
zM0Ii|Q9U!GFsRJFEDV1{u$;k1R-00K!;h;>ZG{<8V43kOgY~6m!<~o}-}5LT{`?p$
z3QU&WS&4ip^{h<!zR`Arx8-5w@{5h?&8`sR<h(5p0+1uj+A9mI$j--(@3rt8TWw5c
z)_c-BPAwI<x;k^^MCEiwt0cToG^jE(HIf=1HkWlmE3x?g39aAetofRu3o7vxyx1h~
z at 3cVq?Z#{#fA~TAHDUE2{LJO~rp4&>JY0mA11ykKCKDlFun|YeiH2>Z9^=lVN(4Py
zVk_)bX&i!6LmU{KXmje&Q0iG92L0 at MfeI%mE)kX0O at 9!-OY+w{3mZ$#l^60q)e9#G
z2A^AdRR&)s9g at A@L7ds%qrn8A+Fc=TURP*1`14&)Et@^x3)4(^71*-Lu{F`XNKs5L
z_+o=!Pp at SW+*;{xM&t}QzBah*YEdWuj)<*Y;r`bdH4!yHaV=KQPAQ&dt8MNcI%~be
zszL(Uv%CIW^-s)qp0l+$^p34J<J{_Zony|3JhFsT5%J4#>xOpId*-O-S<y2~<>N$h
zbUl7<aXOk-+pQ-MTAeCSccb4Mw-h!j1!X>x(KW-(zIOezJ5O0I_FjEFy_ogg%Sfxp
z^>5r;4^~Heben^XOiG=^=B9eR at eH}Yalec57DJ|^79i$Q^jWoCyO$Jy2!6dP#$W9s
zKHBjEqFY*uHMEBMeO0Jq(H2=DovSBbE?eB#^TrE&Quu>xVW`*oYMQF?{J?3$5qXW!
z3)!<Cdg-V-d;a;neRVNw2y=Ni!gIz3RdKZmI#^iKf84HNc|=&T3HR3G_(g;CLad&)
zLf(hPf|HXYAm!zB6(B9~Lovx*a?{r{#GRLL*+bQ0J;)gC0m=nirmS+`0!w)FwFe8t
z#XEK2kvq-VEZlCNwk3=EjC89Ny)os7_NyGTBDYb!LUx9E<VJLte=Y5_p`(3hd;YqJ
z+^w9ET3mnCPcY|Ef0kf##uc#tJb!9{0obShk-9Uq`@2r!h-WuHUWTG)){4+4krPkl
zl|`tu%|Go#e4Q9lsR!j(J0u%4|H_+=MU>>4M;u|79`Ogu`4g?d`c){daB{_Mb6+x%
zf_6m?6CHI13*#@{PvTm}u6>9g-&iVtanR5 at IaIc1#e%)#y~ZvlBaW6}8TQ;`<PSu(
z at qv<ongL!<(Zt9X?qSNy9kK!=ciH03$mXAGJLBGFa|Wb6!{do1*Q|jF5=$ILYvP)4
zC;MVMi&RTPj33NHYwQ*KXkq|<Hl>MYs^laR&lWv4Xm3?1&!X05o^0<WHE$vOm$o0G
zo0Egoh?yMNBcL&G#C|V<9g at K=ljiUNxM-$!`mv#o6sR%XIGwNt4w$%%3)Y!b-5WRX
z?Agk08kowd<-v6c3&m5_W|UM#Go-ZjBk!aQPVclk!1 at i1=J}BR at SJ)a0TsM- at xG$s
zcoCDm<N(B4J{6CTm`|58)RI=AqC8- at T@Mhe{+^u*V8#rLC{|-Vvv%QTe>7ZFGVi!I
zzU$90DREPWt}m~@tf>Yz6h?ha!qI2!c*Y)KYl=UBby+Vqj#E#?qJwwUMz}Qjr8WSO
z^oqQ at xAzjg(gIFUS9#m6PanDugG-LOjZ5y+xSfXGs_%T##98(llj at Yas@uaNN*AzV
zu3b_)t9Y6wYj3}+Q%9B3&Rl8GQH|)3sVTj=)Yd|hqr+XIa?Y;3Z4g3m9r-~d5qxmL
zWsDKUbX}93(9m6evYU9k_BxNp*adpc^lP4jq@^+{KMe^4SmNFb7C65}%|IvbM at +MU
z<7XO=VzFYBXm}(j at K)}Xq4EUD&AVrn_URWbaJdC)wk~S!_O>-oX&)X^)b3+()ATWa
za-rx9k0OwTscFE_rU9Eo6Sy5Gll(m}%X{8PvFbB5D;-V#imvwo?tg2TLd$U{2^1TU
zx&Hz<PAe$Y{Zp30d-*kT?O_=>H}k`zcbrJD>(kxSb!%H4kq5ga5#@-o@^S)Vat3={
z^f3C`1TVb(dkPSl?S8MSn}mt`Dr8LP?~l^V8fv$<?`fDpI0M at BS@ZA!?-HLgRyVV>
zpB%1q&@;+?KbyuEvcFXgI-r5&^*GbFKwS7q?$@(1yl0Ip at ghP223&#ZIAl8%)k_!#
zeS+ns6Q!N)^PnLmyiU3%oJUYRu;d=0VfwT=VK>M!=@8&Ze-7wy3;DYU4>Eo({V<8h
zf0k^zw1v?_P1YHfOLD}QBtG+wH$Hc}oGqFYf^EC*82}Br&-hMn(aRuFGI6@$zcBL&
zP?7csj)Wd%BZkgP)2q8e32WxQqBgOZ!Ctt{B`?PISSB=n$sB6l0!2#_qB8`RM7%qn
zr>8^(kKb~BnjZ1keN@)I at cbaIv&N^n<PodGqX*bpY at n$oo_M9sPuko4rgtr!Cq><_
zBVmfXCoO;Uy+3XT23~k>HzTriyq%Hdf4y-k%?T*1J|u!lsJyjJoTdAGUKBN%)KKNV
zuUh!sVjZe{$X$5)d)nU3p>d(+2eWKTumk)l&-Y+CbaECOy<5uilxsI0llAR&QMhkR
zxX8N#uVJ9A-}24FyM at L)aj~_BX~bZ#cl&tzyEb3ZP$IE>&vU%BDVF5X*%P;5zKfIv
z(9Pwdq_)z-T31!;qXM|+1d};vXpQ^lR3w2t5@{$#EZW%edq=Y(+%L%fNLfM`rddyH
z0&Ufy)#?VMCqE`kd at q|a%C-yqS$9Jb1u_Pgu8eqV{1jOj=6;S_efPJ at 8h`7<=CocD
zLI!hS7+(R{QgT|=hQ#c<bH!LlG=$vy at S3C9*jlGUlcc|g5LoA*m+ at GgD)l7$)v+c}
z%dJgk1X{$_J~hn&UXHWm<Acd;@mPM_>IT~Sfp;KUrJ<fXh=O2Lm+VhiGOFFYD9vD3
z{!QV+`@T8MfYUL!4q1b1#F31azE-vAZ@;%0`I^}x8XsnAOYz3kM$HBru0{Y#E4zxK
z?lq`JXh+?A1|U>BKeYg at CuFf{?97 at Y_?e;ImXYGmLl(Ro`*~wMfe(PmDl9Wr(Fi0*
zzfN4Gs6zf!;en-6uFj4|dO*3WcUCaXv=ar;;3CFRYfNAv`3s+$+YZWq&b#t3|4mAg
zzjK&vB4qU<>kj|z&tq`UGQX+qNn&CJg8w?}XqX<aFym^Z;cwZl1{f~eCP9(tO4T at 7
z1-ua-NCcvOX|<yt3O!dgjhoHv)I4CG#kix8%_S_;r~WDCJk!=c?!sCea(88Cc|1X#
zZ>|mb0F*v%ef#Shb_VHxXsixk2-!v0xDqS?m9*Ob;s=q?bnf at SmTT9|g)5g}F2bMm
zPi%~3U-dw4{4H+)`|Q&#=+(k$OtB!4o^I+62v}fDu0fa0uv|u4JKq1p?CB74LasE-
z)<!x)dQTZk@|WJIwSUCSfOBZMZb5=3z`Iu9d&?x7YWq@{)v%-jC5pR^S$;08ae(S)
zCMI0W(#N%0S4FqsG(9%U1pMd-43u!ILwcjkCXB~Cw9JQ|bpQy&9dNadZBLqOPfI_`
zFszgNuZPgy at Hwx4H?=0vtEah&+l^YaJCMbMOp-G#BqP&-ZS$e?#~J*|BMkHBofIU{
ziWGjsW06mVgvmpnEferGOx7u8DQSxc4U$~TFjXeuBKf(M;Ni9U+z}$q-bcL(HC!!;
zTQy(mS)%YWa-nlC;#D^~`jc7{;MJqejW{_x`Qg#Y0VVMeTBmaS)$Y}XOq{6WOVvs(
zDnqkmGu2)5129$0GU05q$w3<QVj+dTnBLFfa$=@)j-WAiLY$T%`MEXumX~=gJ9Bzm
zU3E2!3kf2GV!_)yb8zeV!`8rvZ(hq?i(5Q%TV^?EC=mYNB{l9RPV~-2AA&60%rzob
z%|airarfh{IQ9#K8N2;e660FLH&0k>NS#kn#Q0Z1acSi7@(ET8`q{Zk>^&%3D<suH
zYLL`+3Ezc{oT+*`%ASHdPalh;oS&iXJB<t`h4K0tbEQ=J<~T3Ozko(U)|6zZ2S{Kq
z2JqAm6}mRLL+Z-lh*)!{u)nAAbCC%A8{M*~2R&%za@;t{qs^{`#~t|bhX04?;x5{h
zApS;APo$qk{zwJ|_r=X#v@<~e^0+3oR{8L~$Hc?4u~QM3kaa)9cVQJ?I_fbZ%uSl7
zjOgP*bh}I!(*p_<Jp#OHlSV_+FQI<oOXjtf_xP*dQkyJc941d<+EHiJC--+j481{0
zjRlF0`W%jgRgqDCJ+XdukX_jU+73Rib6xA=J$FC4gq<7k&iyJ2Fj)`~p}X^o9W1N&
zTejDGM<I4W+JG%7afSaW-v^J`j7+f8v^@$<6+`37YK at NWxz4kyE5I?Z;>Ek(=6bpf
zyVwg9D~SjEJ+rmC=lZBtCc~hKT=RX;BS`7Ncp>$54qbRXL@^i0I&dlmOw1${$oK0Z
zQs1!t?$!l<5$87j9bCTB|09s>_S9;ftH<k89?7^@-3PZXnQXdh466A^lw$?(8+UzW
z{*Kd%n1B|<OJt(+T0=Q8kUfmv>=MJ!Rqbj&z0i+kNY1qD=`K1gVWRRHxX!2AGNIlw
z at n^>&<uc0n)$H!=kt2PqAD_CguigC{TEfD9do4~BxmqyGOuRn%L#yXe#7c8 at yXCu}
z9XacYw-J5?igf`-?QdA0p35|?CB$dQa~)P1s@%%<(l%8)_-}GM0$-dYhuk$<bKD#}
z`g--f9(WE*H)Fzm_gg7c{iwD2kvaK%L{xEyK!&drP{kUa>v&>Wk<Hu9%hvZk8#dMz
z)%VSKZ9(o=cmwzM<a*nj9QLKmhw<uxgS$DM!^5=LzA5L`f%cc^WXo;|x`^+q#)xyv
zC3I{tKLSfq`s at keH~A1!T|)(w2GybW6!+h8-n;Ku)l*fPeeQu#4fj5uZVbW8{kH>~
z+=5RvTHcT^dfi4aCYaj`Ew%bI&bPHX#=l_x$EFd<uV|O6YSP--zI;(7raxKNN<r!T
zpf&*d97f$X$SO}?7!k(#`%7HlbbKK3Df_1fVKdil8Xp(dM4UU}K`J6oOD(5!`mUIJ
z9VW2M8RO at 1)dZN6nsB|EZ1Jxgo14 at 2Z~sk+8HRwEbKU}74pf9XimianIYDDadr4!+
zg!`?Lep^<9d2H-$wli)cUlXUzJ2vOl<|6$DVGKKJN68oEw~OVfsoMJv!ny1lka1D&
z<S4|J+D>1@{K3$?#aQBXsq5Tn7Z`jh_xC_lQqAsYMv at 60XLU_-u->~S`O!ai#tWww
zC9|hW_Fla@<d4fs9Mu!a!;;|Gz1o@&Tax1GTk=ztm#4a+T<ZPNF)s{7&j>E!&*w7Q
zj2gW9%&<THyPBSXhu4FrRDt`jH(6*SDl;Me4x8!B at 8w6wzmlmpAx^w#L!A0CCJ{e3
z(QP(h^AffvDLDKf!el-Q83*i<to<Jg!R)^{YhR=Pw)xD at -!MN4O}up384V7|U?ji~
z8ry?=;jUf<+JK|<PQT`h!9-Z_=AUi1_JF$_myV-HZNpFO+N^7$bjYO|kt_;-1JIrl
zMnbYxA2P0g-TtD#)S-7PYa6U$%U}}KygK`1wA3Ja5v{f$Tj)}uK#3~D!FO at B3ys41
z)VJup7k|~jP2F}k0Eff%q8y`%-pDkTG50LPS851Z)CF?)-KSYF_>7^UUZ-4U#l`^a
z<b7!$>nc>&;z(0YxcQ>~avS`5@@4)*=ZfEb{P7m}cfl99lN&NWDL%O>HDg6~hCM8s
zJm9J6LQQtZ<%nHY(&4bqsR%LECR}v{4_dw~w~bMSY>}H at IR}C~pXP$QT*?PK`c>$W
zkNlq*5VNPtroo=TfQP1Wr@`L4BDHa&D9y2nPtkSz0zka+bPS#aj2c0Zx at jdoqO>>Y
zAYpTDc6}boX)r_HuazCuKtU}^YkqjO3^if_4p9m%d_$bvo~?b#aQ(_)*E4i=(E}C{
zrm@=vH}`v6 at DM7^^f{7T>)V!1+~|o;n=gq at H`tbGE3KX!OJy!Pi%?av`7sq1<_GEJ
zE*IcKZQYe3&6e`QG0>b|Iwk)F#?&FFi`OJ3X at Sw(KRzEjbhXRBuV{M*boKM}m5)b{
z9-6U!f2wS85Er1*sB-P$q8O^{+I^^TsQcVjSm?>W=pajM`9hyRPq{!gzbsy}>%T(m
z>LmVo*{a^tSuDHc9rr0|Oq8ZGR*gK^_2ogoo6>RtH$2CwLoac!Pf7hd4}P~2RZ7EW
zXC*~*hT~S=toU44NqkIE(<1O2kN+mKXLMA=9xB!k41(iY%rmeQO=MW;w;-#lm_~AK
z5!nB7|IUj9Ws5BN0+so1wz5S?ACmzNpjsT2tj~=Kf4sW$N|!V=271SP;U=wEK?d2Y
zE}1^N2CaEZ|Ae6j?pyX(=vttlEm)~1JvjNSfoe=OM(6muL52K|2N5X_XOk)}gh5Bz
z!BD1MIHcY~@klXqJ$JS at dD2fg_{DLm<YOz at gy8mn!TCE3mBrqTgn09RHx;s at 9DCN}
z6h`VBwwsyiiy51kV&%O?&8h}BAz9UXnq&Q%*mhzQ)NUV2rf<hZ758H1^w*~ASr=M9
zJ}{YzaF5(ub`R-2MS519ncC;tJ7wvj`w|Z7YI?7HZ$-?l^mYublIX+d8Y#}N;O9I1
zRTFN&RdP#^KUcs`)4;m$=QZ&Iqnd&v`_JlP_Gp<t21|{#Oe~{c((D>ONG#qR=*}Y-
zWmzdJ-Z&F-da&<r4&B{3-)&nw9Q*=5S8>D&ZQSTRrPS%kx?B(Z3Co$ldkH*!Rqb0a
zrQhlkjmguDBpyY0 at DUZ+R__`VAffN}gov;Cx(YQwl5-u-P~X>lWT&K`BA821c$~J`
z%U<ewt1P at 8(~$~YRJpmc+cV-8-0E61SPOiH*e;PDwY%582$S6io*iWSYJ3LDXkEcV
zW316PHOn_hsoeumft;3m;tySe#@s^4+WBO at J%nZ(80aE(PuUjylzo*n7xAFk^5fVy
zL-Sdz-|#@zzur3axv6`bxgDBzyoA0m!gog~1nixdb0nr7E~0M}kA!w5O=WV=f=O(K
zxW#xum=ztt*G7?WIv}0p)cH2}_6|(i&O_)+Ka_RllQE*>Wib2wKjs+kz7{bdNuu|L
zUI at nNz3SdDMcH0w;664 at P<>TRqZeA4-gfw#1Dc&5v1!uApZ&$eMTs=jA-!aOojm=O
zi~nA|^$Mornb?vzyqE2ZrM{t5)Zse0XH at z4$7YhHqye)DwOQhTN&jm<VTlaJE{C)I
zF0u55P7~41xfwTtWo6SAW|!FR)f0o{(r{ow^h+HjKyW79aWGVrr(_EyAOat8H$B(K
zVeeFV(_no=n>&H$Es|f2N!Hi<7#M`}`O4er{bG at Eyc-BDohrEv>WbRD4S~4~E at VkB
zj<Kahc!J3AS|(D)_g=AfTeTQ86vY>&N;8|I|7`w at -Y3$Fs+dH=YAg^en49BL5MP|C
zi;4|%;HD!{fyiXuq$EOZ7v{z_9s3VtXV!y*Zrd9CGv9l%WtVyqq;-)w?8{%C7KEfP
z9A_BnGR}+d`*7b>c$8ycf7Nk;{dV4b+^NvOWhAzE at oX^$o!arf(kSs4yvY&F9=qNF
zsfIC4Y0F{~q*I8+K#kC_EfnoBGq7mnF+%@CZs*?Ywe_*BX&__{et+XrqZY!^+o+PR
zliJlsK_mAONjipPXN4ymxd2paA4)luxJtrxfALL4K0Q;-Zazwn*ol}#>0SvFHRQ^r
zd^E17oysJ~FJZ;f8(D|EP>ISBVAT>pboqu{Q{pNC90q~z%~Du2%brKqQ+3jt(p1rA
zKHuhNxY=fV=Zwor^hp<elruhG&i?`~N0w^9KrOIGvG!wKOdC$7t!;v^PhB#4)J0_8
z+s8U4?S5Erfk>4RcccM at kLAUgd3k+}1XzJ?d`bM0>*PEv1^}cnphwhQ)%P={>TSo0
zh?KEXyoD}`mBxvt+{i0}1>4wFp(Kz30FK4#x=atulqX|At9AH&V(Qoo{l-HVAUV>v
zBB7CwvChN&@K~CSX`yMkHh?c`?k8HxN}cbml-dGBIoWL++excPe{YnGpH^LfQ`$SU
zK(+4bu~I4 at a!Efi!>K8c%=4zrSt*#dWD+C3<QKV0_yO#baC;1<XWwozj;NXazu&tr
zQJ;S;*SaQ2;(mLg7!Sf5A<Dp}7-o_ydi-!1Vvb_eMvR0eCksJUnSC)-dar*Yt6#)n
zaHacLt|YmwLu8r%20JY%STNf&72%ji at lkLxu0m4~n>2i$r<D#q=qWmFmKMW<T*%bY
z0CW>5z<ejK$n<8Hiid>R#f%9{wHw1rK(O9vj=B}p*Q%p5;$ooQks;r$`bni0zxc^&
z%;iG=V*c==2Yzhpg}av#@I};k-`h`ED#leSLVMI9Tq~6_|Cf~}WV&@4_N=d5X^sm)
zB3Hiq5q>bEv#2Ye>^g}-<oSi-a at KE0W_{zy^b&u3nVZXl!8YGe09!cEen*bqVDWrH
z<uZVz<&kn+#%15PcYxLOB6(}H`IJdIoQ+j}?`t(jp{OM<y~05E+e%usGh;L#>mf`P
z2tHo1hMHGrP`<UUfmuPh-!E3`(Mp3{!%k&>a%>eXUG#$e*ze-R&3WZq(gN{9<R>$j
zAIzbg3&b<^3G;<stgCyLQxD|?MKZPDVi#pvOa$X6^LW1*t(y3)e>|X3X+>{Vg&_Sg
z at Obr5@oIPB9<>2kj6*qM0`o`3Rb-3ZnaL_dTsprIMJSvMQ<KtwElSYH>d5ZM$^#iw
z^POU^sq&zu4|^l6GB11OJ%Kuo{70vG#H)E&wo&9F$KGx=625T9&N;<&0>mxz>u3Fw
z#Ds<1%;BY}eGC><4f*5Vjmo=>dwc^Ch*ds{aBe>rEgZd|S^8X)KKIAZAhT-8c9qEn
zxhpJ9&!f~DQUe^m^#Npg35J$#xF`7=E0AE^X;l!Iwd3z at bG;i&kH`4hYVK3%s-*dc
z<%iSz+i1PfFlh`8G5Y`Tq96=1X<fc-mRCZ~TH%&R3Mhz@%c+=vyyJ(OF3MWQXH0(q
z($e2jmVTDspSEHcUVAUs!i}!y&zIVM+-{ETJf?~H-eDU+Q>H^rKfOLKJK^J$e8||B
z;Lm{B_b;l-=3#B_ at zZ(qcqC(`+G7v4PZDBI$vP|h`Yd*IZLOJlAJwpAcaclFg1b*L
zM-vp}Fg9Wa3k`IEhhU5dZ(9`-%6OwC!vJ562}S7Gf<gMI%0huk0^EWn^P=0?+k#7c
zI_hu67)2(CMn;Lqh!Bq%RXv at +cCg+$*IkF+SfyS#HHc|3`*-)4i|UVv!gyNA56{IV
zrUZk5b0&8PJ~w*o!qiy(PHk_aMYDkOwU-IRW7UYLmnbx=mO5j}q_KfUayh};h306#
zKMz+PdmlgyjbM@<``qox__-G|l3LiG;=B^0W>wFWBHn$oKjTAC!-eTbg26DJ$a at Lg
zHo01YaKEF)Pmhx?ofFqADrV02Py>n{QU=N;N0)}?0&D0XLZt`tG5R|Y({`wR7aP{g
zt^PW+I3D{=N*@wbXOG`c%)8ssrnz}uJsf#<`0P8jzL8WYoS4euY->q6;f41${c*YO
z*wA)Flu(#fCOeI%VgJ!)5H_dbT=V3(h+DaV+qH`M#-eu7`FL#CM;-Jbr<Y9`Sf3Bz
zpZT3!O{KQh^5bdWy;Z~Yq3kNFkJ1t~teK at ZsR8z{9mCUT)@bgnOlhoXwES6b*Z5Su
zxeXhEi*+K;W3-`wmasfec*r;z7(dS`Pwz3o?>W}l|F=;}FBJa&;g<S8{8UdNL;<r^
zXBKSq|NLM~V0i<ujV0Jt%-X~D9{~7xcm+9mggJS6ba_R^1VqII1vq&4#CUkx)8U-|
ehrq?n#sTE_e;17PBPIP40F>m_<*H>Y!u}UL18Q;r

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/android-chrome-192x192.png b/ui/new-ui-samples/android-chrome-192x192.png
new file mode 100644
index 0000000000000000000000000000000000000000..040a33d566357cc4dea75cebc527968271516faa
GIT binary patch
literal 15190
zcmbt*RZt~O&?O)4ZiBnKySw|v-3E6C*NZ!YI}8pNcN=Vg!QFLm_lvXqu}}N3Pk(oG
zWpq|&W>-bkiO!7E(P}EPD2N1z5D*Y3@^VrdU-I|=T=0-z?Pl+*+LwT~5my$6fM`fW
zdNYIhx+k-c(@=(h at TGx(2o8sUc==KVA45QRvOz$cnnFMbWI{mTx#V`L3w?FKnk&jm
zL45wtS=dva`lW&MkXM$5+lE8LV&^$1Yh(H{(3h7I*ZQ$`(es>2bmT+xBy^RL<@p#Q
z;z9~7AG}Adf$6CUmTMGxT+1h({vmWXuB4=N-nScMY4LT?3hA%9uPm9VV}6&%rQQM~
z?8!hK%WQjE9fEsb2Q&1vgQ*%roC>ooh1G4j2o{Y at 03y#@aFfUuajw-#>ZGP|Xgq(Q
z2`miov25cU&6En+TY>B$e^zk+m&)QV*R-aGf<9hFn|`GS)4nwb9Fo%fQ2gf%Xev~)
z1R5AgB_hX>=x?SO%~j8n-LEhD;G>)mqeKunwGgtMdDH?!OqH~3>I+^O1DaAtWjIIK
ztjZpgB3W4L?PcY|qbi^g(ABD<E*pIe52;qdpvBBP&U{;;|ByU($or^sm1oJJvmqFP
zMinw);8of3d{;VEr}G9h^k-rza^EA8jzF+X&pEK`(6?4e#fp!1zN`y!TjDm4qn=gS
z3A2IvF6i9X+4wPtw3)Hgz%oVc0-+$186pl3lM{*iVb-iASXcApWVgjD(zU$!PyLgD
z6xP2G-f|S+OZa8>IC!_YyiDz`Zdd|O&ov-NDIcuk519nXjulEaX#k$YkxH`Ocp4%q
z5v&-WD1;>pEJXj5NFgJK+=Uxo`P at MtO=9+1BI&Dtd2d=h!DUXNB8SEf-kE`dh8YHu
znf at xt%>32^_Bnbuuoa00FEYr|I30zc=s9)BUe+!*>A+niwD=ucjk;TQSdsWxOAN86
z;<q5$YxA7t+Scoc at 8iq5I4xYgzV1LtkV$&A^t`;gGX{CnbgkghVA4`F$WdWO$YRV>
zh@*!{iZ`j#5kRLh^gQ}r0Me_$7hmD1S5FxC7X^&Y%32#iNU`m$cGWqZz2EI~R#uvI
z at bnT4i(nthw&0~g=^7Q{^wTs^rc}nxn<rGpKYZGp(;o<`(~QP{p}~eUmR_EsP1U_k
zW;qm5s_z*NH&7^zX2!vfNZi9|Q&YvkCUGTA9ivEOR>(PAKQB7H9+du}Jxqa$&lC97
zBG|gs7z=pMvAN$XHZq=LT&`~oF^*A6_WPmA?14))R5}42{LK^+t6``Jvn0D-FQbR^
za!17bM_<=bg<yLk779(*l+!B&I-SWyt!SX at gY(oO-aH+MAJ0;iDUO&jgc6$UZ=(1I
z1T3O$I01r~nYHmyPVD0Ay##I7jLPG3+jsZOZ~DXry0_DPyC(crHY}^d)t$X##;|n|
zbP}}avb5+S?Y*ts{{hL6*@|YBCIu=zeOntZS&bg*`o_n~1nZYK1NeM*q&#l<%4xlD
z;=Kez{2903hSSon at +Mg=T at CT@@XnLvs8T|n=&8}e&~z9$*g46eB_PTeifI@`mJe#Y
zy_!Cvzx`<g5!cMm&*MGdv7XM?omAd=Jrm4f|0)p+r(mLrhi-r(+!OdtMMuMiIdC0~
z0D*7DrrDIH+}F6PYBFl#GqUN<^>Hsb3k4pvbkCq`F;XTQZ at wG2J>51QRrUVYepxI<
zg^L#pPfbC5BA1-PwQGbnSMGAg{KJAGDo#ed2ykfmE62yH)S}}i{nAF!-9YzV)bCIJ
z57fH6{=F&)56C~_o%MW)KS_ZMNx#VvZeVa9dv#s$qF at N*cW~p_id}Yb)87_xgac+p
zT~yx=RJ;5V&SBM?{SYkeHocbspUcl%_JmW5xzz&lxkHvxuDgdc)O<$AqR8;cvmdnZ
z7)7S!9VuQ at 3--LcJtursm1}<^K3=TeKScj!@$R1z#Q)^$uJ}d<<VTxBL}Y^|K#Vcq
zOU0Mti^_!0{Vl(vhF(cCxGfu&RmlR{@AL0xVU;%d at VH-%{H0EMVYOBZ&9M(yvlr#t
z_O(;@$Ci$Ek4}wY!*xX`SI?e+Z>!S#KK{lN5-cGSLN<;+>nv)6baZO<v3d96{TUwQ
zuRq1CQ1%m^gRKO)^aX<qnjJ+=3?!;c27?GAD=-68OX3efS3%!Tnu+1d_(rDFAk?Ob
z*LdJ*-?CR1ppz|l2)6<0MIXYo9A6G{5^?>;3|+m-?iELmYE at zLq=5a&Bc_<@n at I%w
z+Z0i=A}bV at JnX+NZG4BOG|{`N&(FXKlkRgK4Ku3CKfLu%KFFAq{uZAV!I02D3qx?H
zOcc~0%&oKr=zx|fy*|)T6Iyw?EP+<SuOlW6DMKc{KU+>KKnozMBz<u0;v_BJEn}qx
z&?7V|?l*^v12D}3B2sUTH<;_kg_sY<Vz-a82;iZtgEtZ0iJ at qnAZ)_JhdJo2@~umB
zfU(@jE-ACr-)wuI0o5GF8!Bhg6nWMr8|R!J^}AZw@*Jz?3kQs(m>Rx31v-8uTUa=$
zvvp@<zVLJ0c}^^efcojAVEm>WSzngp$F1AZB93p2RB4aU8!Yflb7R$728v7#A6sJu
zX?Kkvrl!j7 at J=b9%m*ZrSe~*k7IuTX<;~sW%lzI|aPWB%$>*o%U;jg?h|7#G6xU3V
zFt^S*6~lU=2(K8Y)W7#lVkSg~WBR}5y&$9l4LOW~iUqmvhsen<v4F;MljH#RMsI5>
z{-jM=vZkpV#@cPB(`*6g8_HkE@;SZScI4{+!HCIy{^2V5hGHkf{ezQxyl1*cwdcyG
zAiI=fT`qz9cq>uN+SiKyeJgS9>H|F^JvZ6Kx{OT%#w!n+>C*}(M~?Dmuy~yQC<UAU
zw%9nX7ON-8f+-~Tif6At9t0%8aC8<wZRN7})N^bGzu=@TbizA`GRZ`d_w(7#*G_XG
zS_(Tdi4nzHp#Pf1pxx>}{O0aE_{?vM6?D*vyqYaalhsyR<)@lgezuLi<{TnV#w>AJ
z7}v4mtJ@;^?`@>!X3;WYHQfWHEz-!g3pPnOAd_t*BnJ*o&FnBN>|1ue6T4G<_)17x
zwvMUatYb0&nRq%08_d<)h+e<h1k%I&O2MEWFX9jZ=Nd0#Lm4E?Ar3DCL>tCTXzXrR
zNl^Si#CY%yN)aX<U|idMe!~9nE?>b|kYoO7KQ~8V>mL=BX8`ACWWmw49}&{>uc(Pk
z41Ii#s=;&mA@~SniaB^SEn5ZGUvtpbTyW~{5}cV~nwePwRs9GQa4jJx0mP|s5(KtX
z(nH at _2h*&YJ2UgU at AMtKF-F^Nm+I=Q%DdEPF_B8nlu40+ at O7UVFx9d+TN8|KElSLq
z<Jz1p6I|eI--61=J*bDV5!5A-)}x+rgWB~w(E$BEux5Ur0wt_OSyBj(W!rlFunM&J
zY8^Toyz<ab4{RLwG8tMfPWC8vIwl)631Z0V7aEL+pcC{3RG<nKJ*<JVUY9{kk6_HE
zbm65zbx#IhHi8Yab8Z at yh=ChVaReW~w?d4~+ilS>*-yErw5oD>f=g3ToAZh at D~5(d
zknd(iocGyyZ^W%Y^wsyHr(nh4=y+CCQg0kf!SCf#N4_vcnMuhmeVGp%34U@&$_$zO
zyDK&@s#48xSEvf;0#yuu4XhqHI}88ICuT}JHz8o8`H$Fp*b5_s=`Qameg2L(8!LKD
zZYNYyL&QSO8$YyT*wMK^@BxvuIjwEM{<OBd_lR3lS)21gI4g>_&*R6mcLHr>&Q$=u
zu>0&MnD%;LJ%x~5C#ns7gB{2K6|Yurv(p82+ at +13L<5v}P^n-eCo<#0;f_*6-Zdj%
z#u!q4;xEOc3B2~XX+lDf``t}3&K`5RZzNTCuTc$tiEs>#3YP?mNP6c3 at exsEA`C6$
z1SHHv7DVj(GxP1HU-Oq2>{Xe)Q)l-9sM8;-V{2nsU>)Pm-V at T#7U2hubz%MOK~&OM
zmtR$Y3f$$SkZGt)a<xzj7a8uT-=^Y5Srx&>(8`qw<}NZ#0~u0T7%X!Hi0bgWFblV}
zY-(nRbU+slMAkrFjEdJaJKr*9<I$*}=&uOWRqsbL16{C`%u)G!&d%4?S<8mp581xk
z<1I%4ssXB$1?P3D0T0I$q?-nxE3ev(RWC=z<3TT6AVVzX;=tiSts=xa3}%&y5Z7>D
zoHVJFOjpAQc5OfUE at 2PfW2<aGYZ4J&_~RiZvwF1<`(H^qR7|-R81sk>YDlMiKnATs
zL^MujXF|@qvcGiJwK0NqzrD~xno}RP98NS;qS!2jkyZz9-<gJj^(t9jRO)%}?6#Qh
z(tQeWLPs>*JCueWQt#$Xgn1rTlJ~ENUL*3~ONY;I%HIgfsm7ZpOtUKInlVdo$1RN>
zr%gYRX>)Sz{!aYlBCJ`~t%OGUbGxxdyuPxK=4qtYcA(wkGR$Jq6rX<e%bLLhwv?Zp
zGL1ru+(@n{8VDT;a|a8#FCBn5QK<DFycJn-l}{ygjSgE(dfTQ%;nr&Wy%thWV0f6M
z^tYno|D?b99<Q-;-oc`XWRUYdRAq6r$<^A$QGMr0=^|)>v!)SoFZ43ER;(5Jp8k1Q
zdd|ygZqZcFfgBYcFYtKj3MM)fj@(QR5NZZIPB*AqU{cCU+;HSEhH6)h_8jp0R+d(R
zoKJy_ANRnw2hEqi2EN~C^^GLpIioVg;<YeJ1;XbX>2&e=q+yZ!*YWspOKq&8bG0e5
z at +2&{PU^qj_uhfAYaygjP5}?Id?I(Crl3QOyQ&H>j?!Uwz2fd}Ok?C<m`~&+1y}9F
zlVDw)R)Tf&5s|ZEH#J_+v*Nc`dHzP-u%U#nUPgP6PkCGUT9R0h)P>4{O%K3)`#|T}
zO&WS%c8?79yK0;c7%=HM-1g^vJ#b$Y6+L1#w92<X9%Li0VEBcZfGhDcL<SMMWIV?^
zipug(@;zigOW5Xc9~74B5a^-#E&FiwIic2%;FbF(;PR)ygaWI+c8}dD^IbOVr(s#i
z+DO at 1L4KVuAMsW7xD=E2h%Wxv(%r?9;=GNCyov9m_ZqDEwA9<o*pq!hEJ=VE>czi&
zd6`RGRt+NdgyOLXL0__ueW=wEG|!Kb#5)@k at vdsCR-+f4<Ore~NCoIKS!EbwCNypm
zx at tkK=>5?^@AI9Cm~k(dkj7yZFOVbg8D4or9k_&kw*biMXw0ms-1FG|xG?v(CpC4O
zf9-9cci%;lV3ygt?-ePdOZ9`Hs~y75V=w=dG=TDX&1Q2`maoAAhF8g)WFzNo7qGt)
z^7#2G>L>b9>ewnd9DxHAO}OWx?-st(VjnL8RbWvl6$Z~L^_&;Pi at YWgZ3tF5H5!SN
z_05grcFOe^<H0qnaTqp^yig+>b8AkzDff8wSWb>SPQN{GK13dE47GNqF;6yTY{_l^
zkS$uQ3j{r91Q7&1Vq|5v6Q|RkEk0qPE!b;Qt_OX#m-!siW5b(qacHqVt3}elqLn_U
zh|vut4ufuis#J+0Lw`r at 47}k&mN+&?zxVs5Q{buD)&(}w|B{xh;n%+SUOXT4!{Kmy
z%b>@`O;P*X6+%zzT;MHWbzt$uyLag=@slR-SVSkq at nZrkvA_3v>GW1E3Yecl3yd+g
zwnn7Znqe)}c_MSMwW_S{m$=BCtulFay9oMholxGcM0)57OvLE*3eI{-Lw1x at --$az
zCj04X4gL5-`-)jIo- at eTf4YEFHKDi9=Hug9#P1~j?V+tYF`)Cg;FIDju1wo!UbLbA
zr!dy%NRW%W-`dxJjeBJ3q}1Ia2J~^~i%s!j#K<Vss+T^7EwDZhSc|(*<6Cij at 1f_M
zK;xCAR;$=A@}vY3vxyOIkrbR&S=2nwtY}xy%Ys8BV(tYd?dPcH_HVDEv83IU=Lk{7
zPeVqNpSM?giQCK1T_f{&CQU8r2l)iKbsWSR3ul<<S}DiJ{a^E<^P1}133W#q{cZ>*
zjC(xzPuF@)!&3Sb!>SBU8du${sAdEYI;Hz&W#hhpSUKSW*$*Nqj#LO^JAf<jp8SvZ
zqp<7Vp-uJni`(t>`)X_*IPk&Y at si&_f2qZDywUt60bQMHvh%z^l_aq6Bc62_Eq`Ci
zf;Y}=1qJ$cX({Q3X0uS?D`6-1Gfg+ZxEf<1Ey(=<$X3&qdBq4r;LDCtg2OCJIYQfl
zf9h)|5WBq|rc4KEWTd}$AUy+N`kEasc)De=$1LZG`LVaX69xU{%4jaR#)Cv<f>1S^
zw00$7OX#-fsuq#Tg;^Q0x#LlFXg;q^FLtvo3?`RDh|DYoufG}Ao<2^=fQb}+g%vq}
zI9pR;@K<W<RmWHT_yC*TLo*l{{BqEcF?p+iSxv39GS;ltzi{V_XFd0vob|Tcl1Zx3
z(Io~lb^FBSPf-oy?3Fvi>e1nIlXBo}m2b`M=l>bvMWu<fD-pTHhl<M=bCIHOk-kw>
zuR~y*E7fV%FinYPomeK>Xd+}9VSm9F4#7t{8<5kTs-esNp^Y>>uEDBzuoZoH1n#Ot
zYq@=aFu#XRiE-D&V3dAfgG*zzF01O$XPE~*XFZ>eVKmpq-E4jN$mGk4R`+~AHGw!#
zQgBYMwsrF;zNrkDTY;hZ#9y|!&j>G68qr|w0YmECuZx#n5+qIlu5w5o<VT)}@q3^l
zcgiSvv4F1AKr9`q9h_#{UL8Nv!=5geKlnIbKvcYH=g~f(pY=P5BE^=CrY0{Fw8<-Y
z%9(J})gTDZrRgclSOJdZHj|cF)J;2$uKe3@*lJ=Kw;npXE(Red6N!}-?a)G(&hWQj
zxOi3nV08a-=b2c{R`4}X_(n3z=e&4PyDL--Vy}x})`)Nw$f5yJWWS8h&OfJg*_n5@
zFN-=k2`=PkYVueW0MxX__;23g*1(O^!{V_kpmXogpieh67K||&K}#h;6CJcK8A%qt
zb9;NI2ycs%gwC)L5beFUfJp{!Ln020f*ycx_lX_{*fns!W=NP|G~`fkuq`a(@Oent
z6m}TmPNN8v4%LOn*1{Z!Y=jVW$SK>iyMSWY at +7vFsx9v_cD-~Il1xsj+9EZTnw)1$
z&#`^C8Tk>1hX&V<ws at m-e==Rfpy_rb6Je7|M)?FAoPZbQ%-PL9SgX()Zs-VU at s%a3
zyfykSa3TMz*x;S*@}?BrY-wfaRxiaE=3GR(NDxnH>3HfDO}u=;^#>T>c^)tu`Hb^S
z={nCgE8`O>|HsSq+Gz{m=Ace5vX^7k`$%{QbjqRCedjtwYx0e{L`}=Npn#O;OdtW>
z0J(GTtUJ_8qW}6$2fq}Csi&pN22%z{2aTeNL~K==_-vZI$1 at AtTp-POv0JIfk}sU+
zEcXLYEK_i6EqbIa>kN*ds|sZAQY%P`yDrj at x}wA&7|^)=z>AIJ%#%I+O$-{_Mzr0I
zWJYN%40i6heCLOvMdPf`Kw8h|Z}%*NHt47k$|gqzY0UQ!Ss}4<0A|6+%W+$wh-g{-
zX$hwil=?0fRW3lSf8(mpMRxwA5Qlq=Q3Lv3LMZ6(A;!|7)ypsAfZrxB4Nl#teeC#&
zB!?NX>~Rjr at 12;3?C2?ycr{INTRtADtNVDX?N^V{#hcP(0+m7>IHJqPEH$>gnmuXS
z(4?p{+WbDDi#|M8w|ISZieC`YFnT$3j3$YML_l5y9E3nw2a#1Clsg9C^u(qINYap6
z2>~xWj6X=u at k894zdIQ-BcEb%xG7O=)llPIR4<B(uKWIr=}mo60d$=td`^*)v1NJr
zky<#`)lEDDNxy?32d^jDmS~z|$oXo6byonE#o=LL&)gpQZT`x4+F36YjIUn)5i?#0
zmJupd%RG&DimSu+&!=To5~KPQck`E*?>AeO6?#~0R;n=xEwa|9iBrw2h8MLCmem*Q
zE=D41NxC#wBR4d~(Qg|;ZA;&Oq;nDs>T^-T(8*|~aRPxXw(YsA-wiJ9ddWGrO&_kO
z+-wb?Ppy0(?XCdMPQ5N=o at VlOwR&x|YzSC^WdwX&w6tj2y|-%b7Lir)r#d$E(wu3B
z8EB5(t{o3+2V09R$;hOeMr5U~;Ugb7=m+H=YXV1w=7<Qsu`%W~@|n*B7z6cM;zV at T
zg?%v(v<to*cf?Bx=VXx^Chv<Tn*(iGs|t*tvq+4eN2;K=!KUiEd__Fa>I+Sm at bZ~_
z+mXHz$YBLo`t}gJd8FF5CcG&~th%(Bo+&0Xk8 at E*SZ9<XBXlz=zWkK*2h$nSawF*v
zMsVQ4&(fUZwjd<AlAq)hxb}qdMSM|W11Z at gbK{4cG_T(-R at jORsAf7!?>~KRZ$ICM
z(g0JQJZoI>MCKz@<_$Wu#gtP0T!VYQk1xZId%j+#svM%<91r&6423jR>zq8cjH*cT
zK_uJmv~`P4FyEF}`J%eZm$$-8hp#d5-s)0RnI4<aQTOOj_vGMYOe40aHLcu&oox6#
z7 at -9MT3&<R?{Bw-T7LLY1CY)tEh1OQF@{1{$SDk0M7~8VdTI)`Ef_gkMINPeR6f0{
zs>o5Q9A@|C$!~IBZu6!vw!VtVC at +BxoV5X4<T2zi%hV?bat*<8E`=82l>fn`>vclJ
zW)Ycct at oOE&GXFc`MzwLuzb9`FQ at ak;Tk*=VIWY1AT1yeD%9f7k$8pavo6w_Z00(&
ze;OtxO!W0B6sN91`Js_)-+jEQiD(p#?r+Wtf3ERNpWQayOQ9msb8<)coDCy;5GrM&
z7+ef^RMl9Wsb<=nPXq8(o$mN}y&W43NrS#0yiS`K7>?T}yiXYOPq+UF-;{DmP{GGP
z3<s?@74$T}4C3hsR63owBuio807wbNmcyndMG5lWzz!s{hP6s9bA$daw=MWFn&;>U
zoMzY>hvrT8oo`qMK_qLNhk8y4V$Q4{A0Jr<O#naKM<3LOlt$YMI=HHI6M9}Fyhb~#
z`Fww?e;t~&iMIYO<zx+l_nzM8iS(WoS#WN;qw9WQs3^0ng=QXX2m&0T4^wA*iJtG=
zwym{c4)2xLkEt2U#zON`0YPJqLGrKHeAgP`=~$?xb>SyUK8Ffdm2Es3ytnEm;b=Vg
zs#3C_r4vE03j1tmcV<--Ns&HIl7jl*OEVeVY_OY_2z?(&TLNHPse#vmu2|5W?Hhg{
z_lNrHsXxt;MFahQ2lYSieZFWYgsad|fEEYGZPv?iTN#B$lE$zuuf5gyZ9B-XX(A8U
zNEM=LEF;p>8bidajzTk?x{G5~^__2)rt2TddjpHyUli*4s9LA<d#_LGrszNJJq?1a
zDD!?--VSIyo_45od7llDLO~o`e%$50|7tJ~5r9Jd)}5W+B at Fu~3D++$kBwrs>EX!p
z;rm at 1{!JeOWL|HIvEC${U{f8ym`BS}4K&5DY=cvBMpeU(KI&_*-MOH*wUYiw3>Cb9
z+8$tH{ZRNEDyGAApZ)9x2d(g~tuFz5AcvIQUv at b7w(fsa1}Kb#`kLEu!e`%gv{Y+b
z6wM&S_M)FER?k>+xU-0J>fw7hvG%KTE68giR4FHs{H_C;&`=dxW(T^z*~&K%AF)YG
zwGdUv>bGDF{QBn>4Se2fMZd}fXEQvqh5O14NKV)FZX-aw*)8DC2A)9;0?6CLm3g at V
zbDc+bo0XH)hAZCm<;QP4BE*v9B7Fu9=?<CB?jm3^l%`{!W32&(1h06Z0#o$A`uxU_
z8~1lm(+BKcim+9#FuqiH!+g_X`XT9}TLCe2Ntsfvm=&v%l9_ at gwCa}9ID4x8oWeMW
z9-Cc|*5j8+<0D~u?e=-~Hgw1%S4s35%J_O+*V_Th=m+FE2MNJP+vpX}k~c`sop?B*
z2aQ};kgg?6%y6Pvo3RJfi&1-kqptSquJ+<ZpQQ(mYnk4tLGDC=yvTE#N3r2`u|8H`
z6C3O at SCou?7Zr!@M`$yq;`;Mi$T9xMtX+W3!vu`i{dl$iaTI1{2 at F6CeZ~}U&hc_O
zO>+(v`yW7|U$z;mU)<Q<4;=JQ-(IR5=8V<{YI@=Y+$-ce!(}Sf^CVX2W4C6%^Z3OO
z6EYD94x~?|NRme<>0i}&vTQCWevRrfyY4b4A;{0M0Y&L#k5W+wWww0c7TBt3-gx<_
zB5Oh3%xMa_OqE)^3Wtv<W-wz1By?WhUU?4>g}5ID75l9@(Xa(zL1*Vgp`FW9L~<;f
zOA2<M`;I|(-Sk1+pIA_3YhQkkJD64pF*W2Gn~!KxSmv}|*;h-?8H8(*veoMi&S5Wg
zX2|-RNLo#r8~t~_BF)K6G=^{Jm&ib~q$Z=4w(ho^j3BRFU>te+^-CQxKIc%*ho(b)
zaK6mpxl#Srz>>+sVdG6Akv&nKD#W4$5a-k(N)oDUJ>I${4Y6*eP3X^5zv(L3A`G&d
zF`e}Xnrp>^6K47p_ at 5*Mb|B8`+>*)DA-so6nH#uQpZc3^LyEBP=5EA*M1UucC2dxJ
zcYK(bAlwD{HroYCDLlwN{E#f)+)6ZQpqUPn0X=`C#eep;w(QRrgtZI>+*qW_9;T?>
zlQyqB%vDV1lUH)?Xo-_^Hg~no-joFX6J<JPwm*ZsUGfY>s=FJA$x7w%C;(gZ{GOTI
zwg`k-UBfkbK7^;*4~xw4zN#Ju;TP$50tC*p)7VcN8!hORogu`uYg*q9(p(uVY)m()
z*ZC6PUJ$cF7>S~a2VwvGmOZmi+)Ft~XU^GP*;Cy1=(zbf*^i|yKP;#CC-#Qy7a{qv
zjGlwYum2<7PFH_=+VH}wi9O5<A{}JViFoH_WTl){+&!C3;(P5IA_akH6uG_e<%TQ7
zF8Xz%CzTd;!5og!&0Bv8W?5sixJK?AfQm4nV9qCD>QsBN-7}}>7|$rsiUg%JnAF`n
z#)chtSYJ;+AaTw)5dk at GwfU_@+1~MH(YbVY_p;}Kb*s(Bi39Sr(zu76OslHi4Mtb}
zyQ(`EE&7$KT at m=PbgN?f6HVwP$4Zg0gLH(s_GC9PfG`U2R4r|_K4<B_*6f*f97yGb
z;*rbsyPJ|pDs%cDFEL8vzKy-RlGv{iz+Ei9kgzde>3N4Y at AA5Zrf(NniFn4&m6DFz
z(<$<*FmE8c|2d>VPlI#A!Rda;9{_14e>?4elRKVt74W8HJkd#yrTi4d(#=sW;;4=u
zZ=B^k+npZnt6l7YaK!>fIF{R6L~nqid{A8?8*{0a9*bjG%5bq*kbS!}<RasxB6!k&
zci*Fl!K(z%T2fhFJT^KrDtZQif*tP(I+d5THR$7I&CcF1yPcUW>*pyE`nwKd*Y?Id
z8q9;0s;T@=606W#sK8J<oZluz2>b at O$?Fv59hlT9JTs{ut-~S=!XtSNN!anwRw6b^
zZbz<d>rvFt>iOB5_l>Wj9i^UQ<PV0_1DOsVd`H^U#MRegL)I*ignbah**LX5Ft{R6
zp?KbiKKZ=R^h=xsjH}Ivp%!_-OFUvjhf(5oYK^DsNNlyYKZB>4^9=~RpB<paNK}Yq
zIgA`KS+(Xpzg?V#xdv#fYm_tjac8>zwXB|JYF+da(Tn|f(!2|LIeA`103ebtlCujK
zvRTUL?x?NUpA6-){S^wj{kxZFtV_VyNLZNe+|U?`>HhLdX+v5{2X}HKDT$~tz9vcF
z6z*WoOtcluM!`S&;|dq8gBdb;g*WeQo%Qm)MAn9pT><sESAcMzt43+=ClP~%#1wmH
zYgQ0=887hR(JediUksGtMR!20-=Fn#39C6FmU%E`KBCceKWA$S32rVCHZ}J!izs&m
z at 0GITT|}g>ZrEaCgPUn=WcTp1SU^&4mGsDAHR0x4eC($AsRg at L$S-W+nqie6=|Sk$
zvxE!BC|<RTdTZxfJ$1d#RSf?aI3a!;jH`Bcz6}m7(x$%O1|qQ^GZd~I>NVp*F#mIs
zX2sD<f5SJ0ET!N5o<EFkhhjd~;MI5jOv7lfS=V9&`5zhoW>mtIHc#j3I+Brgx)8zw
zLXMgwHU{!kPrs75Zl6I;d;Odp_)YlrlymZHvadxJ*k-)}K`kpjHdSu*-==Q at 4(F1`
zpyzOmL>- at LV8UGK!vx#<W-{5bX at 7=Uqfqa?=e{Q>1-P9xm3sw?L4<G2$0bft+vmM)
zG72wpgb@(<C?Rs7WMfLUD6p5N|DuG?HE{AfXy{neq9kyyI4rAc-WJ;SC0P(&q}1je
z1Lwj?SCVBlPNg{J7abs@|J*BAl4Y2L+d}tYpBe0C&rV)-9@}U;W-t)lpF)QZhPR>p
zS8_L|FDUHZau&dE5 at N+ray&wYOeQHz9lPUkoKya7ipA5fgE+rdd9ft1orTg6u#DT~
z>};7)H9M5Q??SZ*{y?Si)6Em_w7XzzuA$ROb4wDBg7b-(K^t&ka8{#O9q+gr?G-f_
z^3;snV2At<-OY(ZM4-UI>ketz_d95~S(c0|QSN4XM%Tc at 28o^`c_x}Kx_fWW&AH^?
z5pBwe%)L5`A9bZ%-NTmt<dlyG&0bIHO$b=slFHssT at Ze<whi)Pz&{xco}YtSXy-eB
z5~EPO=h9{Jd(in|UytW}d14+Fx&rEEOIu2%k+J-`u=Ah5b-CG9<aGG+q9{HLS{6*#
zxZ4dD<1=QEO?>tQ&p(B?Sz=e4Yov>e<y$2BCCZ~R2HEP{K+MpA({3da8&6a=TiAM!
zKVr_n(FO)S;9s+>=i>EGT8>v~nl_Fxk0Ssv-)=zU>F3QE$9!Di^~9f!YM;y4M{Z|G
zy0QBHC>M^xl;C7?jzh!@>(zPZHXVc2w6uFgu<BJ_jA(Z8D0_5?6p^rC#(ajgpEs{1
zOF9?<OOq&PL at z5<813w3d`SejrT4;3#yW=$>VJZ;1Iyh}<$#MDGuk?n4qDIux(sxI
z0iU;u?yu!3K|ieT;@x`}rv_)#vLl`mrOP>~CXC34PsG^;fLQK6TYm5U-d1;~S*257
zDBF8wYEgv|uplR;K&6e5txE`CDecROzuL_4_gCB|P<1;c=SiS6Xm!ANrfG%?lb@)F
zutiJtk;3}v$h^>LG_Dga#FqMYWAjLqU;Xyfu~fIM#A-4gAQB}9f%(SuUnx8u at Z0->
zsZY+~>9mO=Am7B--t1p2SUKop=stPXt^{*TR;C<dj|wwHI(WbOW$NIqqw*LO<KURc
z1iXRXqq&efsVTvSQ);8^0(h;!cK(;9i#jnh0v>VKOkrHB^wbDT31~AW!*nP%m$Ok1
z)zPV-_h+2MU0QQC+2U(j(7&>T$W^0D-ngg9KqGQHWAQN2eJDTfb`Ks$4%A5C+SH*O
zhWM)<X14SLy3?)x9(AX+&QF1&<4DZvO6%?S?0tdBmB at pBpclDwOF$VavM0!reL+%v
zDC(tyGbTDrF`%`6&1l26??>SClmGjNBo-}Lb*raML_0B64)QsB at kb-(b_7tSBwPZg
zhs|h_U*ipS%5e6``k@!x5`Kw%In>J*n(7H2y*X`oe!2rc<ohrNyeJ1<x^113-9ZnF
z$!1D?|Mg9BvlQnagqW<2OUE)W?J})pD)vZ+=4{rGGrwlIC5A6D%<nYldZu6YD*N5#
z2F_ZfjYKW{@A1xT at 1cp&r0O&+TEdIR?>s|3+WiSBu1ybGRGr>Omygqq`&Hg1&5Y*7
zMHMt3R8pCByuqawlPgQII7r%=%)>?J=65?rBVF-Yik29AEz2t@$Ig8J(IGSl=Sm9F
z30Q2*)(}p>!?RwOiI?y5GV_j#GZVI3BZ>0DMnk|DfTXds<*hchhj;4adDy?CqzC&u
zNY5#&&G1B=JA_Y?g2jy`fkKhOJy{!*D7$jA%Xx1<B%0EFQTV~KGui+6DJ%hGxrDfy
zUoQoeXql?&X*pq4mWh-N_>EE9O{EvF7tb!Zn{bub_sG_`u_X9KvuJI%CS+beeo{GX
z5(3!nGexV_jaqJAe3x-g9ozU>O%+GXm|QKjC-RG&f^&TouQM>Mxv`R(iLO~&xMknu
z{TQ<X4Kq!bfgNH(slDW`0d3e-n%&}u20xZ4(+-&^g;TfqauYDYMBI={YP{iMqQ29*
z+)cUULfW-8(Wu!YBmCdBT|Qd5;i`b!nS*tPum+w4NF#d=A~^o-JX=(l5gh-RL>lk+
z92VVjZaB_L(46^b@>2&V5tr3r=e%ONJ%?%rpLa(A{LpevAqC|sB_(l*j!uy=nZR6i
zVjIxV0KHZ!*Wy_Vc2eb~D=fKwSyO=zNjG+SHP}vVr2OJQX6(6v57O?9V(<_cs+siR
zTiCJH1X>qb4rcS+YX-b1u~#LIN>TcLuSg9gQ)sXh;{5dN7Y3EBoKjV+hqH%xQR4bJ
zvy|55+*2giTPf2GG;*|4sae+|8{`eT<*?DrfWq4D&5yEL-iTsbHZhrw1I=h*^ANV!
z_M9fZtch{wms!fE{l3d4u$-T#_wE{cwBpCfKrJpf$m0IqruYNBW^{ad`h2N*_E8h7
zM3I~%X{9G1P5vwM0=ZP4KQz#CYGws#U0Q9N6>Qv|D|}W;34Ef at IH|82pqhZbVx_~s
z&`sT>3(;r-$>KAiGn83~E75G=tfIh7IE;*wqqJrh at UOp@EB8=g<S`DZHZcDTor`KM
z`Y+UK`f0R27T&VHwXJkQ#q+JpvG3>i<q3o{jHBvHwLR34Tu%o+9T`0ThX}<=YwJiX
zd9UWHhJST=XCLP5L1R?0xv5ES1mOjen%1*x22(p_WCV_8S5D+=RbHT at 0>jJq`IdWg
zRf7m at t^e})BC9MY_rkA1Rj&h<Z_!ofiKV_H-z|R+=YMW38qeRbKI(WSiB&ooD-?)i
zd}zja9{nwX*BB}&Jsx864H#eLNB*aLdG6;zDWggT#pCw=Z1=K^Cs^0!KQe)b8i{i@
zGn#J3&pWp@^^lRXI#%@>cCtS{X&Xf4-8gT<y-W*eDqsfp3L8XwB?xDE;m+A?JADpD
z^pUBL`b6{5KWpNP{Vv25si=itjN+Xg2^3^Ahy3QkJm1$b_kJm1L(Yv8jsZG&YTR?j
z!k44qwzQu1de6z|VpWp)bfWR8C)f;8kb+w3ez)X)J!9;tN=;N9UL>Yav(5v4;fVfc
z0Dq7Hg#aK9At?!j&ty(ud<2LikLAa)uzweBL!qRZQ7GH)ntQK9+N|y%x8Bvguf!^I
zRp9>_V##i?z|;NiGRXS<rNH{;L|>~XkLWg{I!mNCKLBh8RsaQY0DKBNp|q1=FJ4+=
zdrbNkpS#lDh@*EXFpADHL^*%4!7?>Uq>*FC0vtL+b8>+7|M00p1ng96eg*lpcn=f)
zb8|8$Q~Sh-fR60BJ5B_bRAlX~=9_ar{I;<J1rj>QL-8zbot`8vHx+=a0UUx`aU$F}
zSF6Tdz2fd?HC9K{4}pOo at LhTz6NZr#2J~ZivYL1pj#2s`q4f9zJ$F{6lTYTZ<G?8V
zuiplapJ500{$+9F{W++T|9B%sa0grDbQ|Cm<6$+slX5^u%!7D#PB9zw<5DO&RY)YN
z-tSn<pE|VL!HW!+{nqz#o5O9l3}uHsrNZmBuV0jhG{qBVom)+QeU>sl+>inaD}nHS
zwbHXdg56UN6IW7goYwsHy5+_UedD|t3=E7k4cUlQ&4eiO|2Ux|@F63As`+WxZay9@
zkSOlkGAZAtKg2=`w|KV1cJ!p2-evWqoi*x{$V(Bq-9C>!iMciHjc{Bz9Rhf6V+lWQ
zJ4L(7%6UD=+dSLZgao0H$u&-E0 at 40BYmPu<W>aT^T%EKs>Jn$s<xq~gK2|6FmE)6<
zWj+Nc5W~XRW^CV|txGW(Ip(aPE5h5FB0g8|>TDh>bxETRk}T#MWSpe6 at Mk#Be48gh
zhh8kpnjJm67olcQqeSG`b=p at Xpugo+Zko<n`mOm!`p4b=9pF8?52qMUR$_O0Y3hB2
zQimI_cdsipnw>wJFiXzs+?je%aM?m!DdW6xv*>i3g3Av!0>%g!$Wau9KV?*BL)Fd|
z=wOi_)RC1Ni)*zVwGVuTyNHEX7XJ-UVxY<9;w`~oe1ox0ftZ*e<Y?MRB3N1kS^HL&
z1A2@&3^^R&1rkIU8r7_6k|;5HH4;&!dC3FaE{rd`-R$mczP5?yIe{TVa$1CnI01bb
z6gC$_&<WwdIPgEMI9+W{3r$q+&HiM=UbDCeF=l5x- at wHT3*5g5Nx;nKJjIB?SNzNI
z5Y_?o1mJ)99c|Q2X&YPWj at cLgl_4t^A}#<u&7dL5B0$9lE&pmuR at e+Q4KzJ~dP72}
zgL87S at RHLX;e$sOBKpa-<tV;^cZO$`ygEVkKYI^WlSgCDeW6{4wGikxANnE0_I$@U
zo7>6af*!S`i#4%s%)H&_u3Jr^Y1vE%*VDAR>?CFCa4^g8S(Gcp2MpyHt(y=KRdI(k
z<Jju^?ieOwZ^Rf!tepUEsT)$0KCuu0rJwAa`w<%xg#MYYG+ea9QX9W>LQAZJDM?)3
zeD`SD9E!mncS>h?bv18^Y4==ItjPPtm^fzn>G1fWrA#SnmZKiuBAp7|Hu^Bb%fV$a
z0;o#ko8BL5?>sW%WRlbC`qq`CB!5EY05Irf=1twtFUe^77?|vgk^T5kEfwZW1w^np
zj62`bBkME6h<b|*!(|I+;vi!(p^AT#1T!5?>_Oa2N~t)ldQH{(HN0=w+ke{g3rd&w
zi{b&|v^ze`&J{JYalGYMWEl@=ezFy!mT{F<iKilXH(?n&;mKG_9U(G5?x(fo!eY#3
z?C6XZK_aVU&JH9k at 4csU2x&brmCiuK!{W(6qB3(0&M;yF643F-+%TZ at awCVrSC_G#
z-6#w^HW%MCu4>y1MD at p1<bPob)$GcW`@Qu3cKHD(rXH%sRB}<*at({4ooNGg=eI9a
zlq4HJOC%AM>0-TR6P*qv^}Xoi_ZP=9f=?<lttlBA5wXzDOj#%C^B|Mqze(src?1SA
zkb(C0v{Iv1{-6oDsf;AFKlvUhRipHQRXs|dOXuBC+P(Cj-eWpX-nDUZIs#+cA3bDd
zrHPevG*md8p-KqOrwFmxmov?RA}L7Vb^QNA<Q9m^DQPTa2QRlm1!PL(D%y*}`&r2E
zEyP at kkriep<gyWwnsTU-Y=H-aumgw__?P<wV6>pW-IgXcAL$297}sM_LHcPHH#&|5
zhJIh0!|?b+zx2#7^D|0ZXFP5GK&>5-H*;L)4f2mfY^0vN-ImsHcUA^LnN3P64sXB_
z>&Dd(9XzxWA4!E=-tmtx{O-_D)270o6n4nmNMZ1DWYK!{GI7C`_b{>@DXiE<KooAw
zL#;GGj1{%cEFov}L3>iDnQV0Qt_8+t_aO<$fqU0^rseIt^!|he&&W{VNF$}}elF7O
zv{a_W6oP!>9}4FRQe~yFw$gX;w;zB+)F~<2&C3}R{4~UBL6X{b;RMAjb!PmIYr4O~
zM)i@<1c%Bfu2I8|`r#O9bfHvB07+myeQt|OIe0A6H2PlzTVA^8_5{S&7wQup_p^jF
zgMmsz<-z!~p#29|9&C$tt}R_<;3gX55*oI3Km#xud2U`z^Gf-v^!=d4s%<|dL!0gN
zDF<4+8nT7QPL8y{+=>v~ydgNxH<z{Pu#yZ$-=XjQvqu1jQVKg4x{l+qY&!cyc7|^!
z0>|D_<l<F<#C+C-{0l}E4t+47;VrVtzjW`EH(9?a0aWwkEntX<^@QYu6^`x_7H?HL
zsK(|^CopTWQY&+3U3Gerb`9D^ofttoPdSMiE+rbPMs)qfP>>Z<U@!^Vr$L5wML>EG
zvoiyPN+xMoTdCx8HK0o))2Q?pQOvFt#FDPz>9RFkJrq7w8>+}K#_32!B+9;xBlcyt
z(|cn*2S9Obo}XeSfy0EE;AV=E*?!UhlGw#6ef2Oqk+t+rniW at SF5R_eb5%()V`N3O
z?C>cyOXKB41oMQt(%)^_AMEZ43~9v_V#8gSFhw;+^UV#^UGF05 at LxUv-;xQR2E^oR
z_C!cmgag>EV4bUU?jH5}O?37-qq&>|_0*ht4E at 474|eMtQBLN5 at 7<okVq=tt3W>4r
ztSk(6SK(cWD_W;u!BrPjbzfD53C1R4ME$<Wer*a^92fR86V~L6h-%UdcQIp&hH=3k
zT7+zq=w}>H47d{B7|>woqBz&BNr#M(!k*cdx3|0IDS0aU*C+qfpv%yvfo;CUAszV7
zc>Tk9J<&XU|0;IyBgXK)4F_&{6K>VwlzliLlA$0kCNcih_gy4zE;A8WkfpNZKE7bQ
zInh%Ye&JK}2B;aWw^JvL57cwHksm7}EAXHzKU8Rn7HC(4%F@`nfpxB^3Q&5IjeZkn
z@*{SVaW#UYaDXJ at 3%8agK1d?feLA)>-sEFj{wtX_p1PQGcums4jkZ7{toCj>u?Ana
zd^Hr+)8F}z_lP0-x+_Cqy4I>ziGO35a7b0n_+2%s|Fh9D<-SGtWFBQ0mfht5mK{%9
zs{UU>LHtv>Hdu{f(a}?v-CSFjeh!^nxSWlCQDZxoR79HIP2sG(&*huQIoqT-=~Z>$
z9%v0f;8Y#!az!OWs#3up7{Id%NWL;T`LLrFTpkn5!r^iY2*IAiEu~(djsN+RpuU`|
z7;acMOxG+Z(gVlq_t*$#VAr7tz;!;<(aRe>s#Ir}N@;-+GV<5`-0M(>N&qBOxqZE<
zUM%xpHMDVlylp at 4cS66tE^k?bgZMAn4g}ReqUum&^`)lf32VAv9q3ijsBf1U{AUM<
z^I{(*ye~HY5Kn$T#)S=MUOz~0jljP9gKTeXC;)UyQakEDbUKBt*+ik4dTDDpnQsE~
zf@*;w#FWBj4TZCm5v{)>tfNwaLUg-Twz2C+xV>TGv*J25uNy at AMd^XyGiOPzo75H&
z`PSE(+|!=kxA}M4^G(6YF>xVBfYEEQ<E(lDq-jiE8-hNC+UfzUKs-flN*FQU%4`3s
z_7^iWCA1LN4kqdqL|=XX`{C4EMaQ6|oBfC#uH%?a@~zo0{?hrUaEP#S+vnDwwuFUV
zwdBK!y6LOouXIIB`$xs;A?EXtrCa6Mw$p))z;g$P<yYrrZOL)w!-7A&cuv;b&`Sd@
zhPxD14SaPd1OG1H(GRv{sA!_-{rpTnithqcZACyyy7`-%=l%Z0a|ckKI2HL at DUb`%
z^{97Pvj&r^qCa#^BU6 at hEvWc8uZz&6u48pm=qA(4D8&~~9EG?gy=_>F75t`A7F)?;
z-I-#bILm2SkE}I-fMq5{6`Jib;Hpa1#159q^~!b6js3N&o3<{JFV5Vz5pXjc|LIE|
z&|t!c8-vy_?p88k2vNE~zrh0Z732R#+}ZYg;g|hcy!&{m@>T!aR4f$19$j#g1k at hX
zmM&>~Ec)6Bhrto4W9ft=sADXQcGe%_V_<yy&)e<Uy(*`CUA4FMnb-bVFWFq|M_(v1
z)1Dp-vH<q2I+`694zcL!+oMrD>#}#-Il>bJ`Z28S$&1~IHt_tF>_c$Rdvoo%Me}0h
zE7>yDWL1xw+pY%aFYWrk_YI0Y@>NfdfVbD59*fq>w}Uz^FMq=&igl5~+8- at Xd3~H{
z9g!|S)Uf}nryyj3qN}y8P-F`rd!FcNah}vsxf}@Iy&B9EYeV|V7%zMMt6m4CKQ*RM
zGvOc~2vuVWn>3mQ=tmNCdVQO34`jGliEf6{a|XVi$FTERXEiz%_Ga-jmz?%F^Z6A+
z#8!kQGsU1ibsj6?S#ukI@}xUt2__WgHB~BHN71~?@=EVI!s9VEa47g*s%Ynf$z4_j
zhst#&I`gJWnax~cKq?f6;4xwv<`ypkt1L{a6^Fp}r<IN5PVlRxnZaNGifiG3WC0o9
z!2Ex^{&&jjPbfJpy{YLPG1jjiPpLhmbv-Q2JgfvP+^oI?1P2>CH!~YAGdr6WJHG%I
uzW_HEBO8YR8(Vi~2lM}9;OK1m-P-5>Z!kIhU-Fj$guJwh6iC7}^#1 at g1+4J^

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/android-chrome-36x36.png b/ui/new-ui-samples/android-chrome-36x36.png
new file mode 100644
index 0000000000000000000000000000000000000000..c949db775e1c3019a74d4e9af6e3c675a2c7ef65
GIT binary patch
literal 1663
zcmV-_27vjAP)<h;3K|Lk000e1NJLTq001Na001Ni0ssI2ZekD500004XF*Lt006O%
z3;baP0000WV at Og>004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006
zVoOIv0RI600RN!9r;`8x00(qQO+^Ra2MQB0HGHq;mH+?+gGod|R7l6omtBZmR~5(C
zT6>?b`!V<4xidF2NewZHA=9LpBo<6;gOQ at 7rJ;d7h!hl5P)b1`eDFaq_~3&GzNp{_
zh*AV=3kpRVT3cf at 4JJi0^n=u9GLxh;)9LlzoBMIjJ!kK|mJd@*C%Kc%HMRJEIfuO$
z=eO5cd;j;|C?fD-i9R&aFt86Ie|_5sv()dO>bPaAcdFcdRSMPr3KpOLSK}vh>Ycm_
zz3%C at X~mUCw_MM*oAB&axw0hfo at j!}s@}etYGXh+G%UT;Y5ZUwull+YDNh4Ka;{x^
z$Wo-iI{wQ)<k!#fYqMY-L;(~-F6Xkl#?`0q)t@<tfj<OH3^$*ghl|QD6v&cGOlG<&
zN2m#`&3^d@`O(v=8G}+71Voxb1goW)**~6frJ_Exe+XE5p`HG<>rqiGn{J%gciqNh
z^5`^rWPg9s{_r;jEpLiIM70yY)%UVYWd;G23*7u792({~CVy{XTY-{(*3i>><lsc^
zKsDN4af{3S7hm?j_NaGYH;z|8gs&`_r%q(gozYp0oVrrZua<_WnK(8V6Jm0hgb(LO
zAK#|S!Acij>jaN~&fB@|di2)Kdf!y<V^1e1{szqc1AFy-dk20N2Reutu7B&T{-0Yg
zEtB7$)??xIK4w6Io2MHyH?N5?R2 at Zca1Mi8QKMH46K#t}Cs&aGfY$H<BC1y4mRh4`
zi2k0uI_Ky2kHdPz&Mm*f^|R=;X=DP6doXu5P;@I;KVue%d_n~O-n at Rrqr&Yi1^@tw
zN?XOW_{z_uKBLBJP&fpYFJf-zs;HHkiNFgpt>2!Eo$(*~gn#T{(NoxY`D(bW;??r&
z;sF4F^sbnhZxfwSqa)(&#qlRFKYb(Y)yuuF{P<F%Ud~}LKhpW$mr9 at 7T@=fJfNHp%
zfg7*d*Pqbk78N(L?7-SLFt_EsvaUQ{yPPaFtfx?G?5Fzl8!-T&reR3{K%={<`k-q&
zaR%Hx*PjJ8t6*a#?RnzB3OGVwxuY!wNA3}$#P(4O+BYP<yb8AKBhls>8O|8kiL;LH
zh~{Dd3t|8bKnMC4SHULA!Lb7spiG37gfp{dp_%^IEU^i&126~~NCK|D3I+g=-9P!+
zeR(6Pf?#ez|LUcs%<@o-)b)C%0RU9K2dE4tlPs1j1wFA6ppG9uzVa6NYX7#})kZS6
zh+3lAcYCPpj!mJj*E>ft?)|g#d^Oyvqm6)hNtQuIp!hJ2JqYB%&EDAT+GkEBFPz0z
z&lze?ZBLHuD}8)xWwIRI7G^j;+4}B|!jaAXVGtJ61aatB0pB}G+-MM$g8uT6;?V<c
zcF`_ht6E4(Ia+6O8ONzwUW8M3!Tp39{pt+?1KbD^HdNGxiUJ4#itDdgJ-cA2m8iG-
z(#T=$=72SaYz3AxZdm3)Yd`?(>h_GgbLNEh5dfVGp2>rKw&&#M3(1L|^&|B_L4Tp_
zmleLBG!t7Tusg5+LwY at Vs;STCy}aTap+5xd#a8x<j!laib9xS8K6XbnP6B{Ho#iac
zf{|~IXaGoE_hS6~f}HB=3x4P!VZ^lnhdCC!6}uEbAp!vV>LrBJv5Wdn1Y(3BP~RER
zHIG>A`OcGXrq2XL7ls}XWtl0%-CBo3z@{P<EvJ1%VzEwKK>d)KImL*hPQFTT*dqYA
z<}SYte+mk$lwx6Llb}DbA-5ma&|ui%QUB|G_q%$wkhv^S9FPuZ)T2G2dMu<*dbF}|
zM1+}zft^?*V8UI&v7+9z77W+AGO at s7>Mq1?!LkrmecIyFM}3OkceHkroooN}l6 at AG
z(Y7)be12!)5ry8+uyrcq-a>Y^Yu~B)yT<(~gj-!Z?i4nZ{y#5+AB6r5bSs{rV*%4Z
z0000bbVXQnWMOn=I%9HWVRU5xGB7bUEigANF)&myIXW~sIyEyZFfuwYFnK?RqW}N^
zC3HntbYx+4WjbwdWNBu305UK!H7zhVEio`uF*!OkIXX2nD=;!TFfa&WKOX=9002ov
JPDHLkV1kV~37!A|

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/android-chrome-48x48.png b/ui/new-ui-samples/android-chrome-48x48.png
new file mode 100644
index 0000000000000000000000000000000000000000..10727b708d4f42e506c5612a572c1a48d92f3220
GIT binary patch
literal 2322
zcmV+t3GMcYP)<h;3K|Lk000e1NJLTq001xm001xu0ssI2*kEqZ00004XF*Lt006O%
z3;baP0000WV at Og>004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006
zVoOIv0RI600RN!9r;`8x00(qQO+^Ra2MQB0HGHq;mH+?<7D+ at wR9M69nO%%kR~5(C
zT6>>!&$(Z7hdX=@9cBuJ21=noD~+wS5@>v~iZQ_#OnfkD(iof6M17$qYE6uZ_|n9O
z8jUg12jfTWm;H<oD73T{O3Reazzj1m!+hP3bI&<@@3nm3n_TA3Frdb`o^I}4d#~SK
zYp=ck=UfyK_-``$PXqiP=-&Y(F>}R<;adTuXXVWe8||A&_r_dx*vZ*#^TO4on+t?9
z?=m|UkN)bo*&AoPb_~e4nk&Z(zOyR0<60(3jf_sn=(tSP#5%}kXknQabznBUX&G`=
zGrIeD<JC$~Xs6I8rO;E2v!?owkt>0u-r%?1b1&?b-cwMI0a1L#p~s~hE$`G1Zt^y-
z!)!2TAd$)EPNuKMS$~02KCwb3B2Qt4Cme_XA^`A-0sh4vdiAi563_|)AHo2X1`Nb#
z?i=Hwzo&ht{T*MNCRH;6ihC=SKMwm+B2?&53_DJ(L`gE9?OAr7#vS`K`TlNt_k<!X
z2*3^vC`2SgQb1byfsmgb{K&0duJ2zrC!p#}XJLfUCt(rGY)vB_Z<vwn1Es=4ivU1I
zC+v@&mA5~PHLyyB0G;TV{4~(ksMKI;Km at U%h-GMWP9?MF;$(kCQ-A>Mk~EDupF)o<
zZCqOZ+A2LS0FdPO&%2|&v~{z;VFfN-h+)8$8h_kxUO!~}Mm&=!XF-7=J1uICdnoO%
zyCI_~6yelV)dtn^jTOPFHY#{X2mtoefn;bX`^zWw#x)pT5lqDGI9dJiGx2K&wT-~m
zxuR+9io)G at OcSnk+gJWPH2L&^!i;l?+T<<x!JXdX?3E7YlYaC(y{xn8aCc at j`omw-
zeTOA#s5@`Z at 7(U)wQ_Di&ka?7eumlFa<u5D>%z6|*Lqy+vg?`%*CR+$EacGlrw`Y<
zWU9?4?WK)sxTQT at Q);#-Y%v8Q<#UkFwTv|*Ag?Q+q9UJ)U+4sC6}w4#7&sL+0F2}V
zWdNtUKwAUpu29{f^;qC{7iLWZz*GIU|3#jB2fYbZEKso<+wQ~MXTa-d>aTX~+SO!L
z0GCpM9=SA0$7+Rbo#@S49iU&J(h3aAGWk!a?ngcb_5j2m0Ov4s8=z{Dq5hHh<- at fz
zW4L^Yw{1gqeo+HJ_`tmS;2Dk$g=&TzmyI-rWxaH(Dz7z1pLUZkXs-_RzMLBobCx=`
z16_42UDajB2BYu(=H$nHenv{9&FAjnU0+{NE@%LVPfqIgKo^7A@?4epXgGc6NrL at q
zevX3q0v(e3Ds?;xcsVbZOW;_ZeeLYw6R}3$C*Ox~?~(Lxho;W|8Z0Z#kp=)TyI9}(
zxVR39tT=}%k%>R?_`a(Wdg)V?@P`92ApwX069I{Lu(y%iRAs2j8?fy`S7k{Ih(U^E
z?0HEq-)@(IJdLHC5)cL!U;rUPW5L~ArAi*QZxo}%7~upx02q<ldrg1>kJk4Df`-8{
zI0k0ne2BiD{n<0Eq0R!Jhy^f!4z-2GQQ+iSAOQIM+ERN#tfT@?L`2|R#WvELEas(t
z8pHrFiUqKM4(t%PN)w>FyYk!Cw^>OU8~|zvJ~_=FoUGquAhy7a-~cRw0WrW8;6 at W5
zU(>g?E?u+CH*5qzOIWXEo_+1icrBeHgcD;qz7Vps8Zax&AWk?1+W_%_vQ2;hVCCZ6
z4|go>UgBb#I7T0GZy&SIymC59++2WSTRlGYhLr>WsN+7I_Yl_|M=94D90}we2CsbH
zv&q%bIWM!i%j+GE&W at 9YF!VEhXOr=$ar>f7A)MWF+$B?_KdSzP2uj{ER2gbt50Dei
zfL=)pcF_E-m(IrP>Y>3gv**pmo9|*RLR4u4V~ZEnx2`L$>n^TdQf$lmGp7Ln5q at jp
zCsvO?Sa{0E{Q0kdV?YIT)l}DA at zS#Q?ML-jK5LKm+fyUnc)iV`P7PNga|0Q2l3J`)
z)W>6dWU<-|0DuUp$-~feB~XOj3%%}z9sr0GU<Oj`dRDU|H9oC;J}2)lhRxG>&Qwky
z-Z%{a3?^?In)Fl<!SMO5JtrU|GGV#qTF7q!;AS2bJ9x^z;s;t|C?W#WHEipy>5c5K
zha1O?<O6kYPH!)HORgi+jz`Xj+?Bg(&V(yR8oz6JgL%I|ph*IRIY`)%l%F~k?Kgrs
z1wI{0`GZOGM9EvJNnNa<08Fv$kNNe<^s#d0(%9Hdj at jN5>GPv-Fq6?rDHP1YLWP-W
zBDMfJP%(#%=%NRqf()UicSODyxlL?)1hN7#%V{Ua6!t0HS at f1=F06jAe(3$`Z|nXE
z6~w;pD at 6bzj!Lu=0dE{=G-d0AoQPo{1QgadKzOp at Fm~vK5rmKlw|MlW>;-{)E<Jvr
zvO7`(L58$Xs94aZHV)H8?ZL|FBenoq9;mG0C~_nK0?cB3vKl2+5Go)P0yc7=<;O!+
zA_M>d=}TWq!@<B)N`n9}IAKW}+==URG=EM&_qKUoZuj?$C5d4Q2r^1C1RjZpqEHC)
z2#*jxme*Yu_Y{kXc!Wq0Q3TkDFc at R<rl+U41pwy+lvVgdckZs7esL^0-f&YX+nAJx
zp+_AatqIg4Ikh>X!YiUE^z+bV5(E)aAObdJ&&^+3*jdz_(8^}|jxlmFoVYVa>LMA!
zc^)m$Sk}~3PEMJDeN#Uh$0JHJJIuMBdvf2rEqgz<O3y5SW@|M&+ at HKLY5EI#Nq6vY
zo9>$7z*_}$-b4gvdE?w#pc}CNiN6+Zsr?Jg;t_WviH%PH001R)MObuXVRU6WV{&C-
zbY%cCFflbPFgGnRFjO%)Iy5;tH8U$PGCD9Yc|V7v0000bbVXQnWMOn=I&E)cX=Zr<
sGB7bUEigANF)&myIXW~sIyEyZFfuwYFbHBl9{>OV07*qoM6N<$f(_LxCjbBd

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/android-chrome-72x72.png b/ui/new-ui-samples/android-chrome-72x72.png
new file mode 100644
index 0000000000000000000000000000000000000000..881f75cc8454921d096e322b19fdadd11c67abdf
GIT binary patch
literal 3915
zcmV-R547-!P)<h;3K|Lk000e1NJLTq002k;002k`0ssI2+K(g<00004XF*Lt006O%
z3;baP0000WV at Og>004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006
zVoOIv0RI600RN!9r;`8x00(qQO+^Ra2MQB0HGHq;mH+?_Pf0{URA}Dqnrn<*)pf`J
zYwf+yIrla8jK?z`KkzHqU>h6iP)rgcUR8lM4-%>dq*hg1RjFFFQa+`sBJnBdr$~*`
zP(@XRP}?X0lv*XG354)4u6ZON at B<8fjvs?P<C(cL_uli^d#!%B#<7h(_8rgQ1hF)q
z=AL!V{++eX+H0-7NLBGs6u#06_!#VCu#drhJH^h_jilj=eW?r!617VsyC5N^-)=B1
zr1jcpW6PNASIQA=fo`9Cx~uE%0n-&-DKNUseJqUUBR|^L*fQ+$nk!exu~6YdvyjQk
z9rJqsbQPB_;oXIxX^y;r_X<$tP)f*I(DZG7Sr+qS`SI`VoOtrR$aQhe5g8^XLtvHE
zPdqbJTHjN<dBKI$b$n9ZJrs8D*F(p2cuX59d=OTx#MIZr%NN=;pRg;JQnfsdwN2k*
z(h4UYdb|GUP~<AMRIy27;)o&x1Lfe0MzcOrxvQuDtJmTKADfQW<>{Bh6I<o&gP3dr
zM9xv<G&1UpSQbm_7+qyvy)3$Ylij$M;?BH!x)xK6|737-^Ki+`v#!K!nG7kD5Eul@
z6dR7i$wGsk6-9!Cmv`v*H}m%0HZ8ym%di%(fK_sE5t0b8)5r*uygO7JenR#RM)%&?
zk?E!hmcBba`h$ZuOKehNvIHg}2s9`Fl^{MBUzl12=GRo37scaG$#)-hN9trOm;tCL
zM92$R$SQe70F*&aqX>}+8j9y%%WIYR^S8BCW(!Qcj6X3L28+ne0RT}5Gyo6{Ay6J9
z&5Ox`Crj&>o;H{IQ2by^{_RJ2JoW5I1%N^!MBb1FM*H0ei9!TH2mr;#StaXV-YK8D
zf%|%95iHv`*?4xuQbNRNf1;uYsv#8G%)>-p)C)h+b@$@RjeV!J!c*JBcYZ`;O<@$0
zDnwO4ATW!y;%xBj1N(p?P*K2#_RUEnCd2iXj*MYe!5S}~z<V$zA+&u-02L{MWLZ&9
z^OFTn)^1(U{}<~_)wNY*-(mkRkMi+xA$SsBHd-kmiBuKMj2oG>ngVBoHz6{GhmT1C
zW>}+4Ac3)v4&q$LV4<G3UK(SKm<$N2LDWmgeMrS+=+|UHt at oCd-M_!Wb|<HF3ZMSq
ziLm1>(?5 at HSQT$vUHZfl>h0!A8LCpBl%vP}D?7q-uY^M<Y~hVWtbs_#01OFvAkk{K
zn_HVjuzaxL52nnHKm at 1+FRjdvyERGAmsXUo?=d~GsW_Yw2=kqLn!nhZ+;@BQl|L}o
zuAoZkJomllR{z%C#&;fR{cM}@g^_}^AkDRCiDRJ<-MWGMFVzpH16B++F`-0EM5-#1
z7h$q=``o_2y*650{owWLL;BqI<o?f99{2*4k_+C~8oO>)^})ZZmt6Mb^V~{F9D>u7
z)fxBc8<H>G3ERPHJKms2A30Ee=$Pf0z at nk>&FC}bzOS!weWmkWuW6RQwllhZ%~Vup
zh>X|Mr?#fgYzzAjYo5`(xydb?%J<!42IhCP&Q8Jf<iGB3JUn99iTd0(cnK}|=7!{&
zIa4ZWr&*u2QW+i7Jf~{Kba%saTwZnRio}s+vH%Ck3QY8Van(hrfNA8iR7y-~L8n at 0
zO2==)^hRtgDZJ0@%D8stqRV;w>`BL9ZgIjD15)Ksy=5R8s9b4;^GnB3(Jd{R#Ww89
zOqZ?R*oT>}lC@}}n9yPZ(gX>a2yPD9IWT2V2WIFP%=ARj#&Y&n-SkJ%(rTyb7m<+r
zeg7MdZIy{VkP}=2R~?tCR34z}dg{8FN^4;+X`7x-J(j&WapE6$(Gm>&)9-N2%_Nwr
z`le=Ma&l)lv{}Yp;H1H2=8~l(Ml=ucM(X+^RX+*7NO^Waiz!fe6-8vgXIF~R>WbTx
zWJC3t?{N{4tB|X3b&(m^6bAn%9QeMpjuI0&Ass{ZoDRLE)jy>9_mP__5jj8Dk&*1_
zHzs!M_eH@==G)t^FRfpenD_B0;@amIH6K3iC-bN>qZT`p(RJD7_fu&>@#Z(f_#rTu
zl_DY@)rrmGN4fvcDDJ<Ix_R)y2haJ}FZWLT!+#!lZ0qEngYMu__xj%A`Ca4X1lKH1
zPMgloD~T^m$-4Qo85N1Rwj6GLIPx-SgPg*GY|Ji3IDvE+<!i{CzpOqN?9g!f_5V2V
z>N{D4YC_eBN|x+o7T!EGe)U4PtS>(GM5fY;9 at kT%&U1oJ;kdQ}5 at h%la>9<tMr0DQ
zk>*31Ho39}d>*ekcUe!odh)e>O~;nO1Oma3i8&gd<VRl|ooIz$KhQEcGs{%%H5$9}
zE8Me5TOz4yA<zH{WJJfF4e$N5UA<2QmV15WorVYz2<^HZ3cxT&CfYri?;FZK43ZBB
z#ogwrKhjXumS`3<c&G;pS+6I5CX;(E0;Z~Ip?IH4A*u=p1D3g!;mFD2ihu#&c^i?e
zlvE`XEec2u1agL`u47vv`BY%e(&AnRs6yL48ifD~0)d$L3U=cu>Y>^y^*|5}K{bE^
zj8bHfy`|~kRA5YW-Bl$vA_xL$yP`r>Ra7F2`EzFM5Tj#ZOKvU*Pz3_i69SRK5TUNk
zT~mPp*toLVH<yBXMNovc(F7tY0=bgMCmIkY2>>Y|KmY<LfCLnf?L|nZ0$aJDylGW6
zpb&UH<&6pjK+Q}JkK~uUkeTKx8ZvPJP(Yvp4bT7tLI4DQNJD)pu*C7bH_h*^!fT-j
zO6^!;SY4jm?Qc)!Ual0G7ENt`{v<^28?F5(b<*ZkU;u8uy8EshdW5{3@<wHKMiZ;a
zw%v_44m7R|7{?UNB?X|=c187ohZfKRnnTZe<L3b@$L6bdF4?fGR7kGc_C{ijERqvr
z`foo!GTQhsg1)HNGuBG3$~_xYjf$!$Q~-f^l>$CfRF%&vXU?Axty)<5#(hgyEaY4=
zQBhS at W{n(`pWQj}@4p!Q5FBzi-M_E?e~Qx&A~SFY;w74SEmXa#51M;TGs!)bZzMPG
zO!f05!EISQFJ8GIdi`L1WFi<ih9ejz0?F=U<K>vIT~x7V7Q>`MULSd^7WG!$sRICt
zd%>}eyg}Lok$PyVnpx`lEDt<zPBwf&FaTH0k5?~>-g&P%G%BRdu(fPT&N1xH!A7g_
zD;Ff?c(&3-%kiP+w&TT)#idUgiU5F!=d7aY)fxm!&@Q;u-1lX(=zenD=cr%2g5Eon
zKKxYunO{=cER~#1616V()XZsY-E#W!&Al5}%$ZYimvLNtL5saO^3MnJr#{v5wdL`h
zXZ;o$T8u&kwu@}nd3zz3)Ea1J^3q%BPqr7k_G_9Gu_|S$j!(*Hl%%T{CD&b5Ti#dx
zy>$zFDl;}FAR4xfe*1uISyH<3=JGcp>fl5Im)OiH$9&s{@}_HK-;m#RusC$w57+Hv
zRu<+`;^$N`zZxy;t(K#ibjzSwren_8akFPQ>|AI!%{*9JN-?ip8m(O#iE3UTh!VjX
za)xHy4*@j8$%$~(#uhd|uCET at cd3&e%XE at jCQ2e;##@SK%kgY?OGnDqT0?ceFOz!0
zb30h%tS)ZaQb_Ai>qWM~vNMQsjAuI9(H*W_88W3D%YHQ?Z$^o;><p}`dURI2Pitxb
z822*a)ft*=DCw~L^a?{$`EfH0?@2c!ZaG&r>=;J0<8^kdaI%oi$J1v<^AkWRGD}M4
zma4s@=6dWU;f;HJZY;lTZdAL#^@X-}Hy=BR9Z_VgWo8343}?_;1G6)*kwU(8ps{5v
zFDz4HV6dx@=T7D?w8Gcs$IIMBzSv=}4<AnxMfn1`SSy^|-F$psvBk!)&ag26L1DG(
zW at 8^~ivo|I$hJ)QP;n+<#0HLt$t#}qnvNHLRkQ0NPCgL(gJLA;uL}9^34bh?Z}lhV
zaCyx}^Zmnq_u=A&QQd80xX2n~n2124TBg2)=FS$_NFmRR7e&OTWDqkP!!axokpW&0
z`d~BM&<NKVT0kfh0cZvp_WG{Z-GqaVTZaB*UbH$nYagE|-g{&0hllg6As#bPh$3sP
zG3L}nk3v;wF0DG1F3twna4ticuq6Q0o-twt6AaXl8am<e(=<HY at GcW43PrA35P8Q`
zHXyp*(Y<AJrnwq^c>Bor2GbW^N#lrYM8+x^1*t+rL-2(y=FW at ObVSt|7y%@z9#kl(
zT_&+YR7ixq0U1JU3Z_;pr%FUVm6RxGK=jWeGjIl$sNdcA at zJm?D#Jy at 7Hrzvz9@ny
zf``w-09Mw_;#maii+G8p!!3acfFYH3lShSviYUPl45={yg9t=mKq0yG=JMAib5nd)
zbQ$vp2K}>9IT*`qK-}&;tEe)mi1=JIuP!LxWGS9Sux`iq^v16rXk;m%Kwv})VRef3
zq at s{of*~*y0Za-=(5nc4Uom&b=bm5G!(hRq)-fBxsX?FiT$lz?@tS2aKx_M>^_^06
z1_t1B{mGFu{MS%g_sS7dLGOnUQA;q4HW;DZMyddxvGkWQZ*b??#oLWo2!xb~Ku|i>
z3Q$3jN$eM1Gw0rzI}7yF0jn7Ln`M=CRr}+i^vy;X&Ec)UG8~;kVj`xPsmIW|nD4IG
z&n8^EKx$Go0~~6(ju=a9l)2q at h6MORjjyh){c&Hsb{bTe_Dt}E*FBT|jmctf8iu at 1
z0x(pv-0f&##4BR6I_6~&SEkIiyrwUWes^#7q;aR`O%XhbTx^)LzV^ViwJ&rU<u4cP
zv=pkTAQJ`Pm|{Z29ZW6M{gGG39~ufTk at ai{Kqyd=rRypWEHB?`X!_^CmkW0J(hMW}
z)1M#BUz+qMA};qw*R4qI>UJyW^6I at S57w4EG_%k!<Vv=SIvG^?O$VEC`3<e0KL-04
z>?0!|S+M^H>TX;BaNppy0000bbVXQnWMOn=I%9HWVRU5xGB7bUEigANF)&myIXW~s
zIyEyZFfuwYFnK?RqW}N^C3HntbYx+4WjbwdWNBu305UK!H7zhVEio`uF*!OkIXX2n
ZD=;!TFfa&WKOX=9002ovPDHLkV1ndqRn!0g

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/android-chrome-96x96.png b/ui/new-ui-samples/android-chrome-96x96.png
new file mode 100644
index 0000000000000000000000000000000000000000..97a151cedaf0e81f72938f640c5abfbe28ae06d0
GIT binary patch
literal 5684
zcmZ{IWl$6h)b%d8l&~PFbeAk8Eeq^YE-512EIf3tgoK2^(%m7_B}hnvq;#irw}Rvn
zpYP9a=6&bRy=U&ZbAI1BCqh$QiG+}j5C8y>s3^m<|DoCcGzjb8bi7 at 2{s%ZVa%yq_
zKus*sojLBmoyk&JTMYp4;Q#;vLjZu=e^lTe0N at D$01nIm0Le4}fZ8RiSxfrg0ng&K
z5)AP8Kb6;3ocNEy_fS!T<FDcqQV71>E^6ch04T*(U~)R|7mu^Nqn779S37pId;>Zf
zM_mTenI(+i5sS21nf3Y!j-|Eq0udCPic@%k<OL<z*RfcRkIGupxCV8PIB+6nI2Nbq
z8lU1Ow8qYx06c|$uAfkvOwRp+{K_+>-y3s^I+eKJYy-2~i72>*JvUgRCOwU9{B_lm
zi#n0H%5gu59VUKv at vu?Y9>{C_4meU!9=J2{7J9zNljrS0IWFByXv@$v^oJFhLdyb$
z%Cpr?x3vR|EuhGoKkB<TitXi=qD;}PF;h$Bp_yey&3um|AK|G^?DWOo`eHR28)uGa
zggJYPo_ at AA7$!u$#g}b-LCeeUd6oJ^^Q!W;$MpD6TKKqPgUDJ%IxR|}jxWRuRQV$t
zo7J?rE7s&Gt8j_ at hz>9g0)wVnZJCfuIk&y^KKqls{O*~G_I3g*IaV-;O at 4*VZa8x+
z8beaJF5tj{@{eH|x<GWt<j(%#mJ+qDmy}H3ZW7ew8$SawJX at b(t+fjoWdHrS%fJtM
zEM~{~cwK)o8m7TJnjAu|NJ>T#Q6tXs2EANyGrZpwTcy at F=q_r5Oq}}DyZomq+w}^V
zl?E+FmssH;Enfx+iGX>140MyD?SIW?-qAM>9B2)&T<^j0k{IoyW!pJhGbkswN2x>J
zaA=r8X^64HRpztcxuJ=bM=tJ9pt|LUm-K%k823l-ZR>Dwz-L&y1HNBrh(c!21o~{*
z4hz#OM;Bt<u{l?y%iE02nW>~Ea)EW}8h(}mS2xHEzVoV{jfl_)AO|Z~XCOEc;=P08
zE%owjVWOu*;H07BeWd?cq`g-c at tK(rBuS+=$&45 at k3LuK$<m8`nyB9JBT;s??Nh?)
zLx=-Si#9;*aSL{j;gseXO-`f0iU&sx0B{G$2m<B!6{nPOE`^A)y*M8)z3!(t?}7--
z@%IDzp2G03rj>(0ARk#EXg>Y at dz+kSZUa!u6OYH8(jTd>#<~?=lXA(fl*zaPJQGB$
zA;V at N40O18NQfv}(17a9Yp)KX>R<8xMYdu&=7RG_?qgfIXB0)K9Oa%Eo;6E>Eers}
zDWE;IW+Dq$?tz8VM(p^K?vAx4`5&17hL0+taRxLWfBreDFG>`O|7$AL83+RO(SeEe
z>-cOrLv&Nb at ER-BW?SvCYSmLdY(9p{-b+m{4U+Q#zz_fukA+Jx1TmlVHea=@NL35W
zY7s(59D)-QnnkxXdVjfQTvySY6nOUL__iT&+H=GA%^5MhXq>(XiFciPRVA4rbHiCh
z`ids)?KIwt_Dw9EZd7iJsc%BDRNqs6JXr9>qEKK|cz8j$<b<tYtzwTd^A9DQPbFX5
zt>e8}Kq?iYl`BRT&`N5K?v*NcI0vcbBhSb<BQvv|SZpQV^m%K}C&k(tk=sH;v>0E2
z4Xf*J`?Zb6z<XnrX^T2CvZr=!6F8lns#scXMd|~YiZSsDFr7&d07ix<9Nrm72d^g+
zXtqZKlv`>phH>iQS)Al7Si=aCNL#uB11d|Yp-laX{x62jmhWe%8+A??x}|j8b)As`
zH}tKpfWUOSiKX9U)g~{xgX=74snJDtQzTL{|MmB8PPp28=oF+;M;FEGEF}4OWI^Z6
zc#7zT1t}*BagrDvk=0^p&%sw52w~wN5<xqvdWwm{?W_u3DqYf~hANux&PQ!hQAajX
zl1u(PDL)tA`d#tww;68r+1p+~k_nU8*c|Xe%(AQ0r+?UE&KzZlWIr&^W?1C#e^qQy
z){Mg<9O0+1MpIe$dWvYahx_x><(;%Q=R83W1dXqPOZ7oD+1sAarh{Uu8Qy!S)z<J(
zDw+JwaSWU-GF<iH(aX6zsV>UJ*tm6z>b#n30Rv7;^w#p_P|IO|Ew8*D*Y|fe186T9
z!S5Rer~;u>WWqyP61v*uUw$r&bu`uw5e(GclN<)70a?g~i3R(da>Q)uqy2AEf<E<g
zB}-)NJ>2!)^^_h2+^Vi8GD?iCLucI9#TdG45B>&xkX}XU4Ma%DJEbs3T3c8hl>9Bv
z{mXcp9O~hmA6QquZl%}<Lofl5f(8uoN-uBY1AN`LbF_w=-0S$pP{);b<*VHOI}=1p
z at f4J=d<5P`Mpu6j_Pw;OYy=B&vDU)#<MSu0Wpy9!S3hf;a|89o4ETizf(WdN?7Ttr
ze2tW*?fxc`fKHv;Bg<N^ncg1Wv?*Vwt2yUEuhxvVufna~nwe^<tu0QL>+6_AsYcBV
zzOTVV(fFaIC;PIC^d<wa)~@L at vZWv?1=C;OH%MP5c0>uDlGV*9<^-n?va3=>78T=;
z$q{=^64|DOmMlv<Uson~ja9W&cmTxvv8kKrvc3fn-TAW^dBS2kk#q`TMGI at ibGN2p
zE(hM8E<vlsI#wdbO^{&4k%YtY8GKy<&kiazBD|h0v8P<PG<c%L|2RxCBiVV^XSOGa
zheIMgOxWqqRC!R at pLPxWxJ48kSVh2w<1Y}@h0Aa~m6i)Q$~YmmF>r4#HSr>OD4d<N
zKOjG`g+CYiioiY&M>TYkhf=WwqS$M%^$X at iYrDT8r+u;CHgnV)7M51U5ZBfFr+Swa
zoi3_jdmo<dtx&ugsOAbZV&e&X)4*2fflFCcGx$O020~elYx=vMU;R64Tlu11fIMo~
zN!&Qe=!bWt--79*M8I-!r6HQ4x+hrUU`vC4_U8a`RF=c at e8mgn*+pb;?Bp6}>DPyk
z75}+PZq7ZO!Y`jdtshTro$j236mNtZVwByk0xlaLe0fZ4==G>mE;iHipkAP<)#-vq
z<KhN|mfh6`zl(Cy>`h1Etp7q~`kPxwZIt>HsOpkxeVs3WiF{WVsWG1sGnl#YjqT$X
z%51nMUKDSu=N9G489#wRY)p9IAcA~k^m376XmrnRJ#UVEczyF9M$^g<m<3@>j9$xe
zsFiK!$^20OrYp#Bj(V&n$;#OJxA398tQ1*h`ZJ^P2bZ8Yt80eli`ZJ~$JZ4dAe#BK
zr=?&b>AWegozoFXnj7h+n|CXx_Ht9l*PN at em$Et14VbuwrO-5L`4q&=etq{b^@>9U
zt=BWfNt7T9o8`=r&N6B0eI&aHzLqO{@?1ZK08?fNc0>@+m5rb&DP%$>JdewX<B}Si
z3x>J9qzE_*-W+LQGg2+tDqZ6OQz0ddPfuhg=H1j>J$@Tkx_2cz(|HcP_MqL}zoJN;
zi>vNQ93%Jq8H7WIuO2R=f)!T(<cF%xqR3U2492&b at jw4frD6kmkVKfKY?C^ct4k>x
zCMLAwegW3vdtwoV&Pi;tuuRo})vmv(eVF6p95R<6Bc2_agoDBjd=3b*{i;%Rn<3C8
zRE~sDJQ2bAaYYsokA=f)E97nr)p+^*kWVyB0<3aSb-%0Asw-7ytcRqcEP}GZKwU)}
z5u6p?Yd-++`gf!rIuSn1I-PlK!%xj%Y&|i{Fk at 4hc>_Dpd3gEU*+Hz~?^)5qGV2M8
zK)4>;%d?oXZXcg#8<>ZwZvY_$&N<p|hwOkcjs$`}Sj>D9Y3}Hmi#6i~Q~U%zQ+G=G
z_E#f*nC%msxCB<!d4p;@`%_$iMc<%xOzBvWQhy%up1OonQ>yX3^*Io_O`@}63#1~}
z%AerF0$Y*AQG6~^I}Jqcl7#PtiH4e}g~?$&Zn at 3!WEq1%-Poh1w8CdbXV^MM*ks5-
zPP3YKZ{%=5a)BodhYYf&P=J%kyRsBz{zZMow&u=u?o#e}5>j#f&+zjbw6ZcG0E#y(
zE`(;nrKMrR$*#RTDsb?EibYY1#j at 8pC)J3lY*uiWX6!F1{2olv|2qHbFxp1d?e;%C
z?KtrEUaQ0*S0?><WLd!8j+`qUxbks4od<2g&|^{eXFm^3k<y$rXg4dZ3>in%YX>C3
znY26nRlqU&X|GJ7h`$3V`JSw=464#-ZLRR+t3MBk^K|%sH$Dw1#Dm20Nm(AdVvnll
z+Z;Cgc-j%tY&^BN_X7gIyH=ddI}X8D7%Uc1=4Kx)-wSqNlu=jlm)aC*spC->*nwc~
z3&Q7!p!opBkorJ<U4>I3u8X at HU)^PhF7YXZ1xoN^XF*#|$h9wLQE=vG^^y6G>hI+C
z%zbLlHb*Hi=<A9*US?sGZPkZGHG7_pt9a31_DHIg^--vcLxi5{&f|LF&tlX}N=BE_
z=O2U&->Fph)N)^L4k64Z_~hMt0AKR-Ka#lv$%|I6#|Hy$##K)@h*^b&Y2qcqP|6%d
z#{te#*R!R(7Go0xQ<a)h)N$p%_ddkc;=+$8y=e20U_q8Gs*j<=zkJSEsqsM2LMGFP
z>x at +&GteYSN@;ISuo(6*!DI+ppl#+Mch%SabB=lG+cAy%jV-amn^Jd^)Ctn5+9m$e
z<CkVl22}$ywYK_So#rfp at Lqjf*swVdF#<lNXmYglE=xX^oYZD#W)=_YOamblL&P-1
zTD*VN<{KbVgvhrFzwZu{7N1*|4>dxvNm3H3wVQu&c(G)%Fk8H|CbFU(e>+7U`%pwI
zi<e<-2$5w16zVjXys_K9$=R&r;|ya3fr)A;)U(9BFdB8m88 at EggxIf9WQc*e?msdY
zrvd^M&;A~++)$;?X?Z4k+7FCE-C^Id$Rd at iHfvVnlXJs{88}|8juMkz2b`zRl&7lQ
zU0m+;SbbU>&|`{;WWiD?sBdf=m(-WK6JTIy+RU)?Nq;Sc)Hxe!mcCIu{JHMot`auZ
zF2`4Jb>4}TITu=N0Y8glp{&{tS}OUD)Lq&SIQ at 7KT$}e;SAH|MWGHYPA6JOGOPG at -
zw)@dd>>JXs7$5&E){*x5+L3jxiZAsID*YQ2L-%;CQ7@~m-TdvgT8#RYFy at mF?|&9?
zX6+(3y-zi>%R(93f2~}i{T{Uj-PNB<2qwf8%+xEsF2*+K4)!~2K8UtV?y7C^9$7nn
zmU3<_S6}?6ZTIjIO|&q$_3niC;S&p~z}GHxx`1M8lYq32x0Su$cI8pwhnw~S^RoP7
zr!Qs at s?>x)kyZB!lT$0Ps?wEOB(3oag~2*?tX->&tK3Kd=QX7i02zRVj at BdA!IRXv
z#>cRj&UGW|rKDhNy#8x$lDEG!->R0DfBBKh%SO&$zKt)(!xDG&{lTwNhN~{mASl%5
zIj4wDe14>Zfu}dqaG|>Nn<3H~PB2xz&#$?0%ivm9X2%yFu<XI2E6awl{V<qbi1Fyu
zl#ff0qrVFPKJ=tMC*qeE%WzerW>y1s!`G4(eEe}(!xik|^A+Dl$n$RScl07wcMc;N
zv`Z4RBs*aJgL4B$6SGdcf^amie~)h94-eC=1DwO)CLtL2z0f;frIs;zlCkTgEK8)h
zn-v0YUY_3!48ZL^jK1rCv+(SA9;>X>f$w)pLQ5Ol&@$ZTTDZ%^Zi}((cEdX^htT=h
z?%pwOf0}b6Ei at u6%Dm6Tqh=-oja@={{Ft-nxA`7ptLYgP!cB)N5u$G>x at +N`#2-A7
zuPiONL={VM3b&y;$1v;rE`PWC9!nP(a+PDBT*c0iMN!bDp at dxtfVkaa8eR;tvrdrj
zTl2yRD_h}V>-%Q-eJ!Sf7^_~)dHVo`T!(1-2WOr~lzrrW)+IH+RCY)Ew;Qp|+uGOj
z67eS9Pez`9dimm<hMzg_-Lo6h?30($?u(fev^i_ at G{ofJ5+ at j(d*~)OBZXMp9mU+b
z_e-RN?wy3&=Ru4nJEtYX{*Du8KH?@s&e_BQ^kccl<KJH|_)?i8IW`(Kz7rB+w|X(t
z8<FLi&6^Cx!Z$xMQL^FmyWE>;ojN26XGUI9r at u-)ypM4 at YgOf9cf-N@Xn;(M^x~RY
z?lRHxMVEGo=(u*6Tws5T9#-@}h~7VCIC!-j|Hg&?QaLL;4ph at xE+SNxQd2feB=gku
zPvC(Zs!^T|LP3Kgnd!?C2xMVpvB|cTa{Ew7i+}FtU00ir2+XIi%=c2P?3-4Dqvd08
z-ivsmD3Ju?2y6UYsr&kZ<z4oXw&2$T66E+hCh5r2#t}q8AB}Bzm4>(3PeA==HDnv{
z;IKRF^Z_5h1PK#_vw%Rq1nWj(xcO{5R!UHv%fb>xArU{H8sg*%D6h-RPDO1>6}9`b
z`S!895JUunl%wXuqm at a%ghS**@RA|oSx)*)*|<PA829+tYkX|zEN{I9pePVZOQv at U
zYO!JM%<RosJ#L{RGXuoa_D#3zB}JbYNl%=~jGQtM$zH)Jls1^2Ot%!1cMT^c0fl?Q
zX%NB;g=*Nf|C|Ad_+s2|fdgPu5XJ}ud4r{Zi0*U<;{tSrbRzJA^G(|nWlBIrO;zES
z7&z+Dp+CTWy))mT<%_ZFa9i^(?En%_h=w*jz1LRo%^+{NDvI6jPjMGDP*ZEK-TDDT
zv5c&mZaG(eG!Y=?ib9a(-)qu#r;YoP?KyZeBGle0rMDZcjZrO(>>P0XIC+xo(ymmz
z+fRZcd|-}+7}4R!*=mYe%Siso5><^0#QMFy{j;AV at f2Z&$0`g{WOJW=t=SDuLiieu
z3#7oEqtCoZgKRTr9=>+Q79|WT_UA3 at 2}dIG7 at V<J^o`2^%se7`Iq5z5YRO8glr^S2
zP=%b1+M2A=dl#Xhk2S*YKOSz65Ldn1gIJ0S&-6e8`UK~heuwX_@(z+X#n1zR7KCU`
zp^Pr8`w2;fe@}26 at v@M#n*Y}~E)Oa~P-ocZyZ(`xC3TN>_u6x$l9a?6Xtbn}?m$L3
z=qJs+Z#7tA-mR#TJD}m{M59T1H!>Y+Z4!~DST`Sz({p(#Hf%;19S#<3eCu?mmOSQd
zQm6gc+oWbD^4#u|P4U^T-NK4`R=6!tLLrn1f#6e4Q<WcjUa4_Ct8>CPsD{fR-Z66I
zA$~jc^YJBvDJn*PJhynY-PjC994--dKXOHUzpm`IX)&QM0+pd12YIoe`z3uu(1{Zn
zk;+_z?{IjftIwo2Y<t`<ur`_TmY1%(V)kW+ybYe${5=h@{O3j7_4l1y+!q+5zMxfX
z;(^%(>640wGb%42&?I|b)aFu)!Ro=;7x$jY7Lu at Dv*$yHcio0%rsAB-eudZu9`K<U
zubkDn4|Y5!KP!OR8il}>uiQ61w?BdjOcTD<b|3<M2J0kdWONRnzeUe at czkzJlf$E?
z`J1lL;TQPg+bbqH%<JO+C51G`6^X6F%20Y_>^hSZqLlX${THjUd%*QPtjs;EB`w{o
z{{cV<A}Goa5#twx=m<(kibzO`its{&Bq5O2v?l)lPvGcm^&isv{}zn&0^|P)04i{G
KSe3ll$NvX^`M%=-

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/apple-touch-icon-114x114.png b/ui/new-ui-samples/apple-touch-icon-114x114.png
new file mode 100644
index 0000000000000000000000000000000000000000..33b5bb3ffe03a0670a5cc03a6668c92d04fe2ce4
GIT binary patch
literal 9159
zcmZ{qMNk}U7o`ahTpMd3Skt&Q!9BPKg1ftf;1b+vv~dqKZo!@K;SyYfYjAgm$zQXY
z#k^Jbed^v*XMHv&O7*iWHU=360s;cIyquKUKf3&H&`|#U at vC8e|A1^Qt}Kp#P#cf=
zZ2JD+PHiryri_5#Lyv$E7>a=K`0o_BkAUC~K|nY(K|l~pM?fI?mfiM6_ at 97crYI}*
zkN at 6-WP89rpnsFobwxnHB>3OFL&(eq{yU<&$tz2vuA^cQaB`)LN){j>fSTl`#5KH@
zPIBxM4F72E1=ydtj-Pyg%1_m^bJtf<tYcHuA{=q9NlFhzMg?pud<&F^a1jB~(0jX-
z##DPF%F51z$}`~5atIfM0C5<Z`7;`r2Jf5FR^LM0g-~5VgynD(Sn*J+xos}~N!a>~
zhw8Sqx%#h`Vx60QVpYJOsn$D>qhr^*x5~ypM&GL%!(2nl5i1eCzW<8cgs30b_^>zC
zYIMZ>SsW$iT}0q&7rP1WIT%6 at +H-@we`98tKwt at K4~oZ^`>?_6oFjpfO`YIPb?({4
zxIqGPUt9l+j7S(1kN5-OD+)&1qkiYGDr)X~QA}UbQp8c&eF-Te)Mp%VjPL9>d_GC$
zsnj_E2pwKppk=T#>N)8~PPX)mQ9oQfNH%C4B{xW&&Q%oTi4cI;@uIf=pg9`N5UBEQ
zq9c5WSAGS}_np_DqR!<C9lUr1DpZ_L38NmMXk_<C`?N>)FLYUU2^5tDNrBq?@7kH^
zjTXbCcGcE5cLK%eN*Bu`@fzi~WzoaOib9wVE(99~Rn*?nm|t5WFiL$I_D#wX4c4VE
z;)>i1|3vgT*-40 at 2&4EKX~MFHOgEeYmpSGPAM9jyh6zS}?XmuwFl97J1l9&ad+o#T
zu(Ri3MG|L*lGneSfa*T#D%Mm;qKF^tZ+lj|*wPNaPQx&gj03_JQRB>+(ZA%AM}@W4
z8sO2Qp<JNwX_;@aaBSLRKL%J)6yF!qT at fRC{)k08ZH#|6T-1`Z6vQ+j+8l9-J5ak6
z#zw?x_6~_T)YJeWgp-)AXBkaQ-FnN(nBGVeen-(ua#!3TJA=ihJ$0a)UIlMNDP-bS
zn?;+}3{)ejD at 2`HCs~vAsBPz<`F3{`xgoULvEYfI`rR1{n-Esn8FmKggANaS<YG+l
zImHpBKVg|+LB-$M6H*C~5pXH_?P)^wQ}J(%^Jazxo~JmUyUknts`DabCZm|H|FR}m
z*zA5Hn%%~>vB*pK6oC7&g|OWx(&h@~xY53bC5?l=EGtN#Hu%i#!K`sfYWtkE;K!o!
z$pw?yvLqo<Z80Vbx{L#LtvB%97Y(e)z~DO^d$L)h^kV04x9$XGTtq9lcUzrrgr^TL
z`><`*GTQMV&dA2d*e<;ql*VA7Dv}ZN{yq4#%hceSmTXmebP at yJY@p)ugmdhElmI?;
z(`HBg8iQ5=j20ZSAaEaeoe;H)S0Pw7g12Cj(*d(gl-OZFYV9g!6R=zvFcJ~=B|C9E
zx$GCWr0rAJ1HMkxCe?S!JMHy;v0CzCYsu(=Kx||XaW~>7kD01 at mmW8On?Wl!4>6PJ
z at esH;#aS2N9e01SEO+Y5;PJxDKd2e=CkSnU3_lf4jJ@<t$^VAv_qvd{!}rK-z&tU8
zSEA3%B?ZbmF-n2=8jeQGInbxd(~=>h`h9Ow_wYm8p5==1TKw~j`a+a0$Xs=6MFgbm
zjAY(L4teO667|SJa|o3o28GB3sVY&=kx$NUQ~IYaDay*7`tVJiEW=98FYD+)l??1;
zR#fCWf7d_s6mvS~%ULJ at 33lu>@KRE_;eogu7x}nI<gT)iu<;YyKMJwOud-8OFDM at C
zoH3bsyu;|o8dn~gOG~NG)Ct)YzA at 6SjTNw<p>g>#Mk9*TdwDYBSJ~O`iJq&7O|-7-
zjmj17UlJ&*KVHnGT at d8*vzvgs<%EQSne(9BLNJJE_<yQ|@gr)!^IeuqeRyna*_vc8
zee%;BuN0?>cLcFx!SY?m+wvN{z?eYh!}oo(52PHCn1G0 at 1aHVD>j0|x=&l-zKn4hn
z5}&4GR_?zWJdZhQkD0d5ZYR*leljW|D at s9yn~Y)VFo1a<_W@>3o(~jUs;(j8B`y7B
z_}qeDn?bR{q7lO?Om(5=oH<L(Iq{KdUG_HRsdk4j1-ZJDZi=$V8}l7NgE`Y4>hbdP
zVeju<MR(YOFB`!3hjW4s_rO4|!!h{4T!`~Xi{?W5>~fsxWM+zA&+74&R&ESAK6YW!
zlns!fUR3pZ?X{<e?4#`5i61%2Txc6cw>+Ovc_d=qE~s975%8aa$GRA34kfaG+huWl
z&Q=tmg4anNk0VkK3*`$H4plML7SRpV3v+FPqP(j1Lzk3kq-rgY^>NG8%>mH5yT#Jo
zPczL at FUJ4b-08jjRqGa0x$55MR*iCXVfKU)_w4Gh`ii7hGF?47BV+g*(ov1bRn~oG
zaiOs{g6BF?x&m?K=ecaTKQi#9n}E|`)e!t>+g!g;ulNh%8%k$Ncj93e&7<JmA&#j-
zBhF2z46C5JxXO4}ih_j?eBd~wKyK9x-s)|(FaLft+cZDO%Q12P$f8r>klErV)K#;t
z0cwa}zqK}&{8i6mz++W%V&nBVYvF**juko>F-ZG{4k&h%f}+gXK!B_=Y{c<C at fY}B
z@%IoJXuUuXCAT&m$Pv|)9STCr^lmUXkfY+jfHkf%$luM?GzF&cdv at or!@5gV>CXOc
zfG2!oM>T_)$9`MrhIzGg{We~cc~ki*J8ts6O*<~p?=@?vmH^1<b;I9P#z5O^8_p}j
z-Rca8Va3hp<*zZTH48#Z`IPDt?TkObt67d>9`%WAUSc=c-3|<t-s(oho}{U0yppmz
zEEN`gSD#7F?=gNO1HmIqv!8{ylr_nlYtfA{7yb+;R%=^t3+^`Vh at v~wiv?e`cQ>q2
zzYKT|=PrfK8Q{!C$os0G*V`d*HDKv>5_0he9-N48F^+Ot|8A)z*xyILK4&}~0_xeC
z%;f`2`ywoP8Y5*QePU25<YSQGE&!r_^8V;8zwk`J^o*Y+AR|trOiV1qCbZV-^GU+h
z0vJESE_{Zt8avxQ&pEsj0v=Hyj7Xh!J)-tIYYDe#vF?_GAGeZ}23)nPvK5%YI*mqm
z-TR!@6-<}i)9tlQwQ#8A5n<SBIqk2rLPH<)oHpWOwmi-lUe>lP;>9A!e+-z^+J(>*
z;%pa~yo;8Vx++VQ^@A4E-?1^S2`RlXTP!BBBn=I8e_WI+uq@(bICH&)qagZ0uXxn7
z`(>F7^}io at -;qI=Q}L@=&7RDZJU`?<zRycxo^ukBdnrnbdi1GnKB0cdxWikmd#@|-
zO>4bG2gx~xupRQ^*Qd`5d;TjV7jVuxC-!DPZGE at V(OcT at 75yc?R5Ex=#y2&|M*mcZ
zgEAJ&P at mTf<>x2R982Rb_5I301z)nLX|;-=KIT|AV#6&RpNU4+mr0*3`?g-GC*g$C
zHI<w02-r<8VZe<!q5tC`Cz7IZ0Bata)d2v5%9qb$ThHqC>4)muD*@15Cs+fj*F}>V
zr1HgSD*SzxP^hm=hdJg2MYG%J-jZ(AsPH0;IZ>X{nya}J2qL(=nB*I(W40QqdH&Np
z`KE54(DT57Wcy2e=k<(MF|FpWSU_TrkO%Viw%Mo9e^KcZaF^tj{Mf6q^)VtP&#GTw
z$gl6v#WoqQ*o^OI{x!>;i4f$(23{c5<^mOh?bt^<iq4+vcX;wUZqx}{4b?q2^UmCL
zYVNUxRo%)AI?KxJznmE7e;cgIIj9*U*S-Ay23!2^nXED3UUYGYKQa7l!L6l&<XbQ?
zCRpez{7n5nDVL+B&mKH*$0=<R@>tsX4{z1qhdp?DK5Blg4Tnu_`YG%l+NccFseH|Q
z%XKFqq}gLA9>Vzm_8+k-oLme<t(uefJS(`JP)RuP!M{8F at _g*DKdVM^yVOXy_TT~a
zTnnN&>=0_NH at 8@o)C{pk&Z=fR%x)i>b1we8j;cL#*F8t_Vb>;=jYju2HO`YP(2YpW
z!-2N-f&O{e_W2(D*+GCG3u?HKpOS9*679k<dBCYgb1zre*tG8|@AgyXkeRUQX8H}*
zXzf;ScsmqJQ{TWfzuyWk2+9YLDhZP`y$gOUR;Ysa$IwyfNt*hdy>Gs;lC_Rv)m4g@
zE+kcwMl-s^{-|Aao=SJU#_7wWybsDNkXp(Ga^W>=y#>`kDw&pwSX*7Or=UL-S5ckN
z+_XRhA%+>Ds%gHqk{6{Dj1Kz+drkR at FE8tmeOB0fg2A6yHv-=TdO5Jx!9#6IUr7J|
z)mo}~)^vJUoA*s^!r!Imrk|d$tO0d34?orWiqtihXGEy%4ubNoq>R+TZTZpHa&*R0
zw|$b*801gHJD5gprGqNJV#FQ*OX*Vfv^Ik1{wOxo`03!FLR_ZGPtb~l9z3u;%tAVH
z`v5`kbKyZ8<I0lcBZsALf5BE1ilWp=wGyrDk$NGAFE-yLw;q+`(Kec9B$0d<;U~;s
zFb#s at 7BK25-<~bGiCUzYwx~+3?!(_L+d}CmJjRt3S?^VTe@`f1oJGqMbj&fi2arhd
zhEs>(zf0}^?7cD-ah at d9tz2N#lUQii*-(_XEhmUx-=2Sqkm(@az8-PC7DTA^jdRyH
zTB6Vprs}25F-M}ZQBSx`6#<E4!8c22L3T#hH;AKH5qCR5b*7C^pm?@-^I^#3NsvP<
zqr5y1O7J#eP7sOBU5OYMh2E~lUjL$qVrO+R`O+r=lDx=K<UC>>|D(Fi at eEJHMrOhR
z7(Ug5o1aCe9*vO?WRIZLA-tc|m*B^~Xo(QZQn4V)H`?bRlF6kh%(iIPRJrQk8jGBo
zw-%HjmTOP)RJUbUHLT&KuWe@^EPU2!rVm{1)v8 at v4=+Pae5$3tKC=~Cvn{?(<fjyD
zV9EHQN$}yspbQiC=#>dYeSQ(?<b-1R6VCW;AL;puvcQZsi>AnMMfv)1jmupvl;pV-
zX+Bm`aId%+2Hkx<Go7pR+Ptlrd|I<l_wqtd>D{*3{kh=mLL;}L*ziiyl`QA!hhi+6
z8sWnX$}Ewy$z7RiFcHxUAf_nWKn*~jX at BV$Huxq|w{-seqRw!Cg(@rXZFYMGQ43Qi
zcv(4?RzdBn0fX;W3Cev`mJg@(=I&of4%cH$mD*F!fZ%ED=-kv+uXCmY#Q^2U6)Mm!
zxLCjE3jkc(oylWp(xwXC!1T80_8Hw6gsolaM~W6mX&uG=cfYs&eDNYHz=<727*+HM
zEDg_=;~-_{IbJc|xhs(w%68e)e<E%$PhDwB9k?K^%UCKpJsj`p>-*ymWQ$KYdE#o&
zlBJzw^lE|7OReRb5(Ch^Fb_<h7t$cR>!8)F at n5YEqSxiV-}k@)mnQ`=Dng*B+CJdY
zH~=4przl|th|4*DJ_`U^{>eWK##ZS5cn@>DKGktAYj3-%k=`PI#rC*onB)eEWOAmN
z<%#yOm!bNqHrEEZiTPi%*f{>p&dN+1k~DW0ecNChEUCjYNUmn!O^eJDh%#MWH=_e_
zqNBzY`R>37G!Ct66=Jh_DlcLY56Gz39_0(I&E-gkhBZoTxGorQXHjs&RTGP!C7*}>
zOgijlFJ+_+$=)i}UZr4YjWR{|xK5Q;E%!zKwa{b5kN*W3aYYqMTK`tmbG<ItaA7nF
z$h4!bf0t<|CuDMpck$pmv&}#`K=p=me|_wj{VFbUBi!bhI_gXoG-g at abWCS!MMhew
z10vw$ED&z94)=MK$z(C2?lTELlX`3}z;=WI3upEc4|;+mrC>wUy#4Vafj?fSbhEs$
zVX;cywuNiOpR$<0#r5reKTlw|Br~rWfUlkRRA?5noT_=QTfSHS(1-IM6(b6&IFcNZ
zvPh-?Hv{LjZMwOlMYqbv;C~Ut>X^oF*SLgoIpbHh>VRc*Y}bN>aAF*ma00Ge0xs<+
z;rC_`BqzzX`Q5)eY8mfA&SN_@*-8c8qw2_we*2?8-*dc?foN%2&+Nw)mbg$==xRlH
zxL0g|9M}>fns(ZnNA}eHG=+D9=e&Oky_b9x8-2QV(8U45#$Q6y1qH9TGnIc_ELGEd
zj0?qPAy`r->;C}?JE_*^Tl9zpe<WN(iyj~$1>8{kWqpFTwjqsy7k8&Ls$@dkozQK4
zV$-G$ySa>>8m071N0!Wtc6uTvW4vb%%d93=zE}VLRBfqy2LEH({%i^Y>k>x_kIhfg
zM^#B+ctdkx*+n1qUh#cUFg=WFTQ at TSBTrbL4WmaNX3Lx2Y)ZQ}zqGYu74>LFWs?A4
zSx*fOdagL~s<nwp3!}|gDa*oY0i<L}S4JLdYiryF7FUO6pDlzkUb)d70KmdO6<aqN
zDc^}4Ro@#IXhQON>g_pfr#&LW8*Yl-+Bmr>a_*+D0E@=ZmhA!2ME>eZ7*$D<H}tor
z-kJ4LoZWVLt*hYd+~j5VMuok+1+{{nxkbC%<BZ+2M!r8|+J-tO2W%egY-wd8a|iwN
zi#@pR#rl+e*j^iLkp82LO71H8MX{t{$d4sl(X6LRWrWPXWAYYHx*<ZP&a6M+*-$PV
zi>z>kj=N(2N_VfiRA|xIJ$goVqA~qM1<A;e#qZ7nOreSO7**qlhL74hWvdg+j?<+j
zq#`GW^U4T&;ud8ltxu`q^SH!Avpbr$pSgU&1|UM2p$c9*C0ZiNH4)dj_A4^9t4zEx
z5McV$b&LW@*-7Q-hOi_R6;o%jVWp`lzTKm8Xz+KXGH9>xqlQ}p8mCMzAkAiU=E>Uo
zv1n0o)isT%k1(O7M6&~ur+j(sMs&2an>O|bdzXuz1YDO6^nV=;Z`oN|;|(c!m`VQJ
z6PzjoG>eIkiX{Ev;d?W+9iw7Q!J;4eJ)slZ6k}SgN|}4kVVS=ye*iHvELc&L)?wmO
zZ)sd`ahYFZOa08aH!}!4+hwa;U6Li7ADBQR6A6(LZm<si&(9@!)G#LwK~AHObs6Ui
z?jg@!c~zT5mYdzka?+EjA29}xbj4-sei=UtOeXYhmAlKy--PF7m7aksgg#^G>wRe5
zl$JRb`dr)Q6)wdt>J$CM{3ua;cm+glEp{f1JHaIN7txHT<WD9dmjL^bvnBA90QX3j
zW$DNy>w7lPs*|6elmwdJbJ#NKLo9A(q3Sn_CA7ws%=Zt;^Q{6#GGK6VwDurHz<m``
z$G78H5hKB|1%cP*W1)wa_iy8F)dN2t5#&@lA7O*PtU@#QGb9eDW+e|NWx{#YxX1EZ
zC=S*H&)iQ+#9j_mevHJ*Xf3ogg+|t0nPhO=kCW+R>bQpeo$64_7$gJc{N!}08))MB
zb?s at K--tLKyg-<4_rdh;uUH+t0hW8Olp_2up$k&X_h<e4Y`#GiPj|ma*rq8>YFzRt
zN-OBsR*1$CYK?!NbEOARH-$SMDFC+ at -CL9z^Q$Cq#Q~0`l&mP`g!Wi49vyQpclh|e
zM#xcw;<e`>1#4Tt0X5>2HD%$}04cj8E$`J{fWmC7u8WAC2!3#S;}l3OC-lLemas*e
z#QbqBT=%IWJ@;sQ;no`;-89N>xeegA8cq_gDWL1z${nuC+84 at CiH<w~qpQWQmHHt1
zWv?HGA^C#N@<cF7&W at nyUG$8$eL(4h8G;4Q+C7}kMUj8xMB<Y)eV;jp_aoRdl4Mr8
z3&3a)Pw|N7G4?C{)SkrQ!JR~@+&cG6gl}w*GTmZ=CAbCfFGaziy6}bIMjQfxzT#5u
zZ?mQLDVy(ha+guP-fk^f&-}LKtm(2ggbMx}v}sG)%&qFEe-o?aUaC0{P$O|+9eJ7@
zK)XjtM^pn!C}bu4Orf@>iZk-$)uQ>>@wV&Fi{<XTE;;i&GefGbj*U<mUX+QKOy`aM
zu6w6((TIZMYH(e26!$jvB41zovI+ZzwO#G#xIrA!$4lP>DM004 at ro2}Cu70X*aVO#
znnsWDuUnbkT=jZa%&VV at o8<9rr79a5{I{ew@*$}{POmpCj}@ud(U6U>%bk(5k#(nQ
zfiS+)D?2BGo;0HzCZHm6rKGLiA;H;NM_i(Ayu0%|WOmfq0nTj!6>rah>v~XXd;1+8
zz~|vYy5n9}0XY#KybIo4oIEW2>oIle$;mN-Ohjr`)01S_#<X)NX2ObXY>Mr)sdsd~
zTOxn1I;*s`=HeF}l2HfW$Y-p?<kR}edUyAYng~zFqH#QMNO-0i{}bB!wM_f<zuKYN
zsF+_7<i{d^fjOi6x>{Bh5{;%dHdr!I at bsS&e7~gkPl!>T2)=d{#~+1%*ZmL9MOPpc
zRW2qk!xI{=Cthi- at x$U*fY_?XP8eSef?#5;ff5#ZIDi+6&i7oabe1BiUZJRXRz2bh
z3Z#n)RqLMAj at f5h{5<Dq%&o*{RCHQW!+Y#*%R2fPqICaDn;uqDpiz^o*N$lPAT#Ex
z>aJ9bI$Szs$vS{GkCq#={Yt8JAOzVn@#{1)*!=kIA#b;sv`U03xG~lw##VY=W!Rr=
zNta|t6T|@+Ab(0%GVYdX)gy|Aq0y#lSZ8=d2ra$-(-5<Hy^5Y8YZ|q at Iu)+{;cP~S
z$pZ6J- at RtOlK69S8m$l34%ACI&on#eTmFZgkk6gox#2<F^UsM_rnPAN!i&u%4v-da
z+-)D{eW`?Z<4?;Q&|L=SeW()auf2AL1K~QCWf8XWg at 0<C_3V+FaUN1gVuzGW3pasI
zq4&YTL?~vxmvVB%Q}($`h2?}CJ-<gZZkahWI>qgZBexC6Vlyg$Rb$FhbjGBID|d&_
zYdYn^d`TC$<~;ry<3P^@(tIH12xjVB)aLwJ<gx;OZ`48QO;MNF4+mA}->4`UBpTIa
zrzPI`m+th>ln&rc8-)Vf^-_9PVow(wbP9Tx0j2;RwH=OlErC?#HAI-W5 at W}mLhqH^
zp?6-kvw8P<bt?VJB8f4fZ3gZ{8rQ2?;eg=?CW!_{_2$SiQ$TFm(YiD!A{L(AS7UB?
zUNP>dWzJ0x8z<g41Hvpzd|z!+-aIRRW0|xmEtK<q%r8~~d#5Po7yqvR?Csq#{ss4~
zO|19{l(?w6b5OS(Kv4z)b^PM+U)B4WO=0b{Lw;NxfC(r2Vo|FFsj7AU>Hpmo)mkwq
z(IB6_?M#{Xe)@u}UJK$Z6hz-Z7RL6FxhzM9JM;NrODUZ1Jlc=*g+$J(7?S8s$tcvx
zxwv7o`w-jBu0^+3()Fu&_L<Q9;46;C*`C*}WaLLUe*&=Z3!b^2J`SHFxkglB7Ul9{
zn*;^TrC0CO&4nNV8a-zMFwzy^m>}a|Bn?`J8>v=CWU6;+XvZmAudG at wBm&!Fv+I$W
zAloV0TsviL+neEa&6{O9rXz{zcdStp&JG&Pi^v5xRL-E~!NT=H`G7zrtC}bi+8O#N
zniHeUcN&i87$S90DZ%#48GMju3fHZM;X-AlGJp;+o2ec(I>&+thkmi)-)T2m)Er+h
zB5INikFAARg!Q4}KXm4J>y)Zn{$`Oq%+*$#SW{Xof!Kw$5itUNSXVTmI-WRTSih`3
zlnIZW9yoo>J?UN~bvUl&loAM<|EoE4>FgXQ=J--!^o0W}oefhK-5^fN3WG!ALwzoF
zSa<^F`fCGkNcpnjJy2DtRM_GDS+aS?$LVjr)yF!!$#g~sC_b at x1k)?lT$b}p_2t<b
z>72nVKt`Py>}3ic&96<VLeaOC)BD^zVP#Jbn}5^F_R+o|I<rdEn!r^vW~2n7K$|O%
z>m^oBLM34Tz*jGGS@~l$SQ#^|yX;}3CZNqdJ68&v#~g{R!j7VW%;EakL{m~zB;uFL
zPz0hR4U+Oz_ULX1wOle)Ejn&Us2?+G(D&%np!%A9=i?s_>=R1<FfszETD<=J+>V7^
zfyyEfKtktII32<t3JKVwI3!H-POZ(QbRA2PEwn4mAW3ZEUZ3U;Sd}rsY;r{XK6ca?
zjV#HC>!lTJDpg2xTK^J+r>Ea<@7jCVF`wg8w6VF at jwLiMUKBSU(09dUoNr1WN!u;c
zfMf2;vosCQv at RJV<t-1 at Kq$E%rDiv+`Njn!9ACP%l(hgu at X+V&<<^EJ%JAvdQ3{x(
zmj=pkZE4q#v?g~6;&=5&_U72&RzKy*qf4}Ogy_ncw024edLt&pi{_u at Z^!*Z>ORn)
z0+iT;lx-bOFW9`t-&PE{e=tk?aoH+3m(?io*0HvAZi78Shx*X6psDO(8KX0q<a{ZX
zTw+ZkB9nielyjq#1Ll8!8Y-$RQd};qasOKWH7#PHVlQstoMjc?Zx0enYI|%kde%oz
zRymbQGcyYqTgJ{MgFWZ}-cu<LzT3#zQVX#{59!Zh%IIfeU%{_%S9I!Y3*LMv9~n&Q
zNX7CldfBCFx^YtH$(i1n=1#rD8I?~W4l2=$K9m5#h;~GxHu>7wDhle8_8Z18t|Kh0
zG8r+Z89z3&$tnVtCw+4fGfZPVaSVzrG793|u^9NwiJcj8W1^MzAI<tysu|C>@;}~;
z?&T!Jr#$dtaN{OTurx}eve^&*U8MsU?TM7PG81v*VO1IQ2CJV!LybA~=6 at hX1r4ES
zis5W=n)O`YCNoKs2R*b*J}dm~ujo)WK+#2MVV_T3lQ(X#`XYy1hXzCn=h)S(>Wa|z
zxG)pgJ{vsbzllscZ)xF;_*5^fouoRFP3G9?^!ihpo-JkRXU-gxB*vZI=3d*VF59e!
zm+-iC$vlT0bD~wEhQ9eyF_y$K4ar=QLaI-AK~*KkD}PgO+$C>}bXR_~GPnyGyeVd|
ztlW*ZE@))l^fNu?6MO`{A#iNw_fk}Y>(xZ+UCFBV<mbHb)*Z*%&28zCIGxA|SKUz)
zPCc}6sO>3RK~T-DM2R5Zq7!T(RU?~6c(pB)y!|Ynp>5x=4G%}U>+8m#p!1D=8|#~;
zI<C;8S*K6K?==@00i;ILQ%1JoSpmdlc?ZBkrqL*=Fp7?uiN0BD`|{-)yy(vT(W(l3
zy<lo1)iN4UD|ok3I;F0qkV)J;!DfCIZ0DW<crfC<du5djYi6g9LTINoA)x>=WbN1X
zL`1Z=`00+~(vt}b!s<%0Ia7U at vHMBIvrgMQnhmd5CF-{<yU`RYzbQK`XhBxA>KxAM
zSbufJnpA?Z=$v*w?Fh}*qfd4)oBuTWmBHoF5Zfgz`QZnXjN;0qD_>UInE^KvgDlE1
zG*G0Af3j8z^IbSb>i6*Il~#DPq~_q7%YfosjP_A3Y?iAczx10`7m$WmqWhCE7>ho<
zd!a^<*MSwN#Soq{^-wVx2GLpg%`?30RraXDzbmZB#wS4zTN|U$E$&<D-Cb*MEj!zj
zABC3)#vpwMZOEH&P=M<we!*%Q`OFlZq>8&$1ap{(aCxd{uX0kM#2BFDm`VFEI6nLV
zdpJ6{@4BYw&N{<c7C7RuV<c@`Htlhytj?UHu27fF=6Cl^a>5W?Y|Ytr?soh>H`y2A
z4f$LwXuNHo!<8|2YKh%r+#go!z at S5t=)9z9FFJQVUNgJWm3sQaT={|*)Cztw<qZtL
z^=*>>3pwZOI!SBe;y_g at sjmCaM=WAGqVzXo<Os#z{NLK}5gm#b{wyd}o|uv6!1bkc
zmwA_Lp!xJ}`?KXne4rwnik*+&5t2k<+0YiTy+cxFH3M$yyPQS|Z*Q&x>$NkEpTCD-
zJ`<mN+q8)wWk_#ubyXWKv3EQ}w4=4yOMFlRFrIl;vD<}5^D&-rH(-i>5ozSX*5`Gg
z3w%WFD!uY<?P)0ACPL5-1N%*mQ9tPga!>)1W5<|~f*6u7wCi!sE-(!@xofxt?L$tm
zcZ#&A)&Hs!=bS&uKBbY>clmWuA#nT_7WAh9(EvYD(T#FBp|F=_+|o-?coE;To?BjW
zUSvl(fEZ@~*VjOw_NIk&%_;r-OoQ|p&!FV)T>xqfq7iXT)A%CJh`iyu6$NTnmYVlE
zSpohj3x6VFYUq6<YXFVWpSF^^(z6T7p5NZ}E|s2O<PxU*E49$MN$a>-n7UaCn!8y3
z1HwlLCl4EhkBt+e!6_ifEg;Cl$pZN(2!WjDr9%H7gQJs$t(Eux-|*vwo%f#sL0<Z^
K)K3YM;Qs@*ScfA3

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/apple-touch-icon-120x120.png b/ui/new-ui-samples/apple-touch-icon-120x120.png
new file mode 100644
index 0000000000000000000000000000000000000000..6d0ce2746897c9f75b493595f5356cfaab91f025
GIT binary patch
literal 9860
zcmZ{qV{9fsyM}AK+xD%twr$%sx3=xRwXwCWt!>-3xwWmcU%s3l=f|1knL9I+d!9@(
znJ1ZC5sLB>h;TS?ARr)!Qj(&||J36 at 0R#1~=Q3fR|0fXULUKYNAa!x at AHN{~jR}n<
zmE}M{yvRX70)jz6-u_Jm`~?AVWds2^GXw$QP6GkKa>!~|;{CS(Wh5gZ`cMD0SCJ0?
ze*)_uspSj;0+0Tm00qg&0{okVc9D`3gWiFLLuX=1o)jqr0U>ji5*1SQSij7+j>lVZ
z-SI!!-nd_V-v1;AK?4y(DUwX67nN!j9V;+ds6QM{NuEWfim+AVFS?*k72u3LlFp*m
zNOY>e+o;2zh^6IHHpxt+nkb@;#C$BEj36B1fCVEI?8JKC&Q8DTem)$y%*lqt>IL at F
zzN~)NxA8RuUFCc|b3JD{&v0pIlB#0#f@}ny2mA>*56td0GsG~&^6oUvLjMT>MFO7z
zi352LAOLv}BqWaFp7j(^Lpcv0+y>o*(uGB+ll`mQ2Y%4&+{@Qn8ZLTrLh at GWPZtik
z3gz?TMX~Oh{<+0Bh6EZ3Bo~rj>B5=40L!O^kOR~X(huH)MTw8$;3x>h2lqvxS0m7d
zDAC|SUdRse1#pAg`!?|@m*Oao2kwXbVob>Q`_Qun&dIvB2b>@2LGS91!Egbi+~GNL
zpc%!OZIe#Cb)bP+`lbfXTX at zdvmwt#DHkmLb|>NsyuQ4ZR`M)DJSZF>9!}DAEx-U|
zBp?ptIZ2t;Tyr89V%w{&22HRl5#M%pok#9TG{`}BPB!0wDKlg}$B(+^oJ314MC>iN
z2Gs}r#Z&scePHI(c9%md*nU%u@{mN%>`FlH{)?&~m62SCwhRI+ClC9Kd9xYL_gYV6
zCWeM-0!>dia0k*4dQ=AJ4rT!1rn^id1J2?tk at nHAR6nA<syLu-4LCueDT7GL%H!g1
zywQTk1_o|$FnVl|%g)qC>F;Xoy6vXVkG2N^vfFKLRIrWR at ec>D1;!^^#Aj7ejZvhN
ziDAHq!vWENL9M$v%tHT`+%bDRvHRIics0mtq8Xy8IkU)S<x!^_qOZ at p18L$?P9xdZ
zE!|<kPyz+)*K>0~$33Aeyi^r32 at -0MAqe`|kl|oHm^4snXdUkKFT%fkMa{ke>uMsY
z59^I{!XxB!5mf!7oZQS%=nEDkA*><`KiI$?;pR7jD)9y at 4MMb<z#5EDPS4x$*nvb&
zZ&D+hgMFrfx#NJ>#fE6VCy;sORx9LXb*4naLE=?mH at Qw5CMH^qO;$wEbEkQ57Fhw0
z#It44LA}9-ib!^y;FGvL0>6yfYm~iSR6w>UE?rS_ATs5kH42Ql5=j|G<5^xyEW)#K
zi%qXy7ry(Y{KfI3WK(@o%M<l(yD~5=^=^_(c!K54KiBx9A*^<ax>|W)9cNj!E|G9m
zk`f9PT=H;9Q<UTuf~*xUw}ka)X75hQzWTEM{Nvxh5MO~3V?7 at rdv(5lM>!LZK^$8h
zFzb*UF)JZ)rPyF1^WZY5i86&oO2={q<iB<cN5_RWbM#cVz0mER)nvpT7#-B8`edqe
z*eHJ+ at Q=TkBN^+k=@!SjVnkONMn_TO1W~Cr{N1!b0H(Ft+w^82oL88HnU7I0WEo~#
zqI7p-eYbhfUGs-bveqhR4WzaH+6NDVr1LWtM6jae4B{4wiAc18KqwPTv)JwFP8~+h
zA!~cproQ&Xb(?sz`(r0U)Yp-cv<BATt>FB|kSkI`D^-kaey*8GxIA2^5$UJ_ at 01MC
z$D({N&hI`LFdW>^q{^V*o>jhvjT4Y~dEgt}+8L6c7MCNE;!OY(5|l0>&If>E{6LSu
zgkKgbcf)jry1<*Wg1{g<{P{g4VS&#peHZAS(7BiKV&5L77t5*DQ#7i;f&ID2|8Y-8
zJq9u at +N6u41|-yu?l_9kw-7l<)9S<w9+D3}w+Z^l{Ym(-c2cK+-v<@6D$hZaqmj at C
zO+y(zyaGx(ds~Z*f?K>Mit#g|*|q>Y5XGtgR%w352R4hS&C#91{?SZga!`}GOoRNI
zum8ebqOK&CNr@~fNz^JS*2q9QFsb=(L4^{ru=uF5aL)dHw27&yQg>~vLgLqw-eK;S
z#AbvPBL*W7Ou3bddR at qYXsAFE21WK(rx%wI)XAXLAq3O{0S%%O6kQ54-<IdF at VAM<
z2ael;_T+lCQtf!%pceLNJ{5Vl3&5;TU0P=C$Ke!3I#5?k2`pH$GE!pfmWX5~^H2*s
zm+kKse=t6O3uvM7Z`SV%=YP40&FVv>g=ZC`Z!Z;wzD4Jhe+Mf9d@#q at w%OIBABir{
z`He~Z=upGz$oWf`f9ZvM+&JEa<rFz>=tMexB at WPA{*}1zJrp1)e0*S?UPg6<X`XG4
zR7BB<ZMpOZ!0_iKVkJ}})L`=$y>v>YOcMtQU*l>RdnY#J`g^4;e}C!RDQy3{Uxm_S
zC~UTr<z)QIjk#Q^@rDIsr9{&C)M!6g2`emMP;`@Q2zoop<~KxOCHKR(bA)0BigIoa
zK_BE+NCv?5+D>Go9o$?}PHS=mmBSoE9>#^WpeLp3R)E2 at Xt)_3wnK`=3S;+B`Z@?b
zo;+O~mHgJEdiPl$(>417z8q%cWEriIBj7(TIX%652J%<{vbBK6G(*$_Mxw+jBEsz{
z)XZSYTWvJmpV5D<q<9N3f at 0<KSz<K!`*4y@?XyX}tFghc$%O`o8LC6dk~kVSg^SoN
z#9`>1Y!lw0+U$2les6NXWXyZtYpZ`w%3tiREj4_<>E8)_@|xL@$3_epqu;z3p- at 5x
zu at 6y;m9a|KD8=;|kr at hye|b2Bvl;S8HAD81wag<$Dqd9(!(^EKowQlGdQU{nifc~$
ze4-?8(A2SfZ(~4f+b>_qgJ7*VjK at IRAbf5(^h=@5B#WQ-KCoK;-dIuDVE1ryLdGZg
z9 at HD%QvuXL(2c2edUYP(CeLnD*2oq%*+emxCtL8-fFgn#gOO|Az%{Eb*qRl}n9BXK
z5pye)A&C4{-l541)R~b_<mU at YklwJ5nJcH{02cI(FkBy`m3aV<A>_t<fAi*&O_-1R
zfS-otx7ZqQF<j(#J0EGy{F%aB%YNP`@cHpa8U^Nzq)&XVPakkL^zdw`jz|*pDcPm1
z>mr_(MI0U7w at UiU1uokv52qGQk**m91)cF|wNhJj6T%5T9Xb;$#mgri2mzew(<*8?
zNtUZU4jkTAauKc at o({p^AW&5G&9CCCfUG<8$VC%|zh)NZ8+qV{a<enJ!OsNvoSSV%
zI!jdDN#qiJ?)yp_Lk$rR_c{oetzcd>ZPaPl59qeRV&e&Vok=#K#SjH-qHEJN&XGpP
z9^`H+e9a!bT=R>6^-B$U(;^ju5*flc_ISit<fp*1p*R8A$|B<I72~ik#JtXHY=ECG
z;`en at gSdkko_*m)<Ah%j1^{KcI}}7J7K<`{7QvZE8p-Czgvu%<t(`F3$nNttloE5x
zuTKpNK6emnM7ss<#FnjK?{~S?Ee+y7p$XDX)A9Mm0#`O$5F8icJJ0fWrB4fQ{Th-z
zE&^W<5aKq!0<>fu!o45}q=rRCm2&f{!|h-lCCjv}I;sVs-VN3uO2bNTCFa|-@|C?N
zaR1;eIfkn{rOYHQ<hgC3(D1ir=WtZ^S5=A|AA><vebkkvf1YvVnU!xnAz2alAYVP!
zh<I5s&>_(RAD$C8JE7el-7c>1CqHHs61yCTV`qvVD#R9pyhNQB&3E-kS1{@QM(cFk
zckQ;Fx1k at 6YDpo?!_04tJ+p|=B7{Iy;w$HJ)E-~r#hreWgI{lro*8szj2~~OiiS?J
zr**yO!t$4X at AwDjAaBKDx4Tq_KRhdcpFRr@F}?15M_+`XdmJ!|N at 3au;0+1aTG;Jh
z{1$}y+2980OVEkf;V7qZ?YjcIoOei}LYn%t8YQX~E0kv;`x=kx17GDCDo~rOMz9rv
zTitzlZ}y%;;d?0c=6`B1_s-ytR^Ihsoc(#FW!2Jyjy7`m{YG<Fiez}#$rmTb7>~;e
zSWI;uF<hxBxi%&!c^lwxeScyA?JFONGhy=6kta>^Y9`fi7M8rFH{PXSuYWVR?nlzY
zBjV<g``i+cy$-XxMrwmB%24e2RNtJgn)KVtwb=S5+#7}Mw?V&aOhaZ0mx<2 at wc;>P
zxDMNvcsxEYIA1gkw{rg-{-HWP>hB#oyoIi*Lbpjm1yt*n%#*oYFLIkevG)7Kp~m%Q
zc<bcm!~LB6iV|2Zm`OK#5s?_p<q~{);J-7b$XfzCsm)wbY5Rqod|us$fUN&9h8aPo
zG`BtvfVG;rWiCx=63gLm)cI4{YP>;4gcaVVD1%T=+WMz?zj|Hza?4)C8CiRhjU35Q
zCik(8)I54Ep;>W`yd5S)d)gN~*977FMg450M)MALmaTO{<Zt at lH$p;nM%S>k{+oD!
zH&Wk$NEB^uv6CDF`1N)$=>$eaD$W)~t5Kaub^Jc_r`lZnfiHX&G}KPlYhwAa>7>L8
zEIUS&o=ya6r4cuoSGOZV^(7$ho9>*!y>Idlrc43)Wd at w`b=FJF6{`Gchv{eigBz-h
zu!E^JgIiVcXaF6v^N*H#>F>;CcQ(~$?UBSZPdhopjwWG0Ml$)@;jFAP3~<$ESB6<X
zPZYvI&IjFN;e^I8P)8Z<@p at 8-%=Th05rJ25l3D7~xumxojMeSKeFX=ueCaeUX}}Kh
zDMY>}o^1 at FA6jt)AdVENd@*4hMU{i_ at ln#0jubb+r1sC#$ULVNv1;{YVcoCj55ZXJ
z0MRntx#vjt7}kGvW1r<PtS8pYI6fwbJwY at 9q6nwKshC)Dh;TZ;8mPJ=WXm(}&G*oS
zT5b^0`jeh*Ll0T4*<N&l<(7hh(fI_%lRfBqM)RKFY4$ngYP!VbJIYho8m->4fALrU
zD9H;ta=}5IaGGERp;|f#H>v}aBUBxx4Pv62Vi)Y2o!Fb5Xrc_~d6OyxIBU1S at T$LO
z?D3qVNzkt?|IWa-$JFAhD(~3<cKQ7{|EQ1Ilevhla9d(FOLW?Zz{r?%lIh_?5vH>0
z(Dlq;yCd=4)+o-mVpcL01b;f-r0lNx7Kqb6meyDl5at_ at T0X&5?Y{IjW8;KPeJi<T
ziA?gi>J0P}v}p?J9E8OUkL?~-{mHUEa9R0$=Te>fAk6hGOB`ib$aDifGWjL0c~%Im
zgFCroERJM6PEv7zr(3f1=NgjLudYSi at U}p9B32AJ at Qh(QP;KokG!_=IxZcwllvrP|
zY(7Z|r$<O*CFUYH2?>>-e5 at 13&?@q=(5i@^Yy;I(vF9yIZC1XJ<}>z$i%$p(&(*G3
z?f0<tb(V&YM`i^bwXPS#1VJWg7q>eUviy;U0il$7C6os!wk!Mx5Ecas&*&ed^>5}(
zpDQ=Y2(|ZUybBLLuL(?FI~)r4lki*(F~RW^0K8?GrV8`V3fOILXXNkwsewv-?q?#o
zDdvZ68tl($ew=p&mY3M7OYI#Ex<R9rO)$WG*cZ#MCoQAtMx#n%F;6Oa6xf6ZQKMIt
zHwdpYm9h`8dG|-i+;zW?1A_0DwJ#4Z>Vvo|u5kjNQ_7j2Q={|L;?|_fBni||5-GUi
z<a|3j0#ooLbZ++LOsn2kUhEv21B>_zarnl&C30!&e;gV4!HLtl<s at Cnz6MF+<uM))
zv~7N<Mby!X+kiEr(b)=wvd0o9(@7rnm#EHgLn(0ZeV=rre;oNz05a9HR2>ox%Nsc)
zLPV)m<uD#Gu6#{01l~q|XXV_Tyw)@NoF`Ylzv3F;9=iEBwwz{@@>~mw;46!<z_b-~
zH{?*+8U2t#P_By?kl}pfYV`a7PPY>F!EL_(1>|;qL$JsVMGm3RfXdYksf%Mu0Fxmo
zU<+ayuCou}cd&<YN8Xs(Bxa_U($1_S40}}_c>FM1j=C)DW}_{XPH-|if)!P{Ly2)o
z2g$*ZT+A5u2D2^L>s}V<9*+O24jcG?{wO8CBc2*=bj~<IJKkrYvT)bTax6-}LEgbN
z|BhHb>P}|Rk(`g)c#M+#Mq-7x*yFa8uXKdFr at lcEb}6(G9J!*%>ZEwniRuMH2>2Lg
z5a8J~jvYl4Guh_ijYFA=BgoTElj8BF-%e4KPSXt4n5OmVwb~MZompV2HI)p0*5_x0
z8qF8f*2e at i!cbfjMf=CSiY=OR%?R83`G3<kRL$n(rD7#)&}Y(3dQ-7SVaQw|BJ;Bh
ztUml%o9U7a at 2m9YVfMK6abgj37VF9-!6LBElvNU~{vC|&UKnG1!Z!tkAi$j(y_2_+
zk>V|cmtN}@><u>*twpo8jEgDB0vKfBcvkf<t{AU$gO`aVHY6Sf9OHw=JIS&$jmV)z
zH6x)6|KzNx(2qB4Foadq!oferkV!Sc+Nw0-pkk8c_+ at g(yZm5{KTJep7i?mC(XeJ|
z^XjC}Wj{j~MX5=JQ%}YHh_cSzqSi&&cOHs{#zE16FYWoWDT at hnL465`JUgB;vU at M&
z#ZK(IK?rD+Ekx38m96_qE0_{ZM<r?g+m0oluM+oTd97bFe)sa6S{3bB%A%-35yO1;
zqd>D<m<`p-y5^#7yEs4<ipf_)aLrN at o~E5t13pNGwb`25tL7KvU||f!tjj~?h(Uay
zHT(0d3I-6f3T{2qZFXyI0gRg<IB#5VD~rRX4FTo1AhW0qoJzOOI%lyU2ISF at B7h};
zG%*Wb3>SLZ>mx+%!7v2>{12ty^yw8Kh$rF_FLfdXDp0VA_+dGvqc)cSO^2v?12J2w
zdipcvH4`9I1R7&L7f<i;015l^uVd$t>u30nkTrZ|pAtvNA8g%2ahMyOx1QMMAy6=K
z1vN6zfs7JYA9CX}Km1o7P!3t(fBFdlt5EH_odO<d at brD>97f&a@&5gPL0)oGY)rAv
zTF?nWKWT8X=8BugIf$Qd5W2w&4)o7&)-iCqsawBQs?VOYKRO*ebw3FM?nn0IPZ!$^
z#Ox*d7`cx;_a5pAeE2QyS-D?zT_TRRkHj*R4QR(MdqONn<!L=W8qjzb&s#4aX#f|f
zz_%xlN^?p3jt-5E8fRK`{OmhkR}(WXT~GeQ28-o<{fR4&b*f_XMD3EFslU;vUP9<j
z8_;Y-TTM?G?bo@&BN>WTXH at 3y_vf^yS-GOg54Uf!OU(i4x=0#1 at Y?O-_jaY2ze0#x
z=bH0Gpv&=5>6wGaAmjYyC0s8Jlb?4wQ<j1-4Oo#6#1d#x=+6AvgjlIgQammcgRTWQ
zeA}+~CUA_5_^X<WQ-FUdi at oSE^q_=Tp>6*i!WoSg%)ZAA^190pV;M6_d5WZsv0W6!
zRmn?=5vQemtv7pzYpAX+$&?nM9D$hc-15EezCI29bcqF)&l!GjDZn85J~SiL8~y5K
zFXm!xUSjq`%&OfbhLF939Y at VY7R7=0W)i~P_j>V8(+5-16~NN^CvC12#w>fyx!stS
zzUmAGw-S}N0yy3;H-v>Dv)Ry=YtZEjud|{WHJnX0W-iYIa|FZy4kR*epz*&xV!b at E
z9HhSM({pM2wTF}Cf;Y!%eTo;gQ$Ml5ij~!`Vr4fJu?44 at ox>YV_+kgVO+zC0Py)qv
zm$ztMmNqz;HyI8yFh4T~vLI+K)vJ^e(P?2L${jpNkC3m{W}GR^FrC{q5Oc6Q;>;<o
z7($yG1`w|MDm$r~iLPclJ?K~+m^%KI^z*|x-Y{N?2E2-ngtz99xUSVGS9OnXT#b9{
zYn>561Hz>r3eqsIy4OcfVAxPfVa3wKY!xM8*O!@l{ywK56vGBQ<-B}jj5|EH*s-z#
zKGQQ&rjTwE at A=JC<O3}f-^L^w<DvnqdFc`hc($gFQeB5|ljF~XZhN66C$gD*=)*7_
z>`${g=ubbhN)kdj`83PS7W8|^e}LYmAsEIGLLtSlrrCMA*`ImK4VKe1Pk)u$J8*B!
zylro(POYtMvh$q_(*AmIgo#<jSQ%8MLLBNR<gy at lOy82tuZQe7#rjvRvzv}zfH0wy
zV;vmNjH@)fzAh<aS_*S{IR&<E-ukPNhB3R*M0J=XDW4RXSvmh+&E{#t8gI3hV at C2{
zyxuwB3(qPtURrt^AqfqWwGmOn>ZX8fK5Q0>rI8_FFvzw+Rh>&QsO^BR{lc{T%*g$_
z5XU|Uk)%;Q-1AC<Jx+&uY!;5iMyXgS52l6z>>%gRNLSTpk;U3?lb{m?Hch_xTDMxD
zXR<mwO#i710RwA~jEuOJ(w2M=&&d86d7_QFZXBtIW4SYkl^{WDljJupqxDYM)&r63
zPONhxJeJaqh8%)`+X3TwSjERtm$A=%T~=edGMY`)4;>o%W<eGtSz$sVl at a&c?7f at Q
zlh-i<?Y at p`ov~qzC5?PmcnqD=L{iyvc;1!HOpLMQ#Yrx0><kE&R@{XibUBGx8welx
zLE>sGYHJh at 2Yn-%PEuGqgD4nWb=B6rac*$F{_?S`2um`EJ^)n;HA*GhsuOmvk+dvq
z^fddLw?p(uT=ZTLv!X(o2JMp?=^V-F0-i!ooE&dDw(+Q)@vQA$XNZXr>PnpI3UL#n
zq%EJaR>Ug&xvQ^~GW{|#h0mcxn8ySgmAkKbialS3<Atg`j&7ZFS^y<^fOJCSAE>C}
zIpyxpNq~2*z|>O{-)5_8xHSiIZH0h3O*MXHgQ?iHsV4AQS at 3pUc+j|thy at +*&cM{Q
z^=ebu2i9 at S$qLPSwX1me$rZMxhv`5kuEk?_EV__nRyKrprJwR4Nd+rkQ*E-$xMXfW
z|MP&?WtY|0bwJU+Kcf$h!25*0TJv at MqOh2<jXjE5IH=A+o4|NcU<m47M8*j*mDjRD
zzfRXX<j6JikIzjQ-+P=XuP5cnsO0qNSnpso<3b~=b69C)Q>b*Yygee+dvGBCK<FNh
zhCRUWJwtyP!L4S+xh26mYRv(TX(-+lu}#)#QlMAc9bCP=C)Q!5e!mh`{eesU!eO%!
z+=(D93sIIMFBy`VpwMtxa0!-AO~!vqxh7pBrY<=IdwAgl-h0q6nou13);k at M<Y5C*
zuP2mD#@l7NwqU1re`)#o0x#`}B7I!J&<cvF1pj8t1*r0sKt|-j<=7U*x$TjZr6sH5
zg*XgYJdD17c%>kw2Tg&!Ld)>WGL8vT8iNNK|H?s)LLHFhlqZSS|A?3lG6i-7|E{9I
zp2`{G!W}W7N at WeVl%vBg92;tp;wJcK2CJVn`JVJWG$Ti|L2TBv8bR?t;g%79E>%di
zmT3<-I336u{W(kqbzb0=0^I%kN(0(w{fv&53fn!H_E@^c at lNK%BbCTmiC)<h5=p<@
zq$0LB2+7qEO-7*^$V#biEV&dJKk7-+Py++;h-b4sLiJ5akE)9ngiF at ue9lfSz4o)P
zL$e*S00W8L>1W2Iht)F68HRDN8ruK{+k~3hgqrKbxR}dChbmwS>^(DwuPgRUOu>PY
zqF!Qk<psJkos4Qk-#C)E4mc|eR0>MIdLGwD14=aXW>aKtx)zM}sS{$rOcTo2HV7Mq
z2+?#_+qKye?p=Puis+HI7muGvXye&IRbM&k+6cO^Zp<98<o?Pav2}_`CYH5aPiGL?
z?>9_=3)KMaV`${{_pnIu2UyM(S(Kh5w6@}uwg5S1RXOKwco%Pcyoc{;{`|4|<028l
z7IgPqNagR$e1yfmSY|LdP*f3pG*jn(Hp6w~A0UG;oFVCe8iaXDdmZs7K;v&I at fPyA
zYw~V{?&|^x;uVhE7+R2H9X7jsFRYa at YD1FD6ja(%AOjmOOR3Js**LX^zHlN2XA0z1
z#^}pr1Uar%C<h{^zLlG1NdulW-{5Z+|B2HZ2zJy;7ETI)j<nsHapeKAYB{s4TKf)7
zhcyI^!?k9VKVH<Kv{58f=DpM~jCQoYI7T59dXoKdyn at NcykP%TWWE<F&IV1^-S~jz
zZqx!7vYa`D`OBOd2D=)4us#`l18YCv;8iHL1lfu76RA9UpSq+rjZ7YK`nP`Cin(n5
zO0`}h*IqTM4>RH>Uk0<(+FmDNtKw8E(1r$o=~67lD0~bQ+4JbR#Ccl{bz8g1#!+}H
zYv)O|K#2oAX~1*$mi0!kg!d at fQSGkcsGa*m(!bxR$(cshvGW!jiG#qfpTI;tHX$80
zS|y83Qzw2y%0`E+Wkp{|jY<30tj#rZ6RIA`OIzs4skmSaAz8vQVYA}Y at E~UfQ(bwu
z3!^Nl){mT-WQC at r8g>;ooPj0zRjUwC5>-S}wAAr?P;H at fL<iou<y)c}JViiVXrmD!
zQ at C&s;)m!~y=wwIFuF9%!{x%BYw?A=9D77v*d;J)Qpz^r2xqLAu|nD^DuIKNNKjaS
z<}#!O%5Mz?FW?h#CTT^|?v}8nNlnXS$ql<`i&zrgQeEXkju3-04Hh~hr^YnUt6CMP
z3~iNQP at gyHQCvI=h9iC>&&Y<G8MbD`sd!{&?IE#6PmO3%^hk at G^X44O{%oWh>kM>;
zI`3^??a`^6MzwB~t1Os1QHxO{)W2=3kHlY`oUc at y!v|uB&kLSKeMR1TS?6 at Y$hpRv
zV89RqbjAgfnz0Qt7*|>sQZbZ^+Zl>R;1Xeom at Xj(QIhDu+!yIYqHeq?>PdJ#-e$Pg
z-+q#Vo<L*<SfaxZC-IS5K2OcMl}lf!27BE|-+*=ZR~)XBjU5NrY0r_R3!QM6y$Nfd
z_*%s3GKpnUsz`Q3_!TB~<)f&|s@@JUZ7ih_UlK8>&y4DJ5TU|IBj4<`?`gaHEoFsT
z=A^a%{{1 at 8Doxs?Vil8)Ys91G7|o1Tv;HZH at d%YWfU*H-=1B?G{fpKoZm34A8Xn~l
zt}%M>n{N8Y at G!66hMaMu#a$={m}%hxkWseIA!J%jU3qg?xhu7Xr{b7Rkd5-X2HUUG
z468|XAASnjv)h%RBvEW&Y<_!viOUw(s+vq!l|11vPg~WCnux_Br?$ckpU>@xCd<&!
zduyJ7 at e*T<ty)A8Ai8?j?Se3#U0h2Zd!T$lG9(e at n3O1(&sS^B1l9a~3_mso9ziXj
z&9pgpUd902GE3W4Joj_rLG{%}m$H?qI+c}6F$$oppxv+%h3(t*z4&`|FIZD;Z0q#7
zHld+U1p%(RcF@{B;^@O0b$FcL`ixH(Df2kC$*Bjo&5I*?j84a_K$gn0E>w$lZcPJo
zT at FKV?p&!?q`-QL%z~LS%sIqu`Fq3dXqr=2=eMN9P$L{aC6UIRE^NB7?d2oFI^9<L
z5qv)?kDmUWau1u at fVaAarv<YyGqTvyuW$s&p!WUBiUbQDf8FRQDY*S&-M$7=Zs~E}
zWZHWkP$)GoaGyM4pGLE_LrelH%Qq(GlJ#l at -A1eKnr(hHsz&_FBBMWJ7OF at 3qs}t{
zYyHP>bet;Z<hkbkJcbaO-sN$$y*wIf9!3?z=5ZVrruk(_EMo70#JfuD%d`Xy%81_k
z*G};3x9zRJi)EI|>ERzcxhUN^_e#$~`{1*v#+%fBG`V|#;LmE7&9N6Ta!a`6hjfO;
zQ+Xbv?o2dy>u9CZW;?1G4uXcAg7txbPv6)#KcFanU3vUYPa#%EweEctcAAJU#uSQE
zE=X6fXfx1U>E%^YE^u59a*AT{X|(h7B^Dz*>^CgWBdRw2Aw2i2e~i$5=X3PU{a#Wg
zUPI||gZ(1As_O~9an?egZoL>dfaHPGTCQWRsl)cM{={E><?3@~5mai%TeT^&jk-5J
zA(=XzU}y2(WV at sryJo&=0{RA7ErlSkWZl+ehus?fx|M-FY)K$Tpo8Az9fApYsif!L
z>LKROOs6qS<yCZ;UO#_j=>Dz1P=2%-Sc-oGzB}N;1X{BKN3f}Q5*A9c>0U9kBH!ZS
zw#<?Mt!xlVFH;^<!DH4kstafs$V2OmP{h(a3I6jZwB?!Gu3BqZw^!4f9ideYVeJx6
zN<rupWVOK5c>^l#{Ud!43VEBRt3HqqoWM-2{+`TWLW~eZz at eAl5aI6`33+cy`_T#e
zv%`BkPMq8kFMsy!q096wt;0Ia0%$#ok-G_9<;v<%PDTj7Il!r(n#QI^ySfrvUxUe}
z8sJ6$Ys_*Asjlq_Q@;5p#r=Xs+mq~Gce2b+N^=)BI27Dn%1<+N4umhf%yWDF#KkN~
zMyLxKG7kbh^44HfO)aL6(Q&wz$}+|T=;4OmI#vg2m6A?o+$2oL{qhkwK5{dkN@)Zd
zbderZD1=nPDYIWN{V8vBSvGvbfyZ4IH<ve-8wRB$+G-Ui#CTjLEzSe8Gj+vZ#|7to
zrhWX}q%RY_Q?!mbF2uFeO#e30c$`GmNbRmYot>76Xva63=?xomNhw@&SDaFespp(2
zE4b*d2`9Iy*cxs66c}h<cTJUXBBIV<0Dmv~tK5SALR@?3_A!Bvz6Q_BcmIqh+aqi>
z%w$?sla$g?z at _TSrlD$YYW_KLs=z+2V|~W_U+g2%5c-4tCbN^9S(AaPes)*%jWTS$
zhAHF9m>idA1#?>UuZ(&_eSHuObxS>Wn^`$HHoVaP;wGTYp#Q~NZjRt;uzy$mmTi(x
z2qT|XJ*}xU%WHO%QZ~ejum=%9#tT5Qqzmu<2g?|K%5dE=)APiF5`bP&IrmLBf^~y^
z{H)zPd`%9sBz8AA^=XiE=xc at kf_UMaAni%~$KYHjfH2_itzluShE!C85P<synYw;D
zjW87)elf+5W7j=H(j5a2AzCqB=ys=QSI~MkQ3CA2zhPgf<Hx|zY0O<CrfaJO;C#wf
z4d}VLI!7Zg at 5}=g6tySJ)7f}xW;XUH?4hp+wbwPkL|llJ46)(+{}(q3_!Oi+Nk`Ii
zQ7j}}M~Uc0YK3df0YGjbR2rq<$UrK{4ss&!g7XTa>X4)1PD|KCd?SCAAL-l2KYsor
zvdCP-G+j)7xtMYrJDL6y5N1XuHabQQIwnR{CN6GPE^am^8b)SrM#ihWl*s>Mu(da_
ZH1qub4Y{B6?EefPQeyI=)xw6r{{eZSqyzu}

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/apple-touch-icon-144x144.png b/ui/new-ui-samples/apple-touch-icon-144x144.png
new file mode 100644
index 0000000000000000000000000000000000000000..71f3e19ec3dc29ba452fe395b11f2dcebefe9bfb
GIT binary patch
literal 12771
zcmZ`=bxb8NlgHiN7kRiZ?(XiexVt+%<e>|TFYfNTEbeZLySuwP9N%4X$^CIn+h5vd
zI+aXj+D;>s6{V072oS))z>sC6#Z|vB?mr0*<|{vx+-d#-C`%Cq5iqd2Sj0DD=&v%V
zskEvB7?=+g7+7Ek7}(2KRp1dAm^%v?*ohGs7;h>V7_L)hs|x>D1B{8Bl=v5Zg=ew0
zfG>b|lGbqr14G38PXY%^&&2zxgmsfqkbvEUMZjcbOZq2P00zb~BO at -N?zM8>VI8Np
z=zjRj_t=@DTP2K*&_4<d<{61aD+^#8Sutl!Hvi!w<yj%%5N&BPxSQ=X8Sc#e@~g}3
zpWDBF`62Pu_1%T$^@k;trXLH^$!jZ=wqyemg#cA3VGKPmtOW?0nt#B{b>D-&4raEB
zpGCDA$-^&@H7;e9K(5XAL!QHI*9)Frb72ke@@@|!u3AVhHYZ<TJ0c#;p36o6q!uy4
zKX9qQzHZm<*={o+5XtJ7-iw?5jG_3Bdf;o|BjhE71Nb25&SldR(iY~tB?nTiTV#u`
zdlB>ve7OkCTB9baUncMsWC$rJOF98#AjAy^gnuHsf>N#wlg0%~08pUdZ&$k=!MMO0
zH*-877okwRpr6>bV&O0%5z&v^yCU{jyH^7 at Aq7R_L<zm#3&1*&-srbjyK`d24}qKs
zQh~AHpNLNMgdXFB$OuGW{@<R+a}UX<ZL^QbCTqYyVT~mkKwL~QV4s*hoIc1A$pR;J
z-u}=}T-_7?vHp;!5K^E`@J_HX`}~Oxk{f=oH+U!AE~yTXd+2+23Fw<>ia0$yI|?w2
z6y(perOWedMi{Unq6QWUlgcXAS`bs_xb&`tZV2X&m`VqqC>+k8T&w=6+$H6$Qo4hK
z at MCf!UZ7Fj86Y-EvjTBtC1xxy<EdG?As~Hzfu1mppchu+4moy31|juPRL+YIk3oZR
zMArKfp!C%N*;8YIyHiY2O%_=|F>*c3??P!CVJz%et?);l6IZt>wU&mSE2&16HghN$
z`7WW}Nj?<xH&E<PIGNb4L*uPM|JaLm<zXcz*3T+T2LD~8k3tg#WZk+NXWPg?JQ0a0
z=%JZi%V9-^?=Ka6_`p>t)#a;T18 at g`(|&mQi5%p%eaKaR>zj|wwlztr at r$E@@o_w@
zya8Di3YvInEl`1U%G;nDuOIO|<$(KkF+6UL<tmwxFyZLN7*6k*=*mj8Hh5!_H`?C%
zLg#5)rubvW`)e^wiXzn+gGBnlAXelk;B!<MU}AA&Q=#I69_Vi~-*@Byx~FpvL<Vh>
zTl}qaAp=w^b|Un_m4W%f^+d|0>bXBePBhGFK}Z~NKal^m{#|t-b2^9!*`fhzbxFA~
zm8u<dd1k8Rc*i{aLe$nBP^ZU}L9hFX7a~j^kpPR%vR(IR6ctFfz|9Xm{?5iA=#en`
z04{$|Q2JeC7~!p#{Nu{`?h5|yj{V~wl8*;YmTsU0$^_`K)U}i*U0a&*M-5p<7>n-E
zSCsa!@7rj`T;`7~9P#-9*N*sf8xq%5e^D6gWBvh4&HXI(I%23pE_0%-OBqkFpw5y&
zDlQWOE`Ox}_Y)5*whqDot)}#Psee1g1t*(-U~9EWWu3?CelX+ksI2}8H+GBUo%Ui1
z{caEc?u=g*3#3gj7zSUCjou%^TA{)Yr`8T4XSGTv6+=E-a6ZdkFMM2=`Sa-W?;!r_
z at qK`?`ywO`iF4y}y0U*pO-=rNHMm*pyDA at AVQiI=0yI5s7ywO*+*?*=jx`wRM*_k?
z`H*jT9sa;b)Y&|AIUh{*6JeD%NH8FE=T&L9^A_-O187|mMF=OwGwmkm$E(GugJF-t
z#~dz{WPzE3vpGVOAwD|8 at PA<WD3ZC63XuO}$#oq37`Nd|Z828tFI(trBqcfw(9_yz
ze8}^j03M({BUTA#7e?06E>QhcU>zh+Fe?1(m#?Mn%Un!KP6P2JY4RW?I;>gyKO+)z
z!Fts=t|S3Z+!vp(zHeOFfw(ayk@;egq}H;Wc;fb?iZa;~WTi{Og at tl74bIs33cS#N
z&#xv)^8JqBo=qo}y(d?tH(hX5YaUF~F}B9x$&lUGX%<Xc$J4ri5eI7ZfMUf2_S#~C
zVbcVo$3!Xi+#XWd=F!f_S!tj?sh)RS!?m1BmEMVzmPE;+li at 4b%i^YZwr^6QeqaM>
z68G%(nw7HJlT`*ICUZP~5f%qLK~W+VL}R!-)msOFGFA<V--pH at Otq&J>N4OHaq9KB
zt$+r^n!$?jDMY%jMHevjxrVq;l~TqAP#o5f#Qlt+p-LKCnma`qYm=F|!KF`@6nEtl
zfDg$)<nT$hmh(w`(?HEy&lsf*km0*jB9d&zoHRYc;3KgiuZwcisMBWIo+^EjEeqi&
zh1;Nkk(l3I<r!$o5w<)m`v^ugrW#!E8TCl1sC6d;rNdgJKKB|ITGz at zo6_N7YU&Z+
zVT2~|uiTCo^H~R$OLd^iSsyB2_8=6e>&=ub6yXeb<`h27b`9{~^AF-j$!MCLLLVe1
zsEj!?P<S;n8=zm8a_NiOKE at rzD6__^gOmponeThDN58Ml!VZVQmig~M4hx%B70U(c
z!y7+}Z*Cuax9Ge>Sl*^oofQTk(=#6H*eB9a8<=Szd&HvV>+ein{fNz{fu7iZBJacH
zVVY#=OTKIM(FU)AXss207;sd13uo at mGsT0)kec3~sRsJhH0y|*p=?5_LuHClVjK|l
z!Plga=GirKh#tDy<XaukW_#hZUHZ(xUg*eePCNDT#tX^`Wt(ijmc*@@%&?b+&G;nF
zXdWk6rd3fymWMGnKW?*<BtcvvW==XwWaL|^m@(Sy2CG*at|Q3fW|-x?BP?4A!VVSJ
zCghesasMQxZDpA8G7OzaZwE%ZrF|<brz1nb{E*$bH1JK#VKWHrhw0N5R)APgVPL1t
ze#3v5 at JrpUILvN_Gt;l^jI6gm=yXQ%{7zlh5c50EYg=RN7yZ~gD0Z_qfn}p$N15 at 8
zyB)_XXBQaeYOgmfYOnZyF<!XJ#B|b-74P?vVHWU~v)!LoDjS at 6+l->KQz3V9$4_X_
z<jDI$H|>;5fMl-GuX`2g6YGV#zrAyQGYhqp`+@|+fkS~K0L1t_asH?Ox?p#)01Zl?
z%q)7IV;`hWW%o(r6U at Xu;z$%o^u)rI`Mt~0XB#t%bm`hYMnev=X>v3<B3`YHzUvLX
z$==b8ReO7#q at cFU@243#Nk*mpm@;bbr!G)a3yx>lFq$(0FdR#8#Etl>`vKymI>?z4
zsE^}?>D7y9jKOhbLbTsZ5VO)FRDJCasxP7FELIubw%9MkK at B~9cKwp~e|E}~aEph2
zYT}L*NQARbG|>RV9_`yFgP`bE0J;@X?<WQ)uae9 at pmik_)wi}uvT!9y>LSUWL%u|P
zCik5VZnKCJO_m<RA{gvnkv(3qc(D=mOw(Jm%#`R0Zbfm$W9r(M%>(Hdy@~)dM+b0s
z=!DAgxrZ#_WjRFl9PVFa1BqkzF_tZv=-!OZvah)*{GHLa_6VE3Et+w>ouQugX9ozT
zsGI+;m at kl8#Bc+1_$5B50}v-WqckwfcKFzxcXkS%GEctKC4tuC7||$EVKh*+(Sl2Z
z9)CjZ;F&^rx5MH_?D?L5JLabC^TS<N at LxVrSjFE%*?@z(Ni#hzV|)5dVj8?{*Ux0w
zm@<V%pP;JI?D9fXK0R at 5kFc2U#F%NT+DtXkAk(z4d~@2w`f)YB1VXG}vTqpadK0+w
z6&l16Trm-3%EDHHi{NGq5}Wk!V+Y+9`P~1!{YkG(TcpIEI&TDM?vcPMAaP{aDZu(O
zJr%~}TnTR3eUB!?CkPVew-xQ4uh!43tbuZI#g~iCk;oLEPZEcaiG9b!mQ3WYzO`SB
zIZ+*_Wgo(>lFp@)m=1|7aUSB{Mco`Meq0YEF4uFDA7GnQ175EV-|3}#0lC>Nc&WOF
zSuEVZ at Jo#cCF92_hJ_*3kS}YzK}<~BC6?D}Y$8>eS$*S7`6qRQ`8L6XqWp9?1%gYG
zH2H$14K#MO5E6iRR??n8)R=Q_QFp6^-Yu|%V%+ykEkr*`W!q1ri+Q9TkCgKcnj!`5
zFlg-D$daQv-yK=GRgvg4B!a1C<IEmkYP|Pu<T=Nc5Ot=Hs=HZNGs8E|fm>$dqKf2N
znDsySZH~Aj8(FCxZLGc?<OO}Hl8k%j>U7c=lqIfK$puxM{$&x_X?aVZ7z3`%JN|#Z
z1w28e?|U&w2HV`4p!36Qa{Q6&Fq7 at 0t0n@1cxNM`5}{0*!|X^5)Q03g;r5aa*w~)D
z!{bx0HVFGp+F5>(3KEQUcK_Z5#ysL1xR^~TxA+H+c9P8yb0kFYHe^Vap5Zl at j-F&n
zB)yGTS_K at cST!j#6l?aaHDkUaKE}1*GyNNHW7Xv(o2M(p?R49JviEYGX<7?qVp1XU
zig at FT{q48!+uS#V&Wy(@0`cr*+YWn*-iv-l1npj`M9Nwk4HXmz8#AQ17TDsynyzTN
z374qUG;C-PB+6S>w*Os>H at RT&lSBg-c^@YfRn8?W1oS$H at AK$!;<zIIr!1^Y7Z9((
z1Mi!sHv6~ph4{~iX==afvZuf?bI0#d*v**b7HoVwJ^zysI8~YWQMe at 7O?jWkszTKD
zv6&oT@>_h#l{ZOYtR#7a)LbZ>AW09%a|?5B)yQ*zv?2u!*R)phe!R(;v&!BmF93?S
zQQE&b)Jw#UtEnYL8f|!Y-cwU2)Hb1wG9im&P_QLs`|+GKt(4*cVXu*HS?O{1tq0SJ
zvFHV4Sa=;Pr08-eSZL68lA}-HPIn1Jv{>av{CrWe_B(HrjyJ7U35EV1YJ!h47lf0G
z<KBZZb7XmsQLS|Uu`2VemD&utlI%q?*Q7i;ht?;dcT}F`CydhHfPBm4L+-`mDV%w}
z at U*9 at ReYe+sYJ?N1t>>1_xb*Edlf&p>sbcoW2DBUNkMNFkyO;>HX7;U!f_`uYN6 at d
zfSLDSXg?<uA58UBoYJtNESiq~q7Y{3izT_;Z~jpA=HqI-FXE&cYw9pM!$j-?7$u3~
z1Zp at zCkU_YMELh@Qp-1do-9s}OB#p-2d{<z-vhAdaH0OKfLB!30^1Up1V66tH$tDD
zsdXyphR-Micl?sU_Y@}R?px55+W%|-aFi<SGSZhzLsvqd?8g}|zmwK*A)XuivPSY~
z?2`=mXz>2hQF=#iDJ(>dG6vf{e{-<h%C4(O87+$x;uE{?Y{Ppg$<b500V9n&>&TAZ
ze7!8&2;h=4e1RGG5F-N@^4$8R7?f at kHClrG&wY1p^FtFx=)MBLb$+62Q(>i~5!w)>
zJIsCSh+6mbOk1gBI-%t0DY0n9<U~MzY!Pn$=ILN@)Um3S6;?-Ax}zu$a$P#dd{@xa
z8psipdp)+Kedzk>d(85D{rhN#yfhrp<3LQ^;?6wZv?2F3wuSGXhnYvepi~d1i-$_x
zAWDj!*PNH)J<mwOjP`cFPC>5=6>=nC=x2?L at 6AYuM8DGT3O;%aLp+5-a?%FICqg^S
zHi8>cx5>`>pEy`Am|^|?fPTii5jGt_ap0K9vgVVBVa7y(Ua9atx?{LBi=t&C)9{Am
zE8CFS#-_e`GX}}nN!yba^NG(czgn at p#(`Nh>PQBda~;QgM4ljL68e$FX~UxkVS32B
z)gw2Yvbfo2TC-hEX`Vb*djENX(Tw;&D>Y%IfKL#I2RKLkxZu2kR%A;!*N_yfCFJ|-
z(bI#hNAMy_s#cfEm{+V+)@hQL?+}-m+0&#i^}aCeZ&-k=2j-_+zfy-)mQ=!Ak7_y?
zjk9!3(092Jf$s&0KOq!;L<mZVAn at RaFGI+>(n3Pov0iIUTN%%I@$=(!Lcfa^K5pcF
z2$LQ5WLekm%9WPDYYqr9v-5l6<#h7DQwl{c2KZJ;bL^ExT2UL*E$bCDI?g6ZECpoe
zkpNLTk*lGr at liGrCZG8eFSKEgazJFF_X>S~hj6Aa%^e)2m21vO3jf&VZZ2Ak=SpDe
z^M)S$ipv_{iY=&OQ~noZ2;tIiHSDQKD9sCz#3*e~tx62Z2Qflpve+prWym;p_X2*_
znYg1)?|^^=kgcxx9n~c=moi3U at Pe>B`GKL&3%&yLy}!RwobVw$jUDTglp}R6OdnSU
zS_US5g~VzthTTEzq)FJF(1bbr(~o0H3nHy2WMx$<E#QRPpA1U54B=QDvIS at VaDhTR
zE>FL(>4SH#{wWRjY8G~CfFh1L#LWqw$9xCuwEOTU_1TmWPC9km8LOK=Ue$%z$zv`g
zDp|B{+}(<U>jgciA1-MXrq&lD@*CH6I)yvgx~id65m*hYyzHNI#@cg6GH<2~sf-fm
zlI(s3f5d<T+N)dR)B3O(_VV?A3al7oU4g04PD*_{B36E|SpjIo-rr`LvFjEk^B>no
z66`8e{H#(BK-O=-7%CFBW(OO=O2&Tjd6h!mNc@%vv%@ypm;gf0r(Z{JY+EZLCrd_R
zztDna$XtaOA}S>Suvy|60f<#4(}TXocLLIWi`a=~d|WREWh$y)0&aYk&2BeNW(ZsG
z0~YNUdo at MJ@o)8uXWXUroIo?8aqMy7TQ4kxP!ErW<W*3AU at Fm?vD<^tcI+p*|3Q3h
zdRt^OIecN(H at Dd|X2>K$80&V|sL<e{D{qjkd8Kt|;60KIOU4Dj-mVXMUHp2~Fn2sf
z%ulL at m6#ig1Ve?Ty5uaHR8u6w>Xh~^LM<*!oU;SAOfT#0SdJ?0cJxlP=hqM$O3tW`
z6|H25<b18ITrVRZJ<=lM2<4L#fCH(0m$y8&eRNGtYNYsp>!}_>mAG%?N~Y8<pZh7G
z0C6%Hv;Fa>tTZZD5wilit*MSAW)lzi0PEeq!zmyE{-?S8c`H51VmW*v!cYlY=f`jS
zj}OaRBEe%GK58t9VVX)nZ!uZ3f5rZ~Bf(aOCn^hTLiGw>^%<Vg-L7xydO*m*o=*F(
zd3w$%&=T)R3~Er}-sFejQ7>X%DLYwsI}$8e-f%Krgl>r+i(h}fKlnjcs14%!jm#c`
z%wIYP^U%Y(!^7u*PWMb|1FJuCfAip|uo-A!<mkgkiVu&}Ct^_)uHWBpfiHfhYi%WU
zt>c&wVyF(5d-`owonGl@!$b`koF>LKpt3l-0A?)4o1C|trv=ui5ah5yt2Hun6YXJA
zD(U<`%G843IeBui`6bBmZ at j7<Z;1x4umM-F0Zw_iW-W&mLTLv9uf6Cb0mdNyCV(ns
zUSv^ZG~f>)YXLG%%|LK at XRD5iOJ046r<1oNS%z_*n1X>gojeOK*Z&;`Gyz|ins*A`
zlj8#e)NF*MJ*}1^m#G9x2;mjy6se5PK*hHICU(oI+IIXW<r!D+(yNC5<&Eg`piBOy
zzCaF6rbHIVJtLjHFGUAZ7vftxK>fS`z*4PNkSM<oDxAHnd$PDaKKLumzJyi%K6{4p
zSPWOT%!8}=ZWuyBk#*z6DpRB8s3Iy^S_o6e!vMq$csRAHbJOW-CI!W0THg+Ba!<HQ
zWjL?ea|1|<D_^O}DyB^8Om^)>MSEinf9x=Sd|<KtszCa{&--H at XtsxpG1?3vZJszv
z{E2Ka_HOL`%~Nz&l)tgEt-11h+29b2G|~}<&qKx0KMIgv%FkPjVefr8A>J`m)QR8+
zs?M=L0aLmQ<NX0RazRN at myDYM4xphNL!)!g+>Q at 2vBlpTHyP6JyfnZ#@hl3gofE8l
z2w8G>phN_?Cr-c);?r`@L%V}JH#11_pBZq!%=!n9fZ6eK-$s>zSPh#rS`?fnk|t7w
z3^&{5^Fn?7KL!KdJ}xKc)CkzxHbICV5{MFrK0gafXR{Lm$&8tyX4zL1VeG#R5P$Nw
zy6w$O_;nh-J?%@x$nO*Hxb2URj-C-;L)HoA_E(Kc2FZ#sPIj*BY?)PTF21<K%Mhey
zeFK3ATlYpl?OGTTJEf at 3Xzp42f|7A_y)%f-YK9WOS~PNA+o5>5mrXoI24c9Us at Byk
zSYFLVRmOt0^5gk?n7*4xM{W1J^|(r<46lcgwBfLb`PQxqq7^F35W!**tnz!!@$q8N
zkdPBZ+1PgTx*fo~9UNQHSM9VPz7E`piqLCmYMvh_|2^mQI-;vzq9;$jVAe?M*%2V(
z$*P-c&19k`Y{mnWnKtr+-P?<F at 2!wwgyx5$h9`%)m5suMbL6qtGHqFsh^<m<xo>>!
z)vzrcjzJ-lZ;LzwVa(L=p~gmbx-)|v+7W>WOE8zQ<i(jzwDseWdY7j at wkE+Ml}{BW
z<_UkJfh2CWuExrlH~e33n!Mz6Z1(Aiu8V>{$+1jqv7>Yq<TGWT^@+6Jb$Pwj_%p_4
zM;0u|e;3!TBa=Bw=Z7p<2)@tdkDzmMeI2Y2^}TS$C-m+T4=JZ&>Ov$LvH0Pp7Kv8M
zvfFPsC=1n`<k9FND$U_{xrq7;hp)c0XPItcdy}<X4Rh%oY*Lt;8;eQ4Kw?K!qd`Y0
zqua*uT3glNa9~fxpPNmWd^bm5--SED64pyo;L=Q~J<CzL2vRX82oOwPTq>8ju at 4;b
zK<>b3B}1bSW|JoKG)BGmw!9sTAjk+$P|UM8(f3N8w%YI5Kd~<wU2UW_cM29>#3 at E-
zTyd^&^Ci7|3iN4P9jH>rC{jM6QE1NT0IG0!Y%CL%{<vtf4rHHRjFa}ATXY$LEV7}0
zl}c<PG0(NBwOvFyM~=*nVQ at jo(XXMSFH&Y+7Vo25p~+{fy(7n^Gx0Ql(4lC*jWH(B
zh#)3U#w^k5ouaqrC5{}Wa?;1BDqMl71|QX1#MloTN0H&LNfOU?eORAE8b=9_jymk|
zh6j+JbyW9M at twxAGtJPbM_p=IkF5}Ai4`SHGMbZgp`*2VD91LI<fby)rX+VA5smqI
z&=;y$dOCS?JC$rh*qjByj3nnJdT#PWHmrz|1fcjZaFz05>1>npvS!sUt&mPN1icUm
zy^1c)w^r(mN3O=CYa651sUmpyXNlaF-DckgL6vJTpq>$0Y&H at o`ogQr=8(_==qvNg
z->1bQR&Zk*($XiFyE%d;rv^r9HPZhOV~r)>_ at E@ThjE+dYGA#QW6d54>`SDGb2)z7
z%F~sUu8P%nX|<`WsNR{BPIcJob8`t-9@{R%smZk2;R=~*0JYY7RyL_PKBgqn$xoPH
zX8zJHH?C;N7HalUfry?{6MQOmesHK5x at mLJd2KMKW;zY4h=8|beU`^WN*=%gezrj4
zq at Nc2=|4s9*{2%IIV$V=`)@D;MIt`?4n^PEtO*@w!ngAmhBVZM+dIo;i!0lGdB~te
zGxpfi#=N$?;H)swG$4Vtho^6s`Je06(){{bBM43gO&9gCjbtqw8Q4L8w80#Zc7k4T
z-vO8*#{qJ4Y3|PxS_9s0I&@oX7r};G?DDDwuxQNk?;=`e)5&dEZFqQ-u9He8zju*^
zRtw4p%~5wRwA#qa&1;y1nyR!VSmAq*2HHx6WF00}5U*yn!92sF+FJr?BFZZPQHEro
zeA=p__uoeBBnffYy<Gk-$x=Bv>(b60qiAY9NS6}j8K%SJA0|3KZ`S0V%ttH)sWg0H
zH}W&P0*1 at s6RE;bySx!mg=&+0H1Y{fHOz}{SyZLr{HEtUegasPUXGS=0-oPx3<Nsj
z^Sm_3VDMYf@!PW%`NWi*_FgVz?TVPCHB9egNg%w#%f%ER6K*|4+6%kq4tf$deI`--
zkF&>rUO!3aCVk|^goyXT(t0{u)rN+IeB&1y&+)s2L##s9 at E|jDh<~<oAJGR>-HgHS
zLbVgv6ZMTgP;CCjuB8=S_OJ)f6V8jvhNmwbtl&X*FK{TZNh!tY89o2B9(%Dz+=Lpo
zuxQ2|Ik8b-PUTKLB)^lK3neE?j(xLslk<&laFgFZ%7kM4zCCqP@%HFi$lT?6S);=s
z0mkBVH9pTTZ!(n{kcjP;@UN9eRPbX$YDavg8G;c(y at KURvssudYz!g#@=MMxh1!2L
zZRk<NMsE at ED6ZS?7=n&q?l~RAE90b-%F9 at rte$oqNe)gYGY9Rt!zUsnTj7;@OsPL8
zX3yu(Q)~O0zD$*GHesZT=BvQo57tn<l#<p15|?lb=yYslni(%di#yO#<SGAQ>(au(
zt?`&ssIKRN*YzI8Z_D~pt+7F8<AC#<4l_3(I!66gCFohRhrT4^Y)#K{Q5*R-j8>tM
zx3E}pcKoLIAD7Cto&B0TIWBFnwQ6A}vVFGrp#h3N31*gC at tGV3@3$QVB?v*Q?H+uy
zBZIRTCH=ooz2=y3MkarI$N6lC(rjGr>~J89D2?S=^5rlhj-xhz8bupLlQksQBSL>k
z;ve(o(U|e1=)_oT<!d6xkHpz?NF=QqQ#E%k7xaCyV-^c9)Rk<Jl$hYL9f$B{j$S!#
zB4z0{m_lLV<vYaGtWPL5CrsRmI#&rO45L%&uX)a;{ut)|K2POIu*&U at +8<JQ?otwl
zU0GMiiAKW;Z;6Y5LZn-0z<Nehq1u5k?q<k^#=QVcFFW&YXUDHumtQw%zY0<3GUZ$c
z74})Nq7IN3T~cEmGkDr-PZ7*LkS_Wmwe2plMz2>E3(sPs!$IUxOVX`%Rw!-@)MQUs
znXi=1sc<G at qDP@ev1*%2SCX;f*fK<fm|Bcn*Hhdwn8(-`XoL}r5SA<*KyNi{4bNcy
zYt<SaC&JdXto(yYk6YtI{x#`Y{nTkLGRQ at WV>lC7(q*I(oYD)?u*(6vXBLm4zNKqV
z@?)Bcstb1w-(tn_ec*9~&c{JKG>QU3GeMcU41f|nxFKu~Zowz&9`6)QEf=HpcJJ>9
z5HrJUt*xmi{E~Rr-d76GFPKZuy3LzJ;5NLy`3~9c1ixZ^_+6}Pym7QcPZghw at yohj
zQ-y1d1Xly+3k38TF?CceV9Vtiu$L#Vddx4iF%DE5?nRX(xpUzYzzf(%gPV>W0#-aR
z`T(*Ahz4mt_KvkCzVod26ZA<_6s4zg6^gs0yH?%<*gnuW!7Xv63kOp>qWkqku`yYH
z5)03$6n+m==ah<=Yd$-v(n=Bri@^4XDr)yuieASIE2`W&%S>oPdt)*0v~NigXHSl}
zV|C{gf6Max$G&<dB-n?^tW@{8#9(<)Kf%*3dLSBBz)|C9g1xfibPM~hHAO}>xK5U8
z)=tsEeE6X$W`@K5^}OB1glab;*uL{weF9NRfDO?&G?^e+p*xaXQUzWgf!N-~K7N*b
zku%g{Pf%<?MaIaE#(Y*-w!orH1L<44D<5i?Iaku&y{#M9I{T*3ZI^4MSBNafK(SGj
zQ^7NhWBL1HVR68_SxuR<adfSzYm&WV#Z?R+;={Lz=V?Uz8Y0gx6O64s*LX86$R}Ja
zTrCz-9jYK%93x6a9qN+!R$)k(!?-=c>D?=s&oid8dIVD0>d1gmlJ~?AO7R8{@uSb~
zyKnUyASHsMPB9vNFidsBUurbCX+AaGRbJ7%*aA^e9yc at d`X8eg&W~hG2U_-l6 at nyn
z{L((@zVCtwEP^KZ4gftaRnymEUW({>EzrC7U_PJ1*rZXvQPlBLe9MGWrB|ZD$iO?t
zB7$vad);8I`&_L%R<7(tP+k_UGWWo<GN&X|rEoeNwr!~<(g at +-lS`m~CM8#B*%E0e
zK$^TJX7+=2<-=5c{3<Eu==;>;y|WFnb;n~G7meHmWC at S!Ga$_{*CIhW+vz8rLO^8M
z4v&XA$<f%8!RBD!DOi<BSlI)jh+hQhAnBmEy9Mn(em0`B)hAB4zZ0ywMEh>9V1wz^
zF9}Q$Xp{Nbq_ at BP@Hb&V3#^$IL^?iEK~#e<kgXJcaEw$@+UY*&lmV^GrfZ~Ayn`mr
zk$rNpFac at trGq|@^JKGZreX5MHE$s)piaVRLT)as{iz);YiAr=g+mq-K9CLEc{ak2
zJs<C+gBmPCs2?TV8C}Ei3k625b_p;ysj3jmih^<dHZ7e>_T5}?e^FGdey5~#4g`@<
z%0Oo%_E=)dQV(IJ)h4Y4rXxex=Z3hnzq3o#OLZRrWH6A9R3Ym0LPHt0%^UO<uug-7
zzn;;uXVXfKvBXR9i~-o3)S`aG1N203zNP85Z04>50A|iE(cfxIb4GT<TkKR=4!D at e
zM~e5DsHs!vxu{3<ApR at avFmj<`)qw0?sV at 10izH}i6zwryBa))a)JwD`Ia(r^%rR>
zX#ekqPKEnkn+FJxDN_rs9K&z?%$%QyC6V7K7ECM8F{Dkj06rBtU~u_Cch+>TlDXc8
z&nM~`pKg@{dBvva64AMwIPID}dt?En#-Ukk_^8N*KsU9~&d7bb$@OxUH1Cf$uipw~
z+kP2Zi{g$A!wn;O2aDci_Z;ok@!Eu(B;v3p-fnWSGBmw;K}mEYbThg&&@ZC7vn_{0
zik#195jeAo at c_4|_yqoikc}g9Zjkqua2`?mgcq=Ei)*l=-H|4*F>J=_`{UcIsY14n
z+gof~#auOcuxnTU7b7o+>v}Vb<bIfW^U9E9`K%3!^<=KPeBAQ5 at 8Y9`fK*;BngIXy
z5yLE-I#MGWs*rX2v*R>48+hoNXt&jf*SOpVwvxBgvM9<eQ(NJDy(CD+Awvaopdaty
zMo)+@?C%P!8;yfszuVW|2qw9@<SmM2FoG52*IHDI9i?Mm5NLbXTj8_mGD=5}I66=c
z`_eInX at R~}yN-%YI&o7M832qS+4gU!6s5GTMQyKbRpGx;1lclnq5Qo`jjssKD8{fS
zc=y}npaZy4ZqGzTesHu~x`sxKCUIY3m+;sNO&-7L7&!Q4{C=M0t`|?xw!^R|u}yXt
zpwpFNpl`%@j9DD#c4uo$R$J~#$2bx{cz!G6RO<x9g8qi{7l(_hyjTIkX%WjSOo%f*
zMspar6={K`7A=C<<yth+Si at L~SlKy^0-Iy}LJq#g#7~ji)#=+kc_E|bnS<67`FsO<
zf+JDB5wioX^0<?;I}8al5y%{W?J>0USe at upUKlDq^<uPol+C;Ka3L!Ey3^66K|=@M
zQU2;_=_g^(#0yi2B}$4zq`8WpVyV=USY+O`G#)Om-6CT5bzqN8h~u${N at zCyo4`sp
zNOK>hZ#fjccy`VsQq at Ltl9A5CbMJ)>$MDeG36mONOHp$1x>kv4B(YrRh-{K89Y;Gg
z{h9yo8a^#d_2BhRo1eahvfS%l-7QgNxlMESiJ%f6ly2bdk!Q4FODaceE}u#YsHT&p
zojE4Ol<*w#NYp-2Vl^1nul<F>LA<H$vSt(_5K+5|P at q|gpf15%(I}dCp4g~m(c!}X
z*gkV3 at 3YU{i%<VFCrmJC0fsR7uF=OwFhW`Nfi<)@qxNR^f|zOb31yi9us&*Czh=_y
zH9oTQP1qRFoNRNai!K}T73om@%^0;rxL`wI7|cO2b^On at nRwKd{E(aXK4#RWCWM!>
zE+9B at FG2Ml(I#kCC29u3;GY0<Bfk(0KSznWdKoRdxHKi!k5K^zo}&FE`8>uctRBjs
zGRcAl(_namB>RP{>2%{U%Gx2 at 9y!E-$yv*f$mJc4sCkl|N^T^)g1T3CJ at 4tUoIf)%
zmA!k|mr%go)RwF{buEGFis-NL0P`}(`8zAiH_J8`)h3tZN{scJl+>TKm8Y2^ki4*?
zkU3_gTcZPU(Qw#3>O3M78-AHgSNwU<80s>Cj<A_qt^TW~p}G~Uv2CAX#7#e1 at hkSG
zfbEmHe!w^ZFj${Znq=S3;T)@{$M91}=ef(S0jqtY9D{xuenVu3(5`H4yx}^c2E|q~
zS5yoxS2tM+(ikX%fcy|cKcM1`Dc&HtDlBoWLWh5}h6`QUkKs$Dy<Qd;B)jje^*|b5
zJ2U%KH6*zRZXAWcZ?wHFyOhxJL*5+L+vCEO;Rt<3R!boX at I77}k2j$KV2`hls+E^0
z)~Sm*3w^vxET76}oqFAn-s@^I4yTS at DpRXJB~9{m`#W7-w?+$?Tfd|sbHE!m?hZGZ
zGv1+i?(NSYEs|%*S5J03UFTg^$)NX9uBok4PwIdX)UTJ<>+P&B&N%4qP2oO8iBoUI
zD5)slIgBT9tvN(2z-Z@>j0IQ2?G!dYmn$j7jQVCo?uS`6rzOy63;NmvX*xR at XdTiO
zrXoK~IY`?j^FZ3eHZ2SpU>3}3iB>}Yd~$L}HLrqMQN@?xZq~A{VWP8}Ze)7K-dl2-
z%tv40iBFepdQQ!g{EjAbJ25JoT*i<bU(!S->qw>%|3}`4M(vPqW at r~-$;Q!yec83=
z#Q4A2df7C0+SH}1aktWqRbrtEY!1%|MiwT-Y!ekJFJIP|Foq{;RPt&#G{}+0FD6JG
zvlnaN%HHZzUzMeAug}Z<YH4_5_|kGC<92%Ko-(sKI{2D)VTmN?KOVBrWu-K(3{1Dx
z2e6ISNp;ITr)%GxNgn>Q)EvD6eYA#x^9PBDHZW2Qb&k9PbB26|Di}$7WYQESbDa$K
z)l+0Ynl~|FXf2t`1;uyTY=#y at un&#e;JQ at UfR)BAa|e;G1IEScw|EuA4HA0kDc|-R
z#%?bN@&TGn?#WUeTkWw>7?BW?{}ica__Q>>9sQu#HYpmeA-^D$Y4HT?SE$*~J=08r
z18XDf^sMo~D at 1k@k at e)gok3QVZjuI#Rt%P<1?13-pUT?Bqsd)LEPox*p2oxWDLDG3
z%tNHoKakQUNIi=7bS~!gsKEFjO5W)DuaiP$JGQcVcm}W|@5StDx<a?zhJMH|59GqL
zz(!RLEDzF!Dd}nLhK2^=>Z0__rY+ZM;kJVlM%i&p4>!Uz6a~-_Y=t>YOP{k2nkKg1
zdZl%hNpWBpUhu2Zc+vw~ZM-bU^)w-LOKty#Jp9F`fy~KrO;URBVoqkp-9a34m#kUe
z?dI!Sxa0Jg|3(@wSBmI%&XNKq6==L5i~xVNFrBD$X>%1`!{qY!JUI6%@Ve*fUWEWZ
zdc($q?CeQThDcX7eWsvlEZS<e0JUu_>w?|7G>O0R%7Fe&%e{}WtmTZKBEqq}Go$>>
z at 9wq|PR0tgsUwV}sP(3O+UWth8A7j`eW`Z?^vIT3iFyo4B=hAvOKj`D5Q#3>+8{g7
zZHdC{>{Qp?hV}~YTx&&$uY+ at OBv{;j6VD>he~c#Wvj!m$BWv=T4%Hphfg`9P_ar>7
z7y7d^ZWOFM?<wi7Q5P2(<^zHJnWkzKW4UO0ZS}Jd5POg8K;R{`TJaeEVS5T0j=9CN
zm7*=?X)zD?ZT-h?m}IXdbq4U!E<-JCNTMrFJ3{=22)UH9J14<3asC~eoY}MeG5nO#
zH9OQpp>gQ_HTYOeg|=>~1(%9(NU?3`w!1=IGw at QSE`NU|cemnZTIY!G<d>6z-sr?i
z at EPG#(XYjyUr)nVdJy~yG$CEZR2^WR$dqTxT*I#xbU at 4U@!xDbLu}@>kKBu5`Km8)
zWZgexX^vH_J5YM97^D`-InW0yYin$tLR<GgTK9|Tm9-B0r2k~7w1p3xnO#M%Nb6xn
zn3>3Q8T46(_S5<aQi9s+?J73LiThC5;_P(BXj}0RwvM4vp^5`Lu~u!hx3f$&HuzPy
zrDw1E?FL<Mp~I7jN?eqFqX{s#??gj++R?`6L(yp+k%@_y5f}>_k#n4tYd>frJ67X+
zXfc>-R_h45k4OFK at L{H26(aLQv~uLRA_+hIgI!cjs<3QMs~Nwk+7jF*^?{x->-V0T
zjcAOJ%3z-xd>0{18HTa_kQb5xi;0uvQn;UL#}m^){M&xAOfT(GmT(v at h?Z4!9!>)?
zSaT^6PM1C`Vy>2w)lM#?sw~eTM7+8qhSOwOBOq?Ks)T38A0R$1$7tI+0{w$YkSF{u
z!bVPSv~gv9jqQb&s at yY^nys{kTlz0325b|2WBn3c1g<<5&^v6 at n-vV-LMO+xhuNTR
z?Q8Wq)gs8zlU<G`t&W{%9F(_FGbRux at 3cBKq;q4*twtmaoGh;xg8EV1yVFM+kr)Eg
z21Bwnv8}|S+2Spb01IImBh4`LLVEQrQ1?Zkd=aw!fXH63ryen29KY#X)TQ{Axdcr?
zqVPs2rLV@|lG-bnFRb9OQ>$r5!XfFE5=d%HdC;^wCD6|<5!hmaC$p>*K+nO}+f&5+
zU58&(giUhEG*ix}eT%ipyV8Y?Yf)%0=Hy-7KA`cq5+b`hX()I1Q#CL=Pzdrxi|xT3
zw&>V`d&56ntKO0I(6H$IV7LL=t5Ur*6&&UaYIPQNS>KylY{Wx8r;)Y>BRp^uj3gdU
zjRD>a6o4N4A$4pZrL2Kq at 7(AeGAkFZZKbsRH#ZrnuBG!=1jvs)VY;)#q7nlCig|aN
z7m7{@z=8sVc}nt+b%Q*`_#YSV$Fi!zH>|5Jh}Tzv8RSa7GioQ(^2d?toQgK~C$g*8
z?rHy6FUV6EDfrAMGKSqz7x=l`U(67nnOhVq-GqcvaC%SV4AiKZrXx(|9+*IsCrha5
zhH2I3XjsaB??Mz#BKt(%s)zTg5(O(@j*$MSPjIJ&`O7fXJP2E3-Cg8QzU`URBNssq
z6WN+3yWNhM3!hxI(^EV52(ay<SFj)G(?-dNW>(dsN+c19V2_YpFu=s<+M!cqSa_0y
zNpK~w&`R=##{>w*cxmh{!L9f1HaKwt*qJfEP2@^^AN%D at QezYhhyp`ce<-sGGR26o
z^dsp)Ix=Xp|NR#5i(|BYqq{seWE at ip?wD^99Rr?vch^+-RrROZ&L^yHH<XERI1$a)
zhX+bG32iqsV>feNQy23u0Q=6u%E8FO#mLH{&dS5f&cn;WO3(70mxbjbH#zeE5ZF7K
aSzCDj{{%VjOq^c?U@{Vl;?<%?LH`A(w0495

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/apple-touch-icon-152x152.png b/ui/new-ui-samples/apple-touch-icon-152x152.png
new file mode 100644
index 0000000000000000000000000000000000000000..fc4ffe25d1e6bb1da5c91cad03ff70c6e608d1bc
GIT binary patch
literal 13861
zcmZ`=V{|3K63)iX#`aCJvAwZv>joR!<|ezb?Tu~c#<p$S=F9u}e!MwT^PTQK)ivGI
zJyTP4zEDMZ2_$$tcrY+9Bq>Qz<u6S6ufRfoU2%FyNWTEmOh`@$46G&^;mr{0t4v}n
zsVoNu=1B<#=KmWE?B%P<{|F4sg$WGo1PBJk^VI>ieMYO&&#wk(BN++NFZ?>5McVwn
z0M1 at g%Lxn&0sX)74J<7K=c^LNSxQa}W)lV;otZUpOe7Bsj2%NtR7ll*<s4*Due<27
z`Mi3#rqi1a^AizL5G<o#2*4h*08B+=SBwCR){^(Dl$QfsJ-N#SoX;-2?*_{OwpADM
zYp!T+JT}~+CNi$p%W2eM7-Gs9REhv0G?D|Dc8}ui4JTJWu0!?pKiA(N^}qGJI$>G~
z&X=h?eq3(6o+)uD6w?SIEkRm;s|3G*w1sMf;PqGP%DQwbH<sJ-#|08s6T73jLvukA
zKu3Ygp>kIV_)cVp^_{?Mz^y^7A*_MPf?2$!JM#N^5%L8m+2YzGx??^OU6EY<tah#x
z)wyqzK|8hGitobq&jj()oNA(<L3JQ{L%3%+#h90QY5*2px7_?+{ZGMWPYpm(?7=V(
zV4IL1^woas0N!0*vKr;Bysl12{;pOzmxA7J(O{qOPYf}cq2@*J$&!^cSCg=DR<x(C
z^E}`fT#_*+evtL at 616HF+AMpYP*<G;gQuE<p_<?y>{qWDrV#dVgqXwg5+sYCJv=Q7
z4xV at DTsMsV9YdLznnKl2A&^f+ki+b2rv}wgGDN+Qm2WB}+_5Hvsp>C(6u>{fEiIfT
zX0u`_iXqs^zXg-|YjF}YvLJ(XO4<KXEFMLNYb1O^yUNwCdeF_$zrMvi=S()|Yx=uc
zb at b2wnhD<ZPp<1L)A0gNp at 7iBuxriL_baOeT^w*iM>T&xh&PVpP+DQoj_GQ>z9#S)
zrtV1tLkZnC$x{`B5xIdoKkF`p<{l+dsq+^Ouj=vrjUV2&zaPpQ!xUC5CS)7Tld<s9
zVcZ|PJvM_hv*X;|dLq4nJvbwk2)XaH{{MEaxm2CnP2I<H3h(^fGrGN+6qi at 9?+<wx
zNc5q65!@9;dBn9Mw{ko0h6`fkI8yw!zK3t}g$Qg(#^L3|ZF?#y9{=z|og!l^4K%Q3
zeRP8vF2sxY=s_;!g;|txHFSUokclp_tXmS>fb;HHq~*n*qm9%s<$lQa>zT{G$h}_?
zW;zJMMDZ6*OEkU+1nz)vf*OA!L=zYuoW7bXaCpAg$zO|L-V at 2!oOjAzd4Ly5!fw2H
z`Rjr7=Tmd!wR|7A20!jF at f74p8AwYW4Evy8B!%d|G5<Apj|iO^BNs=#$2q+^k9hur
z5^H;Db{EgfG|$e$3xcUK&&orPIeH^&UGm?jtY<MdGv^KZDKQIKqLxz?g?LBW3z0HS
zny(IJ)umgzy`={!&zA|74oA(IOgBd>qd;hU6RrR6dInLPW~n}e9aA(8dH86A8vgS)
zju5J<5Xk?BCHU}7|1T_Je%Vjn!4f?uR6Sp<C<gYcS*NGP$2>bip=h~XvxDhnF-=|J
zbge($#sA#rU at f6$AkWK4^MX=Bna2tp;xct=7WE==@x at N&Wn!%#!9Uqa0SNjtjf*#R
zDzYD&jI-VjM6~SI%Kd3H3#v?UWJbO8afpB?L&)zCKgcNYOu|ZyB6?Hc#}^OGJ6I%K
zUP<EgyW;c1Cg^t_iMv5pco)O#M*(?H$K0Bl;_XFwQ;|Xua2-783)J8n=7v0hKR&t)
zGf>%ThJeJTMiC~9^ZAz at xL)h>X9EtB47e~|NL at +4V?ueRPv<j`$Fs*A&ji|qPlLtK
zR0b*4A}WA3cz{#@tdxW!CYA;Xu2KwjSa&gG9+;R<6estIV;bWm^VNqOpm!dj*3{1%
z`g4x9`A=5Q`;*w+6CxX{C?<KVY@;(H_zH;Ydk`Lz_!U|~ia(xMFMA*Z+jOu<{Uaf%
z*N(^8L`A;ay8KI)PK}05D+a+RdY2kpH;#-KC{2Zww|#8R&m-tS<u<>NF^;x>1=1LP
zI1$J+9T81cY;po4Ns{_IyJUxXhlykG5O<vO;Cl4J24=w70{5}^@XEjs$H$tJhy4#G
z9F-0vDt>`ENkTDFAI;{!^<p$@I%9}#Hfc`w9J0(NnlRI_j at syj^glz{-m!OPn<D!@
zZe${SNaRIbnQ)|kIu4x$P;IG=U#wm=y^nC<*yHk}8q^}Bm??!K#3F=D3IZ4{zf<H7
zidBjE_dP->hiM`Ty|e at qjK6tQsjcFE>~mfld?5e4LOeK<RrR at URXaMfWG}TOHrBN4
z8jSpl)n<sU+NL?Tl*3UW6d!03P)}HknV}Z#w at b3T$M*8#JEO1}wBFdFVT<$4Rt|PM
zS0)U2k`N4o!uqITXSk9CC^3|a>{CTWkMNX+XZ|kpuQU9p_3uYDy4y?taMBO89i7Qh
zikz_QtX`j2r8}9;zBBGX3$H!^GZxi))!fV at c64}nj{PQefIFo$SEwkf6p1DPZvnCa
zcet>SBz4dVX`FQpopHO!wB+NYsJgB3KF|c*S^;)mAQ_`u`xPtY`Id7USHb8MC*CM;
zPZ&}9&NFco18f?tM70O*x9!AV%cTMj?8{!Q#Hhzlf-Sy_`}aMA53CmrfvyQQCIF5O
zM{R>sJ_4l$sh&-ZJklfoQiKu4z2W!_svJg=FB3!`bS-X>Hbf(BzbKz2BLAd)6>-iz
z_GaP3X?C}@mJ_RvKOtOh{aIXq-QJkbF1>aYJ+J_8{ku>B6sAfN+xBlMAr at j0QP@Ce
zqY}u at c=vYCxnEq#!RT8oKch~Pa-D92xD`I$XzM at std1VD`#1<B!4u-RRH=VD2>JAz
zNhc_RQJzumR>n&5Q>&U^v=)^P!Bej>iZLx?rGtllLsTJvp7VGs^BN}djT<rJM|(4~
z3ZMQhLsz}-ZjlyzNgP6nlMd-6W33omDt1;>=C*@bsgEks{F2w9q;TaGD$&0^zpWSI
zWOLIVI;rh$qta&hoi(Q1Hee!N;F+vK;H~OO!l26po)W1C^-pmn)4R8Bo^*n$ks#D{
z7 at k-=95w_;W!uxgA9^y;ZD>`_w8BQANGB?6lAd|yaXIH$&rVf9yUy6X0jq@<=M^=g
z`Gx?Up_I=J(%Sb(5|Auf#8dGu{PLU<Zf2e45IlG;yhMRJ#vim{Oo)vZtKC~lj}5 at G
zZh`M9tg>Ez?p4;?a<aucvBB3Shw7sy<G@*j#IHV;nr&`>`i$bb-R67}UWdxlSL>~u
zfrcPCV><58FLt);e%X=M{uWT|356QOjAcjX>5cq2!hbelBk5vOC&@q^$nL68_qIz7
zs7nDL at peR=<_aFlx&*BR>p=u)_R+yRCLmUE%d at tla2{%J7vhRsE=%99Y^&}6ZCTtT
zdv!Ay5V%Gg2oUvRilK%9pjC*{z*En at zoM;U6v8 at KtfB5QTXy5C^6jwyd<fHw%<?7P
z6JFk+Bg9jht=WVOVu!0t?CmxtC2%P~8>9b4_i=@@9H2fZVi$34Dw%+6bXYKP!AOI4
z`7L^pV4k4Jrrqw3*LaWd=D at y9hTXK^AS8MAk`Rld>uMiyI_2kXXW!?Mhb%JCNV4dO
zkxpI);asx1mKmBbJM-m-1y5hCdtNtGo*w23X%eSU7==<nmgz3-f-@)pt>EMhZN<9c
z+4driRMTpbAhM{CIki9kIPA$t!)Usp8 at Qijz+T!zFpqf1n$bAygMO*Qwb|3+>Ybsq
z&ONkrSXt!zKBV<H)w%}wyxbh{J7ty~b?H&qKJ`gR{Z*P7=(sX|^Bs~LS}mwps6X&l
zC=eH)#UW2s#qN8N5dDg<+Dj$m*V+k5tc0D;sYlq<Zj0ndv+~tvgbRFb%)4GAc<$h!
z4887;>qIz`4nVHY!&Cb=j(J|5gPezVCzoLr_lmXAVBaC<;w6CI>CM_pyyp7wly|#_
z!WaCy5;P>t8l#V?K%$V4$`x9w74A1}o-CmeEGbnA=}0Xkho!vK*J<7^)=oA6EEkJ}
z?s<-LFtDbLgxuwK%RKC!$8K80`->Gdzf$z6iv~Fw&8g*U32%{J?Sz4k>}{AQsU-%j
z-j8I&CgSZbb_=w7c1_TX)vXM at mHTOP!WmU}oor`%m$wK!G5dVB-4wd1;sdiIytryB
z$MLz&4vG9-h;_nVoG&>u{;6>|?TT;Hn46k=qQv}z<D)>3ao6TB)qDvnyk;7iR+YHB
z?GiEr>hNFF=AXfnJPE*v`em>7iPc46GaKx}Mw94+CHZ&Sm-bdt64(!h$OEUJhT6sd
zgoU8)mul*C!`C<=rt2dK<#3-<%Wyx>BJVn#z*Tr(6&Cj?m)(dc{N6ldvjQ-PGM_52
ziszZq#hF$)$<XtLmSA0t5OMKDUrr^{{2$F}dl~6=ip;JD3#W&v-!?>^AmRg@`E|KU
zg(^!H<M8I2eX4`o8qt;DadAY|aOaAewrgk^zTKyE&?uKxJhz;4cYCv%Js<BLWk5TM
zl{A1maAK{Ypecx|hVEVS_qJ_?TyaReVn_u$yZdkJh~qX}v5L6ak>XZVRoaBpTu|9f
zeJu1oE#t-jVpec)ipe$X$UwW$W8;fPuDZd?9dNk#;^k0Q#xIf7Hj+k3r6|e+jC9)%
zM17#f<g;lr2ZhT4!t{Wj2-s;af($j?9OO8!;yzq9N>I{<mnATEN;;5zA_u{b$Q2Yz
zp-RnY6e$KH7NB-mZc at e*QAeq5OFHY&;xM-85brfY%aG$BX9?nlbPgquZ;FXbq)EH<
zFBJjTW=HvLlFnw?+ctsx`<pTxmtxejK6iUf-zz=9Wee0YPXI2#U*w5-=d|OOdK*7t
z*I8)yNgGxEmw+vU*Hf4wA`d))CLFh9=scop=sYac$N{0H at BS!la`#(KbBV_Bc%`N7
zA_J66oM(bBm27Z at Q!AZ+d1n})Dtk+E(v#uMtDC0KTD12%#4gg at Su8JcjE=G@?mF$r
z6VKmMJOcp-<-C0=RWic{8zQ%_0zLHfJyYM0*DwEhZvK(<dsrVjnhJK%3==e}(V=8Y
z=ZsnNMIW#7Ngwcg#a|1^OF8QKj)W%HH)tIz$YB51t+=VUj+umk5bod_7(8;XVO-VL
zN>$Wc1gWB?Z8x?Xb(m=%Ln8E&uAC<tsUH0jm5Djj5K(1<xZW07W6+wkB1fLGvKsAu
ztQ at q^D^S>Qh!l68Uh?^_p!E41ZCJH|rVEArjVuskN$z9tMquh3^X&Kd8B3fd+Glj_
zPWO+0!Kal3X+H3vSlga?wWoaTX-RLj*!S!`WjdFguL;VNw!1x!*g{x_clA+OHMz&1
z+8UAGlE4T5Fpa4=;(g{m!taA;Ch{JkvE2IdTT<uy_lJ`T#E*q4rOwaZA;HZw0yNyC
zyocrJ-MWltfftpv=@MZ6ZfulJFXXTqfZB6bDVnsOr&tab|KFzuzue0N{-Viwk+1^X
zK|1$^W{A1{PpoC|eObmxj*!yc*j-TXGY5+i&g;At?rXnQbuTu<TW$r%IWd2L9S82q
zp+WvfYIKFioBYe^ozI7_NpW`Y=Nsltc6)%S$CyX>1wOIk(>zq{JOy?!`_ec*&da%<
z<UKm^kwup8mqjerw}`yc3ImJ1GD|ApxkK^fRVCCr(~S%-BUcL;+oZ#6-QDNT`<>6p
z20N9;x8t(e$JFS!4R<6NgICH5V!luTdyGwUF#`>vvFalf6;w$y6O+FynN2KLWu1ci
z>rKKdIu!Fxa09i`m7(a;6FjcTB0gik?QOjKne8tr#RZyf1LF|{X)s^-U*W#|`}~fF
zwn|J%v>6>+;8Sbn9^+;1{oL(d)p`H9!0+ at l@pL&sQYj{UajD96se3**#n&w_X7pW<
zp4T<H=kxx`jk$<1yD_R)L{f4{#NTSGh)USu;&uM9BW%|=+g5uH4cs`&d`^SK(O$=!
zv{K9&URz4guBo%_H%<=%PS$V^yzZ)`!lh}$v&J%}UJ&zv!k;YsXD*&SntTna?9syl
zy1!VaDm_<bO)8*^k at Ik>-XK745XcQ!i3XyF;XrHM?ps${ye(k1Utec#1sHGjrXTx#
z4meF_8%Rt}sRX9Zk<4rI%~HQpsT=UNM<c5(0 at js`kI+}EA(Bnt4teB*vZS?3C?q?N
z^TlM88VGh>^;t9Qc4 at gqh&RN~L$+ngKP(8%MC>S*fMK|D(!4`Iy7Py?ha5c8Pbx{F
z{ai<(u4k%@ZKhQMmpud5W1OW=+lGVjKo7_?BVDf?f5aV5o6n|n$PIp*IAN9u7I6tn
zmw5A2WgZ!CRgR~)te)12D!@@f&t$%*IMg}90<BL1e%!l7D7QU~xX9>U9JN4}ogGOu
zE>+&0aD)q%hP==l1F(lnTBE|FvtCcffYP4EnGXn~TSm&czt2LQ%f-)ElqTF(P83iu
zyb;Eey4bs$l*V~m9*tzp^?;?o6G at h-^RrpwyDXrZ$o&K9%BEJ}ag3#M at sP7q<_Wt-
zvBPCr^Dg7A*+b4V_)3=es!GgwkOA49y8T}@fLyFJ`}Z=IKvhoCL?p%aK-J2S6Lo;r
ztFuKjBy0%maV7tm3+4@#c4nMkgwbFb0G$t+>k;<iX|z7;3F7Tc-(Dt%o<yP?rYv_+
z8V^bhJ`J8Saf+u)d#+H at 1tQHh=!GHwLq7jgzSu_SY$dkh5fUOUlxDsyWGG7 at jKjxS
z0rt4?17Vf(o+S`>L+t)yGq^p#z#GBsjQj0w^r#1aD_QZ9S^I=Rw8T~jqc4c}_mR?2
zwgkR_e}9Ey8$RI^$&4Fc+?_)W-(oUkH-KH$w$j*5`(}OAeLMy}AN^h?chTG~O3DUO
z2mf2wNt=}GdNfDWcGMfJ+t#<YJJw<Y*z at c#eRF>G1q<uTISb9Azo{Z?WUcKec$*Sd
zk6l+1Ilk*+iRNE at gUwjIl(e^HADq at T?-Mj2&vst4zzEXC-H`_IGC{0LR=#|H&V{ju
z>4;)z|J|xC3HDdcP4q84H0-)3PX&}<K9VPn-iM6$F0RSeF4LP(zN?ybsJ)@X at b|Gf
z^isEIAQ4}nUkm0NP@~ZGCu<+syN*=VJGkka`dUZTPP8xfc;OLSv&@n6;=m6a;;@to
zag7+VmB2T4=L4M9Hx`x;>ai`}Uimxloj6h)!TS(W%S(LY>qv4^mzL!N3_0qBZ$O%*
z8eV1}onaW)od+LWn+p-bzbH}}{ado3a!*WwPyZgP{h@}jr}ibT&-11}*jR3a03iFQ
z^INhMjTHSM_gnLU?c)q_9cHpQ+7No<q|>TWCdInLpWZ!l^bo`wV{g%qHTAEs=f<~6
zV+MWbE~z4x_)@OE-%284J0GZycC5C#y@<mtU@^Cp91Z1CXcd>trL4JQIzx#*;nT)}
z1D7JD_zXiY6QMx;?Jd>tOMZdD-71D!KjqZ4pr0tXC5aduh;VHjI{fxd0>mw#?CF5L
zjI+D1?HcmAA&;dmAiBGyYQ9!eNjnKE1tZnCjuIDl{vqOQp->zj!ACE=NZ1Ns6-&-u
z3PSACoRjNaYf`l74$1B$0qC%IC+S4}ahtsU<abZNerPmjqZg;uq{%HO9Ifp-Yd4$R
z#)^J3Nrll*IVARR&T!LHq0;(=RSM|2l5l0ZJvwDWmYwyq%6hps2JyHhqgY3ptWqg1
zQu=Lw_BA0JesBLV0E-g|M~fu~W-L<B40oce+O at O=uI2sxd&(13{>_7@=<4Px=<BQl
zS=e$PPWm}#2t2JqwAWV&CF#(q(W#-)XqEse`q3QQ6h&w?HZrVhz5Ig4^QblKihmQg
z!lzgY|Jo%9pCkt0R!;lP4(Mlhj6xXIi12pPemq@#SC2Ed!j0tIsbr}aVJs~8E7t|c
z^*}(jAr#D%ux#5%!rv{2)Uo95cv-^md#Vs2$QWVD*9_c~E*=;R(1pg=;lOGojv8-r
zcdG4nNk7$PPpY&f@)zXUknlOgNsN3~rG)nMIbk49!C>`9T1n}dY)5mADcB|zio=9x
zrV~cXFf)P}2Dn1s;MODOsK%}!@BK7RH)FGHr}>)HsLz`%RAjj(<|Rx{Y60vZ)NqP!
z>A+Al`q%^wl*T88P41EIl7~`k$`Zq^2l~6s_L9Y-v)Ull!Q!>IXlC at w0Np79`y7Ui
z<dqz3KD^!b-V5u+K7WQBl}$l2VwmjgMePa6>fTwKj+;E=cF$s5uR<(~@sJC|<$wKL
zQza;2_2~HgMM+c!20M1yX%ueB=NOBl at GS1^#}%LGa~!$yZF`Qt)wSf63{F6snZM9o
zGb!27DYN^C->u$yWDXmmSkca=HL%_H_WPClUEI=^rO?O2#6q$cNwvwaXp`vBiQEmN
zG>|KO$X9650|`6h_gWdjFo#5%zKuf+vuW5vmE^1{EhiJyJH$!e%DruO3MX&!9I9m`
z0qbPAqdR#f*W!AIMl2$JC8WD!zi;uL*YyMYfO1TLM>*4<HD(TaVHKFxNNxB0V at qvQ
zYfx&b5L!YUNFd{Rw}RxC9|vLIRm at q+!`mF<H-+k2oV0r^;5fLGug^B12g(z)6Mm>)
zz!PVouksAIg^6mJO7%@y_r`lAaq*<zzf2i0$8?-8(Gv%mKst)m{Q$uS?!z<0mCi0z
z{>`8 at 0<hh%B4>IaX8N#HJ0)__cOT$KK at 6_uZXH4zL6sA@V67An9R91xYwR=aFoejV
zA>i6L7&<$Ne0OQ*`&$9zSc^mikxQ3XmLfK$peT=J3sy#zB34XO)a2YgmHfGi6e;`o
zm_?&=8*wb-ovP-Itoa#K#Op4|0|5i?LQM!~_3yMN%&_E``)B6vgx|*@&jjjB6DI42
zZ8e0FCFY3|uQFXs`4ZG`{ZCOHS!<FMfYep=IA3Jz{PIi at MGCtxJw0VWu>WnSvGRxt
zy>qbWsWb=mvPocWV)tC2PE+r~_qYe+5L+l-JjB<j4R(HpalsqrWfcS+I?vDDF3%b)
zW at J5Ytd;n(my21n at +!*|9C==FDGg2CU-O#(7Nk^+5sW)yjJ6-^o%s5_79FlhBtJRw
z{b-BNuc*v>mI|~H7BC- at qf={~-Qv}IK)hccjPDsWX5C*;N0ZZ<u;~f&0*0@<S^%_n
z(n0>#b)_k3J=Cgcvt&+)4XwQDe`kj>FA*Hyuxr1c&z&GFR4uF~Z9Zm=B#dCw5opS4
z_P#NTW?e6^{ZeMhg``5yB}8~4WrFZyQj*TP?q)5^v!99CT516uuz(SFM?UW$pEaXC
zCQMf^ZNc%+`O7?~IU?sYe+0uN_4BlRB&%fgZ!3;@Cdw$T(Az#9=q-4JayGCN42X+*
z9Iqm25ScZR)FQ=FT5n)U;><r8ydqY~cE!YkLqg&rR|x_9Z+fCScK<3J2JHCq2wHrd
zG6~VCC$J%D(M#I><1x+Lb~GP1 at -z_|MtE901C8#or))4capl(el4;j4s+HBS&>`iJ
zE1ISrYFK^uQ{i0IGSeI99ag at 64QEjm&Kq-N%2|fx4f86DE4I3u$YWb~i)40HxwIS;
zjpAwRHGZcDo;~4q-bX;<<IA?#NC-f<z>T}}_VL7;=nX^vf;(vAFu~|=QPEy*MYpcV
zeMYN~f~cIMrd?1NxTT^(EBnz(m#=f3I`N9%jpbA^>wAd{r(P3+vc@&`fRu=-EPH%%
z9FO!-Yu5Rc?fSQK?M8ND->eR4(IFr=QtGW|LwO}K%iFI<{>CKKH4ri{vJoXf05p4F
z?$u(&Iqz}V5Tr_*Ft-~j?xzbRFh<M5@=58DGq#+3t3A9YuW+Gm9GE&_c7BE}=Ji1L
zkk*(TLDHMPE+)Sg{RZ=V-6T;x{gDv8#xw8)L<=F?lFucR`HcQe10DLWa8*nj5dmqk
z>`#)Wb*nz{EiEjbs}}=rFr03jy4Yv{`n-t;I!VD{>DGbKW`xSu%b!)e*=do4*mDq8
z>L1m2x_p;%=f<RudaTe;LzWaJ1WWgOVEQ6*#bIy-^;~ww%X}!l+Xe=)Yn`r`cc^o)
zo_g)7$u};LgrC~QL})I}<2rNqLd^&~yB5w3?M^J3Q%9`4c7u5!=~}tw2G7RMpcj at A
zlMf*_F?b=kk+erHEul;>{y$@bQ|hxS^jVLqoY8ihKrQk$pLJMbkWGfRG|u%*O}F|6
zya%PF(S$D=JRf_gGF|REmhaULK^38G`N8R;!#9#+u(+hw<8nnVs-+oiGW9>^%<?5v
z-{pLY+9pe?PyENt{YDNiR>pYU5Hq&WX;%#?+=3-DCbTg^0622I%4hQ;qi^f8vvh0=
zHZ=|YbCfY3Ho1XEkdBE5s}=1PB+7<vEh!$`J5lvvBgdmw8gfji&G#olAKkB2Mx*8w
zFa7FxZ-${_4bs=rBw9jj-9~`iOa#B%Jtg0}5xR}4S2_lce2xG_eF$YO)U6BnGL`+q
zWMQe`JsQUWw!P?*h;K!gxnA<5hn7aopL*zTH!vKmnw(Uz)?y*PW;OltEGx!<SZg?m
zgOxV{l#9drywlPf-D$pqvLFD&msc0F0)2(XO3lR`F08=hK~^H1r5U4tqAM#8NyFQn
z)iHj|eaIGZNAWf=X|sKJiAN>16XSX#$i~MlLH83D5L6w{2EdULM9=azP7-+j;4j2p
zyuF)*nvL`!&~(QtD*I_`6jP%U8|#*{q}YSy^|xg4M~-?@ZOJ1k^|Z&3Ub5zfP*yG?
z8AKEL at v#JKmd4E3z&8Bn?fdH2SbE)u?M>Wom=e`{)iA|Lu@{BzA}x;2j3le`^Od{z
z;SBr^e)v5M`6jKNJ}g<*q{!Vq#WG&6to6F<tvkf8V4W=}kR*l*R%`Z%(~T9V at Rpbp
z4JUfBZ4B|5AdlZpQI`7R&$!Lvb~>qnsO5umJ$uGA7P;AGjV5DFO8}xg=+<&YOq>$|
zfE9CLDr05HwA9^5W0{D1jb>k`&r<vX-QnUD{s%_>@r~!f)T6eL0Oy_j+6;73qnMK)
zt=<>{uXy6Z#ysWDJXg*qdY~Nrp5_B|cvlC(cb>6AM&L^&|E^mWXE&Jmi;8VW>%{c4
zdUc+3V{0FEqhiD<E!k6UWX#_XRZECa%p~n7PO4;F{Nie>-IKO!-4e<C5oO;9P<V9g
zF&h4>ZI0!{Mz2U5fBq$n^D$Vf^Y^RFkz6wP$`uNYA9nGW^svR}J+|*IV^f3~70W}b
zWH?<*f+KRPCu4MtUyhm7g-kF}CT@&g2_>_|I8HSgj&b!sjP|H- at 9n@I3q-^3bNo`(
zg;{+C1k`Ssf!zJW6wAw8Mnc1OPq}KF$v3Hdjwsx<&_>g#0TapHP_bFj<KTEj!B~W}
zeje!xAoOPF`U46x`6b+W)<j^F91|>{&BKd$+;w8ZSPswTe9WJ21(w8+$m9q3S5S%;
z5UU$1B`Mou)O&jqK!LHup`Tl2sj(P)2>*L$sq>BN)>Z%)AwtcKImKGPp9-qPt}kLE
zFu%802e~5aubO!2UkI1L7szSf;)^cp7f93BDj>9-7G}#9_=EX6v(j$U<z`QxeQ*^&
z%j9+m-BV}Z4$lNuP~^Uqx-kCW1x^BDB4QDo69WCm8O$IT*Zhu?KwSWS(?e`!*;qWV
zK-iKN2jbS2*p7n;$h9t>jcd?f1a-U_0D9nL!rvrrRbvD}o|7}X(*sXZMojZBDNT+{
zWj`B$uM-xL|FD~Vt-l=fS4O(4LxGILe$E8fHenieW#w|sa&~~YB%<ai>M8R8Ii&=}
z;522C+$yKy>;d5_&6?XG7je7AZ~DA>7Yp?sNB(}4=+AGj>CuMDllCsGZpd%wu5-S~
zPL+{1>=L)!_DJ?Nf?b6U57WTEzp`K$+>?*DJANyG%zj&OYCNYCGv0vASfYp~9mM>I
zpyqoT<8Z{utYPz)tUTNE>wPAiUa>rOm%s&9W+w-2)3+uv$*pm<sI&#m$ANU3v~1i1
z-Djwjap}04iKTR(C6H2s+u)N^tv_tW&}r8^U5HmXRGVKzDE%HqgCq>bEZEpWaINn`
zrDPeEt*M!7>|HQ&3rhN-H$8mgiXP=1X4Qh$T+V+q*${89MEW4!7i3cQ4nV$MNDKXi
zY5J~Ij at joK^?Jy4pr0eK>@LNo&|&U#BPMLK&)0PCG#Ujz2`cM%%eK8fvx+L%&yYnr
z5v~lzywXR#FLp++6~PJx*0?tiq}n){xW-8sq?>p%{koNm-0n#5oM+OMd72|!ZFyap
zUm_MDyxQAai2!NPF9@!VIri~&Q at T<4JoMC)`SCU%1>uyVazv{xxtoowbI!S++owzD
zkGWruXB<NfzM+}4B$XBmi*{K^n%x;%3Yvc_z>1zR=SHqim!)sSxsbs*k!dy_{E;3~
zRX%Jjzv}MT2fN^3V>s(9n{71F>GA7(xj(9*3CTWav8er(=a(nxVM7qE7cw`cnPVX~
zpHp~NL1Dr4Lw#mk*;jVMM!MnOTv={G_mn@=lGzfE_F?OIkZzlUe@(y$H;QlbTFqWm
zYz at Y$N$`xXF;tNZ!9+HYtR+&^(`)+PBq0LTuvc*;Bsbv^1d;JL#=v8moFI;lXQOaH
zppR)x64~GSt~RP@(4&}L5U0=GxKNUFk~)e!b#t3C2aJG2GBtvFP<rG-`qY9xSL4$=
zq+l)^!s~sCG4wt<|E!>e%F1YY at LjQuwWJW0jEG%|6B=@kGJXz6TpH(Nf2d+AxS0*w
z_fC6$Q?z!n5H6EJf8D_oieM=bhzjNg_40HxsEpM=vaI_OT3M?`2Iv~eT6Z9ZJNhT-
zoE`Hl!nxx1ScDHRjIymE4nQCO;^{k?V76Z|SpZGXHdLaYvGfVMCcKYE8^@ck;m=w$
zu1U#Z2PJcaw{{j;=}|5Hg0ABJlcvCW`4F!e)G*zgd;^(euR<{DSYLDs0=UMWYVswm
zvsE$rVAl|(FU2TmM4ZJ2YOY6ZwJ<z7gH9paBDUBMBL^Neuk2z0fenFjfriA&b2es$
zLeo*hWjpi63_V?s^FTc at eeslu$LgwUh`GiZi>sCNxBvqHEDmCEB&YDOR&+H(Hv>A`
zJDpcjXFnNCHQ}*ZZD)S54^z$fZ&wy|>2<jUg0GagV{os{;C7PPaPZ1VDW*7WNMwoO
zm_9t*58B+We<~;9k_<B*cWE`9&#- at 1qJxG5&(-4el_SnV?@<h`#Wgd5%w at 869XQPZ
z*ac;GL(<)VU3z_+Jz3L{xInzzB<MgnRYV<?-Zp6Ei=(;-JnkaHTWkb74uZ{83#U)b
z;PVCqKQhc;EMBpEk#<viTnl)8XmAVnTW<TRLiEC7APiS6yRQH$wSDvc(?~4kW{S0A
z^SK2=F|)%j=;3bn==z@}0d{mIYpM-zpjdcf0!f?;!^)3xl at FuZVT5pQVq(6|gq=FV
z+|)A{ef<|2R$CNG%yJ|(O|i9_82x^x3*o at v8x;|;7cW=uoIj8%TU0XKe$9TVe+pOG
zNFyR;j^q>m?#j%;(oBIzxu;m~wNE*(ac10D?W$GEkEa>r)yY5Kn1pxoZ5(_=stwR$
zt9z8uus-9rS3j8%*a`$oVOo*bSPL<<0(6)inFS?_NBi)IQxlJHyY=n%-V9!oJ<K`C
zn*sqfPqXj<2iU>_-kyBke6;(X2#pVK{=;VYPw)1g2J9!uY-D{yzk?^@SzJGdaxsw6
z)0F+l7F0rhs-1m1D1AM$$}#_)jbr|(Avw-6q6u at 3hTTZH-&{J|S}T6nk>~C=u&(7M
zF^`@ob#lm>v;{t}e=tdq10A5r43 at Lns&`F9WX)sJIBplE+Fav!4M^3{yc$uF8{8Z>
z`^l4B1GtKvPB?u%Tm8@%b67F$Cfos at GCy#1PG+p)yM~2!Yj!8)YoKmn9k1xF%ctZv
zPAmUf()a0*X(c&=>&{A<eA<vr4?&eBGwktECQD+D1zziiU86bFt21X)yZ-UuQc1hz
z&L*y2OT`O03ud))3f8J>U%UCa^6+!Pp1_*+yssJrPfS$8<eG(f6gKmKK-Xr0wf3#>
zMuR&EG!)^Lnei*`=(LtFuVaZFi*j+;vSv2nd#){I@$$BQ#t!mA22dsSFn5_lA|s^a
zAyg3W68%`R0=Wfo+Z<1E1Wh{JBehs1>t<xnXyR368$xZ=rNnUQcVL_osZNId;6DxI
zgDgIqNtKq`RqA+ndIW8DRr)vCaYvo?tmM=Dee4wL_P&pU=+p`Qf__9B)^JX_h~T*u
z$sf|3LWmR%?l+95cMod4DQk1LBmdZ`mSP(Z3n(PSn|VYUgb7yhiLo0sEKF>l9w+ic
ze at wH*j8O)1?dNEG at Td^kn6>x9asooEXhP1_aUyIZg-O1$o<ha4i6y$+OAlvO+z-6J
zqW|Oxk~8nczF`ez9-j2wTnGHFacTr5v^;#%&-&DPVBnKgDT)E~0)WOo#uAqOBIL0^
z<>Eeh;?Rpt#08O~+kG|E3Z~c%Ec~fEWGiW=qUxsOl#zGoV_RUbiVVdHYHh8O&2?^6
zD_f18nJTWn`JvDafu$FbwrhkJj?yo|92A_|5bd|pHCmaL+O40X{7afn at OAJEsP#s<
zXlKOKu62TXNW>+uO=^?pd(<N)PMnjn at 0`f&SweEO7z$K at a-pS68?xp_E2%!VMjB)z
zubH-W^Hb5|dHRYdL9Lm-Z4UGbm((?dkfW;HYd3T}zr-wDTiDH~tJtM~NY|zFRLR5`
z<*I9dV<X4`zX`Wp6h0Ezk9_EoP82tuFo_XsB{Hcsvx=4D_}j*?U0B<gbEu3RD+TMI
zKbbVh%*`9swxkb6zf(nVxEYuCQWlXUKrzE}NSE7sHDJQXTu&eV67)$4xPZFs;{KHf
zir+&7sVu^O%~Dl$3T-L^Ol at 8^4 at fwi(=ib5?{8%>#9Y5b^Y1{kzXxz0N6J6Kxkki;
zk8WU1#zC&H at np2}S>o*Z{YOBZvl+<iZE}1_egoDs$;t7?)bWj-<<!rKng?6i843*t
zMyTPP3dP8E2%{s{8xDslt7!ptSBg96%Y?LSV7}uyjW)NQclk5CEMlK)zFPZ@{WUu}
z?|BQ_Hkrjg at dy!Sh>{;N**p2g&J?LiY#M(dPi5s|XR at P+QNay)EqNF4LK?*tA$)5r
z-8Z>k*0g=Ivgv#?^OoyU*iZ&qBWakarI=<3kC!re6>)AmZkx%kWNuOC;7%|Oe;N;u
zBc?c=$vMPU7edy7_m(JPnzt6i!#lbF)S1>AxN0ca0W?6iG*hAA7bDiGRHlD~Uh)(i
zO02=sCj0*3ModNJ-X*LAmE=l^VLcLMA(Qh+iB2bexdhhy!#d-Cu3c06q&1{71<QqV
zTwy}69 at N~G@<}pKl$WsSPcdDfvw2H-2AV;kBQ&jql~4-_z!KC(HKZW2u><})Xx0 at a
z6+E+A(*DXHM0@{K8m1>e;ub|pwTV^d_Wb$0#yqxot>87HG0JX}6MqN^k4q<v`P!?D
zo{X}8&1I$EX*)|SFTQ+};}%zry@;wVhaTlv2(^m6=~^UPz`^TxC-(F#W^LBJZmA|+
z9yWLMkzGIL`?>?@C8auRc_bKZ{tQuUxSg;_j?Af;ryc>llNJMlE8r at bLxd@_N^1(q
z5`|3(w}Y9e{Zgo9t~T%A{IJbKP~4BTMEK9<$=X{2!qPA^o>g at 4d8sphm13b;Epa#F
zH7&~}zB1?ef}};9*Wy;As}PkN0%d`*fjjk=vw~SL({Y<>IknNY5OjU*F^lFYL at t8<
zp4#N7fGF- at TIQ1&`KA*x2)%#5Y55J|wOx at s5}zJ<VgnNK(0g2o(d9FsHnQ=2>n0to
z`ZJsqSc+^+*R1Nfh~9OINYt;>^SuIGbbS)6CyZ>a#V(OHUYVx*;WprcTzT<nn~e62
zOk6XF(E^1vS?$(<WNWPY`+rz%^tBxgb#=FG7!DY;0-eJ<il#QD+Pbg6e+5c93}bU>
z8kQ%Y^BzlbQcLw?vgYpK(df5u2KcGgt;OL at P$iwS=N+3~)z=v1DbPwE8A%oF|9O^Q
zFYw3eDSvH+Zj;Fz<PCBnN=CpGU($cYg^sVVa-q?HNCso=N_%*2`Ng#Dl>U{ew at Rhf
z7z>MP9Ut&Qk1i*T3$H$(F|SWYOO2?kZy9;%mw5yo!CPP{#u*aXXLaj7Q_#KzwHkUE
zP4F)5%*SHC%QwiN$>%;Jpt;N$dF#@({JifUG=$^V&_zB$#4l^AX?V~_E2-Qs`H63e
z1|(*hz at xNXjJP_MV>e~lpG4+J8D=wYGP2B|h$$rb6S;TYae99lBfU!!u;Vd2uK2wy
zFXULd?go(usz|!O7fJjnGHkmS^R_V_SFET1pOT~(#aQ;y)2V#*aX6oxYVgjE6_j@}
zFj!=MpUI at r(dKh-0%UX09}NDA1{AQTvXW%-kDa^fw{dwXzuFf;+OXuQKSEadUZxn%
z5GSk4$zdUbHkL^;9fm{coSpr2D*d6Sx@;NjrQBP!NWTbhoOoC$Apzvy1wZ8+{>HF7
zU(%;QksHiNR{ox6KC4UQen9XfE9H`M`g&pPv>%lP)2P7TbEe>r9iZ at N1SL|k9lrY7
zY(cWkh{En}-8k-iaa{@Pn+!;ZuiRrPa<^@zDo+ofT7SJ^j81Zfx32B+Doc8OrMs-c
zjYC-4otG3|mj^aPxycE_C+l+V7f!_oziZZZ^VDT|4?oa|v-5~~M-twn)RbM4YqoT)
zdu{S#xHEstA|2~Hms;XOecI9tPKQA!%C@}?D#4l at Ka_3ci<A{XkSkkf%Zdu4<4c}7
z4L14PQR6ryrAR}Dh-;`r)81s-Qa0%*G0$X=N+XF@!jiQismH-``Jl9sh_Rx_+a|4N
zh)m<$e%Eo7smrAf3Y1w^?+kZC^a*JtJnt{z#b?<{h5X_kKr}u&vKyCdcgV4C at M;?x
z^j_~-r>`S$zotbE%UYDiaZ@}_gQjA2X(Qi^UhN>!^76^%#Bddmbd*OY!nQNjdXd;i
zlSGf&h6<#}kC6vv at l)*x`ugpoN#7=A7EvO!a6Qh8MGQF3dY!ySl2$U;IPRdt;|M`N
zZOnR at w-mt%p!Ev|A%pDwIaLvNF?;EQ;1F7BtG1UGoe3;?kQ?|USSQ<6(%@75$ukQ2
zU`tSGz#&4J(%|t`dPOalQg9k6dlsaJTq{B|l2^CAr_2VI)jqkSnhZ=g&Lx;Lr(6cF
zsBk`mg$#(8bU02xDiKxH4If0d#Lt)<s<tMPa)(acWnJ5lT;Sd)%}tB6G$g+>O)JQ(
zi*YUpq=!|t>_`5oB!On^r>>-FZJ$pmy$flC*9Egtq01GcCsrKShqR5I&Rr`<FO45}
zG%Su0|B?0=UuBfrt0eF at DaTP$L+Gx5`q~nHyhaqZd1_xa!+WD}#eFaBCW736biMaf
zqY{QaNXE=H{T(VZk;KQVJUi&}PE2(>dS>ArUnp-lSN>y8^SXJDkruiQd1+i%r8D^y
z=EC^Lat{Sv3yJ-)P>$N~u&i$#;BR&y{bdE(moqL-6yK;c!tMJ3&eYjO5y|q51}|Yv
zRV73?^!fCb4qpMCGPnEozs8AA at Bu2*76c5bUj72mwnz6TzG<<ql!Ge*h6blF1Y>@p
zI)yz?_$qkfx!p)A#^}5=(bb?AA at NzgWKr;Knk$+sovt9|rzf&*ny$`ozUf3Qbd?xC
zq*v)#E|FPU-q4ZhFH9RfV#e4 at 06q~5jWsS;>KyZSMqT=1mY&%!?b2LZn-HA{^}LWl
z$is~g2H^a2r-}O1S84IDh*chvaM<0F!bUVWEoYUtfBX#~9<VJGsYce`yE?%uzct=_
zHfVrH094O@<-SaWKtNuUAMvcg=_jIHc0j!80818W^#^|iQGlCuK+wi>X^2Yf3hZ_H
zL4L3^EuJP;?Zyof1kiq>4(<QeypY;{d<yxs^%(G(=_1t_HESH&6}t(Ow2u)AUUa`8
zme&dY#`?vfsnFfo0J)Uoe(_)w!@qbidu&=i%mA_gEqHH?r{pdeO*cc`WBV?0$e at ol
zK}s`82kk^rnieKsm}ZpbsC%p<4ZNS#Fi(_1j_1j0dlMDf`(knP{%rvY;09o>4=);3
z#&XrzPb^nRTMjubc#hp3ORBNv?_Iob+XY@<0vE_buSQY1%M$p-0V2&lRTEb43+lS<
znz0O3+iI6mj5AO7r|(kxz4oC4cj64gG}1cmTGES3Gx~s<k<W+*KK}={B~XGJCe(%O
z!|x~Ma*ht39O4&cio#h;)7iw(`4^9|<F79OV_{-ur)T1%XJ%4m=H_AJ=3!^1Wn$rB
kV!Fsl3i}@g8#@yVQ;+|zkp0fU at udJJB_=OgDGUt!50Q1-W&i*H

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/apple-touch-icon-180x180.png b/ui/new-ui-samples/apple-touch-icon-180x180.png
new file mode 100644
index 0000000000000000000000000000000000000000..68f6b0810347c268ad67d9a28d028c4c5078d358
GIT binary patch
literal 15806
zcmV;vJwd{WP)<h;3K|Lk000e1NJLTq006WA006WI1^@s6J<SF(00006VoOIv00000
z008+zyMF)x010qNS#tmY3ljhU3ljkVnw%H_000McNliru-v<f{AqVV_SC0SyAOJ~3
zK~#9!?Y()NW!F{T`(1mVdvDEEJ<n=&w`N(gEX%Sy3d^yu!fXNwHqj>`j^Xhk3=czi
zKp4W5K!Ov;V8Vk31{(togN<z=*^)fTvMg(`CcD*AtLM3^tEy|d_nf`g`(y7j-0GIp
zt*(}CiL>-My0>msb=`Z;@2ve>zqR&S!Xlfhjsj!ACg5gZGjJiW6<7l_sO_JUrNCie
zC$J0H4cr0j1tvsfaxwpyEFzF^0p0~%9l<+TU(4E_!)7AL9|1lhBDcNdfL2ujZUue^
zSXE!6+Rnj_0zU)%nTY6%3TRbr0`CESDthDEYFjMZ3A_*ZLlNnmcR;J^#gPMTUQEhT
zTWwXCMXr6bi0n9<Uo>X{WUHz_4Llixyc*24oiCG!u_smar&ZN1x`$TPJAs?(b6wj@
zV0VegTNee;syY%Q(arUFt?ebW-N4l%GWCKfM+EadHJEGb0ox4R6EXS1JhZCrs=-`a
zuX$<_x$vw!bPNFRtifDcFM4WKz4O at u#b=`&KUoKWwe_&w6fyezlq2fQPre+_f at Yp<
zVxHNrouG67EPBwul%P0dRA8ghyrRY68&{KzHo*!awL00ucF97WS{8u032Y~5fG->K
z9Y=O(o|AVRqVta##u&udxITGQl<;4MSBGj!>$*XPzI_d?3x_bRq=rs!+AiSIYDRG(
zpnnW_KQE)CNoW5oGhaE%%tyzOG{GbZViJta0j;Qb6pzQDnxUHEHN*Rik?&f|$lKSG
ztmv!Z(}RmH at Z%!#fl~k-3yq%QWm22r=Q3s<IL6f99HjHaEH-IjlNKgvAl71x0V7?2
zRvfAhuW10ZOYuIV|GH%?`&Spzw`HV;Q197J;G(>ssk)Zl`f>qtdU%eBPwipiZ}-5A
zkTm;|{NB~-T}%YE#1{orK*FOSpvv^Uhw*93%3Cj{bzu$a9<!|xyB}KUp^xw~C;^@O
z<^;$8Vh1PhK7eRK(&#5?_G23 at tZiXz5<IjuAcBg5C at L;^X$`c)`RJvy4q4X5XB|er
z^#WG>;6*f+_b;6_SrxoTtbI9y`lyJkE<AKB&R_Cio_X*XhyUPFW*<6^wM|U3fk=X2
z!XeT7l6&Q#VkjQL#P0>yEk+Tih**qC at MKJUb~mkyM;N<#6JkwId}cp4kDi!9r>5cL
zEIKm>^BriX&`HtxHaLg28c1IY2K$l00c3OtSvHJWK8EzSminb%rK-1x$Za|0c-N8#
z^8-gY at Y@g3erghvG%>b?kp|Wz0hD4P2X<VT3K}9gpZ17=_u(fofGX-e#x%$}87Dt?
zfWfO*(A+Te(g1jT68GdT*nJ3p at F;qG5<htoCa2Nq8JJH|ub{C;UZaX5f*QaYw3)!*
z0A|G~X4P`c>g6PxH()Q`jNQCpsY2jgz->v~19<gP2J`G=<Lv+She&r%V{ISCG_ev6
zV;TqzL`*m^5z6sVa{jE*LtBg$@PR)giZ>o(9M&|Me(*4JPi~^IZV)jqju_;RpTK?Q
zKC*|mqX&-QkB+0`ClTkuLZe~D5o<sUV&h6ArU(nXQH1au6g at G8+kc462x<*7(1%&I
z9J^r+jjJxB`NnH8E0- at N7+kHYqoS&tfyY^*djQ+JPqODH?<3tkgRxB#+dz^g#x^jv
zfo(J})&}mJB#5zy2^U>*rNiVbBq$ze(4?Kq at UDZ)+GJ^)ES)Fo%(CJ;FJk$vTS-RF
z?^2z9=|QrO-j4sqPIPJ(X69n-Du at KxQH%j=Abu{2L&A}JW+N!zjYN=ZJfb5PADp at o
zwAsWgAE9yeW%PZ=Td`X=E{R1NxH2K^&R&vW&c^3C at QV+T?U^I716bR at nEXgECPA<m
z3A96Uk4$+;RdN?W#GrUUur^Q*Z#>3&jLWdL$?W6D8JoEP&I6#;d$NDL2loemkKeHy
z$vj5F>LHXdK=>T-PV~0?T$<mVric?XdTSNMSQCH5;7uv)Xd&`wcs at QwdiQ;F?s<Ub
z_1Dn%1K);Ozq*$*r-Q(zgwSeW$(e6w9Qobt%s)Pbwf!VXUkPSwF~%Y$3EnsdGZL0(
z36D9`KqCe;$93S at UKJ6=h(pOja3~4wy)*bZx41y=q_~H^f&0x5!DBlyn84%3bjgba
zsC^#T#$Z<s_~@A{pjN_7iWo=?8a=lf!Nf<Euu28yA|Y#<QxjFP`yXZc{zqwj at 6EKn
z?OTw+o>h5nPFSK9b>n}vi;3I!lGr{H+lMtRtZ4?%ED4y%nI*rVc at UU;uM)rosH-MY
zQAcdNDZ-<s9W?Wc17zpWT?a^i|6|DC-$S_d8eO`1jP0T#6J4swU26nz{=E1+5`$of
z+yum;Vi03cYtTr$3Q7{=i2(Bav?vCTdPn;4yYP=aP4nNsgJjeCUWCQwge6$FG5wXp
z9Q)&MVl^R28d%dT03BpD8vz+ErYMDXQ)Pi?)^g32(*V0rLZtXABwQ9 at m6@6*`^>%Q
z`~DJhZ~{xYk`#%a$~{N*z594yddek6%Fm?*A_Le(qSrRI;MrPmZG$G!^BYqF+CX0A
zqTZt}!|&S9{D1jl`hMzGl8buI7hY&sV%foLvcu6o{02;ektRkW&5+2MjS0a`AzNt)
z-U1NX?a8zPk_uqdhol5vqZAf?S5$(Ma1Q2nA0U1IU*LZ6gP4QkkziC+m+D;?6bi|C
zbl2yR?$6`HXA-X%uVu8Lam7(e`h{S`V4|#PY+mP*V3P*cHn2%EX!?ytIGRm3Im`S9
z{}Q+VaIe8*t0A=KS~52A_s=l*#3Uj~;K?MINC^r6SKX(U-mMEGo&um<l*0$!=)DUb
zDIV%Vv6A<WWbFW^^};i6+1Izz{<S|K`;$)~oviT0dBD~6ev7vqy`(DSI<toN8a|JY
zHyemoB)I929P$dz#lshecn?lNJ>o%puGAZhF&L8rJtUWmjZVWR=#g<cAG;k*(_Vtd
znuI0PYi at qWBom+74IRQsmMFuKNBLSV(;BHn*D|cZqxm3H<*ZtB)O%tIJeHC=hxZ+P
z*1=^dK1*>~hoOsCVTN8<Noo3(hiU(pKSCdQDkgh!5PQ5z*LzY=MLW*lXIX1f+>jW=
zOZOe?OnFl{?M@`2kZ<^~RidsX%W^iXLPkIoBZ8`;Mlm)4^`uYiAi4MJG~Rq&uRx at +
zWD0#X^Gx2chxU$Xtm%tVT+{+Y3Qt_(x_a at Xn|DU<6+jd8SiFW>4yjb#`B2m0vJT$0
zaj~YO?-e7Mp|ke`={*lJ|0}<Te|m4=%bG)3Bh>sUG~O3WOpw$Hoee>}0UVed)ZsHp
zc?VbT=6JhnWmSs6&ON at hrxXt72`P^Uu|YyK9yJ!z&d45o9Q&GAVETKbyf#@n-g%12
z+xBBjf;9<<jfX*1=xT?ykQ+xTQCuyPU*k|Viit%@_*medmykM~?}X%v>)^6^THD6x
zziK&>oLMc0sv;t!4?Ir$mwzAKxerrja)Q^bK)Rb`EO=gggj{kAo>^iEtQd>9Ktsfq
zv_w?nXHHRX!;RoIMtwd6ifX!PS at kigCQ~JX+#-1V-Xr)OdoWjDQUm&o)quH-sk`>!
z4zw}3k|8z^qn=&tKMn23gT0(ucpRE#sKmm4GMvv)pW%Iq*WjU@@8Dd at s<*78xpC->
z6AU6kwsQ~Zul^yrbAJ*1g at r>SZd}Db=Kz+%!|DRX10;I)@NXF(<w at 13p?gq^nCMNT
z_YPXMMo??et*s5TV?pq|@H|Qq03U)%gEdhGJUNRV9`6~fED1oThvu02^q~+4N&}Hb
z)P_yPmB=YiOK%<PG_>THs?i%0y|M4$G{b9(YAEavU`~UV_H9Prw3)HDZN~JSc|ho=
zXUKm2|3e>pI(X(v#HTs!c`mQqrP-BoVbI7!m7uB*Y6TT<D`5pPY6IOcifBxW=U^^8
zwGU9Ja_H0DuSO!EgYIIC;4?)}OcpCq4d~|sL_1^ZbNlg!I#HgB-nlD<U6C{L*K at wS
zfRw6_92tlDNGr%e+lh71ov>R)J5kx_(6?<FE8le)jWuVNCF{KJBlyofh*4ACOhwq|
zEB~)TxP-ZOz4>aLphrY78oab(Q4Gdu0J~9)nvm_($gh2%CD?_4HsO3VlEBF;$))Nk
z7EF}xgLJ8wAdSq<p>y-dKz|MB=hbT`Q%>G?7%?_f&gI^ja6GGL&R?kFK^@@n>O=9q
zMis+%a2mX at bL|q;K1F?p#>QdR{_v|9x at PrRz4!M2`3(AhK8GpN>{0<S1$%Z<LfRM5
z)(VZ)E{&p0<C}PU2qvl>A)#au52!<&4Ya~|L~WESqbD!qKU<zZAtqZq7#Bh9LrUBQ
zVifMjz|95F)IsKY0xvxcX!XkM*N@>3WFdhfNs$OBGGC`n*=hHK`cOid2Z3ZIrSP4C
zQUow}aK0UZp3&Mg#D*Wej<L5~aCTbrH+SOy;tphLI(W#6zg0?g!{Y<}iT^G1%%z7u
z70 at Q$8itDZSA#(@;_+fb^3N&i4aO*HOr#!wt%Rad0kJV)Jva$pdkNaL#LQE;TTu0Z
zhBT5;@mB--`S^x1b;kj;12%ePBetuS`E>fTY6zrqmCHvdE9~kHfOZ;!KIZ~}oo|!5
zb^x~T;5B9V)$3XJ?pHDLhO;Z5^z-wie|-n;k?mM5wTuYgE-+XBQxt{=kl{h3)eJ|H
z#LwiRlc95S=*&DiIgL{nt2K%QH8w&#1aKip)F`)k4PIJv at 2aN4E?kiY4`B8s-*(}>
z<*D$3C}{{d8R*9h4%C2tUjBJ-hID&7YRwiS24WJWI{*<>edLnC+k}&y2VO4fur7c)
z_s&`cbO-0!c%RZ-KghDTZ(-&4TtRE|+3!rrzVs03ZC}J>DT-a7UgWU$(BHytT1~Qb
zJ+f&HW-RO=u`8E{ZBl~+NUIS+<<Pk{e(EG{ViJGkIR5B3{+a!_?a$!%A0cppSWJ}X
z{33YO#6l~tL?0fgNfzFh<k6lXjQJ_Jb4dStCt!l3 at cHed4&Q2!j1AW+$C=plJqOX_
zuGnc3^v^1c3py7cb3Hc#CI)~$Pn3`q36q>7d*ksogFYCza23NhtYPT7wG3as?ge!x
z at khq#{QYNf2M<FYL{*E7hWjy>Zy~w<O6+A at FdNojHmt_1Uh%?Wi~~n-yAR-Y?4on`
zy|@P+$4$*5#i|r2iSeQ0&PW7vl<<u86m<Y`!?0++(ZNS)FBUB2#Y$EBwqh7rv%CiM
znb_RdC(%^Pdfsk at x56m3&<;=+fgOQM*)+y$8bIw+lC}K|UbLFl6=O6u_LHpYqp`A|
z=K3K_>xJ<_Ri*R!`<VaISIH}#gt*am!y4=xUq$2Q*JHMBz^q*vHm#nc+4ZZj>sQ0;
zuA%wQUQhPOcG`dSX*%~jfOIkhQ-E63;4z4g8CDbMi9|q4<i;UT3?-wuP-a at xOvj96
zPLYyzE3ubeSOfa`>Bcl}f2UFxR)#}GFj%Qd3ss=LXhje}+#!n^v)2&(wKfkka^r;z
z-L#hG#vx39g0#${><{z at k23$+FOf}5#AV&n*tmhlw|xt(e{nOidO2qF{4LLR{c6m*
zRWx3A4eh`FM`r%`ukeSC6`&3jBm!GPawSyZ*%*g7L_K(idJEp7w%ib)#g3M!(+u^~
zxbCV&xiMe%fS%hifjg9T#q at djXDY9Dr6E*f>N<-6ZpULD=TlaE_r)yx{w?%fGzyJH
zZp5fc=e~!Sz3YpC at -z|#Z at GzqfA@XZOD;rSq*@0NK}Lt^`*+`qz32iafAxQo?b;VJ
zl=({L3oSXQMUh^pMbrf#s|6oxro-OhATw3~-Mr>f8gG4VPvNF#0iEud#+}Hp(ySEM
zS9WVq&8I{~SEG0KDbA;4zD?%mU=TL`#Py7R$0np{&r3$j9UW)>?tAfRie0{pksrC0
zfgkt|Wca1ot|`XQe9LPYYrdCbKlQ6*M~>%(p#``@eRSZ-fp)l{THrtp>hgmB5GaQ7
zn6L`U at -c>f<Oh(%)_^`ErQlGzsME+RzPgI&;x;NR3p9%0Pb1xMzD=^a#rpqr9m8)}
zdwy at g?N2lPi94{XS26bUKStkoytOB~6*b;)Ez5uF=NSJ_zl}R^q)=I;s46j`$Vm-&
z358xh=glV4jd-SGI$ax<RsZ>?uorFWIoz0D1hbp&;Etxnp1z7&+RdViBKJ_2;nktu
z;e3YE4$VyiZ2Zj|&O4a>)HL&-xD)AXGWy;hrvJNd?y1&Wt+&38mGA%0G++BlyagYX
zA4gDrLP1tqG^unx#kmyk+TqAT>8#5-FfzcZ5B>&?8?Nd}N7$1dI-6?aPx!J?O0ff4
zD!Q{4eKgejE`8Z+2fL=l+MjzRgV(M+ at 9$UV+oVtLV(6XU&EWTcTTfo-#&uV*@(+HC
znZNu8X8z_=_=89BGxITVu3hIg-$0;ocY&%Rqr>#S=9P^8%>RYmysl at JF;P|RwKp~Q
z^a+mr@{^=bwy|-)U`{)T+w#NPj)g|v<494Lk!c(4_pE;J<&1sji?fN-pPZp{_g84X
z?pn;MW%RoFBgdJ$?QZ7p`5J!TA^i9W+|)@((}?9zlq7=#nAIz=n>RA_j&GyyTV4mv
z-rnHUlYpLm{20f6=_&la6k}Qe&~aCDu59GOe$g#d(~u~!j%BxQX2rWN!8Bji9XA(;
z-aWII?5Sr+_Z`3;Jr13ANL2Ork*r at s^Qy~9uDEo`bT92m%Au);ww8S{%H{!usu2o$
zLefO at LVTYx_=Z)Cecy#On9tDcmQC0#n`pgEK2Oi89HHZn?E-YJYG`G2g!)dX$?zS_
zO3Si;wS~s2{u-(OM9uW(yAqNl>FOU*fVxZ7NMl6a#@P<bzH18u*RQCrY7OWfds9sd
zt+EwYnH!8gx{^TgF&o(2GRVj+8$$=q+G;@e)SK#0kb#^xo1$D)qlBbB?l|!&nWi|}
zEdTb4Xl)&?ujoH<>q!o6h8vhsTXe%L+bqTsM-=t307*OaU%rCjo7UA=v$o#!&~~ha
ztguuIlZpyEjXO`o#XW%;qc?7%xpA<*nzi*P<uC at jra?Jwt<*lWs|`U$Yx4-BH(yX+
z$=Z5Y<p3HR`Z0Y0#NB-&w5a$3W$?;Xw6 at i=18eJXKsUDzBWq1{dPLc0BYJ5wU>SYe
z=K3nu*86~NZ5c+^Nf)5C`W#QPqMw1+tgNqMZM_d@)0dE3+84G)<(oIVny)E?SFFMg
zHS4QbTVXxDNw)v`<($0j08H3oW?%tsD-7PS`UUOG{-<u*K8l~&i_RWK+vAW<f}2K3
z5lz8bq|ro at 0Z2xmu@Y&nLk6}Wtz|W!U#Rt6I?BoQ2VugaChz4Ocd0alzAMLSK%WtS
zCrGz{jP&W-(e`-U-Q7VoMI-~`5aYmtSdTOWNdy`uG&fHYunkE15z~hZT?KvDA|ux$
z1DkrP60fHLEiFsmjU&wOn1U>J77_>Ik%0!us{US{o7Xeu4t#~qgMS3J3EIKCIYj4+
z&9B&qgnS3Gs|Mk1aCtr}4jG!-3nxE=jt}6Q7a)VTAfvBG`ZplSOIx?sll9P5%MQ<T
z?8kTDkA&Kd%*~Oy8CqA4u;F*F$Br~=#6F*g&O7<L4mz_Bcl<Hjfv at 1lzk#283XwE;
z=LDn?z-<~pBfe${<0+D`X*Nva4by8OjEEC6f;MkNM&5=DU4=A<YCxaP{9MMw|GSI%
zznj4M4w;)Lb8`&6bv<i-{wmBsQX}?-0)6fX+1@*Fd+)>@{VF190CWRPQUP>>V%~~0
zLMNp#lDQlaC)lvlMH^^x6EgO8Wc1Y_$&0#*_IzoY=}#E=)>SY{Y)BqzIP7QxYPxZ5
z-mHH$jZ1!z)*JpC&DZ<_X2sPgN!UbRofPI5JTDreYMAe00Ha|GsBuVoCmj1t{GRv2
z>@%p(YCu=5v0;Gbn+HQ at eL_1g5~%~i#R7KU3L4wqN%Q*OBH8u>V205w^nTPV96kdw
zP^WPe9B~pr>|`pj;iK`0@!(Iu>?iR1eiMJ>lV~<m13EW5)L`&!Yhk&B-pv{|#M0Yr
zX~~%xxtPY4 at 1=RoFCv2%hvqUVXeT`StOU4bzH44$-VaYGy|x%2dm4`YF>c at gM(6j}
zfUZh-LpQI9Mg1Mp$+<AywYJ6e)=58h)A!JL<u4&CUKfDeiJ<N%bmE at ROwly<j`pF!
zPiQ9=8$TK!XowY%d6>KdzwZP1$%i?gVcViaR67sPvwdHO-A7WU=R at b=#0txYEZf#6
zylPt?eT{R|Dy3-{x#a>TzO<9hlT*y?Jr<gB*LHqZ#g(r`8l$9-zYlll?no~L?>%K3
z4~+p~Y~E-sc?r8p93Nes;5GLM{?JJz`<IwyZ#XZzi_QtqUwq;uAHV+?Pwww<^n@@m
zt$3Fd^~(b-SUw_bSSh^miecV);|PO&FC5sdt-~yT$0bbvk0Z?NJdAgadT;l6T)syy
zqjA;Gp_#`Y`h4Kdabm4XoWK?5uZYCPG@^)UAh8J$Vh~H{k>?GP?SrF#j`}vNeCwhs
zATLO^+kd>x`#!mkyC0k4*d$mQ7#burFeI^gmnn8=d&y`v9h+7QKmA>6x#{W`u2K5b
zv*RZ|!Q_{Barp<opP?Jp)yb9fY<^}B?R(yfjz1hEy(UNtq$QY^AWe{lK$1&(O+=EY
z`L$3D8ld_{=xFK%WDHqxD`w at 5i@UP?%CG#&ubj;<+`D~>pZ)WleD=`^=Gua#K|&Kt
z14}akx&(IUzArcr$4+M4_2>kG<+_VrSgQfC!r<1`9J~E7bS`7rTedAqZ|B;ci|&nL
zS6)fB_a3x8RjQ at ATql|j;3_GG31dVMi`XQj$Hj)Ra>jyh!|XRf)*u5L7wx^CF^TbB
z`N9(u{68OghKF`dW3UzQ+6su9*a&b#BLck<f!|=hZTY~b5AcV#AAiAby8rU!Z2P5K
zXirR|wbJn-(T^)=-SCTGMnZrX)eh45m?`SwupxED at TPL+cyQPxp-w~^7MQ{x`w)Ke
zi5Hi0s49=|o#j9N`7R#bJsE*(v9uysTM@)fEJ>JF754yoi9;?;iX+8K8&Aq$zvDN4
z at It=zRYNsemXM{7et^y+{|nQnfp+xe^dqFpB{7gRkVX at viAXbYlt%HW*wBJHRWx;I
zV=HFef4~f$dwbq9^3W${GJfy&{XD#T3Paw_$W~f)l`XrfZ3jdG>`gwBEgn`Zv-9xZ
zKfZ at OM>{o2mXI~B`Z1CV-dZGH2(wI)_*k?!_HmYBwT3- at FHjT#8#|rOJcS<qFxr_o
z|A1Ci?tW~7f4F}fLnub+?q_7Wo)guaeEL(~SldK68wuXsh-KgLj6b>aXpNF3X3gt=
z73p77OtQd5mf?VmsD@}cqg>08&((=rV)CLVgFo?A{K1c*u5*3?J=^wt;M0e?#`Y}O
z;0Fulolu#Vnt$IQ7>Pbw3V3tRH>bFN$4rfqr4%H#R?)onXCVi3Rsvdm>ABVU3JkOW
zGV0 at 8#4 at 8OR`7>z!yoy_^9$$)c24osp}7T~*%a_Dn<!T2nHD%Mz%CMhGtSDhCV1-u
zCo(?&_+*Wer4}Tv{b!hsH%E_LIf~S{Mh{*Y6<4_Q{HQ?43RrLl{vJQ^(D?)OryrbL
z&;eAcXni)K()Itm_fZMzz^Q|$Hhk@=S#}(luTip;%=VFNc_(UG!7FF6?xRpVB-DGj
zoKO3r-lG7v<Y{t2tU(fk_$l0hzeC%H&Xb3JYPNDCRlzJ3SjW`oX}}!DM#SF|qGnur
zY9odn2j<y%c&-M?QlcFqn9(b+o4!4O*j1>84?J33*fxjramKojTVKjr)FMDE=8PMd
z*^WPQR~Y=c*nr-9tbK}SF8a)!0$<<lxuXslrm0efkRlj~L&n75yz<Q9Hl3`l%~)E|
z;Rts1o5A*#V9rX~K`b@(QJ>blc&S=!9m6q^Ao+<6p!O%ejLtl{_<){IeOGXo&yc2z
zIa6?=yrWU^GkJttX|WN&T-88?eaAAU=jtTM((=*<8ND34^3`Qf=rn-aYos1p(hi?T
zj1>x!d+g|?C9z at lp`XN$-*?t^)Xxj(;l5-+KMcWFAWcCzs*m~D2<_^0R0$D_Wh?jh
z$4@%uJGF;ia-i;Ciws>}#(7?%`k~PgN3ZM^eD0-PQDz!+X#$vYP+J>P<uhM{&cVe6
z^yXEq1!_iBlIzkm%0`L{s7Ter=ZwTe+946x^Qn^6_03CA?r0z*7ei}VIbpdhiv}MZ
zTbH_#OL%cRd7QcxYC}u}wE^bw<6lLy*~J6&)^*7O5O*sX-Qf1!n&W9fy-*<u&zp&0
z>ms8iNINVtbRjaZwsOg1Ql;3*QpQuoYgJvk(4-~oaxu|ki@@C1!A&k6ps(4|&#4M?
z_t#q7b+Q1!`Yey9>LDwJ6Z#r8pqHeR9$15EF0TN$a;+-?pjLs5FE<HDrBcsCB`ks(
zoy1Q*g8FoE0Db+%Bh{|VgkhHpa`ct|>w;iWPYYuoKYMwLY+98t)L+j>S(=FMLzBUB
z#jSd3sn&8-6D!&s6jm4Pf`SCF>&%1T<`)OhTi5h6*vi}Kczi|0&@QNJ1 at KjXcYnX|
z>6N=xRaw8RNvlx<dWj+$F|CTSTM+}41w9cc!Av*x5Gi|sOEHc_5j}>^9XO*>;patA
z!x-Lv?dSsVmJP at AueyD7w_ol8wU$4hKUb7yQqzs4ZCWMP3zp^605}GSA`2<17B_^5
zB1REr(36imOFVX#fVM{X=dWH?fLJS(qY7R<1=Mu=WUYKpOS++5G^MtsX&&{R?s#8H
zU{<FuoT79TAodlB*LUMV71G^s2ARX>1++23rR!N^(NF*Y9Y0A#K~x7>Guk{2sC}2W
zKJ{P$z<n3YwP?|!wCgP4(zR?F$)>tT;>f8ST24{FVl|%lf at 2r7Bi<+_mL|~oL+1`?
zfR)1yzV~%2D!}!pfLSXrKQ$~|;KQ}#SNUs4Co at u4d+8-dG*t1^yYaJ!x;=EB*47Fr
zt4(QgFjoV{1sUk-bKxX9w`Xwx-QTdh;nFes8U}~20Jl3B<P<7Wm2afHSt;{|vEehj
zj-;HNt-bWpLv)5t?L=n|oI<4wC3hi5F2KAn(X!yRszTytp>ud~0BwwL*@gk${;FkN
z-r2`Leku>vQxu$l=^Vg<s1${zsPOonS;nW+8X!v!&<>qD46akT-V6AzE{wCD?WlNZ
z@!eA!aF8w%<p5YU(&8;wE~l9gHoZm}PrE3{LW-d!fa%`tB5}t`KFfR8ky-YQ*CnJ&
z641U=;;~Eg&@Nh0>{3|>;=JZZE3f6=x|(hD#}^OK)(Ee^WQ at 1IVtJQ`_C?D3RLUWu
zl at -TCV4I>54Qde$n{87keD0B1PR_a-Buh=MQ{UY;Q!8{sx at m`WQH#o^S$ripjGS7k
zs)$F-iNymn!1`r<y!}<HST>YY0z%iNT1c1X92~S1^SZ-M6|~#|o*#nYbB~|k;6%L(
zd`X$u(4JsnEZ0>9QBnsL?W(jZJ+iL^hYK50$HSjoTtFKm+;rs%ZoGV1mzQ4Xp}Rj_
zctzBNBX5DA31}GbA<<JGn&|Kk_n)ZMjwJ?YNruW?$|*a&D-vDx`wMyV!XQz#TOmP1
zx244dbl}oW{^je|vvqafvnE=)Gm3cx8$Gn<9@&PL1_kY~hzkGkwWIa^!X;$}8C(a=
zF;3&l$oG^6^CgE??dHgNgAW$$JFIReH_gQdG{BoKTgG?4W-YCR2wGRvcr48SbyrCT
zPfboUeDKsI?Xc`SKF^=teUQ1j*nep_Xp>-uw;}`UPD4BN)ao>S4s}B-1x&uuZ`y~i
zl@;d)(2c}!>zg-l<CQB4g(Gn3YO<xObX3ybA_3HDif&324Qv9J{=@?Z_{`VGYqTsC
zP!DcI1~;98RV_LxRpmQQ<HpN`i&l3Ccvrj@`cH2 at KY#{Ux2(m_f6o at K+&FaFI*;zu
zceR#-DCL!sonSGV6hY%$s=V*hPw~{jntCh=Yb?XAz5!{BR<K#=o>YJpL>HDuL=gK^
zy|Vf+9RTk_^Su7c&mW)xE?YmyZ at p_PD~4?h4qbWZsWM&>4-^TO0BBPQ7DKDBgdK-x
z_>GT$gSmDcAifyp)$!Ei7hX8+SalsTxS?nbMs*8Tu_Y_EHK^1}tNQr!0l+vHMqK2Z
zYMl!^#$_F5>^0{X&;ZwM8|C-kb1{v?<8f%5Qsv2eF?3U>vanxbw$mUH#FqFdq4n-v
zj~(N8KKW#gwim%vmHQ5SnA>;%R~%<QhE0Yp#%}uOU<bS6xqQPc6`*U}1s>Y(5&-Ko
zObd3Qj|Z7UU4~{3MUdf}AQ?FSfChNOrDJ^XhqvNLabywDDGrDCE&{l$ht>k&VN3zu
zAhFl9l?Dx(B&LPX<j=mimk)hmUyZo)tyPHSidApp8^=Gx{f9qt_J9^kvi_}@(aS4M
z8(A<Ou54?NH+59!i at wsD137hQ<{*n6y6;t(l{X?{UK~IJ-2BQFeBeD7;w8h8g<jBf
z;$wzakMq6@)WK_)sqlOnKw?@nrH_{Mp{~jMKJ^Tre(+e0y7L*>iEz>An-K#~9RD;=
zpFDf|A%ojUF1{5SD+6G&64;?fM+MmN$fs#(>d at 4qsf(b_&`t)e&Dag^M(mkQd^qco
z6whUst{>pSH3 at e<dIIN*db+S=NT3&aFeo{XuCy}9x8a2SkrFyXSwog7Uw!HX8<!8T
zZEasYQ{}wT4w!cPIW+f8+J2HXgO}28$Ii~v4_}1X1b6I_Fb_`Rekx<i>lQ04aZ+|L
zbyDfP6nM7`Y{hQ<S<K)CXZ-gU70>{eZ5U+Z%7m{yeUh2BkE#67dRLGz6{*tvQQ`+S
z at pD@dj4>D^Bu22tVogFjgNJrav238pmenm1Tkk(yd at pTi>m+-o?`PH>Be4l<`me-F
z<Lp4a{2HV&gg?0lIuqsG6{++`%$w4<0PMnBI|Z7U6|ci?{Rzy_*0cKCiw<aj%Qp_P
zWlfVO_RTUrofYgxit4)999^R4j$XP7W@`+IH6$i<{BKCYT*q<$Q&T9yMeF+Mt2fmy
zE}#)QI?ax$J0bDR>S4xO8yRbCKI?zWEV~M`>=Hom={RJw6je$J62Y7YkCF+h4P at wY
z%=&j=H~(8q-`cbOyUF=FId6OAaz+Lc-v7xXeB~SSL7uB5Pn=pTf+wU^#F*IkF35Uf
zOelPj43!imBf*lU9scCb!|XXa&%b at kdbX`=)ks`SN!j#aY-nIK=a2K$?Cq>*Ze!T4
zKYLIwe+ at Ev73TQ8=+vX=^dr#O3w}0sq!m<JNdIc2?^4Y0)tF^hAp_f9_)V$jd5qLE
zhv)gD&m7~EU!7%sJ`5U4=nHcVC5(QvMk+ at belFHyj0cl}I5Y;DnRdvuO{#6St!?sy
zH?HHxE0!@__w-m4>F!u(JGUM9c{)sC6G$4CR}a63O9#I5tf@!WzwJBFK7gi^;ASCf
zgKdKCLy{qAtU#J8&iON(cR&N2oO9gv-~=DObA~7Pc`SWcnj|Dxu~-v8oft!66l3Ed
z9x)EY;l<%AfbM9UROcBUfNQr7 at vb*+<eJUH*m|_=IRW~3=PB+u{0q!8j%|Rou%dYp
zHw^tO%aW}<{~68;hhAu{hT*b}{k(E(6Pq}8ANF+8a;%WVpwQ%lWK87MLe~)jWFMN;
zNGOP!?PNTCWQxykKg|9U^E7P2nvoXP)=J0=u{n2~r)NHkH}lve0J<aN4Coq`Cl_NR
z>FM|XqIl at 42S}armF+Y9%{?=G?!k~$u at Zv6#8?t5BsMg17o*tNY(&KcO<Oyp1TURw
zhg9cDwL_{Mkc^T3glo5qaov^`T(@O8+t&0m+~25?dWP5MXy*xTKl~q2J0BQ95*jED
zm{r_3 at Y{^ojWwW8XA`p>9^2jK6JMU=i(iLM3W+gTYe__~R$^z>d at q{Eli}z@>Jb2)
z(IL|gPE#^6oMt%hu-3DDxXH?)7DIgrBLks}>b6zG{D-$)&QM>?O-={sgYAd8{qWC_
zGzHrbY$F7S2)x4lFqib78<#%c_L8k1V*^dzczKg+xAwF9Tie|IaGTq|mNGFFa`zo4
zB%0HYuoq3m;Z at _NugW;0ycAV^D0mWZ85|sMb6|WHiB11T`V+qWm78iXKZiN(1iEJg
zYr-xi6XWfj{%_gp--fj{pr6$SS_zkLOt^gGAV2i289NTN`RX at 2eEn(9{$nYbgVaHq
zd7O7>oFnZb*b at xaBp4H<K5LuU#AB>yY_P%Ao5r|i^D?g4yo?K0_SZq<bC}0*((Nzu
z13^9w>M0_${c#Sbk8pu~V-4stvA#yaRhtv8+8kQ5X3nwuNQXT~9mghMYDSryO=)Kt
zoy=jal2~Q1PZ$}nEFWsHX0*xr6)n~+Z`9yDOUrzl at y=64vdfq_+$jd-YG6nDcU(XX
z=oj|ptYzD}ezvWv!S>>K=nhBbo-C%6l{4GJYKRx6>^GRsjxdz0?#a(kXCrDWY~D{Y
z(b*fo97jR~4jpGonsDste7<KtLk;NK3WekF{G%1G+<oNLk46lK<cl?+YwLADd!9OZ
zS0#~^dubD&hr%*r3^THyj+?6iU0d(kj6clbxo;p=!eR39)!{MJu;*pJ%F*<(8ql@%
zu6=XrQ-M;Lat?c-8)b#0<c&5(IN^J9uV+$U%G#WE*gknX#^xE?3V$Z>XNu{+VV3ZW
z*;50$wjTA)(;p|3S**=7gRzuXY}}YC1=R?!w#?|E8ql@%o at Ktn6O;ddSj8q%NOKaw
zT<$UoCK^EPv^TrN)*SkuxIH%WQQ902rJ}|J%2Cjc63}^9tDH}RkomL*bZxz3li6-|
z&fE<)3*Olhw_lZtMy_xeOwni)4bAJl)_|_9hXTRJXFkRphp<)xe@;x0>#9lz)gFYQ
z{eY?L+OGj!TTj at o`OmR`{yxMiCJ~G^u at 6ewS|Z;*B$R`m1cPd9P9ePqpCuC%9?3ip
zOr<<M;~398iqNpa%09#9e#^F&<-&%LETJYe9(bnhS(^xhFXEQ56X{O2&wQMYOk%Am
zc6sNXSz<yZm+f+uBZPxK28V{kv}!<~t$lOe@!>r)+<T(Ktil|Sil8QFrcDd|4a0yD
z#;ov$u_m{SHP~uHqnci}2c}YfZ{I9Gy=j1}hF_eb`FVeW$7cV6akqmc3H2FbVrI~q
z_`K|ulEXR7fmKvZnE2YG(CJw~PdU$r4$SdqyJwkIaG^g~I4p=2GAlR{<`l-AvfnFD
z9-Zf7N9TFVSd(|IXmWY0H;bZ=WS&1dFvqSr&p`6xEZrSH!(%faWzXC_m?WITT&A<u
zRO&cl+pefV7hG8+_IDQg%xDehGqrtf$FDs-&F7DI3IJo{qmi(KHiBE at Zi;+pO~=Ct
z_5AIL4qu*1dC%HD-Z9#s(L+>Z+$q1icaATPr+oj$epWWkivZ?X9-H|n+owN?BrZ at 5
zQ*O2DDoTpGRk~-gl~YtzJ%eU_4d^ok^DjI#&3zLoBoYoIA$-k&Yz4L9H8E05SPuIO
z2?2~#4twR-56pAW!;da&(0qwO?N!;|@x1?Vo7;}I8SA&)JlbINJo0B%WiC6xWAh(o
z`}C)<iDDB|XwBBfO1ij(t>n&C#h`qDai$qVY^nkMd^Y2h|G8(D`zBLpNc755p&HfK
zg16QP_QI)nP!%LmB#yuPlVfd+z<Wj;^u0v9de$rV%{u<{c$<eOQcTlu!?Fh32G1WQ
za at yfY=W(8x{U`_KA1<W1Dww+qlJah_62ZGb28;7jRAJO^sR8|b_NnnUpFPomhKV%8
zbc4DI<|@!dQ8A$%Z!zOB0$M>5;ZG-1I>5U}8;re(pq_ThL8tu9$&5RvQ;yGjOw-UW
zaPw%BHH*xjopwldmXp~bcC|ml?)iI|_s2;ZF#~8r0>u`=ps6(VkxHxL)10G7ISiJS
z%}Z)PKbIZuc>em}Jaa_QCXp*A(#@ZZsc>nDuGy3=TPr52nCPXASN>|&vtLu*IbgZG
zVHi4(OZ~W0_NJcC%{ji5DSJB}Zw<Bu-YKsguv|a9IH%vM<D@&lbb6Qxw~M3MBOK3m
zFz1g3Pu!FOz}A4VA+23j)s@|<c(#N|Wt_-}=}qt4Q-HqfM2Fp}@Ak%34t)xjj_YB5
zHB6Y>A`7m9#5w5Vg7>~RQ=UGV^5%x&O?{S&8;0eJ1niSu*`0cx>3F`@@jU31aU}G0
zZyJm$-WW!`a?5aIQU30U&QA8se3iZPUuGiPg_;i743mIO!u>Bc%xaH)$HVE8=%K4U
zn>oExmI!2xldM+DwKbrh%Q96Sm`XY6;ybeO%$HrzL-1!L49*fMNplWzF;VHLz*-~>
zN7v|;Jc#!k^TOYCl+U$0yuunTOAOmuhRunvE|D`<L{2#6Nb1=$?|G)}*zc4low8rS
zB__rJrdU9{3k~33+pyd;aBkdLaqO7-EKf{+oMW9Q1C2;xEk^7~Cx%MWq&!`+K-J(B
zP?v3da#cfB!jv{u)-|uM0sUOIx9!>2_9aNGD_^k`=I2>ra3V#J60V4r0ZkllkuyHL
z1~2Iq^(M?o7teSqe4*p{{H$XYuu_#V5rzbY3 at o!DVH55PrQ?;URGG{?GY+P_GNsC~
zOqo=Wh6((?83M1I?`zK4)v!#Je>0ezQ_?5XIlgx6LwsZ6AIX@;RDqm7&jD>pFKsG*
zpzKJ+DXUu7Gxewwya)BlkZxiySy2P}x$HpOb1e1G=aMRsb`{iw0gnh6jZ#PaI(}P?
zghv~fPtmA^81j*)M^fc*7DtQuFsUhtCrI)kM;<yFX6NRdU2+Q45G09*4J(OAzM_O1
z!T|4R3YVUP?wsj7UpVwX!cZScu}K80E$KvlnAq?#s6Y~X1eUzH9DpfNj`KOeKvfa-
z@$^VB7juJsGrep*0qDupGo3A%3tjcT)qavbdS5RKSza7Y6fT;Iq7 at gUC|(6);_q52
z<3I!8gFB0JJ}jhONsBRbF)*!)022A}0!gu;MPVTbDvZLV3A}sog`aY-j(d-Oke$<C
z0FwsKY`Q&i*^YSO*BWV=#xq41kV8dXJR=2=6}-WF#k=4));3;U1N!+a^<gAk0c00>
zaqfNdG at yyVb^<mIbEM*tRm1WwT1?ea0bg_iioX&)7MlNF>F_bZBjGA5fG${<tDrU!
z)Dp9nM!G1H5FB3%<(K;{<{YTT6Vo4O=gj93o0i<zmL6JcH^rbzDWtsV4IahBfgpmG
zCp(;ye3rbEI0aTwC#*AXpkW4TKtJ!B5J(DLC;}~?lH{w%h(JeA59$iG;{>_rdo)}l
z&A}ELs|Q!=(If)Xhe=GRqKR~`7+vzLl;sWiA|j<%#>5ay%T?!RTEdods4F?td4$I&
z{}yj&f?8Rj6=nhDpu&}@Pzxp0VyFmGfI8lB@%-e>!+R}mZ0`l<JR4fCCy`bS=;yPs
zhA?D>iB24No_lDg1rHV@;DcfjvV#jjUCufzz^UPDZ$iUCl{hs(!oL-64vEx63y+%*
zT0hmKOr1$p at 2;?-%443~`GG#+JBE^TSixp_bn>s5<1i-CqF-|t%@9J-mQ;Zp!Ck}^
z6`G+E=|}DdJg7vz?4wsUs8f6<tZH1zu-(w}Ga`Ee(Cb^4Rf(`~&PNH(hw{3z{I-<g
zOaO`I%0?axR+J9V=rJSDr39}~f>o(_RU2*^jWk5NXhyk(U(K at wtWFE>7WFOgaC4vG
zM~0Gf0>ZBO&vVp062NTf(vz#T_?#{;Qr_2rf>lUb9En=YU01bXl(jcO*>H+?2JeNn
z$!qDi%jk9M2|#ab88$R64`~*Iz6cN#`EtHs+DJo8kl?x$4YZK!H22mf26SE`Gtn-s
zN~r>1K~-5U`$?&3tFQo=+O4wqpbi8uD{pQYesaJvat;ZUwm- at K_E&K-7qn$t>d8pi
zU0;gWpz?LjJ91FxXHsL37`=7ag#z9?ytk<Lcqie=lx21ss~VT}{Ct(30d&I%*Nrv!
z{CJ0x&X=idM at 339g{RFg9#lEEltH7Hf?lYEC0cbs012fRFFaNWcIjFbq*PL*OhIUc
zVrZps2ZbA(mj8RevgsU4LnpGGoN(Ju&yy>|l)B26se0vVwy!dLDd+exYW13H&93mu
zE`oYp|7#esOQWZ8&uj|2aYd7h25h-xdyQjrgC<PoL%`+~bv_I~_eu~*!_TXWe7XQv
zc=W2_$9(lM%##j3A{8AwdSheaAzd<Eev8G8NX2ud<k4?y8Gd at ma!KplPw%Wh%A6i4
zlBQKj&cy6#(fXDOfsQwDL9diTr0kaVHF9Q;s^YxjyvI3@%RHm at 0@k&z>B;R@&*q_1
z;3XfLv94wL-u3-F@#GY3N2zyJU1*M)Jl&nkba_I>mKTtPMPsrc`H~m>mJ2{hHMHWb
zqbg8(vr28SR`{}0BvZaGf%gnpHZD>XUE57ng1bsBR<3hv_bDpBmM&H#vLI^J@^osh
zYB-NNgLi^+ilN1Y1K+~3#x|CSr3r8t=!scfx2$aP_*6e1JuqJeS;g5m6>1TJxB}!p
zYSe1M_;S59)kn%8GcRnS!oz(`tVkhIbl(gj3uKH+0O*ufs{B+#c*i+%=B`*%l~m`u
zZ)hr?fvyOzoBm6MV&odTc845!_A^k8Fmu~E#W|06u&#AA7xcZpr>9;mu)_(kvsVB;
zm>7Qa!a>GU&+SLrC1`WN=0Ns2u%pMdQLi?+N|J-N;+1Vh1 at Q~KbWSUbKTQHfDq8M>
z_1cFU;bH^7Hek52X=p5Bt+hy)@a1C>qDF=lO21?BNKY;H)QT+c<H{l~-_=9c4VnL&
zIhefzpFzK@=8~aX7*5u+gluO5>;ifwLBFbL_|=Pt>9fMe56nlMS-`k(C4B{~IkEKl
za~Hj=R%)elYN3VfR}?QvC6F`=Ds at B_P>?DRv~Y1h-m<)Vq(K8cFB)yj3<oc2;#<%E
zv|pgaRD!_#{rWt`9Z#Y7?qF7nBnmhOnuSO4O)eR^g^jHnSYoy-0e1J=yBcd6{_ABU
zTsPL_f9;s&NE$t_ at fFV;y|q+mh#>&qm=ffs at _ng-Iae^KXxN-eEwq9XAA~MZ;q3#K
zpC3(FnVcrmvZ#O_#b^`tokEh2Wf?KyR3XGh3XE$J@|E8%K2D6ei=fz16d!43xS;<A
zE*ttDmZ0qxRedASvqLkcQqKo=&2Z<Dd5(3IcHvE{Td@|rmU~;XU?YH8KqD&2m##oc
zsz46UTLR0B at R|Y3dxjG(ev#TEjHf&K@`?Y(c=lvhNhlS?<8%_9RFWzMy@;H-0CI&t
z2S5v}8kh5?mG5OVxnL;*`c0y$n}NrH!Cro+2j?9hJ21!BPNeLbb4)l-rh+#WVCSi8
zQ_+uw?n2-qAe2*f>F3#pm_?>3u+j<_G!57GTfTiL;ezIit8{vG+;`&l*gpG-vhb){
ze3Z-Nrc^){a{W_)oO at +0U-u41>;=4W^-r><adjvkT|!-`fEnOQQPt7tp|4sB at A{-u
z?mf}r(aDq at vl+YQJSQ?w2gsrZd5X90s%)o=LmME8b@>S}YK3)8%f_Z*Ys+v|({N3{
zrTG$eVcIu$ANP#^cjk1wyC|vRsm*CTb(Jd at -njbQm0%ujY~=MTf0PZa>sg}qDDb9O
z6s8{r-nG;|!QqbQnYoMu^Pc_lj{P0a;f`lKQ|47k5i(Icp+-3|q4!-P&@wQR2+JCV
z)$v%_Fs!%2+C<pUG%qQL7kcThp7?#fIrH%{u~Mz+D0cQ#lA0CHT=mWcSFSuRZ*JrI
z75|>~t?O9A_7M^J!94Z-k);UeHBG~sW)nukzQoB)Iq8%cugrOvb;_()+EHd6v at l?W
zmI(bK^cxs3!jOUCq<0&!8nIk4{Jl(OdpOv6sLVN;lInMDcc|*lmDg3ffvpN_`(DX)
z%YTT~%_~{r_K~j8Tvd+%tEjDaSETtzxqtExIG%0qDjPMn<k3|2Ms%qfxkq;3JQ&|#
z%fMTB#mM)utg&UOpPHj0vKqQ;Iew;wOpmWfeOK|C(H~`P^V+V=VX<3HIaM>Sz8-(B
z-;QzZ*uUZ0(I0v_fVm61RSzw|Q^3|5I=yXEodY~M`)Rhf{~9&En at dL?-Q}TkS<b_n
z<ds}G at Ge$2uOKmfFNf2y6SzoXu}W9eqpCj!yq{j2HBeiZWqzLH>C<eV`2>6Q&Z3P8
zW&xn1n$gc%u4w&hHuhalpBY<flH9YI0zWPyA2`KBM?g1$?ZAaKWR}3yR7G*jWs~fl
ze1JWZ4>LZyo7rp<D-DKQt5`F53EP&xjx~c9V at TrM!IzEg0xlJi&S?Q1PtwJ}lQmpw
zTLN~8i0tT6gcklp{DJq@=c=|IxA!gtGtb7ARn-D_05{d=t+pPtyMUWT#GMhKE5P0b
zY_88=Z9QbWMdVpyyyuG$t_B{f&tYvnVvj{kKC3;icB85zz$3M%uI;7v%)r$mGWA?P
z^t>95h)hKne^-4 at YkR3Uvxr>yd|*B!Kv(Q$YW1VG7vJ6+v3Evx*6E_CQ{NFONS#rv
z?R=O<igEMlq`AfN&^ZO!0bC0FI3bT-TWyPJJ0rF(JzFrpAP>F3TMKY2 at H^C{r?s7%
z9VJxF{h5?qad=Syy#U;|5H<;1O{mx#tglgR&tWss8$UwWZF1XU{G*G`f#V*<F<?_9
z^P369PFsOB^g!FO+Fn#k3EjDN5{ij-#~5rcFd-t7i}}a?f6O{8Iq18)H2?qr07*qo
IM6N<$f at 3((RsaA1

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/apple-touch-icon-57x57.png b/ui/new-ui-samples/apple-touch-icon-57x57.png
new file mode 100644
index 0000000000000000000000000000000000000000..da48961409abf3541aac7f903b82d34ca53e1c41
GIT binary patch
literal 3613
zcmZ{nWmFRm7sdw+M%RcDf}|oKHEITI3>YyPC5 at wGluAkGsKF>f{-A_^KuV>gN4JO|
zNOwxNAV~P~etbW?_nhbc&VBBA&bePN0rN<cftH&V001y(p^ygGRQ|81sjfQ_f{(lg
z&=HP?0{|6?bQd<1*Yiy~lmQw5 at D~LDLL&fxKi5|1Iso7;4FGIn0RUJ!0KoYovqAs<
z^@7S)M-zF?>pD{-g<ON?1<K450H6c^S7d-UnUHG}<fVmH2hD?M!7_5M`_=NUuc6mM
z!i{iqvv1vqSzX>eA&x)&>YoSrG|kDMQu5%fh;70n=|H2ra0JE)pCals%wZ(&EOck2
zsCZa!2UJqPUs7azhLMjS7VfjKpg|yTcpdP;7)DJDNUX4GT^P5TCT)=d=CjZH`!}Kk
znraSg_pDrXkDgd<IR75lzQ~sId^(Wf8JTT#d^&A|rQ4TTaK>^a9nKk3 at d9fon8;NC
zqGZUG&O#%0V|L@&k0lny)y02RMz`ZbJQLU0RE>_oB at KIs#6w=ECy5~ARizztt4}C9
zU6$M?dq}=o5oNvvQioMohSP(44;0Mfi!kzroZfvgjR^S41TFrHBmW(kpzs>gPbjT2
z+B4OzEb$P4*OIr0l>8yJ&XaXDlQ2ckc^sEMlnH<ghYi at ZB(jN(a`E*u<tvF}DH4)7
zO;T$^8gyBuY9zcrlM~TMeAa|l5?Dz&1196QV!kPTGy;iksiIKkFf8Jb7DW)%Ka%O2
zlM-Z)P6aqZ{J%}#7Z%y(?@_rFTs*T{zjCjdBj?BHBLonf#?l|sSglCezRSkxLyN&t
zroe~XWIP<dVqWsvEj5o55*U+G#Z6NLxot+mLp#Ie+$v`opiHR1%|9bTh7so>;Scwf
zws|^$kxB?!F*epJ<~(Jbf|`<fkJ~&x<U)CAS`j?I9~`qC7~LR{OJX_^c`}%B+GCO&
zlvV|ekg-ytA-8S|&1F_i`Z3+|tL0QGC~m#*UIpI>M4H@`dN{}_BApFwaJv8}(5+Yf
z;%_6n5#f2mv*r#fj*8Iu=BrM~j+;E~0g6-Lwy(O?O<>}l{Yo>O^q_0MVYJY6NTns^
zBxf$#&rfOs$g=Uw2F~m#1Eik{fX4nhfmLvb6(rRjBwi{GosSEQ`YBge?Tv0bdKB>U
zbvzX-z{0}-zSIJ at m>8zc*vu5P+<!2ST0GKCEf2}OkZPfto^K_*s)uQ->LY<$c7i#q
z_oCeyQ|{$2xB6k2TQ#Dj%`^)O*66h6lXh;%&xmvBTLOTi0P8PmQJ!d7A7cN=?O<%u
z`w(Br1Jrn-({69epPLOk4k+7pTt>MUH5VW96?K-=Qnx4#D1r5jTxWCWP8;o%6+T%2
zNnRY<+t at RsXumZnmhY6*E9muUEii5diW=iAwk8q1W~DHbbwG;;6|9Gj!5W at hcKNlI
zI)@+LiZ$-huH-J3=E+cbXr^bkUAl5+?LE}pD&{OVi|$>c<`aHb8vjqIWo4SZ at BW2q
zR9fEW4+%v(pWcW5b~|i`;(b10*T<zqxM4vAm$V`OZKqcx6|IBimT)8OLZ9r;2 at e*M
z7tMjUiQJLNlY-+WO_?19(W;we;HUHwT(%1}JZrnlnW|$q7K?h)cg^Xi+Pd60f?mqU
z1uqZpUMWRa4GA`F_|q!7X8yCKC=>@d{Txtk@=0L&kMOg<kQnT^wf5OSV)E5+cW_jE
zQFctlK*5D-N=ME#4T!QUrQWH}Lc{DZ^4RLuua~eZsXwNgJ=0E2gq(DsasRrlt^;3T
zVQrC=j<$Wdd${w>BL**m-MXRpAblNkUCPuK)ePLbkn)sKlXUDImZ2peb71f7`TN>7
z=;Ip<3$vJzBoUp)8fpz0im1(>4s^A{f%$yiXlM?VB15yfkKL}`rJI0Y{y4+;K;Lj&
zm8$>b*=O7I8T3`R5Y7#>uCF_Z?V~_BP#V-z6<bE<i>nUo_Wqf>mBQd)|EUcUSKPVA
zU_kYl`N<Vad*_{*IS at 5?I_YIXl^yPiIm?WY_Dnsh#>-}KWZZJDdhTR|J4~203M4U>
z2@`Q)+IfF+YW+Cy0H3}TzSP*9KgqTm{~UZ0e8Uijr2^}UQPCDzG6?0g8I^%D0*<p}
z+a;JTrvK_5Ec}oo@)N|~r!jp at tlRntPm_9RQ{5-^1bO*Qt<FyJ)l#cpbgCE2!4&BW
znzH5mIeaR{ShzZ-IhOBCwuDR83*66g+;1)mTy;_5S}qHb)+jW7FRTWkAAn9=JY0?Q
zx$BVczm#DQDyUdZ$Kl`yC+#b8FsUmBn{6IsUM$ybyJ4FVBYnkKi7N?NUw>)^m-#G^
zMd0d?`x{9$XI4Q1N*B?_c3Ng4%jf at cGc{`CaFawwjWt{n4`DLARIlRto}h`>M6$?f
zLC!g*CXP;$2AjsPu6=g#>H#Y6klk36uWbO{{6`B3<B6ipn=o$C>Wz)iP`$@kMWNBg
zf0L*(G41>_bbICBT1xN5Q~(eeF<~m|9A at Y3^Dh?(Z{0}q$`~j9E<-H{^a5oo5D<x(
zmr-0P5uwqd5BpAM-|<nN>{TzbCMPrzCax8oJp8_h3AfM8E67Mt&1HmU<CAh2{kkdz
zIhlAGVdTLaP+Y6ayCj6zgT%tO&GxOx&~X1&xYW;1@~rWpz$LF<hYm5t(hm#rw-zuL
z+fzoyo058YH||1j05-XCN0>b%SHnAhR-6)57QRr;T*!42+MatyX{R3%%Pk?ZY}l6&
z^o{P at _-hw<;aJ>)KaD6aipj`gVXa)awcsnLez~E`_i$279Emg+cDWT8GR<~;68XCv
zsU8D at SHJzsGXME0<G&OFTZlo*3}lqb>Apzdek`lsx)+=s3AT;BU!ONXG2P9<3~H3C
zwqz)~#Y+&zTQO~sIMESvsmIE7^v4{zV6*lgGpl{c<RMoZ#+KFQy at 5Psd<@~E<aM%t
z_xJ4XpB#2xX!s;})z!Zpch<}P#nWc(0m^sz{`3(Jgt&JLDu>8p=-NsiZkW`Y4%ln@
zJy-h at W*%Sv)H`g}&YO|<7=k7Ui&n7INAH|(5+4gaPAGtQUOgyf^<A7$kuj(v=I+cz
zq8cEE^}KF;@FQ3qb^Gng^_TsX_mbC<k4}in*-e^q&4+p1D#2q(wK}PE2=m^90=Q-7
z&zgA38cUVFlH?_)<i2{NALzs0MHL&f)jOqS!Hk{;mjC)Om<N1M68NHya;NMqP98D?
zo9#SW*vR7g`^Rgbv`L#papwm2A_Sd<{Zj6 at yvnZd@uSDqsE(O|WTt0t)V;nu!zZC$
zQQuZuuoYJGCg-22 at R6M_j^x#!)yX={+YDyQ^!%&U;pM`T&ieY5EX>}lDZdjdro0vk
z*m*%OB^l$W1PS)v6>zk%>zG=Ns{WeT^LkAs;eP3tfh{E`4AE9}@=<}jK}HDGWs^JP
z0lx9+_Vec*rXn>oH!^a$7=MrU1n_y>pB_N^5};b;2C6hGBj=lWd%$?|p2OCBLj!Rl
z5 at AD@T at 6m1==W9+K$sO(e7L-s&#+V%E}|j7c`iN7X at Bqbyvoea08QEMFxxf{v$n(J
zwsZ?B+n+r7yqm!6jDh+fcf^H)pG6_py*Ix-Q`fY9P`gNKNWj4#H}>Xy=aOgx9UH#|
zMVnXI;>FBS^Z}ucg|J4J)cNA>)B&t<Vfkn9Y4 at VS+pj~Jq1K+8S2sx(Dl6!g*GiE}
z3DVu6v@#B~mFpL(&66h=Uy;!-W!lq(Pz=IUc9AvhicOVeyLFNZ9|;k$)EcdntLY{u
zN~>ID_cO%58g`)Zg+E>KuoL+l8@=<Mk^Z}~0qOZz!ZO5;KAagU-D(g!Y(m+4A at Ib_
zzdO^`AP%xIyGiE^tUxecXqH~A5$%+Y=#@l<ciD0t7j+>>y!vQ*A9gUuB=|AC at 5>Rs
zrN}A8Aw+zYJ<33h?S|fas&M~saFki%>m#UD5N1TI4siBmG&+hoEDi{!lY=;uw>kMF
zyxsLC#9-A=eT8TC(>(sc at 2vS2AG=j4p<kKj*3lKRVtB0u_HJvf*=od^{HC1XT-nTZ
zFnz5inaBc9C=6i>r>*Diq~+#{(N*kmY4ACRvrnJ6vMdhdioiCw{C4*JPpHk)bD5`i
zN27i<jHxC)Gu9eAv2<0yRD3;;f_iPK50-q at X0gyP$n6JnGrGa5R=?K>RXuokRF}|0
z3LT#`%}Th#UKS`SbK%})5EN(UF_l{ksz}Cu{N-#!$uJvHJ4j)cmQu&^nDb#oMi1qn
zMXI_NovlgE=n8pDh!!C{?7T;g at tcyRYs2d#0^AlZMCO8-_J&aiTE6Apl`wloWH{hW
z7-zOY(C|0tH_L=;``j7<%!y5jy+EIVB@)In-O at cbu)szrKPof~RTtopVWDY|{bqYV
zaJE8`Nq3EmKVpIoPh%+&<xTmuAlE^y4fC+0hV`wiP9B=5Xbm)W9h}6im#Q769<S<E
z7W}fo!WU<B_KLJ+>H4Y+H{tHI1eQJyDq>RRD%7*mJUG_TC1mj7ZwTuegrZGtTf^+h
z1)GUcaD0(oqJN{yLbj*Dp8ws{NT)ehm4UEru1bufe&wstjc5qE6u}YPnf=Kp(i2l3
zSh}K?V4`VnKy1uAwW;wq^Oe#A<m_E8hWEWm at 8lSyTv!XRwAvUvtEE}7|DGMZ+st_w
zvTEsM4>PepxPFyHywpv->}|XpV0Io3*8s>$%g9SgD at w{p8_6icpvo|L8F6V at n6&in
hyR_K<3AjDCcY5mg{{uOfcNMM!04?=L$WjD0{67>nq4NL$

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/apple-touch-icon-60x60.png b/ui/new-ui-samples/apple-touch-icon-60x60.png
new file mode 100644
index 0000000000000000000000000000000000000000..511e9caba56c8e2d7b134daed93455df156accb0
GIT binary patch
literal 3839
zcmV<b4gm3qP)<h;3K|Lk000e1NJLTq002Ay002A)1^@s6I{evk00004XF*Lt006O%
z3;baP0000WV at Og>004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006
zVoOIv00000008+zyMF)x010qNS#tmY3ljhU3ljkVnw%H_000McNliru-v<g4F*B9S
zL!$ry4em)qK~!ko<(q4aUDb8Re{1i3&V9`Forh;UHiMtom>SH}KtP6s(o#yG1QeyH
zSPF^Msuhi at Htm;ws8HG}AJRruX^|o|t(wrN4QT>R0<nrhMcg<*dD+IsU~CV5jXn0f
z=RVFkd#`>tV~@?)X71R=sQpW4?&#ig_F2EZ_H*sMg_ESJ05Nb2 at DOklumWfYgpaor
z7zK6%F9ZJyYz7jMY12>qHwC*C_%iT0p!Z at EoTCl{-v#~}=sylEC&69~{5`P#Vq1Ei
zwF!6>*dijxNuGW3e87f=M{9~iU at 8{mV^I?}0ULmRQPqgt?O!@4(20!N<`I(3HNvrg
zwt3u at 5tTc8h!&PEHZZ{Bz?Vf;KS^G}7tS at M#(QH7{qt`8n}NtxFtNqcB=wWnm4@!$
zTTNkcW%dcGqFDx6fDpi1Bz9oTxd0CU4>|JIc+Rl(Z9@!vZ7Y6vpwvDe6FZEtU_niw
zv3-c)XZF(jyK4}4W`nifB<$W#czX|_{}6g~1R4n%JfRdJJ)M{peYiC%u}k}qLfopU
z3y%ZeG*{T>-U*I;Z6~_ZQml01ObLTS#9~bj9-@@ymT|J7CeebKMO*7l!lpL}-}@<k
z>$@;kLqsrf1aXAM4q{7)gfxDQv~wPI?JDBC*W<2O(W=*Pa^(GN%kq;c$G-6{x>G2X
zdayRaU=cM)5D0*A7*imtHwX<sBaN_UKjDe*V}9}qZoGlB26Yx93mSn$;0jPIKq*EG
z5kU-LTR&<4Vf2AJh(38^D-GicM?R=%S>rDpqV}_4O0EYZ7Eys9;1x|h8Umh#tUigE
zFW5?S%JbP9Z<BoG8 at ShZV<bkcpak%MfJlZI12#jP0~^2zwh*Jmh^(2A{qRN1vOesx
zzS)}H?wG>}DjRMx`t*KG5+Owcst`1XMaj}8nNE_X<217|=HIds*IAhM>^uD=fA$3W
z<~wB8k<may{;Y_>WEQJ2Hh3g>$UKr}ka<u=5NzZKqjkcLJ*@zXn~QgAuN)(LJ0WtF
z+_Rc9lLdU1kfdYOo5x7PDAixPgwEesej;0Sbb|Ej|AKk_Ju-nLtK+Sr)}Vm+fJ=l(
zVw@}DvJ{hMIj|3T at ihj~2on^>CR?(-WnfJMwM|3VB*w(~;~`|A2|grbp+;7$BYlDH
zU%8x~&s~9QpZ0F@%umVwb2CycBdaeZx^gM;l7&cDK3vz~QNo at B`2X2Xc=rIlnc{qg
z^%;U9&Y(^R-r~h$E3NhMEdytR4U+AX7~>EGP(nyZl5s+JO7)&alt0l;)K?~2P)6)@
zjq&>rG5Le%i0 at iQ;h|4s*RDc3=FMzreZUV4(tPSC)W7*X?C2OalrWkCDVo*@R?&rB
zR8}v$u)yiTI^kG`H3bAg)sv<*WQEfEM^{l<*8}GC%|henuM*w8p0*7SB5h~!j5XN4
zUdoR?jCRdq;_+`Gher_aAe%sI7Us88dEgH0Ws5H?us at n0sl{MX4S3&x-oS!CSws1T
z?lV6a0`Zlram)J74tug9N87{q6J5EA#>N*(ckDu&P2AExO85OL#anM^d92=g9d0UC
z^WvQO28oO_f5XbN!vYvXbmgj6UkBC_->{bWx~tGe1I;p|R79ev^|a;!Y|9Q~BS;}l
zCUNTuRPUN~w=j1ZLCU3bjzY9N8n?X#OvwRCh*H|`xfI*c^0 at Y*sbvpGmlUy!BK&BB
z=#nCB>lR#iD>Xn!(2xR(7zd^RVlO<f>57T3Ez#ULLSbd~v=f5!sW7~YbkB3>*iHz8
zn37`J%1B!;(sl(h?*^o}3heCcXc<_HP`Iti*mL`Eiz-OmdM>y0zRE(P<#*$c_2KtD
zgFp5X)DukILahiB3((SyNcBOa?K&`LZ_GreVmznhszN;ps6r_g><9W)ZFmO$;tfoX
zqxTQ4xuC$Oyf+!e_kS1P{||^8##UoYB?9Zv&<m9Zke<&X?#%O{86Mt!xWNy8G0fK8
zf#4mh7h67aONBK{iYHn~DO#!zUdr$b?-3G at xxijNE{WT5E58VF57}E^1sw*fm@<eN
zLC3$3`cde81c|y%pT@}^-qJt8pFY{o_Ps(uJBTRarOA>@nmqP!4>w=lHl5p9VEnZM
zw5{pIRzBiZS_A3MZ{c_S6}BtEwns>@9dVs#D5LT1nBFgdn;BL*(JhVFJzxLf0p8ft
zz)6AF6o_qsk}a|Cu<*pQgB%;rrgO>}sy8kE=wSiG5Uu=8%))!nT0oltyaxgjDbzOM
z4?hhdoAKxg;J5bGc<G%<oE)DN04PQbB^R^f{gjvAo%rbC&LmgDt^7P{E+Nzcp&8JS
z0U2124s9e1zjS8cqhlHMrcMn_6(yhq1jQPQ_m=JNH!e2jsm51VW4hK8YKqo9nkEoZ
z#3<qt!qD?*I(mBG&WfcN3wjc4UcK`OgTatwc?<rrk#R`p^{9`~EI^ilreHi0TO{m9
zC%2s*cv(+ at o_32@KMhQn&HxGYw7WCS{4ScL*o~M7G@$B1GZ2qh5Su}53xsqgaBoM<
z^_P{%G$oJ`@KdOPp!t<A(0$C5jsqS<5j^1YPw`+BlK0VUXeO|;!mnS~MO!K0H9g@~
z094Q*>>g;6`HvTL7~g~XCb=_0?qSWrAwU>`^yo}rfLm90aO)NGNT<B41VAuESc<&<
zUY)&1nire#1H?XWSX4nm?pd<wOKYIhy~`=U)so|P?!1)VPD7>{N*+8nS|HLg2M6J)
zpC9>Hd08q;LE;=(!_+m^c=;sH5T?i1Gv>p$uI}Iu at 4b{#F~f(9paE6EXpGSkPi;QR
z#w~*v1#Ub!!dP<nl<!RUI;6A=O+1<fGz2u{U6dwuRJtLaj(g1jHX=N<egR*)cRsFA
zCkY8Y1T<J;DU;O8{LPOJ at ba$F54Z3<D-CtF9($UmAD_0jZ83J)1~jV>Y96g+=ww0|
zucJv3>AW9_drsVMAA9Vv$3B>_HNw@)%FHV(Tly!NtXrIkaVDY^MKls&>%IxPtCq#x
z1<Xg(S2<H;$M}!Pq{f26nyGIEQ at tE1E<&5*5EKnnC|r%{`y!@mJ;=0QPdhz4E+3Q^
z-<sf?&(+wmyGSH4ZAFOUgha-Pieub)eTn<m^{{+Fnb at 7v`t64*XvPbJf6lns%P)8S
zB~^RrNxy17s!ERmHutJ)n~}y at fsgCRXvXueHF@FnjDv%a`anj5Nk2?Yhne5uxn@~~
ztCm!`_u4)dbzGPzh}VSw8u|)H%x11Be}OfH4K1fJtBA*fcE at ks;kfr^Pyb=h`-2&S
zBbLd;;#>#q73l7;EbT5czfzb at l5<iLYBY2h7YPGwW<~fkMbmlyfsd<Nwya%lS-brB
zl(2fi;7+Hp^dPlxgg7eDumg<fE*5fQOKDu#N_U=hpz#XcOyX>en80Y*-EtapS}wg9
z8p{r{KlyLsqQglHC{0FMPG`;@ZU$v6QyS+uU!2X;K|Q<bKc?Xh5XUjrL>P_pHR%>7
zG%b60(kmN}HhF$HVF>6dS*|WS?y5Rg6j}@B?W}o{pscN&-Hd(BP3+A!5)}mJEJhqb
z6-$9uH!!pWTo20M?yK>gqfHu-AVmvad0{-|*?PtwcNe&=>^{_l0Bo&$zH_9(=NA;u
zcweSX_BA%KrSVT_G)Wv6u+}0|1+&D5Ea06h at QWiU|2C46R2;Twp=cozM1<X5`Rb%+
z0Qh9V(rtv3*1`$orQ`ifc`*q*JCU-!>{wlzSt`cT0~~C=$`St>gZete4dOV)Sxdf2
zR54nhYL;9$V6X7A(UeIe*n&l3i#h|50V`Mog8?2-0{>A<xI8F53PpjYSBAXO?_pnT
z7%CY0N{-LA*;6tFl>Uid at ao7vGHLe`l|6CM5;=#paw6X5gQpa_nHOC^;8c~tX2|EB
zQ#*D at 0|+PvMNlg=#PGH%+mk$eDnaw#42Tnq6-o#jiiXRgQ`^je<~Cj$`8#TIh+@$Y
z#RlsDt010$L4Ar(0*mCAD4N!HT+JFd5~0TmBmtUvU;s7bQ3dc$^5Sg-jV(BXwrSp`
zh~&3>#iq&wk#Nrk8n{$z?5I6OQaD6$3iSAxUo{X!k)UKrz&7X8+jawU*|VN6^v>c*
zD{xy!#E*|QsWtpmL`4xbpb%6DD&X=WP9(X-M!*OmD1{{OkX3%WY$<%;jT8P5BkUk9
z<)z^GP6nO&8&nCI(rg5ln5*e at bJ{?tj(ppE$87Gty({M7-U8nqXi!TPQ!tQD)#FI=
zPZv%=s{x&|e3`%_k>NA3rF@#~^&!EBG$+()*x)q}RRu_!o|0e6>dJjsnbV5Ls3Sik
zaQ$rVE?MFCm$k9F&GGL84R+K$W6gk%1dR;1+{0q?Idz*A7CXc3Wy}3-mKDyNu_zTy
zCsF8NqB(|(6f?EAJZK)J$<lz$s$5lln67B$TwnoqJMse&vjWZy6YlFR@~Qa+-k!*K
zYcgX`(=!wxGeXe`^CMw#!LqVoSXHoeJNeKdU7K6LlK2j`)t)3H;8YNkZ<kJ!K$LZI
zZS at hBmp?UESb&$$%LZ|;kg1}8mAwC*%b2wp#&~n=+w4g<;@t!y3c*qht61B%fyJdy
zAk2Abb^v(jyd42JU&^$}kz^Z(8gG#J3Azf)=_}q$#h&van-fO>;5;7kIIo&j|1m3_
zIOJib&hzw>A9dMuu^CU%`Gb9wsk2M}KM!hs0Q&#*QM~^Jvv*Gm4AteR0000bbVXQn
zWMOn=I%9HWVRU5xGB7bUEigANF)&myIXW~sIyEsXFfuwYFz%q1iU0rrC3HntbYx+4
zWjbwdWNBu305UK!H7zhVEio`uF*!OkIXX2lD=;!TFfgC}E;axF002ovPDHLkV1hK_
B4j=#k

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/apple-touch-icon-72x72.png b/ui/new-ui-samples/apple-touch-icon-72x72.png
new file mode 100644
index 0000000000000000000000000000000000000000..59a498c7b14870da4bf3642604e53411de735141
GIT binary patch
literal 4862
zcmZ{oWl$8}*T;A1kXS$@SC%EEmJ;bsX%Gp4rMpW)I+mpygoPyqr9n_YTvCy4rBgbV
zl2ZQsUOq3LbLX7TobQ?M%$d1w?%a4?ZB;T71`+ at OK&Gyyq<>Gf|B{H{zP>nUQoRSB
zgS?hJ0ML*^dTWJ$-?P}L>1zQ1K^y=;cr*ZTeJ_P?0|0(70ALpm07&El0FOKi+VrIE
z2L#s7Rh8~}A6JU)VfP^RR5S4b07$9-OCaEF0o}bw=&P=!Ot?%)LM<qqHKbSy0DunE
zmE;Xy&m9y5CYrwt#Dp!2Z!NVBb>uZTNG-LlXfjFKHdq5AQhO=&f$YSRG^UgZhFL9C
zI1jT*qK(|-E3>$qqap#s<A&C5#cWQD3XTeD3f7+f-?UvF*4WogmOBCmzx*kv3tQM4
zc%5)SKcAu7IX;g1bJ)JMcpAKX)p-=^07|BOA$@j4vSPYI0*BU9RUXenGB7O1bjLm`
zvf*0*rHy(D at Wp$wcciank3lP}EN_oy3ar#4+%U5dX5qV<YC^aVFbpdm5dk>ZkmW0r
zY`jbGu?bvkV@`y6jA6xoW%sIcGBEoNC_}za3$j&dZHw=4LCNU#rIbg5D8hF>{wyR)
z9BNn-=5GarJuo!CNs?tbGJ2=gSj=G{%Lolb6WeG|QhX`wt`I`K{IedEa7wn?w}HY)
zW3)=%^F$os=If{q?`Bn5k_m<mva}6S_Mvirf;40QXf?u=eXZh^A2YL<>dTN>R<bxK
zLBsGndVn6#KSn-ZXEo`+`cd>)29p>har^TrCCc~0dm|EvO*H<#EKR&PD7h=$f{qlt
z+Emw|V_ at HBRG>&imr^@IBY2fbL1%_Ap6dplY<Tt=1Y7WCNEtKF6j&e}kWvowy775%
zH%VRwrVjA6V((vp8N<kJcoCH8nb){bHji2Z<LRrlY4Viyqkp3R4r`*{U7&3;)M&kH
z8fXhB?++xCwXBs?vOase at j2qDo1BDwO}U_F43q+Ai`RgHTsUZwzod#puYuadrdo-J
zwhIu6=rTFhBdozjpJA}T9mA;O<v*o&*OuF*?J#v at 11)P at FS#`#KhECRC-Z8Erv3H|
zGh50L$NZ<HZa)tUd3By!(^H8PqCo9*a#6a at Ktk^^JuW{R*TgiYM7#(&3p`zU%4cW)
z1lgq8i}o!$6aHe~{0xev!{tx`>Ec?PP|ek`<1i{h6xNB7_`1TwoCRv??!voOYrm0K
zqqHWCB(!_hdwOf4*eGVXRNf$rmFDH7;55TDWJm at b+P7>;48GiYcjJXavY!)XmO~z1
zZLZT<PZ`ssIM0KFNlVn8AV8D at Kx8;wudyeH!<+6=8u?3g_b+j4Kg!j1GNm2*P`eLR
zHH3^ygZ4r-zkehEuzMsCDifO^-zn4XmYJZ+UX<^h4<d|wnQFy at FD9?|>ZlGEV?nA<
zxE+xtT;UtxytJj at QZN>*aFZK&3^oKIbAMX9MYzs}c6Ubod|43WkSC0u8;v6h7Gj-^
zM+|f|i>k4syE0-V)Ss&Jpjg!3XY%h>{8`+CHK1x$Irqve|A}oZeS;Yb4Ie|GlyhmF
ztgLiipD0&DVuw!@vLRJ*Q;Lr5Z$Qy>P`D|*gkJuOo8Nffb=ankz<tgjmy%mfBjxGR
zC29qhXj*j%bzyqWEcG8b{P15z<{DOhvsQlPvYiRX8I~*-SQRWv&`O at 7tv=FFLJkjA
zy{^hRw)({CeX_7%S8(;{*U{)ym%OGG-X~}dv~t3yU!s26;ii(D>P7C>Zi$Eiw|as|
z9qb(IAVai%toftyhLV(%3Se8^EA=Te38u5dFCv}iikdUM7LDWqSM0s{Gd45)J%$p+
zlu(>G4dQ9_+Y9rufZO!5<eP#1cb*J3iiyPFGyp;711;Xd at Y;Ro;hy+S_}dgMIV~UP
zuaSaEd)rQVo_v-dyENq^Ms$d}K#QbGi49)N`>C)HLZ><OX>1Dh*PV~K|6<_D|Edi!
zXM7k`6Y}+-i(1RV^MeGjjKjH<$p at v}3M3E+8)z3#AY#JIGRkBk*dJI$QP#eP5JL=@
zw>o3uqD3_I<|Y*HiagjXX0Rpaw!svshv2e3(jtzfkQ3k+8fy}d&s2PmszO&e-p&Wu
zq;pWQiugDhj43E#lXCPr{w00G3$+J|N?Y~X^g^t4$v$7$`jOPt)?a2kqU7U8)q{Z&
zvX}mA31UOLGRT*mB(2WeNq4v01Gw|YH*s>f{!X%eA1rmQ=ESUM{YP8!5F_8SQOL{q
z=wcn&h~;dn>OL2Zw_1?FnDVdyP#>9eQ)iV){1ems?i8JHirhnfO`X|-$F>e0QHk(^
z!F6hyBeSxp?JtL~kXuD|&r;jZH8^W0#Q(I}KlPb;MEk&BJ`sT*!|MVcjo%5HL_&oY
z1w8UZS>nmu1A&6+gwg5aew&Td44XOmLtVq9*jRE?<_uVQZXsgir9j at -?8>-Q^xI7m
zURq6v><9%5VssC~8?f!K)7+udalKEGA2Vms=->{W@>e{OvSv`zgOyY1n?`5OvY;L*
zI052=o=yLg<&<;xinx4X$DqT^W at _5+U-%ay;$^3Kqymer52LjFOU6;F_ztdt6N969
zCbuKC-NDe-!h&7Ps0(Xx|CicaSlM_d(4zlyVL1J32VKLdL$PQc=IDkybXJUIF`1iQ
z^B2S}PKmrM`YkDX>rL+AAg17wP`Z}j#a`i}B5?*;`3GC$#mD0>WZGoEZ5eS{Oe+c*
z4i}Yefl_-HKZ$yL<NYajeVKD?6A(p^c#aT7JZA}xKE6GTo?)2?kY2M`sA4LY&wCkq
zvHfhh(<PI6l-P-<f`*a6sEe at G*Xt^Fq_pJX_n{Yg$SEW{Y;9U8!Gghpcj_Wl$`{u#
zEW#WvXii{&1kFb{6YjR7PwX}Cg1f-79&hN-=pO+`(%+Zw-~#K^g6umS6}TX^%E|Wn
z0n0BApxIa6uixXu%=O&F=NKVwbUe^cIn``ZG8XQ*SGX4xqIMEf74W?lD}B*UAc-a9
zPS~th`@B`#@phA6=WWKDL`|-ScrU8;UXZ%d04;rfeaLwW<buhSIf7n7!1Ovj5*JSE
z$})HP4sGuEe4H(u0u2Nympowpng#Rb^mH`{p+lRsCS&(?k)r<BhK2hyyxAp5KhHx}
zlHI1S+;7wq%v<oAHW(BX$2p?eM!gkgMwms32s?EuWiHmjCo}{1e-Vs<{k~HVPAcP7
zHy|Xyb0+U*&Q2FEGT00;wH at STDPu&A!e}P~2(I@!*?M%b+4%l;^FAp9n`*2sl4_2D
zh7t%R;EYXkM$Zs+yz2F>i%UMAT-2O=K*pU4F%rZl93XG at Z>H74^)|Y{+*Vaeg`3On
z$5)j!tP1;hk|~F`hRUz-C;h+--xbqV<b_#qiB}$23pZa-M*nUA5__)hQl(9XFd<>3
zOx?7{kb3mwgh|1<&!H5hklNI=yPbQPUeP0BgkCQ(Tl?5dgbgmvr`K+r&uJNihKX#2
z<+$a0eD%5qc}k0c!_J6ixA)DEG~6F4NXLh6hcYtg=>%kl`x|^6axTqzbPK8L<5&(M
zj$Hw2C|RWkdiq_SzeL;$(?r>h)e2s^!)e188z2(3IyaoKT|;Ei6tZp0kj}DOPbK^s
zwm$GB>B{}jz;m^6+mjgo1Z|h(75NZGU4qc)ybOY5A-4S4^W)!Iq{Qh|-vtbDN at x{<
z at 02Slcx3}U6YWogu(tgXd$vL0VL?xo8IdDgBDwS;VEjrtdYLvmcE*?4YKn7*_CWkZ
ziE3I;n$M at J#D^iizMc7@`m8O9JHG(Vr&g}0U&C`?zOoeq^bL&no3HW~-`+~ok#Wz7
zj3R at nz-yt0N>E;WXTP48?#n$HH}+z`-&Aa1rl_YTR-r`n`{_I^yQ-7n_9PY%ys2Oj
zt?{xLd)gn5q6z?%n1_r(mkaGV<E^mLO-5Tt&xaCum?_$pN2-aU^Q?4npV1AgpJw`W
zsActWDl`2k?`wAdKEKpw%^;%T4o4_d^W&Hb397Eo at F}xD>I=4?(L-t}r^Za*dXsgq
z#la<U8b<}1s6^MG)US(Ry6LAPP-S?)%hTWq7DB2bg$3vPzbZm@(PA=NG1S(A(u}&I
zj&B}ca at Zm{Xs2Z~myc|+!vJ1!?~-(K^$cSO{iiN}q^SIAfp*7`ux}xtef`AN`D|0h
zO}xilAA$lGuiZ7U3sjpvX%%(eHxZ+7=+B8 at T;>bJnX?*E#{77dDkML;l5jE*IN^0D
zXaMF!c`wRlpL_|f_;k>TIYvPJllA4j^i(+foI{z+a&1rL@?7}$*Kao;N+6Rpy7Uku
z;QH)3?{CKr^kO>oRVRWY0-X-p=O}&cIl|4IzuW<CF4!^u(TH(59x}FKW#K7DeReyf
z_dt`sS6UKJ`z6NC#iV_Ee=~kJG_xo<B-XSeLm3;y&l6hMXd<$At?gvk!(asu9Qr(H
zvlLvug{gG7t8^$cMW<!M{2^IXXMU2jMobCq3BFmsrQ#1V%T`q#_1L{Z2L7p0t5!z&
zVg<}{aZ2H}jpZL)>5aXN=ED@|wfxg|+1R&WBf?Cf!%u3Ja?QoU=%v$(j5{j!-K2<~
zt|a#4AsC`WdU~t(ZfkHv()Tyu7erng^&H()88G$k%l~BHhNzXp`cok>c^YM7YAddA
z5{pTbSxE=d-G?d at 7(-p8it$SHnv*d__LFDgS7~QoYHogQ9kKHp7x>T(%p&kU4%x|!
z6ab{nM=wVrI4Gv{-?RGC at P0sM5Ar078M0n4?7O>)klwnAY`$H}9m!BTNUo3!to9=9
zn&#?Pt`@y2yMWJ)CO4%VJCJR!n)YuMRbka86<t#!fw=Qcn7icWPag`gRm#d1pdwQN
z at Cc5j<X9Q2!VccsN<5YH16NdA-g_xUNV4Y$JaK?C3kQT!61sWjY82ityjk=|^z~1k
z7ApBJIaih+4jn-+4hJ%4lzwowv0BhGmOOI$fMa9v>n&dAORZlyc%7e`eHX0$RTRNl
z=X)Ytd4kg=oxTItB74N6K3-jmP#R`6o*ASTHj&=1`6J3Nh1-<N1i`0-lLq8LY&?`r
z=N6k1=64~<k+8~oD4|r3W0A#8aWjF*aDp?|_YjFfZ}mJPBG$&ep6iY_8T`TaZctRc
zbs)mB@#~YM4Yp^A3eSAufykv4BxE%$^tH at NpQEpC9n++SgSq_p&?>snmCRzzt3MT6
zEdz4m#F-sb#cV(Z`6|ZZhm6~vE73`5tJjUv8o`;Ei`@e$kqa_?NsVGxgiV)9<VScS
z>jXG#T<*89=8Uq3Nc&Eo56;vO%{fUNl at 8UMdPVqqAYoUeSfnW$o=272eAPJ2WP4cB
z8~&5Y(L-0}RU at yo%JSUuE!n*DGHXIV7Y#2zfzAAB&-`8;jgIay{bldisOb}b_u_xm
zfEq43*19rvxf&K{%Hh=w)h at z;Q4=7KWAWlc3chYpx5wbj)F-IClhw#ozi+Tz^<3-V
z^|&&uJTh&dYv_1sPWu64CS at k?3lZ*yvSxZtA2V}l9=S&^S&hV3tFphnz39htK6$K<
z|6+jJAWp?(F14b#xxE5MhV<+b^X*4$K=y%P&eZI!MgN)lS|r>&IE-un=%h`ggxw|1
zn{W;c^27Z*9^(^<8^|Ud`2JB1x0%fS8!JFJq(`ycQCKk_?1taGNqkTe at 39qm8d6^Y
zEP5R>*u+m7QVYNAX)O0-s>^c5t*dG29=c3bAo at HLtvQg+l&miKto4jm!@uj*m8Qgr
zxvus=I<e>C8fzNS^6T1>kv7gINWiJy_m}6-1_q1yXPz#Q7{ePtwfyu;mfi*H8_G83
zs>H<jjjkkP3-0vd&EySaBq0 at -y^Woh!PQ)y&b6KZ0_H1P!FR5^Q0S}HvhTkS5t4Cc
z3&MqsO*`~1+%+OA=JT6oT_(jF(O{nHWU`!W-kcm}+=f-#$OELAN^7-EnD^uNEpAaK
z+~N!;FLGsGC^#FNccha(IqLr5^ecZ;P;Xim_%BVo7FB2WV<~&<bA^NDdrbm%x?)=&
z*mIknweR)Ms3Z~#PA13U>oTF@|0tS=h-UIy_<nFY+d9cj=6>uGYpmK*%ye7c3C{o&
zNgbFO6maXE?>pZXs8)1p4exjT3>ireDyF3MabGnhkXTaaDrgzlpENUgfV0fDj9g`J
zcSuFpxm`U8TKAKh?MR6lK6pL6%~xw>hZUmz<R?(wR at lzw#u4S<A6y{J1-T4)_G(CP
z-Wf%Zw*=k_VB}@yi*u_N5q4c%l<^|{jQksxQMP!I(rN<uI=?}tZJ*I<BNw^sMoomd
z1A=*8wc?Fg at ZSFgvHL0;``TLh+DX`W+uZ{o1QQhHgNgA8!VCq)B}Bv}L<M<ZLJ~08
iAvzoRe++IOwodke|G%N=FaOhf13+C_Td7t79{E2j8vq;t

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/apple-touch-icon-76x76.png b/ui/new-ui-samples/apple-touch-icon-76x76.png
new file mode 100644
index 0000000000000000000000000000000000000000..c145ad38c0e5c77b76e9277498eaebdcb3200d44
GIT binary patch
literal 5193
zcmZ{o^;Z)P*u^(;#9%biFuEr-V(RGb?j8sTBHcrpfzly}G$Jt&`O*T?Al==FfRxhU
z>-*#T!~2|bpU-*jbM8NI<8`%Fz{Cv100022rmCp_kDC805W&CQpQR`84|ph~77_rc
zdqZ+(hyU+pb5PaS0sw-z0f2}o0O01I74ZWA at D&9Be%b;6GT8tComXCqp4`6&fxU)`
z;y?bIYlYVEe<1QwHG2gBkWl at vfPmaQ`hO;&kD8Ve;Tj<^6-+E+M4=b}pn|I at A`Jr;
zkMaUB)+WB4;d`sMtG6AVa*6$7);xpjN%KII4WJyzFfp4h at 5<JIG)&J_Qq5T8P&Xnf
zt;DM+s<_8Rx<ZO{6^kN>?MPspXwGMON$~hBc;eQ49fBp;xg*Cj_;@AwrvJ9@{b}mF
z*cOKQWyz-;&(`CWHQBuvd&^KJ6+;>};3}w%xryEsR}g4#ZIz01i)QZp)=7 at OjmV5+
zI^S_UZa_X-_g;7C<o<B{<G4LR32nEo(wP+@^emhB*GafR!_Qi at 4iNV|^zvM=6+H%&
zf+;QGm37^4;#UoYtQ|e#@FjNntIU|&U<V9oyYE{5rq3mgyUj+SYCpyetu^4Cq(gt}
ztigE!9L<^1z~@?8`S5ZLex1f=PU7OvW?rD%Tp8<fZB{%W0yxGG6ROMw{Kdc9$*Zq)
zGL$+le)vWKU&rd<7 at szrEcTFs5K?&>{Ys&z#KutOtGJ4v77_2z56zX*jL*H+Kk4Y-
zULz@&v at G{~dSIrY)D4B#4bo`A*QMcqgVaB at puAE@t0g9W;+cEW)G9nnrI!)N{-s at _
zkK?dgX+{`vz^qb6_KLu5jjmC at H8>l--`z*VLG~J-q6fqQDSGBM2Xc7lpGNA(ez7y7
z$tcu4)p|ni$>SbQw&D+|lo0>U#``=SV%G2(Be>sNBNO|h+qcR0)7#PH1<7ji`Rxde
zY-sTb)uV4VK?%G0Tj`tDMHP`5lmxN16fj#sWx>jIkHp<AqdU`t11)XR$_0+)OWucB
zSt4 at J*Aqm#qN5xyNnhfnC_xitbSh9$xJGx4dxOUzfYuwPBDXbFpWcHMeQ#o+Ty7l8
zO<w1d&$Qs7foj>0D^KM4e)cNSRQbl4;*sz}0MIyiReYUfmkDE(vo`FLv~l-EepKyh
z%$+02i#DKgrzw^I`+;n_2rf#|1LLG%u$X={O&m5Sx*!$yZ2na4w4fb4H6=aeT=SB8
zINwae;efsGMIexlzo{aUBDR80{X+x|wVVqmN{(lnB_2%4TwXwgKCBVC61fxk6~96s
z4{=M3EjBnHS*JN|sD*wY at Ty2;OZFOFm*8nV)|=!k^SNh5ZaYtoa3xEdGRBmlwq<3B
z6wq)rNJ^2B%mOd+Gzy|Sc$%BK<2!jn&;04eYei)xl7HdNap9kwTH6Z at M3eL<k|w$v
z9vSf;JvD`rE_Hrh{Og#_a2UP|W1%GX+8O*|2s|&b_r2ufDMpl4D5*NuWmz`z3z706
zwW-pCCDD_9w=}`&!O$eZ{0QsPgT)<H_wt#nwM&cou~6^=0>hx8Z0<tiVGH1=_ib7i
z?XqiAX(K#N8Busow>bAc``x@<5_H-;DnA%Sj4{KVk`oQ<534Y at OxLYi;dyE}Ex_O%
z;*xqpWWGS}>PBj{ZgxROH}P`f_k!m97xKT+o_6n_J`>H9+uqKl097ynoei;@Anv|v
z&;f#5B*76MP7Qe#@SI&42CSGtEw7s44qr^WB6NFmN`9b9!2AJiLDRu)W!r)I#>QMz
zFAt at YAIRNpC(34~%BXUkO4gddp<awd>R9<7M=?(A^SuaFPjbp;`)N7R$c})BkTFqn
zH;8=l9~MUM>0m`%d%Qe+l&)T+USz=Gh|16cuA7{s`uuTS<BwK6<V-QcNukm%V-zo!
zc?Q<j_vvXRQf3XCK56R at +tf<AE97yxTRWOh=(1`-UsY!rw73X4+wx87#qi22jzieK
zgJP8jSy!}g?q$`E!vIrN4)NG72XPh72s}fv2B%Zyi5kimwx at Rh16G$8)$-hNV$|(*
zMU~ryYPrc>0KuTY>a>>ar2p}{h9ARyB`l^p&Y|6 at Ec~qP=&PT at Z+~r(|BZ}>cMDh8
zj#+7ke5VobxJEp;x#QNacF;<m0I|P*Tl7(&j4ohPpr)_piGNr`bPP{;A-YR*LYONm
zUGCGyY`@?`55A$KV9-KKJ&zw`GQCFRPHbXvE^jha6-Bs1Zl$8iL}l|pd)=XsZJV;L
zyY|c?QaSUgl7#Q;U*^v_Z5%RA;d_Q$OKY}&pUNrEQ(%RaMe)4Ps(^c4sXDdgcQ>nP
zpAJr$*&x*gy>c>Ru82E$(o&f6!;iG9jn{x|u24?TFkI$2k8a_2&C=cOTJ<}Hd`hS{
z5P9R at W*M~itmgicSU}OAPe|ux`B%x?XC!LEfy^7@^kF{K@|}W*T^D~w2jxSIJ9|L0
zE%q%H3FJbPRqA^Z8fGWErRAmzOutS|6ZemMe;3^0%9`cScz=YCL{`kl>kgdL{w8Qy
z^A#?0L>c^fB=8x>S%#_cDFH?Lv+?vHnoz^pvHLWHfumn1r9xYyK7FGeCq+w*we{h`
zS9PaMDiiiqY=rV0JqB-iGip-qdDd(!sCcZXnq6ELPaHx>Y4UcGvZR4&6Uh0KFH^Ht
zPBd=L*vkz%X|vbl#ARvY+Tpc9e#Exs%VYN&<`W`o-v?tZ<1Gd8`Eu+a8_vB;&KXMT
zSw=pt99N-pYT~wYwfk6?73wQUsK&CSiC?U1HPM(9epk4<|H{4=NTTWPdThyir8n?j
zcaOpN6(9RGqGWGH)#<yM+p<QO29TAS)jH^fMUVlxb5fU^j1IQU`?G2 at tJGCLr^&sn
z-^>~$gsy{SoYqAc1l(Yo4u3X(UK{oLY0S9H$DeOL**)Q1x)g8Pi)R=+0>_yei}+iH
zB6Ey}Q;X+DnjR?gkIlOVcFT!elat0U0W^GnsH*Sbse<fF7p&|3Se)n7lu8(-JC^Q~
zInXtz?C*-L&7w&VDb|_x>H?v#?9(r*KnTSgcjEMYY1+wh2>E at 4XxlmyKGd6TS@kCS
zl7FjqnPgynf9BS2qUj#V*v6vuZhPqg*PSG<KRcp_EFMpRB>##Xi8mF_oK00LQC`hu
zl;OFI=s|tG#rYGYx!{vF9uJl0D(}T33C_J625Vg1gRS}vGvA0qP}qDio8|Yy6K&cT
zCwrjauSrMvQ?8;r#FW11BY8fGNxc0qkup!Jfz#Vf*U<UocC8NY{wIBmkQ`8=+p!{j
z6<l4?&S&}LPXW1@<@YxqM}!0mQm}v?qqx~{`u)WSN!(oi+*m)hWEBiYnHv3#u-*0p
z)vOqJ9<fw;DD&2?_wjzEpky=+5^JyK-gB|?=<+x_+moQ2tl9z4dPXpvH4#IZo3PvA
zg?$U9jpDaEu6Egq&LX at R>7ZSG&4llER!h<KNG0=8<F6{JZj67-uGZn^r^2mB9Akrt
zOqEcwT=Z2p`_?5SCY&Isibf09IAJ7R3s;E<zp4?c3xGy;iCTh7t``V3Q<bt;hbKlp
z<P_zooL7N)B4{}Mbi=7V4uf261+w}~hbeRo3bk4*b=5{-&>b^&j_jJbNKOcji_5KC
zXrZ0*($WtjpUsqSFIu*6ETnYHKI0$}37+3%T6inby@=$2{OC at AWq*pE7qMueSFSCx
zs_46ii!}m<HPRTaVpJWF;8`cSa=kZYgNQ>woeQYs*xorHc at a~*!^zR*Vy#k22xzjM
zhhWy~rDdxf`)nZ2HH8qBhnsPi8qEdM$mq}$(sa>A+>nElgKorAY4ae*$GQp!E^e3c
zXrN_lVb;uWYU6*`ajvuu<;ZD!@y&QE at Wq?=K(~H_U7GRPLP at q{#m0e>Os$zFY9c}#
zhWVjhr`1<8_IV^8LL?rxY(GVF*Hz~wwy$@nj7FbOV0Sp~i1Y0;J<>Qulr{hK8Y+~>
z(lFs_DmMKZDs9`ptKl;@enur2L;s2EOmK5Im>m160=9;yos!k%Q_VM<h)kSJzL0(l
z*oHg?NvmI%qJe_ at YFFE`gl4TA+~lrHf=g8MjcUrNSP%a+5zken>YY8tZ?GcX8K0-t
zpB<ivB?`x!HTO;q=tS>!?YX=!G)st~PyHf7PP)F?rTwDq!O~dJ*t{ctE)T*j8x~ut
zs2F|hDcvI#-u!O4zzjEnP0pshpj`P_j&?qB&X#Z$y-ShXIG5qdt1h7Oj&IQ&c}=O=
zf8+Y~i_~hsRuWIkkHC8_f~+37`d4`hR4h<hg$-jW7~CML4$*<i!{-`a+ at V=k!@KOz
zryK~_9vAwZVKTW<<}Mv?D`SFmpk at vy<IQ}Q`z1 at mHOj}MhwRR%?r(T~CxC!13m(q4
zv48J-krbc^#lWjzJ+per_Ml{yf`Sk4ovSSMi at ak3k`$wkww`_{RH)*$NyzvyfU3cm
z`S9tpxajOUynVuJ6=8P6a at bh_J+157;bFEoJ$#_GX?4JSC+AHv&#6!3<&mcj#JHvC
zm-o`skut2F_dTgGZGT&HmWKx)HDw5kDj>V3^8Fl}g!nrkJ=nJuJ~1~Q(gv`nqZU9@
z;bj)+i>gDxch4=-j#rj8>rjOm<{X5h1d*=e)BIFn)LG(YQo6hK87oykgzEfU=@>`N
z;N=ql9_XJtHh-o&YN}tZqe33rl|$umj((>%<s~>f^Cz<;0+!c{Q9L#S0YCOJ%&o7;
zj1gO4mjIRj46!L(9)XQt;mH*6aI;GRG7`2a8S7ld6o($UQRH7vjg`_`Cal^%ubHrw
zL$jk+yr4;?#F(PNU`S`2enRwUeQD}^ATwU&bz+G*S0kCP??vpbS$FS%Ak)L=#8sd@
z&u?GZ8)q-eA3nqAUCGD>?Cgdh=E|c%J|lHM=VksYKkt3bv>4Wn-dP1x6n55*i^C~B
z_t!h4_H$WGzVgD<yu6XWz8{4#2ZkQ!kq|=sQ;<zY=g$YWG4b%oq*s=PeGIXBCQKk`
zfziq<96=)|Ua)2WSDk!;m>~8skIJ?_K1tr;JjIFJ$`!1*J|F%Pj;hnoD<d)2blwAJ
z<5={Ib+p$GLcin at Q4Gb~nGJe7#cq+eau867Ie1CbE=w+NekXCr?BkhQ;ctC+dFpc@
z=}zsXhk?;jkQ}|XH+J5W%BR8FU`j%qQAw!Jx_Rn}V7MJhw-Hn7UbAy&72e&KZ18m?
z+vEXNG1z6io_{a$M$V;=<oj(v$%B!%lsaXvshenD!?z85jrged*TBY4``2R#@OylB
z6kZ*lx?{osdo)k`*~0VDwFED%1zj1USJ|K;2iNu4=c7=GvGOd=be;8leH`%9A=3xB
z)~VoyjFo8rt)4o!H_6TkMEtN7!x6dY{56T(Q%72?6JaS78%O%QB(9n8B5>ziYpk}u
zvu^;qNVK9Hw|I0y{N=-;7Ou_?nh+sJz=ZekL2CDm$^|uLvH%N{9g{jPdvOU_h6}@b
zM(wL at t27U4<v~7!Y;_}7Ui%~HQe<FNW*U^<AgbUslV7SW09rx8sb6V*ttQ}Qf+&_E
z at d+wbK<fUq&H;%MPgB0Gg{zVd=bv;WAZq+(&K2&Quf8rUG*P9MaK^7wc1dF!LH%^n
zn+IpBRNnm@!N`|#rx^s9e3(*T{_^IZwBRl3aNrjuB4y&IHtrR`nZ`@CcG}yY#tGZ3
z#-gJU6!zrD0*u!Fd1)=pjaNtW|IIHfVzhAd?6G=4^{Pm|iyt&^D%acBKR=7L>Fahm
z`Y7R36VXdRD~<GyHq at JXa$i~2E+Pzxf<!ITgyzyC9dM1uC$|aWsTX-05LOA`p#qr=
zoz$&23Bl$T^EqosLn1g2y$KVrfGNRf>3t9%2Ty3(w$O0kM0EPmA#NrLPmpqB6F>Qw
z)g`4|sW?Mz=kXDvr)S20TQuBS)B at 4%)My43hFn5TG3+1_>n|@Krhe-7vP11~wDMNZ
z#P;iT(C-T^ms>@v6ZKqz)R0HRvNhQ=MZx^o^hbHO9c5A*^@X&T+S|P)k0WHFE8tsN
zj^k{xU%&#fT{LA&H5K5-Z{K`VHlR)lYedSumhYy!pJ0R<)EC!FkG_E-CK?9`xpXq*
zB&xI}C$|VtU=mekrTRL9(dN%^Sctt7;ewb1OWpv;6-J&WNL}nywqC+}!E5W0l*hz6
z%ee8HYk0}N at Q%`e9Lbj5J at dTG=NC?Z(EB72{tIcx>SqO24qE-(n32IE=dZ;BBa+3O
zO0@@=tGny`5P#3KrC5u@=Rph{F4UbgX{IkDSqO|e>p6TFOlcm~RGUf~F%9c*V0+ba
z at E><R{GRB>sn$kJTDjzisK3YOZ;2$K3yZ+_(|)W4IP~gN=(NbT^GkQ)8tx~M4VbH^
ze1mb4lY4(|IV`rF(IU at 6%_DDSTZk^Lv-7oY{@`euWg4_HSSy_b9~H9tUenj^XjsRu
z6uZWvAP*>@!OEC+IU!i>T<h&>Z23;c^LPZ#h$UF*&(#snYNDev6-{juDF;al$dvlO
zehCuOnfBzKmyvuND=`w>TRslmd!;r<XlC7!-n at VVSR72ywvefs;tO;+({vD%HD4?4
zdx68p5o6kF_Cl(@=IljFaZbU(6Eu@{EPlDb#-b~=(#Km|Qi=ZzJdU7^G&jR;ru1NY
zr%`faO^qhW>)m~geSg2<hV(G!A)G(l33%~hI*eyO(*{dYq<}{wL>|{x=93QFJ+5jz
zJO1&WI_#%M4L0|}U(SdO1pYov&xB;!-U@>M)oNTmN~S)Jc0Nur4&F}x0C+44lMoV>
z5`u{u!lY%yrDY^w0-}#)L`8pn$V~V at 0S`|{SLeY0KTvQlEcq`0P*c)YtdX~k{2vI4
Bn#=$I

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/apple-touch-icon-precomposed.png b/ui/new-ui-samples/apple-touch-icon-precomposed.png
new file mode 100644
index 0000000000000000000000000000000000000000..7c7bdee612920f195195e8cf566a6467bb8e38ef
GIT binary patch
literal 16413
zcmZ|0RZt~O6D`W%8<)Xh<2JZEe7L*A;O_43?t|Ol?(XjH?hb?d#twhnxDV&ybVPMV
zWp_qpS7cSM%%~NiASaFphYJS=28JjpA)@px8~@i}p}+5ZQ_#%c0 at 6%SRuBxVE)M?P
z0P4F>WF(;^3kK#%0S4wD3<d`JR{5WTfw?e(ft~AvfpMpSfnnKawJY*|KY%ur78m)J
z-`A^fhu^mV*h^?Sfq}uJ|F8W3%gDn1R>C+-%8J75z`&t1vBH-we`^E~Bt-;O+}AI=
zJhF7uT~6L~ymGzlriwgLOeAw+Vwi at b`+nfUm?3#cx)H_6yJb*#ycV)_#yjgKPS2*d
zCtc0TCdE%n>k5Gr1G0aBbF#0RGVAxUyMt>sS9++Gm8&dto&4+CCiKePOCd{@`gNwe
z_qK3yisVvp#eecX&E3<rylw at MMo_f@8|cO8)#+vHP3~par&G{Azy6n3kpM34uhVO*
zk8JPejgOU(Ui8kaSuRjm?)JkD%9bMD?Peao21u_ggD&xjee(mg&5Qc;6be;K70Mm&
z#;f;SjxY~MZ-o!xi}V7II(Pp;dLnABS_N?p<{PRX<8^9KRtxWrbu&UTul0|CA!D}O
zlg*x?_Q>0}Ck#0KLuz)_Epl{v=sln7#7?299MsUe5G<)1H_7*#7B;|0zT$kQyj*9J
zAqQRMk$?9wdwT(>8{euYvTaXK_&a{KoLeX@!uISz_wgoh7`SVSn(p0=%vW<5ZtNQm
zO!qqFZ3aUYlgq)FvC30*;oxI_p4C|;B~j103^Qw-bpUrK{GZBaHNX5h+a}+gee8DO
zfx at 59nL$^6_tb(@)=@;@ejyupJLGSgW9=QAUXxY$c!cv1A0R2{Fk0G6QRFKe)VESe
zj8heaA>z3`MnBAU|FLLeMk5C1hT`qN!+Jv}?&=<^{0uC9oWU8!9$a<zyDO#I(+gD(
zvy?h$77XonqKlykV~i<W=$IWyufuC?##PLcKg|W(p5joPEp*WjJ!1eGfr5-AGV~K6
znE=Db!D=eJks}8RQwmcz8GAm%qtBH_hq8DQYELen>YkhgaPNiTos at nBM7A=lo}qS$
zn+O7#OdmH66kk^;RVAjik`S4!jFO0Tm_`WLc~a&>dFMA7&_W$QuUSBL+S7M_F62Ji
z;`Hvn`DnRZf2bb;WS6|oHeM)*oji?GZsRUZ-mjng8{-$>65iLB&Q)c|ng%(bRQ~HP
zAo at GLh!wlL at JH3IBV#z3Pst6Z8MXC|- at Ij3{FOrDNA|}sC*`LlWeJco++0ZMg0k${
z$O^I2M&BBZwvmk}Ffx$p7rllBV*S9Yc~JwV=JKE!omkH$oZ9D&>Z00%n<vK%PC48*
z=~LDMF}*lGdIB2?owLkz&%ZI=k5Px%_ql^fUQckVi!@Kf1jxQ%+5AWHmhrx*Ja<TR
zKj^>Vii6Z7m_}&4I0w0#!UyN5DO+tgbthRXE{c0*C$mXOr-whYG6YM^4631~eri#3
zuRxy6iXom^_38^SbNWXk5l at 6M(WDT6#K>I_hZr`MZ<CX_og^MqWdr9z3_*KF`0rcd
z7W^y$lIPePy%LC4iT_E}#iR3Vr@`TnwB<a7`#<j`VgHBm2sE-Zu8LO9<sRLgqA9b(
zKOgl4)d4maIt*qE-t&x3BLMG%)M;r#CB+8xqFsT*_#QF3_^69u%YPpsp<x(l#F;A8
z^_MG&*6LBc9x?x=#1QZ&oy4?&yHPqI?oMR`r$Y3PBbbohj|&RDiffyZjm|XynM`cK
zxFi(T*x<<r1&1Kbf{<oxn%y8 at v7dIl!<?06ERUn8rn%cPHXlTW^f4@>xttMigTlso
zTLD1cNCEcH*leLJcn(}dH~c#2K_d3;h{2x=;C4TWd0|B5<@S;ADOduvf)E}I)M|Qd
ze at kB$UzGM7t4)?;Wb-#g^-Yy?|0-{f+ at 0y5T>)c%&N94~7Z7PT!!^1fYYruIiLNrR
zM%1n_s6<@nl0-2=MVD(o%!%#2EG_b>9XIAo-P3_jWgDBP(Bu|h&M-J~(;JFxu_482
zYi&7yaEgofxdFbfxaB3WF!JG at R0m4f^F%V~BMyG#uaa4}nXm_fZ%dH14byq2Mk0%C
z!D`hQsYNSvymEuOFA!I4GP!*+W}p^&V*my&PbQMb*4D8>J?~U&+nQ)R{!MJrV=a(I
zXpm6}L_B0Iqkl40bgoFkv40}NE`#IJH9lge8rWo~Q_9y`gWy_WgVnCbK3 at el2|q}E
zPk?0i*Z?==yex>|k8t(;mLp#aUzcHVR8}o3j3Etl0mGYH(qDah$|wZ-)`<@RVdi`<
zjE at _3dDmgx5Df;h9O7~?0aJjR%WUA-YcB^&?B^%aaZc9Yx^H4(4Ov4Iwh?L)q*YcD
z4xq&h5Z5;U9{@kRo<#z^uYx2W+kr|m4PQ#gX@}K!neOb<oMwm*<g#hkgPgM((g#Vv
zP(0P85x;(dzQMVs3c;^+3|E$HpFjeQ79=)NCB}HGNWNJV=$L at QHdPeyYb}+~?0h0_
z;pLOZ!h58JBuMAtsEy at E_0<E_G>nm7L*}j5Q^G1g+C~@~Vr3c31T7$~G at V=^@0E<P
zMfWEpy at XDP#1N0+fha1F%_c8hFY!a+WOfTi^6N%;RDfTi^}*7{*9q)VBu<94jDn*o
zq4)LP(68S&)Qu!>DBlppNWp5Bssm0E?F2pG at YO&O0r(jEFz|ek>z)GY at nRV}M$9hm
zO|K>2W1ied1MQ>6ew}gDX2g at RRhD4|BiXX!0RZ~(?gAKOllOlO)0;X^)GD1LHql9j
zDp2g(Za!|3l#O#=z(LhL!}z!(O52i=|H%gre?``L^}C$ia}?tD1Y$-b7-L1KZLA8J
zS>-h$W{6DK$w-<*c%(#m#<e5#yn#7=y~>}xrMD#fUUFF*QpcrlIMrvL+g~O0BPi~b
zARtvVl~|k{4jz-;Yo1T+gd)Dn6&(60>iB17DeNz#ZUGJLdvz(Kd_Pq0C6@%~s;B?s
z&WkB*IKQ{lQz!C=Q0>H?ZP4Tfp~Vg%;ge*iVP{GMRE!&b(H}inF$9WswwS5=-)PoK
z1M9f#WiYwERhZ451aec1&)Yr21f260+>;~h!c;RZYx?hmxkgWA0FlJMNs^3;XkfR8
zYLg`?%XEG^IqvHK<bcj{_v=8>$jtWm%EK;FO%8vHEWbm#w{@h9o?CHazbDkf<OCMZ
zT>GY&7HrqX#PayJbhc==e{peGc;V_~X=f<-cW~1~Q&^eq$Z~>w`-0wAWgOT>j1-if
zu=F^1F`=@v1xAhh&d3?X*~KClR_OEvT24+pl-OUZKyy^2dJzu%S6YD;#6fiaFZRm5
z{MX&$an+{d%I858cNuaQq-*V$%8&^q at 09&|Okwq!VT5cwDGSh0&HVd}Um*XJ48qeP
z*^_&6GgDc~KF{=s=5fYPEHda at lRxM`v#1&1uyXzY2|~R4!lwMf=I7yety|%7ekex6
zmPg_atwJs)@i!$M!s``0t#5G4#^5(iP|T^b%nWvUSzKlHXLO%NMs<TF^rNMAR_E|q
ztYpu5Ld`?^(dr7*hpE(Gd5 at miYr<b=w5Bc0J?EoN&hB6S2ihf_{8%U4&E3L!aAY0g
zmx8+~8FSa$Gz^rkx at jN|=kSL}O5*;P^hcdBxq?ggN~?`V)bIpzXMF)J?B4&+NYLu8
z5G#-kb7686=z;cDk7WSrAnkgpCw|zRmZZ4i_h$kulM%7oLaXLg;jeq!AnX+$nN6U~
zI7r|P4HlAl%iPQ;OAt)A2-y!c*{|WpTuz+!SU at FaY14<5laLf53rOCpf1zwO5h{y0
z1};@8w6~*ke|glww at ol<m_|_78q)3uBA{xIqbbI`W#w;&!uMHaJ-#w3E=G#xex<1d
zm7z)6qVoFgD85g3rDfKfv5Ma1xeB~n4<CNKIlyG5Z6*=3=Za--t@%N(CCEQHTI at NP
zr{tlbzm3`R3;TpVQ|ktWxORs)QCH}-<baCvoRAp9Vb`j=3VS|BPOBk?4jDE%!Hxdx
zE<9mK{v9%Acm}BV$mhEt`%S!@=BUJc$B`u}dX+`vcAt7x!Xobb at -p-qlieNf7pD{&
zEFncQv{gRd%_4%Qapl5KYI{u-Za&_L!x7}Lh`);{WuiOww&WG-=}%6%J6hy!O`?hB
zjl&{V|Fk*3 at l-x8+8adrf_{-t(wyB|e?5n7-$V9W at T|OS(#P>v82_zx?PM}e?s0ty
z^C}BJgSTr at 2jk1AaLV6u<ZZZL%WC}uqos(B1627;v^hy_wTnQBb+(7}YIV|t*}iMT
z=v|iYALdWDe7S-Pz-1;*QZBc at z-HuCn|bzz(CRFGe$nE at y+|3TG{K=Xu0AlUu__H_
z3$8-75rYqp4%EzGwxnHC(Cq4<SijuC at Bg((iXFpE+0uRcsqm>+WH0GtgXhgAKTAr2
zji{zoM+JSr8oxy)CL8W*xwyhViuTW2DAT^v5}**_e at s8Pi4hl3{kGe#B4ZyjIho(!
zH2U8OX}FHOIY)xy`4wq+9kCOA%XIK%WeS&H!8nYI|40S$*c)yac6Z2ven_ at eO5qdr
zx%MJEV#AfVUjHne6(-x$@z*CLs7D}#y8oXNu|u{0PfGG4A3+<sCz731 at 8@yG?ugVd
z{rnbE$Un6EKU~5a1l6$PN at K3Z&Bx%MbLrx8QG)1z(NTp@#AH`sjw{l$$KdAYMB3{r
z{`aEl=vrOO_e}>cL7K3CC6pk+BS%+ogk9G^|MC|q94Gx(ucY*%MobN!uFbg<Eiz+n
z4KzH6+ZnE3(Wxt~Guv4W`Ks_r7%S5!KJb@{z#YA~75p6ZyQg!q$djjRj7Sa5GyGW6
zSBQ4+Tt#_ziu4R(io``Pg3+f at RxFEO#jXWr1+VA^UTYa1Qvaqa1rZ5bN{+r<fIGA0
z-Hso2!OUT<nkUDsHvc|mdCgTF5c&1&_<A}HSJ4iUmmMmZ>lDyC%`x_y1!be<CWHBX
z9<kEzO&Z(daetojV-x>uXFJNv8b(c8PpptZm0A6Z8g2k$^oD4 at G>lGipWnmW<n$jc
zH(!{X%--UVbqvXWF)=@p(OVfM7f)^PaVr~-msO?FB3nrifTRDUyDs}z?-bmL|FFt%
z;+&2kAUS8y{g;Z~?qZ(dEY1STpc6wFB$9fA6j69olt#0S!!0Yo?S#FZI|zgkR?bob
zZ1uNMY?mx at Ak@FhYHL3FaLlgOza&$yodC(Z-Wt+qMeFW6vAC-E9yn?<SK_TV{H=AP
zG%?lUS5;~Hnalcq6e>m)I-Xji3wXeB at COKZg8Nw`d~N>Nj6J!5iA7 at -l%W_m@=fTp
zG|W#{&qqX_Cxbso^lmnTwef|!#P9#w2BhgzdHcSW4sckKO@#8uCWGt9o|eHN=TZKy
zn<sk_n8-aD;g#ovBSVrd`-$uTetQ2OKoga5jIEvnXvcCI6hNcS@*dfQu+<#9x3Q9|
z?t<p$9K9^yi{^F;dze&enK)-Ja15#<YuO3!vZXOS(3%`(OJk#%xxj7<5_j-I+IPJw
ze(c4vM;3_4%o2?3P>LrT4vXd?O_-buF{>;Yg$Rca6}=BZ;%|R4>{rUER7tj at 2}@|&
zYN#)&0Pwvv0a%xqb6XHqMbpJc!CVqn6I%a>8g&*2Eb^0UuFUMJTA6RwMz0t9CNB9b
zsy!<2Fa}#><pNbywQ_yK+h%+sco!tY;cYmohq{l+7q7fAOgF?P+f at zb&Y}8kHG;Nk
zp>;jrAN_8B)sMK&zGucQc-|NkCKIOxF6KkW33^A at W)R7fp=sr_BcTt)Ge^Q(6pK!?
z_W9*V7aD*3`q!lH8VEEKSwZ^_2ROICs$=j$jv<nZQ^}Q$@ld$%!=+JVwh5wy4J(YV
zR at OMChp{v`o*&%jnW2myfO$sgdj45L?%_>J0daPIpxs5zdU4ER_kp&>JE0qim72a7
z!}jIcx09MZ8S6B5d9N*BlMlI{h at UsNfs2BHB8Jki)xos9c(Ig7ipbk}+kq{mbXbt)
zb@}8Vi%?M6mg_>|?=<O<YVwDF(+-<^M8|hrKKvgn$!<>OjkNsBOR$i(!!}4K%4)vX
zOSE5oRS!CBa82a&gQZdzdE)79Uk(1^R)8S4uABhBH;7fMY7u(H>Y#9<f`NyRjq4Fz
z7bx_ePk~X_>p0Z$ce!JDJ;xhNQI9-KMXc~jOz+8bB&)EX%sQb{5Z#KB*T4kBm~S>s
zd&=zDHudHh0?nh8qmN0G7}AuEw!?B2y*q=q)N!V<FDA6Xg8bI>shf at 1`BT0~<7OSx
zG4KVPU$%}Wh2_r3&S*ER8y at Fs(ovQv6m+3GT at T{n`ef;mbA1rW!PbiBITVM<#y1Xw
z*M-L~71YVOK`!+0lxc+ at k2FE}SVbn5bi=4U(-JZZ%M{HK%eh at j5y47TJTeyZVR~Jl
z;>fZ~thA`z6WAWUsaVljye;O*F*zrFHe9JRU1Ru!^x1g~tu9ql at p`PPe96|+|0nQC
zf3-W;KS3g at 76Fiyv+R|Yc(`k`WmmKvBqbO)(`u;vlotr<vUDnOyJmF`<M0M<s=&L^
z(k(xzb{1X!YL{?C_Q264I477k<FrxS;q5Kn at f{MSY{<<rydr%j_Hhy0c`bPGyUx}T
zJjRdV=uA|-{*+(T`!wu?BIFZ at -F*cBG%XYh=U;!GD0Nze(!rNC&|CG5f>rFiX)o$J
zD3`chM4w8*XUnqRQu=686>0p?@nl!I&u|7lc2D*EYYNfX(BER{OzYED*Lk=-|DE)(
zwuR7j<c0IzcYXS>$3tq_vNc#P03s;<0_CQCcEs%=6AZ}D4E44(6Kr_ at 2pC?1Dvyjt
zTKKBRVgWgQVYyC#<gTYRiOb8eKFv}v8)kA2UuyVeLC)xSEAYqlL9Mg`2s{+H9&x0i
zI%37LjXMp;*((kIIvA!%<oql%mLc>CKgYG1DpK7*H*~z)1(a!BZ$FNK?{L0f2Jfqq
zn}^gA3!_Kzf5?I$zIT{9ZFZ)I<LkfI+IoP;E8X42<lr2SJI)cmBb at iopGLR=vkt0G
zS8JmLZ=y{Kvci7{xl?*<;AwVz5sSC^T0U$;yle^ASY{Hg1j2b-!L_DPO3$xJ*J at Kh
zvMWiO_BQI0r6<DbQb at 9VtWA|sikQe$ow&q#l#sHl@`KORK{dKl^@OeU;>S+GTkSX<
zE-YIIlHH8X<axwo at zOFPze)l;*hSX3g?wlZjbAWLlTBWG)}?G*PVODOP7&JYCjw9t
z$t)@e7315dDiVfqJkZUwX}@x+5H@{%xlsAMo&M4QY|b%pO{lAx*<n3^w!r^xnQ%3B
zxJO5IGKHX~fx5M);|+EobYr5GsbUGNrBfj#LiMbdKQhYrvTEKZs;tc}^0-FG*@Ehp
z<}AMlqSy0rO*KuKiaGO3;{X!t`Cp)9gr06Mp8~$$+|ETI%@eqz<F&es at -n}e|FKr{
zqGGK;nnrKerGttm>IYqrrK79K8kwLwn#I;^>BPI;S#z;XS(~F7Jx}(R-yUzKqN>SQ
z|Fba?C`OL#JdwI`%DIIa-;JrTu)cmo`bYfN3ZS#Y9$m?@bcJe?9b;ZJ<!|y3qoZEX
z8itf_1=w2Uj;>5)7qWWf$}u((fMDo&858IG&3~#Tl-V78xZYjM`b)2KP0d>tr_+GV
zwRHO|?`c-_RH{WM_H#qs{`@M4(RR!W8uPHZf0t%CYi0Z&7I&iuf<PB?Hdi3~2vIf|
zM at S+`MqrafRV*1qeDr at d7)p9^2-c#wTiLR!OTkwiu78yAkosE1WpyXGs+GzBJ{<HH
zs382mQx5Y4gd{#sz(y`ib+;A;S=6y!&Oy#vqGeJxL9~Djz|d3 at q%~rq at 8AQmFo)ny
z)#&KuXzy|L_~3=5ko3U3+X(D;Qbrt=95NW-Zv0oQzP*R$m#!<%W*@`6=b?P>vY at s*
zN7U)>x)%&-eW7mfHO2H`j=rPY%2i`?N5U)+BsaT%ja~r4c1UzL+}TbzS at zV%#klwB
zuX<7^{I9X>mjYrpQm2MO+l=8DQtS7RjXKh;Z2N7*+0MistGtCb2g;mYf_D<%e-|$i
zW+;+DE^_}_{s&$Ry}0j{GMhsJh%yzX+ at 9^i6pG?xA~pX&GCqtMot2g7V(FUg$eHzJ
zH+uitn%WeIKJbp3oJwfZ4Bf5`XzFoCH~m{-$E<^x%_r4-t-IO%W<Sy$EP)HF1A*Rg
zeMmO*RwY5Fq69~mK7r{Fh)AQ;7)ntip3()t at u8M*l)TRWE_zTwujVq|*i;z&(TL|g
zv|pXWeK;J35(KR%bR36Sbb at -6{MHx@)V8A&gGC>f<P3bb at AHYuLqF-E8F5qmal;Cq
z`)+rJuYEWsdBZ^e5-*ik&~g7ZJNSdFV1!M4gt!>c&SYUzVdq;C*PmJxdOqAFn!ixe
z3|Qft2-)B>XZ#TsEv%u$|3RYAq)XAhnDZL)z9cc;qrQLc3=@7(WytC!`n1u)+Jspm
zbUP4K#w&Da4g_knYt!ktGLot*cid(#+P#_>-<&J_rhu{u5zkGAT$yZnl%BlU0~9S`
zLKx5V-wF&}e(9ZV21NBBXY+ at jM0Q(=<Fq^3$ei0H$W4Y`RrAqOlbwy&e)3x~d}0_M
z(Lf|<CoIy1sQtcAr_LB&pX2}e0yr8p+!H?tLZ}00hCzScf9`=1xK*V;ZnTj!Rq2SG
ztTXb9;uBXcJ{CIK8-$|?rQP5l>ooQv^l5^>SC!ggbX>uR_Or#RDxpl at a^wAZbhVe?
zTkXlEgh%dkr_(xsEaE}zeoZ~$Zk~lQydSfiSW;Ut_%yeKq}%Yl*XIh=`$cGeo=4TU
zp9aEytd+>!?lBOaoI%jVX8#;6`FWj4;^*=A2aQ;8Ohxd at CgY^`6}EvrDna3KL7hz+
zhFy1P*_ZF1Gad1p={Y|74?F&}xr@@R2YB=2+b{uwMyG!o6=*#6L!UGxb&N4ohL#ev
z;KA5~XqJZ_LB?-;t9tp}fQs$fLty;9;|2le+ at TKP)(nKajH5R=EgJ$Gnk9CkM(4y&
zn#L~U#f#V}tKi&^9GA||<NIet&|<@V34j0KiJQ}hmtTCIdgV2gIz99IgKh?LH#)(a
zrTy8GATAMNA1h>8&?02wW|6u$Sp<I%ba@|4X*cGt49_2$p_Sfvrb`6U+-h%DJx^9W
z&1rfs{jrk1pA2rdV<RK!HgGAp02f*|+DD1g#ML}d_bxBKK(fQv!2xW_Mm2Yj5`<w$
zpN$o#?+p5>_3+(_jb7sVG+!2h65&vFdxG^&khxR+L(1_L_gv=>b!sLVbJ9SKK?-7C
zdiKU-7EEt+)9xSjm^d20kuy&QxT3JHlV^C at roZk3PTZZJe?n^$*Hp!~#>PN$ERxJw
zCA_d5XQVuPzZ3a+&qUk<oxdJwRzGRn=J0ddOVOi&QfYH|=AHYgebK=H!w1*+;Sm`{
ztW3l*nhcI)zLB6l3V;WRQbRA<=gZp-x;)()=ZvId=`Z=K%sqkkBirtFGZM5FLkp35
zc9Mt-jl|iiU)4Vz&@z8#{1lH&rO5fy=R0Eeag*%5A<d0Wa=G^&&;JS3iu;h4$%S5<
zOPz>Ap-&zBPf6I)C7zq)u~gA=sK8JdaIP}9nAc>J_V@*4ao;=gm>Cnw&6<7*@<O^<
z;!DE5vlL6IS5eojuh4S+k8F1PkZx_?bcmS+=Ie66Yt5^2>C9<yfJC9=j8dZ7T^QA!
z_<>n;-$-$PbwoFG3IFM(fk+Y3y3(2Z1Htp~!`$jUaHNGOPc<1P2m2(qn>Uo0te|m)
zh1q6ifFZd{{=R>mVt!4c_DYQQP2Tu@&1Zz$C)QJg?7ZcRd%man)HopO*T4^)IlO$6
zxH}<86~hxW;Ujh#ijOgdJ!BtP7cA3VOtJ@=h5MX1LR+g17P|mK6P8?jlb*%*6X-sP
z#yO?gOqd>~u~awRj9PPKX$XtTV&97yVY%Z<vPRInW5qoNu85pOG}Unwo1ute<u3A0
zi~wi`i?taF at NrWunZv~ke^2WmcU>QD*pzG0eX`e+-y}lTgc`)wr$xw{etSkq`Tu!5
z+3pvx=4{qDnp_1NW7W8utmY6RIm00Zr}+c^YFA)?gplvcf$kw7PJo%I2Hd=8{!Mdk
z+nuk*M<tQl{9L~bQP0CPG#loG+r`$ClW>(kvC2+RmQ>@2_Sokq5E<|aq+eO+9(|??
zr}Ierjbar)Nc5cu-Vn|n at 7?1r_hW+6ar^`SsOSn><g)ebA181%#)S8fi{v_3l*M4X
z0<(-(64vB$^MRN at Q2U~{{kPt;0|u)}*mwg*>1i_uURRB_Mv53r=q;H9X+hC=Y1`lV
zuAljPn*^=Isn1B}WXq&zHrMgO%7STI0U@)qa#5C0q&^ut4tmi2xRZEBW4*5Jut^9A
z)^*CN?<v`MdO_xXEKk|{LEb8-Q$@Bpc7Z8j_YNIT;!@rhnC<I1C#)4e>tvB^tn?6%
zG at 8tEm_b!zuHsFRyQd~)4auzTL)8CyfTP^dMKpE<i5e8G8>jO)@2GUj8oy!n2dFiU
zlskh>gGSb}IwvJ<D10p}5J2c<KIgFrkLKCRkgkp_e1jncV{TB;bQgQ9b3~&X*DN-o
zgvl)6FwV4cu6a6vINyVW)83tR;t{cp923f^Wm2>2M3a4yxXB<(<RoWlC0yzaqM7Ax
zEWQ1n0J;jiMlY6f`nK;%pr%BEE49+vhfqQq6^~GR9%Je+O@^M=yPz^+QgvY?k2Qlf
znJ8#NMD0vBQn$UKqr<ujwNXT-ghlAIfjA$)l<Bk&C%ljT2FMr~;dE*dcZojmDo`UN
z=cOwTxgpKm{*TBoA&({@z$IB381!pM3N!Lm<yLozLFc8AywZ^=_=JS<jm`e#YFQ_K
zw#EAL#2MM?&5EwNy|asV=w$j`!w2J2k1K0d{ToC%2IFW%mDQA at V3}tM4>7tYkG?o2
z{I{*lmP>?7EfFKPO9>SA at w7G4JcVe{<5Q{{moazcVi41N?eS*&Lg%{cLG3?(onfz$
z!#?k^RttVq2ssl@>fG&Y)V3@;c2t3&S?8xNe1B95gsi`KAl;p&ldG#e)YzEOCuJx(
zxW!-yZC2Ew39dow{5T1bt@&M5J|24Hg4+blW01!lWc`)170L3qc6|v1b8jr3vyt$n
zYfv{pp!dMZ?RAr-6oO@}FonJCd~wQqmjX3%uYSqizD3`XpfxdbGJ{c+^Nm at KV&K+9
zj<-@~{@djg{F%<6*wjiS@{=i&F($_|`t=#aVjw7_P3rw7or*=a9C=ups4h>+*0^R|
z^)4gbrr5O3_q+P0G)~jeMh*0E1z+O94Tts?8P#Gr1;7$+hnXgJY$eKzL9O0m99^FS
z;YjFo^V|5BXr4OWY0U3nsoOSSk#~A0$P%v^dr9N(u_DshbdDw^Q#o>v({{ecsd%u(
zPSa)WILPI at EZN6g`yGwLIeb_cFT+jU?@hO?4^@!JH{)N`MMN(?Rz4g-s}9Lu_RWaY
zt5(%1I7q1fcGV(wa_L_cdwM$Qr*?L|4m{wZ6nb8vt?72f at nH)ZP!HeW$FcU~+wmbi
z8q(q&<VT0=h%3&@IMY0vK+4EV>X<zXx^;Op%UT|)oMO(!G*5rlT at v0m`|D!dx0i+f
zzYp8s?9J4z&nkC$x}A_;=`;Bh+xV1}(-&kl4mm9Jb-YF}Qa(Ah`j;2=7b%+$yjqoO
z=l-E)I at c`Qrb5G_?9ekD9BH0B5g)8V9Jljo7-JD#p}&76Yf{D8rDJe5vA40tHKEmz
z{Q9Wt?G)i{#FM%(m0&Rhu*d7>sH%opFL<oE)vsk$)^`8wXr&Xw4ho at x%3{f at Le+Jd
zV&1;V$FRX%PYUalPsJzEYCA}iuvY$=FG!bfP-k-<EYHV2P?kP)()%<k3HecRUnEA)
zvEGUA;bm0{txkqqEkVAUzqEOFy3az1g+G-~f`gaxd|RAaY5J<5l#bHQUL(q%gvfuQ
z|F`ILg+Q(R?-AUMH#$PD=N(ztuvbMd15G&M5#X;6{Ynayq7+Q>IArY<Nor2)0=&}5
zRIZjiXB0^zQ~!nC?=gZE2D^s&dphU0?GQH++0{EV*bM(rXhJl)$Guz3uZN=~KD&`4
z$T|sTm0=~gGNv8lx4W}+=lgfbe6?^r8H7xDB(u4?<0Vp;&m$U+S{vCNO$fS6)FE$Z
zJi5kX%(c)&=#YQ4;c#CM$wpm|A*mP$%&oxl3C<uoi1PY{R9r0 at kmf;QoQGQbXm;%D
zg6Uq)pOa+XTe=mx6ED5ySTP~8DjG-L<B_lO06W-}jNhg&`eo8<25WwXu>yX(C=Ff4
zUlZVlXp=YW#`-?)1+uQ at Z&sYbu$`7gGys`yCA;;omGN<?5hvZ?YVy#QE>}{w%~rJa
zMrXEFrAKF#{%w+g#SAa*yKX}hw&FNm?|6A{o63cg at -U}h1Y03!j@)5Yx?j|ab%R{T
zew@}?I>fs=x4NYQT_$~XS#F*ipd&=z+qY)NgJR<8KPPiQQ1!7RijGIogj_AQY^3CY
zb$RE-!OYEMUd}@+t%7!}&OKZqyVhQD%2E<sePCl9kSK9A*EV at 6><Y{sEAr$~uV+_*
zo=We&9Wm&ATDzsradmhskA{P9D at J`1CK61VsIg22Q at E@)I9t5<wF=oUd(G4?(4BgB
z>2`9^Z2H1&h%9ZXg*XT=YF at u6Nr*<e-cU0ra3WzcHn5iyOY8Sxlw~$N&9Did>DmM)
z{sa^y(N43^9|7-?rA4&3k-R$TWXhT$h3KxyEd at kns2I_Hk_ft6MWM5;w_MKYYai!Z
z=`}A6UX|o9r0!g=r*|y;D7yg)VRa)8Kc3aT=GWid`YCX8Y}Me%M{a;%7u<Fz9z=2v
zmauk&Df~#HftoO5{XPd;NwJTL8l7P;KWDtypW>K+?0tLpYm$Ho?^FFU3|Jeu8|a9p
z;;O|`MM@^bU~a$LHJ{FFmN$m2bf19!@T1TryTc1g{=U>WZ~eI*217~q&L1qEK1JrF
z_v-`6CWv?WvFF~3>RL`DB}h~F#&bf?U62juNFtcU7m0MJZTCYo9y2`EgVLd- at J)X$
zhDH!-fG0k9WkE~y!h0SZ{)4Qg(u9a-!aCV*KL5D*KSyt+U2OH at QBbRKedr8#%g_l=
z)|8`C37K2756 at c!ZB&V at ySWTwV&UozQrs5i7xT)*m9ZqV^QsVVwQKQqVpp9mUTRNM
ze$IqhaUj?qtp~pW1tRW6`E^=NB;v7NjTIaTbf`_ at 83q6sq~t20^`W%N-4BzJ>{ZzM
zZ|&W>^2t$<s%efeoV;&{8NPu{K`ZlisdVRdX?qnYnY*z9n4mt%-|{9h9@~bY<Z^J-
z`EtLKQv<J30&G at o1mbWy_p^HZBms!_Tf>6vRZ=hG4JB!|AnbAEA~z_2PQtGtLh`HH
zh&LNi#$o;Fc<eshC^o<p0&t6O>@I*?dxcfP+U{ddNqBH}5%47ElaAw-HAqo;*@H^c
zB>F+nu#Z{D9xTv=rFCGkgHg69J{dL7*(+&Ll at 0DPIj(Nl^6}Hud?UZxYwX*Bk7B{*
z>Z<$2Pn_Z6JAjzxnLv#r)_TAZ#-H^u>los?(81uyFE+_E8?Ns6NwP@$C6F)3Gs-gc
zXW;BSwX57VOoW+OTy14tgh^A#N6)=M%1*GRFCx*4GeSL1BrQ2qgz+?GTq2;H&G^)F
zGL*xp<sDCEr(M+VI+1mo7k&F>A0rxptn;lv{B?ijgvfO5s1LmaGin!LfWbtu+(nAA
zl@|X(g7b at 7N-U6ER{I;pi?4cF$NGIQL~FgBR*jCEK#{2j18XXM)(iQY$w|J-N;|Vv
zTaAYuW*Xhl=<Q&xTPWu{2j_Dp^GgT;beeg%Ux<Z%i1TiArZ1+GcbV}4mnVFm_vgy3
z*t~AWu>!Ay4*Z}Zoa1Amg1q4F*%bw$3l6Ko`jF!jL%v~mMx1cr0}+-5%yf3irm-g%
z7vGoI$4!R;$51aeK6>o(@!MsjEB=?L#<W3-_(fU<0$-RFB=6_^BJqu#CpvSW$O6Eg
zC7!Ksx$lX13}sP`<S|5e1AZ?b9d~!J^59B**yGD*fwybN=xjiVlDIE&DC58LL2R at F
zY&?$Ja0enJ1|&UVXX(sB?vWd?&32pcmTpt at 7Hgd0C#{Jb4wYo|Dznz-Q3j?F>}KfY
z{&A3Mr{U>|W)7{~j4L>nsPK$<foZF)vH-)j+6YA~pEz$7tFiw{@`v!=*s8>^hz?z&
z4cIUKpJfU0C~OPk?oX#=x!VrG5R at mSYr##Vh?SQfLenq}SCBJuerR^bwUR{6(!<!Z
zO_dVW!=s|gWzvDthIvk<zsi)mTa7Y$yzDdN`OpG?sr4T+Fr^H_MIeT34pFgV;wd`x
zl~mCw1tw27ik3SSu9GZbN(@W*^;c=9I&3T_Z#KI?ZLB=8Z2En+jANmxBpX$gw4RLm
z{df6W0aB9cFQ>km(@5_%vterW#l=uBIk_{&0SjHu>cSyuZthWoUXU7G1e1o9q)4rr
zp~;drUB*b#p1J55Ds1)~$pWUFGBb0QDd%<Va)V*(ba@`Mun&L~A}{j%X=&j7jYD at v
zK~Fw&GOXOO^i}nW>&}VHrEeKh8y;N*QrFn`j}?ePMq1C>`QK-q_1|f$>KdnuX5S}o
z?If7)^~0Q+!f5%>Ri6n!#PJ<zrKqxl`%>#EjXXhWE84K(VpuTckJP at rItrK((|C;s
zyF!6I9=*;s@#B+#1+{oDv092sC1!{2u8A+cjd#4dX7SSo!@mjN>ofR*1M!Y at C#CLQ
zKZ(JoU}z=h5uY<BkxPQ0Fnz=$Y?yzZK9R3aUpA1bZ^_JtAk#hikruDg;r`fUv)+WO
z#aeS3qXOiWG<*^;;xJA?wGYwfgWFjWKKnq)naDqk at x+!5JlC9a5K^C0mu|I??w8dT
zvRIzvdcwD<drmue;gpf1L1&?!qAf_~s#Ha*KzRC|uoMhow&mF6wc7eV5JnTw11n;Z
z1ILO_8L}ffVk&#T at HgT=nXdqvQ&iA9v>DyT%5#H{Pl@<lzkkWl+*(N#y@|=plRd{E
zeA3f}jEOjo)UvZ at tC<J`?woJ{mq4Gpl^&6kH2{^>`5(1Ke{;*@nH=(C<tb`A43Rr$
z>?EIV-T0+;&WHJ+y$1ir*<KC?pU^XyfB8we^0PX)W?M4*t%n3H%P=DyjCtD??Zz^x
zGcuUW8!3MJ2e%=)HHDoX0Z<spE9a>KUpn{nA$}$tnCAtyi<d+QpV<G$XEkV(iiM1v
zp^>^@awpr0uVZ~;ZlEY&0h5Q~s&AE7NPBJu at +0enIgBXPY@PPEcPIM)JnLq9G+<8e
zTjyoQR`wVg4k=TTi22WIqLKc0McelaAgI{M7I(}2T$GAc5xA8s5$4p2XmAmTvTRqg
z<kg%|-++UNGvxV05eW=73W-=D*FVA26<SB0xWWJMJ34fw9$-JfheevhbQX~PrvhD?
z2anW?#7Up+v1Js^(GiC(x}IRSgj0Jhq9{uQ25H0U)B=6wWb9W|`3O|3P(tq at it8<V
zHfBj5;D2_U at DByFg`rfWi7+k?a#NXDM0mf(E3kW_A(Yo~4soe4w=cF at Q-p}K%nT$^
z&&cr%GslrER at Ro!)E4d3cNw(RQ;?-9qT(X+t~^vq2lq+08viqHk0MwgEG9?Su!>aO
zZZk>2Rv6oIZA&GUff4Q!QWQ39w;S?VK?mVE#XetWAH!2>Pf|^Sm%&;F&NSNQ^_XHa
z_A}FTdTM5Oq%5tP3g>0m4u6mBSL+v=yT#ipJCI6Y;X9ps7?Iv%IC)7XDdZcPhK<um
z!Ovh-bm)xaqmQ8qah^b5B<B_jm*$-FOptZN at HEL-uq)(KTdRpeW2|ORGWjc->&Ra{
zho5~UEOzR)-Na?PzJB^K=1L}#Kf~kmaF at 2jj1OY0sLiG2omF1OFTSe**)Y)_!HFZg
zsW@>2b;4DY&^a$z)X>K)ZzkFmgpz}*BYFBEJ7UMnGgKnq2nTL-P>@g?$eyTuU>VtI
zAv-Z3`S|`ZhMAiy<1y0Czs;*vuq>)%JW1WtW0x`$TlBtL?5noKz at Mk>8%kL$FdADH
zM-l<AH1J2dYCSP=-!l0r$Jzu-RdwdCruSaDbU-!f!)Nh9YEJro-tA8`KxP7?&s2mp
zRMQ?GlajLr(gi#K9lHeocH9n_br2s$sHa=7ZJ^|(iqyz^%|Cy5Wh9&OsC|WB#pH?l
z*ig=#nSB`1_S|4}ZnP>=7eVbkwLC1--WpuBIIS8d$kn~N5KYYP_Mnl2s3Ur6QSu(w
z#lp*)AS9cwni9EK+AUr?oA570@%Ha8iF^rbzh|?NOzZ%+=;hOk`0AY7abcEN0fD*0
ziUaCmTlb+m+zl9p95ToCee(;+oQzi at n3Ha;*5h(xTX~7`ioQ^zpTFGIQQnG5`%Aah
z6AoHY+9PKP at vQE~lITj)saRxq$|{Vj(R6-dppV~T@&QTnFvw6py-A9oI(-_4>!l^m
zsY~!3$9J;FTkU=w4Q7ojB7T6o#V%`h41(4yqEyT{lL<`S?$Q6Hd&P741r}nG`m;kS
zSTo_UCg<}jQLB1?J3t=RS6}WsMa~l%CAfkDl9;$}2|G?BPh^kK;!1G+u$B>(mS&wQ
zrd`ttDE&T?!LIw7i8J#<)?>o|2$W%PO0s=El2y;}=xw=t+a|NNa_4SUi+CgF@#=r{
zv{%ISu1ip|DOfyD8r`vlKLI=tX-?Agqt)1N{|VU)9gS#k$y`xgsW!9*PLb?NLR!pI
z#o~;bcP+4HD1W|D<)A8 at TU-Rt_GOnj-I(|Nm7fef2zBuhBIEI-GHzuRYIoM~TZg4m
zgTyfRZaio4{`bUva>@y6Ni=a at wbz!u%Iz at Yd2&anmGoT~rFO?E&j<O_luypBHHW2^
zK8p-EJ7A?}b+&?UnE*LVIzOa(*_t2XE at i8{?mn;|x9!nzZZ~iaBY0ZH!=3r)PZVkW
z?P#j%?7-oSgn1UZQsi;gp<#YWfsj?gEWS>G>K)Ox(<c1atP=l{^(~22D?O979d<KW
zKS*SHjnr|TT3mT%n`_2NcH~D1 at 8ur|IC>@rpnfD?xLY3B`-D}>3i9tXS2cVdN`WzD
zbi!lzi!&n9#Iz_>tNDmLG*)Wl)X95Gd)%@KW`2}T+;X(`#<KcuU#}8sCpBlNyk|DP
zx6E!bi^pm8O}K~=&HY1>NJ%M9QY|@iL$4?>bgd{rxcXw|ETs;wQQ1v;%E<yt>{9P9
z)szTEGDc(lHpCy9_BvE_H8REHBFE{jjAzM`s<CF{!GVi1vtN&lx8sl9#~C_^6RNK(
zL1R!*KFrxiG$T7BD<fa&(bO`@qp$Z_v&D_`#fC8Bkt$iP>Q-LGK$pPhzq&Z{QwS7T
zx=&Arc{H#-wP##8^s{hn^BdLKi^0%wu-Gxxu`k at 88Zp7*cy_t at bLfVn+BrbkWKvCQ
zx?|yzVlp7nSSG%Qxy5OArj_d$xq at swnJxRKq{tnQR4Wm}&2hW^CDcncOZEXv*q4|2
zIVm-JgmF_*)+h%$ye>3D{2*>Xku5!*zLfKb$6YmNd1Pr^n0RD&8s4Q9k8J9Rs5*)#
z$)k+PJxEBs%C0G=Fm8DTi$f$bNrB7aSEQOue7-wIbVQHUea(bC)m+vPKOv at 4O`#}W
zJ10{W_Ybo30}uKkAxyzeJjhEA8*n>9-Y?;+rP~mrYm=2lv);l!=1kY9-zlUyUs?sU
z3+{z~r4Hj2vEn2IjiKyrbZ_ZbV_ce2T{GxsqN<6U&xNJAiQ-p8b+WW~coED=>azV~
zrtr%&jF;@au;|(?%lsLB{TR}Vz=WUjt6_af(@(HZ=K0Te>bv~5E}|qIt%YlmBmusg
z7jRecf$8)^>7c9(xxosw5H2fiV=WC&*Q{fxko;3g_W?T2&`=mfa3Y8RNpf3yTk;=x
zMJf7nrn)i<JV(zzvi88)i2sycLP+NB=p})roBKf}dNVTTa4kkKZRTFAS)@~Am~a&^
z%I9;z|H%+?Gv!56%=?a*JIzR?Z=-xIkkq4ps<jrRx at G5D!D=%Q)g0PiFy&;ucy(qY
zZI4G*GTxJk3myhey>?L at 8kWK;#pB)~aMO|DyVnebTz2hdnHe3ZlFj?zxT=1Kb?Q<u
zF->%f;lTZ-5D%SmE%pyWUQA+c&fLYHYHdU%p)1?LfkD6Oto(y}FzAsY=0)J6GC8ya
z2wtH?Glwv%O7q8!fSa#*{Cgdt(_acDzM&(OpP`zu`e=0LY%OC5#AG&-$)kIUkshL(
zdi`~PJJJ>iph~{()7&q-MQVO at wG~_ARoj0cV1ka|DI(&;xyY)(MFISD*h4$>2m62E
z2}9x~i7FI981gXYjcI#se-b-|B-N(AC?J`!1q%@7*wcxJRxZ+youvLyIdtkqbxdaa
zgc9OO(TBr+<B%z)XAL4JvZ^vmlk`+<jv0uOp}cZ5&iC3;CpCqpyyPa1zJ|S@*9hD2
z7m2A0cByVDR44w`L=VNG21Z+VrKS$^;zZ%Z8V37_3uwN!f$-H+1p$~>+~iv1=#<X7
z`OISi!s)zfk&~Pm?<pvnx#)^gRli9n9q at yYw*&q&J!(Q6kVn=KqbKs8e<<OceMgfs
z4YK2+bjEKflZfUmDRR%gh|OAjO<3fVj9%uh6#8*Zu&ur5)tOXlGVa)sz0`Ek-rWP|
z49K$*Yqimgk&kQQJo3gFcU5RllrgZlPl8clZTXWV#t_n}0BA9%Th-3ct<q at 7PiXjq
zyjKP1HTr0F<QDm7oY?^;gy%fv%d5Bk6<k?(q(LXknP<8(si<>%eLkg3>&UXP=G`0H
zi_7XU<1ItSAX$g(5%ihLWXuqkF|5--^)EKrr5d;Ph;GBmIup;k-<V%!H7kEQ?D#|%
zfHZ&O;i4#ybqE)y%jP|)PADvJc9XEVX+f<V9ibgUt|XVYFI2eSrgVPF!HyunW87Bk
zuovbwOlYJQhbg#FE<HVXYM}^XH}g1pQXZ{ve^f1jZu<wDu~tydS;KklFnz#0Q`!~y
z7^B_p*tV1&4 at NzETa0somvX%`JEJTwKkxkKv$`BGrI{4g;l!Z>RH!=wSU*e6R<}5<
z8I*2=NtG#z5FWS<qJZ8ZsiuxXL*Zqak6_T;NBm6|&`jpowv6itL$u08<cm7@{z#Q^
zPq*?YiO4lw`XD+K*$42%aR<2tIz{I7B}43t->tv8xpoaopzp%YVsy1%X{nx!jrsDs
z+gE29|JXatjBF%=<Z?{(0#{rLygm9 at Rw1OOO!qKUuI`9P**f&3m=TQ8V at URLSsFfa
zLoZ=fIx at 5D&ty<wQO_$c<W~2!`CNMC|Ia0Kh5oCEgvpW6YpEm$eI30>?6mDNYd>p*
zM`Ncood%@4w4_sWye9$vFJBs#FAdxGeOz!@X@*Zclib3o|5)UStFB<EX-?0^kpYm<
zh*4opql+RiBXv^W|H1;PP)O#1(dP1G-xRQe&A6$-v6#ZRqDAKXa>oQvEa-<T+hKAq
zyc7;i>;$iqqz<1 at e^l9>=t)mn<GI0kn82;ZX^+|~<Vn at ahU!4m=a^;t0a|hysL|t-
z$;IIJwx<WBLq)@z)z{Xx9ZmU+-&Ur_pXwb;jm(^o(UXZEu{CNtP!%NQmpE{_v-Q6T
ztkrh<6pA5sQSq;b;vlIl4(6Tc5eT0TY0xC~dUx_8JB$cZ%|T_zo8FiHecr`4#{>?o
zw3!~#v$N^WS#Z;0cA)FamxwbFPMn8+Ic~wW&{f<ExXC%N#-yygM4C_>tEm`=6Qk^;
zB_0;vIh7@*OPEvntY*>EHTI(s;_Kx1XF}8VaAws0;u0=20n9NLU{@7%tF|5*X^A0l
z4%PiK2-J``^d49LY+cRfJfWu;iY0lKU>U&psM&4LyS|`;nMU^#QPl%@cQ24~;ZZ2h
zc)7|u?aXn-w)~;^lhURU$#&hfxt`$x|HF|>N!D>x@^`kx5r4IzVG%223f`UxM2Z^%
z<!_&eank6bj+ghbuW^khXKg7ejJT2X-|lTD^v0nKY)*oQk-kX5m})E4C)#RVNppvh
z(^)t011;g at wqQBX&^&w at Cj)t0BVkC>cgacA9cBav(@AB!vLUM;r|m at cM_uKj^p(t)
z+ws^w;fluR;1!kjqFeS>Jx4rYXw|Kd<S^wo=kBM6gtbP;q$c}{Y_C*qNhk0jC&=<M
z{~d1rvU=@yV>GPUWwY|lXllw72AQXZwVfE?wkoQ)fW45|E0>5n({mpEVaT$+eGwU-
zPLJMd$Vo~sfii|9JhWJDr)wZ6$6W`LoScyNSEQ+|(Pm#l+`tXZJP*|d(LExm8LSJu
zp&-Y8aG1JO@==!=mQCT%x~S4%Ew_R;lZ}DZHv6g-zF9FbS2{8EU_h8|^38OW9puiY
z1yU{A*hb!&DO3Ecd;Byfd~=WQu2DL3iBx2K#6Ey)JOa>kjTR6ZkRYO=%TgJ!QJ!HC
zgt1KCKiqys6;W|>{xUx%aEP}+NDo1?loh)vq#l%kT7J3QHang?g7J8{*?qTDm*=2e
z;`S)?&9!~q<9+z}K`$&+Q-!y at e8GsjOfF|UPF*77WwJaFt!&ykA8mUq2oIrV9zM$;
z)D!T76afdjTjZ#98b*wk1Hn%KeN7js2}oxoSNsRGR930-F`fLZx)D(YcLCC!w4w10
zW_!fr>B_{4ME>tcOKqv(o6Z|o9 at cO$x_RL3u^-2oaA_`$$JV?!=Mj2gp&PSF!ebAN
zuBmg`b?G!egwfF5SU=P0Q1~Akb2ew<)+rmPiaZn7<il}WKSyY$^Re7KYEY+Dg)3Vr
zG$9+{+Yzmu`e9{D at R48#%`6<!p$bpe%hKB{7grs2GGcr|BtPSwMKIMP8e_LIuPEN4
zdAdn=VqkM;Xp8SoV|C6EpVlpRJ+7pWWuH7~oZPG#SN;ikbM<=tP2nAV$ETb(TVwh_
zeLC|I#X+Cs6%w}-6S!#2yY;ItyLJUl)=x~4yRlQ<B$3?ZyvMu-S3~gl)9~=k12IF(
z^Epi$08cW!liLwB%<K(e>DJ&hY at v7+nmq1^8|s~jO+o5L5{5f{cDVnbt1%MtM>Z`|
z%gS|SVH+Q2g<B4AQP(tm4jL!ee0Q_6ffmSowEk|>lq^}IG!^AgS5Ue;XNu3W132~q
z_9fx1uLADd=>g?e(9O=C4}1>_eL&Q<J8Oa8=Arg1HzFm^f5U(zIYjn%l^U~d1?8l@
zMh~<u$k{{xKe?IibO1GB%zXd)`T_V&dLH^9aXb<-4joEnYE8;{E(nv3b3<!&lhbf+
zr2>^*lS{<gMcOMP>%fppMDxrXW_a<_a$EoG+11*m1UNhZJvF5Mk=S3X4<+Kz&-M=o
z7q|TA5odU841*tF5?bEWlhDL4o6}$(`&;gYiV4`18C|_NXN%->#$SN6ddD_s8rzb-
z6;J&QQE^UHi?Aw#a<2_LCb!|=<Se*W2c)M~5^|~52{z8>3+7to*Z(a-k#aZj=~v1?
z%X at TmMf6RKCwCUra5gq@HsLmMH2D at _%#2KIbc`HyOpGc_T->Z&+-%G=jLh7Oj5`w1
hSpS!Sjh(TDsmK4 at pc;d<;@bdBQdCZ)T1Y?e{{Y<vFxmhB

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/apple-touch-icon.png b/ui/new-ui-samples/apple-touch-icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..68f6b0810347c268ad67d9a28d028c4c5078d358
GIT binary patch
literal 15806
zcmV;vJwd{WP)<h;3K|Lk000e1NJLTq006WA006WI1^@s6J<SF(00006VoOIv00000
z008+zyMF)x010qNS#tmY3ljhU3ljkVnw%H_000McNliru-v<f{AqVV_SC0SyAOJ~3
zK~#9!?Y()NW!F{T`(1mVdvDEEJ<n=&w`N(gEX%Sy3d^yu!fXNwHqj>`j^Xhk3=czi
zKp4W5K!Ov;V8Vk31{(togN<z=*^)fTvMg(`CcD*AtLM3^tEy|d_nf`g`(y7j-0GIp
zt*(}CiL>-My0>msb=`Z;@2ve>zqR&S!Xlfhjsj!ACg5gZGjJiW6<7l_sO_JUrNCie
zC$J0H4cr0j1tvsfaxwpyEFzF^0p0~%9l<+TU(4E_!)7AL9|1lhBDcNdfL2ujZUue^
zSXE!6+Rnj_0zU)%nTY6%3TRbr0`CESDthDEYFjMZ3A_*ZLlNnmcR;J^#gPMTUQEhT
zTWwXCMXr6bi0n9<Uo>X{WUHz_4Llixyc*24oiCG!u_smar&ZN1x`$TPJAs?(b6wj@
zV0VegTNee;syY%Q(arUFt?ebW-N4l%GWCKfM+EadHJEGb0ox4R6EXS1JhZCrs=-`a
zuX$<_x$vw!bPNFRtifDcFM4WKz4O at u#b=`&KUoKWwe_&w6fyezlq2fQPre+_f at Yp<
zVxHNrouG67EPBwul%P0dRA8ghyrRY68&{KzHo*!awL00ucF97WS{8u032Y~5fG->K
z9Y=O(o|AVRqVta##u&udxITGQl<;4MSBGj!>$*XPzI_d?3x_bRq=rs!+AiSIYDRG(
zpnnW_KQE)CNoW5oGhaE%%tyzOG{GbZViJta0j;Qb6pzQDnxUHEHN*Rik?&f|$lKSG
ztmv!Z(}RmH at Z%!#fl~k-3yq%QWm22r=Q3s<IL6f99HjHaEH-IjlNKgvAl71x0V7?2
zRvfAhuW10ZOYuIV|GH%?`&Spzw`HV;Q197J;G(>ssk)Zl`f>qtdU%eBPwipiZ}-5A
zkTm;|{NB~-T}%YE#1{orK*FOSpvv^Uhw*93%3Cj{bzu$a9<!|xyB}KUp^xw~C;^@O
z<^;$8Vh1PhK7eRK(&#5?_G23 at tZiXz5<IjuAcBg5C at L;^X$`c)`RJvy4q4X5XB|er
z^#WG>;6*f+_b;6_SrxoTtbI9y`lyJkE<AKB&R_Cio_X*XhyUPFW*<6^wM|U3fk=X2
z!XeT7l6&Q#VkjQL#P0>yEk+Tih**qC at MKJUb~mkyM;N<#6JkwId}cp4kDi!9r>5cL
zEIKm>^BriX&`HtxHaLg28c1IY2K$l00c3OtSvHJWK8EzSminb%rK-1x$Za|0c-N8#
z^8-gY at Y@g3erghvG%>b?kp|Wz0hD4P2X<VT3K}9gpZ17=_u(fofGX-e#x%$}87Dt?
zfWfO*(A+Te(g1jT68GdT*nJ3p at F;qG5<htoCa2Nq8JJH|ub{C;UZaX5f*QaYw3)!*
z0A|G~X4P`c>g6PxH()Q`jNQCpsY2jgz->v~19<gP2J`G=<Lv+She&r%V{ISCG_ev6
zV;TqzL`*m^5z6sVa{jE*LtBg$@PR)giZ>o(9M&|Me(*4JPi~^IZV)jqju_;RpTK?Q
zKC*|mqX&-QkB+0`ClTkuLZe~D5o<sUV&h6ArU(nXQH1au6g at G8+kc462x<*7(1%&I
z9J^r+jjJxB`NnH8E0- at N7+kHYqoS&tfyY^*djQ+JPqODH?<3tkgRxB#+dz^g#x^jv
zfo(J})&}mJB#5zy2^U>*rNiVbBq$ze(4?Kq at UDZ)+GJ^)ES)Fo%(CJ;FJk$vTS-RF
z?^2z9=|QrO-j4sqPIPJ(X69n-Du at KxQH%j=Abu{2L&A}JW+N!zjYN=ZJfb5PADp at o
zwAsWgAE9yeW%PZ=Td`X=E{R1NxH2K^&R&vW&c^3C at QV+T?U^I716bR at nEXgECPA<m
z3A96Uk4$+;RdN?W#GrUUur^Q*Z#>3&jLWdL$?W6D8JoEP&I6#;d$NDL2loemkKeHy
z$vj5F>LHXdK=>T-PV~0?T$<mVric?XdTSNMSQCH5;7uv)Xd&`wcs at QwdiQ;F?s<Ub
z_1Dn%1K);Ozq*$*r-Q(zgwSeW$(e6w9Qobt%s)Pbwf!VXUkPSwF~%Y$3EnsdGZL0(
z36D9`KqCe;$93S at UKJ6=h(pOja3~4wy)*bZx41y=q_~H^f&0x5!DBlyn84%3bjgba
zsC^#T#$Z<s_~@A{pjN_7iWo=?8a=lf!Nf<Euu28yA|Y#<QxjFP`yXZc{zqwj at 6EKn
z?OTw+o>h5nPFSK9b>n}vi;3I!lGr{H+lMtRtZ4?%ED4y%nI*rVc at UU;uM)rosH-MY
zQAcdNDZ-<s9W?Wc17zpWT?a^i|6|DC-$S_d8eO`1jP0T#6J4swU26nz{=E1+5`$of
z+yum;Vi03cYtTr$3Q7{=i2(Bav?vCTdPn;4yYP=aP4nNsgJjeCUWCQwge6$FG5wXp
z9Q)&MVl^R28d%dT03BpD8vz+ErYMDXQ)Pi?)^g32(*V0rLZtXABwQ9 at m6@6*`^>%Q
z`~DJhZ~{xYk`#%a$~{N*z594yddek6%Fm?*A_Le(qSrRI;MrPmZG$G!^BYqF+CX0A
zqTZt}!|&S9{D1jl`hMzGl8buI7hY&sV%foLvcu6o{02;ektRkW&5+2MjS0a`AzNt)
z-U1NX?a8zPk_uqdhol5vqZAf?S5$(Ma1Q2nA0U1IU*LZ6gP4QkkziC+m+D;?6bi|C
zbl2yR?$6`HXA-X%uVu8Lam7(e`h{S`V4|#PY+mP*V3P*cHn2%EX!?ytIGRm3Im`S9
z{}Q+VaIe8*t0A=KS~52A_s=l*#3Uj~;K?MINC^r6SKX(U-mMEGo&um<l*0$!=)DUb
zDIV%Vv6A<WWbFW^^};i6+1Izz{<S|K`;$)~oviT0dBD~6ev7vqy`(DSI<toN8a|JY
zHyemoB)I929P$dz#lshecn?lNJ>o%puGAZhF&L8rJtUWmjZVWR=#g<cAG;k*(_Vtd
znuI0PYi at qWBom+74IRQsmMFuKNBLSV(;BHn*D|cZqxm3H<*ZtB)O%tIJeHC=hxZ+P
z*1=^dK1*>~hoOsCVTN8<Noo3(hiU(pKSCdQDkgh!5PQ5z*LzY=MLW*lXIX1f+>jW=
zOZOe?OnFl{?M@`2kZ<^~RidsX%W^iXLPkIoBZ8`;Mlm)4^`uYiAi4MJG~Rq&uRx at +
zWD0#X^Gx2chxU$Xtm%tVT+{+Y3Qt_(x_a at Xn|DU<6+jd8SiFW>4yjb#`B2m0vJT$0
zaj~YO?-e7Mp|ke`={*lJ|0}<Te|m4=%bG)3Bh>sUG~O3WOpw$Hoee>}0UVed)ZsHp
zc?VbT=6JhnWmSs6&ON at hrxXt72`P^Uu|YyK9yJ!z&d45o9Q&GAVETKbyf#@n-g%12
z+xBBjf;9<<jfX*1=xT?ykQ+xTQCuyPU*k|Viit%@_*medmykM~?}X%v>)^6^THD6x
zziK&>oLMc0sv;t!4?Ir$mwzAKxerrja)Q^bK)Rb`EO=gggj{kAo>^iEtQd>9Ktsfq
zv_w?nXHHRX!;RoIMtwd6ifX!PS at kigCQ~JX+#-1V-Xr)OdoWjDQUm&o)quH-sk`>!
z4zw}3k|8z^qn=&tKMn23gT0(ucpRE#sKmm4GMvv)pW%Iq*WjU@@8Dd at s<*78xpC->
z6AU6kwsQ~Zul^yrbAJ*1g at r>SZd}Db=Kz+%!|DRX10;I)@NXF(<w at 13p?gq^nCMNT
z_YPXMMo??et*s5TV?pq|@H|Qq03U)%gEdhGJUNRV9`6~fED1oThvu02^q~+4N&}Hb
z)P_yPmB=YiOK%<PG_>THs?i%0y|M4$G{b9(YAEavU`~UV_H9Prw3)HDZN~JSc|ho=
zXUKm2|3e>pI(X(v#HTs!c`mQqrP-BoVbI7!m7uB*Y6TT<D`5pPY6IOcifBxW=U^^8
zwGU9Ja_H0DuSO!EgYIIC;4?)}OcpCq4d~|sL_1^ZbNlg!I#HgB-nlD<U6C{L*K at wS
zfRw6_92tlDNGr%e+lh71ov>R)J5kx_(6?<FE8le)jWuVNCF{KJBlyofh*4ACOhwq|
zEB~)TxP-ZOz4>aLphrY78oab(Q4Gdu0J~9)nvm_($gh2%CD?_4HsO3VlEBF;$))Nk
z7EF}xgLJ8wAdSq<p>y-dKz|MB=hbT`Q%>G?7%?_f&gI^ja6GGL&R?kFK^@@n>O=9q
zMis+%a2mX at bL|q;K1F?p#>QdR{_v|9x at PrRz4!M2`3(AhK8GpN>{0<S1$%Z<LfRM5
z)(VZ)E{&p0<C}PU2qvl>A)#au52!<&4Ya~|L~WESqbD!qKU<zZAtqZq7#Bh9LrUBQ
zVifMjz|95F)IsKY0xvxcX!XkM*N@>3WFdhfNs$OBGGC`n*=hHK`cOid2Z3ZIrSP4C
zQUow}aK0UZp3&Mg#D*Wej<L5~aCTbrH+SOy;tphLI(W#6zg0?g!{Y<}iT^G1%%z7u
z70 at Q$8itDZSA#(@;_+fb^3N&i4aO*HOr#!wt%Rad0kJV)Jva$pdkNaL#LQE;TTu0Z
zhBT5;@mB--`S^x1b;kj;12%ePBetuS`E>fTY6zrqmCHvdE9~kHfOZ;!KIZ~}oo|!5
zb^x~T;5B9V)$3XJ?pHDLhO;Z5^z-wie|-n;k?mM5wTuYgE-+XBQxt{=kl{h3)eJ|H
z#LwiRlc95S=*&DiIgL{nt2K%QH8w&#1aKip)F`)k4PIJv at 2aN4E?kiY4`B8s-*(}>
z<*D$3C}{{d8R*9h4%C2tUjBJ-hID&7YRwiS24WJWI{*<>edLnC+k}&y2VO4fur7c)
z_s&`cbO-0!c%RZ-KghDTZ(-&4TtRE|+3!rrzVs03ZC}J>DT-a7UgWU$(BHytT1~Qb
zJ+f&HW-RO=u`8E{ZBl~+NUIS+<<Pk{e(EG{ViJGkIR5B3{+a!_?a$!%A0cppSWJ}X
z{33YO#6l~tL?0fgNfzFh<k6lXjQJ_Jb4dStCt!l3 at cHed4&Q2!j1AW+$C=plJqOX_
zuGnc3^v^1c3py7cb3Hc#CI)~$Pn3`q36q>7d*ksogFYCza23NhtYPT7wG3as?ge!x
z at khq#{QYNf2M<FYL{*E7hWjy>Zy~w<O6+A at FdNojHmt_1Uh%?Wi~~n-yAR-Y?4on`
zy|@P+$4$*5#i|r2iSeQ0&PW7vl<<u86m<Y`!?0++(ZNS)FBUB2#Y$EBwqh7rv%CiM
znb_RdC(%^Pdfsk at x56m3&<;=+fgOQM*)+y$8bIw+lC}K|UbLFl6=O6u_LHpYqp`A|
z=K3K_>xJ<_Ri*R!`<VaISIH}#gt*am!y4=xUq$2Q*JHMBz^q*vHm#nc+4ZZj>sQ0;
zuA%wQUQhPOcG`dSX*%~jfOIkhQ-E63;4z4g8CDbMi9|q4<i;UT3?-wuP-a at xOvj96
zPLYyzE3ubeSOfa`>Bcl}f2UFxR)#}GFj%Qd3ss=LXhje}+#!n^v)2&(wKfkka^r;z
z-L#hG#vx39g0#${><{z at k23$+FOf}5#AV&n*tmhlw|xt(e{nOidO2qF{4LLR{c6m*
zRWx3A4eh`FM`r%`ukeSC6`&3jBm!GPawSyZ*%*g7L_K(idJEp7w%ib)#g3M!(+u^~
zxbCV&xiMe%fS%hifjg9T#q at djXDY9Dr6E*f>N<-6ZpULD=TlaE_r)yx{w?%fGzyJH
zZp5fc=e~!Sz3YpC at -z|#Z at GzqfA@XZOD;rSq*@0NK}Lt^`*+`qz32iafAxQo?b;VJ
zl=({L3oSXQMUh^pMbrf#s|6oxro-OhATw3~-Mr>f8gG4VPvNF#0iEud#+}Hp(ySEM
zS9WVq&8I{~SEG0KDbA;4zD?%mU=TL`#Py7R$0np{&r3$j9UW)>?tAfRie0{pksrC0
zfgkt|Wca1ot|`XQe9LPYYrdCbKlQ6*M~>%(p#``@eRSZ-fp)l{THrtp>hgmB5GaQ7
zn6L`U at -c>f<Oh(%)_^`ErQlGzsME+RzPgI&;x;NR3p9%0Pb1xMzD=^a#rpqr9m8)}
zdwy at g?N2lPi94{XS26bUKStkoytOB~6*b;)Ez5uF=NSJ_zl}R^q)=I;s46j`$Vm-&
z358xh=glV4jd-SGI$ax<RsZ>?uorFWIoz0D1hbp&;Etxnp1z7&+RdViBKJ_2;nktu
z;e3YE4$VyiZ2Zj|&O4a>)HL&-xD)AXGWy;hrvJNd?y1&Wt+&38mGA%0G++BlyagYX
zA4gDrLP1tqG^unx#kmyk+TqAT>8#5-FfzcZ5B>&?8?Nd}N7$1dI-6?aPx!J?O0ff4
zD!Q{4eKgejE`8Z+2fL=l+MjzRgV(M+ at 9$UV+oVtLV(6XU&EWTcTTfo-#&uV*@(+HC
znZNu8X8z_=_=89BGxITVu3hIg-$0;ocY&%Rqr>#S=9P^8%>RYmysl at JF;P|RwKp~Q
z^a+mr@{^=bwy|-)U`{)T+w#NPj)g|v<494Lk!c(4_pE;J<&1sji?fN-pPZp{_g84X
z?pn;MW%RoFBgdJ$?QZ7p`5J!TA^i9W+|)@((}?9zlq7=#nAIz=n>RA_j&GyyTV4mv
z-rnHUlYpLm{20f6=_&la6k}Qe&~aCDu59GOe$g#d(~u~!j%BxQX2rWN!8Bji9XA(;
z-aWII?5Sr+_Z`3;Jr13ANL2Ork*r at s^Qy~9uDEo`bT92m%Au);ww8S{%H{!usu2o$
zLefO at LVTYx_=Z)Cecy#On9tDcmQC0#n`pgEK2Oi89HHZn?E-YJYG`G2g!)dX$?zS_
zO3Si;wS~s2{u-(OM9uW(yAqNl>FOU*fVxZ7NMl6a#@P<bzH18u*RQCrY7OWfds9sd
zt+EwYnH!8gx{^TgF&o(2GRVj+8$$=q+G;@e)SK#0kb#^xo1$D)qlBbB?l|!&nWi|}
zEdTb4Xl)&?ujoH<>q!o6h8vhsTXe%L+bqTsM-=t307*OaU%rCjo7UA=v$o#!&~~ha
ztguuIlZpyEjXO`o#XW%;qc?7%xpA<*nzi*P<uC at jra?Jwt<*lWs|`U$Yx4-BH(yX+
z$=Z5Y<p3HR`Z0Y0#NB-&w5a$3W$?;Xw6 at i=18eJXKsUDzBWq1{dPLc0BYJ5wU>SYe
z=K3nu*86~NZ5c+^Nf)5C`W#QPqMw1+tgNqMZM_d@)0dE3+84G)<(oIVny)E?SFFMg
zHS4QbTVXxDNw)v`<($0j08H3oW?%tsD-7PS`UUOG{-<u*K8l~&i_RWK+vAW<f}2K3
z5lz8bq|ro at 0Z2xmu@Y&nLk6}Wtz|W!U#Rt6I?BoQ2VugaChz4Ocd0alzAMLSK%WtS
zCrGz{jP&W-(e`-U-Q7VoMI-~`5aYmtSdTOWNdy`uG&fHYunkE15z~hZT?KvDA|ux$
z1DkrP60fHLEiFsmjU&wOn1U>J77_>Ik%0!us{US{o7Xeu4t#~qgMS3J3EIKCIYj4+
z&9B&qgnS3Gs|Mk1aCtr}4jG!-3nxE=jt}6Q7a)VTAfvBG`ZplSOIx?sll9P5%MQ<T
z?8kTDkA&Kd%*~Oy8CqA4u;F*F$Br~=#6F*g&O7<L4mz_Bcl<Hjfv at 1lzk#283XwE;
z=LDn?z-<~pBfe${<0+D`X*Nva4by8OjEEC6f;MkNM&5=DU4=A<YCxaP{9MMw|GSI%
zznj4M4w;)Lb8`&6bv<i-{wmBsQX}?-0)6fX+1@*Fd+)>@{VF190CWRPQUP>>V%~~0
zLMNp#lDQlaC)lvlMH^^x6EgO8Wc1Y_$&0#*_IzoY=}#E=)>SY{Y)BqzIP7QxYPxZ5
z-mHH$jZ1!z)*JpC&DZ<_X2sPgN!UbRofPI5JTDreYMAe00Ha|GsBuVoCmj1t{GRv2
z>@%p(YCu=5v0;Gbn+HQ at eL_1g5~%~i#R7KU3L4wqN%Q*OBH8u>V205w^nTPV96kdw
zP^WPe9B~pr>|`pj;iK`0@!(Iu>?iR1eiMJ>lV~<m13EW5)L`&!Yhk&B-pv{|#M0Yr
zX~~%xxtPY4 at 1=RoFCv2%hvqUVXeT`StOU4bzH44$-VaYGy|x%2dm4`YF>c at gM(6j}
zfUZh-LpQI9Mg1Mp$+<AywYJ6e)=58h)A!JL<u4&CUKfDeiJ<N%bmE at ROwly<j`pF!
zPiQ9=8$TK!XowY%d6>KdzwZP1$%i?gVcViaR67sPvwdHO-A7WU=R at b=#0txYEZf#6
zylPt?eT{R|Dy3-{x#a>TzO<9hlT*y?Jr<gB*LHqZ#g(r`8l$9-zYlll?no~L?>%K3
z4~+p~Y~E-sc?r8p93Nes;5GLM{?JJz`<IwyZ#XZzi_QtqUwq;uAHV+?Pwww<^n@@m
zt$3Fd^~(b-SUw_bSSh^miecV);|PO&FC5sdt-~yT$0bbvk0Z?NJdAgadT;l6T)syy
zqjA;Gp_#`Y`h4Kdabm4XoWK?5uZYCPG@^)UAh8J$Vh~H{k>?GP?SrF#j`}vNeCwhs
zATLO^+kd>x`#!mkyC0k4*d$mQ7#burFeI^gmnn8=d&y`v9h+7QKmA>6x#{W`u2K5b
zv*RZ|!Q_{Barp<opP?Jp)yb9fY<^}B?R(yfjz1hEy(UNtq$QY^AWe{lK$1&(O+=EY
z`L$3D8ld_{=xFK%WDHqxD`w at 5i@UP?%CG#&ubj;<+`D~>pZ)WleD=`^=Gua#K|&Kt
z14}akx&(IUzArcr$4+M4_2>kG<+_VrSgQfC!r<1`9J~E7bS`7rTedAqZ|B;ci|&nL
zS6)fB_a3x8RjQ at ATql|j;3_GG31dVMi`XQj$Hj)Ra>jyh!|XRf)*u5L7wx^CF^TbB
z`N9(u{68OghKF`dW3UzQ+6su9*a&b#BLck<f!|=hZTY~b5AcV#AAiAby8rU!Z2P5K
zXirR|wbJn-(T^)=-SCTGMnZrX)eh45m?`SwupxED at TPL+cyQPxp-w~^7MQ{x`w)Ke
zi5Hi0s49=|o#j9N`7R#bJsE*(v9uysTM@)fEJ>JF754yoi9;?;iX+8K8&Aq$zvDN4
z at It=zRYNsemXM{7et^y+{|nQnfp+xe^dqFpB{7gRkVX at viAXbYlt%HW*wBJHRWx;I
zV=HFef4~f$dwbq9^3W${GJfy&{XD#T3Paw_$W~f)l`XrfZ3jdG>`gwBEgn`Zv-9xZ
zKfZ at OM>{o2mXI~B`Z1CV-dZGH2(wI)_*k?!_HmYBwT3- at FHjT#8#|rOJcS<qFxr_o
z|A1Ci?tW~7f4F}fLnub+?q_7Wo)guaeEL(~SldK68wuXsh-KgLj6b>aXpNF3X3gt=
z73p77OtQd5mf?VmsD@}cqg>08&((=rV)CLVgFo?A{K1c*u5*3?J=^wt;M0e?#`Y}O
z;0Fulolu#Vnt$IQ7>Pbw3V3tRH>bFN$4rfqr4%H#R?)onXCVi3Rsvdm>ABVU3JkOW
zGV0 at 8#4 at 8OR`7>z!yoy_^9$$)c24osp}7T~*%a_Dn<!T2nHD%Mz%CMhGtSDhCV1-u
zCo(?&_+*Wer4}Tv{b!hsH%E_LIf~S{Mh{*Y6<4_Q{HQ?43RrLl{vJQ^(D?)OryrbL
z&;eAcXni)K()Itm_fZMzz^Q|$Hhk@=S#}(luTip;%=VFNc_(UG!7FF6?xRpVB-DGj
zoKO3r-lG7v<Y{t2tU(fk_$l0hzeC%H&Xb3JYPNDCRlzJ3SjW`oX}}!DM#SF|qGnur
zY9odn2j<y%c&-M?QlcFqn9(b+o4!4O*j1>84?J33*fxjramKojTVKjr)FMDE=8PMd
z*^WPQR~Y=c*nr-9tbK}SF8a)!0$<<lxuXslrm0efkRlj~L&n75yz<Q9Hl3`l%~)E|
z;Rts1o5A*#V9rX~K`b@(QJ>blc&S=!9m6q^Ao+<6p!O%ejLtl{_<){IeOGXo&yc2z
zIa6?=yrWU^GkJttX|WN&T-88?eaAAU=jtTM((=*<8ND34^3`Qf=rn-aYos1p(hi?T
zj1>x!d+g|?C9z at lp`XN$-*?t^)Xxj(;l5-+KMcWFAWcCzs*m~D2<_^0R0$D_Wh?jh
z$4@%uJGF;ia-i;Ciws>}#(7?%`k~PgN3ZM^eD0-PQDz!+X#$vYP+J>P<uhM{&cVe6
z^yXEq1!_iBlIzkm%0`L{s7Ter=ZwTe+946x^Qn^6_03CA?r0z*7ei}VIbpdhiv}MZ
zTbH_#OL%cRd7QcxYC}u}wE^bw<6lLy*~J6&)^*7O5O*sX-Qf1!n&W9fy-*<u&zp&0
z>ms8iNINVtbRjaZwsOg1Ql;3*QpQuoYgJvk(4-~oaxu|ki@@C1!A&k6ps(4|&#4M?
z_t#q7b+Q1!`Yey9>LDwJ6Z#r8pqHeR9$15EF0TN$a;+-?pjLs5FE<HDrBcsCB`ks(
zoy1Q*g8FoE0Db+%Bh{|VgkhHpa`ct|>w;iWPYYuoKYMwLY+98t)L+j>S(=FMLzBUB
z#jSd3sn&8-6D!&s6jm4Pf`SCF>&%1T<`)OhTi5h6*vi}Kczi|0&@QNJ1 at KjXcYnX|
z>6N=xRaw8RNvlx<dWj+$F|CTSTM+}41w9cc!Av*x5Gi|sOEHc_5j}>^9XO*>;patA
z!x-Lv?dSsVmJP at AueyD7w_ol8wU$4hKUb7yQqzs4ZCWMP3zp^605}GSA`2<17B_^5
zB1REr(36imOFVX#fVM{X=dWH?fLJS(qY7R<1=Mu=WUYKpOS++5G^MtsX&&{R?s#8H
zU{<FuoT79TAodlB*LUMV71G^s2ARX>1++23rR!N^(NF*Y9Y0A#K~x7>Guk{2sC}2W
zKJ{P$z<n3YwP?|!wCgP4(zR?F$)>tT;>f8ST24{FVl|%lf at 2r7Bi<+_mL|~oL+1`?
zfR)1yzV~%2D!}!pfLSXrKQ$~|;KQ}#SNUs4Co at u4d+8-dG*t1^yYaJ!x;=EB*47Fr
zt4(QgFjoV{1sUk-bKxX9w`Xwx-QTdh;nFes8U}~20Jl3B<P<7Wm2afHSt;{|vEehj
zj-;HNt-bWpLv)5t?L=n|oI<4wC3hi5F2KAn(X!yRszTytp>ud~0BwwL*@gk${;FkN
z-r2`Leku>vQxu$l=^Vg<s1${zsPOonS;nW+8X!v!&<>qD46akT-V6AzE{wCD?WlNZ
z@!eA!aF8w%<p5YU(&8;wE~l9gHoZm}PrE3{LW-d!fa%`tB5}t`KFfR8ky-YQ*CnJ&
z641U=;;~Eg&@Nh0>{3|>;=JZZE3f6=x|(hD#}^OK)(Ee^WQ at 1IVtJQ`_C?D3RLUWu
zl at -TCV4I>54Qde$n{87keD0B1PR_a-Buh=MQ{UY;Q!8{sx at m`WQH#o^S$ripjGS7k
zs)$F-iNymn!1`r<y!}<HST>YY0z%iNT1c1X92~S1^SZ-M6|~#|o*#nYbB~|k;6%L(
zd`X$u(4JsnEZ0>9QBnsL?W(jZJ+iL^hYK50$HSjoTtFKm+;rs%ZoGV1mzQ4Xp}Rj_
zctzBNBX5DA31}GbA<<JGn&|Kk_n)ZMjwJ?YNruW?$|*a&D-vDx`wMyV!XQz#TOmP1
zx244dbl}oW{^je|vvqafvnE=)Gm3cx8$Gn<9@&PL1_kY~hzkGkwWIa^!X;$}8C(a=
zF;3&l$oG^6^CgE??dHgNgAW$$JFIReH_gQdG{BoKTgG?4W-YCR2wGRvcr48SbyrCT
zPfboUeDKsI?Xc`SKF^=teUQ1j*nep_Xp>-uw;}`UPD4BN)ao>S4s}B-1x&uuZ`y~i
zl@;d)(2c}!>zg-l<CQB4g(Gn3YO<xObX3ybA_3HDif&324Qv9J{=@?Z_{`VGYqTsC
zP!DcI1~;98RV_LxRpmQQ<HpN`i&l3Ccvrj@`cH2 at KY#{Ux2(m_f6o at K+&FaFI*;zu
zceR#-DCL!sonSGV6hY%$s=V*hPw~{jntCh=Yb?XAz5!{BR<K#=o>YJpL>HDuL=gK^
zy|Vf+9RTk_^Su7c&mW)xE?YmyZ at p_PD~4?h4qbWZsWM&>4-^TO0BBPQ7DKDBgdK-x
z_>GT$gSmDcAifyp)$!Ei7hX8+SalsTxS?nbMs*8Tu_Y_EHK^1}tNQr!0l+vHMqK2Z
zYMl!^#$_F5>^0{X&;ZwM8|C-kb1{v?<8f%5Qsv2eF?3U>vanxbw$mUH#FqFdq4n-v
zj~(N8KKW#gwim%vmHQ5SnA>;%R~%<QhE0Yp#%}uOU<bS6xqQPc6`*U}1s>Y(5&-Ko
zObd3Qj|Z7UU4~{3MUdf}AQ?FSfChNOrDJ^XhqvNLabywDDGrDCE&{l$ht>k&VN3zu
zAhFl9l?Dx(B&LPX<j=mimk)hmUyZo)tyPHSidApp8^=Gx{f9qt_J9^kvi_}@(aS4M
z8(A<Ou54?NH+59!i at wsD137hQ<{*n6y6;t(l{X?{UK~IJ-2BQFeBeD7;w8h8g<jBf
z;$wzakMq6@)WK_)sqlOnKw?@nrH_{Mp{~jMKJ^Tre(+e0y7L*>iEz>An-K#~9RD;=
zpFDf|A%ojUF1{5SD+6G&64;?fM+MmN$fs#(>d at 4qsf(b_&`t)e&Dag^M(mkQd^qco
z6whUst{>pSH3 at e<dIIN*db+S=NT3&aFeo{XuCy}9x8a2SkrFyXSwog7Uw!HX8<!8T
zZEasYQ{}wT4w!cPIW+f8+J2HXgO}28$Ii~v4_}1X1b6I_Fb_`Rekx<i>lQ04aZ+|L
zbyDfP6nM7`Y{hQ<S<K)CXZ-gU70>{eZ5U+Z%7m{yeUh2BkE#67dRLGz6{*tvQQ`+S
z at pD@dj4>D^Bu22tVogFjgNJrav238pmenm1Tkk(yd at pTi>m+-o?`PH>Be4l<`me-F
z<Lp4a{2HV&gg?0lIuqsG6{++`%$w4<0PMnBI|Z7U6|ci?{Rzy_*0cKCiw<aj%Qp_P
zWlfVO_RTUrofYgxit4)999^R4j$XP7W@`+IH6$i<{BKCYT*q<$Q&T9yMeF+Mt2fmy
zE}#)QI?ax$J0bDR>S4xO8yRbCKI?zWEV~M`>=Hom={RJw6je$J62Y7YkCF+h4P at wY
z%=&j=H~(8q-`cbOyUF=FId6OAaz+Lc-v7xXeB~SSL7uB5Pn=pTf+wU^#F*IkF35Uf
zOelPj43!imBf*lU9scCb!|XXa&%b at kdbX`=)ks`SN!j#aY-nIK=a2K$?Cq>*Ze!T4
zKYLIwe+ at Ev73TQ8=+vX=^dr#O3w}0sq!m<JNdIc2?^4Y0)tF^hAp_f9_)V$jd5qLE
zhv)gD&m7~EU!7%sJ`5U4=nHcVC5(QvMk+ at belFHyj0cl}I5Y;DnRdvuO{#6St!?sy
zH?HHxE0!@__w-m4>F!u(JGUM9c{)sC6G$4CR}a63O9#I5tf@!WzwJBFK7gi^;ASCf
zgKdKCLy{qAtU#J8&iON(cR&N2oO9gv-~=DObA~7Pc`SWcnj|Dxu~-v8oft!66l3Ed
z9x)EY;l<%AfbM9UROcBUfNQr7 at vb*+<eJUH*m|_=IRW~3=PB+u{0q!8j%|Rou%dYp
zHw^tO%aW}<{~68;hhAu{hT*b}{k(E(6Pq}8ANF+8a;%WVpwQ%lWK87MLe~)jWFMN;
zNGOP!?PNTCWQxykKg|9U^E7P2nvoXP)=J0=u{n2~r)NHkH}lve0J<aN4Coq`Cl_NR
z>FM|XqIl at 42S}armF+Y9%{?=G?!k~$u at Zv6#8?t5BsMg17o*tNY(&KcO<Oyp1TURw
zhg9cDwL_{Mkc^T3glo5qaov^`T(@O8+t&0m+~25?dWP5MXy*xTKl~q2J0BQ95*jED
zm{r_3 at Y{^ojWwW8XA`p>9^2jK6JMU=i(iLM3W+gTYe__~R$^z>d at q{Eli}z@>Jb2)
z(IL|gPE#^6oMt%hu-3DDxXH?)7DIgrBLks}>b6zG{D-$)&QM>?O-={sgYAd8{qWC_
zGzHrbY$F7S2)x4lFqib78<#%c_L8k1V*^dzczKg+xAwF9Tie|IaGTq|mNGFFa`zo4
zB%0HYuoq3m;Z at _NugW;0ycAV^D0mWZ85|sMb6|WHiB11T`V+qWm78iXKZiN(1iEJg
zYr-xi6XWfj{%_gp--fj{pr6$SS_zkLOt^gGAV2i289NTN`RX at 2eEn(9{$nYbgVaHq
zd7O7>oFnZb*b at xaBp4H<K5LuU#AB>yY_P%Ao5r|i^D?g4yo?K0_SZq<bC}0*((Nzu
z13^9w>M0_${c#Sbk8pu~V-4stvA#yaRhtv8+8kQ5X3nwuNQXT~9mghMYDSryO=)Kt
zoy=jal2~Q1PZ$}nEFWsHX0*xr6)n~+Z`9yDOUrzl at y=64vdfq_+$jd-YG6nDcU(XX
z=oj|ptYzD}ezvWv!S>>K=nhBbo-C%6l{4GJYKRx6>^GRsjxdz0?#a(kXCrDWY~D{Y
z(b*fo97jR~4jpGonsDste7<KtLk;NK3WekF{G%1G+<oNLk46lK<cl?+YwLADd!9OZ
zS0#~^dubD&hr%*r3^THyj+?6iU0d(kj6clbxo;p=!eR39)!{MJu;*pJ%F*<(8ql@%
zu6=XrQ-M;Lat?c-8)b#0<c&5(IN^J9uV+$U%G#WE*gknX#^xE?3V$Z>XNu{+VV3ZW
z*;50$wjTA)(;p|3S**=7gRzuXY}}YC1=R?!w#?|E8ql@%o at Ktn6O;ddSj8q%NOKaw
zT<$UoCK^EPv^TrN)*SkuxIH%WQQ902rJ}|J%2Cjc63}^9tDH}RkomL*bZxz3li6-|
z&fE<)3*Olhw_lZtMy_xeOwni)4bAJl)_|_9hXTRJXFkRphp<)xe@;x0>#9lz)gFYQ
z{eY?L+OGj!TTj at o`OmR`{yxMiCJ~G^u at 6ewS|Z;*B$R`m1cPd9P9ePqpCuC%9?3ip
zOr<<M;~398iqNpa%09#9e#^F&<-&%LETJYe9(bnhS(^xhFXEQ56X{O2&wQMYOk%Am
zc6sNXSz<yZm+f+uBZPxK28V{kv}!<~t$lOe@!>r)+<T(Ktil|Sil8QFrcDd|4a0yD
z#;ov$u_m{SHP~uHqnci}2c}YfZ{I9Gy=j1}hF_eb`FVeW$7cV6akqmc3H2FbVrI~q
z_`K|ulEXR7fmKvZnE2YG(CJw~PdU$r4$SdqyJwkIaG^g~I4p=2GAlR{<`l-AvfnFD
z9-Zf7N9TFVSd(|IXmWY0H;bZ=WS&1dFvqSr&p`6xEZrSH!(%faWzXC_m?WITT&A<u
zRO&cl+pefV7hG8+_IDQg%xDehGqrtf$FDs-&F7DI3IJo{qmi(KHiBE at Zi;+pO~=Ct
z_5AIL4qu*1dC%HD-Z9#s(L+>Z+$q1icaATPr+oj$epWWkivZ?X9-H|n+owN?BrZ at 5
zQ*O2DDoTpGRk~-gl~YtzJ%eU_4d^ok^DjI#&3zLoBoYoIA$-k&Yz4L9H8E05SPuIO
z2?2~#4twR-56pAW!;da&(0qwO?N!;|@x1?Vo7;}I8SA&)JlbINJo0B%WiC6xWAh(o
z`}C)<iDDB|XwBBfO1ij(t>n&C#h`qDai$qVY^nkMd^Y2h|G8(D`zBLpNc755p&HfK
zg16QP_QI)nP!%LmB#yuPlVfd+z<Wj;^u0v9de$rV%{u<{c$<eOQcTlu!?Fh32G1WQ
za at yfY=W(8x{U`_KA1<W1Dww+qlJah_62ZGb28;7jRAJO^sR8|b_NnnUpFPomhKV%8
zbc4DI<|@!dQ8A$%Z!zOB0$M>5;ZG-1I>5U}8;re(pq_ThL8tu9$&5RvQ;yGjOw-UW
zaPw%BHH*xjopwldmXp~bcC|ml?)iI|_s2;ZF#~8r0>u`=ps6(VkxHxL)10G7ISiJS
z%}Z)PKbIZuc>em}Jaa_QCXp*A(#@ZZsc>nDuGy3=TPr52nCPXASN>|&vtLu*IbgZG
zVHi4(OZ~W0_NJcC%{ji5DSJB}Zw<Bu-YKsguv|a9IH%vM<D@&lbb6Qxw~M3MBOK3m
zFz1g3Pu!FOz}A4VA+23j)s@|<c(#N|Wt_-}=}qt4Q-HqfM2Fp}@Ak%34t)xjj_YB5
zHB6Y>A`7m9#5w5Vg7>~RQ=UGV^5%x&O?{S&8;0eJ1niSu*`0cx>3F`@@jU31aU}G0
zZyJm$-WW!`a?5aIQU30U&QA8se3iZPUuGiPg_;i743mIO!u>Bc%xaH)$HVE8=%K4U
zn>oExmI!2xldM+DwKbrh%Q96Sm`XY6;ybeO%$HrzL-1!L49*fMNplWzF;VHLz*-~>
zN7v|;Jc#!k^TOYCl+U$0yuunTOAOmuhRunvE|D`<L{2#6Nb1=$?|G)}*zc4low8rS
zB__rJrdU9{3k~33+pyd;aBkdLaqO7-EKf{+oMW9Q1C2;xEk^7~Cx%MWq&!`+K-J(B
zP?v3da#cfB!jv{u)-|uM0sUOIx9!>2_9aNGD_^k`=I2>ra3V#J60V4r0ZkllkuyHL
z1~2Iq^(M?o7teSqe4*p{{H$XYuu_#V5rzbY3 at o!DVH55PrQ?;URGG{?GY+P_GNsC~
zOqo=Wh6((?83M1I?`zK4)v!#Je>0ezQ_?5XIlgx6LwsZ6AIX@;RDqm7&jD>pFKsG*
zpzKJ+DXUu7Gxewwya)BlkZxiySy2P}x$HpOb1e1G=aMRsb`{iw0gnh6jZ#PaI(}P?
zghv~fPtmA^81j*)M^fc*7DtQuFsUhtCrI)kM;<yFX6NRdU2+Q45G09*4J(OAzM_O1
z!T|4R3YVUP?wsj7UpVwX!cZScu}K80E$KvlnAq?#s6Y~X1eUzH9DpfNj`KOeKvfa-
z@$^VB7juJsGrep*0qDupGo3A%3tjcT)qavbdS5RKSza7Y6fT;Iq7 at gUC|(6);_q52
z<3I!8gFB0JJ}jhONsBRbF)*!)022A}0!gu;MPVTbDvZLV3A}sog`aY-j(d-Oke$<C
z0FwsKY`Q&i*^YSO*BWV=#xq41kV8dXJR=2=6}-WF#k=4));3;U1N!+a^<gAk0c00>
zaqfNdG at yyVb^<mIbEM*tRm1WwT1?ea0bg_iioX&)7MlNF>F_bZBjGA5fG${<tDrU!
z)Dp9nM!G1H5FB3%<(K;{<{YTT6Vo4O=gj93o0i<zmL6JcH^rbzDWtsV4IahBfgpmG
zCp(;ye3rbEI0aTwC#*AXpkW4TKtJ!B5J(DLC;}~?lH{w%h(JeA59$iG;{>_rdo)}l
z&A}ELs|Q!=(If)Xhe=GRqKR~`7+vzLl;sWiA|j<%#>5ay%T?!RTEdods4F?td4$I&
z{}yj&f?8Rj6=nhDpu&}@Pzxp0VyFmGfI8lB@%-e>!+R}mZ0`l<JR4fCCy`bS=;yPs
zhA?D>iB24No_lDg1rHV@;DcfjvV#jjUCufzz^UPDZ$iUCl{hs(!oL-64vEx63y+%*
zT0hmKOr1$p at 2;?-%443~`GG#+JBE^TSixp_bn>s5<1i-CqF-|t%@9J-mQ;Zp!Ck}^
z6`G+E=|}DdJg7vz?4wsUs8f6<tZH1zu-(w}Ga`Ee(Cb^4Rf(`~&PNH(hw{3z{I-<g
zOaO`I%0?axR+J9V=rJSDr39}~f>o(_RU2*^jWk5NXhyk(U(K at wtWFE>7WFOgaC4vG
zM~0Gf0>ZBO&vVp062NTf(vz#T_?#{;Qr_2rf>lUb9En=YU01bXl(jcO*>H+?2JeNn
z$!qDi%jk9M2|#ab88$R64`~*Iz6cN#`EtHs+DJo8kl?x$4YZK!H22mf26SE`Gtn-s
zN~r>1K~-5U`$?&3tFQo=+O4wqpbi8uD{pQYesaJvat;ZUwm- at K_E&K-7qn$t>d8pi
zU0;gWpz?LjJ91FxXHsL37`=7ag#z9?ytk<Lcqie=lx21ss~VT}{Ct(30d&I%*Nrv!
z{CJ0x&X=idM at 339g{RFg9#lEEltH7Hf?lYEC0cbs012fRFFaNWcIjFbq*PL*OhIUc
zVrZps2ZbA(mj8RevgsU4LnpGGoN(Ju&yy>|l)B26se0vVwy!dLDd+exYW13H&93mu
zE`oYp|7#esOQWZ8&uj|2aYd7h25h-xdyQjrgC<PoL%`+~bv_I~_eu~*!_TXWe7XQv
zc=W2_$9(lM%##j3A{8AwdSheaAzd<Eev8G8NX2ud<k4?y8Gd at ma!KplPw%Wh%A6i4
zlBQKj&cy6#(fXDOfsQwDL9diTr0kaVHF9Q;s^YxjyvI3@%RHm at 0@k&z>B;R@&*q_1
z;3XfLv94wL-u3-F@#GY3N2zyJU1*M)Jl&nkba_I>mKTtPMPsrc`H~m>mJ2{hHMHWb
zqbg8(vr28SR`{}0BvZaGf%gnpHZD>XUE57ng1bsBR<3hv_bDpBmM&H#vLI^J@^osh
zYB-NNgLi^+ilN1Y1K+~3#x|CSr3r8t=!scfx2$aP_*6e1JuqJeS;g5m6>1TJxB}!p
zYSe1M_;S59)kn%8GcRnS!oz(`tVkhIbl(gj3uKH+0O*ufs{B+#c*i+%=B`*%l~m`u
zZ)hr?fvyOzoBm6MV&odTc845!_A^k8Fmu~E#W|06u&#AA7xcZpr>9;mu)_(kvsVB;
zm>7Qa!a>GU&+SLrC1`WN=0Ns2u%pMdQLi?+N|J-N;+1Vh1 at Q~KbWSUbKTQHfDq8M>
z_1cFU;bH^7Hek52X=p5Bt+hy)@a1C>qDF=lO21?BNKY;H)QT+c<H{l~-_=9c4VnL&
zIhefzpFzK@=8~aX7*5u+gluO5>;ifwLBFbL_|=Pt>9fMe56nlMS-`k(C4B{~IkEKl
za~Hj=R%)elYN3VfR}?QvC6F`=Ds at B_P>?DRv~Y1h-m<)Vq(K8cFB)yj3<oc2;#<%E
zv|pgaRD!_#{rWt`9Z#Y7?qF7nBnmhOnuSO4O)eR^g^jHnSYoy-0e1J=yBcd6{_ABU
zTsPL_f9;s&NE$t_ at fFV;y|q+mh#>&qm=ffs at _ng-Iae^KXxN-eEwq9XAA~MZ;q3#K
zpC3(FnVcrmvZ#O_#b^`tokEh2Wf?KyR3XGh3XE$J@|E8%K2D6ei=fz16d!43xS;<A
zE*ttDmZ0qxRedASvqLkcQqKo=&2Z<Dd5(3IcHvE{Td@|rmU~;XU?YH8KqD&2m##oc
zsz46UTLR0B at R|Y3dxjG(ev#TEjHf&K@`?Y(c=lvhNhlS?<8%_9RFWzMy@;H-0CI&t
z2S5v}8kh5?mG5OVxnL;*`c0y$n}NrH!Cro+2j?9hJ21!BPNeLbb4)l-rh+#WVCSi8
zQ_+uw?n2-qAe2*f>F3#pm_?>3u+j<_G!57GTfTiL;ezIit8{vG+;`&l*gpG-vhb){
ze3Z-Nrc^){a{W_)oO at +0U-u41>;=4W^-r><adjvkT|!-`fEnOQQPt7tp|4sB at A{-u
z?mf}r(aDq at vl+YQJSQ?w2gsrZd5X90s%)o=LmME8b@>S}YK3)8%f_Z*Ys+v|({N3{
zrTG$eVcIu$ANP#^cjk1wyC|vRsm*CTb(Jd at -njbQm0%ujY~=MTf0PZa>sg}qDDb9O
z6s8{r-nG;|!QqbQnYoMu^Pc_lj{P0a;f`lKQ|47k5i(Icp+-3|q4!-P&@wQR2+JCV
z)$v%_Fs!%2+C<pUG%qQL7kcThp7?#fIrH%{u~Mz+D0cQ#lA0CHT=mWcSFSuRZ*JrI
z75|>~t?O9A_7M^J!94Z-k);UeHBG~sW)nukzQoB)Iq8%cugrOvb;_()+EHd6v at l?W
zmI(bK^cxs3!jOUCq<0&!8nIk4{Jl(OdpOv6sLVN;lInMDcc|*lmDg3ffvpN_`(DX)
z%YTT~%_~{r_K~j8Tvd+%tEjDaSETtzxqtExIG%0qDjPMn<k3|2Ms%qfxkq;3JQ&|#
z%fMTB#mM)utg&UOpPHj0vKqQ;Iew;wOpmWfeOK|C(H~`P^V+V=VX<3HIaM>Sz8-(B
z-;QzZ*uUZ0(I0v_fVm61RSzw|Q^3|5I=yXEodY~M`)Rhf{~9&En at dL?-Q}TkS<b_n
z<ds}G at Ge$2uOKmfFNf2y6SzoXu}W9eqpCj!yq{j2HBeiZWqzLH>C<eV`2>6Q&Z3P8
zW&xn1n$gc%u4w&hHuhalpBY<flH9YI0zWPyA2`KBM?g1$?ZAaKWR}3yR7G*jWs~fl
ze1JWZ4>LZyo7rp<D-DKQt5`F53EP&xjx~c9V at TrM!IzEg0xlJi&S?Q1PtwJ}lQmpw
zTLN~8i0tT6gcklp{DJq@=c=|IxA!gtGtb7ARn-D_05{d=t+pPtyMUWT#GMhKE5P0b
zY_88=Z9QbWMdVpyyyuG$t_B{f&tYvnVvj{kKC3;icB85zz$3M%uI;7v%)r$mGWA?P
z^t>95h)hKne^-4 at YkR3Uvxr>yd|*B!Kv(Q$YW1VG7vJ6+v3Evx*6E_CQ{NFONS#rv
z?R=O<igEMlq`AfN&^ZO!0bC0FI3bT-TWyPJJ0rF(JzFrpAP>F3TMKY2 at H^C{r?s7%
z9VJxF{h5?qad=Syy#U;|5H<;1O{mx#tglgR&tWss8$UwWZF1XU{G*G`f#V*<F<?_9
z^P369PFsOB^g!FO+Fn#k3EjDN5{ij-#~5rcFd-t7i}}a?f6O{8Iq18)H2?qr07*qo
IM6N<$f at 3((RsaA1

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/browserconfig.xml b/ui/new-ui-samples/browserconfig.xml
new file mode 100644
index 0000000..f947e3b
--- /dev/null
+++ b/ui/new-ui-samples/browserconfig.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<browserconfig>
+  <msapplication>
+    <tile>
+      <square70x70logo src="/mstile-70x70.png"/>
+      <square150x150logo src="/mstile-150x150.png"/>
+      <square310x310logo src="/mstile-310x310.png"/>
+      <wide310x150logo src="/mstile-310x150.png"/>
+      <TileColor>#4d4d4d</TileColor>
+    </tile>
+  </msapplication>
+</browserconfig>
diff --git a/ui/new-ui-samples/css/button-flat.css b/ui/new-ui-samples/css/button-flat.css
new file mode 100755
index 0000000..9df6935
--- /dev/null
+++ b/ui/new-ui-samples/css/button-flat.css
@@ -0,0 +1,271 @@
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+.ui-button {
+    display: inline-block;
+    position: relative;
+    color:    #FFFFFF;
+    padding: 0;
+    line-height: normal;
+    margin-right: .1em;
+    cursor: pointer;
+    vertical-align: middle;
+    text-align: center;
+    border-radius: 3px;
+    border: 1px none;
+    background: #4e4d4f;
+    font-weight: normal;
+    overflow: visible; /* removes extra width in IE */
+}
+.ui-button:hover{
+    background: #000000;
+    font-weight: normal;
+}
+.ui-button:active {
+    background: #4e4d4f;
+}
+.ui-button,
+.ui-button:link,
+.ui-button:visited,
+.ui-button:hover,
+.ui-button:active {
+    text-decoration: none;
+}
+
+/* to make room for the icon, a width needs to be set here */
+.ui-button-icon-only {
+    width: 2.2em;
+}
+/* button elements seem to need a little more width */
+button.ui-button-icon-only {
+    width: 2.4em;
+}
+.ui-button-icons-only {
+    width: 3.4em;
+}
+button.ui-button-icons-only {
+    width: 3.7em;
+}
+
+/* button text element */
+.ui-button .ui-button-text {
+    display: block;
+    line-height: normal;
+}
+.ui-button-text-only .ui-button-text {
+    padding: .4em 1em;
+}
+.ui-button-icon-only .ui-button-text,
+.ui-button-icons-only .ui-button-text {
+    padding: .4em;
+    text-indent: -9999999px;
+}
+.ui-button-text-icon-primary .ui-button-text,
+.ui-button-text-icons .ui-button-text {
+    padding: .4em 1em .4em 2.1em;
+}
+.ui-button-text-icon-secondary .ui-button-text,
+.ui-button-text-icons .ui-button-text {
+    padding: .4em 2.1em .4em 1em;
+}
+.ui-button-text-icons .ui-button-text {
+    padding-left: 2.1em;
+    padding-right: 2.1em;
+}
+/* no icon support for input elements, provide padding by default */
+input.ui-button {
+    padding: .4em 1em;
+}
+
+/* button icon element(s) */
+.ui-button-icon-only .ui-icon,
+.ui-button-text-icon-primary .ui-icon,
+.ui-button-text-icon-secondary .ui-icon,
+.ui-button-text-icons .ui-icon,
+.ui-button-icons-only .ui-icon {
+    position: absolute;
+    top: 50%;
+    margin-top: -8px;
+}
+.ui-button-icon-only .ui-icon {
+    left: 50%;
+    margin-left: -8px;
+}
+.ui-button-text-icon-primary .ui-button-icon-primary,
+.ui-button-text-icons .ui-button-icon-primary,
+.ui-button-icons-only .ui-button-icon-primary {
+    left: .5em;
+}
+.ui-button-text-icon-secondary .ui-button-icon-secondary,
+.ui-button-text-icons .ui-button-icon-secondary,
+.ui-button-icons-only .ui-button-icon-secondary {
+    right: .5em;
+}
+
+/* button sets */
+.ui-buttonset {
+    margin-right: 7px;
+}
+.ui-buttonset .ui-button {
+    margin-left: 0;
+    margin-right: -.3em;
+}
+
+/* workarounds */
+/* reset extra padding in Firefox, see h5bp.com/l */
+input.ui-button::-moz-focus-inner,
+button.ui-button::-moz-focus-inner {
+    border: 0;
+    padding: 0;
+}
+
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+.ui-button {
+    display: inline-block;
+    position: relative;
+    color:    #FFFFFF;
+    padding: 0;
+    line-height: normal;
+    margin-right: .1em;
+    cursor: pointer;
+    vertical-align: middle;
+    text-align: center;
+    border-radius: 3px;
+    border: 1px none;
+    background: #4e4d4f;
+    font-weight: normal;
+    overflow: visible; /* removes extra width in IE */
+}
+.ui-button:hover{
+    background: #000000;
+    font-weight: normal;
+}
+.ui-button:active {
+    background: #4e4d4f;
+}
+.ui-button,
+.ui-button:link,
+.ui-button:visited,
+.ui-button:hover,
+.ui-button:active {
+    text-decoration: none;
+}
+
+/* to make room for the icon, a width needs to be set here */
+.ui-button-icon-only {
+    width: 2.2em;
+}
+/* button elements seem to need a little more width */
+button.ui-button-icon-only {
+    width: 2.4em;
+}
+.ui-button-icons-only {
+    width: 3.4em;
+}
+button.ui-button-icons-only {
+    width: 3.7em;
+}
+
+/* button text element */
+.ui-button .ui-button-text {
+    display: block;
+    line-height: normal;
+}
+.ui-button-text-only .ui-button-text {
+    padding: .4em 1em;
+}
+.ui-button-icon-only .ui-button-text,
+.ui-button-icons-only .ui-button-text {
+    padding: .4em;
+    text-indent: -9999999px;
+}
+.ui-button-text-icon-primary .ui-button-text,
+.ui-button-text-icons .ui-button-text {
+    padding: .4em 1em .4em 2.1em;
+}
+.ui-button-text-icon-secondary .ui-button-text,
+.ui-button-text-icons .ui-button-text {
+    padding: .4em 2.1em .4em 1em;
+}
+.ui-button-text-icons .ui-button-text {
+    padding-left: 2.1em;
+    padding-right: 2.1em;
+}
+/* no icon support for input elements, provide padding by default */
+input.ui-button {
+    padding: .4em 1em;
+}
+
+/* button icon element(s) */
+.ui-button-icon-only .ui-icon,
+.ui-button-text-icon-primary .ui-icon,
+.ui-button-text-icon-secondary .ui-icon,
+.ui-button-text-icons .ui-icon,
+.ui-button-icons-only .ui-icon {
+    position: absolute;
+    top: 50%;
+    margin-top: -8px;
+}
+.ui-button-icon-only .ui-icon {
+    left: 50%;
+    margin-left: -8px;
+}
+.ui-button-text-icon-primary .ui-button-icon-primary,
+.ui-button-text-icons .ui-button-icon-primary,
+.ui-button-icons-only .ui-button-icon-primary {
+    left: .5em;
+}
+.ui-button-text-icon-secondary .ui-button-icon-secondary,
+.ui-button-text-icons .ui-button-icon-secondary,
+.ui-button-icons-only .ui-button-icon-secondary {
+    right: .5em;
+}
+
+/* button sets */
+.ui-buttonset {
+    margin-right: 7px;
+}
+.ui-buttonset .ui-button {
+    margin-left: 0;
+    margin-right: -.3em;
+}
+
+/* workarounds */
+/* reset extra padding in Firefox, see h5bp.com/l */
+input.ui-button::-moz-focus-inner,
+button.ui-button::-moz-focus-inner {
+    border: 0;
+    padding: 0;
+}
diff --git a/ui/new-ui-samples/css/checkbox-flat.css b/ui/new-ui-samples/css/checkbox-flat.css
new file mode 100644
index 0000000..39c8d22
--- /dev/null
+++ b/ui/new-ui-samples/css/checkbox-flat.css
@@ -0,0 +1,50 @@
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+ .checkbox-item {
+    cursor: pointer;
+ }
+
+ .checkbox-inline {
+    display: inline-block;
+ }
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+ .checkbox-item {
+    cursor: pointer;
+ }
+
+ .checkbox-inline {
+    display: inline-block;
+ }
\ No newline at end of file
diff --git a/ui/new-ui-samples/css/fontello.css b/ui/new-ui-samples/css/fontello.css
new file mode 100644
index 0000000..3ba2c51
--- /dev/null
+++ b/ui/new-ui-samples/css/fontello.css
@@ -0,0 +1,1137 @@
+ at charset "UTF-8";
+/*
+ * A partial implementation of the Ruby list functions from Compass:
+ * https://github.com/Compass/compass/blob/stable/lib/compass/sass_extensions/functions/lists.rb
+ */
+/*
+ * A partial implementation of the Ruby constants functions from Compass:
+ * https://github.com/Compass/compass/blob/stable/lib/compass/sass_extensions/functions/constants.rb
+ */
+/*
+ * A partial implementation of the Ruby display functions from Compass:
+ * https://github.com/Compass/compass/blob/stable/core/lib/compass/core/sass_extensions/functions/display.rb
+ */
+ at font-face {
+  font-family: 'fontello';
+  src: url("../fonts/fontello.eot");
+  src: url("../fonts/fontello.eot#iefix") format("embedded-opentype"), url("../fonts/fontello.woff") format("woff"), url("../fonts/fontello.ttf") format("truetype"), url("../fonts/fontello.svg#fontello") format("svg");
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
+/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
+/*
+ at media screen and (-webkit-min-device-pixel-ratio:0) {
+  @font-face {
+    font-family: 'fontello';
+    src: url('../font/fontello.svg?99320945#fontello') format('svg');
+  }
+}
+*/
+[class^="icon-"]:before, [class*=" icon-"]:before {
+  font-family: "fontello";
+  font-style: normal;
+  font-weight: normal;
+  speak: none;
+  display: inline-block;
+  text-decoration: inherit;
+  width: 1em;
+  margin-right: .2em;
+  text-align: center;
+  /* opacity: .8; */
+  /* For safety - reset parent styles, that can break glyph codes*/
+  font-variant: normal;
+  text-transform: none;
+  /* fix buttons height, for twitter bootstrap */
+  line-height: 1em;
+  /* Animation center compensation - margins should be symmetric */
+  /* remove if not needed */
+  margin-left: .2em;
+  /* you can be more comfortable with increased icons size */
+  /* font-size: 120%; */
+  /* Uncomment for 3D effect */
+  /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
+}
+
+.icon-user:before {
+  content: '\e800';
+}
+
+/* '' */
+.icon-help-circled:before {
+  content: '\e801';
+}
+
+/* '' */
+.icon-search:before {
+  content: '\e802';
+}
+
+/* '' */
+.icon-tag:before {
+  content: '\e803';
+}
+
+/* '' */
+.icon-dot-2:before {
+  content: '\e804';
+}
+
+/* '' */
+.icon-arrows-cw:before {
+  content: '\e805';
+}
+
+/* '' */
+.icon-print:before {
+  content: '\e806';
+}
+
+/* '' */
+.icon-cancel-circled:before {
+  content: '\e807';
+}
+
+/* '' */
+.icon-edit-alt:before {
+  content: '\e808';
+}
+
+/* '' */
+.icon-login:before {
+  content: '\e809';
+}
+
+/* '' */
+.icon-logout:before {
+  content: '\e80a';
+}
+
+/* '' */
+.icon-download:before {
+  content: '\e80b';
+}
+
+/* '' */
+.icon-th-large:before {
+  content: '\e80c';
+}
+
+/* '' */
+.icon-th:before {
+  content: '\e80d';
+}
+
+/* '' */
+.icon-th-list:before {
+  content: '\e80e';
+}
+
+/* '' */
+.icon-star:before {
+  content: '\e80f';
+}
+
+/* '' */
+.icon-star-empty:before {
+  content: '\e810';
+}
+
+/* '' */
+.icon-users:before {
+  content: '\e811';
+}
+
+/* '' */
+.icon-upload:before {
+  content: '\e812';
+}
+
+/* '' */
+.icon-circle-thin:before {
+  content: '\e813';
+}
+
+/* '' */
+.icon-dot-circled:before {
+  content: '\e814';
+}
+
+/* '' */
+.icon-ok:before {
+  content: '\e815';
+}
+
+/* '' */
+.icon-check-empty-1:before {
+  content: '\e816';
+}
+
+/* '' */
+.icon-clock-2:before {
+  content: '\e817';
+}
+
+/* '' */
+.icon-ok-squared:before {
+  content: '\e818';
+}
+
+/* '' */
+.icon-pin:before {
+  content: '\e820';
+}
+
+/* '' */
+.icon-eye:before {
+  content: '\e821';
+}
+
+/* '' */
+.icon-attach:before {
+  content: '\e824';
+}
+
+/* '' */
+.icon-unlink:before {
+  content: '\e825';
+}
+
+/* '' */
+.icon-link:before {
+  content: '\e826';
+}
+
+/* '' */
+.icon-home:before {
+  content: '\e827';
+}
+
+/* '' */
+.icon-info:before {
+  content: '\e828';
+}
+
+/* '' */
+.icon-info-circled:before {
+  content: '\e829';
+}
+
+/* '' */
+.icon-export:before {
+  content: '\e82f';
+}
+
+/* '' */
+.icon-export-alt:before {
+  content: '\e830';
+}
+
+/* '' */
+.icon-share:before {
+  content: '\e831';
+}
+
+/* '' */
+.icon-share-squared:before {
+  content: '\e832';
+}
+
+/* '' */
+.icon-retweet:before {
+  content: '\e836';
+}
+
+/* '' */
+.icon-attention-alt:before {
+  content: '\e837';
+}
+
+/* '' */
+.icon-attention:before {
+  content: '\e838';
+}
+
+/* '' */
+.icon-attention-circled:before {
+  content: '\e839';
+}
+
+/* '' */
+.icon-location:before {
+  content: '\e83a';
+}
+
+/* '' */
+.icon-trash:before {
+  content: '\e83b';
+}
+
+/* '' */
+.icon-doc:before {
+  content: '\e83c';
+}
+
+/* '' */
+.icon-docs:before {
+  content: '\e83d';
+}
+
+/* '' */
+.icon-doc-text:before {
+  content: '\e83e';
+}
+
+/* '' */
+.icon-doc-inv:before {
+  content: '\e83f';
+}
+
+/* '' */
+.icon-doc-text-inv:before {
+  content: '\e840';
+}
+
+/* '' */
+.icon-file-pdf:before {
+  content: '\e841';
+}
+
+/* '' */
+.icon-file-word:before {
+  content: '\e842';
+}
+
+/* '' */
+.icon-file-excel:before {
+  content: '\e843';
+}
+
+/* '' */
+.icon-file-powerpoint:before {
+  content: '\e844';
+}
+
+/* '' */
+.icon-file-image:before {
+  content: '\e845';
+}
+
+/* '' */
+.icon-cog:before {
+  content: '\e84b';
+}
+
+/* '' */
+.icon-cog-alt:before {
+  content: '\e84c';
+}
+
+/* '' */
+.icon-wrench:before {
+  content: '\e84d';
+}
+
+/* '' */
+.icon-calendar:before {
+  content: '\e84e';
+}
+
+/* '' */
+.icon-calendar-empty:before {
+  content: '\e84f';
+}
+
+/* '' */
+.icon-clock:before {
+  content: '\e852';
+}
+
+/* '' */
+.icon-block:before {
+  content: '\e853';
+}
+
+/* '' */
+.icon-zoom-in:before {
+  content: '\e857';
+}
+
+/* '' */
+.icon-zoom-out:before {
+  content: '\e858';
+}
+
+/* '' */
+.icon-down-circled2:before {
+  content: '\e859';
+}
+
+/* '' */
+.icon-up-circled2:before {
+  content: '\e85a';
+}
+
+/* '' */
+.icon-left-circled2:before {
+  content: '\e85b';
+}
+
+/* '' */
+.icon-right-circled2:before {
+  content: '\e85c';
+}
+
+/* '' */
+.icon-down-dir:before {
+  content: '\e85d';
+}
+
+/* '' */
+.icon-up-dir:before {
+  content: '\e85e';
+}
+
+/* '' */
+.icon-left-dir:before {
+  content: '\e85f';
+}
+
+/* '' */
+.icon-right-dir:before {
+  content: '\e860';
+}
+
+/* '' */
+.icon-down-open:before {
+  content: '\e861';
+}
+
+/* '' */
+.icon-left-open:before {
+  content: '\e862';
+}
+
+/* '' */
+.icon-right-open:before {
+  content: '\e863';
+}
+
+/* '' */
+.icon-up-open:before {
+  content: '\e864';
+}
+
+/* '' */
+.icon-angle-left:before {
+  content: '\e865';
+}
+
+/* '' */
+.icon-angle-right:before {
+  content: '\e866';
+}
+
+/* '' */
+.icon-angle-up:before {
+  content: '\e867';
+}
+
+/* '' */
+.icon-angle-down:before {
+  content: '\e868';
+}
+
+/* '' */
+.icon-angle-circled-left:before {
+  content: '\e869';
+}
+
+/* '' */
+.icon-angle-circled-right:before {
+  content: '\e86a';
+}
+
+/* '' */
+.icon-angle-circled-up:before {
+  content: '\e86b';
+}
+
+/* '' */
+.icon-angle-circled-down:before {
+  content: '\e86c';
+}
+
+/* '' */
+.icon-angle-double-left:before {
+  content: '\e86d';
+}
+
+/* '' */
+.icon-angle-double-right:before {
+  content: '\e86e';
+}
+
+/* '' */
+.icon-angle-double-up:before {
+  content: '\e86f';
+}
+
+/* '' */
+.icon-angle-double-down:before {
+  content: '\e870';
+}
+
+/* '' */
+.icon-down-big:before {
+  content: '\e871';
+}
+
+/* '' */
+.icon-left-big:before {
+  content: '\e872';
+}
+
+/* '' */
+.icon-right-big:before {
+  content: '\e873';
+}
+
+/* '' */
+.icon-up-big:before {
+  content: '\e874';
+}
+
+/* '' */
+.icon-left-circled:before {
+  content: '\e875';
+}
+
+/* '' */
+.icon-right-circled:before {
+  content: '\e876';
+}
+
+/* '' */
+.icon-up-circled:before {
+  content: '\e877';
+}
+
+/* '' */
+.icon-down-circled:before {
+  content: '\e878';
+}
+
+/* '' */
+.icon-cw:before {
+  content: '\e879';
+}
+
+/* '' */
+.icon-ccw:before {
+  content: '\e87a';
+}
+
+/* '' */
+.icon-level-up:before {
+  content: '\e87c';
+}
+
+/* '' */
+.icon-level-down:before {
+  content: '\e87d';
+}
+
+/* '' */
+.icon-shuffle:before {
+  content: '\e87e';
+}
+
+/* '' */
+.icon-exchange:before {
+  content: '\e87f';
+}
+
+/* '' */
+.icon-history:before {
+  content: '\e880';
+}
+
+/* '' */
+.icon-expand:before {
+  content: '\e881';
+}
+
+/* '' */
+.icon-collapse:before {
+  content: '\e882';
+}
+
+/* '' */
+.icon-expand-right:before {
+  content: '\e883';
+}
+
+/* '' */
+.icon-collapse-left:before {
+  content: '\e884';
+}
+
+/* '' */
+.icon-play:before {
+  content: '\e885';
+}
+
+/* '' */
+.icon-play-circled2:before {
+  content: '\e886';
+}
+
+/* '' */
+.icon-play-circled:before {
+  content: '\e887';
+}
+
+/* '' */
+.icon-stop:before {
+  content: '\e888';
+}
+
+/* '' */
+.icon-cloud:before {
+  content: '\e889';
+}
+
+/* '' */
+.icon-table:before {
+  content: '\e88a';
+}
+
+/* '' */
+.icon-off:before {
+  content: '\e88b';
+}
+
+/* '' */
+.icon-check:before {
+  content: '\e88c';
+}
+
+/* '' */
+.icon-asterisk:before {
+  content: '\e88e';
+}
+
+/* '' */
+.icon-chart-bar:before {
+  content: '\e88f';
+}
+
+/* '' */
+.icon-bug:before {
+  content: '\e890';
+}
+
+/* '' */
+.icon-certificate:before {
+  content: '\e891';
+}
+
+/* '' */
+.icon-tasks:before {
+  content: '\e892';
+}
+
+/* '' */
+.icon-sort-up:before {
+  content: '\e893';
+}
+
+/* '' */
+.icon-sort-down:before {
+  content: '\e894';
+}
+
+/* '' */
+.icon-sort:before {
+  content: '\e895';
+}
+
+/* '' */
+.icon-gauge:before {
+  content: '\e896';
+}
+
+/* '' */
+.icon-spinner:before {
+  content: '\e897';
+}
+
+/* '' */
+.icon-database:before {
+  content: '\e898';
+}
+
+/* '' */
+.icon-lifebuoy:before {
+  content: '\e899';
+}
+
+/* '' */
+.icon-cubes:before {
+  content: '\e89a';
+}
+
+/* '' */
+.icon-cube:before {
+  content: '\e89b';
+}
+
+/* '' */
+.icon-bullseye:before {
+  content: '\e89c';
+}
+
+/* '' */
+.icon-windows:before {
+  content: '\e89d';
+}
+
+/* '' */
+.icon-cancel-circled-1:before {
+  content: '\e89e';
+}
+
+/* '' */
+.icon-plus-1:before {
+  content: '\e8a0';
+}
+
+/* '' */
+.icon-plus-circled-1:before {
+  content: '\e8a1';
+}
+
+/* '' */
+.icon-minus-1:before {
+  content: '\e8a3';
+}
+
+/* '' */
+.icon-minus-circled-1:before {
+  content: '\e8a4';
+}
+
+/* '' */
+.icon-help-circled-1:before {
+  content: '\e8a7';
+}
+
+/* '' */
+.icon-heart-empty-1:before {
+  content: '\e8aa';
+}
+
+/* '' */
+.icon-mail-1:before {
+  content: '\e8ab';
+}
+
+/* '' */
+.icon-star-1:before {
+  content: '\e8ac';
+}
+
+/* '' */
+.icon-star-empty-1:before {
+  content: '\e8ad';
+}
+
+/* '' */
+.icon-link-1:before {
+  content: '\e8ae';
+}
+
+/* '' */
+.icon-attach-1:before {
+  content: '\e8af';
+}
+
+/* '' */
+.icon-eye-1:before {
+  content: '\e8b2';
+}
+
+/* '' */
+.icon-attention-1:before {
+  content: '\e8b3';
+}
+
+/* '' */
+.icon-doc-text-1:before {
+  content: '\e8b4';
+}
+
+/* '' */
+.icon-doc-text-inv-1:before {
+  content: '\e8b5';
+}
+
+/* '' */
+.icon-share-1:before {
+  content: '\e8b7';
+}
+
+/* '' */
+.icon-shareable:before {
+  content: '\e8b8';
+}
+
+/* '' */
+.icon-ccw-1:before {
+  content: '\e8cc';
+}
+
+/* '' */
+.icon-cw-1:before {
+  content: '\e8cd';
+}
+
+/* '' */
+.icon-arrows-ccw:before {
+  content: '\e8ce';
+}
+
+/* '' */
+.icon-play-1:before {
+  content: '\e8cf';
+}
+
+/* '' */
+.icon-pause:before {
+  content: '\e8d0';
+}
+
+/* '' */
+.icon-record:before {
+  content: '\e8d1';
+}
+
+/* '' */
+.icon-stop-1:before {
+  content: '\e8d2';
+}
+
+/* '' */
+.icon-switch:before {
+  content: '\e8d3';
+}
+
+/* '' */
+.icon-loop:before {
+  content: '\e8d4';
+}
+
+/* '' */
+.icon-cloud-1:before {
+  content: '\e8d5';
+}
+
+/* '' */
+.icon-certificate-outline:before {
+  content: '\e8db';
+}
+
+/* '' */
+.icon-certificate-1:before {
+  content: '\e8dc';
+}
+
+/* '' */
+.icon-windows-1:before {
+  content: '\e8dd';
+}
+
+/* '' */
+.icon-spin5:before {
+  content: '\e8df';
+}
+
+/* '' */
+.icon-spin2:before {
+  content: '\e8e0';
+}
+
+/* '' */
+.icon-picture:before {
+  content: '\e8e4';
+}
+
+/* '' */
+.icon-menu:before {
+  content: '\e8e5';
+}
+
+/* '' */
+.icon-sliders:before {
+  content: '\e8e6';
+}
+
+/* '' */
+.icon-list-alt:before {
+  content: '\e8e7';
+}
+
+/* '' */
+.icon-ajust:before {
+  content: '\e8e8';
+}
+
+/* '' */
+.icon-circle:before {
+  content: '\e8e9';
+}
+
+/* '' */
+.icon-circle-empty:before {
+  content: '\e8ea';
+}
+
+/* '' */
+.icon-circle-notch:before {
+  content: '\e8ec';
+}
+
+/* '' */
+.icon-fork:before {
+  content: '\e8ed';
+}
+
+/* '' */
+.icon-sitemap:before {
+  content: '\e8ee';
+}
+
+/* '' */
+.icon-stethoscope:before {
+  content: '\e8ef';
+}
+
+/* '' */
+.icon-shield:before {
+  content: '\e8f0';
+}
+
+/* '' */
+.icon-heart-1:before {
+  content: '\e8f1';
+}
+
+/* '' */
+.icon-search-1:before {
+  content: '\e8f2';
+}
+
+/* '' */
+.icon-menu-1:before {
+  content: '\e8f3';
+}
+
+/* '' */
+.icon-back:before {
+  content: '\e8f6';
+}
+
+/* '' */
+.icon-home-1:before {
+  content: '\e8f7';
+}
+
+/* '' */
+.icon-pencil-1:before {
+  content: '\e8f8';
+}
+
+/* '' */
+.icon-location-1:before {
+  content: '\e8f9';
+}
+
+/* '' */
+.icon-logout-1:before {
+  content: '\e8fb';
+}
+
+/* '' */
+.icon-login-1:before {
+  content: '\e8fc';
+}
+
+/* '' */
+.icon-publish:before {
+  content: '\e8fd';
+}
+
+/* '' */
+.icon-window:before {
+  content: '\e8fe';
+}
+
+/* '' */
+.icon-chart-pie:before {
+  content: '\e8ff';
+}
+
+/* '' */
+.icon-chart-line:before {
+  content: '\e900';
+}
+
+/* '' */
+.icon-chart-area:before {
+  content: '\e901';
+}
+
+/* '' */
+.icon-chart-bar-1:before {
+  content: '\e902';
+}
+
+/* '' */
+.icon-air:before {
+  content: '\e905';
+}
+
+/* '' */
+.icon-database-1:before {
+  content: '\e906';
+}
+
+/* '' */
+.icon-flow-cascade:before {
+  content: '\e907';
+}
+
+/* '' */
+.icon-flow-tree:before {
+  content: '\e908';
+}
+
+/* '' */
+.icon-flow-line:before {
+  content: '\e909';
+}
+
+/* '' */
+.icon-flow-branch:before {
+  content: '\e90a';
+}
+
+/* '' */
+.icon-flow-parallel-1:before {
+  content: '\e90f';
+}
+
+/* '' */
+.icon-dot:before {
+  content: '\e910';
+}
+
+/* '' */
+.icon-dot-3:before {
+  content: '\e911';
+}
+
+/* '' */
+.icon-cd:before {
+  content: '\e912';
+}
+
+/* '' */
+.icon-back-in-time:before {
+  content: '\e913';
+}
+
+/* '' */
+.icon-list:before {
+  content: '\e914';
+}
+
+/* '' */
+.icon-list-add:before {
+  content: '\e915';
+}
+
+/* '' */
+.icon-progress-0:before {
+  content: '\e919';
+}
+
+/* '' */
+.icon-pencil-2:before {
+  content: '\e91d';
+}
+
+/* '' */
+.icon-cog-2:before {
+  content: '\e91f';
+}
+
+/* '' */
+.icon-cog-circled:before {
+  content: '\e920';
+}
+
+/* '' */
+.icon-cogs:before {
+  content: '\e921';
+}
+
+/* '' */
+.icon-calendar-1:before {
+  content: '\e924';
+}
+
+/* '' */
+.icon-doc-new:before {
+  content: '\e925';
+}
+
+/* '' */
+/*
+   Animation example, for spinners
+*/
+.animate-spin {
+  -webkit-animation: spin 2s infinite linear;
+  animation: spin 2s infinite linear;
+  display: inline-block;
+}
+
+ at -webkit-keyframes spin {
+  0% {
+    -webkit-transform: rotate(0deg);
+    -ms-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+  100% {
+    -webkit-transform: rotate(359deg);
+    -ms-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+
+ at keyframes spin {
+  0% {
+    -webkit-transform: rotate(0deg);
+    -ms-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+  100% {
+    -webkit-transform: rotate(359deg);
+    -ms-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+
+/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZvbnRlbGxvLmNzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvY29tcGFzcy1taXhpbnMvbGliL2NvbXBhc3MvZnVuY3Rpb25zL19saXN0cy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9jb21wYXNzLW1peGlucy9saWIvY29tcGFzcy9mdW5jdGlvbnMvX2NvbnN0YW50cy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9jb21wYXNzLW1peGlucy9saWIvY29tcGFzcy9mdW5jdGlvbnMvX2Rpc3BsYXkuc2NzcyIsIm1vZHVsZXMvX2ZvbnRlbGxvLnNjc3MiLCJtb2R1bGVzL19hbmltYXRpb24uc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX3ZlbmRvci1wcmVmaXhlcy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9jb21wYXNzLW1peGlucy9saWIvY29tcGFzcy9jc3MzL19zaGFyZWQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUNBakI7OztHQUdHO0FDSEg7OztHQUdHO0FDSEg7OztHQUdHO0FDSEg7RUFDRSx3QkFBd0I7RUFDeEIsa0NBQVE7RUFDUix3TkFHMEQ7RUFDMUQsb0JBQW9CO0VBQ3BCLG1CQUFtQjtDSldwQjs7QUlQRCxpR0FBaUc7QUFDakcsNEZBQTRGO0FBQzVGOzs7Ozs7O0VBT0U7QUpVRjtFSVBFLHdCQUF3QjtFQUN4QixtQkFBbUI7RUFDbkIsb0JBQW9CO0VBQ3BCLFlBQVk7RUFFWixzQkFBc0I7RUFDdEIseUJBQXlCO0VBQ3pCLFdBQVc7RUFDWCxtQkFBbUI7RUFDbkIsbUJBQW1CO0VBQ25CLGtCQUFrQjtFQUVsQixpRUFBaUU7RUFDakUscUJBQXFCO0VBQ3JCLHFCQUFxQjtFQUVyQiwrQ0FBK0M7RUFDL0MsaUJBQWlCO0VBRWpCLGlFQUFpRTtFQUNqRSwwQkFBMEI7RUFDMUIsa0JBQWtCO0VBRWxCLDJEQUEyRDtFQUMzRCxzQkFBc0I7RUFFdEIsNkJBQTZCO0VBQzdCLHdEQUF3RDtDQTVCTjs7QUErQjFDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3ZCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3JDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2xDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzdCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzNCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ25DO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3RCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3JDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2xDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzdCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQy9CO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3JDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzFCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2xDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3pCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3BDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzFCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQy9CO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3hDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3BCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3JDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzVCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3RDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQy9CO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzVCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQy9CO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2pDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQy9CO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQy9CO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3ZCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3JDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzNCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3BDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3ZCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3JDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3pCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ25DO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3ZCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3hDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2xDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2pDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzNCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2hDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzFCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ25DO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzFCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3BDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3RDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzNCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2hDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzdCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3pCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3hDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQy9CO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzdCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzFCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2pDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzdCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3JDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2pDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzdCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQy9CO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQy9CO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2xDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzVCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2xDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzdCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3ZCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2xDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzdCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2hDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2xDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzdCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3hDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQy9CO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2xDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3pCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2xDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzdCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3pDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzFCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzdCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2xDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2hDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2hDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzdCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzNCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3hDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3RCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2hDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3ZDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQy9CO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2pDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzdCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzVCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3JDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3ZCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3JDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzdCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzdCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3BDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzdCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQy9CO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2xDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2hDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzNCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2hDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3RCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3pDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3ZCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3RDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3ZCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2hDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2hDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3RDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQy9CO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3pCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3JDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzdCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2xDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3pCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2hDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzNCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3RDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzdCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ25DO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2hDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3pCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ25DO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2hDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQy9CO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQy9CO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2pDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzVCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ25CO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3JDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ25DO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ25DO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQy9CO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzdCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2xDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzVCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2xDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3pCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQy9CO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3ZDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzVCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzNCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3BDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2pDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2pDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzdCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzdCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzdCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2pDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2hDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQy9CO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2hDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzVCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQy9CO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzlCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3ZDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3hCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzdCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2xDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQy9CO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzdCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzNCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzNDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzdCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2xDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3JCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3ZDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzNCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQzdCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2pDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2xDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3pCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3RDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ3pCO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FBQ2xDO0VBQVUsaUJBQWlCO0NBQWxCOztBQUFzQixTQUFBO0FDdFE1Qzs7RUFFRTtBQUNGO0VDZ0JFLDJDRGYwQztFQ2lCbEMsbUNEakJrQztFQUMxQyxzQkFBc0I7Q0FGVDs7QUFJZjtFQUNFO0lFTXVELGdDRkw1QjtJRVFnQyw0QkZSaEM7SUVVb0Msd0JGVnBDO0dMcWxDMUI7RUtubENEO0lFR3VELGtDRkY1QjtJRUtnQyw4QkZMaEM7SUVPb0MsMEJGUHBDO0dMeWxDMUI7Q0FDRjs7QUsvbENEO0VBQ0U7SUVNdUQsZ0NGTDVCO0lFUWdDLDRCRlJoQztJRVVvQyx3QkZWcEM7R0xxbEMxQjtFS25sQ0Q7SUVHdUQsa0NGRjVCO0lFS2dDLDhCRkxoQztJRU9vQywwQkZQcEM7R0x5bEMxQjtDQUNGIiwiZmlsZSI6ImZvbnRlbGxvLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qXG4gKiBBIHBhcnRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIFJ1YnkgbGlzdCBmdW5jdGlvbnMgZnJvbSBDb21wYXNzOlxuICogaHR0cHM6Ly9naXRodWIuY29tL0NvbXBhc3MvY29tcGFzcy9ibG9iL3N0YWJsZS9saWIvY29tcGFzcy9zYXNzX2V4dGVuc2lvbnMvZnVuY3Rpb25zL2xpc3RzLnJiXG4gKi9cbi8qXG4gKiBBIHBhcnRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIFJ1YnkgY29uc3RhbnRzIGZ1bmN0aW9ucyBmcm9tIENvbXBhc3M6XG4gKiBodHRwczovL2dpdGh1Yi5jb20vQ29tcGFzcy9jb21wYXNzL2Jsb2Ivc3RhYmxlL2xpYi9jb21wYXNzL3Nhc3NfZXh0ZW5zaW9ucy9mdW5jdGlvbnMvY29uc3RhbnRzLnJiXG4gKi9cbi8qXG4gKiBBIHBhcnRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIFJ1YnkgZGlzcGxheSBmdW5jdGlvbnMgZnJvbSBDb21wYXNzOlxuICogaHR0cHM6Ly9naXRodWIuY29tL0NvbXBhc3MvY29tcGFzcy9ibG9iL3N0YWJsZS9jb3JlL2xpYi9jb21wYXNzL2NvcmUvc2Fzc19leHRlbnNpb25zL2Z1bmN0aW9ucy9kaXNwbGF5LnJiXG4gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ2ZvbnRlbGxvJztcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9mb250ZWxsby5lb3RcIik7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvZm9udGVsbG8uZW90I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIuLi9mb250cy9mb250ZWxsby53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnRzL2ZvbnRlbGxvLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvZm9udGVsbG8uc3ZnI2ZvbnRlbGxvXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4vKiBDaHJvbWUgaGFjazogU1ZHIGlzIHJlbmRlcmVkIG1vcmUgc21vb3RoIGluIFdpbmRvenplLiAxMDAlIG1hZ2ljLCB1bmNvbW1lbnQgaWYgeW91IG5lZWQgaXQuICovXG4vKiBOb3RlLCB0aGF0IHdpbGwgYnJlYWsgaGludGluZyEgSW4gb3RoZXIgT1MtZXMgZm9udCB3aWxsIGJlIG5vdCBhcyBzaGFycCBhcyBpdCBjb3VsZCBiZSAqL1xuLypcbkBtZWRpYSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MCkge1xuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ2ZvbnRlbGxvJztcbiAgICBzcmM6IHVybCgnLi4vZm9udC9mb250ZWxsby5zdmc/OTkzMjA5NDUjZm9udGVsbG8nKSBmb3JtYXQoJ3N2ZycpO1xuICB9XG59XG4qL1xuW2NsYXNzXj1cImljb24tXCJdOmJlZm9yZSwgW2NsYXNzKj1cIiBpY29uLVwiXTpiZWZvcmUge1xuICBmb250LWZhbWlseTogXCJmb250ZWxsb1wiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHNwZWFrOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgd2lkdGg6IDFlbTtcbiAgbWFyZ2luLXJpZ2h0OiAuMmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC8qIG9wYWNpdHk6IC44OyAqL1xuICAvKiBGb3Igc2FmZXR5IC0gcmVzZXQgcGFyZW50IHN0eWxlcywgdGhhdCBjYW4gYnJlYWsgZ2x5cGggY29kZXMqL1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIC8qIGZpeCBidXR0b25zIGhlaWdodCwgZm9yIHR3aXR0ZXIgYm9vdHN0cmFwICovXG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIC8qIEFuaW1hdGlvbiBjZW50ZXIgY29tcGVuc2F0aW9uIC0gbWFyZ2lucyBzaG91bGQgYmUgc3ltbWV0cmljICovXG4gIC8qIHJlbW92ZSBpZiBub3QgbmVlZGVkICovXG4gIG1hcmdpbi1sZWZ0OiAuMmVtO1xuICAvKiB5b3UgY2FuIGJlIG1vcmUgY29tZm9ydGFibGUgd2l0aCBpbmNyZWFzZWQgaWNvbnMgc2l6ZSAqL1xuICAvKiBmb250LXNpemU6IDEyMCU7ICovXG4gIC8qIFVuY29tbWVudCBmb3IgM0QgZWZmZWN0ICovXG4gIC8qIHRleHQtc2hhZG93OiAxcHggMXB4IDFweCByZ2JhKDEyNywgMTI3LCAxMjcsIDAuMyk7ICovXG59XG5cbi5pY29uLXVzZXI6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgwMCc7XG59XG5cbi8qICfuoIAnICovXG4uaWNvbi1oZWxwLWNpcmNsZWQ6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgwMSc7XG59XG5cbi8qICfuoIEnICovXG4uaWNvbi1zZWFyY2g6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgwMic7XG59XG5cbi8qICfuoIInICovXG4uaWNvbi10YWc6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgwMyc7XG59XG5cbi8qICfuoIMnICovXG4uaWNvbi1kb3QtMjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODA0Jztcbn1cblxuLyogJ+6ghCcgKi9cbi5pY29uLWFycm93cy1jdzpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODA1Jztcbn1cblxuLyogJ+6ghScgKi9cbi5pY29uLXByaW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MDYnO1xufVxuXG4vKiAn7qCGJyAqL1xuLmljb24tY2FuY2VsLWNpcmNsZWQ6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgwNyc7XG59XG5cbi8qICfuoIcnICovXG4uaWNvbi1lZGl0LWFsdDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODA4Jztcbn1cblxuLyogJ+6giCcgKi9cbi5pY29uLWxvZ2luOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MDknO1xufVxuXG4vKiAn7qCJJyAqL1xuLmljb24tbG9nb3V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MGEnO1xufVxuXG4vKiAn7qCKJyAqL1xuLmljb24tZG93bmxvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgwYic7XG59XG5cbi8qICfuoIsnICovXG4uaWNvbi10aC1sYXJnZTpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODBjJztcbn1cblxuLyogJ+6gjCcgKi9cbi5pY29uLXRoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MGQnO1xufVxuXG4vKiAn7qCNJyAqL1xuLmljb24tdGgtbGlzdDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODBlJztcbn1cblxuLyogJ+6gjicgKi9cbi5pY29uLXN0YXI6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgwZic7XG59XG5cbi8qICfuoI8nICovXG4uaWNvbi1zdGFyLWVtcHR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MTAnO1xufVxuXG4vKiAn7qCQJyAqL1xuLmljb24tdXNlcnM6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgxMSc7XG59XG5cbi8qICfuoJEnICovXG4uaWNvbi11cGxvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgxMic7XG59XG5cbi8qICfuoJInICovXG4uaWNvbi1jaXJjbGUtdGhpbjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODEzJztcbn1cblxuLyogJ+6gkycgKi9cbi5pY29uLWRvdC1jaXJjbGVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MTQnO1xufVxuXG4vKiAn7qCUJyAqL1xuLmljb24tb2s6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgxNSc7XG59XG5cbi8qICfuoJUnICovXG4uaWNvbi1jaGVjay1lbXB0eS0xOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MTYnO1xufVxuXG4vKiAn7qCWJyAqL1xuLmljb24tY2xvY2stMjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODE3Jztcbn1cblxuLyogJ+6glycgKi9cbi5pY29uLW9rLXNxdWFyZWQ6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgxOCc7XG59XG5cbi8qICfuoJgnICovXG4uaWNvbi1waW46YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgyMCc7XG59XG5cbi8qICfuoKAnICovXG4uaWNvbi1leWU6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgyMSc7XG59XG5cbi8qICfuoKEnICovXG4uaWNvbi1hdHRhY2g6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgyNCc7XG59XG5cbi8qICfuoKQnICovXG4uaWNvbi11bmxpbms6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgyNSc7XG59XG5cbi8qICfuoKUnICovXG4uaWNvbi1saW5rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MjYnO1xufVxuXG4vKiAn7qCmJyAqL1xuLmljb24taG9tZTpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODI3Jztcbn1cblxuLyogJ+6gpycgKi9cbi5pY29uLWluZm86YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgyOCc7XG59XG5cbi8qICfuoKgnICovXG4uaWNvbi1pbmZvLWNpcmNsZWQ6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgyOSc7XG59XG5cbi8qICfuoKknICovXG4uaWNvbi1leHBvcnQ6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgyZic7XG59XG5cbi8qICfuoK8nICovXG4uaWNvbi1leHBvcnQtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MzAnO1xufVxuXG4vKiAn7qCwJyAqL1xuLmljb24tc2hhcmU6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgzMSc7XG59XG5cbi8qICfuoLEnICovXG4uaWNvbi1zaGFyZS1zcXVhcmVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MzInO1xufVxuXG4vKiAn7qCyJyAqL1xuLmljb24tcmV0d2VldDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODM2Jztcbn1cblxuLyogJ+6gticgKi9cbi5pY29uLWF0dGVudGlvbi1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgzNyc7XG59XG5cbi8qICfuoLcnICovXG4uaWNvbi1hdHRlbnRpb246YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgzOCc7XG59XG5cbi8qICfuoLgnICovXG4uaWNvbi1hdHRlbnRpb24tY2lyY2xlZDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODM5Jztcbn1cblxuLyogJ+6guScgKi9cbi5pY29uLWxvY2F0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4M2EnO1xufVxuXG4vKiAn7qC6JyAqL1xuLmljb24tdHJhc2g6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgzYic7XG59XG5cbi8qICfuoLsnICovXG4uaWNvbi1kb2M6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgzYyc7XG59XG5cbi8qICfuoLwnICovXG4uaWNvbi1kb2NzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4M2QnO1xufVxuXG4vKiAn7qC9JyAqL1xuLmljb24tZG9jLXRleHQ6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgzZSc7XG59XG5cbi8qICfuoL4nICovXG4uaWNvbi1kb2MtaW52OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4M2YnO1xufVxuXG4vKiAn7qC/JyAqL1xuLmljb24tZG9jLXRleHQtaW52OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4NDAnO1xufVxuXG4vKiAn7qGAJyAqL1xuLmljb24tZmlsZS1wZGY6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg0MSc7XG59XG5cbi8qICfuoYEnICovXG4uaWNvbi1maWxlLXdvcmQ6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg0Mic7XG59XG5cbi8qICfuoYInICovXG4uaWNvbi1maWxlLWV4Y2VsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4NDMnO1xufVxuXG4vKiAn7qGDJyAqL1xuLmljb24tZmlsZS1wb3dlcnBvaW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4NDQnO1xufVxuXG4vKiAn7qGEJyAqL1xuLmljb24tZmlsZS1pbWFnZTpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODQ1Jztcbn1cblxuLyogJ+6hhScgKi9cbi5pY29uLWNvZzpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODRiJztcbn1cblxuLyogJ+6hiycgKi9cbi5pY29uLWNvZy1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg0Yyc7XG59XG5cbi8qICfuoYwnICovXG4uaWNvbi13cmVuY2g6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg0ZCc7XG59XG5cbi8qICfuoY0nICovXG4uaWNvbi1jYWxlbmRhcjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODRlJztcbn1cblxuLyogJ+6hjicgKi9cbi5pY29uLWNhbGVuZGFyLWVtcHR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4NGYnO1xufVxuXG4vKiAn7qGPJyAqL1xuLmljb24tY2xvY2s6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg1Mic7XG59XG5cbi8qICfuoZInICovXG4uaWNvbi1ibG9jazpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODUzJztcbn1cblxuLyogJ+6hkycgKi9cbi5pY29uLXpvb20taW46YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg1Nyc7XG59XG5cbi8qICfuoZcnICovXG4uaWNvbi16b29tLW91dDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODU4Jztcbn1cblxuLyogJ+6hmCcgKi9cbi5pY29uLWRvd24tY2lyY2xlZDI6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg1OSc7XG59XG5cbi8qICfuoZknICovXG4uaWNvbi11cC1jaXJjbGVkMjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODVhJztcbn1cblxuLyogJ+6hmicgKi9cbi5pY29uLWxlZnQtY2lyY2xlZDI6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg1Yic7XG59XG5cbi8qICfuoZsnICovXG4uaWNvbi1yaWdodC1jaXJjbGVkMjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODVjJztcbn1cblxuLyogJ+6hnCcgKi9cbi5pY29uLWRvd24tZGlyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4NWQnO1xufVxuXG4vKiAn7qGdJyAqL1xuLmljb24tdXAtZGlyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4NWUnO1xufVxuXG4vKiAn7qGeJyAqL1xuLmljb24tbGVmdC1kaXI6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg1Zic7XG59XG5cbi8qICfuoZ8nICovXG4uaWNvbi1yaWdodC1kaXI6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg2MCc7XG59XG5cbi8qICfuoaAnICovXG4uaWNvbi1kb3duLW9wZW46YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg2MSc7XG59XG5cbi8qICfuoaEnICovXG4uaWNvbi1sZWZ0LW9wZW46YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg2Mic7XG59XG5cbi8qICfuoaInICovXG4uaWNvbi1yaWdodC1vcGVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4NjMnO1xufVxuXG4vKiAn7qGjJyAqL1xuLmljb24tdXAtb3BlbjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODY0Jztcbn1cblxuLyogJ+6hpCcgKi9cbi5pY29uLWFuZ2xlLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg2NSc7XG59XG5cbi8qICfuoaUnICovXG4uaWNvbi1hbmdsZS1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODY2Jztcbn1cblxuLyogJ+6hpicgKi9cbi5pY29uLWFuZ2xlLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4NjcnO1xufVxuXG4vKiAn7qGnJyAqL1xuLmljb24tYW5nbGUtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODY4Jztcbn1cblxuLyogJ+6hqCcgKi9cbi5pY29uLWFuZ2xlLWNpcmNsZWQtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODY5Jztcbn1cblxuLyogJ+6hqScgKi9cbi5pY29uLWFuZ2xlLWNpcmNsZWQtcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg2YSc7XG59XG5cbi8qICfuoaonICovXG4uaWNvbi1hbmdsZS1jaXJjbGVkLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4NmInO1xufVxuXG4vKiAn7qGrJyAqL1xuLmljb24tYW5nbGUtY2lyY2xlZC1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4NmMnO1xufVxuXG4vKiAn7qGsJyAqL1xuLmljb24tYW5nbGUtZG91YmxlLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg2ZCc7XG59XG5cbi8qICfuoa0nICovXG4uaWNvbi1hbmdsZS1kb3VibGUtcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg2ZSc7XG59XG5cbi8qICfuoa4nICovXG4uaWNvbi1hbmdsZS1kb3VibGUtdXA6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg2Zic7XG59XG5cbi8qICfuoa8nICovXG4uaWNvbi1hbmdsZS1kb3VibGUtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODcwJztcbn1cblxuLyogJ+6hsCcgKi9cbi5pY29uLWRvd24tYmlnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4NzEnO1xufVxuXG4vKiAn7qGxJyAqL1xuLmljb24tbGVmdC1iaWc6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg3Mic7XG59XG5cbi8qICfuobInICovXG4uaWNvbi1yaWdodC1iaWc6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg3Myc7XG59XG5cbi8qICfuobMnICovXG4uaWNvbi11cC1iaWc6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg3NCc7XG59XG5cbi8qICfuobQnICovXG4uaWNvbi1sZWZ0LWNpcmNsZWQ6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg3NSc7XG59XG5cbi8qICfuobUnICovXG4uaWNvbi1yaWdodC1jaXJjbGVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4NzYnO1xufVxuXG4vKiAn7qG2JyAqL1xuLmljb24tdXAtY2lyY2xlZDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODc3Jztcbn1cblxuLyogJ+6htycgKi9cbi5pY29uLWRvd24tY2lyY2xlZDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODc4Jztcbn1cblxuLyogJ+6huCcgKi9cbi5pY29uLWN3OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4NzknO1xufVxuXG4vKiAn7qG5JyAqL1xuLmljb24tY2N3OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4N2EnO1xufVxuXG4vKiAn7qG6JyAqL1xuLmljb24tbGV2ZWwtdXA6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg3Yyc7XG59XG5cbi8qICfuobwnICovXG4uaWNvbi1sZXZlbC1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4N2QnO1xufVxuXG4vKiAn7qG9JyAqL1xuLmljb24tc2h1ZmZsZTpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODdlJztcbn1cblxuLyogJ+6hvicgKi9cbi5pY29uLWV4Y2hhbmdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4N2YnO1xufVxuXG4vKiAn7qG/JyAqL1xuLmljb24taGlzdG9yeTpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODgwJztcbn1cblxuLyogJ+6igCcgKi9cbi5pY29uLWV4cGFuZDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODgxJztcbn1cblxuLyogJ+6igScgKi9cbi5pY29uLWNvbGxhcHNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4ODInO1xufVxuXG4vKiAn7qKCJyAqL1xuLmljb24tZXhwYW5kLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4ODMnO1xufVxuXG4vKiAn7qKDJyAqL1xuLmljb24tY29sbGFwc2UtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODg0Jztcbn1cblxuLyogJ+6ihCcgKi9cbi5pY29uLXBsYXk6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg4NSc7XG59XG5cbi8qICfuooUnICovXG4uaWNvbi1wbGF5LWNpcmNsZWQyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4ODYnO1xufVxuXG4vKiAn7qKGJyAqL1xuLmljb24tcGxheS1jaXJjbGVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4ODcnO1xufVxuXG4vKiAn7qKHJyAqL1xuLmljb24tc3RvcDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODg4Jztcbn1cblxuLyogJ+6iiCcgKi9cbi5pY29uLWNsb3VkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4ODknO1xufVxuXG4vKiAn7qKJJyAqL1xuLmljb24tdGFibGU6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg4YSc7XG59XG5cbi8qICfuooonICovXG4uaWNvbi1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg4Yic7XG59XG5cbi8qICfuoosnICovXG4uaWNvbi1jaGVjazpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODhjJztcbn1cblxuLyogJ+6ijCcgKi9cbi5pY29uLWFzdGVyaXNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4OGUnO1xufVxuXG4vKiAn7qKOJyAqL1xuLmljb24tY2hhcnQtYmFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4OGYnO1xufVxuXG4vKiAn7qKPJyAqL1xuLmljb24tYnVnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4OTAnO1xufVxuXG4vKiAn7qKQJyAqL1xuLmljb24tY2VydGlmaWNhdGU6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg5MSc7XG59XG5cbi8qICfuopEnICovXG4uaWNvbi10YXNrczpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODkyJztcbn1cblxuLyogJ+6ikicgKi9cbi5pY29uLXNvcnQtdXA6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg5Myc7XG59XG5cbi8qICfuopMnICovXG4uaWNvbi1zb3J0LWRvd246YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg5NCc7XG59XG5cbi8qICfuopQnICovXG4uaWNvbi1zb3J0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4OTUnO1xufVxuXG4vKiAn7qKVJyAqL1xuLmljb24tZ2F1Z2U6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg5Nic7XG59XG5cbi8qICfuopYnICovXG4uaWNvbi1zcGlubmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4OTcnO1xufVxuXG4vKiAn7qKXJyAqL1xuLmljb24tZGF0YWJhc2U6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg5OCc7XG59XG5cbi8qICfuopgnICovXG4uaWNvbi1saWZlYnVveTpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODk5Jztcbn1cblxuLyogJ+6imScgKi9cbi5pY29uLWN1YmVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4OWEnO1xufVxuXG4vKiAn7qKaJyAqL1xuLmljb24tY3ViZTpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODliJztcbn1cblxuLyogJ+6imycgKi9cbi5pY29uLWJ1bGxzZXllOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4OWMnO1xufVxuXG4vKiAn7qKcJyAqL1xuLmljb24td2luZG93czpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlODlkJztcbn1cblxuLyogJ+6inScgKi9cbi5pY29uLWNhbmNlbC1jaXJjbGVkLTE6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg5ZSc7XG59XG5cbi8qICfuop4nICovXG4uaWNvbi1wbHVzLTE6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZThhMCc7XG59XG5cbi8qICfuoqAnICovXG4uaWNvbi1wbHVzLWNpcmNsZWQtMTpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlOGExJztcbn1cblxuLyogJ+6ioScgKi9cbi5pY29uLW1pbnVzLTE6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZThhMyc7XG59XG5cbi8qICfuoqMnICovXG4uaWNvbi1taW51cy1jaXJjbGVkLTE6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZThhNCc7XG59XG5cbi8qICfuoqQnICovXG4uaWNvbi1oZWxwLWNpcmNsZWQtMTpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlOGE3Jztcbn1cblxuLyogJ+6ipycgKi9cbi5pY29uLWhlYXJ0LWVtcHR5LTE6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZThhYSc7XG59XG5cbi8qICfuoqonICovXG4uaWNvbi1tYWlsLTE6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZThhYic7XG59XG5cbi8qICfuoqsnICovXG4uaWNvbi1zdGFyLTE6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZThhYyc7XG59XG5cbi8qICfuoqwnICovXG4uaWNvbi1zdGFyLWVtcHR5LTE6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZThhZCc7XG59XG5cbi8qICfuoq0nICovXG4uaWNvbi1saW5rLTE6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZThhZSc7XG59XG5cbi8qICfuoq4nICovXG4uaWNvbi1hdHRhY2gtMTpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlOGFmJztcbn1cblxuLyogJ+6irycgKi9cbi5pY29uLWV5ZS0xOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4YjInO1xufVxuXG4vKiAn7qKyJyAqL1xuLmljb24tYXR0ZW50aW9uLTE6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZThiMyc7XG59XG5cbi8qICfuorMnICovXG4uaWNvbi1kb2MtdGV4dC0xOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4YjQnO1xufVxuXG4vKiAn7qK0JyAqL1xuLmljb24tZG9jLXRleHQtaW52LTE6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZThiNSc7XG59XG5cbi8qICfuorUnICovXG4uaWNvbi1zaGFyZS0xOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4YjcnO1xufVxuXG4vKiAn7qK3JyAqL1xuLmljb24tc2hhcmVhYmxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4YjgnO1xufVxuXG4vKiAn7qK4JyAqL1xuLmljb24tY2N3LTE6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZThjYyc7XG59XG5cbi8qICfuo4wnICovXG4uaWNvbi1jdy0xOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4Y2QnO1xufVxuXG4vKiAn7qONJyAqL1xuLmljb24tYXJyb3dzLWNjdzpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlOGNlJztcbn1cblxuLyogJ+6jjicgKi9cbi5pY29uLXBsYXktMTpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlOGNmJztcbn1cblxuLyogJ+6jjycgKi9cbi5pY29uLXBhdXNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4ZDAnO1xufVxuXG4vKiAn7qOQJyAqL1xuLmljb24tcmVjb3JkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4ZDEnO1xufVxuXG4vKiAn7qORJyAqL1xuLmljb24tc3RvcC0xOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4ZDInO1xufVxuXG4vKiAn7qOSJyAqL1xuLmljb24tc3dpdGNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4ZDMnO1xufVxuXG4vKiAn7qOTJyAqL1xuLmljb24tbG9vcDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlOGQ0Jztcbn1cblxuLyogJ+6jlCcgKi9cbi5pY29uLWNsb3VkLTE6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZThkNSc7XG59XG5cbi8qICfuo5UnICovXG4uaWNvbi1jZXJ0aWZpY2F0ZS1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4ZGInO1xufVxuXG4vKiAn7qObJyAqL1xuLmljb24tY2VydGlmaWNhdGUtMTpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlOGRjJztcbn1cblxuLyogJ+6jnCcgKi9cbi5pY29uLXdpbmRvd3MtMTpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlOGRkJztcbn1cblxuLyogJ+6jnScgKi9cbi5pY29uLXNwaW41OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4ZGYnO1xufVxuXG4vKiAn7qOfJyAqL1xuLmljb24tc3BpbjI6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZThlMCc7XG59XG5cbi8qICfuo6AnICovXG4uaWNvbi1waWN0dXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4ZTQnO1xufVxuXG4vKiAn7qOkJyAqL1xuLmljb24tbWVudTpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlOGU1Jztcbn1cblxuLyogJ+6jpScgKi9cbi5pY29uLXNsaWRlcnM6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZThlNic7XG59XG5cbi8qICfuo6YnICovXG4uaWNvbi1saXN0LWFsdDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlOGU3Jztcbn1cblxuLyogJ+6jpycgKi9cbi5pY29uLWFqdXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4ZTgnO1xufVxuXG4vKiAn7qOoJyAqL1xuLmljb24tY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4ZTknO1xufVxuXG4vKiAn7qOpJyAqL1xuLmljb24tY2lyY2xlLWVtcHR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4ZWEnO1xufVxuXG4vKiAn7qOqJyAqL1xuLmljb24tY2lyY2xlLW5vdGNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4ZWMnO1xufVxuXG4vKiAn7qOsJyAqL1xuLmljb24tZm9yazpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlOGVkJztcbn1cblxuLyogJ+6jrScgKi9cbi5pY29uLXNpdGVtYXA6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZThlZSc7XG59XG5cbi8qICfuo64nICovXG4uaWNvbi1zdGV0aG9zY29wZTpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlOGVmJztcbn1cblxuLyogJ+6jrycgKi9cbi5pY29uLXNoaWVsZDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlOGYwJztcbn1cblxuLyogJ+6jsCcgKi9cbi5pY29uLWhlYXJ0LTE6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZThmMSc7XG59XG5cbi8qICfuo7EnICovXG4uaWNvbi1zZWFyY2gtMTpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlOGYyJztcbn1cblxuLyogJ+6jsicgKi9cbi5pY29uLW1lbnUtMTpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlOGYzJztcbn1cblxuLyogJ+6jsycgKi9cbi5pY29uLWJhY2s6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZThmNic7XG59XG5cbi8qICfuo7YnICovXG4uaWNvbi1ob21lLTE6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZThmNyc7XG59XG5cbi8qICfuo7cnICovXG4uaWNvbi1wZW5jaWwtMTpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlOGY4Jztcbn1cblxuLyogJ+6juCcgKi9cbi5pY29uLWxvY2F0aW9uLTE6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZThmOSc7XG59XG5cbi8qICfuo7knICovXG4uaWNvbi1sb2dvdXQtMTpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlOGZiJztcbn1cblxuLyogJ+6juycgKi9cbi5pY29uLWxvZ2luLTE6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZThmYyc7XG59XG5cbi8qICfuo7wnICovXG4uaWNvbi1wdWJsaXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4ZmQnO1xufVxuXG4vKiAn7qO9JyAqL1xuLmljb24td2luZG93OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4ZmUnO1xufVxuXG4vKiAn7qO+JyAqL1xuLmljb24tY2hhcnQtcGllOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4ZmYnO1xufVxuXG4vKiAn7qO/JyAqL1xuLmljb24tY2hhcnQtbGluZTpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlOTAwJztcbn1cblxuLyogJ+6kgCcgKi9cbi5pY29uLWNoYXJ0LWFyZWE6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTkwMSc7XG59XG5cbi8qICfupIEnICovXG4uaWNvbi1jaGFydC1iYXItMTpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlOTAyJztcbn1cblxuLyogJ+6kgicgKi9cbi5pY29uLWFpcjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlOTA1Jztcbn1cblxuLyogJ+6khScgKi9cbi5pY29uLWRhdGFiYXNlLTE6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTkwNic7XG59XG5cbi8qICfupIYnICovXG4uaWNvbi1mbG93LWNhc2NhZGU6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTkwNyc7XG59XG5cbi8qICfupIcnICovXG4uaWNvbi1mbG93LXRyZWU6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTkwOCc7XG59XG5cbi8qICfupIgnICovXG4uaWNvbi1mbG93LWxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTkwOSc7XG59XG5cbi8qICfupIknICovXG4uaWNvbi1mbG93LWJyYW5jaDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlOTBhJztcbn1cblxuLyogJ+6kiicgKi9cbi5pY29uLWZsb3ctcGFyYWxsZWwtMTpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlOTBmJztcbn1cblxuLyogJ+6kjycgKi9cbi5pY29uLWRvdDpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlOTEwJztcbn1cblxuLyogJ+6kkCcgKi9cbi5pY29uLWRvdC0zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU5MTEnO1xufVxuXG4vKiAn7qSRJyAqL1xuLmljb24tY2Q6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTkxMic7XG59XG5cbi8qICfupJInICovXG4uaWNvbi1iYWNrLWluLXRpbWU6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTkxMyc7XG59XG5cbi8qICfupJMnICovXG4uaWNvbi1saXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU5MTQnO1xufVxuXG4vKiAn7qSUJyAqL1xuLmljb24tbGlzdC1hZGQ6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTkxNSc7XG59XG5cbi8qICfupJUnICovXG4uaWNvbi1wcm9ncmVzcy0wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU5MTknO1xufVxuXG4vKiAn7qSZJyAqL1xuLmljb24tcGVuY2lsLTI6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTkxZCc7XG59XG5cbi8qICfupJ0nICovXG4uaWNvbi1jb2ctMjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlOTFmJztcbn1cblxuLyogJ+6knycgKi9cbi5pY29uLWNvZy1jaXJjbGVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU5MjAnO1xufVxuXG4vKiAn7qSgJyAqL1xuLmljb24tY29nczpiZWZvcmUge1xuICBjb250ZW50OiAnXFxlOTIxJztcbn1cblxuLyogJ+6koScgKi9cbi5pY29uLWNhbGVuZGFyLTE6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTkyNCc7XG59XG5cbi8qICfupKQnICovXG4uaWNvbi1kb2MtbmV3OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU5MjUnO1xufVxuXG4vKiAn7qSlJyAqL1xuLypcbiAgIEFuaW1hdGlvbiBleGFtcGxlLCBmb3Igc3Bpbm5lcnNcbiovXG4uYW5pbWF0ZS1zcGluIHtcbiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMnMgaW5maW5pdGUgbGluZWFyO1xuICAtby1hbmltYXRpb246IHNwaW4gMnMgaW5maW5pdGUgbGluZWFyO1xuICBhbmltYXRpb246IHNwaW4gMnMgaW5maW5pdGUgbGluZWFyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbkBrZXlmcmFtZXMgc3BpbiB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIC1vLXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcbiAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7XG4gICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7XG4gICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xuICB9XG59XG4iLCIvKlxuICogQSBwYXJ0aWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBSdWJ5IGxpc3QgZnVuY3Rpb25zIGZyb20gQ29tcGFzczpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9Db21wYXNzL2NvbXBhc3MvYmxvYi9zdGFibGUvbGliL2NvbXBhc3Mvc2Fzc19leHRlbnNpb25zL2Z1bmN0aW9ucy9saXN0cy5yYlxuICovXG5cblxuLy8gY29tcGFjdCBpcyBwYXJ0IG9mIGxpYnNhc3NcblxuQGZ1bmN0aW9uIC1jb21wYXNzLW50aCgkbGlzdCwgJHBsYWNlKSB7XG4gIC8vIFllcCwgU2Fzcy1saXN0cyBhcmUgMS1pbmRleGVkLlxuICBAaWYgJHBsYWNlID09IFwiZmlyc3RcIiB7XG4gICAgJHBsYWNlOiAxO1xuICB9XG4gIEBpZiAkcGxhY2UgPT0gXCJsYXN0XCIge1xuICAgICRwbGFjZTogbGVuZ3RoKCRsaXN0KTtcbiAgfVxuICBAcmV0dXJuIG50aCgkbGlzdCwgJHBsYWNlKTtcbn1cblxuLy8gY29tcGFzc19saXN0IGFuZCBjb21wYXNzX3NwYWNlX2xpc3QgY2FuJ3QgYmUgaW1wbGVtZW50ZWQgaW4gc2FzcyBzY3JpcHRcblxuQGZ1bmN0aW9uIC1jb21wYXNzLWxpc3Qtc2l6ZSgkbGlzdCkge1xuICBAcmV0dXJuIGxlbmd0aCgkbGlzdCk7XG59XG5cbkBmdW5jdGlvbiAtY29tcGFzcy1zbGljZSgkbGlzdCwgJHN0YXJ0LCAkZW5kOiBmYWxzZSkge1xuICBAaWYgJGVuZCA9PSBmYWxzZSB7XG4gICAgJGVuZDogbGVuZ3RoKCRsaXN0KTtcbiAgfVxuICAkZnVsbDogbnRoKCRsaXN0LCAkc3RhcnQpO1xuICBAZm9yICRpIGZyb20gJHN0YXJ0ICsgMSB0aHJvdWdoICRlbmQge1xuICAgICRmdWxsOiAkZnVsbCwgbnRoKCRsaXN0LCAkaSk7XG4gIH1cbiAgQHJldHVybiAkZnVsbDtcbn1cblxuQGZ1bmN0aW9uIHJlamVjdCgkbGlzdCwgJHJlamVjdDEsICRyZWplY3QyOm51bGwsICRyZWplY3QzOm51bGwsICRyZWplY3Q0Om51bGwsICRyZWplY3Q1Om51bGwsICRyZWplY3Q2Om51bGwsICRyZWplY3Q3Om51bGwsICRyZWplY3Q4Om51bGwsICRyZWplY3Q5Om51bGwpIHtcbiAgJHJlamVjdHM6ICRyZWplY3QxLCAkcmVqZWN0MiwgJHJlamVjdDMsICRyZWplY3Q0LCAkcmVqZWN0NSwgJHJlamVjdDYsICRyZWplY3Q3LCAkcmVqZWN0OCwgJHJlamVjdDk7XG5cbiAgJGZ1bGw6IGZhbHNlO1xuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgQGlmIGluZGV4KCRyZWplY3RzLCAkaXRlbSkge31cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgJGZ1bGwge1xuICAgICAgICAkZnVsbDogJGZ1bGwsICRpdGVtO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkZnVsbDogJGl0ZW07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGZ1bGw7XG59XG4iLCIvKlxuICogQSBwYXJ0aWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBSdWJ5IGNvbnN0YW50cyBmdW5jdGlvbnMgZnJvbSBDb21wYXNzOlxuICogaHR0cHM6Ly9naXRodWIuY29tL0NvbXBhc3MvY29tcGFzcy9ibG9iL3N0YWJsZS9saWIvY29tcGFzcy9zYXNzX2V4dGVuc2lvbnMvZnVuY3Rpb25zL2NvbnN0YW50cy5yYlxuICovXG5cbkBmdW5jdGlvbiBvcHBvc2l0ZS1wb3NpdGlvbigkZnJvbSkge1xuICAgIEBpZiAoJGZyb20gPT0gdG9wKSB7XG4gICAgICAgIEByZXR1cm4gYm90dG9tO1xuICAgIH0gQGVsc2UgaWYgKCRmcm9tID09IGJvdHRvbSkge1xuICAgICAgICBAcmV0dXJuIHRvcDtcbiAgICB9IEBlbHNlIGlmICgkZnJvbSA9PSBsZWZ0KSB7XG4gICAgICAgIEByZXR1cm4gcmlnaHQ7XG4gICAgfSBAZWxzZSBpZiAoJGZyb20gPT0gcmlnaHQpIHtcbiAgICAgICAgQHJldHVybiBsZWZ0O1xuICAgIH0gQGVsc2UgaWYgKCRmcm9tID09IGNlbnRlcikge1xuICAgICAgICBAcmV0dXJuIGNlbnRlcjtcbiAgICB9XG59XG4iLCIvKlxuICogQSBwYXJ0aWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBSdWJ5IGRpc3BsYXkgZnVuY3Rpb25zIGZyb20gQ29tcGFzczpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9Db21wYXNzL2NvbXBhc3MvYmxvYi9zdGFibGUvY29yZS9saWIvY29tcGFzcy9jb3JlL3Nhc3NfZXh0ZW5zaW9ucy9mdW5jdGlvbnMvZGlzcGxheS5yYlxuICovXG5cbkBmdW5jdGlvbiBlbGVtZW50cy1vZi10eXBlKCR0eXBlKXtcbiAgICBAaWYgKCR0eXBlID09IGJsb2NrKXtcbiAgICAgICAgQHJldHVybiBhZGRyZXNzLCBhcnRpY2xlLCBhc2lkZSwgYmxvY2txdW90ZSwgY2VudGVyLCBkaXIsIGRpdiwgZGQsIGRldGFpbHMsIGRsLCBkdCwgZmllbGRzZXQsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9ybSwgZm9vdGVyLCBmcmFtZXNldCwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgaHIsIGhlYWRlciwgaGdyb3VwLCBpc2luZGV4LCBtYWluLCBtZW51LCBuYXYsIG5vZnJhbWVzLCBub3NjcmlwdCwgb2wsIHAsIHByZSwgc2VjdGlvbiwgc3VtbWFyeSwgdWw7XG4gICAgfSBAZWxzZSBpZiAoJHR5cGUgPT0gaW5saW5lKXtcbiAgICAgICAgQHJldHVybiBhLCBhYmJyLCBhY3JvbnltLCBhdWRpbywgYiwgYmFzZWZvbnQsIGJkbywgYmlnLCBiciwgY2FudmFzLCBjaXRlLCBjb2RlLCBjb21tYW5kLCBkYXRhbGlzdCwgZGZuLCBlbSwgZW1iZWQsIGZvbnQsIGksIGltZywgaW5wdXQsIGtleWdlbiwga2JkLCBsYWJlbCwgbWFyaywgbWV0ZXIsIG91dHB1dCwgcHJvZ3Jlc3MsIHEsIHJwLCBydCwgcnVieSwgcywgc2FtcCwgc2VsZWN0LCBzbWFsbCwgc3Bhbiwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0ZXh0YXJlYSwgdGltZSwgdHQsIHUsIHZhciwgdmlkZW8sIHdicjtcbiAgICB9IEBlbHNlIGlmICgkdHlwZSA9PSBpbmxpbmUtYmxvY2spe1xuICAgICAgICBAcmV0dXJuIGltZztcbiAgICB9IEBlbHNlIGlmICgkdHlwZSA9PSB0YWJsZSl7XG4gICAgICAgIEByZXR1cm4gdGFibGU7XG4gICAgfSBAZWxzZSBpZiAoJHR5cGUgPT0gbGlzdC1pdGVtKXtcbiAgICAgICAgQHJldHVybiBsaTtcbiAgICB9IEBlbHNlIGlmICgkdHlwZSA9PSB0YWJsZS1yb3ctZ3JvdXApe1xuICAgICAgICBAcmV0dXJuIHRib2R5O1xuICAgIH0gQGVsc2UgaWYgKCR0eXBlID09IHRhYmxlLWhlYWRlci1ncm91cCl7XG4gICAgICAgIEByZXR1cm4gdGhlYWQ7XG4gICAgfSBAZWxzZSBpZiAoJHR5cGUgPT0gdGFibGUtZm9vdGVyLWdyb3VwKXtcbiAgICAgICAgQHJldHVybiB0Zm9vdDtcbiAgICB9IEBlbHNlIGlmICgkdHlwZSA9PSB0YWJsZS1yb3cpe1xuICAgICAgICBAcmV0dXJuIHRyO1xuICAgIH0gQGVsc2UgaWYgKCR0eXBlID09IHRhYmxlLWNlbGwpe1xuICAgICAgICBAcmV0dXJuIHRoLCB0ZDtcbiAgICB9IEBlbHNlIGlmICgkdHlwZSA9PSBodG1sNS1ibG9jayl7XG4gICAgICAgIEByZXR1cm4gYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWFpbiwgbWVudSwgbmF2LCBzZWN0aW9uLCBzdW1tYXJ5O1xuICAgIH0gQGVsc2UgaWYgKCR0eXBlID09IGh0bWw1LWlubGluZSl7XG4gICAgICAgIEByZXR1cm4gYXVkaW8sIGNhbnZhcywgY29tbWFuZCwgZGF0YWxpc3QsIGVtYmVkLCBrZXlnZW4sIG1hcmssIG1ldGVyLCBvdXRwdXQsIHByb2dyZXNzLCBycCwgcnQsIHJ1YnksIHRpbWUsIHZpZGVvLCB3YnI7XG4gICAgfSBAZWxzZSBpZiAoJHR5cGUgPT0gaHRtbDUpe1xuICAgICAgICBAcmV0dXJuIGFydGljbGUsIGFzaWRlLCBhdWRpbywgY2FudmFzLCBjb21tYW5kLCBkYXRhbGlzdCwgZGV0YWlscywgZW1iZWQsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwga2V5Z2VuLCBtYWluLCBtYXJrLCBtZW51LCBtZXRlciwgbmF2LCBvdXRwdXQsIHByb2dyZXNzLCBycCwgcnQsIHJ1YnksIHNlY3Rpb24sIHN1bW1hcnksIHRpbWUsIHZpZGVvLCB3YnI7XG4gICAgfSBAZWxzZSBpZiAoJHR5cGUgPT0gdGV4dC1pbnB1dCl7XG4gICAgICAgIEByZXR1cm4gaW5wdXQsIHRleHRhcmVhO1xuICAgIH1cbn1cbiIsIkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ2ZvbnRlbGxvJztcbiAgc3JjOiB1cmwoJyN7JGljb24tZm9udC1wYXRofWZvbnRlbGxvLmVvdCcpO1xuICBzcmM6IHVybCgnI3skaWNvbi1mb250LXBhdGh9Zm9udGVsbG8uZW90I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgIHVybCgnI3skaWNvbi1mb250LXBhdGh9Zm9udGVsbG8ud29mZicpIGZvcm1hdCgnd29mZicpLFxuICAgICAgIHVybCgnI3skaWNvbi1mb250LXBhdGh9Zm9udGVsbG8udHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgIHVybCgnI3skaWNvbi1mb250LXBhdGh9Zm9udGVsbG8uc3ZnI2ZvbnRlbGxvJykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5cbi8qIENocm9tZSBoYWNrOiBTVkcgaXMgcmVuZGVyZWQgbW9yZSBzbW9vdGggaW4gV2luZG96emUuIDEwMCUgbWFnaWMsIHVuY29tbWVudCBpZiB5b3UgbmVlZCBpdC4gKi9cbi8qIE5vdGUsIHRoYXQgd2lsbCBicmVhayBoaW50aW5nISBJbiBvdGhlciBPUy1lcyBmb250IHdpbGwgYmUgbm90IGFzIHNoYXJwIGFzIGl0IGNvdWxkIGJlICovXG4vKlxuQG1lZGlhIHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKSB7XG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnZm9udGVsbG8nO1xuICAgIHNyYzogdXJsKCcuLi9mb250L2ZvbnRlbGxvLnN2Zz85OTMyMDk0NSNmb250ZWxsbycpIGZvcm1hdCgnc3ZnJyk7XG4gIH1cbn1cbiovXG4gXG4gW2NsYXNzXj1cImljb24tXCJdOmJlZm9yZSwgW2NsYXNzKj1cIiBpY29uLVwiXTpiZWZvcmUge1xuICBmb250LWZhbWlseTogXCJmb250ZWxsb1wiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHNwZWFrOiBub25lO1xuIFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgd2lkdGg6IDFlbTtcbiAgbWFyZ2luLXJpZ2h0OiAuMmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC8qIG9wYWNpdHk6IC44OyAqL1xuIFxuICAvKiBGb3Igc2FmZXR5IC0gcmVzZXQgcGFyZW50IHN0eWxlcywgdGhhdCBjYW4gYnJlYWsgZ2x5cGggY29kZXMqL1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgIFxuICAvKiBmaXggYnV0dG9ucyBoZWlnaHQsIGZvciB0d2l0dGVyIGJvb3RzdHJhcCAqL1xuICBsaW5lLWhlaWdodDogMWVtO1xuIFxuICAvKiBBbmltYXRpb24gY2VudGVyIGNvbXBlbnNhdGlvbiAtIG1hcmdpbnMgc2hvdWxkIGJlIHN5bW1ldHJpYyAqL1xuICAvKiByZW1vdmUgaWYgbm90IG5lZWRlZCAqL1xuICBtYXJnaW4tbGVmdDogLjJlbTtcbiBcbiAgLyogeW91IGNhbiBiZSBtb3JlIGNvbWZvcnRhYmxlIHdpdGggaW5jcmVhc2VkIGljb25zIHNpemUgKi9cbiAgLyogZm9udC1zaXplOiAxMjAlOyAqL1xuIFxuICAvKiBVbmNvbW1lbnQgZm9yIDNEIGVmZmVjdCAqL1xuICAvKiB0ZXh0LXNoYWRvdzogMXB4IDFweCAxcHggcmdiYSgxMjcsIDEyNywgMTI3LCAwLjMpOyAqL1xufVxuIFxuLmljb24tdXNlcjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODAwJzsgfSAvKiAn7qCAJyAqL1xuLmljb24taGVscC1jaXJjbGVkOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDEnOyB9IC8qICfuoIEnICovXG4uaWNvbi1zZWFyY2g6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwMic7IH0gLyogJ+6ggicgKi9cbi5pY29uLXRhZzpiZWZvcmUgeyBjb250ZW50OiAnXFxlODAzJzsgfSAvKiAn7qCDJyAqL1xuLmljb24tZG90LTI6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwNCc7IH0gLyogJ+6ghCcgKi9cbi5pY29uLWFycm93cy1jdzpiZWZvcmUgeyBjb250ZW50OiAnXFxlODA1JzsgfSAvKiAn7qCFJyAqL1xuLmljb24tcHJpbnQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwNic7IH0gLyogJ+6ghicgKi9cbi5pY29uLWNhbmNlbC1jaXJjbGVkOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDcnOyB9IC8qICfuoIcnICovXG4uaWNvbi1lZGl0LWFsdDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODA4JzsgfSAvKiAn7qCIJyAqL1xuLmljb24tbG9naW46YmVmb3JlIHsgY29udGVudDogJ1xcZTgwOSc7IH0gLyogJ+6giScgKi9cbi5pY29uLWxvZ291dDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODBhJzsgfSAvKiAn7qCKJyAqL1xuLmljb24tZG93bmxvYWQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwYic7IH0gLyogJ+6giycgKi9cbi5pY29uLXRoLWxhcmdlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MGMnOyB9IC8qICfuoIwnICovXG4uaWNvbi10aDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODBkJzsgfSAvKiAn7qCNJyAqL1xuLmljb24tdGgtbGlzdDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODBlJzsgfSAvKiAn7qCOJyAqL1xuLmljb24tc3RhcjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODBmJzsgfSAvKiAn7qCPJyAqL1xuLmljb24tc3Rhci1lbXB0eTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODEwJzsgfSAvKiAn7qCQJyAqL1xuLmljb24tdXNlcnM6YmVmb3JlIHsgY29udGVudDogJ1xcZTgxMSc7IH0gLyogJ+6gkScgKi9cbi5pY29uLXVwbG9hZDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODEyJzsgfSAvKiAn7qCSJyAqL1xuLmljb24tY2lyY2xlLXRoaW46YmVmb3JlIHsgY29udGVudDogJ1xcZTgxMyc7IH0gLyogJ+6gkycgKi9cbi5pY29uLWRvdC1jaXJjbGVkOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MTQnOyB9IC8qICfuoJQnICovXG4uaWNvbi1vazpiZWZvcmUgeyBjb250ZW50OiAnXFxlODE1JzsgfSAvKiAn7qCVJyAqL1xuLmljb24tY2hlY2stZW1wdHktMTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODE2JzsgfSAvKiAn7qCWJyAqL1xuLmljb24tY2xvY2stMjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODE3JzsgfSAvKiAn7qCXJyAqL1xuLmljb24tb2stc3F1YXJlZDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODE4JzsgfSAvKiAn7qCYJyAqL1xuLmljb24tcGluOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MjAnOyB9IC8qICfuoKAnICovXG4uaWNvbi1leWU6YmVmb3JlIHsgY29udGVudDogJ1xcZTgyMSc7IH0gLyogJ+6goScgKi9cbi5pY29uLWF0dGFjaDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODI0JzsgfSAvKiAn7qCkJyAqL1xuLmljb24tdW5saW5rOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MjUnOyB9IC8qICfuoKUnICovXG4uaWNvbi1saW5rOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MjYnOyB9IC8qICfuoKYnICovXG4uaWNvbi1ob21lOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MjcnOyB9IC8qICfuoKcnICovXG4uaWNvbi1pbmZvOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MjgnOyB9IC8qICfuoKgnICovXG4uaWNvbi1pbmZvLWNpcmNsZWQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgyOSc7IH0gLyogJ+6gqScgKi9cbi5pY29uLWV4cG9ydDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODJmJzsgfSAvKiAn7qCvJyAqL1xuLmljb24tZXhwb3J0LWFsdDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODMwJzsgfSAvKiAn7qCwJyAqL1xuLmljb24tc2hhcmU6YmVmb3JlIHsgY29udGVudDogJ1xcZTgzMSc7IH0gLyogJ+6gsScgKi9cbi5pY29uLXNoYXJlLXNxdWFyZWQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgzMic7IH0gLyogJ+6gsicgKi9cbi5pY29uLXJldHdlZXQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgzNic7IH0gLyogJ+6gticgKi9cbi5pY29uLWF0dGVudGlvbi1hbHQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgzNyc7IH0gLyogJ+6gtycgKi9cbi5pY29uLWF0dGVudGlvbjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODM4JzsgfSAvKiAn7qC4JyAqL1xuLmljb24tYXR0ZW50aW9uLWNpcmNsZWQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgzOSc7IH0gLyogJ+6guScgKi9cbi5pY29uLWxvY2F0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4M2EnOyB9IC8qICfuoLonICovXG4uaWNvbi10cmFzaDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODNiJzsgfSAvKiAn7qC7JyAqL1xuLmljb24tZG9jOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4M2MnOyB9IC8qICfuoLwnICovXG4uaWNvbi1kb2NzOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4M2QnOyB9IC8qICfuoL0nICovXG4uaWNvbi1kb2MtdGV4dDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODNlJzsgfSAvKiAn7qC+JyAqL1xuLmljb24tZG9jLWludjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODNmJzsgfSAvKiAn7qC/JyAqL1xuLmljb24tZG9jLXRleHQtaW52OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NDAnOyB9IC8qICfuoYAnICovXG4uaWNvbi1maWxlLXBkZjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODQxJzsgfSAvKiAn7qGBJyAqL1xuLmljb24tZmlsZS13b3JkOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NDInOyB9IC8qICfuoYInICovXG4uaWNvbi1maWxlLWV4Y2VsOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NDMnOyB9IC8qICfuoYMnICovXG4uaWNvbi1maWxlLXBvd2VycG9pbnQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTg0NCc7IH0gLyogJ+6hhCcgKi9cbi5pY29uLWZpbGUtaW1hZ2U6YmVmb3JlIHsgY29udGVudDogJ1xcZTg0NSc7IH0gLyogJ+6hhScgKi9cbi5pY29uLWNvZzpiZWZvcmUgeyBjb250ZW50OiAnXFxlODRiJzsgfSAvKiAn7qGLJyAqL1xuLmljb24tY29nLWFsdDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODRjJzsgfSAvKiAn7qGMJyAqL1xuLmljb24td3JlbmNoOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NGQnOyB9IC8qICfuoY0nICovXG4uaWNvbi1jYWxlbmRhcjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODRlJzsgfSAvKiAn7qGOJyAqL1xuLmljb24tY2FsZW5kYXItZW1wdHk6YmVmb3JlIHsgY29udGVudDogJ1xcZTg0Zic7IH0gLyogJ+6hjycgKi9cbi5pY29uLWNsb2NrOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NTInOyB9IC8qICfuoZInICovXG4uaWNvbi1ibG9jazpiZWZvcmUgeyBjb250ZW50OiAnXFxlODUzJzsgfSAvKiAn7qGTJyAqL1xuLmljb24tem9vbS1pbjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODU3JzsgfSAvKiAn7qGXJyAqL1xuLmljb24tem9vbS1vdXQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTg1OCc7IH0gLyogJ+6hmCcgKi9cbi5pY29uLWRvd24tY2lyY2xlZDI6YmVmb3JlIHsgY29udGVudDogJ1xcZTg1OSc7IH0gLyogJ+6hmScgKi9cbi5pY29uLXVwLWNpcmNsZWQyOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NWEnOyB9IC8qICfuoZonICovXG4uaWNvbi1sZWZ0LWNpcmNsZWQyOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NWInOyB9IC8qICfuoZsnICovXG4uaWNvbi1yaWdodC1jaXJjbGVkMjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODVjJzsgfSAvKiAn7qGcJyAqL1xuLmljb24tZG93bi1kaXI6YmVmb3JlIHsgY29udGVudDogJ1xcZTg1ZCc7IH0gLyogJ+6hnScgKi9cbi5pY29uLXVwLWRpcjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODVlJzsgfSAvKiAn7qGeJyAqL1xuLmljb24tbGVmdC1kaXI6YmVmb3JlIHsgY29udGVudDogJ1xcZTg1Zic7IH0gLyogJ+6hnycgKi9cbi5pY29uLXJpZ2h0LWRpcjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODYwJzsgfSAvKiAn7qGgJyAqL1xuLmljb24tZG93bi1vcGVuOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NjEnOyB9IC8qICfuoaEnICovXG4uaWNvbi1sZWZ0LW9wZW46YmVmb3JlIHsgY29udGVudDogJ1xcZTg2Mic7IH0gLyogJ+6hoicgKi9cbi5pY29uLXJpZ2h0LW9wZW46YmVmb3JlIHsgY29udGVudDogJ1xcZTg2Myc7IH0gLyogJ+6hoycgKi9cbi5pY29uLXVwLW9wZW46YmVmb3JlIHsgY29udGVudDogJ1xcZTg2NCc7IH0gLyogJ+6hpCcgKi9cbi5pY29uLWFuZ2xlLWxlZnQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTg2NSc7IH0gLyogJ+6hpScgKi9cbi5pY29uLWFuZ2xlLXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NjYnOyB9IC8qICfuoaYnICovXG4uaWNvbi1hbmdsZS11cDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODY3JzsgfSAvKiAn7qGnJyAqL1xuLmljb24tYW5nbGUtZG93bjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODY4JzsgfSAvKiAn7qGoJyAqL1xuLmljb24tYW5nbGUtY2lyY2xlZC1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NjknOyB9IC8qICfuoaknICovXG4uaWNvbi1hbmdsZS1jaXJjbGVkLXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NmEnOyB9IC8qICfuoaonICovXG4uaWNvbi1hbmdsZS1jaXJjbGVkLXVwOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NmInOyB9IC8qICfuoasnICovXG4uaWNvbi1hbmdsZS1jaXJjbGVkLWRvd246YmVmb3JlIHsgY29udGVudDogJ1xcZTg2Yyc7IH0gLyogJ+6hrCcgKi9cbi5pY29uLWFuZ2xlLWRvdWJsZS1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NmQnOyB9IC8qICfuoa0nICovXG4uaWNvbi1hbmdsZS1kb3VibGUtcmlnaHQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTg2ZSc7IH0gLyogJ+6hricgKi9cbi5pY29uLWFuZ2xlLWRvdWJsZS11cDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODZmJzsgfSAvKiAn7qGvJyAqL1xuLmljb24tYW5nbGUtZG91YmxlLWRvd246YmVmb3JlIHsgY29udGVudDogJ1xcZTg3MCc7IH0gLyogJ+6hsCcgKi9cbi5pY29uLWRvd24tYmlnOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NzEnOyB9IC8qICfuobEnICovXG4uaWNvbi1sZWZ0LWJpZzpiZWZvcmUgeyBjb250ZW50OiAnXFxlODcyJzsgfSAvKiAn7qGyJyAqL1xuLmljb24tcmlnaHQtYmlnOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NzMnOyB9IC8qICfuobMnICovXG4uaWNvbi11cC1iaWc6YmVmb3JlIHsgY29udGVudDogJ1xcZTg3NCc7IH0gLyogJ+6htCcgKi9cbi5pY29uLWxlZnQtY2lyY2xlZDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODc1JzsgfSAvKiAn7qG1JyAqL1xuLmljb24tcmlnaHQtY2lyY2xlZDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODc2JzsgfSAvKiAn7qG2JyAqL1xuLmljb24tdXAtY2lyY2xlZDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODc3JzsgfSAvKiAn7qG3JyAqL1xuLmljb24tZG93bi1jaXJjbGVkOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4NzgnOyB9IC8qICfuobgnICovXG4uaWNvbi1jdzpiZWZvcmUgeyBjb250ZW50OiAnXFxlODc5JzsgfSAvKiAn7qG5JyAqL1xuLmljb24tY2N3OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4N2EnOyB9IC8qICfuobonICovXG4uaWNvbi1sZXZlbC11cDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODdjJzsgfSAvKiAn7qG8JyAqL1xuLmljb24tbGV2ZWwtZG93bjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODdkJzsgfSAvKiAn7qG9JyAqL1xuLmljb24tc2h1ZmZsZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODdlJzsgfSAvKiAn7qG+JyAqL1xuLmljb24tZXhjaGFuZ2U6YmVmb3JlIHsgY29udGVudDogJ1xcZTg3Zic7IH0gLyogJ+6hvycgKi9cbi5pY29uLWhpc3Rvcnk6YmVmb3JlIHsgY29udGVudDogJ1xcZTg4MCc7IH0gLyogJ+6igCcgKi9cbi5pY29uLWV4cGFuZDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODgxJzsgfSAvKiAn7qKBJyAqL1xuLmljb24tY29sbGFwc2U6YmVmb3JlIHsgY29udGVudDogJ1xcZTg4Mic7IH0gLyogJ+6igicgKi9cbi5pY29uLWV4cGFuZC1yaWdodDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODgzJzsgfSAvKiAn7qKDJyAqL1xuLmljb24tY29sbGFwc2UtbGVmdDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODg0JzsgfSAvKiAn7qKEJyAqL1xuLmljb24tcGxheTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODg1JzsgfSAvKiAn7qKFJyAqL1xuLmljb24tcGxheS1jaXJjbGVkMjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODg2JzsgfSAvKiAn7qKGJyAqL1xuLmljb24tcGxheS1jaXJjbGVkOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4ODcnOyB9IC8qICfuoocnICovXG4uaWNvbi1zdG9wOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4ODgnOyB9IC8qICfuoognICovXG4uaWNvbi1jbG91ZDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODg5JzsgfSAvKiAn7qKJJyAqL1xuLmljb24tdGFibGU6YmVmb3JlIHsgY29udGVudDogJ1xcZTg4YSc7IH0gLyogJ+6iiicgKi9cbi5pY29uLW9mZjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODhiJzsgfSAvKiAn7qKLJyAqL1xuLmljb24tY2hlY2s6YmVmb3JlIHsgY29udGVudDogJ1xcZTg4Yyc7IH0gLyogJ+6ijCcgKi9cbi5pY29uLWFzdGVyaXNrOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4OGUnOyB9IC8qICfuoo4nICovXG4uaWNvbi1jaGFydC1iYXI6YmVmb3JlIHsgY29udGVudDogJ1xcZTg4Zic7IH0gLyogJ+6ijycgKi9cbi5pY29uLWJ1ZzpiZWZvcmUgeyBjb250ZW50OiAnXFxlODkwJzsgfSAvKiAn7qKQJyAqL1xuLmljb24tY2VydGlmaWNhdGU6YmVmb3JlIHsgY29udGVudDogJ1xcZTg5MSc7IH0gLyogJ+6ikScgKi9cbi5pY29uLXRhc2tzOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4OTInOyB9IC8qICfuopInICovXG4uaWNvbi1zb3J0LXVwOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4OTMnOyB9IC8qICfuopMnICovXG4uaWNvbi1zb3J0LWRvd246YmVmb3JlIHsgY29udGVudDogJ1xcZTg5NCc7IH0gLyogJ+6ilCcgKi9cbi5pY29uLXNvcnQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTg5NSc7IH0gLyogJ+6ilScgKi9cbi5pY29uLWdhdWdlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4OTYnOyB9IC8qICfuopYnICovXG4uaWNvbi1zcGlubmVyOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4OTcnOyB9IC8qICfuopcnICovXG4uaWNvbi1kYXRhYmFzZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODk4JzsgfSAvKiAn7qKYJyAqL1xuLmljb24tbGlmZWJ1b3k6YmVmb3JlIHsgY29udGVudDogJ1xcZTg5OSc7IH0gLyogJ+6imScgKi9cbi5pY29uLWN1YmVzOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4OWEnOyB9IC8qICfuoponICovXG4uaWNvbi1jdWJlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4OWInOyB9IC8qICfuopsnICovXG4uaWNvbi1idWxsc2V5ZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODljJzsgfSAvKiAn7qKcJyAqL1xuLmljb24td2luZG93czpiZWZvcmUgeyBjb250ZW50OiAnXFxlODlkJzsgfSAvKiAn7qKdJyAqL1xuLmljb24tY2FuY2VsLWNpcmNsZWQtMTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODllJzsgfSAvKiAn7qKeJyAqL1xuLmljb24tcGx1cy0xOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4YTAnOyB9IC8qICfuoqAnICovXG4uaWNvbi1wbHVzLWNpcmNsZWQtMTpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGExJzsgfSAvKiAn7qKhJyAqL1xuLmljb24tbWludXMtMTpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGEzJzsgfSAvKiAn7qKjJyAqL1xuLmljb24tbWludXMtY2lyY2xlZC0xOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4YTQnOyB9IC8qICfuoqQnICovXG4uaWNvbi1oZWxwLWNpcmNsZWQtMTpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGE3JzsgfSAvKiAn7qKnJyAqL1xuLmljb24taGVhcnQtZW1wdHktMTpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGFhJzsgfSAvKiAn7qKqJyAqL1xuLmljb24tbWFpbC0xOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4YWInOyB9IC8qICfuoqsnICovXG4uaWNvbi1zdGFyLTE6YmVmb3JlIHsgY29udGVudDogJ1xcZThhYyc7IH0gLyogJ+6irCcgKi9cbi5pY29uLXN0YXItZW1wdHktMTpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGFkJzsgfSAvKiAn7qKtJyAqL1xuLmljb24tbGluay0xOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4YWUnOyB9IC8qICfuoq4nICovXG4uaWNvbi1hdHRhY2gtMTpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGFmJzsgfSAvKiAn7qKvJyAqL1xuLmljb24tZXllLTE6YmVmb3JlIHsgY29udGVudDogJ1xcZThiMic7IH0gLyogJ+6isicgKi9cbi5pY29uLWF0dGVudGlvbi0xOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4YjMnOyB9IC8qICfuorMnICovXG4uaWNvbi1kb2MtdGV4dC0xOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4YjQnOyB9IC8qICfuorQnICovXG4uaWNvbi1kb2MtdGV4dC1pbnYtMTpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGI1JzsgfSAvKiAn7qK1JyAqL1xuLmljb24tc2hhcmUtMTpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGI3JzsgfSAvKiAn7qK3JyAqL1xuLmljb24tc2hhcmVhYmxlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4YjgnOyB9IC8qICfuorgnICovXG4uaWNvbi1jY3ctMTpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGNjJzsgfSAvKiAn7qOMJyAqL1xuLmljb24tY3ctMTpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGNkJzsgfSAvKiAn7qONJyAqL1xuLmljb24tYXJyb3dzLWNjdzpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGNlJzsgfSAvKiAn7qOOJyAqL1xuLmljb24tcGxheS0xOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4Y2YnOyB9IC8qICfuo48nICovXG4uaWNvbi1wYXVzZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGQwJzsgfSAvKiAn7qOQJyAqL1xuLmljb24tcmVjb3JkOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4ZDEnOyB9IC8qICfuo5EnICovXG4uaWNvbi1zdG9wLTE6YmVmb3JlIHsgY29udGVudDogJ1xcZThkMic7IH0gLyogJ+6jkicgKi9cbi5pY29uLXN3aXRjaDpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGQzJzsgfSAvKiAn7qOTJyAqL1xuLmljb24tbG9vcDpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGQ0JzsgfSAvKiAn7qOUJyAqL1xuLmljb24tY2xvdWQtMTpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGQ1JzsgfSAvKiAn7qOVJyAqL1xuLmljb24tY2VydGlmaWNhdGUtb3V0bGluZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGRiJzsgfSAvKiAn7qObJyAqL1xuLmljb24tY2VydGlmaWNhdGUtMTpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGRjJzsgfSAvKiAn7qOcJyAqL1xuLmljb24td2luZG93cy0xOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4ZGQnOyB9IC8qICfuo50nICovXG4uaWNvbi1zcGluNTpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGRmJzsgfSAvKiAn7qOfJyAqL1xuLmljb24tc3BpbjI6YmVmb3JlIHsgY29udGVudDogJ1xcZThlMCc7IH0gLyogJ+6joCcgKi9cbi5pY29uLXBpY3R1cmU6YmVmb3JlIHsgY29udGVudDogJ1xcZThlNCc7IH0gLyogJ+6jpCcgKi9cbi5pY29uLW1lbnU6YmVmb3JlIHsgY29udGVudDogJ1xcZThlNSc7IH0gLyogJ+6jpScgKi9cbi5pY29uLXNsaWRlcnM6YmVmb3JlIHsgY29udGVudDogJ1xcZThlNic7IH0gLyogJ+6jpicgKi9cbi5pY29uLWxpc3QtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4ZTcnOyB9IC8qICfuo6cnICovXG4uaWNvbi1hanVzdDpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGU4JzsgfSAvKiAn7qOoJyAqL1xuLmljb24tY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4ZTknOyB9IC8qICfuo6knICovXG4uaWNvbi1jaXJjbGUtZW1wdHk6YmVmb3JlIHsgY29udGVudDogJ1xcZThlYSc7IH0gLyogJ+6jqicgKi9cbi5pY29uLWNpcmNsZS1ub3RjaDpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGVjJzsgfSAvKiAn7qOsJyAqL1xuLmljb24tZm9yazpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGVkJzsgfSAvKiAn7qOtJyAqL1xuLmljb24tc2l0ZW1hcDpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGVlJzsgfSAvKiAn7qOuJyAqL1xuLmljb24tc3RldGhvc2NvcGU6YmVmb3JlIHsgY29udGVudDogJ1xcZThlZic7IH0gLyogJ+6jrycgKi9cbi5pY29uLXNoaWVsZDpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGYwJzsgfSAvKiAn7qOwJyAqL1xuLmljb24taGVhcnQtMTpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGYxJzsgfSAvKiAn7qOxJyAqL1xuLmljb24tc2VhcmNoLTE6YmVmb3JlIHsgY29udGVudDogJ1xcZThmMic7IH0gLyogJ+6jsicgKi9cbi5pY29uLW1lbnUtMTpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGYzJzsgfSAvKiAn7qOzJyAqL1xuLmljb24tYmFjazpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGY2JzsgfSAvKiAn7qO2JyAqL1xuLmljb24taG9tZS0xOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4ZjcnOyB9IC8qICfuo7cnICovXG4uaWNvbi1wZW5jaWwtMTpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGY4JzsgfSAvKiAn7qO4JyAqL1xuLmljb24tbG9jYXRpb24tMTpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGY5JzsgfSAvKiAn7qO5JyAqL1xuLmljb24tbG9nb3V0LTE6YmVmb3JlIHsgY29udGVudDogJ1xcZThmYic7IH0gLyogJ+6juycgKi9cbi5pY29uLWxvZ2luLTE6YmVmb3JlIHsgY29udGVudDogJ1xcZThmYyc7IH0gLyogJ+6jvCcgKi9cbi5pY29uLXB1Ymxpc2g6YmVmb3JlIHsgY29udGVudDogJ1xcZThmZCc7IH0gLyogJ+6jvScgKi9cbi5pY29uLXdpbmRvdzpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGZlJzsgfSAvKiAn7qO+JyAqL1xuLmljb24tY2hhcnQtcGllOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4ZmYnOyB9IC8qICfuo78nICovXG4uaWNvbi1jaGFydC1saW5lOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU5MDAnOyB9IC8qICfupIAnICovXG4uaWNvbi1jaGFydC1hcmVhOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU5MDEnOyB9IC8qICfupIEnICovXG4uaWNvbi1jaGFydC1iYXItMTpiZWZvcmUgeyBjb250ZW50OiAnXFxlOTAyJzsgfSAvKiAn7qSCJyAqL1xuLmljb24tYWlyOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU5MDUnOyB9IC8qICfupIUnICovXG4uaWNvbi1kYXRhYmFzZS0xOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU5MDYnOyB9IC8qICfupIYnICovXG4uaWNvbi1mbG93LWNhc2NhZGU6YmVmb3JlIHsgY29udGVudDogJ1xcZTkwNyc7IH0gLyogJ+6khycgKi9cbi5pY29uLWZsb3ctdHJlZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlOTA4JzsgfSAvKiAn7qSIJyAqL1xuLmljb24tZmxvdy1saW5lOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU5MDknOyB9IC8qICfupIknICovXG4uaWNvbi1mbG93LWJyYW5jaDpiZWZvcmUgeyBjb250ZW50OiAnXFxlOTBhJzsgfSAvKiAn7qSKJyAqL1xuLmljb24tZmxvdy1wYXJhbGxlbC0xOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU5MGYnOyB9IC8qICfupI8nICovXG4uaWNvbi1kb3Q6YmVmb3JlIHsgY29udGVudDogJ1xcZTkxMCc7IH0gLyogJ+6kkCcgKi9cbi5pY29uLWRvdC0zOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU5MTEnOyB9IC8qICfupJEnICovXG4uaWNvbi1jZDpiZWZvcmUgeyBjb250ZW50OiAnXFxlOTEyJzsgfSAvKiAn7qSSJyAqL1xuLmljb24tYmFjay1pbi10aW1lOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU5MTMnOyB9IC8qICfupJMnICovXG4uaWNvbi1saXN0OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU5MTQnOyB9IC8qICfupJQnICovXG4uaWNvbi1saXN0LWFkZDpiZWZvcmUgeyBjb250ZW50OiAnXFxlOTE1JzsgfSAvKiAn7qSVJyAqL1xuLmljb24tcHJvZ3Jlc3MtMDpiZWZvcmUgeyBjb250ZW50OiAnXFxlOTE5JzsgfSAvKiAn7qSZJyAqL1xuLmljb24tcGVuY2lsLTI6YmVmb3JlIHsgY29udGVudDogJ1xcZTkxZCc7IH0gLyogJ+6knScgKi9cbi5pY29uLWNvZy0yOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU5MWYnOyB9IC8qICfupJ8nICovXG4uaWNvbi1jb2ctY2lyY2xlZDpiZWZvcmUgeyBjb250ZW50OiAnXFxlOTIwJzsgfSAvKiAn7qSgJyAqL1xuLmljb24tY29nczpiZWZvcmUgeyBjb250ZW50OiAnXFxlOTIxJzsgfSAvKiAn7qShJyAqL1xuLmljb24tY2FsZW5kYXItMTpiZWZvcmUgeyBjb250ZW50OiAnXFxlOTI0JzsgfSAvKiAn7qSkJyAqL1xuLmljb24tZG9jLW5ldzpiZWZvcmUgeyBjb250ZW50OiAnXFxlOTI1JzsgfSAvKiAn7qSlJyAqLyIsIi8qXG4gICBBbmltYXRpb24gZXhhbXBsZSwgZm9yIHNwaW5uZXJzXG4qL1xuLmFuaW1hdGUtc3BpbiB7XG4gIEBpbmNsdWRlIGFuaW1hdGlvbihzcGluIDJzIGluZmluaXRlIGxpbmVhcik7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbkBrZXlmcmFtZXMgc3BpbiB7XG4gIDAlIHtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDBkZWcpKTtcbiAgfVxuICAxMDAlIHtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDM1OWRlZykpO1xuICB9XG59IiwiLy8gVmVuZG9yIFByZWZpeGVzXG4vL1xuLy8gQWxsIHZlbmRvciBtaXhpbnMgYXJlIGRlcHJlY2F0ZWQgYXMgb2YgdjMuMi4wIGR1ZSB0byB0aGUgaW50cm9kdWN0aW9uIG9mXG4vLyBBdXRvcHJlZml4ZXIgaW4gb3VyIEdydW50ZmlsZS4gVGhleSB3aWxsIGJlIHJlbW92ZWQgaW4gdjQuXG5cbi8vIC0gQW5pbWF0aW9uc1xuLy8gLSBCYWNrZmFjZSB2aXNpYmlsaXR5XG4vLyAtIEJveCBzaGFkb3dcbi8vIC0gQm94IHNpemluZ1xuLy8gLSBDb250ZW50IGNvbHVtbnNcbi8vIC0gSHlwaGVuc1xuLy8gLSBQbGFjZWhvbGRlciB0ZXh0XG4vLyAtIFRyYW5zZm9ybWF0aW9uc1xuLy8gLSBUcmFuc2l0aW9uc1xuLy8gLSBVc2VyIFNlbGVjdFxuXG5cbi8vIEFuaW1hdGlvbnNcbkBtaXhpbiBhbmltYXRpb24oJGFuaW1hdGlvbikge1xuICAtd2Via2l0LWFuaW1hdGlvbjogJGFuaW1hdGlvbjtcbiAgICAgICAtby1hbmltYXRpb246ICRhbmltYXRpb247XG4gICAgICAgICAgYW5pbWF0aW9uOiAkYW5pbWF0aW9uO1xufVxuQG1peGluIGFuaW1hdGlvbi1uYW1lKCRuYW1lKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ICRuYW1lO1xuICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiAkbmFtZTtcbn1cbkBtaXhpbiBhbmltYXRpb24tZHVyYXRpb24oJGR1cmF0aW9uKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XG4gICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XG59XG5AbWl4aW4gYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbigkdGltaW5nLWZ1bmN0aW9uKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogJHRpbWluZy1mdW5jdGlvbjtcbiAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdGltaW5nLWZ1bmN0aW9uO1xufVxuQG1peGluIGFuaW1hdGlvbi1kZWxheSgkZGVsYXkpIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6ICRkZWxheTtcbiAgICAgICAgICBhbmltYXRpb24tZGVsYXk6ICRkZWxheTtcbn1cbkBtaXhpbiBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50KCRpdGVyYXRpb24tY291bnQpIHtcbiAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAkaXRlcmF0aW9uLWNvdW50O1xuICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6ICRpdGVyYXRpb24tY291bnQ7XG59XG5AbWl4aW4gYW5pbWF0aW9uLWRpcmVjdGlvbigkZGlyZWN0aW9uKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbiAgICAgICAgICBhbmltYXRpb24tZGlyZWN0aW9uOiAkZGlyZWN0aW9uO1xufVxuQG1peGluIGFuaW1hdGlvbi1maWxsLW1vZGUoJGZpbGwtbW9kZSkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6ICRmaWxsLW1vZGU7XG4gICAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogJGZpbGwtbW9kZTtcbn1cblxuLy8gQmFja2ZhY2UgdmlzaWJpbGl0eVxuLy8gUHJldmVudCBicm93c2VycyBmcm9tIGZsaWNrZXJpbmcgd2hlbiB1c2luZyBDU1MgM0QgdHJhbnNmb3Jtcy5cbi8vIERlZmF1bHQgdmFsdWUgaXMgYHZpc2libGVgLCBidXQgY2FuIGJlIGNoYW5nZWQgdG8gYGhpZGRlbmBcblxuQG1peGluIGJhY2tmYWNlLXZpc2liaWxpdHkoJHZpc2liaWxpdHkpe1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6ICR2aXNpYmlsaXR5O1xuICAgICAtbW96LWJhY2tmYWNlLXZpc2liaWxpdHk6ICR2aXNpYmlsaXR5O1xuICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6ICR2aXNpYmlsaXR5O1xufVxuXG4vLyBEcm9wIHNoYWRvd3Ncbi8vXG4vLyBOb3RlOiBEZXByZWNhdGVkIGAuYm94LXNoYWRvdygpYCBhcyBvZiB2My4xLjAgc2luY2UgYWxsIG9mIEJvb3RzdHJhcCdzXG4vLyBzdXBwb3J0ZWQgYnJvd3NlcnMgdGhhdCBoYXZlIGJveCBzaGFkb3cgY2FwYWJpbGl0aWVzIG5vdyBzdXBwb3J0IGl0LlxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdzsgLy8gaU9TIDw0LjMgJiBBbmRyb2lkIDw0LjFcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG4vLyBCb3ggc2l6aW5nXG5AbWl4aW4gYm94LXNpemluZygkYm94bW9kZWwpIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkYm94bW9kZWw7XG4gICAgIC1tb3otYm94LXNpemluZzogJGJveG1vZGVsO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRib3htb2RlbDtcbn1cblxuLy8gQ1NTMyBDb250ZW50IENvbHVtbnNcbkBtaXhpbiBjb250ZW50LWNvbHVtbnMoJGNvbHVtbi1jb3VudCwgJGNvbHVtbi1nYXA6ICRncmlkLWd1dHRlci13aWR0aCkge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJGNvbHVtbi1jb3VudDtcbiAgICAgLW1vei1jb2x1bW4tY291bnQ6ICRjb2x1bW4tY291bnQ7XG4gICAgICAgICAgY29sdW1uLWNvdW50OiAkY29sdW1uLWNvdW50O1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICRjb2x1bW4tZ2FwO1xuICAgICAtbW96LWNvbHVtbi1nYXA6ICRjb2x1bW4tZ2FwO1xuICAgICAgICAgIGNvbHVtbi1nYXA6ICRjb2x1bW4tZ2FwO1xufVxuXG4vLyBPcHRpb25hbCBoeXBoZW5hdGlvblxuQG1peGluIGh5cGhlbnMoJG1vZGU6IGF1dG8pIHtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAtd2Via2l0LWh5cGhlbnM6ICRtb2RlO1xuICAgICAtbW96LWh5cGhlbnM6ICRtb2RlO1xuICAgICAgLW1zLWh5cGhlbnM6ICRtb2RlOyAvLyBJRTEwK1xuICAgICAgIC1vLWh5cGhlbnM6ICRtb2RlO1xuICAgICAgICAgIGh5cGhlbnM6ICRtb2RlO1xufVxuXG4vLyBQbGFjZWhvbGRlciB0ZXh0XG5AbWl4aW4gcGxhY2Vob2xkZXIoJGNvbG9yOiAkaW5wdXQtY29sb3ItcGxhY2Vob2xkZXIpIHtcbiAgLy8gRmlyZWZveFxuICAmOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIG9wYWNpdHk6IDE7IC8vIE92ZXJyaWRlIEZpcmVmb3gncyB1bnVzdWFsIGRlZmF1bHQgb3BhY2l0eTsgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9wdWxsLzExNTI2XG4gIH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjogJGNvbG9yOyB9IC8vIEludGVybmV0IEV4cGxvcmVyIDEwK1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyICB7IGNvbG9yOiAkY29sb3I7IH0gLy8gU2FmYXJpIGFuZCBDaHJvbWVcbn1cblxuLy8gVHJhbnNmb3JtYXRpb25zXG5AbWl4aW4gc2NhbGUoJHJhdGlvLi4uKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgkcmF0aW8pO1xuICAgICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoJHJhdGlvKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlKCRyYXRpbyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgkcmF0aW8pO1xufVxuXG5AbWl4aW4gc2NhbGVYKCRyYXRpbykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKCRyYXRpbyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZVgoJHJhdGlvKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlWCgkcmF0aW8pO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKCRyYXRpbyk7XG59XG5AbWl4aW4gc2NhbGVZKCRyYXRpbykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVZKCRyYXRpbyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZVkoJHJhdGlvKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlWSgkcmF0aW8pO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVZKCRyYXRpbyk7XG59XG5AbWl4aW4gc2tldygkeCwgJHkpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKCR4KSBza2V3WSgkeSk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBza2V3WCgkeCkgc2tld1koJHkpOyAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy80ODg1OyBJRTkrXG4gICAgICAgLW8tdHJhbnNmb3JtOiBza2V3WCgkeCkgc2tld1koJHkpO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2tld1goJHgpIHNrZXdZKCR5KTtcbn1cbkBtaXhpbiB0cmFuc2xhdGUoJHgsICR5KSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoJHgsICR5KTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgkeCwgJHkpOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKCR4LCAkeSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoJHgsICR5KTtcbn1cbkBtaXhpbiB0cmFuc2xhdGUzZCgkeCwgJHksICR6KSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgkeCwgJHksICR6KTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKCR4LCAkeSwgJHopO1xufVxuQG1peGluIHJvdGF0ZSgkZGVncmVlcykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKCRkZWdyZWVzKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgkZGVncmVlcyk7IC8vIElFOSBvbmx5XG4gICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoJGRlZ3JlZXMpO1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKCRkZWdyZWVzKTtcbn1cbkBtaXhpbiByb3RhdGVYKCRkZWdyZWVzKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVYKCRkZWdyZWVzKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZVgoJGRlZ3JlZXMpOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogcm90YXRlWCgkZGVncmVlcyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVYKCRkZWdyZWVzKTtcbn1cbkBtaXhpbiByb3RhdGVZKCRkZWdyZWVzKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVZKCRkZWdyZWVzKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZVkoJGRlZ3JlZXMpOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogcm90YXRlWSgkZGVncmVlcyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKCRkZWdyZWVzKTtcbn1cbkBtaXhpbiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpIHtcbiAgLXdlYmtpdC1wZXJzcGVjdGl2ZTogJHBlcnNwZWN0aXZlO1xuICAgICAtbW96LXBlcnNwZWN0aXZlOiAkcGVyc3BlY3RpdmU7XG4gICAgICAgICAgcGVyc3BlY3RpdmU6ICRwZXJzcGVjdGl2ZTtcbn1cbkBtaXhpbiBwZXJzcGVjdGl2ZS1vcmlnaW4oJHBlcnNwZWN0aXZlKSB7XG4gIC13ZWJraXQtcGVyc3BlY3RpdmUtb3JpZ2luOiAkcGVyc3BlY3RpdmU7XG4gICAgIC1tb3otcGVyc3BlY3RpdmUtb3JpZ2luOiAkcGVyc3BlY3RpdmU7XG4gICAgICAgICAgcGVyc3BlY3RpdmUtb3JpZ2luOiAkcGVyc3BlY3RpdmU7XG59XG5AbWl4aW4gdHJhbnNmb3JtLW9yaWdpbigkb3JpZ2luKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogJG9yaWdpbjtcbiAgICAgLW1vei10cmFuc2Zvcm0tb3JpZ2luOiAkb3JpZ2luO1xuICAgICAgLW1zLXRyYW5zZm9ybS1vcmlnaW46ICRvcmlnaW47IC8vIElFOSBvbmx5XG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogJG9yaWdpbjtcbn1cblxuXG4vLyBUcmFuc2l0aW9uc1xuXG5AbWl4aW4gdHJhbnNpdGlvbigkdHJhbnNpdGlvbi4uLikge1xuICAtd2Via2l0LXRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xuICAgICAgIC1vLXRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xuICAgICAgICAgIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xufVxuQG1peGluIHRyYW5zaXRpb24tcHJvcGVydHkoJHRyYW5zaXRpb24tcHJvcGVydHkuLi4pIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiAkdHJhbnNpdGlvbi1wcm9wZXJ0eTtcbiAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiAkdHJhbnNpdGlvbi1wcm9wZXJ0eTtcbn1cbkBtaXhpbiB0cmFuc2l0aW9uLWRlbGF5KCR0cmFuc2l0aW9uLWRlbGF5KSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogJHRyYW5zaXRpb24tZGVsYXk7XG4gICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogJHRyYW5zaXRpb24tZGVsYXk7XG59XG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbigkdHJhbnNpdGlvbi1kdXJhdGlvbi4uLikge1xuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246ICR0cmFuc2l0aW9uLWR1cmF0aW9uO1xuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246ICR0cmFuc2l0aW9uLWR1cmF0aW9uO1xufVxuQG1peGluIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKCR0aW1pbmctZnVuY3Rpb24pIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJHRpbWluZy1mdW5jdGlvbjtcbiAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJHRpbWluZy1mdW5jdGlvbjtcbn1cbkBtaXhpbiB0cmFuc2l0aW9uLXRyYW5zZm9ybSgkdHJhbnNpdGlvbi4uLikge1xuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtICR0cmFuc2l0aW9uO1xuICAgICAtbW96LXRyYW5zaXRpb246IC1tb3otdHJhbnNmb3JtICR0cmFuc2l0aW9uO1xuICAgICAgIC1vLXRyYW5zaXRpb246IC1vLXRyYW5zZm9ybSAkdHJhbnNpdGlvbjtcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJHRyYW5zaXRpb247XG59XG5cblxuLy8gVXNlciBzZWxlY3Rcbi8vIEZvciBzZWxlY3RpbmcgdGV4dCBvbiB0aGUgcGFnZVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdCkge1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0OyAvLyBJRTEwK1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuIiwiQGltcG9ydCBcIi4uL3N1cHBvcnRcIjtcblxuLy8gVGhpcyBtaXhpbiBwcm92aWRlcyBiYXNpYyBzdXBwb3J0IGZvciBDU1MzIHByb3BlcnRpZXMgYW5kXG4vLyB0aGVpciBjb3JyZXNwb25kaW5nIGV4cGVyaW1lbnRhbCBDU1MyIHByb3BlcnRpZXMgd2hlblxuLy8gdGhlIGltcGxlbWVudGF0aW9ucyBhcmUgaWRlbnRpY2FsIGV4Y2VwdCBmb3IgdGhlIHByb3BlcnR5XG4vLyBwcmVmaXguXG5AbWl4aW4gZXhwZXJpbWVudGFsKCRwcm9wZXJ0eSwgJHZhbHVlLFxuICAkbW96ICAgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEsXG4gICR3ZWJraXQgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0LFxuICAkbyAgICAgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhLFxuICAkbXMgICAgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1pY3Jvc29mdCxcbiAgJGtodG1sICAgIDogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1raHRtbCxcbiAgJG9mZmljaWFsIDogdHJ1ZVxuKSB7XG4gIEBpZiAkd2Via2l0ICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQgICAgeyAtd2Via2l0LSN7JHByb3BlcnR5fSA6ICR2YWx1ZTsgfVxuICBAaWYgJGtodG1sICAgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Ita2h0bWwgICAgIHsgIC1raHRtbC0jeyRwcm9wZXJ0eX0gOiAkdmFsdWU7IH1cbiAgQGlmICRtb3ogICAgIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEgICB7ICAgIC1tb3otI3skcHJvcGVydHl9IDogJHZhbHVlOyB9XG4gIEBpZiAkbXMgICAgICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1taWNyb3NvZnQgeyAgICAgLW1zLSN7JHByb3BlcnR5fSA6ICR2YWx1ZTsgfVxuICBAaWYgJG8gICAgICAgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEgICAgIHsgICAgICAtby0jeyRwcm9wZXJ0eX0gOiAkdmFsdWU7IH1cbiAgQGlmICRvZmZpY2lhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgICAgICAgI3skcHJvcGVydHl9IDogJHZhbHVlOyB9XG59XG5cbi8vIFNhbWUgYXMgZXhwZXJpbWVudGFsKCksIGJ1dCBmb3IgY2FzZXMgd2hlbiB0aGUgcHJvcGVydHkgaXMgdGhlIHNhbWUgYW5kIHRoZSB2YWx1ZSBpcyB2ZW5kb3JpemVkXG5AbWl4aW4gZXhwZXJpbWVudGFsLXZhbHVlKCRwcm9wZXJ0eSwgJHZhbHVlLFxuICAkbW96ICAgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEsXG4gICR3ZWJraXQgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0LFxuICAkbyAgICAgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhLFxuICAkbXMgICAgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1pY3Jvc29mdCxcbiAgJGtodG1sICAgIDogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1raHRtbCxcbiAgJG9mZmljaWFsIDogdHJ1ZVxuKSB7XG4gIEBpZiAkd2Via2l0ICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQgICAgeyAjeyRwcm9wZXJ0eX0gOiAtd2Via2l0LSN7JHZhbHVlfTsgfVxuICBAaWYgJGtodG1sICAgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Ita2h0bWwgICAgIHsgI3skcHJvcGVydHl9IDogIC1raHRtbC0jeyR2YWx1ZX07IH1cbiAgQGlmICRtb3ogICAgIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEgICB7ICN7JHByb3BlcnR5fSA6ICAgIC1tb3otI3skdmFsdWV9OyB9XG4gIEBpZiAkbXMgICAgICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1taWNyb3NvZnQgeyAjeyRwcm9wZXJ0eX0gOiAgICAgLW1zLSN7JHZhbHVlfTsgfVxuICBAaWYgJG8gICAgICAgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEgICAgIHsgI3skcHJvcGVydHl9IDogICAgICAtby0jeyR2YWx1ZX07IH1cbiAgQGlmICRvZmZpY2lhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICN7JHByb3BlcnR5fSA6ICAgICAgICAgI3skdmFsdWV9OyB9XG59XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */
\ No newline at end of file
diff --git a/ui/new-ui-samples/css/main.css b/ui/new-ui-samples/css/main.css
new file mode 100755
index 0000000..c544790
--- /dev/null
+++ b/ui/new-ui-samples/css/main.css
@@ -0,0 +1,9157 @@
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/* Reset */
+html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr,
+address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub,
+sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table,
+caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure,
+figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark,
+audio, video, button {
+  margin: 0;
+  padding: 0;
+  border: 0;
+}
+
+article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
+  display: block;
+}
+
+ol, ul {
+  list-style: none;
+}
+
+table {
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+
+img {
+  border: none;
+}
+
+a {
+  text-decoration: none;
+}
+
+a:active, a:hover {
+  outline: none;
+}
+
+a label {
+  cursor: pointer;
+}
+
+/*
+ * A partial implementation of the Ruby list functions from Compass:
+ * https://github.com/Compass/compass/blob/stable/lib/compass/sass_extensions/functions/lists.rb
+ */
+/*
+ * A partial implementation of the Ruby constants functions from Compass:
+ * https://github.com/Compass/compass/blob/stable/lib/compass/sass_extensions/functions/constants.rb
+ */
+/*
+ * A partial implementation of the Ruby display functions from Compass:
+ * https://github.com/Compass/compass/blob/stable/core/lib/compass/core/sass_extensions/functions/display.rb
+ */
+/*!
+ * Bootstrap v3.3.5 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
+html {
+  font-family: sans-serif;
+  -ms-text-size-adjust: 100%;
+  -webkit-text-size-adjust: 100%;
+}
+
+body {
+  margin: 0;
+}
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+menu,
+nav,
+section,
+summary {
+  display: block;
+}
+
+audio,
+canvas,
+progress,
+video {
+  display: inline-block;
+  vertical-align: baseline;
+}
+
+audio:not([controls]) {
+  display: none;
+  height: 0;
+}
+
+[hidden],
+template {
+  display: none;
+}
+
+a {
+  background-color: transparent;
+}
+
+a:active,
+a:hover {
+  outline: 0;
+}
+
+abbr[title] {
+  border-bottom: 1px dotted;
+}
+
+b,
+strong {
+  font-weight: bold;
+}
+
+dfn {
+  font-style: italic;
+}
+
+h1 {
+  font-size: 2em;
+  margin: 0.67em 0;
+}
+
+mark {
+  background: #ff0;
+  color: #000;
+}
+
+small {
+  font-size: 80%;
+}
+
+sub,
+sup {
+  font-size: 75%;
+  line-height: 0;
+  position: relative;
+  vertical-align: baseline;
+}
+
+sup {
+  top: -0.5em;
+}
+
+sub {
+  bottom: -0.25em;
+}
+
+img {
+  border: 0;
+}
+
+svg:not(:root) {
+  overflow: hidden;
+}
+
+figure {
+  margin: 1em 40px;
+}
+
+hr {
+  box-sizing: content-box;
+  height: 0;
+}
+
+pre {
+  overflow: auto;
+}
+
+code,
+kbd,
+pre,
+samp {
+  font-family: monospace, monospace;
+  font-size: 1em;
+}
+
+button,
+input,
+optgroup,
+select,
+textarea {
+  color: inherit;
+  font: inherit;
+  margin: 0;
+}
+
+button {
+  overflow: visible;
+}
+
+button,
+select {
+  text-transform: none;
+}
+
+button,
+html input[type="button"], input[type="reset"],
+input[type="submit"] {
+  -webkit-appearance: button;
+  cursor: pointer;
+}
+
+button[disabled],
+html input[disabled] {
+  cursor: default;
+}
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+  border: 0;
+  padding: 0;
+}
+
+input {
+  line-height: normal;
+}
+
+input[type="checkbox"],
+input[type="radio"] {
+  box-sizing: border-box;
+  padding: 0;
+}
+
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+  height: auto;
+}
+
+input[type="search"] {
+  -webkit-appearance: textfield;
+  box-sizing: content-box;
+}
+
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+  -webkit-appearance: none;
+}
+
+fieldset {
+  border: 1px solid #c0c0c0;
+  margin: 0 2px;
+  padding: 0.35em 0.625em 0.75em;
+}
+
+legend {
+  border: 0;
+  padding: 0;
+}
+
+textarea {
+  overflow: auto;
+}
+
+optgroup {
+  font-weight: bold;
+}
+
+table {
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+
+td,
+th {
+  padding: 0;
+}
+
+/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
+ at media print {
+  *,
+  *:before,
+  *:after {
+    background: transparent !important;
+    color: #000 !important;
+    box-shadow: none !important;
+    text-shadow: none !important;
+  }
+  a,
+  a:visited {
+    text-decoration: underline;
+  }
+  a[href]:after {
+    content: " (" attr(href) ")";
+  }
+  abbr[title]:after {
+    content: " (" attr(title) ")";
+  }
+  a[href^="#"]:after,
+  a[href^="javascript:"]:after {
+    content: "";
+  }
+  pre,
+  blockquote {
+    border: 1px solid #999;
+    page-break-inside: avoid;
+  }
+  thead {
+    display: table-header-group;
+  }
+  tr,
+  img {
+    page-break-inside: avoid;
+  }
+  img {
+    max-width: 100% !important;
+  }
+  p,
+  h2,
+  h3 {
+    orphans: 3;
+    widows: 3;
+  }
+  h2,
+  h3 {
+    page-break-after: avoid;
+  }
+  .navbar {
+    display: none;
+  }
+  .btn > .caret,
+  .dropup > .btn > .caret {
+    border-top-color: #000 !important;
+  }
+  .label {
+    border: 1px solid #000;
+  }
+  .table {
+    border-collapse: collapse !important;
+  }
+  .table td,
+  .table th {
+    background-color: #fff !important;
+  }
+  .table-bordered th,
+  .table-bordered td {
+    border: 1px solid #ddd !important;
+  }
+}
+
+ at font-face {
+  font-family: 'Glyphicons Halflings';
+  src: url("../fonts/glyphicons-halflings-regular.eot");
+  src: url("../fonts/glyphicons-halflings-regular.eot?#iefix") format("embedded-opentype"), url("../fonts/glyphicons-halflings-regular.woff2") format("woff2"), url("../fonts/glyphicons-halflings-regular.woff") format("woff"), url("../fonts/glyphicons-halflings-regular.ttf") format("truetype"), url("../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular") format("svg");
+}
+
+.glyphicon {
+  position: relative;
+  top: 1px;
+  display: inline-block;
+  font-family: 'Glyphicons Halflings';
+  font-style: normal;
+  font-weight: normal;
+  line-height: 1;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+.glyphicon-asterisk:before {
+  content: "\2a";
+}
+
+.glyphicon-plus:before {
+  content: "\2b";
+}
+
+.glyphicon-euro:before,
+.glyphicon-eur:before {
+  content: "\20ac";
+}
+
+.glyphicon-minus:before {
+  content: "\2212";
+}
+
+.glyphicon-cloud:before {
+  content: "\2601";
+}
+
+.glyphicon-envelope:before {
+  content: "\2709";
+}
+
+.glyphicon-pencil:before {
+  content: "\270f";
+}
+
+.glyphicon-glass:before {
+  content: "\e001";
+}
+
+.glyphicon-music:before {
+  content: "\e002";
+}
+
+.glyphicon-search:before {
+  content: "\e003";
+}
+
+.glyphicon-heart:before {
+  content: "\e005";
+}
+
+.glyphicon-star:before {
+  content: "\e006";
+}
+
+.glyphicon-star-empty:before {
+  content: "\e007";
+}
+
+.glyphicon-user:before {
+  content: "\e008";
+}
+
+.glyphicon-film:before {
+  content: "\e009";
+}
+
+.glyphicon-th-large:before {
+  content: "\e010";
+}
+
+.glyphicon-th:before {
+  content: "\e011";
+}
+
+.glyphicon-th-list:before {
+  content: "\e012";
+}
+
+.glyphicon-ok:before {
+  content: "\e013";
+}
+
+.glyphicon-remove:before {
+  content: "\e014";
+}
+
+.glyphicon-zoom-in:before {
+  content: "\e015";
+}
+
+.glyphicon-zoom-out:before {
+  content: "\e016";
+}
+
+.glyphicon-off:before {
+  content: "\e017";
+}
+
+.glyphicon-signal:before {
+  content: "\e018";
+}
+
+.glyphicon-cog:before {
+  content: "\e019";
+}
+
+.glyphicon-trash:before {
+  content: "\e020";
+}
+
+.glyphicon-home:before {
+  content: "\e021";
+}
+
+.glyphicon-file:before {
+  content: "\e022";
+}
+
+.glyphicon-time:before {
+  content: "\e023";
+}
+
+.glyphicon-road:before {
+  content: "\e024";
+}
+
+.glyphicon-download-alt:before {
+  content: "\e025";
+}
+
+.glyphicon-download:before {
+  content: "\e026";
+}
+
+.glyphicon-upload:before {
+  content: "\e027";
+}
+
+.glyphicon-inbox:before {
+  content: "\e028";
+}
+
+.glyphicon-play-circle:before {
+  content: "\e029";
+}
+
+.glyphicon-repeat:before {
+  content: "\e030";
+}
+
+.glyphicon-refresh:before {
+  content: "\e031";
+}
+
+.glyphicon-list-alt:before {
+  content: "\e032";
+}
+
+.glyphicon-lock:before {
+  content: "\e033";
+}
+
+.glyphicon-flag:before {
+  content: "\e034";
+}
+
+.glyphicon-headphones:before {
+  content: "\e035";
+}
+
+.glyphicon-volume-off:before {
+  content: "\e036";
+}
+
+.glyphicon-volume-down:before {
+  content: "\e037";
+}
+
+.glyphicon-volume-up:before {
+  content: "\e038";
+}
+
+.glyphicon-qrcode:before {
+  content: "\e039";
+}
+
+.glyphicon-barcode:before {
+  content: "\e040";
+}
+
+.glyphicon-tag:before {
+  content: "\e041";
+}
+
+.glyphicon-tags:before {
+  content: "\e042";
+}
+
+.glyphicon-book:before {
+  content: "\e043";
+}
+
+.glyphicon-bookmark:before {
+  content: "\e044";
+}
+
+.glyphicon-print:before {
+  content: "\e045";
+}
+
+.glyphicon-camera:before {
+  content: "\e046";
+}
+
+.glyphicon-font:before {
+  content: "\e047";
+}
+
+.glyphicon-bold:before {
+  content: "\e048";
+}
+
+.glyphicon-italic:before {
+  content: "\e049";
+}
+
+.glyphicon-text-height:before {
+  content: "\e050";
+}
+
+.glyphicon-text-width:before {
+  content: "\e051";
+}
+
+.glyphicon-align-left:before {
+  content: "\e052";
+}
+
+.glyphicon-align-center:before {
+  content: "\e053";
+}
+
+.glyphicon-align-right:before {
+  content: "\e054";
+}
+
+.glyphicon-align-justify:before {
+  content: "\e055";
+}
+
+.glyphicon-list:before {
+  content: "\e056";
+}
+
+.glyphicon-indent-left:before {
+  content: "\e057";
+}
+
+.glyphicon-indent-right:before {
+  content: "\e058";
+}
+
+.glyphicon-facetime-video:before {
+  content: "\e059";
+}
+
+.glyphicon-picture:before {
+  content: "\e060";
+}
+
+.glyphicon-map-marker:before {
+  content: "\e062";
+}
+
+.glyphicon-adjust:before {
+  content: "\e063";
+}
+
+.glyphicon-tint:before {
+  content: "\e064";
+}
+
+.glyphicon-edit:before {
+  content: "\e065";
+}
+
+.glyphicon-share:before {
+  content: "\e066";
+}
+
+.glyphicon-check:before {
+  content: "\e067";
+}
+
+.glyphicon-move:before {
+  content: "\e068";
+}
+
+.glyphicon-step-backward:before {
+  content: "\e069";
+}
+
+.glyphicon-fast-backward:before {
+  content: "\e070";
+}
+
+.glyphicon-backward:before {
+  content: "\e071";
+}
+
+.glyphicon-play:before {
+  content: "\e072";
+}
+
+.glyphicon-pause:before {
+  content: "\e073";
+}
+
+.glyphicon-stop:before {
+  content: "\e074";
+}
+
+.glyphicon-forward:before {
+  content: "\e075";
+}
+
+.glyphicon-fast-forward:before {
+  content: "\e076";
+}
+
+.glyphicon-step-forward:before {
+  content: "\e077";
+}
+
+.glyphicon-eject:before {
+  content: "\e078";
+}
+
+.glyphicon-chevron-left:before {
+  content: "\e079";
+}
+
+.glyphicon-chevron-right:before {
+  content: "\e080";
+}
+
+.glyphicon-plus-sign:before {
+  content: "\e081";
+}
+
+.glyphicon-minus-sign:before {
+  content: "\e082";
+}
+
+.glyphicon-remove-sign:before {
+  content: "\e083";
+}
+
+.glyphicon-ok-sign:before {
+  content: "\e084";
+}
+
+.glyphicon-question-sign:before {
+  content: "\e085";
+}
+
+.glyphicon-info-sign:before {
+  content: "\e086";
+}
+
+.glyphicon-screenshot:before {
+  content: "\e087";
+}
+
+.glyphicon-remove-circle:before {
+  content: "\e088";
+}
+
+.glyphicon-ok-circle:before {
+  content: "\e089";
+}
+
+.glyphicon-ban-circle:before {
+  content: "\e090";
+}
+
+.glyphicon-arrow-left:before {
+  content: "\e091";
+}
+
+.glyphicon-arrow-right:before {
+  content: "\e092";
+}
+
+.glyphicon-arrow-up:before {
+  content: "\e093";
+}
+
+.glyphicon-arrow-down:before {
+  content: "\e094";
+}
+
+.glyphicon-share-alt:before {
+  content: "\e095";
+}
+
+.glyphicon-resize-full:before {
+  content: "\e096";
+}
+
+.glyphicon-resize-small:before {
+  content: "\e097";
+}
+
+.glyphicon-exclamation-sign:before {
+  content: "\e101";
+}
+
+.glyphicon-gift:before {
+  content: "\e102";
+}
+
+.glyphicon-leaf:before {
+  content: "\e103";
+}
+
+.glyphicon-fire:before {
+  content: "\e104";
+}
+
+.glyphicon-eye-open:before {
+  content: "\e105";
+}
+
+.glyphicon-eye-close:before {
+  content: "\e106";
+}
+
+.glyphicon-warning-sign:before {
+  content: "\e107";
+}
+
+.glyphicon-plane:before {
+  content: "\e108";
+}
+
+.glyphicon-calendar:before {
+  content: "\e109";
+}
+
+.glyphicon-random:before {
+  content: "\e110";
+}
+
+.glyphicon-comment:before {
+  content: "\e111";
+}
+
+.glyphicon-magnet:before {
+  content: "\e112";
+}
+
+.glyphicon-chevron-up:before {
+  content: "\e113";
+}
+
+.glyphicon-chevron-down:before {
+  content: "\e114";
+}
+
+.glyphicon-retweet:before {
+  content: "\e115";
+}
+
+.glyphicon-shopping-cart:before {
+  content: "\e116";
+}
+
+.glyphicon-folder-close:before {
+  content: "\e117";
+}
+
+.glyphicon-folder-open:before {
+  content: "\e118";
+}
+
+.glyphicon-resize-vertical:before {
+  content: "\e119";
+}
+
+.glyphicon-resize-horizontal:before {
+  content: "\e120";
+}
+
+.glyphicon-hdd:before {
+  content: "\e121";
+}
+
+.glyphicon-bullhorn:before {
+  content: "\e122";
+}
+
+.glyphicon-bell:before {
+  content: "\e123";
+}
+
+.glyphicon-certificate:before {
+  content: "\e124";
+}
+
+.glyphicon-thumbs-up:before {
+  content: "\e125";
+}
+
+.glyphicon-thumbs-down:before {
+  content: "\e126";
+}
+
+.glyphicon-hand-right:before {
+  content: "\e127";
+}
+
+.glyphicon-hand-left:before {
+  content: "\e128";
+}
+
+.glyphicon-hand-up:before {
+  content: "\e129";
+}
+
+.glyphicon-hand-down:before {
+  content: "\e130";
+}
+
+.glyphicon-circle-arrow-right:before {
+  content: "\e131";
+}
+
+.glyphicon-circle-arrow-left:before {
+  content: "\e132";
+}
+
+.glyphicon-circle-arrow-up:before {
+  content: "\e133";
+}
+
+.glyphicon-circle-arrow-down:before {
+  content: "\e134";
+}
+
+.glyphicon-globe:before {
+  content: "\e135";
+}
+
+.glyphicon-wrench:before {
+  content: "\e136";
+}
+
+.glyphicon-tasks:before {
+  content: "\e137";
+}
+
+.glyphicon-filter:before {
+  content: "\e138";
+}
+
+.glyphicon-briefcase:before {
+  content: "\e139";
+}
+
+.glyphicon-fullscreen:before {
+  content: "\e140";
+}
+
+.glyphicon-dashboard:before {
+  content: "\e141";
+}
+
+.glyphicon-paperclip:before {
+  content: "\e142";
+}
+
+.glyphicon-heart-empty:before {
+  content: "\e143";
+}
+
+.glyphicon-link:before {
+  content: "\e144";
+}
+
+.glyphicon-phone:before {
+  content: "\e145";
+}
+
+.glyphicon-pushpin:before {
+  content: "\e146";
+}
+
+.glyphicon-usd:before {
+  content: "\e148";
+}
+
+.glyphicon-gbp:before {
+  content: "\e149";
+}
+
+.glyphicon-sort:before {
+  content: "\e150";
+}
+
+.glyphicon-sort-by-alphabet:before {
+  content: "\e151";
+}
+
+.glyphicon-sort-by-alphabet-alt:before {
+  content: "\e152";
+}
+
+.glyphicon-sort-by-order:before {
+  content: "\e153";
+}
+
+.glyphicon-sort-by-order-alt:before {
+  content: "\e154";
+}
+
+.glyphicon-sort-by-attributes:before {
+  content: "\e155";
+}
+
+.glyphicon-sort-by-attributes-alt:before {
+  content: "\e156";
+}
+
+.glyphicon-unchecked:before {
+  content: "\e157";
+}
+
+.glyphicon-expand:before {
+  content: "\e158";
+}
+
+.glyphicon-collapse-down:before {
+  content: "\e159";
+}
+
+.glyphicon-collapse-up:before {
+  content: "\e160";
+}
+
+.glyphicon-log-in:before {
+  content: "\e161";
+}
+
+.glyphicon-flash:before {
+  content: "\e162";
+}
+
+.glyphicon-log-out:before {
+  content: "\e163";
+}
+
+.glyphicon-new-window:before {
+  content: "\e164";
+}
+
+.glyphicon-record:before {
+  content: "\e165";
+}
+
+.glyphicon-save:before {
+  content: "\e166";
+}
+
+.glyphicon-open:before {
+  content: "\e167";
+}
+
+.glyphicon-saved:before {
+  content: "\e168";
+}
+
+.glyphicon-import:before {
+  content: "\e169";
+}
+
+.glyphicon-export:before {
+  content: "\e170";
+}
+
+.glyphicon-send:before {
+  content: "\e171";
+}
+
+.glyphicon-floppy-disk:before {
+  content: "\e172";
+}
+
+.glyphicon-floppy-saved:before {
+  content: "\e173";
+}
+
+.glyphicon-floppy-remove:before {
+  content: "\e174";
+}
+
+.glyphicon-floppy-save:before {
+  content: "\e175";
+}
+
+.glyphicon-floppy-open:before {
+  content: "\e176";
+}
+
+.glyphicon-credit-card:before {
+  content: "\e177";
+}
+
+.glyphicon-transfer:before {
+  content: "\e178";
+}
+
+.glyphicon-cutlery:before {
+  content: "\e179";
+}
+
+.glyphicon-header:before {
+  content: "\e180";
+}
+
+.glyphicon-compressed:before {
+  content: "\e181";
+}
+
+.glyphicon-earphone:before {
+  content: "\e182";
+}
+
+.glyphicon-phone-alt:before {
+  content: "\e183";
+}
+
+.glyphicon-tower:before {
+  content: "\e184";
+}
+
+.glyphicon-stats:before {
+  content: "\e185";
+}
+
+.glyphicon-sd-video:before {
+  content: "\e186";
+}
+
+.glyphicon-hd-video:before {
+  content: "\e187";
+}
+
+.glyphicon-subtitles:before {
+  content: "\e188";
+}
+
+.glyphicon-sound-stereo:before {
+  content: "\e189";
+}
+
+.glyphicon-sound-dolby:before {
+  content: "\e190";
+}
+
+.glyphicon-sound-5-1:before {
+  content: "\e191";
+}
+
+.glyphicon-sound-6-1:before {
+  content: "\e192";
+}
+
+.glyphicon-sound-7-1:before {
+  content: "\e193";
+}
+
+.glyphicon-copyright-mark:before {
+  content: "\e194";
+}
+
+.glyphicon-registration-mark:before {
+  content: "\e195";
+}
+
+.glyphicon-cloud-download:before {
+  content: "\e197";
+}
+
+.glyphicon-cloud-upload:before {
+  content: "\e198";
+}
+
+.glyphicon-tree-conifer:before {
+  content: "\e199";
+}
+
+.glyphicon-tree-deciduous:before {
+  content: "\e200";
+}
+
+.glyphicon-cd:before {
+  content: "\e201";
+}
+
+.glyphicon-save-file:before {
+  content: "\e202";
+}
+
+.glyphicon-open-file:before {
+  content: "\e203";
+}
+
+.glyphicon-level-up:before {
+  content: "\e204";
+}
+
+.glyphicon-copy:before {
+  content: "\e205";
+}
+
+.glyphicon-paste:before {
+  content: "\e206";
+}
+
+.glyphicon-alert:before {
+  content: "\e209";
+}
+
+.glyphicon-equalizer:before {
+  content: "\e210";
+}
+
+.glyphicon-king:before {
+  content: "\e211";
+}
+
+.glyphicon-queen:before {
+  content: "\e212";
+}
+
+.glyphicon-pawn:before {
+  content: "\e213";
+}
+
+.glyphicon-bishop:before {
+  content: "\e214";
+}
+
+.glyphicon-knight:before {
+  content: "\e215";
+}
+
+.glyphicon-baby-formula:before {
+  content: "\e216";
+}
+
+.glyphicon-tent:before {
+  content: "\26fa";
+}
+
+.glyphicon-blackboard:before {
+  content: "\e218";
+}
+
+.glyphicon-bed:before {
+  content: "\e219";
+}
+
+.glyphicon-apple:before {
+  content: "\f8ff";
+}
+
+.glyphicon-erase:before {
+  content: "\e221";
+}
+
+.glyphicon-hourglass:before {
+  content: "\231b";
+}
+
+.glyphicon-lamp:before {
+  content: "\e223";
+}
+
+.glyphicon-duplicate:before {
+  content: "\e224";
+}
+
+.glyphicon-piggy-bank:before {
+  content: "\e225";
+}
+
+.glyphicon-scissors:before {
+  content: "\e226";
+}
+
+.glyphicon-bitcoin:before {
+  content: "\e227";
+}
+
+.glyphicon-btc:before {
+  content: "\e227";
+}
+
+.glyphicon-xbt:before {
+  content: "\e227";
+}
+
+.glyphicon-yen:before {
+  content: "\00a5";
+}
+
+.glyphicon-jpy:before {
+  content: "\00a5";
+}
+
+.glyphicon-ruble:before {
+  content: "\20bd";
+}
+
+.glyphicon-rub:before {
+  content: "\20bd";
+}
+
+.glyphicon-scale:before {
+  content: "\e230";
+}
+
+.glyphicon-ice-lolly:before {
+  content: "\e231";
+}
+
+.glyphicon-ice-lolly-tasted:before {
+  content: "\e232";
+}
+
+.glyphicon-education:before {
+  content: "\e233";
+}
+
+.glyphicon-option-horizontal:before {
+  content: "\e234";
+}
+
+.glyphicon-option-vertical:before {
+  content: "\e235";
+}
+
+.glyphicon-menu-hamburger:before {
+  content: "\e236";
+}
+
+.glyphicon-modal-window:before {
+  content: "\e237";
+}
+
+.glyphicon-oil:before {
+  content: "\e238";
+}
+
+.glyphicon-grain:before {
+  content: "\e239";
+}
+
+.glyphicon-sunglasses:before {
+  content: "\e240";
+}
+
+.glyphicon-text-size:before {
+  content: "\e241";
+}
+
+.glyphicon-text-color:before {
+  content: "\e242";
+}
+
+.glyphicon-text-background:before {
+  content: "\e243";
+}
+
+.glyphicon-object-align-top:before {
+  content: "\e244";
+}
+
+.glyphicon-object-align-bottom:before {
+  content: "\e245";
+}
+
+.glyphicon-object-align-horizontal:before {
+  content: "\e246";
+}
+
+.glyphicon-object-align-left:before {
+  content: "\e247";
+}
+
+.glyphicon-object-align-vertical:before {
+  content: "\e248";
+}
+
+.glyphicon-object-align-right:before {
+  content: "\e249";
+}
+
+.glyphicon-triangle-right:before {
+  content: "\e250";
+}
+
+.glyphicon-triangle-left:before {
+  content: "\e251";
+}
+
+.glyphicon-triangle-bottom:before {
+  content: "\e252";
+}
+
+.glyphicon-triangle-top:before {
+  content: "\e253";
+}
+
+.glyphicon-console:before {
+  content: "\e254";
+}
+
+.glyphicon-superscript:before {
+  content: "\e255";
+}
+
+.glyphicon-subscript:before {
+  content: "\e256";
+}
+
+.glyphicon-menu-left:before {
+  content: "\e257";
+}
+
+.glyphicon-menu-right:before {
+  content: "\e258";
+}
+
+.glyphicon-menu-down:before {
+  content: "\e259";
+}
+
+.glyphicon-menu-up:before {
+  content: "\e260";
+}
+
+* {
+  box-sizing: border-box;
+}
+
+*:before,
+*:after {
+  box-sizing: border-box;
+}
+
+html {
+  font-size: 10px;
+  -webkit-tap-highlight-color: transparent;
+}
+
+body {
+  font-family: "HelveticaNeueMedium", "HelveticaNeue-Medium", "Helvetica Neue Medium", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
+  font-size: 14px;
+  line-height: 1.428571429;
+  color: #222;
+  background-color: #fff;
+}
+
+input,
+button,
+select,
+textarea {
+  font-family: inherit;
+  font-size: inherit;
+  line-height: inherit;
+}
+
+a {
+  color: #3a393b;
+  text-decoration: none;
+}
+
+a:hover,
+a:focus {
+  color: #141314;
+  text-decoration: underline;
+}
+
+a:focus {
+  outline: thin dotted;
+  outline: 5px auto -webkit-focus-ring-color;
+  outline-offset: -2px;
+}
+
+figure {
+  margin: 0;
+}
+
+img {
+  vertical-align: middle;
+}
+
+.img-responsive {
+  display: block;
+  max-width: 100%;
+  height: auto;
+}
+
+.img-rounded {
+  border-radius: 3px;
+}
+
+.img-thumbnail {
+  padding: 4px;
+  line-height: 1.428571429;
+  background-color: #fff;
+  border: 1px solid #ddd;
+  border-radius: 3px;
+  transition: all 0.2s ease-in-out;
+  display: inline-block;
+  max-width: 100%;
+  height: auto;
+}
+
+.img-circle {
+  border-radius: 50%;
+}
+
+hr {
+  margin-top: 20px;
+  margin-bottom: 20px;
+  border: 0;
+  border-top: 1px solid #fff;
+}
+
+.sr-only {
+  position: absolute;
+  width: 1px;
+  height: 1px;
+  margin: -1px;
+  padding: 0;
+  overflow: hidden;
+  clip: rect(0, 0, 0, 0);
+  border: 0;
+}
+
+.sr-only-focusable:active,
+.sr-only-focusable:focus {
+  position: static;
+  width: auto;
+  height: auto;
+  margin: 0;
+  overflow: visible;
+  clip: auto;
+}
+
+[role="button"] {
+  cursor: pointer;
+}
+
+h1, h2, h3, h4, h5, h6,
+.h1, .h2, .h3, .h4, .h5, .h6 {
+  font-family: inherit;
+  font-weight: 500;
+  line-height: 1.1;
+  color: inherit;
+}
+
+h1 small,
+h1 .small, h2 small,
+h2 .small, h3 small,
+h3 .small, h4 small,
+h4 .small, h5 small,
+h5 .small, h6 small,
+h6 .small,
+.h1 small,
+.h1 .small, .h2 small,
+.h2 .small, .h3 small,
+.h3 .small, .h4 small,
+.h4 .small, .h5 small,
+.h5 .small, .h6 small,
+.h6 .small {
+  font-weight: normal;
+  line-height: 1;
+  color: #999;
+}
+
+h1, .h1,
+h2, .h2,
+h3, .h3 {
+  margin-top: 20px;
+  margin-bottom: 10px;
+}
+
+h1 small,
+h1 .small, .h1 small,
+.h1 .small,
+h2 small,
+h2 .small, .h2 small,
+.h2 .small,
+h3 small,
+h3 .small, .h3 small,
+.h3 .small {
+  font-size: 65%;
+}
+
+h4, .h4,
+h5, .h5,
+h6, .h6 {
+  margin-top: 10px;
+  margin-bottom: 10px;
+}
+
+h4 small,
+h4 .small, .h4 small,
+.h4 .small,
+h5 small,
+h5 .small, .h5 small,
+.h5 .small,
+h6 small,
+h6 .small, .h6 small,
+.h6 .small {
+  font-size: 75%;
+}
+
+h1, .h1 {
+  font-size: 1.571em;
+}
+
+h2, .h2 {
+  font-size: 22px;
+}
+
+h3, .h3 {
+  font-size: 17px;
+}
+
+h4, .h4 {
+  font-size: 14px;
+}
+
+h5, .h5 {
+  font-size: 14px;
+}
+
+h6, .h6 {
+  font-size: 14px;
+}
+
+p {
+  margin: 0 0 10px;
+}
+
+.lead {
+  margin-bottom: 20px;
+  font-size: 16px;
+  font-weight: 300;
+  line-height: 1.4;
+}
+
+ at media (min-width: 992px) {
+  .lead {
+    font-size: 21px;
+  }
+}
+
+small,
+.small {
+  font-size: 85%;
+}
+
+mark,
+.mark {
+  background-color: #f1e3c2;
+  padding: .2em;
+}
+
+.text-left {
+  text-align: left;
+}
+
+.text-right {
+  text-align: right;
+}
+
+.text-center {
+  text-align: center;
+}
+
+.text-justify {
+  text-align: justify;
+}
+
+.text-nowrap {
+  white-space: nowrap;
+}
+
+.text-lowercase {
+  text-transform: lowercase;
+}
+
+.text-uppercase, .initialism {
+  text-transform: uppercase;
+}
+
+.text-capitalize {
+  text-transform: capitalize;
+}
+
+.text-muted {
+  color: #999;
+}
+
+.text-primary {
+  color: #3a393b;
+}
+
+a.text-primary:hover,
+a.text-primary:focus {
+  color: #212021;
+}
+
+.text-success {
+  color: #6c6c6c;
+}
+
+a.text-success:hover,
+a.text-success:focus {
+  color: #525252;
+}
+
+.text-info {
+  color: #6c6c6c;
+}
+
+a.text-info:hover,
+a.text-info:focus {
+  color: #525252;
+}
+
+.text-warning {
+  color: #6c6c6c;
+}
+
+a.text-warning:hover,
+a.text-warning:focus {
+  color: #525252;
+}
+
+.text-danger {
+  color: #6c6c6c;
+}
+
+a.text-danger:hover,
+a.text-danger:focus {
+  color: #525252;
+}
+
+.bg-primary {
+  color: #fff;
+}
+
+.bg-primary {
+  background-color: #3a393b;
+}
+
+a.bg-primary:hover,
+a.bg-primary:focus {
+  background-color: #212021;
+}
+
+.bg-success {
+  background-color: #dae6cb;
+}
+
+a.bg-success:hover,
+a.bg-success:focus {
+  background-color: #c1d5a9;
+}
+
+.bg-info {
+  background-color: #d9edf7;
+}
+
+a.bg-info:hover,
+a.bg-info:focus {
+  background-color: #afd9ee;
+}
+
+.bg-warning {
+  background-color: #f1e3c2;
+}
+
+a.bg-warning:hover,
+a.bg-warning:focus {
+  background-color: #e7d099;
+}
+
+.bg-danger {
+  background-color: #eac3c7;
+}
+
+a.bg-danger:hover,
+a.bg-danger:focus {
+  background-color: #dd9da4;
+}
+
+.page-header {
+  padding-bottom: 9px;
+  margin: 40px 0 20px;
+  border-bottom: 1px solid #fff;
+}
+
+ul,
+ol {
+  margin-top: 0;
+  margin-bottom: 10px;
+}
+
+ul ul,
+ul ol,
+ol ul,
+ol ol {
+  margin-bottom: 0;
+}
+
+.list-unstyled {
+  padding-left: 0;
+  list-style: none;
+}
+
+.list-inline {
+  padding-left: 0;
+  list-style: none;
+  margin-left: -5px;
+}
+
+.list-inline > li {
+  display: inline-block;
+  padding-left: 5px;
+  padding-right: 5px;
+}
+
+dl {
+  margin-top: 0;
+  margin-bottom: 20px;
+}
+
+dt,
+dd {
+  line-height: 1.428571429;
+}
+
+dt {
+  font-weight: bold;
+}
+
+dd {
+  margin-left: 0;
+}
+
+.dl-horizontal dd:before,
+.dl-horizontal dd:after {
+  content: " ";
+  display: table;
+}
+
+.dl-horizontal dd:after {
+  clear: both;
+}
+
+ at media (min-width: 992px) {
+  .dl-horizontal dt {
+    float: left;
+    width: 160px;
+    clear: left;
+    text-align: right;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+  }
+  .dl-horizontal dd {
+    margin-left: 180px;
+  }
+}
+
+abbr[title],
+abbr[data-original-title] {
+  cursor: help;
+  border-bottom: 1px dotted #999;
+}
+
+.initialism {
+  font-size: 90%;
+}
+
+blockquote {
+  padding: 10px 20px;
+  margin: 0 0 20px;
+  font-size: 17.5px;
+  border-left: 5px solid #fff;
+}
+
+blockquote p:last-child,
+blockquote ul:last-child,
+blockquote ol:last-child {
+  margin-bottom: 0;
+}
+
+blockquote footer,
+blockquote small,
+blockquote .small {
+  display: block;
+  font-size: 80%;
+  line-height: 1.428571429;
+  color: #999;
+}
+
+blockquote footer:before,
+blockquote small:before,
+blockquote .small:before {
+  content: '\2014 \00A0';
+}
+
+.blockquote-reverse,
+blockquote.pull-right {
+  padding-right: 15px;
+  padding-left: 0;
+  border-right: 5px solid #fff;
+  border-left: 0;
+  text-align: right;
+}
+
+.blockquote-reverse footer:before,
+.blockquote-reverse small:before,
+.blockquote-reverse .small:before,
+blockquote.pull-right footer:before,
+blockquote.pull-right small:before,
+blockquote.pull-right .small:before {
+  content: '';
+}
+
+.blockquote-reverse footer:after,
+.blockquote-reverse small:after,
+.blockquote-reverse .small:after,
+blockquote.pull-right footer:after,
+blockquote.pull-right small:after,
+blockquote.pull-right .small:after {
+  content: '\00A0 \2014';
+}
+
+address {
+  margin-bottom: 20px;
+  font-style: normal;
+  line-height: 1.428571429;
+}
+
+code,
+kbd,
+pre,
+samp {
+  font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
+}
+
+code {
+  padding: 2px 4px;
+  font-size: 90%;
+  color: #c7254e;
+  background-color: #f9f2f4;
+  border-radius: 3px;
+}
+
+kbd {
+  padding: 2px 4px;
+  font-size: 90%;
+  color: #fff;
+  background-color: #333;
+  border-radius: 3px;
+  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+
+kbd kbd {
+  padding: 0;
+  font-size: 100%;
+  font-weight: bold;
+  box-shadow: none;
+}
+
+pre {
+  display: block;
+  padding: 9.5px;
+  margin: 0 0 10px;
+  font-size: 13px;
+  line-height: 1.428571429;
+  word-break: break-all;
+  word-wrap: break-word;
+  color: #222;
+  background-color: #f5f5f5;
+  border: 1px solid #ccc;
+  border-radius: 3px;
+}
+
+pre code {
+  padding: 0;
+  font-size: inherit;
+  color: inherit;
+  white-space: pre-wrap;
+  background-color: transparent;
+  border-radius: 0;
+}
+
+.pre-scrollable {
+  max-height: 340px;
+  overflow-y: scroll;
+}
+
+.container {
+  margin-right: auto;
+  margin-left: auto;
+  padding-left: 0;
+  padding-right: 0;
+}
+
+.container:before,
+.container:after {
+  content: " ";
+  display: table;
+}
+
+.container:after {
+  clear: both;
+}
+
+ at media (min-width: 992px) {
+  .container {
+    width: 940px;
+  }
+}
+
+ at media (min-width: 1200px) {
+  .container {
+    width: 1140px;
+  }
+}
+
+ at media (min-width: 1680) {
+  .container {
+    width: 1540px;
+  }
+}
+
+.container-fluid {
+  margin-right: auto;
+  margin-left: auto;
+  padding-left: 0;
+  padding-right: 0;
+}
+
+.container-fluid:before,
+.container-fluid:after {
+  content: " ";
+  display: table;
+}
+
+.container-fluid:after {
+  clear: both;
+}
+
+.row {
+  margin-left: 0;
+  margin-right: 0;
+}
+
+.row:before,
+.row:after {
+  content: " ";
+  display: table;
+}
+
+.row:after {
+  clear: both;
+}
+
+.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
+  position: relative;
+  min-height: 1px;
+  padding-left: 0;
+  padding-right: 0;
+}
+
+.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
+  float: left;
+}
+
+.col-xs-1 {
+  width: 8.3333333333%;
+}
+
+.col-xs-2 {
+  width: 16.6666666667%;
+}
+
+.col-xs-3 {
+  width: 25%;
+}
+
+.col-xs-4 {
+  width: 33.3333333333%;
+}
+
+.col-xs-5 {
+  width: 41.6666666667%;
+}
+
+.col-xs-6 {
+  width: 50%;
+}
+
+.col-xs-7 {
+  width: 58.3333333333%;
+}
+
+.col-xs-8 {
+  width: 66.6666666667%;
+}
+
+.col-xs-9 {
+  width: 75%;
+}
+
+.col-xs-10 {
+  width: 83.3333333333%;
+}
+
+.col-xs-11 {
+  width: 91.6666666667%;
+}
+
+.col-xs-12 {
+  width: 100%;
+}
+
+.col-xs-pull-0 {
+  right: auto;
+}
+
+.col-xs-pull-1 {
+  right: 8.3333333333%;
+}
+
+.col-xs-pull-2 {
+  right: 16.6666666667%;
+}
+
+.col-xs-pull-3 {
+  right: 25%;
+}
+
+.col-xs-pull-4 {
+  right: 33.3333333333%;
+}
+
+.col-xs-pull-5 {
+  right: 41.6666666667%;
+}
+
+.col-xs-pull-6 {
+  right: 50%;
+}
+
+.col-xs-pull-7 {
+  right: 58.3333333333%;
+}
+
+.col-xs-pull-8 {
+  right: 66.6666666667%;
+}
+
+.col-xs-pull-9 {
+  right: 75%;
+}
+
+.col-xs-pull-10 {
+  right: 83.3333333333%;
+}
+
+.col-xs-pull-11 {
+  right: 91.6666666667%;
+}
+
+.col-xs-pull-12 {
+  right: 100%;
+}
+
+.col-xs-push-0 {
+  left: auto;
+}
+
+.col-xs-push-1 {
+  left: 8.3333333333%;
+}
+
+.col-xs-push-2 {
+  left: 16.6666666667%;
+}
+
+.col-xs-push-3 {
+  left: 25%;
+}
+
+.col-xs-push-4 {
+  left: 33.3333333333%;
+}
+
+.col-xs-push-5 {
+  left: 41.6666666667%;
+}
+
+.col-xs-push-6 {
+  left: 50%;
+}
+
+.col-xs-push-7 {
+  left: 58.3333333333%;
+}
+
+.col-xs-push-8 {
+  left: 66.6666666667%;
+}
+
+.col-xs-push-9 {
+  left: 75%;
+}
+
+.col-xs-push-10 {
+  left: 83.3333333333%;
+}
+
+.col-xs-push-11 {
+  left: 91.6666666667%;
+}
+
+.col-xs-push-12 {
+  left: 100%;
+}
+
+.col-xs-offset-0 {
+  margin-left: 0%;
+}
+
+.col-xs-offset-1 {
+  margin-left: 8.3333333333%;
+}
+
+.col-xs-offset-2 {
+  margin-left: 16.6666666667%;
+}
+
+.col-xs-offset-3 {
+  margin-left: 25%;
+}
+
+.col-xs-offset-4 {
+  margin-left: 33.3333333333%;
+}
+
+.col-xs-offset-5 {
+  margin-left: 41.6666666667%;
+}
+
+.col-xs-offset-6 {
+  margin-left: 50%;
+}
+
+.col-xs-offset-7 {
+  margin-left: 58.3333333333%;
+}
+
+.col-xs-offset-8 {
+  margin-left: 66.6666666667%;
+}
+
+.col-xs-offset-9 {
+  margin-left: 75%;
+}
+
+.col-xs-offset-10 {
+  margin-left: 83.3333333333%;
+}
+
+.col-xs-offset-11 {
+  margin-left: 91.6666666667%;
+}
+
+.col-xs-offset-12 {
+  margin-left: 100%;
+}
+
+ at media (min-width: 992px) {
+  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
+    float: left;
+  }
+  .col-sm-1 {
+    width: 8.3333333333%;
+  }
+  .col-sm-2 {
+    width: 16.6666666667%;
+  }
+  .col-sm-3 {
+    width: 25%;
+  }
+  .col-sm-4 {
+    width: 33.3333333333%;
+  }
+  .col-sm-5 {
+    width: 41.6666666667%;
+  }
+  .col-sm-6 {
+    width: 50%;
+  }
+  .col-sm-7 {
+    width: 58.3333333333%;
+  }
+  .col-sm-8 {
+    width: 66.6666666667%;
+  }
+  .col-sm-9 {
+    width: 75%;
+  }
+  .col-sm-10 {
+    width: 83.3333333333%;
+  }
+  .col-sm-11 {
+    width: 91.6666666667%;
+  }
+  .col-sm-12 {
+    width: 100%;
+  }
+  .col-sm-pull-0 {
+    right: auto;
+  }
+  .col-sm-pull-1 {
+    right: 8.3333333333%;
+  }
+  .col-sm-pull-2 {
+    right: 16.6666666667%;
+  }
+  .col-sm-pull-3 {
+    right: 25%;
+  }
+  .col-sm-pull-4 {
+    right: 33.3333333333%;
+  }
+  .col-sm-pull-5 {
+    right: 41.6666666667%;
+  }
+  .col-sm-pull-6 {
+    right: 50%;
+  }
+  .col-sm-pull-7 {
+    right: 58.3333333333%;
+  }
+  .col-sm-pull-8 {
+    right: 66.6666666667%;
+  }
+  .col-sm-pull-9 {
+    right: 75%;
+  }
+  .col-sm-pull-10 {
+    right: 83.3333333333%;
+  }
+  .col-sm-pull-11 {
+    right: 91.6666666667%;
+  }
+  .col-sm-pull-12 {
+    right: 100%;
+  }
+  .col-sm-push-0 {
+    left: auto;
+  }
+  .col-sm-push-1 {
+    left: 8.3333333333%;
+  }
+  .col-sm-push-2 {
+    left: 16.6666666667%;
+  }
+  .col-sm-push-3 {
+    left: 25%;
+  }
+  .col-sm-push-4 {
+    left: 33.3333333333%;
+  }
+  .col-sm-push-5 {
+    left: 41.6666666667%;
+  }
+  .col-sm-push-6 {
+    left: 50%;
+  }
+  .col-sm-push-7 {
+    left: 58.3333333333%;
+  }
+  .col-sm-push-8 {
+    left: 66.6666666667%;
+  }
+  .col-sm-push-9 {
+    left: 75%;
+  }
+  .col-sm-push-10 {
+    left: 83.3333333333%;
+  }
+  .col-sm-push-11 {
+    left: 91.6666666667%;
+  }
+  .col-sm-push-12 {
+    left: 100%;
+  }
+  .col-sm-offset-0 {
+    margin-left: 0%;
+  }
+  .col-sm-offset-1 {
+    margin-left: 8.3333333333%;
+  }
+  .col-sm-offset-2 {
+    margin-left: 16.6666666667%;
+  }
+  .col-sm-offset-3 {
+    margin-left: 25%;
+  }
+  .col-sm-offset-4 {
+    margin-left: 33.3333333333%;
+  }
+  .col-sm-offset-5 {
+    margin-left: 41.6666666667%;
+  }
+  .col-sm-offset-6 {
+    margin-left: 50%;
+  }
+  .col-sm-offset-7 {
+    margin-left: 58.3333333333%;
+  }
+  .col-sm-offset-8 {
+    margin-left: 66.6666666667%;
+  }
+  .col-sm-offset-9 {
+    margin-left: 75%;
+  }
+  .col-sm-offset-10 {
+    margin-left: 83.3333333333%;
+  }
+  .col-sm-offset-11 {
+    margin-left: 91.6666666667%;
+  }
+  .col-sm-offset-12 {
+    margin-left: 100%;
+  }
+}
+
+ at media (min-width: 1200px) {
+  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
+    float: left;
+  }
+  .col-md-1 {
+    width: 8.3333333333%;
+  }
+  .col-md-2 {
+    width: 16.6666666667%;
+  }
+  .col-md-3 {
+    width: 25%;
+  }
+  .col-md-4 {
+    width: 33.3333333333%;
+  }
+  .col-md-5 {
+    width: 41.6666666667%;
+  }
+  .col-md-6 {
+    width: 50%;
+  }
+  .col-md-7 {
+    width: 58.3333333333%;
+  }
+  .col-md-8 {
+    width: 66.6666666667%;
+  }
+  .col-md-9 {
+    width: 75%;
+  }
+  .col-md-10 {
+    width: 83.3333333333%;
+  }
+  .col-md-11 {
+    width: 91.6666666667%;
+  }
+  .col-md-12 {
+    width: 100%;
+  }
+  .col-md-pull-0 {
+    right: auto;
+  }
+  .col-md-pull-1 {
+    right: 8.3333333333%;
+  }
+  .col-md-pull-2 {
+    right: 16.6666666667%;
+  }
+  .col-md-pull-3 {
+    right: 25%;
+  }
+  .col-md-pull-4 {
+    right: 33.3333333333%;
+  }
+  .col-md-pull-5 {
+    right: 41.6666666667%;
+  }
+  .col-md-pull-6 {
+    right: 50%;
+  }
+  .col-md-pull-7 {
+    right: 58.3333333333%;
+  }
+  .col-md-pull-8 {
+    right: 66.6666666667%;
+  }
+  .col-md-pull-9 {
+    right: 75%;
+  }
+  .col-md-pull-10 {
+    right: 83.3333333333%;
+  }
+  .col-md-pull-11 {
+    right: 91.6666666667%;
+  }
+  .col-md-pull-12 {
+    right: 100%;
+  }
+  .col-md-push-0 {
+    left: auto;
+  }
+  .col-md-push-1 {
+    left: 8.3333333333%;
+  }
+  .col-md-push-2 {
+    left: 16.6666666667%;
+  }
+  .col-md-push-3 {
+    left: 25%;
+  }
+  .col-md-push-4 {
+    left: 33.3333333333%;
+  }
+  .col-md-push-5 {
+    left: 41.6666666667%;
+  }
+  .col-md-push-6 {
+    left: 50%;
+  }
+  .col-md-push-7 {
+    left: 58.3333333333%;
+  }
+  .col-md-push-8 {
+    left: 66.6666666667%;
+  }
+  .col-md-push-9 {
+    left: 75%;
+  }
+  .col-md-push-10 {
+    left: 83.3333333333%;
+  }
+  .col-md-push-11 {
+    left: 91.6666666667%;
+  }
+  .col-md-push-12 {
+    left: 100%;
+  }
+  .col-md-offset-0 {
+    margin-left: 0%;
+  }
+  .col-md-offset-1 {
+    margin-left: 8.3333333333%;
+  }
+  .col-md-offset-2 {
+    margin-left: 16.6666666667%;
+  }
+  .col-md-offset-3 {
+    margin-left: 25%;
+  }
+  .col-md-offset-4 {
+    margin-left: 33.3333333333%;
+  }
+  .col-md-offset-5 {
+    margin-left: 41.6666666667%;
+  }
+  .col-md-offset-6 {
+    margin-left: 50%;
+  }
+  .col-md-offset-7 {
+    margin-left: 58.3333333333%;
+  }
+  .col-md-offset-8 {
+    margin-left: 66.6666666667%;
+  }
+  .col-md-offset-9 {
+    margin-left: 75%;
+  }
+  .col-md-offset-10 {
+    margin-left: 83.3333333333%;
+  }
+  .col-md-offset-11 {
+    margin-left: 91.6666666667%;
+  }
+  .col-md-offset-12 {
+    margin-left: 100%;
+  }
+}
+
+ at media (min-width: 1680) {
+  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
+    float: left;
+  }
+  .col-lg-1 {
+    width: 8.3333333333%;
+  }
+  .col-lg-2 {
+    width: 16.6666666667%;
+  }
+  .col-lg-3 {
+    width: 25%;
+  }
+  .col-lg-4 {
+    width: 33.3333333333%;
+  }
+  .col-lg-5 {
+    width: 41.6666666667%;
+  }
+  .col-lg-6 {
+    width: 50%;
+  }
+  .col-lg-7 {
+    width: 58.3333333333%;
+  }
+  .col-lg-8 {
+    width: 66.6666666667%;
+  }
+  .col-lg-9 {
+    width: 75%;
+  }
+  .col-lg-10 {
+    width: 83.3333333333%;
+  }
+  .col-lg-11 {
+    width: 91.6666666667%;
+  }
+  .col-lg-12 {
+    width: 100%;
+  }
+  .col-lg-pull-0 {
+    right: auto;
+  }
+  .col-lg-pull-1 {
+    right: 8.3333333333%;
+  }
+  .col-lg-pull-2 {
+    right: 16.6666666667%;
+  }
+  .col-lg-pull-3 {
+    right: 25%;
+  }
+  .col-lg-pull-4 {
+    right: 33.3333333333%;
+  }
+  .col-lg-pull-5 {
+    right: 41.6666666667%;
+  }
+  .col-lg-pull-6 {
+    right: 50%;
+  }
+  .col-lg-pull-7 {
+    right: 58.3333333333%;
+  }
+  .col-lg-pull-8 {
+    right: 66.6666666667%;
+  }
+  .col-lg-pull-9 {
+    right: 75%;
+  }
+  .col-lg-pull-10 {
+    right: 83.3333333333%;
+  }
+  .col-lg-pull-11 {
+    right: 91.6666666667%;
+  }
+  .col-lg-pull-12 {
+    right: 100%;
+  }
+  .col-lg-push-0 {
+    left: auto;
+  }
+  .col-lg-push-1 {
+    left: 8.3333333333%;
+  }
+  .col-lg-push-2 {
+    left: 16.6666666667%;
+  }
+  .col-lg-push-3 {
+    left: 25%;
+  }
+  .col-lg-push-4 {
+    left: 33.3333333333%;
+  }
+  .col-lg-push-5 {
+    left: 41.6666666667%;
+  }
+  .col-lg-push-6 {
+    left: 50%;
+  }
+  .col-lg-push-7 {
+    left: 58.3333333333%;
+  }
+  .col-lg-push-8 {
+    left: 66.6666666667%;
+  }
+  .col-lg-push-9 {
+    left: 75%;
+  }
+  .col-lg-push-10 {
+    left: 83.3333333333%;
+  }
+  .col-lg-push-11 {
+    left: 91.6666666667%;
+  }
+  .col-lg-push-12 {
+    left: 100%;
+  }
+  .col-lg-offset-0 {
+    margin-left: 0%;
+  }
+  .col-lg-offset-1 {
+    margin-left: 8.3333333333%;
+  }
+  .col-lg-offset-2 {
+    margin-left: 16.6666666667%;
+  }
+  .col-lg-offset-3 {
+    margin-left: 25%;
+  }
+  .col-lg-offset-4 {
+    margin-left: 33.3333333333%;
+  }
+  .col-lg-offset-5 {
+    margin-left: 41.6666666667%;
+  }
+  .col-lg-offset-6 {
+    margin-left: 50%;
+  }
+  .col-lg-offset-7 {
+    margin-left: 58.3333333333%;
+  }
+  .col-lg-offset-8 {
+    margin-left: 66.6666666667%;
+  }
+  .col-lg-offset-9 {
+    margin-left: 75%;
+  }
+  .col-lg-offset-10 {
+    margin-left: 83.3333333333%;
+  }
+  .col-lg-offset-11 {
+    margin-left: 91.6666666667%;
+  }
+  .col-lg-offset-12 {
+    margin-left: 100%;
+  }
+}
+
+table {
+  background-color: transparent;
+}
+
+caption {
+  padding-top: 8px;
+  padding-bottom: 8px;
+  color: #999;
+  text-align: left;
+}
+
+th {
+  text-align: left;
+}
+
+.table {
+  width: 100%;
+  max-width: 100%;
+  margin-bottom: 20px;
+}
+
+.table > thead > tr > th,
+.table > thead > tr > td,
+.table > tbody > tr > th,
+.table > tbody > tr > td,
+.table > tfoot > tr > th,
+.table > tfoot > tr > td {
+  padding: 8px;
+  line-height: 1.428571429;
+  vertical-align: top;
+  border-top: 1px solid #ddd;
+}
+
+.table > thead > tr > th {
+  vertical-align: bottom;
+  border-bottom: 2px solid #ddd;
+}
+
+.table > caption + thead > tr:first-child > th,
+.table > caption + thead > tr:first-child > td,
+.table > colgroup + thead > tr:first-child > th,
+.table > colgroup + thead > tr:first-child > td,
+.table > thead:first-child > tr:first-child > th,
+.table > thead:first-child > tr:first-child > td {
+  border-top: 0;
+}
+
+.table > tbody + tbody {
+  border-top: 2px solid #ddd;
+}
+
+.table .table {
+  background-color: #fff;
+}
+
+.table-condensed > thead > tr > th,
+.table-condensed > thead > tr > td,
+.table-condensed > tbody > tr > th,
+.table-condensed > tbody > tr > td,
+.table-condensed > tfoot > tr > th,
+.table-condensed > tfoot > tr > td {
+  padding: 5px;
+}
+
+.table-bordered {
+  border: 1px solid #ddd;
+}
+
+.table-bordered > thead > tr > th,
+.table-bordered > thead > tr > td,
+.table-bordered > tbody > tr > th,
+.table-bordered > tbody > tr > td,
+.table-bordered > tfoot > tr > th,
+.table-bordered > tfoot > tr > td {
+  border: 1px solid #ddd;
+}
+
+.table-bordered > thead > tr > th,
+.table-bordered > thead > tr > td {
+  border-bottom-width: 2px;
+}
+
+.table-striped > tbody > tr:nth-of-type(odd) {
+  background-color: #f9f9f9;
+}
+
+.table-hover > tbody > tr:hover {
+  background-color: #f5f5f5;
+}
+
+table col[class*="col-"] {
+  position: static;
+  float: none;
+  display: table-column;
+}
+
+table td[class*="col-"],
+table th[class*="col-"] {
+  position: static;
+  float: none;
+  display: table-cell;
+}
+
+.table > thead > tr > td.active,
+.table > thead > tr > th.active,
+.table > thead > tr.active > td,
+.table > thead > tr.active > th,
+.table > tbody > tr > td.active,
+.table > tbody > tr > th.active,
+.table > tbody > tr.active > td,
+.table > tbody > tr.active > th,
+.table > tfoot > tr > td.active,
+.table > tfoot > tr > th.active,
+.table > tfoot > tr.active > td,
+.table > tfoot > tr.active > th {
+  background-color: #f5f5f5;
+}
+
+.table-hover > tbody > tr > td.active:hover,
+.table-hover > tbody > tr > th.active:hover,
+.table-hover > tbody > tr.active:hover > td,
+.table-hover > tbody > tr:hover > .active,
+.table-hover > tbody > tr.active:hover > th {
+  background-color: #e8e8e8;
+}
+
+.table > thead > tr > td.success,
+.table > thead > tr > th.success,
+.table > thead > tr.success > td,
+.table > thead > tr.success > th,
+.table > tbody > tr > td.success,
+.table > tbody > tr > th.success,
+.table > tbody > tr.success > td,
+.table > tbody > tr.success > th,
+.table > tfoot > tr > td.success,
+.table > tfoot > tr > th.success,
+.table > tfoot > tr.success > td,
+.table > tfoot > tr.success > th {
+  background-color: #dae6cb;
+}
+
+.table-hover > tbody > tr > td.success:hover,
+.table-hover > tbody > tr > th.success:hover,
+.table-hover > tbody > tr.success:hover > td,
+.table-hover > tbody > tr:hover > .success,
+.table-hover > tbody > tr.success:hover > th {
+  background-color: #cedeba;
+}
+
+.table > thead > tr > td.info,
+.table > thead > tr > th.info,
+.table > thead > tr.info > td,
+.table > thead > tr.info > th,
+.table > tbody > tr > td.info,
+.table > tbody > tr > th.info,
+.table > tbody > tr.info > td,
+.table > tbody > tr.info > th,
+.table > tfoot > tr > td.info,
+.table > tfoot > tr > th.info,
+.table > tfoot > tr.info > td,
+.table > tfoot > tr.info > th {
+  background-color: #d9edf7;
+}
+
+.table-hover > tbody > tr > td.info:hover,
+.table-hover > tbody > tr > th.info:hover,
+.table-hover > tbody > tr.info:hover > td,
+.table-hover > tbody > tr:hover > .info,
+.table-hover > tbody > tr.info:hover > th {
+  background-color: #c4e3f3;
+}
+
+.table > thead > tr > td.warning,
+.table > thead > tr > th.warning,
+.table > thead > tr.warning > td,
+.table > thead > tr.warning > th,
+.table > tbody > tr > td.warning,
+.table > tbody > tr > th.warning,
+.table > tbody > tr.warning > td,
+.table > tbody > tr.warning > th,
+.table > tfoot > tr > td.warning,
+.table > tfoot > tr > th.warning,
+.table > tfoot > tr.warning > td,
+.table > tfoot > tr.warning > th {
+  background-color: #f1e3c2;
+}
+
+.table-hover > tbody > tr > td.warning:hover,
+.table-hover > tbody > tr > th.warning:hover,
+.table-hover > tbody > tr.warning:hover > td,
+.table-hover > tbody > tr:hover > .warning,
+.table-hover > tbody > tr.warning:hover > th {
+  background-color: #ecd9ad;
+}
+
+.table > thead > tr > td.danger,
+.table > thead > tr > th.danger,
+.table > thead > tr.danger > td,
+.table > thead > tr.danger > th,
+.table > tbody > tr > td.danger,
+.table > tbody > tr > th.danger,
+.table > tbody > tr.danger > td,
+.table > tbody > tr.danger > th,
+.table > tfoot > tr > td.danger,
+.table > tfoot > tr > th.danger,
+.table > tfoot > tr.danger > td,
+.table > tfoot > tr.danger > th {
+  background-color: #eac3c7;
+}
+
+.table-hover > tbody > tr > td.danger:hover,
+.table-hover > tbody > tr > th.danger:hover,
+.table-hover > tbody > tr.danger:hover > td,
+.table-hover > tbody > tr:hover > .danger,
+.table-hover > tbody > tr.danger:hover > th {
+  background-color: #e3b0b5;
+}
+
+.table-responsive {
+  overflow-x: auto;
+  min-height: 0.01%;
+}
+
+ at media screen and (max-width: 991px) {
+  .table-responsive {
+    width: 100%;
+    margin-bottom: 15px;
+    overflow-y: hidden;
+    -ms-overflow-style: -ms-autohiding-scrollbar;
+    border: 1px solid #ddd;
+  }
+  .table-responsive > .table {
+    margin-bottom: 0;
+  }
+  .table-responsive > .table > thead > tr > th,
+  .table-responsive > .table > thead > tr > td,
+  .table-responsive > .table > tbody > tr > th,
+  .table-responsive > .table > tbody > tr > td,
+  .table-responsive > .table > tfoot > tr > th,
+  .table-responsive > .table > tfoot > tr > td {
+    white-space: nowrap;
+  }
+  .table-responsive > .table-bordered {
+    border: 0;
+  }
+  .table-responsive > .table-bordered > thead > tr > th:first-child,
+  .table-responsive > .table-bordered > thead > tr > td:first-child,
+  .table-responsive > .table-bordered > tbody > tr > th:first-child,
+  .table-responsive > .table-bordered > tbody > tr > td:first-child,
+  .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+  .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+    border-left: 0;
+  }
+  .table-responsive > .table-bordered > thead > tr > th:last-child,
+  .table-responsive > .table-bordered > thead > tr > td:last-child,
+  .table-responsive > .table-bordered > tbody > tr > th:last-child,
+  .table-responsive > .table-bordered > tbody > tr > td:last-child,
+  .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+  .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+    border-right: 0;
+  }
+  .table-responsive > .table-bordered > tbody > tr:last-child > th,
+  .table-responsive > .table-bordered > tbody > tr:last-child > td,
+  .table-responsive > .table-bordered > tfoot > tr:last-child > th,
+  .table-responsive > .table-bordered > tfoot > tr:last-child > td {
+    border-bottom: 0;
+  }
+}
+
+fieldset {
+  padding: 0;
+  margin: 0;
+  border: 0;
+  min-width: 0;
+}
+
+legend {
+  display: block;
+  width: 100%;
+  padding: 0;
+  margin-bottom: 20px;
+  font-size: 21px;
+  line-height: inherit;
+  color: #222;
+  border: 0;
+  border-bottom: 1px solid #e5e5e5;
+}
+
+label {
+  display: inline-block;
+  max-width: 100%;
+  margin-bottom: 5px;
+  font-weight: bold;
+}
+
+input[type="search"] {
+  box-sizing: border-box;
+}
+
+input[type="radio"],
+input[type="checkbox"] {
+  margin: 4px 0 0;
+  margin-top: 1px \9;
+  line-height: normal;
+}
+
+input[type="file"] {
+  display: block;
+}
+
+input[type="range"] {
+  display: block;
+  width: 100%;
+}
+
+select[multiple],
+select[size] {
+  height: auto;
+}
+
+input[type="file"]:focus,
+input[type="radio"]:focus,
+input[type="checkbox"]:focus {
+  outline: thin dotted;
+  outline: 5px auto -webkit-focus-ring-color;
+  outline-offset: -2px;
+}
+
+output {
+  display: block;
+  padding-top: 7px;
+  font-size: 14px;
+  line-height: 1.428571429;
+  color: #444;
+}
+
+.form-control {
+  display: block;
+  width: 100%;
+  height: 34px;
+  padding: 6px 12px;
+  font-size: 14px;
+  line-height: 1.428571429;
+  color: #444;
+  background-color: #fff;
+  background-image: none;
+  border: 1px solid #ccc;
+  border-radius: 3px;
+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+  transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
+}
+
+.form-control:focus {
+  border-color: #66afe9;
+  outline: 0;
+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
+}
+
+.form-control::-moz-placeholder {
+  color: #999;
+  opacity: 1;
+}
+
+.form-control:-ms-input-placeholder {
+  color: #999;
+}
+
+.form-control::-webkit-input-placeholder {
+  color: #999;
+}
+
+.form-control[disabled],
+.form-control[readonly],
+fieldset[disabled] .form-control {
+  background-color: #fff;
+  opacity: 1;
+}
+
+.form-control[disabled],
+fieldset[disabled] .form-control {
+  cursor: not-allowed;
+}
+
+textarea.form-control {
+  height: auto;
+}
+
+input[type="search"] {
+  -webkit-appearance: none;
+}
+
+ at media screen and (-webkit-min-device-pixel-ratio: 0) {
+  input[type="date"].form-control,
+  input[type="time"].form-control,
+  input[type="datetime-local"].form-control,
+  input[type="month"].form-control {
+    line-height: 34px;
+  }
+  input[type="date"].input-sm,
+  .input-group-sm > input[type="date"].form-control,
+  .input-group-sm > input[type="date"].input-group-addon,
+  .input-group-sm > .input-group-btn > input[type="date"].btn,
+  .input-group-sm input[type="date"],
+  input[type="time"].input-sm,
+  .input-group-sm > input[type="time"].form-control,
+  .input-group-sm > input[type="time"].input-group-addon,
+  .input-group-sm > .input-group-btn > input[type="time"].btn,
+  .input-group-sm input[type="time"],
+  input[type="datetime-local"].input-sm,
+  .input-group-sm > input[type="datetime-local"].form-control,
+  .input-group-sm > input[type="datetime-local"].input-group-addon,
+  .input-group-sm > .input-group-btn > input[type="datetime-local"].btn,
+  .input-group-sm input[type="datetime-local"],
+  input[type="month"].input-sm,
+  .input-group-sm > input[type="month"].form-control,
+  .input-group-sm > input[type="month"].input-group-addon,
+  .input-group-sm > .input-group-btn > input[type="month"].btn,
+  .input-group-sm input[type="month"] {
+    line-height: 30px;
+  }
+  input[type="date"].input-lg,
+  .input-group-lg > input[type="date"].form-control,
+  .input-group-lg > input[type="date"].input-group-addon,
+  .input-group-lg > .input-group-btn > input[type="date"].btn,
+  .input-group-lg input[type="date"],
+  input[type="time"].input-lg,
+  .input-group-lg > input[type="time"].form-control,
+  .input-group-lg > input[type="time"].input-group-addon,
+  .input-group-lg > .input-group-btn > input[type="time"].btn,
+  .input-group-lg input[type="time"],
+  input[type="datetime-local"].input-lg,
+  .input-group-lg > input[type="datetime-local"].form-control,
+  .input-group-lg > input[type="datetime-local"].input-group-addon,
+  .input-group-lg > .input-group-btn > input[type="datetime-local"].btn,
+  .input-group-lg input[type="datetime-local"],
+  input[type="month"].input-lg,
+  .input-group-lg > input[type="month"].form-control,
+  .input-group-lg > input[type="month"].input-group-addon,
+  .input-group-lg > .input-group-btn > input[type="month"].btn,
+  .input-group-lg input[type="month"] {
+    line-height: 46px;
+  }
+}
+
+.form-group {
+  margin-bottom: 15px;
+}
+
+.radio,
+.checkbox {
+  position: relative;
+  display: block;
+  margin-top: 10px;
+  margin-bottom: 10px;
+}
+
+.radio label,
+.checkbox label {
+  min-height: 20px;
+  padding-left: 20px;
+  margin-bottom: 0;
+  font-weight: normal;
+  cursor: pointer;
+}
+
+.radio input[type="radio"],
+.radio-inline input[type="radio"],
+.checkbox input[type="checkbox"],
+.checkbox-inline input[type="checkbox"] {
+  position: absolute;
+  margin-left: -20px;
+  margin-top: 4px \9;
+}
+
+.radio + .radio,
+.checkbox + .checkbox {
+  margin-top: -5px;
+}
+
+.radio-inline,
+.checkbox-inline {
+  position: relative;
+  display: inline-block;
+  padding-left: 20px;
+  margin-bottom: 0;
+  vertical-align: middle;
+  font-weight: normal;
+  cursor: pointer;
+}
+
+.radio-inline + .radio-inline,
+.checkbox-inline + .checkbox-inline {
+  margin-top: 0;
+  margin-left: 10px;
+}
+
+input[type="radio"][disabled],
+input[type="radio"].disabled,
+fieldset[disabled] input[type="radio"],
+input[type="checkbox"][disabled],
+input[type="checkbox"].disabled,
+fieldset[disabled] input[type="checkbox"] {
+  cursor: not-allowed;
+}
+
+.radio-inline.disabled,
+fieldset[disabled] .radio-inline,
+.checkbox-inline.disabled,
+fieldset[disabled] .checkbox-inline {
+  cursor: not-allowed;
+}
+
+.radio.disabled label,
+fieldset[disabled] .radio label,
+.checkbox.disabled label,
+fieldset[disabled] .checkbox label {
+  cursor: not-allowed;
+}
+
+.form-control-static {
+  padding-top: 7px;
+  padding-bottom: 7px;
+  margin-bottom: 0;
+  min-height: 34px;
+}
+
+.form-control-static.input-lg,
+.input-group-lg > .form-control-static.form-control,
+.input-group-lg > .form-control-static.input-group-addon,
+.input-group-lg > .input-group-btn > .form-control-static.btn,
+.form-control-static.input-sm, .input-group-sm > .form-control-static.form-control,
+.input-group-sm > .form-control-static.input-group-addon,
+.input-group-sm > .input-group-btn > .form-control-static.btn {
+  padding-left: 0;
+  padding-right: 0;
+}
+
+.input-sm, .input-group-sm > .form-control,
+.input-group-sm > .input-group-addon,
+.input-group-sm > .input-group-btn > .btn {
+  height: 30px;
+  padding: 5px 10px;
+  font-size: 12px;
+  line-height: 1.5;
+  border-radius: 3px;
+}
+
+select.input-sm, .input-group-sm > select.form-control,
+.input-group-sm > select.input-group-addon,
+.input-group-sm > .input-group-btn > select.btn {
+  height: 30px;
+  line-height: 30px;
+}
+
+textarea.input-sm,
+.input-group-sm > textarea.form-control,
+.input-group-sm > textarea.input-group-addon,
+.input-group-sm > .input-group-btn > textarea.btn,
+select[multiple].input-sm, .input-group-sm > select[multiple].form-control,
+.input-group-sm > select[multiple].input-group-addon,
+.input-group-sm > .input-group-btn > select[multiple].btn {
+  height: auto;
+}
+
+.form-group-sm .form-control {
+  height: 30px;
+  padding: 5px 10px;
+  font-size: 12px;
+  line-height: 1.5;
+  border-radius: 3px;
+}
+
+.form-group-sm select.form-control {
+  height: 30px;
+  line-height: 30px;
+}
+
+.form-group-sm textarea.form-control,
+.form-group-sm select[multiple].form-control {
+  height: auto;
+}
+
+.form-group-sm .form-control-static {
+  height: 30px;
+  min-height: 32px;
+  padding: 6px 10px;
+  font-size: 12px;
+  line-height: 1.5;
+}
+
+.input-lg, .input-group-lg > .form-control,
+.input-group-lg > .input-group-addon,
+.input-group-lg > .input-group-btn > .btn {
+  height: 46px;
+  padding: 10px 16px;
+  font-size: 18px;
+  line-height: 1.3333333;
+  border-radius: 3px;
+}
+
+select.input-lg, .input-group-lg > select.form-control,
+.input-group-lg > select.input-group-addon,
+.input-group-lg > .input-group-btn > select.btn {
+  height: 46px;
+  line-height: 46px;
+}
+
+textarea.input-lg,
+.input-group-lg > textarea.form-control,
+.input-group-lg > textarea.input-group-addon,
+.input-group-lg > .input-group-btn > textarea.btn,
+select[multiple].input-lg, .input-group-lg > select[multiple].form-control,
+.input-group-lg > select[multiple].input-group-addon,
+.input-group-lg > .input-group-btn > select[multiple].btn {
+  height: auto;
+}
+
+.form-group-lg .form-control {
+  height: 46px;
+  padding: 10px 16px;
+  font-size: 18px;
+  line-height: 1.3333333;
+  border-radius: 3px;
+}
+
+.form-group-lg select.form-control {
+  height: 46px;
+  line-height: 46px;
+}
+
+.form-group-lg textarea.form-control,
+.form-group-lg select[multiple].form-control {
+  height: auto;
+}
+
+.form-group-lg .form-control-static {
+  height: 46px;
+  min-height: 38px;
+  padding: 11px 16px;
+  font-size: 18px;
+  line-height: 1.3333333;
+}
+
+.has-feedback {
+  position: relative;
+}
+
+.has-feedback .form-control {
+  padding-right: 42.5px;
+}
+
+.form-control-feedback {
+  position: absolute;
+  top: 0;
+  right: 0;
+  z-index: 2;
+  display: block;
+  width: 34px;
+  height: 34px;
+  line-height: 34px;
+  text-align: center;
+  pointer-events: none;
+}
+
+.input-lg + .form-control-feedback,
+.input-group-lg > .form-control + .form-control-feedback,
+.input-group-lg > .input-group-addon + .form-control-feedback,
+.input-group-lg > .input-group-btn > .btn + .form-control-feedback,
+.input-group-lg + .form-control-feedback,
+.form-group-lg .form-control + .form-control-feedback {
+  width: 46px;
+  height: 46px;
+  line-height: 46px;
+}
+
+.input-sm + .form-control-feedback,
+.input-group-sm > .form-control + .form-control-feedback,
+.input-group-sm > .input-group-addon + .form-control-feedback,
+.input-group-sm > .input-group-btn > .btn + .form-control-feedback,
+.input-group-sm + .form-control-feedback,
+.form-group-sm .form-control + .form-control-feedback {
+  width: 30px;
+  height: 30px;
+  line-height: 30px;
+}
+
+.has-success .help-block,
+.has-success .control-label,
+.has-success .radio,
+.has-success .checkbox,
+.has-success .radio-inline,
+.has-success .checkbox-inline,
+.has-success.radio label,
+.has-success.checkbox label,
+.has-success.radio-inline label,
+.has-success.checkbox-inline label {
+  color: #6c6c6c;
+}
+
+.has-success .form-control {
+  border-color: #6c6c6c;
+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+
+.has-success .form-control:focus {
+  border-color: #525252;
+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #9f9f9f;
+}
+
+.has-success .input-group-addon {
+  color: #6c6c6c;
+  border-color: #6c6c6c;
+  background-color: #dae6cb;
+}
+
+.has-success .form-control-feedback {
+  color: #6c6c6c;
+}
+
+.has-warning .help-block,
+.has-warning .control-label,
+.has-warning .radio,
+.has-warning .checkbox,
+.has-warning .radio-inline,
+.has-warning .checkbox-inline,
+.has-warning.radio label,
+.has-warning.checkbox label,
+.has-warning.radio-inline label,
+.has-warning.checkbox-inline label {
+  color: #6c6c6c;
+}
+
+.has-warning .form-control {
+  border-color: #6c6c6c;
+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+
+.has-warning .form-control:focus {
+  border-color: #525252;
+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #9f9f9f;
+}
+
+.has-warning .input-group-addon {
+  color: #6c6c6c;
+  border-color: #6c6c6c;
+  background-color: #f1e3c2;
+}
+
+.has-warning .form-control-feedback {
+  color: #6c6c6c;
+}
+
+.has-error .help-block,
+.has-error .control-label,
+.has-error .radio,
+.has-error .checkbox,
+.has-error .radio-inline,
+.has-error .checkbox-inline,
+.has-error.radio label,
+.has-error.checkbox label,
+.has-error.radio-inline label,
+.has-error.checkbox-inline label {
+  color: #6c6c6c;
+}
+
+.has-error .form-control {
+  border-color: #6c6c6c;
+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+
+.has-error .form-control:focus {
+  border-color: #525252;
+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #9f9f9f;
+}
+
+.has-error .input-group-addon {
+  color: #6c6c6c;
+  border-color: #6c6c6c;
+  background-color: #eac3c7;
+}
+
+.has-error .form-control-feedback {
+  color: #6c6c6c;
+}
+
+.has-feedback label ~ .form-control-feedback {
+  top: 25px;
+}
+
+.has-feedback label.sr-only ~ .form-control-feedback {
+  top: 0;
+}
+
+.help-block {
+  display: block;
+  margin-top: 5px;
+  margin-bottom: 10px;
+  color: #626262;
+}
+
+ at media (min-width: 992px) {
+  .form-inline .form-group {
+    display: inline-block;
+    margin-bottom: 0;
+    vertical-align: middle;
+  }
+  .form-inline .form-control {
+    display: inline-block;
+    width: auto;
+    vertical-align: middle;
+  }
+  .form-inline .form-control-static {
+    display: inline-block;
+  }
+  .form-inline .input-group {
+    display: inline-table;
+    vertical-align: middle;
+  }
+  .form-inline .input-group .input-group-addon,
+  .form-inline .input-group .input-group-btn,
+  .form-inline .input-group .form-control {
+    width: auto;
+  }
+  .form-inline .input-group > .form-control {
+    width: 100%;
+  }
+  .form-inline .control-label {
+    margin-bottom: 0;
+    vertical-align: middle;
+  }
+  .form-inline .radio,
+  .form-inline .checkbox {
+    display: inline-block;
+    margin-top: 0;
+    margin-bottom: 0;
+    vertical-align: middle;
+  }
+  .form-inline .radio label,
+  .form-inline .checkbox label {
+    padding-left: 0;
+  }
+  .form-inline .radio input[type="radio"],
+  .form-inline .checkbox input[type="checkbox"] {
+    position: relative;
+    margin-left: 0;
+  }
+  .form-inline .has-feedback .form-control-feedback {
+    top: 0;
+  }
+}
+
+.form-horizontal .radio,
+.form-horizontal .checkbox,
+.form-horizontal .radio-inline,
+.form-horizontal .checkbox-inline {
+  margin-top: 0;
+  margin-bottom: 0;
+  padding-top: 7px;
+}
+
+.form-horizontal .radio,
+.form-horizontal .checkbox {
+  min-height: 27px;
+}
+
+.form-horizontal .form-group {
+  margin-left: 0;
+  margin-right: 0;
+}
+
+.form-horizontal .form-group:before,
+.form-horizontal .form-group:after {
+  content: " ";
+  display: table;
+}
+
+.form-horizontal .form-group:after {
+  clear: both;
+}
+
+ at media (min-width: 992px) {
+  .form-horizontal .control-label {
+    text-align: right;
+    margin-bottom: 0;
+    padding-top: 7px;
+  }
+}
+
+.form-horizontal .has-feedback .form-control-feedback {
+  right: 0;
+}
+
+ at media (min-width: 992px) {
+  .form-horizontal .form-group-lg .control-label {
+    padding-top: 14.333333px;
+    font-size: 18px;
+  }
+}
+
+ at media (min-width: 992px) {
+  .form-horizontal .form-group-sm .control-label {
+    padding-top: 6px;
+    font-size: 12px;
+  }
+}
+
+.btn {
+  display: inline-block;
+  margin-bottom: 0;
+  font-weight: normal;
+  text-align: center;
+  vertical-align: middle;
+  touch-action: manipulation;
+  cursor: pointer;
+  background-image: none;
+  border: 1px solid transparent;
+  white-space: nowrap;
+  padding: 6px 12px;
+  font-size: 14px;
+  line-height: 1.428571429;
+  border-radius: 3px;
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+}
+
+.btn:focus,
+.btn.focus,
+.btn:active:focus,
+.btn:active.focus,
+.btn.active:focus,
+.btn.active.focus {
+  outline: thin dotted;
+  outline: 5px auto -webkit-focus-ring-color;
+  outline-offset: -2px;
+}
+
+.btn:hover,
+.btn:focus,
+.btn.focus {
+  color: #444;
+  text-decoration: none;
+}
+
+.btn:active,
+.btn.active {
+  outline: 0;
+  background-image: none;
+  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+
+.btn.disabled,
+.btn[disabled],
+fieldset[disabled] .btn {
+  cursor: not-allowed;
+  opacity: 0.65;
+  filter: alpha(opacity=65);
+  box-shadow: none;
+}
+
+a.btn.disabled,
+fieldset[disabled] a.btn {
+  pointer-events: none;
+}
+
+.btn-default {
+  color: #444;
+  background-color: #fff;
+  border-color: #ccc;
+}
+
+.btn-default:focus,
+.btn-default.focus {
+  color: #444;
+  background-color: #e6e6e6;
+  border-color: #8c8c8c;
+}
+
+.btn-default:hover {
+  color: #444;
+  background-color: #e6e6e6;
+  border-color: #adadad;
+}
+
+.btn-default:active,
+.btn-default.active,
+.open > .btn-default.dropdown-toggle {
+  color: #444;
+  background-color: #e6e6e6;
+  border-color: #adadad;
+}
+
+.btn-default:active:hover,
+.btn-default:active:focus,
+.btn-default:active.focus,
+.btn-default.active:hover,
+.btn-default.active:focus,
+.btn-default.active.focus,
+.open > .btn-default.dropdown-toggle:hover,
+.open > .btn-default.dropdown-toggle:focus,
+.open > .btn-default.dropdown-toggle.focus {
+  color: #444;
+  background-color: #d4d4d4;
+  border-color: #8c8c8c;
+}
+
+.btn-default:active,
+.btn-default.active,
+.open > .btn-default.dropdown-toggle {
+  background-image: none;
+}
+
+.btn-default.disabled,
+.btn-default.disabled:hover,
+.btn-default.disabled:focus,
+.btn-default.disabled.focus,
+.btn-default.disabled:active,
+.btn-default.disabled.active,
+.btn-default[disabled],
+.btn-default[disabled]:hover,
+.btn-default[disabled]:focus,
+.btn-default[disabled].focus,
+.btn-default[disabled]:active,
+.btn-default[disabled].active,
+fieldset[disabled] .btn-default,
+fieldset[disabled] .btn-default:hover,
+fieldset[disabled] .btn-default:focus,
+fieldset[disabled] .btn-default.focus,
+fieldset[disabled] .btn-default:active,
+fieldset[disabled] .btn-default.active {
+  background-color: #fff;
+  border-color: #ccc;
+}
+
+.btn-default .badge {
+  color: #fff;
+  background-color: #444;
+}
+
+.btn-primary {
+  color: #fff;
+  background-color: #3a393b;
+  border-color: #3a393b;
+}
+
+.btn-primary:focus,
+.btn-primary.focus {
+  color: #fff;
+  background-color: #212021;
+  border-color: black;
+}
+
+.btn-primary:hover {
+  color: #fff;
+  background-color: #212021;
+  border-color: #1b1b1c;
+}
+
+.btn-primary:active,
+.btn-primary.active,
+.open > .btn-primary.dropdown-toggle {
+  color: #fff;
+  background-color: #212021;
+  border-color: #1b1b1c;
+}
+
+.btn-primary:active:hover,
+.btn-primary:active:focus,
+.btn-primary:active.focus,
+.btn-primary.active:hover,
+.btn-primary.active:focus,
+.btn-primary.active.focus,
+.open > .btn-primary.dropdown-toggle:hover,
+.open > .btn-primary.dropdown-toggle:focus,
+.open > .btn-primary.dropdown-toggle.focus {
+  color: #fff;
+  background-color: #0f0e0f;
+  border-color: black;
+}
+
+.btn-primary:active,
+.btn-primary.active,
+.open > .btn-primary.dropdown-toggle {
+  background-image: none;
+}
+
+.btn-primary.disabled,
+.btn-primary.disabled:hover,
+.btn-primary.disabled:focus,
+.btn-primary.disabled.focus,
+.btn-primary.disabled:active,
+.btn-primary.disabled.active,
+.btn-primary[disabled],
+.btn-primary[disabled]:hover,
+.btn-primary[disabled]:focus,
+.btn-primary[disabled].focus,
+.btn-primary[disabled]:active,
+.btn-primary[disabled].active,
+fieldset[disabled] .btn-primary,
+fieldset[disabled] .btn-primary:hover,
+fieldset[disabled] .btn-primary:focus,
+fieldset[disabled] .btn-primary.focus,
+fieldset[disabled] .btn-primary:active,
+fieldset[disabled] .btn-primary.active {
+  background-color: #3a393b;
+  border-color: #3a393b;
+}
+
+.btn-primary .badge {
+  color: #3a393b;
+  background-color: #fff;
+}
+
+.btn-success {
+  color: #fff;
+  background-color: #5cb85c;
+  border-color: #5cb85c;
+}
+
+.btn-success:focus,
+.btn-success.focus {
+  color: #fff;
+  background-color: #449d44;
+  border-color: #2d672d;
+}
+
+.btn-success:hover {
+  color: #fff;
+  background-color: #449d44;
+  border-color: #419641;
+}
+
+.btn-success:active,
+.btn-success.active,
+.open > .btn-success.dropdown-toggle {
+  color: #fff;
+  background-color: #449d44;
+  border-color: #419641;
+}
+
+.btn-success:active:hover,
+.btn-success:active:focus,
+.btn-success:active.focus,
+.btn-success.active:hover,
+.btn-success.active:focus,
+.btn-success.active.focus,
+.open > .btn-success.dropdown-toggle:hover,
+.open > .btn-success.dropdown-toggle:focus,
+.open > .btn-success.dropdown-toggle.focus {
+  color: #fff;
+  background-color: #398439;
+  border-color: #2d672d;
+}
+
+.btn-success:active,
+.btn-success.active,
+.open > .btn-success.dropdown-toggle {
+  background-image: none;
+}
+
+.btn-success.disabled,
+.btn-success.disabled:hover,
+.btn-success.disabled:focus,
+.btn-success.disabled.focus,
+.btn-success.disabled:active,
+.btn-success.disabled.active,
+.btn-success[disabled],
+.btn-success[disabled]:hover,
+.btn-success[disabled]:focus,
+.btn-success[disabled].focus,
+.btn-success[disabled]:active,
+.btn-success[disabled].active,
+fieldset[disabled] .btn-success,
+fieldset[disabled] .btn-success:hover,
+fieldset[disabled] .btn-success:focus,
+fieldset[disabled] .btn-success.focus,
+fieldset[disabled] .btn-success:active,
+fieldset[disabled] .btn-success.active {
+  background-color: #5cb85c;
+  border-color: #5cb85c;
+}
+
+.btn-success .badge {
+  color: #5cb85c;
+  background-color: #fff;
+}
+
+.btn-info {
+  color: #fff;
+  background-color: #5bc0de;
+  border-color: #5bc0de;
+}
+
+.btn-info:focus,
+.btn-info.focus {
+  color: #fff;
+  background-color: #31b0d5;
+  border-color: #1f7e9a;
+}
+
+.btn-info:hover {
+  color: #fff;
+  background-color: #31b0d5;
+  border-color: #2aabd2;
+}
+
+.btn-info:active,
+.btn-info.active,
+.open > .btn-info.dropdown-toggle {
+  color: #fff;
+  background-color: #31b0d5;
+  border-color: #2aabd2;
+}
+
+.btn-info:active:hover,
+.btn-info:active:focus,
+.btn-info:active.focus,
+.btn-info.active:hover,
+.btn-info.active:focus,
+.btn-info.active.focus,
+.open > .btn-info.dropdown-toggle:hover,
+.open > .btn-info.dropdown-toggle:focus,
+.open > .btn-info.dropdown-toggle.focus {
+  color: #fff;
+  background-color: #269abc;
+  border-color: #1f7e9a;
+}
+
+.btn-info:active,
+.btn-info.active,
+.open > .btn-info.dropdown-toggle {
+  background-image: none;
+}
+
+.btn-info.disabled,
+.btn-info.disabled:hover,
+.btn-info.disabled:focus,
+.btn-info.disabled.focus,
+.btn-info.disabled:active,
+.btn-info.disabled.active,
+.btn-info[disabled],
+.btn-info[disabled]:hover,
+.btn-info[disabled]:focus,
+.btn-info[disabled].focus,
+.btn-info[disabled]:active,
+.btn-info[disabled].active,
+fieldset[disabled] .btn-info,
+fieldset[disabled] .btn-info:hover,
+fieldset[disabled] .btn-info:focus,
+fieldset[disabled] .btn-info.focus,
+fieldset[disabled] .btn-info:active,
+fieldset[disabled] .btn-info.active {
+  background-color: #5bc0de;
+  border-color: #5bc0de;
+}
+
+.btn-info .badge {
+  color: #5bc0de;
+  background-color: #fff;
+}
+
+.btn-warning {
+  color: #fff;
+  background-color: #f0ad4e;
+  border-color: #f0ad4e;
+}
+
+.btn-warning:focus,
+.btn-warning.focus {
+  color: #fff;
+  background-color: #ec971f;
+  border-color: #b06d0f;
+}
+
+.btn-warning:hover {
+  color: #fff;
+  background-color: #ec971f;
+  border-color: #eb9316;
+}
+
+.btn-warning:active,
+.btn-warning.active,
+.open > .btn-warning.dropdown-toggle {
+  color: #fff;
+  background-color: #ec971f;
+  border-color: #eb9316;
+}
+
+.btn-warning:active:hover,
+.btn-warning:active:focus,
+.btn-warning:active.focus,
+.btn-warning.active:hover,
+.btn-warning.active:focus,
+.btn-warning.active.focus,
+.open > .btn-warning.dropdown-toggle:hover,
+.open > .btn-warning.dropdown-toggle:focus,
+.open > .btn-warning.dropdown-toggle.focus {
+  color: #fff;
+  background-color: #d58512;
+  border-color: #b06d0f;
+}
+
+.btn-warning:active,
+.btn-warning.active,
+.open > .btn-warning.dropdown-toggle {
+  background-image: none;
+}
+
+.btn-warning.disabled,
+.btn-warning.disabled:hover,
+.btn-warning.disabled:focus,
+.btn-warning.disabled.focus,
+.btn-warning.disabled:active,
+.btn-warning.disabled.active,
+.btn-warning[disabled],
+.btn-warning[disabled]:hover,
+.btn-warning[disabled]:focus,
+.btn-warning[disabled].focus,
+.btn-warning[disabled]:active,
+.btn-warning[disabled].active,
+fieldset[disabled] .btn-warning,
+fieldset[disabled] .btn-warning:hover,
+fieldset[disabled] .btn-warning:focus,
+fieldset[disabled] .btn-warning.focus,
+fieldset[disabled] .btn-warning:active,
+fieldset[disabled] .btn-warning.active {
+  background-color: #f0ad4e;
+  border-color: #f0ad4e;
+}
+
+.btn-warning .badge {
+  color: #f0ad4e;
+  background-color: #fff;
+}
+
+.btn-danger {
+  color: #fff;
+  background-color: #d9534f;
+  border-color: #d9534f;
+}
+
+.btn-danger:focus,
+.btn-danger.focus {
+  color: #fff;
+  background-color: #c9302c;
+  border-color: #8b211e;
+}
+
+.btn-danger:hover {
+  color: #fff;
+  background-color: #c9302c;
+  border-color: #c12e2a;
+}
+
+.btn-danger:active,
+.btn-danger.active,
+.open > .btn-danger.dropdown-toggle {
+  color: #fff;
+  background-color: #c9302c;
+  border-color: #c12e2a;
+}
+
+.btn-danger:active:hover,
+.btn-danger:active:focus,
+.btn-danger:active.focus,
+.btn-danger.active:hover,
+.btn-danger.active:focus,
+.btn-danger.active.focus,
+.open > .btn-danger.dropdown-toggle:hover,
+.open > .btn-danger.dropdown-toggle:focus,
+.open > .btn-danger.dropdown-toggle.focus {
+  color: #fff;
+  background-color: #ac2925;
+  border-color: #8b211e;
+}
+
+.btn-danger:active,
+.btn-danger.active,
+.open > .btn-danger.dropdown-toggle {
+  background-image: none;
+}
+
+.btn-danger.disabled,
+.btn-danger.disabled:hover,
+.btn-danger.disabled:focus,
+.btn-danger.disabled.focus,
+.btn-danger.disabled:active,
+.btn-danger.disabled.active,
+.btn-danger[disabled],
+.btn-danger[disabled]:hover,
+.btn-danger[disabled]:focus,
+.btn-danger[disabled].focus,
+.btn-danger[disabled]:active,
+.btn-danger[disabled].active,
+fieldset[disabled] .btn-danger,
+fieldset[disabled] .btn-danger:hover,
+fieldset[disabled] .btn-danger:focus,
+fieldset[disabled] .btn-danger.focus,
+fieldset[disabled] .btn-danger:active,
+fieldset[disabled] .btn-danger.active {
+  background-color: #d9534f;
+  border-color: #d9534f;
+}
+
+.btn-danger .badge {
+  color: #d9534f;
+  background-color: #fff;
+}
+
+.btn-link {
+  color: #3a393b;
+  font-weight: normal;
+  border-radius: 0;
+}
+
+.btn-link,
+.btn-link:active,
+.btn-link.active,
+.btn-link[disabled],
+fieldset[disabled] .btn-link {
+  background-color: transparent;
+  box-shadow: none;
+}
+
+.btn-link,
+.btn-link:hover,
+.btn-link:focus,
+.btn-link:active {
+  border-color: transparent;
+}
+
+.btn-link:hover,
+.btn-link:focus {
+  color: #141314;
+  text-decoration: underline;
+  background-color: transparent;
+}
+
+.btn-link[disabled]:hover,
+.btn-link[disabled]:focus,
+fieldset[disabled] .btn-link:hover,
+fieldset[disabled] .btn-link:focus {
+  color: #999;
+  text-decoration: none;
+}
+
+.btn-lg, .btn-group-lg > .btn {
+  padding: 10px 16px;
+  font-size: 18px;
+  line-height: 1.3333333;
+  border-radius: 3px;
+}
+
+.btn-sm, .btn-group-sm > .btn {
+  padding: 5px 10px;
+  font-size: 12px;
+  line-height: 1.5;
+  border-radius: 3px;
+}
+
+.btn-xs, .btn-group-xs > .btn {
+  padding: 1px 5px;
+  font-size: 12px;
+  line-height: 1.5;
+  border-radius: 3px;
+}
+
+.btn-block {
+  display: block;
+  width: 100%;
+}
+
+.btn-block + .btn-block {
+  margin-top: 5px;
+}
+
+input[type="submit"].btn-block,
+input[type="reset"].btn-block,
+input[type="button"].btn-block {
+  width: 100%;
+}
+
+.fade {
+  opacity: 0;
+  transition: opacity 0.15s linear;
+}
+
+.fade.in {
+  opacity: 1;
+}
+
+.collapse {
+  display: none;
+}
+
+.collapse.in {
+  display: block;
+}
+
+tr.collapse.in {
+  display: table-row;
+}
+
+tbody.collapse.in {
+  display: table-row-group;
+}
+
+.collapsing {
+  position: relative;
+  height: 0;
+  overflow: hidden;
+  transition-property: height, visibility;
+  transition-duration: 0.35s;
+  transition-timing-function: ease;
+}
+
+.caret {
+  display: inline-block;
+  width: 0;
+  height: 0;
+  margin-left: 2px;
+  vertical-align: middle;
+  border-top: 4px dashed;
+  border-top: 4px solid \9;
+  border-right: 4px solid transparent;
+  border-left: 4px solid transparent;
+}
+
+.dropup,
+.dropdown {
+  position: relative;
+}
+
+.dropdown-toggle:focus {
+  outline: 0;
+}
+
+.dropdown-menu {
+  position: absolute;
+  top: 100%;
+  left: 0;
+  z-index: 1000;
+  display: none;
+  float: left;
+  min-width: 160px;
+  padding: 5px 0;
+  margin: 2px 0 0;
+  list-style: none;
+  font-size: 14px;
+  text-align: left;
+  background-color: #fcfcfc;
+  border: 1px solid #ccc;
+  border: 1px solid #ccc;
+  border-radius: 3px;
+  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+  background-clip: padding-box;
+}
+
+.dropdown-menu.pull-right {
+  right: 0;
+  left: auto;
+}
+
+.dropdown-menu .divider {
+  height: 1px;
+  margin: 9px 0;
+  overflow: hidden;
+  background-color: #eee;
+}
+
+.dropdown-menu > li > a {
+  display: block;
+  padding: 3px 20px;
+  clear: both;
+  font-weight: normal;
+  line-height: 1.428571429;
+  color: #222;
+  white-space: nowrap;
+}
+
+.dropdown-menu > li > a:hover,
+.dropdown-menu > li > a:focus {
+  text-decoration: none;
+  color: #151515;
+  background-color: #f5f5f5;
+}
+
+.dropdown-menu > .active > a,
+.dropdown-menu > .active > a:hover,
+.dropdown-menu > .active > a:focus {
+  color: #fff;
+  text-decoration: none;
+  outline: 0;
+  background-color: #3a393b;
+}
+
+.dropdown-menu > .disabled > a,
+.dropdown-menu > .disabled > a:hover,
+.dropdown-menu > .disabled > a:focus {
+  color: #999;
+}
+
+.dropdown-menu > .disabled > a:hover,
+.dropdown-menu > .disabled > a:focus {
+  text-decoration: none;
+  background-color: transparent;
+  background-image: none;
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  cursor: not-allowed;
+}
+
+.open > .dropdown-menu {
+  display: block;
+}
+
+.open > a {
+  outline: 0;
+}
+
+.dropdown-menu-right {
+  left: auto;
+  right: 0;
+}
+
+.dropdown-menu-left {
+  left: 0;
+  right: auto;
+}
+
+.dropdown-header {
+  display: block;
+  padding: 3px 20px;
+  font-size: 12px;
+  line-height: 1.428571429;
+  color: #999;
+  white-space: nowrap;
+}
+
+.dropdown-backdrop {
+  position: fixed;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  top: 0;
+  z-index: 990;
+}
+
+.pull-right > .dropdown-menu {
+  right: 0;
+  left: auto;
+}
+
+.dropup .caret,
+.navbar-fixed-bottom .dropdown .caret {
+  border-top: 0;
+  border-bottom: 4px dashed;
+  border-bottom: 4px solid \9;
+  content: "";
+}
+
+.dropup .dropdown-menu,
+.navbar-fixed-bottom .dropdown .dropdown-menu {
+  top: auto;
+  bottom: 100%;
+  margin-bottom: 2px;
+}
+
+ at media (min-width: 992px) {
+  .navbar-right .dropdown-menu {
+    right: 0;
+    left: auto;
+  }
+  .navbar-right .dropdown-menu-left {
+    left: 0;
+    right: auto;
+  }
+}
+
+.btn-group,
+.btn-group-vertical {
+  position: relative;
+  display: inline-block;
+  vertical-align: middle;
+}
+
+.btn-group > .btn,
+.btn-group-vertical > .btn {
+  position: relative;
+  float: left;
+}
+
+.btn-group > .btn:hover,
+.btn-group > .btn:focus,
+.btn-group > .btn:active,
+.btn-group > .btn.active,
+.btn-group-vertical > .btn:hover,
+.btn-group-vertical > .btn:focus,
+.btn-group-vertical > .btn:active,
+.btn-group-vertical > .btn.active {
+  z-index: 2;
+}
+
+.btn-group .btn + .btn,
+.btn-group .btn + .btn-group,
+.btn-group .btn-group + .btn,
+.btn-group .btn-group + .btn-group {
+  margin-left: -1px;
+}
+
+.btn-toolbar {
+  margin-left: -5px;
+}
+
+.btn-toolbar:before,
+.btn-toolbar:after {
+  content: " ";
+  display: table;
+}
+
+.btn-toolbar:after {
+  clear: both;
+}
+
+.btn-toolbar .btn,
+.btn-toolbar .btn-group,
+.btn-toolbar .input-group {
+  float: left;
+}
+
+.btn-toolbar > .btn,
+.btn-toolbar > .btn-group,
+.btn-toolbar > .input-group {
+  margin-left: 5px;
+}
+
+.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
+  border-radius: 0;
+}
+
+.btn-group > .btn:first-child {
+  margin-left: 0;
+}
+
+.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
+  border-bottom-right-radius: 0;
+  border-top-right-radius: 0;
+}
+
+.btn-group > .btn:last-child:not(:first-child),
+.btn-group > .dropdown-toggle:not(:first-child) {
+  border-bottom-left-radius: 0;
+  border-top-left-radius: 0;
+}
+
+.btn-group > .btn-group {
+  float: left;
+}
+
+.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
+  border-radius: 0;
+}
+
+.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
+.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
+  border-bottom-right-radius: 0;
+  border-top-right-radius: 0;
+}
+
+.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
+  border-bottom-left-radius: 0;
+  border-top-left-radius: 0;
+}
+
+.btn-group .dropdown-toggle:active,
+.btn-group.open .dropdown-toggle {
+  outline: 0;
+}
+
+.btn-group > .btn + .dropdown-toggle {
+  padding-left: 8px;
+  padding-right: 8px;
+}
+
+.btn-group > .btn-lg + .dropdown-toggle, .btn-group-lg.btn-group > .btn + .dropdown-toggle {
+  padding-left: 12px;
+  padding-right: 12px;
+}
+
+.btn-group.open .dropdown-toggle {
+  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+
+.btn-group.open .dropdown-toggle.btn-link {
+  box-shadow: none;
+}
+
+.btn .caret {
+  margin-left: 0;
+}
+
+.btn-lg .caret, .btn-group-lg > .btn .caret {
+  border-width: 5px 5px 0;
+  border-bottom-width: 0;
+}
+
+.dropup .btn-lg .caret, .dropup .btn-group-lg > .btn .caret {
+  border-width: 0 5px 5px;
+}
+
+.btn-group-vertical > .btn,
+.btn-group-vertical > .btn-group,
+.btn-group-vertical > .btn-group > .btn {
+  display: block;
+  float: none;
+  width: 100%;
+  max-width: 100%;
+}
+
+.btn-group-vertical > .btn-group:before,
+.btn-group-vertical > .btn-group:after {
+  content: " ";
+  display: table;
+}
+
+.btn-group-vertical > .btn-group:after {
+  clear: both;
+}
+
+.btn-group-vertical > .btn-group > .btn {
+  float: none;
+}
+
+.btn-group-vertical > .btn + .btn,
+.btn-group-vertical > .btn + .btn-group,
+.btn-group-vertical > .btn-group + .btn,
+.btn-group-vertical > .btn-group + .btn-group {
+  margin-top: -1px;
+  margin-left: 0;
+}
+
+.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
+  border-radius: 0;
+}
+
+.btn-group-vertical > .btn:first-child:not(:last-child) {
+  border-top-right-radius: 3px;
+  border-bottom-right-radius: 0;
+  border-bottom-left-radius: 0;
+}
+
+.btn-group-vertical > .btn:last-child:not(:first-child) {
+  border-bottom-left-radius: 3px;
+  border-top-right-radius: 0;
+  border-top-left-radius: 0;
+}
+
+.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
+  border-radius: 0;
+}
+
+.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
+.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
+  border-bottom-right-radius: 0;
+  border-bottom-left-radius: 0;
+}
+
+.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
+  border-top-right-radius: 0;
+  border-top-left-radius: 0;
+}
+
+.btn-group-justified {
+  display: table;
+  width: 100%;
+  table-layout: fixed;
+  border-collapse: separate;
+}
+
+.btn-group-justified > .btn,
+.btn-group-justified > .btn-group {
+  float: none;
+  display: table-cell;
+  width: 1%;
+}
+
+.btn-group-justified > .btn-group .btn {
+  width: 100%;
+}
+
+.btn-group-justified > .btn-group .dropdown-menu {
+  left: auto;
+}
+
+[data-toggle="buttons"] > .btn input[type="radio"],
+[data-toggle="buttons"] > .btn input[type="checkbox"],
+[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
+[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
+  position: absolute;
+  clip: rect(0, 0, 0, 0);
+  pointer-events: none;
+}
+
+.input-group {
+  position: relative;
+  display: table;
+  border-collapse: separate;
+}
+
+.input-group[class*="col-"] {
+  float: none;
+  padding-left: 0;
+  padding-right: 0;
+}
+
+.input-group .form-control {
+  position: relative;
+  z-index: 2;
+  float: left;
+  width: 100%;
+  margin-bottom: 0;
+}
+
+.input-group-addon,
+.input-group-btn,
+.input-group .form-control {
+  display: table-cell;
+}
+
+.input-group-addon:not(:first-child):not(:last-child),
+.input-group-btn:not(:first-child):not(:last-child),
+.input-group .form-control:not(:first-child):not(:last-child) {
+  border-radius: 0;
+}
+
+.input-group-addon,
+.input-group-btn {
+  width: 1%;
+  white-space: nowrap;
+  vertical-align: middle;
+}
+
+.input-group-addon {
+  padding: 6px 12px;
+  font-size: 14px;
+  font-weight: normal;
+  line-height: 1;
+  color: #444;
+  text-align: center;
+  background-color: #fff;
+  border: 1px solid #ccc;
+  border-radius: 3px;
+}
+
+.input-group-addon.input-sm, .input-group-sm > .input-group-addon,
+.input-group-sm > .input-group-btn > .input-group-addon.btn {
+  padding: 5px 10px;
+  font-size: 12px;
+  border-radius: 3px;
+}
+
+.input-group-addon.input-lg, .input-group-lg > .input-group-addon,
+.input-group-lg > .input-group-btn > .input-group-addon.btn {
+  padding: 10px 16px;
+  font-size: 18px;
+  border-radius: 3px;
+}
+
+.input-group-addon input[type="radio"],
+.input-group-addon input[type="checkbox"] {
+  margin-top: 0;
+}
+
+.input-group .form-control:first-child,
+.input-group-addon:first-child,
+.input-group-btn:first-child > .btn,
+.input-group-btn:first-child > .btn-group > .btn,
+.input-group-btn:first-child > .dropdown-toggle,
+.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
+.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
+  border-bottom-right-radius: 0;
+  border-top-right-radius: 0;
+}
+
+.input-group-addon:first-child {
+  border-right: 0;
+}
+
+.input-group .form-control:last-child,
+.input-group-addon:last-child,
+.input-group-btn:last-child > .btn,
+.input-group-btn:last-child > .btn-group > .btn,
+.input-group-btn:last-child > .dropdown-toggle,
+.input-group-btn:first-child > .btn:not(:first-child),
+.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
+  border-bottom-left-radius: 0;
+  border-top-left-radius: 0;
+}
+
+.input-group-addon:last-child {
+  border-left: 0;
+}
+
+.input-group-btn {
+  position: relative;
+  font-size: 0;
+  white-space: nowrap;
+}
+
+.input-group-btn > .btn {
+  position: relative;
+}
+
+.input-group-btn > .btn + .btn {
+  margin-left: -1px;
+}
+
+.input-group-btn > .btn:hover,
+.input-group-btn > .btn:focus,
+.input-group-btn > .btn:active {
+  z-index: 2;
+}
+
+.input-group-btn:first-child > .btn,
+.input-group-btn:first-child > .btn-group {
+  margin-right: -1px;
+}
+
+.input-group-btn:last-child > .btn,
+.input-group-btn:last-child > .btn-group {
+  z-index: 2;
+  margin-left: -1px;
+}
+
+.nav {
+  margin-bottom: 0;
+  padding-left: 0;
+  list-style: none;
+}
+
+.nav:before,
+.nav:after {
+  content: " ";
+  display: table;
+}
+
+.nav:after {
+  clear: both;
+}
+
+.nav > li {
+  position: relative;
+  display: block;
+}
+
+.nav > li > a {
+  position: relative;
+  display: block;
+  padding: 10px 15px;
+}
+
+.nav > li > a:hover,
+.nav > li > a:focus {
+  text-decoration: none;
+  background-color: #fff;
+}
+
+.nav > li.disabled > a {
+  color: #999;
+}
+
+.nav > li.disabled > a:hover,
+.nav > li.disabled > a:focus {
+  color: #999;
+  text-decoration: none;
+  background-color: transparent;
+  cursor: not-allowed;
+}
+
+.nav .open > a,
+.nav .open > a:hover,
+.nav .open > a:focus {
+  background-color: #fff;
+  border-color: #3a393b;
+}
+
+.nav .nav-divider {
+  height: 1px;
+  margin: 9px 0;
+  overflow: hidden;
+  background-color: #e5e5e5;
+}
+
+.nav > li > a > img {
+  max-width: none;
+}
+
+.nav-tabs {
+  border-bottom: 1px solid #ddd;
+}
+
+.nav-tabs > li {
+  float: left;
+  margin-bottom: -1px;
+}
+
+.nav-tabs > li > a {
+  margin-right: 2px;
+  line-height: 1.428571429;
+  border: 1px solid transparent;
+  border-radius: 3px 3px 0 0;
+}
+
+.nav-tabs > li > a:hover {
+  border-color: #fff #fff #ddd;
+}
+
+.nav-tabs > li.active > a,
+.nav-tabs > li.active > a:hover,
+.nav-tabs > li.active > a:focus {
+  color: #444;
+  background-color: #fff;
+  border: 1px solid #ddd;
+  border-bottom-color: transparent;
+  cursor: default;
+}
+
+.nav-pills > li {
+  float: left;
+}
+
+.nav-pills > li > a {
+  border-radius: 3px;
+}
+
+.nav-pills > li + li {
+  margin-left: 2px;
+}
+
+.nav-pills > li.active > a,
+.nav-pills > li.active > a:hover,
+.nav-pills > li.active > a:focus {
+  color: #fff;
+  background-color: #3a393b;
+}
+
+.nav-stacked > li {
+  float: none;
+}
+
+.nav-stacked > li + li {
+  margin-top: 2px;
+  margin-left: 0;
+}
+
+.nav-justified, .nav-tabs.nav-justified {
+  width: 100%;
+}
+
+.nav-justified > li, .nav-tabs.nav-justified > li {
+  float: none;
+}
+
+.nav-justified > li > a, .nav-tabs.nav-justified > li > a {
+  text-align: center;
+  margin-bottom: 5px;
+}
+
+.nav-justified > .dropdown .dropdown-menu {
+  top: auto;
+  left: auto;
+}
+
+ at media (min-width: 992px) {
+  .nav-justified > li, .nav-tabs.nav-justified > li {
+    display: table-cell;
+    width: 1%;
+  }
+  .nav-justified > li > a, .nav-tabs.nav-justified > li > a {
+    margin-bottom: 0;
+  }
+}
+
+.nav-tabs-justified, .nav-tabs.nav-justified {
+  border-bottom: 0;
+}
+
+.nav-tabs-justified > li > a, .nav-tabs.nav-justified > li > a {
+  margin-right: 0;
+  border-radius: 3px;
+}
+
+.nav-tabs-justified > .active > a,
+.nav-tabs.nav-justified > .active > a, .nav-tabs-justified > .active > a:hover,
+.nav-tabs.nav-justified > .active > a:hover, .nav-tabs-justified > .active > a:focus, .nav-tabs.nav-justified > .active > a:focus {
+  border: 1px solid #ddd;
+}
+
+ at media (min-width: 992px) {
+  .nav-tabs-justified > li > a, .nav-tabs.nav-justified > li > a {
+    border-bottom: 1px solid #ddd;
+    border-radius: 3px 3px 0 0;
+  }
+  .nav-tabs-justified > .active > a,
+  .nav-tabs.nav-justified > .active > a, .nav-tabs-justified > .active > a:hover,
+  .nav-tabs.nav-justified > .active > a:hover, .nav-tabs-justified > .active > a:focus, .nav-tabs.nav-justified > .active > a:focus {
+    border-bottom-color: #fff;
+  }
+}
+
+.tab-content > .tab-pane {
+  display: none;
+}
+
+.tab-content > .active {
+  display: block;
+}
+
+.nav-tabs .dropdown-menu {
+  margin-top: -1px;
+  border-top-right-radius: 0;
+  border-top-left-radius: 0;
+}
+
+.navbar {
+  position: relative;
+  min-height: 50px;
+  margin-bottom: 20px;
+  border: 1px solid transparent;
+}
+
+.navbar:before,
+.navbar:after {
+  content: " ";
+  display: table;
+}
+
+.navbar:after {
+  clear: both;
+}
+
+ at media (min-width: 992px) {
+  .navbar {
+    border-radius: 3px;
+  }
+}
+
+.navbar-header:before,
+.navbar-header:after {
+  content: " ";
+  display: table;
+}
+
+.navbar-header:after {
+  clear: both;
+}
+
+ at media (min-width: 992px) {
+  .navbar-header {
+    float: left;
+  }
+}
+
+.navbar-collapse {
+  overflow-x: visible;
+  padding-right: 0;
+  padding-left: 0;
+  border-top: 1px solid transparent;
+  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
+  -webkit-overflow-scrolling: touch;
+}
+
+.navbar-collapse:before,
+.navbar-collapse:after {
+  content: " ";
+  display: table;
+}
+
+.navbar-collapse:after {
+  clear: both;
+}
+
+.navbar-collapse.in {
+  overflow-y: auto;
+}
+
+ at media (min-width: 992px) {
+  .navbar-collapse {
+    width: auto;
+    border-top: 0;
+    box-shadow: none;
+  }
+  .navbar-collapse.collapse {
+    display: block !important;
+    height: auto !important;
+    padding-bottom: 0;
+    overflow: visible !important;
+  }
+  .navbar-collapse.in {
+    overflow-y: visible;
+  }
+  .navbar-fixed-top .navbar-collapse,
+  .navbar-static-top .navbar-collapse,
+  .navbar-fixed-bottom .navbar-collapse {
+    padding-left: 0;
+    padding-right: 0;
+  }
+}
+
+.navbar-fixed-top .navbar-collapse,
+.navbar-fixed-bottom .navbar-collapse {
+  max-height: 340px;
+}
+
+ at media (max-device-width: 480px) and (orientation: landscape) {
+  .navbar-fixed-top .navbar-collapse,
+  .navbar-fixed-bottom .navbar-collapse {
+    max-height: 200px;
+  }
+}
+
+.container > .navbar-header,
+.container > .navbar-collapse,
+.container-fluid > .navbar-header,
+.container-fluid > .navbar-collapse {
+  margin-right: 0;
+  margin-left: 0;
+}
+
+ at media (min-width: 992px) {
+  .container > .navbar-header,
+  .container > .navbar-collapse,
+  .container-fluid > .navbar-header,
+  .container-fluid > .navbar-collapse {
+    margin-right: 0;
+    margin-left: 0;
+  }
+}
+
+.navbar-static-top {
+  z-index: 1000;
+  border-width: 0 0 1px;
+}
+
+ at media (min-width: 992px) {
+  .navbar-static-top {
+    border-radius: 0;
+  }
+}
+
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+  position: fixed;
+  right: 0;
+  left: 0;
+  z-index: 1030;
+}
+
+ at media (min-width: 992px) {
+  .navbar-fixed-top,
+  .navbar-fixed-bottom {
+    border-radius: 0;
+  }
+}
+
+.navbar-fixed-top {
+  top: 0;
+  border-width: 0 0 1px;
+}
+
+.navbar-fixed-bottom {
+  bottom: 0;
+  margin-bottom: 0;
+  border-width: 1px 0 0;
+}
+
+.navbar-brand {
+  float: left;
+  padding: 15px 0;
+  font-size: 18px;
+  line-height: 20px;
+  height: 50px;
+}
+
+.navbar-brand:hover,
+.navbar-brand:focus {
+  text-decoration: none;
+}
+
+.navbar-brand > img {
+  display: block;
+}
+
+ at media (min-width: 992px) {
+  .navbar > .container .navbar-brand,
+  .navbar > .container-fluid .navbar-brand {
+    margin-left: 0;
+  }
+}
+
+.navbar-toggle {
+  position: relative;
+  float: right;
+  margin-right: 0;
+  padding: 9px 10px;
+  margin-top: 8px;
+  margin-bottom: 8px;
+  background-color: transparent;
+  background-image: none;
+  border: 1px solid transparent;
+  border-radius: 3px;
+}
+
+.navbar-toggle:focus {
+  outline: 0;
+}
+
+.navbar-toggle .icon-bar {
+  display: block;
+  width: 22px;
+  height: 2px;
+  border-radius: 1px;
+}
+
+.navbar-toggle .icon-bar + .icon-bar {
+  margin-top: 4px;
+}
+
+ at media (min-width: 992px) {
+  .navbar-toggle {
+    display: none;
+  }
+}
+
+.navbar-nav {
+  margin: 7.5px 0;
+}
+
+.navbar-nav > li > a {
+  padding-top: 10px;
+  padding-bottom: 10px;
+  line-height: 20px;
+}
+
+ at media (max-width: 991px) {
+  .navbar-nav .open .dropdown-menu {
+    position: static;
+    float: none;
+    width: auto;
+    margin-top: 0;
+    background-color: transparent;
+    border: 0;
+    box-shadow: none;
+  }
+  .navbar-nav .open .dropdown-menu > li > a,
+  .navbar-nav .open .dropdown-menu .dropdown-header {
+    padding: 5px 15px 5px 25px;
+  }
+  .navbar-nav .open .dropdown-menu > li > a {
+    line-height: 20px;
+  }
+  .navbar-nav .open .dropdown-menu > li > a:hover,
+  .navbar-nav .open .dropdown-menu > li > a:focus {
+    background-image: none;
+  }
+}
+
+ at media (min-width: 992px) {
+  .navbar-nav {
+    float: left;
+    margin: 0;
+  }
+  .navbar-nav > li {
+    float: left;
+  }
+  .navbar-nav > li > a {
+    padding-top: 15px;
+    padding-bottom: 15px;
+  }
+}
+
+.navbar-form {
+  margin-left: 0;
+  margin-right: 0;
+  padding: 10px 0;
+  border-top: 1px solid transparent;
+  border-bottom: 1px solid transparent;
+  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+  margin-top: 8px;
+  margin-bottom: 8px;
+}
+
+ at media (min-width: 992px) {
+  .navbar-form .form-group {
+    display: inline-block;
+    margin-bottom: 0;
+    vertical-align: middle;
+  }
+  .navbar-form .form-control {
+    display: inline-block;
+    width: auto;
+    vertical-align: middle;
+  }
+  .navbar-form .form-control-static {
+    display: inline-block;
+  }
+  .navbar-form .input-group {
+    display: inline-table;
+    vertical-align: middle;
+  }
+  .navbar-form .input-group .input-group-addon,
+  .navbar-form .input-group .input-group-btn,
+  .navbar-form .input-group .form-control {
+    width: auto;
+  }
+  .navbar-form .input-group > .form-control {
+    width: 100%;
+  }
+  .navbar-form .control-label {
+    margin-bottom: 0;
+    vertical-align: middle;
+  }
+  .navbar-form .radio,
+  .navbar-form .checkbox {
+    display: inline-block;
+    margin-top: 0;
+    margin-bottom: 0;
+    vertical-align: middle;
+  }
+  .navbar-form .radio label,
+  .navbar-form .checkbox label {
+    padding-left: 0;
+  }
+  .navbar-form .radio input[type="radio"],
+  .navbar-form .checkbox input[type="checkbox"] {
+    position: relative;
+    margin-left: 0;
+  }
+  .navbar-form .has-feedback .form-control-feedback {
+    top: 0;
+  }
+}
+
+ at media (max-width: 991px) {
+  .navbar-form .form-group {
+    margin-bottom: 5px;
+  }
+  .navbar-form .form-group:last-child {
+    margin-bottom: 0;
+  }
+}
+
+ at media (min-width: 992px) {
+  .navbar-form {
+    width: auto;
+    border: 0;
+    margin-left: 0;
+    margin-right: 0;
+    padding-top: 0;
+    padding-bottom: 0;
+    box-shadow: none;
+  }
+}
+
+.navbar-nav > li > .dropdown-menu {
+  margin-top: 0;
+  border-top-right-radius: 0;
+  border-top-left-radius: 0;
+}
+
+.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
+  margin-bottom: 0;
+  border-top-right-radius: 3px;
+  border-top-left-radius: 3px;
+  border-bottom-right-radius: 0;
+  border-bottom-left-radius: 0;
+}
+
+.navbar-btn {
+  margin-top: 8px;
+  margin-bottom: 8px;
+}
+
+.navbar-btn.btn-sm, .btn-group-sm > .navbar-btn.btn {
+  margin-top: 10px;
+  margin-bottom: 10px;
+}
+
+.navbar-btn.btn-xs, .btn-group-xs > .navbar-btn.btn {
+  margin-top: 14px;
+  margin-bottom: 14px;
+}
+
+.navbar-text {
+  margin-top: 15px;
+  margin-bottom: 15px;
+}
+
+ at media (min-width: 992px) {
+  .navbar-text {
+    float: left;
+    margin-left: 0;
+    margin-right: 0;
+  }
+}
+
+ at media (min-width: 992px) {
+  .navbar-left {
+    float: left !important;
+  }
+  .navbar-right {
+    float: right !important;
+    margin-right: 0;
+  }
+  .navbar-right ~ .navbar-right {
+    margin-right: 0;
+  }
+}
+
+.navbar-default {
+  background-color: #f8f8f8;
+  border-color: #e7e7e7;
+}
+
+.navbar-default .navbar-brand {
+  color: #777;
+}
+
+.navbar-default .navbar-brand:hover,
+.navbar-default .navbar-brand:focus {
+  color: #5e5e5e;
+  background-color: transparent;
+}
+
+.navbar-default .navbar-text {
+  color: #777;
+}
+
+.navbar-default .navbar-nav > li > a {
+  color: #777;
+}
+
+.navbar-default .navbar-nav > li > a:hover,
+.navbar-default .navbar-nav > li > a:focus {
+  color: #333;
+  background-color: transparent;
+}
+
+.navbar-default .navbar-nav > .active > a,
+.navbar-default .navbar-nav > .active > a:hover,
+.navbar-default .navbar-nav > .active > a:focus {
+  color: #555;
+  background-color: #e7e7e7;
+}
+
+.navbar-default .navbar-nav > .disabled > a,
+.navbar-default .navbar-nav > .disabled > a:hover,
+.navbar-default .navbar-nav > .disabled > a:focus {
+  color: #ccc;
+  background-color: transparent;
+}
+
+.navbar-default .navbar-toggle {
+  border-color: #ddd;
+}
+
+.navbar-default .navbar-toggle:hover,
+.navbar-default .navbar-toggle:focus {
+  background-color: #ddd;
+}
+
+.navbar-default .navbar-toggle .icon-bar {
+  background-color: #888;
+}
+
+.navbar-default .navbar-collapse,
+.navbar-default .navbar-form {
+  border-color: #e7e7e7;
+}
+
+.navbar-default .navbar-nav > .open > a,
+.navbar-default .navbar-nav > .open > a:hover,
+.navbar-default .navbar-nav > .open > a:focus {
+  background-color: #e7e7e7;
+  color: #555;
+}
+
+ at media (max-width: 991px) {
+  .navbar-default .navbar-nav .open .dropdown-menu > li > a {
+    color: #777;
+  }
+  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
+  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
+    color: #333;
+    background-color: transparent;
+  }
+  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
+  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
+  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
+    color: #555;
+    background-color: #e7e7e7;
+  }
+  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
+  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
+  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+    color: #ccc;
+    background-color: transparent;
+  }
+}
+
+.navbar-default .navbar-link {
+  color: #777;
+}
+
+.navbar-default .navbar-link:hover {
+  color: #333;
+}
+
+.navbar-default .btn-link {
+  color: #777;
+}
+
+.navbar-default .btn-link:hover,
+.navbar-default .btn-link:focus {
+  color: #333;
+}
+
+.navbar-default .btn-link[disabled]:hover,
+.navbar-default .btn-link[disabled]:focus,
+fieldset[disabled] .navbar-default .btn-link:hover,
+fieldset[disabled] .navbar-default .btn-link:focus {
+  color: #ccc;
+}
+
+.navbar-inverse {
+  background-color: #222;
+  border-color: #090909;
+}
+
+.navbar-inverse .navbar-brand {
+  color: #bfbfbf;
+}
+
+.navbar-inverse .navbar-brand:hover,
+.navbar-inverse .navbar-brand:focus {
+  color: #fff;
+  background-color: transparent;
+}
+
+.navbar-inverse .navbar-text {
+  color: #bfbfbf;
+}
+
+.navbar-inverse .navbar-nav > li > a {
+  color: #bfbfbf;
+}
+
+.navbar-inverse .navbar-nav > li > a:hover,
+.navbar-inverse .navbar-nav > li > a:focus {
+  color: #fff;
+  background-color: transparent;
+}
+
+.navbar-inverse .navbar-nav > .active > a,
+.navbar-inverse .navbar-nav > .active > a:hover,
+.navbar-inverse .navbar-nav > .active > a:focus {
+  color: #fff;
+  background-color: #090909;
+}
+
+.navbar-inverse .navbar-nav > .disabled > a,
+.navbar-inverse .navbar-nav > .disabled > a:hover,
+.navbar-inverse .navbar-nav > .disabled > a:focus {
+  color: #444;
+  background-color: transparent;
+}
+
+.navbar-inverse .navbar-toggle {
+  border-color: #333;
+}
+
+.navbar-inverse .navbar-toggle:hover,
+.navbar-inverse .navbar-toggle:focus {
+  background-color: #333;
+}
+
+.navbar-inverse .navbar-toggle .icon-bar {
+  background-color: #fff;
+}
+
+.navbar-inverse .navbar-collapse,
+.navbar-inverse .navbar-form {
+  border-color: #101010;
+}
+
+.navbar-inverse .navbar-nav > .open > a,
+.navbar-inverse .navbar-nav > .open > a:hover,
+.navbar-inverse .navbar-nav > .open > a:focus {
+  background-color: #090909;
+  color: #fff;
+}
+
+ at media (max-width: 991px) {
+  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
+    border-color: #090909;
+  }
+  .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
+    background-color: #090909;
+  }
+  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
+    color: #bfbfbf;
+  }
+  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
+  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
+    color: #fff;
+    background-color: transparent;
+  }
+  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
+  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
+  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
+    color: #fff;
+    background-color: #090909;
+  }
+  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
+  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
+  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+    color: #444;
+    background-color: transparent;
+  }
+}
+
+.navbar-inverse .navbar-link {
+  color: #bfbfbf;
+}
+
+.navbar-inverse .navbar-link:hover {
+  color: #fff;
+}
+
+.navbar-inverse .btn-link {
+  color: #bfbfbf;
+}
+
+.navbar-inverse .btn-link:hover,
+.navbar-inverse .btn-link:focus {
+  color: #fff;
+}
+
+.navbar-inverse .btn-link[disabled]:hover,
+.navbar-inverse .btn-link[disabled]:focus,
+fieldset[disabled] .navbar-inverse .btn-link:hover,
+fieldset[disabled] .navbar-inverse .btn-link:focus {
+  color: #444;
+}
+
+.breadcrumb {
+  padding: 8px 15px;
+  margin-bottom: 20px;
+  list-style: none;
+  background-color: #f5f5f5;
+  border-radius: 3px;
+}
+
+.breadcrumb > li {
+  display: inline-block;
+}
+
+.breadcrumb > li + li:before {
+  content: "/\\00a0";
+  padding: 0 5px;
+  color: #ccc;
+}
+
+.breadcrumb > .active {
+  color: #999;
+}
+
+.pagination {
+  display: inline-block;
+  padding-left: 0;
+  margin: 20px 0;
+  border-radius: 3px;
+}
+
+.pagination > li {
+  display: inline;
+}
+
+.pagination > li > a,
+.pagination > li > span {
+  position: relative;
+  float: left;
+  padding: 6px 12px;
+  line-height: 1.428571429;
+  text-decoration: none;
+  color: #3a393b;
+  background-color: #fff;
+  border: 1px solid #ddd;
+  margin-left: -1px;
+}
+
+.pagination > li:first-child > a,
+.pagination > li:first-child > span {
+  margin-left: 0;
+  border-bottom-left-radius: 3px;
+  border-top-left-radius: 3px;
+}
+
+.pagination > li:last-child > a,
+.pagination > li:last-child > span {
+  border-bottom-right-radius: 3px;
+  border-top-right-radius: 3px;
+}
+
+.pagination > li > a:hover,
+.pagination > li > a:focus,
+.pagination > li > span:hover,
+.pagination > li > span:focus {
+  z-index: 3;
+  color: #141314;
+  background-color: #fff;
+  border-color: #ddd;
+}
+
+.pagination > .active > a,
+.pagination > .active > a:hover,
+.pagination > .active > a:focus,
+.pagination > .active > span,
+.pagination > .active > span:hover,
+.pagination > .active > span:focus {
+  z-index: 2;
+  color: #fff;
+  background-color: #3a393b;
+  border-color: #3a393b;
+  cursor: default;
+}
+
+.pagination > .disabled > span,
+.pagination > .disabled > span:hover,
+.pagination > .disabled > span:focus,
+.pagination > .disabled > a,
+.pagination > .disabled > a:hover,
+.pagination > .disabled > a:focus {
+  color: #999;
+  background-color: #fff;
+  border-color: #ddd;
+  cursor: not-allowed;
+}
+
+.pagination-lg > li > a,
+.pagination-lg > li > span {
+  padding: 10px 16px;
+  font-size: 18px;
+  line-height: 1.3333333;
+}
+
+.pagination-lg > li:first-child > a,
+.pagination-lg > li:first-child > span {
+  border-bottom-left-radius: 3px;
+  border-top-left-radius: 3px;
+}
+
+.pagination-lg > li:last-child > a,
+.pagination-lg > li:last-child > span {
+  border-bottom-right-radius: 3px;
+  border-top-right-radius: 3px;
+}
+
+.pagination-sm > li > a,
+.pagination-sm > li > span {
+  padding: 5px 10px;
+  font-size: 12px;
+  line-height: 1.5;
+}
+
+.pagination-sm > li:first-child > a,
+.pagination-sm > li:first-child > span {
+  border-bottom-left-radius: 3px;
+  border-top-left-radius: 3px;
+}
+
+.pagination-sm > li:last-child > a,
+.pagination-sm > li:last-child > span {
+  border-bottom-right-radius: 3px;
+  border-top-right-radius: 3px;
+}
+
+.pager {
+  padding-left: 0;
+  margin: 20px 0;
+  list-style: none;
+  text-align: center;
+}
+
+.pager:before,
+.pager:after {
+  content: " ";
+  display: table;
+}
+
+.pager:after {
+  clear: both;
+}
+
+.pager li {
+  display: inline;
+}
+
+.pager li > a,
+.pager li > span {
+  display: inline-block;
+  padding: 5px 14px;
+  background-color: #fff;
+  border: 1px solid #ddd;
+  border-radius: 15px;
+}
+
+.pager li > a:hover,
+.pager li > a:focus {
+  text-decoration: none;
+  background-color: #fff;
+}
+
+.pager .next > a,
+.pager .next > span {
+  float: right;
+}
+
+.pager .previous > a,
+.pager .previous > span {
+  float: left;
+}
+
+.pager .disabled > a,
+.pager .disabled > a:hover,
+.pager .disabled > a:focus,
+.pager .disabled > span {
+  color: #999;
+  background-color: #fff;
+  cursor: not-allowed;
+}
+
+.label {
+  display: inline;
+  padding: 0.2em 0.6em 0.3em;
+  font-size: 75%;
+  font-weight: bold;
+  line-height: 1;
+  color: #fff;
+  text-align: center;
+  white-space: nowrap;
+  vertical-align: baseline;
+  border-radius: .25em;
+}
+
+.label:empty {
+  display: none;
+}
+
+.btn .label {
+  position: relative;
+  top: -1px;
+}
+
+a.label:hover,
+a.label:focus {
+  color: #fff;
+  text-decoration: none;
+  cursor: pointer;
+}
+
+.label-default {
+  background-color: #999;
+}
+
+.label-default[href]:hover,
+.label-default[href]:focus {
+  background-color: gray;
+}
+
+.label-primary {
+  background-color: #3a393b;
+}
+
+.label-primary[href]:hover,
+.label-primary[href]:focus {
+  background-color: #212021;
+}
+
+.label-success {
+  background-color: #5cb85c;
+}
+
+.label-success[href]:hover,
+.label-success[href]:focus {
+  background-color: #449d44;
+}
+
+.label-info {
+  background-color: #5bc0de;
+}
+
+.label-info[href]:hover,
+.label-info[href]:focus {
+  background-color: #31b0d5;
+}
+
+.label-warning {
+  background-color: #f0ad4e;
+}
+
+.label-warning[href]:hover,
+.label-warning[href]:focus {
+  background-color: #ec971f;
+}
+
+.label-danger {
+  background-color: #d9534f;
+}
+
+.label-danger[href]:hover,
+.label-danger[href]:focus {
+  background-color: #c9302c;
+}
+
+.badge {
+  display: inline-block;
+  min-width: 10px;
+  padding: 3px 7px;
+  font-size: 12px;
+  font-weight: bold;
+  color: #fff;
+  line-height: 1;
+  vertical-align: middle;
+  white-space: nowrap;
+  text-align: center;
+  background-color: #999;
+  border-radius: 10px;
+}
+
+.badge:empty {
+  display: none;
+}
+
+.btn .badge {
+  position: relative;
+  top: -1px;
+}
+
+.btn-xs .badge,
+.btn-group-xs > .btn .badge,
+.btn-group-xs > .btn .badge {
+  top: 0;
+  padding: 1px 5px;
+}
+
+.list-group-item.active > .badge,
+.nav-pills > .active > a > .badge {
+  color: #3a393b;
+  background-color: #fff;
+}
+
+.list-group-item > .badge {
+  float: right;
+}
+
+.list-group-item > .badge + .badge {
+  margin-right: 5px;
+}
+
+.nav-pills > li > a > .badge {
+  margin-left: 3px;
+}
+
+a.badge:hover,
+a.badge:focus {
+  color: #fff;
+  text-decoration: none;
+  cursor: pointer;
+}
+
+.jumbotron {
+  padding-top: 30px;
+  padding-bottom: 30px;
+  margin-bottom: 30px;
+  color: inherit;
+  background-color: #fff;
+}
+
+.jumbotron h1,
+.jumbotron .h1 {
+  color: inherit;
+}
+
+.jumbotron p {
+  margin-bottom: 15px;
+  font-size: 21px;
+  font-weight: 200;
+}
+
+.jumbotron > hr {
+  border-top-color: #e6e6e6;
+}
+
+.container .jumbotron,
+.container-fluid .jumbotron {
+  border-radius: 3px;
+}
+
+.jumbotron .container {
+  max-width: 100%;
+}
+
+ at media screen and (min-width: 992px) {
+  .jumbotron {
+    padding-top: 48px;
+    padding-bottom: 48px;
+  }
+  .container .jumbotron,
+  .container-fluid .jumbotron {
+    padding-left: 60px;
+    padding-right: 60px;
+  }
+  .jumbotron h1,
+  .jumbotron .h1 {
+    font-size: 63px;
+  }
+}
+
+.thumbnail {
+  display: block;
+  padding: 4px;
+  margin-bottom: 20px;
+  line-height: 1.428571429;
+  background-color: #fff;
+  border: 1px solid #ddd;
+  border-radius: 3px;
+  transition: border 0.2s ease-in-out;
+}
+
+.thumbnail > img,
+.thumbnail a > img {
+  display: block;
+  max-width: 100%;
+  height: auto;
+  margin-left: auto;
+  margin-right: auto;
+}
+
+.thumbnail .caption {
+  padding: 9px;
+  color: #222;
+}
+
+a.thumbnail:hover,
+a.thumbnail:focus,
+a.thumbnail.active {
+  border-color: #3a393b;
+}
+
+.alert {
+  padding: 8px 15px;
+  margin-bottom: 20px;
+  border: 1px solid transparent;
+  border-radius: 0;
+}
+
+.alert h4 {
+  margin-top: 0;
+  color: inherit;
+}
+
+.alert .alert-link {
+  font-weight: bold;
+}
+
+.alert > p,
+.alert > ul {
+  margin-bottom: 0;
+}
+
+.alert > p + p {
+  margin-top: 5px;
+}
+
+.alert-dismissable, .alert-dismissible {
+  padding-right: 8px 15px20;
+}
+
+.alert-dismissable .close, .alert-dismissible .close {
+  position: relative;
+  top: -2px;
+  right: -21px;
+  color: inherit;
+}
+
+.alert-success {
+  background-color: #dae6cb;
+  border-color: #8cc63f;
+  color: #6c6c6c;
+}
+
+.alert-success hr {
+  border-top-color: #7fb636;
+}
+
+.alert-success .alert-link {
+  color: #525252;
+}
+
+.alert-info {
+  background-color: #d9edf7;
+  border-color: #008abf;
+  color: #6c6c6c;
+}
+
+.alert-info hr {
+  border-top-color: #0078a6;
+}
+
+.alert-info .alert-link {
+  color: #525252;
+}
+
+.alert-warning {
+  background-color: #f1e3c2;
+  border-color: #fdb813;
+  color: #6c6c6c;
+}
+
+.alert-warning hr {
+  border-top-color: #f4ad02;
+}
+
+.alert-warning .alert-link {
+  color: #525252;
+}
+
+.alert-danger {
+  background-color: #eac3c7;
+  border-color: #d9182d;
+  color: #6c6c6c;
+}
+
+.alert-danger hr {
+  border-top-color: #c21528;
+}
+
+.alert-danger .alert-link {
+  color: #525252;
+}
+
+ at -webkit-keyframes progress-bar-stripes {
+  from {
+    background-position: 40px 0;
+  }
+  to {
+    background-position: 0 0;
+  }
+}
+
+ at keyframes progress-bar-stripes {
+  from {
+    background-position: 40px 0;
+  }
+  to {
+    background-position: 0 0;
+  }
+}
+
+.progress {
+  overflow: hidden;
+  height: 20px;
+  margin-bottom: 20px;
+  background-color: #f5f5f5;
+  border-radius: 3px;
+  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+}
+
+.progress-bar {
+  float: left;
+  width: 0%;
+  height: 100%;
+  font-size: 12px;
+  line-height: 20px;
+  color: #fff;
+  text-align: center;
+  background-color: #3a393b;
+  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+  transition: width 0.6s ease;
+}
+
+.progress-striped .progress-bar,
+.progress-bar-striped {
+  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-size: 40px 40px;
+}
+
+.progress.active .progress-bar,
+.progress-bar.active {
+  -webkit-animation: progress-bar-stripes 2s linear infinite;
+  animation: progress-bar-stripes 2s linear infinite;
+}
+
+.progress-bar-success {
+  background-color: #5cb85c;
+}
+
+.progress-striped .progress-bar-success {
+  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+
+.progress-bar-info {
+  background-color: #5bc0de;
+}
+
+.progress-striped .progress-bar-info {
+  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+
+.progress-bar-warning {
+  background-color: #f0ad4e;
+}
+
+.progress-striped .progress-bar-warning {
+  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+
+.progress-bar-danger {
+  background-color: #d9534f;
+}
+
+.progress-striped .progress-bar-danger {
+  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+
+.media {
+  margin-top: 15px;
+}
+
+.media:first-child {
+  margin-top: 0;
+}
+
+.media,
+.media-body {
+  zoom: 1;
+  overflow: hidden;
+}
+
+.media-body {
+  width: 10000px;
+}
+
+.media-object {
+  display: block;
+}
+
+.media-object.img-thumbnail {
+  max-width: none;
+}
+
+.media-right,
+.media > .pull-right {
+  padding-left: 10px;
+}
+
+.media-left,
+.media > .pull-left {
+  padding-right: 10px;
+}
+
+.media-left,
+.media-right,
+.media-body {
+  display: table-cell;
+  vertical-align: top;
+}
+
+.media-middle {
+  vertical-align: middle;
+}
+
+.media-bottom {
+  vertical-align: bottom;
+}
+
+.media-heading {
+  margin-top: 0;
+  margin-bottom: 5px;
+}
+
+.media-list {
+  padding-left: 0;
+  list-style: none;
+}
+
+.list-group {
+  margin-bottom: 20px;
+  padding-left: 0;
+}
+
+.list-group-item {
+  position: relative;
+  display: block;
+  padding: 10px 15px;
+  margin-bottom: -1px;
+  background-color: #fff;
+  border: 1px solid #ddd;
+}
+
+.list-group-item:first-child {
+  border-top-right-radius: 3px;
+  border-top-left-radius: 3px;
+}
+
+.list-group-item:last-child {
+  margin-bottom: 0;
+  border-bottom-right-radius: 3px;
+  border-bottom-left-radius: 3px;
+}
+
+a.list-group-item,
+button.list-group-item {
+  color: #555;
+}
+
+a.list-group-item .list-group-item-heading,
+button.list-group-item .list-group-item-heading {
+  color: #333;
+}
+
+a.list-group-item:hover,
+a.list-group-item:focus,
+button.list-group-item:hover,
+button.list-group-item:focus {
+  text-decoration: none;
+  color: #555;
+  background-color: #f5f5f5;
+}
+
+button.list-group-item {
+  width: 100%;
+  text-align: left;
+}
+
+.list-group-item.disabled,
+.list-group-item.disabled:hover,
+.list-group-item.disabled:focus {
+  background-color: #fff;
+  color: #999;
+  cursor: not-allowed;
+}
+
+.list-group-item.disabled .list-group-item-heading,
+.list-group-item.disabled:hover .list-group-item-heading,
+.list-group-item.disabled:focus .list-group-item-heading {
+  color: inherit;
+}
+
+.list-group-item.disabled .list-group-item-text,
+.list-group-item.disabled:hover .list-group-item-text,
+.list-group-item.disabled:focus .list-group-item-text {
+  color: #999;
+}
+
+.list-group-item.active,
+.list-group-item.active:hover,
+.list-group-item.active:focus {
+  z-index: 2;
+  color: #fff;
+  background-color: #3a393b;
+  border-color: #3a393b;
+}
+
+.list-group-item.active .list-group-item-heading,
+.list-group-item.active .list-group-item-heading > small,
+.list-group-item.active .list-group-item-heading > .small,
+.list-group-item.active:hover .list-group-item-heading,
+.list-group-item.active:hover .list-group-item-heading > small,
+.list-group-item.active:hover .list-group-item-heading > .small,
+.list-group-item.active:focus .list-group-item-heading,
+.list-group-item.active:focus .list-group-item-heading > small,
+.list-group-item.active:focus .list-group-item-heading > .small {
+  color: inherit;
+}
+
+.list-group-item.active .list-group-item-text,
+.list-group-item.active:hover .list-group-item-text,
+.list-group-item.active:focus .list-group-item-text {
+  color: #a09ea2;
+}
+
+.list-group-item-success {
+  color: #6c6c6c;
+  background-color: #dae6cb;
+}
+
+a.list-group-item-success,
+button.list-group-item-success {
+  color: #6c6c6c;
+}
+
+a.list-group-item-success .list-group-item-heading,
+button.list-group-item-success .list-group-item-heading {
+  color: inherit;
+}
+
+a.list-group-item-success:hover,
+a.list-group-item-success:focus,
+button.list-group-item-success:hover,
+button.list-group-item-success:focus {
+  color: #6c6c6c;
+  background-color: #cedeba;
+}
+
+a.list-group-item-success.active,
+a.list-group-item-success.active:hover,
+a.list-group-item-success.active:focus,
+button.list-group-item-success.active,
+button.list-group-item-success.active:hover,
+button.list-group-item-success.active:focus {
+  color: #fff;
+  background-color: #6c6c6c;
+  border-color: #6c6c6c;
+}
+
+.list-group-item-info {
+  color: #6c6c6c;
+  background-color: #d9edf7;
+}
+
+a.list-group-item-info,
+button.list-group-item-info {
+  color: #6c6c6c;
+}
+
+a.list-group-item-info .list-group-item-heading,
+button.list-group-item-info .list-group-item-heading {
+  color: inherit;
+}
+
+a.list-group-item-info:hover,
+a.list-group-item-info:focus,
+button.list-group-item-info:hover,
+button.list-group-item-info:focus {
+  color: #6c6c6c;
+  background-color: #c4e3f3;
+}
+
+a.list-group-item-info.active,
+a.list-group-item-info.active:hover,
+a.list-group-item-info.active:focus,
+button.list-group-item-info.active,
+button.list-group-item-info.active:hover,
+button.list-group-item-info.active:focus {
+  color: #fff;
+  background-color: #6c6c6c;
+  border-color: #6c6c6c;
+}
+
+.list-group-item-warning {
+  color: #6c6c6c;
+  background-color: #f1e3c2;
+}
+
+a.list-group-item-warning,
+button.list-group-item-warning {
+  color: #6c6c6c;
+}
+
+a.list-group-item-warning .list-group-item-heading,
+button.list-group-item-warning .list-group-item-heading {
+  color: inherit;
+}
+
+a.list-group-item-warning:hover,
+a.list-group-item-warning:focus,
+button.list-group-item-warning:hover,
+button.list-group-item-warning:focus {
+  color: #6c6c6c;
+  background-color: #ecd9ad;
+}
+
+a.list-group-item-warning.active,
+a.list-group-item-warning.active:hover,
+a.list-group-item-warning.active:focus,
+button.list-group-item-warning.active,
+button.list-group-item-warning.active:hover,
+button.list-group-item-warning.active:focus {
+  color: #fff;
+  background-color: #6c6c6c;
+  border-color: #6c6c6c;
+}
+
+.list-group-item-danger {
+  color: #6c6c6c;
+  background-color: #eac3c7;
+}
+
+a.list-group-item-danger,
+button.list-group-item-danger {
+  color: #6c6c6c;
+}
+
+a.list-group-item-danger .list-group-item-heading,
+button.list-group-item-danger .list-group-item-heading {
+  color: inherit;
+}
+
+a.list-group-item-danger:hover,
+a.list-group-item-danger:focus,
+button.list-group-item-danger:hover,
+button.list-group-item-danger:focus {
+  color: #6c6c6c;
+  background-color: #e3b0b5;
+}
+
+a.list-group-item-danger.active,
+a.list-group-item-danger.active:hover,
+a.list-group-item-danger.active:focus,
+button.list-group-item-danger.active,
+button.list-group-item-danger.active:hover,
+button.list-group-item-danger.active:focus {
+  color: #fff;
+  background-color: #6c6c6c;
+  border-color: #6c6c6c;
+}
+
+.list-group-item-heading {
+  margin-top: 0;
+  margin-bottom: 5px;
+}
+
+.list-group-item-text {
+  margin-bottom: 0;
+  line-height: 1.3;
+}
+
+.panel {
+  margin-bottom: 20px;
+  background-color: #fff;
+  border: 1px solid transparent;
+  border-radius: 3px;
+  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
+}
+
+.panel-body {
+  padding: 15px;
+}
+
+.panel-body:before,
+.panel-body:after {
+  content: " ";
+  display: table;
+}
+
+.panel-body:after {
+  clear: both;
+}
+
+.panel-heading {
+  padding: 10px 15px;
+  border-bottom: 1px solid transparent;
+  border-top-right-radius: 2px;
+  border-top-left-radius: 2px;
+}
+
+.panel-heading > .dropdown .dropdown-toggle {
+  color: inherit;
+}
+
+.panel-title {
+  margin-top: 0;
+  margin-bottom: 0;
+  font-size: 16px;
+  color: inherit;
+}
+
+.panel-title > a,
+.panel-title > small,
+.panel-title > .small,
+.panel-title > small > a,
+.panel-title > .small > a {
+  color: inherit;
+}
+
+.panel-footer {
+  padding: 10px 15px;
+  background-color: #f5f5f5;
+  border-top: 1px solid #ddd;
+  border-bottom-right-radius: 2px;
+  border-bottom-left-radius: 2px;
+}
+
+.panel > .list-group,
+.panel > .panel-collapse > .list-group {
+  margin-bottom: 0;
+}
+
+.panel > .list-group .list-group-item,
+.panel > .panel-collapse > .list-group .list-group-item {
+  border-width: 1px 0;
+  border-radius: 0;
+}
+
+.panel > .list-group:first-child .list-group-item:first-child,
+.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
+  border-top: 0;
+  border-top-right-radius: 2px;
+  border-top-left-radius: 2px;
+}
+
+.panel > .list-group:last-child .list-group-item:last-child,
+.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
+  border-bottom: 0;
+  border-bottom-right-radius: 2px;
+  border-bottom-left-radius: 2px;
+}
+
+.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
+  border-top-right-radius: 0;
+  border-top-left-radius: 0;
+}
+
+.panel-heading + .list-group .list-group-item:first-child {
+  border-top-width: 0;
+}
+
+.list-group + .panel-footer {
+  border-top-width: 0;
+}
+
+.panel > .table,
+.panel > .table-responsive > .table,
+.panel > .panel-collapse > .table {
+  margin-bottom: 0;
+}
+
+.panel > .table caption,
+.panel > .table-responsive > .table caption,
+.panel > .panel-collapse > .table caption {
+  padding-left: 15px;
+  padding-right: 15px;
+}
+
+.panel > .table:first-child,
+.panel > .table-responsive:first-child > .table:first-child {
+  border-top-right-radius: 2px;
+  border-top-left-radius: 2px;
+}
+
+.panel > .table:first-child > thead:first-child > tr:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
+  border-top-left-radius: 2px;
+  border-top-right-radius: 2px;
+}
+
+.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
+.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
+  border-top-left-radius: 2px;
+}
+
+.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
+.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
+  border-top-right-radius: 2px;
+}
+
+.panel > .table:last-child,
+.panel > .table-responsive:last-child > .table:last-child {
+  border-bottom-right-radius: 2px;
+  border-bottom-left-radius: 2px;
+}
+
+.panel > .table:last-child > tbody:last-child > tr:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
+  border-bottom-left-radius: 2px;
+  border-bottom-right-radius: 2px;
+}
+
+.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
+  border-bottom-left-radius: 2px;
+}
+
+.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
+  border-bottom-right-radius: 2px;
+}
+
+.panel > .panel-body + .table,
+.panel > .panel-body + .table-responsive,
+.panel > .table + .panel-body,
+.panel > .table-responsive + .panel-body {
+  border-top: 1px solid #ddd;
+}
+
+.panel > .table > tbody:first-child > tr:first-child th,
+.panel > .table > tbody:first-child > tr:first-child td {
+  border-top: 0;
+}
+
+.panel > .table-bordered,
+.panel > .table-responsive > .table-bordered {
+  border: 0;
+}
+
+.panel > .table-bordered > thead > tr > th:first-child,
+.panel > .table-bordered > thead > tr > td:first-child,
+.panel > .table-bordered > tbody > tr > th:first-child,
+.panel > .table-bordered > tbody > tr > td:first-child,
+.panel > .table-bordered > tfoot > tr > th:first-child,
+.panel > .table-bordered > tfoot > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+  border-left: 0;
+}
+
+.panel > .table-bordered > thead > tr > th:last-child,
+.panel > .table-bordered > thead > tr > td:last-child,
+.panel > .table-bordered > tbody > tr > th:last-child,
+.panel > .table-bordered > tbody > tr > td:last-child,
+.panel > .table-bordered > tfoot > tr > th:last-child,
+.panel > .table-bordered > tfoot > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+  border-right: 0;
+}
+
+.panel > .table-bordered > thead > tr:first-child > td,
+.panel > .table-bordered > thead > tr:first-child > th,
+.panel > .table-bordered > tbody > tr:first-child > td,
+.panel > .table-bordered > tbody > tr:first-child > th,
+.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
+.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
+.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
+.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
+  border-bottom: 0;
+}
+
+.panel > .table-bordered > tbody > tr:last-child > td,
+.panel > .table-bordered > tbody > tr:last-child > th,
+.panel > .table-bordered > tfoot > tr:last-child > td,
+.panel > .table-bordered > tfoot > tr:last-child > th,
+.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
+.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
+.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
+.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
+  border-bottom: 0;
+}
+
+.panel > .table-responsive {
+  border: 0;
+  margin-bottom: 0;
+}
+
+.panel-group {
+  margin-bottom: 20px;
+}
+
+.panel-group .panel {
+  margin-bottom: 0;
+  border-radius: 3px;
+}
+
+.panel-group .panel + .panel {
+  margin-top: 5px;
+}
+
+.panel-group .panel-heading {
+  border-bottom: 0;
+}
+
+.panel-group .panel-heading + .panel-collapse > .panel-body,
+.panel-group .panel-heading + .panel-collapse > .list-group {
+  border-top: 1px solid #ddd;
+}
+
+.panel-group .panel-footer {
+  border-top: 0;
+}
+
+.panel-group .panel-footer + .panel-collapse .panel-body {
+  border-bottom: 1px solid #ddd;
+}
+
+.panel-default {
+  border-color: #ddd;
+}
+
+.panel-default > .panel-heading {
+  color: #222;
+  background-color: #f5f5f5;
+  border-color: #ddd;
+}
+
+.panel-default > .panel-heading + .panel-collapse > .panel-body {
+  border-top-color: #ddd;
+}
+
+.panel-default > .panel-heading .badge {
+  color: #f5f5f5;
+  background-color: #222;
+}
+
+.panel-default > .panel-footer + .panel-collapse > .panel-body {
+  border-bottom-color: #ddd;
+}
+
+.panel-primary {
+  border-color: #3a393b;
+}
+
+.panel-primary > .panel-heading {
+  color: #fff;
+  background-color: #3a393b;
+  border-color: #3a393b;
+}
+
+.panel-primary > .panel-heading + .panel-collapse > .panel-body {
+  border-top-color: #3a393b;
+}
+
+.panel-primary > .panel-heading .badge {
+  color: #3a393b;
+  background-color: #fff;
+}
+
+.panel-primary > .panel-footer + .panel-collapse > .panel-body {
+  border-bottom-color: #3a393b;
+}
+
+.panel-success {
+  border-color: #8cc63f;
+}
+
+.panel-success > .panel-heading {
+  color: #6c6c6c;
+  background-color: #dae6cb;
+  border-color: #8cc63f;
+}
+
+.panel-success > .panel-heading + .panel-collapse > .panel-body {
+  border-top-color: #8cc63f;
+}
+
+.panel-success > .panel-heading .badge {
+  color: #dae6cb;
+  background-color: #6c6c6c;
+}
+
+.panel-success > .panel-footer + .panel-collapse > .panel-body {
+  border-bottom-color: #8cc63f;
+}
+
+.panel-info {
+  border-color: #008abf;
+}
+
+.panel-info > .panel-heading {
+  color: #6c6c6c;
+  background-color: #d9edf7;
+  border-color: #008abf;
+}
+
+.panel-info > .panel-heading + .panel-collapse > .panel-body {
+  border-top-color: #008abf;
+}
+
+.panel-info > .panel-heading .badge {
+  color: #d9edf7;
+  background-color: #6c6c6c;
+}
+
+.panel-info > .panel-footer + .panel-collapse > .panel-body {
+  border-bottom-color: #008abf;
+}
+
+.panel-warning {
+  border-color: #fdb813;
+}
+
+.panel-warning > .panel-heading {
+  color: #6c6c6c;
+  background-color: #f1e3c2;
+  border-color: #fdb813;
+}
+
+.panel-warning > .panel-heading + .panel-collapse > .panel-body {
+  border-top-color: #fdb813;
+}
+
+.panel-warning > .panel-heading .badge {
+  color: #f1e3c2;
+  background-color: #6c6c6c;
+}
+
+.panel-warning > .panel-footer + .panel-collapse > .panel-body {
+  border-bottom-color: #fdb813;
+}
+
+.panel-danger {
+  border-color: #d9182d;
+}
+
+.panel-danger > .panel-heading {
+  color: #6c6c6c;
+  background-color: #eac3c7;
+  border-color: #d9182d;
+}
+
+.panel-danger > .panel-heading + .panel-collapse > .panel-body {
+  border-top-color: #d9182d;
+}
+
+.panel-danger > .panel-heading .badge {
+  color: #eac3c7;
+  background-color: #6c6c6c;
+}
+
+.panel-danger > .panel-footer + .panel-collapse > .panel-body {
+  border-bottom-color: #d9182d;
+}
+
+.embed-responsive {
+  position: relative;
+  display: block;
+  height: 0;
+  padding: 0;
+  overflow: hidden;
+}
+
+.embed-responsive .embed-responsive-item,
+.embed-responsive iframe,
+.embed-responsive embed,
+.embed-responsive object,
+.embed-responsive video {
+  position: absolute;
+  top: 0;
+  left: 0;
+  bottom: 0;
+  height: 100%;
+  width: 100%;
+  border: 0;
+}
+
+.embed-responsive-16by9 {
+  padding-bottom: 56.25%;
+}
+
+.embed-responsive-4by3 {
+  padding-bottom: 75%;
+}
+
+.well {
+  min-height: 20px;
+  padding: 19px;
+  margin-bottom: 20px;
+  background-color: #f5f5f5;
+  border: 1px solid #e3e3e3;
+  border-radius: 3px;
+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+}
+
+.well blockquote {
+  border-color: #ddd;
+  border-color: rgba(0, 0, 0, 0.15);
+}
+
+.well-lg {
+  padding: 24px;
+  border-radius: 3px;
+}
+
+.well-sm {
+  padding: 9px;
+  border-radius: 3px;
+}
+
+.close {
+  float: right;
+  font-size: 21px;
+  font-weight: bold;
+  line-height: 1;
+  color: #000;
+  text-shadow: 0 1px 0 #fff;
+  opacity: 0.2;
+  filter: alpha(opacity=20);
+}
+
+.close:hover,
+.close:focus {
+  color: #000;
+  text-decoration: none;
+  cursor: pointer;
+  opacity: 0.5;
+  filter: alpha(opacity=50);
+}
+
+button.close {
+  padding: 0;
+  cursor: pointer;
+  background: transparent;
+  border: 0;
+  -webkit-appearance: none;
+}
+
+.modal-open {
+  overflow: hidden;
+}
+
+.modal {
+  display: none;
+  overflow: hidden;
+  position: fixed;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  z-index: 1050;
+  -webkit-overflow-scrolling: touch;
+  outline: 0;
+}
+
+.modal.fade .modal-dialog {
+  -webkit-transform: translate(0, -25%);
+  -ms-transform: translate(0, -25%);
+  transform: translate(0, -25%);
+  transition: -webkit-transform 0.3s ease-out;
+  transition: transform 0.3s ease-out;
+}
+
+.modal.in .modal-dialog {
+  -webkit-transform: translate(0, 0);
+  -ms-transform: translate(0, 0);
+  transform: translate(0, 0);
+}
+
+.modal-open .modal {
+  overflow-x: hidden;
+  overflow-y: auto;
+}
+
+.modal-dialog {
+  position: relative;
+  width: auto;
+  margin: 10px;
+}
+
+.modal-content {
+  position: relative;
+  background-color: #fff;
+  border: 1px solid #aaa;
+  border: 1px solid rgba(170, 170, 170, 0.3);
+  border-radius: 3px;
+  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+  background-clip: padding-box;
+  outline: 0;
+}
+
+.modal-backdrop {
+  position: fixed;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  z-index: 1040;
+  background-color: #fff;
+}
+
+.modal-backdrop.fade {
+  opacity: 0;
+  filter: alpha(opacity=0);
+}
+
+.modal-backdrop.in {
+  opacity: 0.5;
+  filter: alpha(opacity=50);
+}
+
+.modal-header {
+  padding: 27px 14px 14px 30px;
+  border-bottom: 1px solid transparent;
+  min-height: 27px 14px 14px 30px23px;
+}
+
+.modal-header .close {
+  margin-top: -2px;
+}
+
+.modal-title {
+  margin: 0;
+  line-height: 23px;
+}
+
+.modal-body {
+  position: relative;
+  padding: 20px 30px;
+}
+
+.modal-footer {
+  padding: 20px 30px;
+  text-align: right;
+  border-top: 1px solid transparent;
+}
+
+.modal-footer:before,
+.modal-footer:after {
+  content: " ";
+  display: table;
+}
+
+.modal-footer:after {
+  clear: both;
+}
+
+.modal-footer .btn + .btn {
+  margin-left: 5px;
+  margin-bottom: 0;
+}
+
+.modal-footer .btn-group .btn + .btn {
+  margin-left: -1px;
+}
+
+.modal-footer .btn-block + .btn-block {
+  margin-left: 0;
+}
+
+.modal-scrollbar-measure {
+  position: absolute;
+  top: -9999px;
+  width: 50px;
+  height: 50px;
+  overflow: scroll;
+}
+
+ at media (min-width: 992px) {
+  .modal-dialog {
+    width: 824px;
+    margin: 30px auto;
+  }
+  .modal-content {
+    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+  }
+  .modal-sm {
+    width: 524px;
+  }
+}
+
+ at media (min-width: 1200px) {
+  .modal-lg {
+    width: 1124px;
+  }
+}
+
+.tooltip {
+  position: absolute;
+  z-index: 1070;
+  display: block;
+  font-family: "HelveticaNeueMedium", "HelveticaNeue-Medium", "Helvetica Neue Medium", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
+  font-style: normal;
+  font-weight: normal;
+  letter-spacing: normal;
+  line-break: auto;
+  line-height: 1.428571429;
+  text-align: left;
+  text-align: start;
+  text-decoration: none;
+  text-shadow: none;
+  text-transform: none;
+  white-space: normal;
+  word-break: normal;
+  word-spacing: normal;
+  word-wrap: normal;
+  font-size: 12px;
+  opacity: 0;
+  filter: alpha(opacity=0);
+}
+
+.tooltip.in {
+  opacity: 0.9;
+  filter: alpha(opacity=90);
+}
+
+.tooltip.top {
+  margin-top: -3px;
+  padding: 5px 0;
+}
+
+.tooltip.right {
+  margin-left: 3px;
+  padding: 0 5px;
+}
+
+.tooltip.bottom {
+  margin-top: 3px;
+  padding: 5px 0;
+}
+
+.tooltip.left {
+  margin-left: -3px;
+  padding: 0 5px;
+}
+
+.tooltip-inner {
+  max-width: 200px;
+  padding: 3px 8px;
+  color: #fff;
+  text-align: center;
+  background-color: #000;
+  border-radius: 3px;
+}
+
+.tooltip-arrow {
+  position: absolute;
+  width: 0;
+  height: 0;
+  border-color: transparent;
+  border-style: solid;
+}
+
+.tooltip.top .tooltip-arrow {
+  bottom: 0;
+  left: 50%;
+  margin-left: -5px;
+  border-width: 5px 5px 0;
+  border-top-color: #000;
+}
+
+.tooltip.top-left .tooltip-arrow {
+  bottom: 0;
+  right: 5px;
+  margin-bottom: -5px;
+  border-width: 5px 5px 0;
+  border-top-color: #000;
+}
+
+.tooltip.top-right .tooltip-arrow {
+  bottom: 0;
+  left: 5px;
+  margin-bottom: -5px;
+  border-width: 5px 5px 0;
+  border-top-color: #000;
+}
+
+.tooltip.right .tooltip-arrow {
+  top: 50%;
+  left: 0;
+  margin-top: -5px;
+  border-width: 5px 5px 5px 0;
+  border-right-color: #000;
+}
+
+.tooltip.left .tooltip-arrow {
+  top: 50%;
+  right: 0;
+  margin-top: -5px;
+  border-width: 5px 0 5px 5px;
+  border-left-color: #000;
+}
+
+.tooltip.bottom .tooltip-arrow {
+  top: 0;
+  left: 50%;
+  margin-left: -5px;
+  border-width: 0 5px 5px;
+  border-bottom-color: #000;
+}
+
+.tooltip.bottom-left .tooltip-arrow {
+  top: 0;
+  right: 5px;
+  margin-top: -5px;
+  border-width: 0 5px 5px;
+  border-bottom-color: #000;
+}
+
+.tooltip.bottom-right .tooltip-arrow {
+  top: 0;
+  left: 5px;
+  margin-top: -5px;
+  border-width: 0 5px 5px;
+  border-bottom-color: #000;
+}
+
+.popover {
+  position: absolute;
+  top: 0;
+  left: 0;
+  z-index: 1060;
+  display: none;
+  max-width: 276px;
+  padding: 1px;
+  font-family: "HelveticaNeueMedium", "HelveticaNeue-Medium", "Helvetica Neue Medium", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
+  font-style: normal;
+  font-weight: normal;
+  letter-spacing: normal;
+  line-break: auto;
+  line-height: 1.428571429;
+  text-align: left;
+  text-align: start;
+  text-decoration: none;
+  text-shadow: none;
+  text-transform: none;
+  white-space: normal;
+  word-break: normal;
+  word-spacing: normal;
+  word-wrap: normal;
+  font-size: 14px;
+  background-color: #fff;
+  background-clip: padding-box;
+  border: 1px solid #ccc;
+  border: 1px solid rgba(0, 0, 0, 0.2);
+  border-radius: 3px;
+  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+}
+
+.popover.top {
+  margin-top: -10px;
+}
+
+.popover.right {
+  margin-left: 10px;
+}
+
+.popover.bottom {
+  margin-top: 10px;
+}
+
+.popover.left {
+  margin-left: -10px;
+}
+
+.popover-title {
+  margin: 0;
+  padding: 8px 14px;
+  font-size: 14px;
+  background-color: #f7f7f7;
+  border-bottom: 1px solid #ebebeb;
+  border-radius: 2px 2px 0 0;
+}
+
+.popover-content {
+  padding: 9px 14px;
+}
+
+.popover > .arrow,
+.popover > .arrow:after {
+  position: absolute;
+  display: block;
+  width: 0;
+  height: 0;
+  border-color: transparent;
+  border-style: solid;
+}
+
+.popover > .arrow {
+  border-width: 11px;
+}
+
+.popover > .arrow:after {
+  border-width: 10px;
+  content: "";
+}
+
+.popover.top > .arrow {
+  left: 50%;
+  margin-left: -11px;
+  border-bottom-width: 0;
+  border-top-color: #999999;
+  border-top-color: rgba(0, 0, 0, 0.25);
+  bottom: -11px;
+}
+
+.popover.top > .arrow:after {
+  content: " ";
+  bottom: 1px;
+  margin-left: -10px;
+  border-bottom-width: 0;
+  border-top-color: #fff;
+}
+
+.popover.right > .arrow {
+  top: 50%;
+  left: -11px;
+  margin-top: -11px;
+  border-left-width: 0;
+  border-right-color: #999999;
+  border-right-color: rgba(0, 0, 0, 0.25);
+}
+
+.popover.right > .arrow:after {
+  content: " ";
+  left: 1px;
+  bottom: -10px;
+  border-left-width: 0;
+  border-right-color: #fff;
+}
+
+.popover.bottom > .arrow {
+  left: 50%;
+  margin-left: -11px;
+  border-top-width: 0;
+  border-bottom-color: #999999;
+  border-bottom-color: rgba(0, 0, 0, 0.25);
+  top: -11px;
+}
+
+.popover.bottom > .arrow:after {
+  content: " ";
+  top: 1px;
+  margin-left: -10px;
+  border-top-width: 0;
+  border-bottom-color: #fff;
+}
+
+.popover.left > .arrow {
+  top: 50%;
+  right: -11px;
+  margin-top: -11px;
+  border-right-width: 0;
+  border-left-color: #999999;
+  border-left-color: rgba(0, 0, 0, 0.25);
+}
+
+.popover.left > .arrow:after {
+  content: " ";
+  right: 1px;
+  border-right-width: 0;
+  border-left-color: #fff;
+  bottom: -10px;
+}
+
+.carousel {
+  position: relative;
+}
+
+.carousel-inner {
+  position: relative;
+  overflow: hidden;
+  width: 100%;
+}
+
+.carousel-inner > .item {
+  display: none;
+  position: relative;
+  transition: 0.6s ease-in-out left;
+}
+
+.carousel-inner > .item > img,
+.carousel-inner > .item > a > img {
+  display: block;
+  max-width: 100%;
+  height: auto;
+  line-height: 1;
+}
+
+ at media all and (transform-3d), (-webkit-transform-3d) {
+  .carousel-inner > .item {
+    transition: -webkit-transform 0.6s ease-in-out;
+    transition: transform 0.6s ease-in-out;
+    -webkit-backface-visibility: hidden;
+    backface-visibility: hidden;
+    -webkit-perspective: 1000px;
+    perspective: 1000px;
+  }
+  .carousel-inner > .item.next,
+  .carousel-inner > .item.active.right {
+    -webkit-transform: translate3d(100%, 0, 0);
+    transform: translate3d(100%, 0, 0);
+    left: 0;
+  }
+  .carousel-inner > .item.prev,
+  .carousel-inner > .item.active.left {
+    -webkit-transform: translate3d(-100%, 0, 0);
+    transform: translate3d(-100%, 0, 0);
+    left: 0;
+  }
+  .carousel-inner > .item.next.left,
+  .carousel-inner > .item.prev.right,
+  .carousel-inner > .item.active {
+    -webkit-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0);
+    left: 0;
+  }
+}
+
+.carousel-inner > .active,
+.carousel-inner > .next,
+.carousel-inner > .prev {
+  display: block;
+}
+
+.carousel-inner > .active {
+  left: 0;
+}
+
+.carousel-inner > .next,
+.carousel-inner > .prev {
+  position: absolute;
+  top: 0;
+  width: 100%;
+}
+
+.carousel-inner > .next {
+  left: 100%;
+}
+
+.carousel-inner > .prev {
+  left: -100%;
+}
+
+.carousel-inner > .next.left,
+.carousel-inner > .prev.right {
+  left: 0;
+}
+
+.carousel-inner > .active.left {
+  left: -100%;
+}
+
+.carousel-inner > .active.right {
+  left: 100%;
+}
+
+.carousel-control {
+  position: absolute;
+  top: 0;
+  left: 0;
+  bottom: 0;
+  width: 15%;
+  opacity: 0.5;
+  filter: alpha(opacity=50);
+  font-size: 20px;
+  color: #fff;
+  text-align: center;
+  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
+}
+
+.carousel-control.left {
+  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
+}
+
+.carousel-control.right {
+  left: auto;
+  right: 0;
+  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
+}
+
+.carousel-control:hover,
+.carousel-control:focus {
+  outline: 0;
+  color: #fff;
+  text-decoration: none;
+  opacity: 0.9;
+  filter: alpha(opacity=90);
+}
+
+.carousel-control .icon-prev,
+.carousel-control .icon-next,
+.carousel-control .glyphicon-chevron-left,
+.carousel-control .glyphicon-chevron-right {
+  position: absolute;
+  top: 50%;
+  margin-top: -10px;
+  z-index: 5;
+  display: inline-block;
+}
+
+.carousel-control .icon-prev,
+.carousel-control .glyphicon-chevron-left {
+  left: 50%;
+  margin-left: -10px;
+}
+
+.carousel-control .icon-next,
+.carousel-control .glyphicon-chevron-right {
+  right: 50%;
+  margin-right: -10px;
+}
+
+.carousel-control .icon-prev,
+.carousel-control .icon-next {
+  width: 20px;
+  height: 20px;
+  line-height: 1;
+  font-family: serif;
+}
+
+.carousel-control .icon-prev:before {
+  content: '\2039';
+}
+
+.carousel-control .icon-next:before {
+  content: '\203a';
+}
+
+.carousel-indicators {
+  position: absolute;
+  bottom: 10px;
+  left: 50%;
+  z-index: 15;
+  width: 60%;
+  margin-left: -30%;
+  padding-left: 0;
+  list-style: none;
+  text-align: center;
+}
+
+.carousel-indicators li {
+  display: inline-block;
+  width: 10px;
+  height: 10px;
+  margin: 1px;
+  text-indent: -999px;
+  border: 1px solid #fff;
+  border-radius: 10px;
+  cursor: pointer;
+  background-color: #000 \9;
+  background-color: transparent;
+}
+
+.carousel-indicators .active {
+  margin: 0;
+  width: 12px;
+  height: 12px;
+  background-color: #fff;
+}
+
+.carousel-caption {
+  position: absolute;
+  left: 15%;
+  right: 15%;
+  bottom: 20px;
+  z-index: 10;
+  padding-top: 20px;
+  padding-bottom: 20px;
+  color: #fff;
+  text-align: center;
+  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
+}
+
+.carousel-caption .btn {
+  text-shadow: none;
+}
+
+ at media screen and (min-width: 992px) {
+  .carousel-control .glyphicon-chevron-left,
+  .carousel-control .glyphicon-chevron-right,
+  .carousel-control .icon-prev,
+  .carousel-control .icon-next {
+    width: 30px;
+    height: 30px;
+    margin-top: -15px;
+    font-size: 30px;
+  }
+  .carousel-control .glyphicon-chevron-left,
+  .carousel-control .icon-prev {
+    margin-left: -15px;
+  }
+  .carousel-control .glyphicon-chevron-right,
+  .carousel-control .icon-next {
+    margin-right: -15px;
+  }
+  .carousel-caption {
+    left: 20%;
+    right: 20%;
+    padding-bottom: 30px;
+  }
+  .carousel-indicators {
+    bottom: 20px;
+  }
+}
+
+.clearfix:before,
+.clearfix:after {
+  content: " ";
+  display: table;
+}
+
+.clearfix:after {
+  clear: both;
+}
+
+.center-block {
+  display: block;
+  margin-left: auto;
+  margin-right: auto;
+}
+
+.pull-right {
+  float: right !important;
+}
+
+.pull-left {
+  float: left !important;
+}
+
+.hide {
+  display: none !important;
+}
+
+.show {
+  display: block !important;
+}
+
+.invisible {
+  visibility: hidden;
+}
+
+.text-hide {
+  font: 0/0 a;
+  color: transparent;
+  text-shadow: none;
+  background-color: transparent;
+  border: 0;
+}
+
+.hidden {
+  display: none !important;
+}
+
+.affix {
+  position: fixed;
+}
+
+ at -ms-viewport {
+  width: device-width;
+}
+
+.visible-xs {
+  display: none !important;
+}
+
+.visible-sm {
+  display: none !important;
+}
+
+.visible-md {
+  display: none !important;
+}
+
+.visible-lg {
+  display: none !important;
+}
+
+.visible-xs-block,
+.visible-xs-inline,
+.visible-xs-inline-block,
+.visible-sm-block,
+.visible-sm-inline,
+.visible-sm-inline-block,
+.visible-md-block,
+.visible-md-inline,
+.visible-md-inline-block,
+.visible-lg-block,
+.visible-lg-inline,
+.visible-lg-inline-block {
+  display: none !important;
+}
+
+ at media (max-width: 991px) {
+  .visible-xs {
+    display: block !important;
+  }
+  table.visible-xs {
+    display: table !important;
+  }
+  tr.visible-xs {
+    display: table-row !important;
+  }
+  th.visible-xs,
+  td.visible-xs {
+    display: table-cell !important;
+  }
+}
+
+ at media (max-width: 991px) {
+  .visible-xs-block {
+    display: block !important;
+  }
+}
+
+ at media (max-width: 991px) {
+  .visible-xs-inline {
+    display: inline !important;
+  }
+}
+
+ at media (max-width: 991px) {
+  .visible-xs-inline-block {
+    display: inline-block !important;
+  }
+}
+
+ at media (min-width: 992px) and (max-width: 1199px) {
+  .visible-sm {
+    display: block !important;
+  }
+  table.visible-sm {
+    display: table !important;
+  }
+  tr.visible-sm {
+    display: table-row !important;
+  }
+  th.visible-sm,
+  td.visible-sm {
+    display: table-cell !important;
+  }
+}
+
+ at media (min-width: 992px) and (max-width: 1199px) {
+  .visible-sm-block {
+    display: block !important;
+  }
+}
+
+ at media (min-width: 992px) and (max-width: 1199px) {
+  .visible-sm-inline {
+    display: inline !important;
+  }
+}
+
+ at media (min-width: 992px) and (max-width: 1199px) {
+  .visible-sm-inline-block {
+    display: inline-block !important;
+  }
+}
+
+ at media (min-width: 1200px) and (max-width: 1679) {
+  .visible-md {
+    display: block !important;
+  }
+  table.visible-md {
+    display: table !important;
+  }
+  tr.visible-md {
+    display: table-row !important;
+  }
+  th.visible-md,
+  td.visible-md {
+    display: table-cell !important;
+  }
+}
+
+ at media (min-width: 1200px) and (max-width: 1679) {
+  .visible-md-block {
+    display: block !important;
+  }
+}
+
+ at media (min-width: 1200px) and (max-width: 1679) {
+  .visible-md-inline {
+    display: inline !important;
+  }
+}
+
+ at media (min-width: 1200px) and (max-width: 1679) {
+  .visible-md-inline-block {
+    display: inline-block !important;
+  }
+}
+
+ at media (min-width: 1680) {
+  .visible-lg {
+    display: block !important;
+  }
+  table.visible-lg {
+    display: table !important;
+  }
+  tr.visible-lg {
+    display: table-row !important;
+  }
+  th.visible-lg,
+  td.visible-lg {
+    display: table-cell !important;
+  }
+}
+
+ at media (min-width: 1680) {
+  .visible-lg-block {
+    display: block !important;
+  }
+}
+
+ at media (min-width: 1680) {
+  .visible-lg-inline {
+    display: inline !important;
+  }
+}
+
+ at media (min-width: 1680) {
+  .visible-lg-inline-block {
+    display: inline-block !important;
+  }
+}
+
+ at media (max-width: 991px) {
+  .hidden-xs {
+    display: none !important;
+  }
+}
+
+ at media (min-width: 992px) and (max-width: 1199px) {
+  .hidden-sm {
+    display: none !important;
+  }
+}
+
+ at media (min-width: 1200px) and (max-width: 1679) {
+  .hidden-md {
+    display: none !important;
+  }
+}
+
+ at media (min-width: 1680) {
+  .hidden-lg {
+    display: none !important;
+  }
+}
+
+.visible-print {
+  display: none !important;
+}
+
+ at media print {
+  .visible-print {
+    display: block !important;
+  }
+  table.visible-print {
+    display: table !important;
+  }
+  tr.visible-print {
+    display: table-row !important;
+  }
+  th.visible-print,
+  td.visible-print {
+    display: table-cell !important;
+  }
+}
+
+.visible-print-block {
+  display: none !important;
+}
+
+ at media print {
+  .visible-print-block {
+    display: block !important;
+  }
+}
+
+.visible-print-inline {
+  display: none !important;
+}
+
+ at media print {
+  .visible-print-inline {
+    display: inline !important;
+  }
+}
+
+.visible-print-inline-block {
+  display: none !important;
+}
+
+ at media print {
+  .visible-print-inline-block {
+    display: inline-block !important;
+  }
+}
+
+ at media print {
+  .hidden-print {
+    display: none !important;
+  }
+}
+
+/* 
+The MIT License (MIT)
+
+Copyright (c) 2013-2015 bootstrap-select
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE. */
+.bootstrap-select {
+  /*width: 220px\9; IE8 and below*/
+  width: 220px \0;
+  /*IE9 and below*/
+}
+
+.bootstrap-select > .btn {
+  width: 100%;
+  height: 40px;
+  padding-right: 25px;
+}
+
+.error .bootstrap-select .btn {
+  border: 1px solid #b94a48;
+}
+
+.control-group.error .bootstrap-select .dropdown-toggle {
+  border-color: #b94a48;
+}
+
+.bootstrap-select.fit-width {
+  width: auto !important;
+}
+
+.bootstrap-select:not([class*="col-"]):not([class*="form-control"]):not(.input-group-btn) {
+  width: 220px;
+}
+
+.bootstrap-select .btn:focus {
+  outline: thin dotted #333333 !important;
+  outline: 5px auto -webkit-focus-ring-color !important;
+  outline-offset: -2px;
+}
+
+.bootstrap-select.form-control {
+  margin-bottom: 0;
+  padding: 0;
+  border: none;
+}
+
+.bootstrap-select.form-control:not([class*="col-"]) {
+  width: 100%;
+}
+
+.bootstrap-select.btn-group:not(.input-group-btn),
+.bootstrap-select.btn-group[class*="col-"] {
+  float: none;
+  display: inline-block;
+  margin-left: 0;
+}
+
+.bootstrap-select.btn-group.dropdown-menu-right,
+.bootstrap-select.btn-group[class*="col-"].dropdown-menu-right,
+.row-fluid .bootstrap-select.btn-group[class*="col-"].dropdown-menu-right {
+  float: right;
+}
+
+.form-search .bootstrap-select.btn-group,
+.form-inline .bootstrap-select.btn-group,
+.form-horizontal .bootstrap-select.btn-group,
+.form-group .bootstrap-select.btn-group {
+  margin-bottom: 0;
+}
+
+.form-group-lg .bootstrap-select.btn-group.form-control,
+.form-group-sm .bootstrap-select.btn-group.form-control {
+  padding: 0;
+}
+
+.form-inline .bootstrap-select.btn-group .form-control {
+  width: 100%;
+}
+
+.input-append .bootstrap-select.btn-group {
+  margin-left: -1px;
+}
+
+.input-prepend .bootstrap-select.btn-group {
+  margin-right: -1px;
+}
+
+.bootstrap-select.btn-group > .disabled {
+  cursor: not-allowed;
+}
+
+.bootstrap-select.btn-group > .disabled:focus {
+  outline: none !important;
+}
+
+.bootstrap-select.btn-group .btn .filter-option {
+  display: inline-block;
+  overflow: hidden;
+  width: 100%;
+  text-align: left;
+}
+
+.bootstrap-select.btn-group .btn .caret {
+  position: absolute;
+  top: 0;
+  right: 40px;
+  margin-top: 0;
+  vertical-align: top;
+  border: 0;
+  border-left: 1px solid #ccc;
+  height: 38px;
+}
+
+.bootstrap-select.btn-group .btn .caret:before {
+  content: '\e861';
+  font-family: "fontello";
+  font-size: 15px;
+  color: #666666;
+  position: absolute;
+  left: 12px;
+  top: 9px;
+  display: block;
+}
+
+.bootstrap-select.btn-group .btn:hover .caret {
+  border-color: #adadad;
+}
+
+.bootstrap-select.btn-group .btn:focus .caret {
+  border-color: #8c8c8c;
+}
+
+.bootstrap-select.btn-group[class*="col-"] .btn {
+  width: 100%;
+}
+
+.bootstrap-select.btn-group .dropdown-menu {
+  min-width: 100%;
+  z-index: 1035;
+  box-sizing: border-box;
+}
+
+.bootstrap-select.btn-group .dropdown-menu.inner {
+  position: static;
+  border: 0;
+  padding: 0;
+  margin: 0;
+  border-radius: 0;
+  box-shadow: none;
+}
+
+.bootstrap-select.btn-group .dropdown-menu li {
+  position: relative;
+}
+
+.bootstrap-select.btn-group .dropdown-menu li:not(.disabled) a:hover small,
+.bootstrap-select.btn-group .dropdown-menu li:not(.disabled) a:focus small,
+.bootstrap-select.btn-group .dropdown-menu li.active:not(.disabled) a small {
+  color: #64b1d8;
+  color: fade(#64b1d8, 40%);
+}
+
+.bootstrap-select.btn-group .dropdown-menu li.disabled a {
+  cursor: not-allowed;
+}
+
+.bootstrap-select.btn-group .dropdown-menu li a {
+  outline: none;
+  cursor: pointer;
+}
+
+.bootstrap-select.btn-group .dropdown-menu li a.opt {
+  position: relative;
+  padding-left: 2.25em;
+}
+
+.bootstrap-select.btn-group .dropdown-menu li a span.check-mark {
+  display: none;
+}
+
+.bootstrap-select.btn-group .dropdown-menu li a span.text {
+  display: inline-block;
+}
+
+.bootstrap-select.btn-group .dropdown-menu li small {
+  padding-left: 0.5em;
+}
+
+.bootstrap-select.btn-group .dropdown-menu .notify {
+  position: absolute;
+  bottom: 5px;
+  width: 96%;
+  margin: 0 2%;
+  min-height: 26px;
+  padding: 3px 5px;
+  background: whitesmoke;
+  border: 1px solid #e3e3e3;
+  box-shadow: inset 0 1px 1px fade(black, 5%);
+  pointer-events: none;
+  opacity: 0.9;
+  box-sizing: border-box;
+}
+
+.bootstrap-select.btn-group .no-results {
+  padding: 3px;
+  background: #f5f5f5;
+  margin: 0 5px;
+}
+
+.bootstrap-select.btn-group.fit-width .btn .filter-option {
+  position: static;
+}
+
+.bootstrap-select.btn-group.fit-width .btn .caret {
+  position: static;
+  top: auto;
+  margin-top: -1px;
+}
+
+.bootstrap-select.btn-group.show-tick .dropdown-menu li.selected a span.check-mark {
+  position: absolute;
+  display: inline-block;
+  right: 15px;
+  margin-top: 5px;
+}
+
+.bootstrap-select.btn-group.show-tick .dropdown-menu li a span.text {
+  margin-right: 34px;
+}
+
+.bootstrap-select.show-menu-arrow.open > .btn {
+  z-index: 1036;
+}
+
+.bootstrap-select.show-menu-arrow .dropdown-toggle:before {
+  content: '';
+  border-left: 7px solid transparent;
+  border-right: 7px solid transparent;
+  border-bottom-width: 7px;
+  border-bottom-style: solid;
+  border-bottom-color: #cccccc;
+  border-bottom-color: fade(#cccccc, 20%);
+  position: absolute;
+  bottom: -4px;
+  left: 9px;
+  display: none;
+}
+
+.bootstrap-select.show-menu-arrow .dropdown-toggle:after {
+  content: '';
+  border-left: 6px solid transparent;
+  border-right: 6px solid transparent;
+  border-bottom: 6px solid white;
+  position: absolute;
+  bottom: -4px;
+  left: 10px;
+  display: none;
+}
+
+.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:before {
+  bottom: auto;
+  top: -3px;
+  border-bottom: 0;
+  border-top-width: 7px;
+  border-top-style: solid;
+  border-top-color: #cccccc;
+  border-top-color: fade(#cccccc, 20%);
+}
+
+.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:after {
+  bottom: auto;
+  top: -3px;
+  border-top: 6px solid white;
+  border-bottom: 0;
+}
+
+.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:before {
+  right: 12px;
+  left: auto;
+}
+
+.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:after {
+  right: 13px;
+  left: auto;
+}
+
+.bootstrap-select.show-menu-arrow.open > .dropdown-toggle:before,
+.bootstrap-select.show-menu-arrow.open > .dropdown-toggle:after {
+  display: block;
+}
+
+.bootstrap-select.btn-group.open .btn .caret {
+  border-left-color: #adadad;
+}
+
+.bootstrap-select.btn-group.open .btn:hover .caret {
+  border-left-color: #8c8c8c;
+}
+
+.bs-searchbox,
+.bs-actionsbox {
+  padding: 4px 8px;
+}
+
+.bs-actionsbox {
+  float: left;
+  width: 100%;
+  box-sizing: border-box;
+}
+
+.bs-actionsbox .btn-group button {
+  width: 50%;
+}
+
+.bs-searchbox + .bs-actionsbox {
+  padding: 0 8px 4px;
+}
+
+.bs-searchbox input.form-control {
+  margin-bottom: 0;
+  width: 100%;
+}
+
+.mobile-device {
+  position: absolute;
+  top: 0;
+  left: 0;
+  display: block !important;
+  width: 100%;
+  height: 100% !important;
+  opacity: 0;
+}
+
+.container {
+  margin-right: auto;
+  margin-left: auto;
+  padding-left: 80px !important;
+  padding-right: 60px !important;
+}
+
+.alert {
+  border-width: 0 0 0 5px;
+}
+
+/* Body specs */
+body {
+  color: #222;
+  background: #fff;
+}
+
+/* Message warning users that some features might not be supported in old browsers */
+.browserupgrade {
+  margin: 0.2em 0;
+  background: #ccc;
+  color: #000;
+  padding: 0.2em 0;
+}
+
+/* Topbar */
+.topbar {
+  padding: 0;
+  background: #222;
+}
+
+.topbar .banner-area {
+  background: #222;
+}
+
+.topbar .banner-area h1 {
+  margin: 0 0 0 -80px;
+  padding: 0 0 0 80px;
+  height: 55px;
+  background: transparent url("../images/logo-white.png") no-repeat 24px 3px;
+  color: #fff;
+  font-family: "HelveticaNeueBold", "HelveticaNeue-Bold", "HelveticaNeue Bold", "Helvetica Neue Bold", "Helvetica Neue", "HelveticaNeue", Helvetica, Arial, "Lucida Grande", sans-serif;
+  font-weight: 600;
+  font-size: 1.571em;
+  line-height: 55px;
+  cursor: default;
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+      user-select: none;
+}
+
+.topbar .tab-area {
+  background: #3a393b;
+  height: 40px;
+}
+
+.topbar .tab-area span.hostname {
+  display: inline-block;
+  font-family: "Helvetica Neue LT W1G 55 Roman", "Helvetica Neue LT W1G", "HelveticaNeue Roman", "HelveticaNeue-Roman", "Helvetica Neue Roman", "Helvetica Neue", "HelveticaNeue", Helvetica, Arial, "Lucida Grande", sans-serif;
+  color: #fff;
+  font-size: 13pt;
+  font-weight: 400;
+  margin: 0;
+  padding: 8px 0;
+  vertical-align: top;
+  box-sizing: border-box;
+}
+
+.topbar .tab-area ul.nav-menu {
+  display: inline-block;
+  list-style: none;
+  list-style-position: inside;
+  padding: 0;
+  margin: 0 0 0 24px;
+}
+
+.topbar .tab-area ul.nav-menu li {
+  float: left;
+  display: block;
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+      user-select: none;
+}
+
+.topbar .tab-area ul.nav-menu li a, .topbar .tab-area ul.nav-menu li .disabled {
+  display: block;
+  font-family: "HelveticaNeueBold", "HelveticaNeue-Bold", "HelveticaNeue Bold", "Helvetica Neue Bold", "Helvetica Neue", "HelveticaNeue", Helvetica, Arial, "Lucida Grande", sans-serif;
+  font-weight: 600;
+  color: #fff;
+  text-decoration: none;
+  font-size: 13pt;
+  padding: 8px 40px;
+  min-width: 190px;
+  text-align: center;
+  outline: none;
+}
+
+.topbar .tab-area ul.nav-menu li .disabled {
+  color: #999;
+  cursor: default;
+}
+
+.topbar .tab-area ul.nav-menu li .disabled .digit-container {
+  display: none;
+}
+
+.topbar .tab-area ul.nav-menu li .digit-container {
+  display: inline-block;
+  margin-left: 10px;
+  border-radius: 16px;
+  height: 22px;
+  background: #555;
+  border: 2px solid #555;
+  color: #fff;
+  font-family: "HelveticaNeueMedium", "HelveticaNeue-Medium", "Helvetica Neue Medium", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
+  font-size: 14px;
+  padding: 0 8px;
+}
+
+.topbar .tab-area ul.nav-menu li.current .digit-container {
+  border-color: #fff;
+  background: transparent;
+}
+
+.topbar .tab-area ul.nav-menu li.current.hosts {
+  background: #008abf;
+}
+
+.topbar .tab-area ul.nav-menu li.current.guests {
+  background: #8cc63f;
+}
+
+.topbar .tab-area ul.nav-menu li.current.templates {
+  background: #00a6a0;
+}
+
+.topbar .tab-area ul.nav-menu li.current.storage {
+  background: #feb813;
+}
+
+.topbar .tab-area ul.nav-menu li.current.networks {
+  background: #7f1c7d;
+}
+
+.topbar .tab-area ul.nav-menu li.current.administration {
+  background: #d9182d;
+}
+
+.topbar .panel-actions-area {
+  min-height: 40px;
+}
+
+.login-area {
+  margin: 90px auto 0;
+  width: 300px;
+}
+
+.login-area .btn-login {
+  display: block;
+  position: static;
+  float: none;
+  margin-bottom: 50px;
+}
+
+.login-area .col-md-12, .login-area .col-lg-12 {
+  width: 100%;
+}
+
+.login-area .bootstrap-select,
+.login-area .selectpicker {
+  font-family: "HelveticaNeueLight", "HelveticaNeue-Light", "HelveticaNeue Light", "HelveticaNeue", "HelveticaNeue", Helvetica, Arial, "Lucida Grande", sans-serif;
+  font-size: 13pt;
+}
+
+.login-area .dropdown-toggle.selectpicker {
+  height: 40px;
+}
+
+.login-area .form-group {
+  margin-bottom: 20px;
+}
+
+.login-area .form-group:last-child {
+  margin-bottom: 0;
+}
+
+.btn {
+  font-family: "HelveticaNeueMedium", "HelveticaNeue-Medium", "Helvetica Neue Medium", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
+  font-size: 13pt;
+}
+
+.btn-login {
+  color: #fff;
+  background-color: #008abf;
+  border-color: #008abf;
+}
+
+.btn-login:focus,
+.btn-login.focus {
+  color: #fff;
+  background-color: #00658c;
+  border-color: #002e40;
+}
+
+.btn-login:hover {
+  color: #fff;
+  background-color: #00658c;
+  border-color: #005e82;
+}
+
+.btn-login:active,
+.btn-login.active,
+.open > .btn-login.dropdown-toggle {
+  color: #fff;
+  background-color: #00658c;
+  border-color: #005e82;
+}
+
+.btn-login:active:hover,
+.btn-login:active:focus,
+.btn-login:active.focus,
+.btn-login.active:hover,
+.btn-login.active:focus,
+.btn-login.active.focus,
+.open > .btn-login.dropdown-toggle:hover,
+.open > .btn-login.dropdown-toggle:focus,
+.open > .btn-login.dropdown-toggle.focus {
+  color: #fff;
+  background-color: #004b68;
+  border-color: #002e40;
+}
+
+.btn-login:active,
+.btn-login.active,
+.open > .btn-login.dropdown-toggle {
+  background-image: none;
+}
+
+.btn-login.disabled,
+.btn-login.disabled:hover,
+.btn-login.disabled:focus,
+.btn-login.disabled.focus,
+.btn-login.disabled:active,
+.btn-login.disabled.active,
+.btn-login[disabled],
+.btn-login[disabled]:hover,
+.btn-login[disabled]:focus,
+.btn-login[disabled].focus,
+.btn-login[disabled]:active,
+.btn-login[disabled].active,
+fieldset[disabled] .btn-login,
+fieldset[disabled] .btn-login:hover,
+fieldset[disabled] .btn-login:focus,
+fieldset[disabled] .btn-login.focus,
+fieldset[disabled] .btn-login:active,
+fieldset[disabled] .btn-login.active {
+  background-color: #008abf;
+  border-color: #008abf;
+}
+
+.btn-login .badge {
+  color: #008abf;
+  background-color: #fff;
+}
+
+/*
+* Project Kimchi
+*
+* Copyright IBM, Corp. 2015
+*
+* Licensed under the Apache License, Version 2.0 (the 'License');
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an 'AS IS' BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+.dialog-border-grey {
+  background-clip: border-box;
+  border: 6px solid rgba(170, 170, 170, 0.3);
+  position: absolute;
+  left: 0;
+  right: 0;
+  top: 0;
+  bottom: 0;
+  margin: auto;
+  border-radius: 5px;
+}
+
+.dialog-container {
+  border: 3px solid #999999;
+  background: white;
+}
+
+.dialog-container .dialog-title {
+  height: 60px;
+  padding: 20px 0 20px 20px;
+  margin: 0;
+  float: left;
+  font-size: 27px;
+  font-family: "HelveticaNeueLight", "HelveticaNeue-Light", "HelveticaNeue Light", "HelveticaNeue", "HelveticaNeue", Helvetica, Arial, "Lucida Grande", sans-serif;
+  font-weight: 300 !important;
+}
+
+.dialog-container .dialog-body {
+  position: relative;
+}
+
+.dialog-container .dialog-footer {
+  height: 50px;
+  background-color: #008ABF;
+}
+
+.dialog-container .dialog-footer .dialog-button {
+  display: inline-block;
+  background-color: white;
+  width: 75px;
+  height: 30px;
+  line-height: 30px;
+  position: relative;
+  margin-left: 10px;
+  margin-top: 10px;
+  text-align: center;
+  vertical-align: middle;
+}
+
+.dialog-container .dialog-footer .dialog-button:hover {
+  background-color: #EEEEEE;
+  cursor: pointer;
+}
+
+/*
+* Project Kimchi
+*
+* Copyright IBM, Corp. 2015
+*
+* Licensed under the Apache License, Version 2.0 (the 'License');
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an 'AS IS' BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+.modal-open {
+  overflow: hidden;
+}
+
+.modal {
+  display: none;
+  overflow: hidden;
+  position: fixed;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  z-index: 1050;
+  -webkit-overflow-scrolling: touch;
+  outline: 0;
+}
+
+.modal.fade .modal-dialog {
+  -webkit-transform: translate(0, -25%);
+  -ms-transform: translate(0, -25%);
+  transform: translate(0, -25%);
+  transition: -webkit-transform 0.3s ease-out;
+  transition: transform 0.3s ease-out;
+}
+
+.modal.in .modal-dialog {
+  -webkit-transform: translate(0, 0);
+  -ms-transform: translate(0, 0);
+  transform: translate(0, 0);
+}
+
+.modal-open .modal {
+  overflow-x: hidden;
+  overflow-y: auto;
+}
+
+.modal-dialog {
+  position: relative;
+  width: auto;
+  margin: 10px;
+  border: 6px solid #aaa;
+  border: 6px solid rgba(170, 170, 170, 0.3);
+  border-radius: 5px;
+  background-clip: padding-box;
+}
+
+.modal-content {
+  position: relative;
+  background-color: #fff;
+  border-radius: 0;
+  border: 3px solid #999;
+  background-clip: padding-box;
+  box-shadow: none !important;
+  border-radius: 0;
+  outline: 0;
+}
+
+.modal-backdrop {
+  position: fixed;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  z-index: 1040;
+  background-color: #fff;
+}
+
+.modal-backdrop.fade {
+  opacity: 0;
+  filter: alpha(opacity=0);
+}
+
+.modal-backdrop.in {
+  opacity: 0.5;
+  filter: alpha(opacity=50);
+}
+
+.modal-header {
+  padding: 27px 14px 14px 30px;
+  border-bottom: 1px solid transparent;
+  min-height: 27px 14px 14px 30px23px;
+}
+
+.modal-header .close {
+  margin-top: -2px;
+}
+
+.modal-title {
+  margin: 0;
+  line-height: 23px;
+  font-size: 27px;
+  font-family: "HelveticaNeueLight", "HelveticaNeue-Light", "HelveticaNeue Light", "HelveticaNeue", "HelveticaNeue", Helvetica, Arial, "Lucida Grande", sans-serif;
+  font-weight: 300 !important;
+}
+
+.modal-body {
+  position: relative;
+  padding: 20px 30px;
+}
+
+.modal-footer {
+  padding: 20px 30px;
+  text-align: left !important;
+  border-top: 0;
+  margin-top: 20px;
+}
+
+.modal-footer:before,
+.modal-footer:after {
+  content: " ";
+  display: table;
+}
+
+.modal-footer:after {
+  clear: both;
+}
+
+.modal-footer .btn {
+  padding: 6px 12px;
+  min-width: 75px;
+}
+
+.modal-footer .btn + .btn {
+  margin-left: 5px;
+  margin-bottom: 0;
+}
+
+.modal-footer .btn-group .btn + .btn {
+  margin-left: -1px;
+}
+
+.modal-footer .btn-block + .btn-block {
+  margin-left: 0;
+}
+
+.modal-scrollbar-measure {
+  position: absolute;
+  top: -9999px;
+  width: 50px;
+  height: 50px;
+  overflow: scroll;
+}
+
+ at media (min-width: 992px) {
+  .modal-dialog {
+    width: 824px;
+    margin: 30px auto;
+  }
+  .modal-content {
+    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+  }
+  .modal-sm {
+    width: 524px;
+  }
+}
+
+ at media (min-width: 1200px) {
+  .modal-lg {
+    width: 1124px;
+  }
+}
+
+.modal {
+  text-align: center;
+}
+
+ at media screen and (min-width: 768px) {
+  .modal:before {
+    display: inline-block;
+    vertical-align: middle;
+    content: " ";
+    height: 100%;
+  }
+}
+
+.modal-dialog {
+  display: inline-block;
+  text-align: left;
+  vertical-align: middle;
+}
+
+/*
+* Project Kimchi
+*
+* Copyright IBM, Corp. 2015
+*
+* Licensed under the Apache License, Version 2.0 (the 'License');
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an 'AS IS' BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+.menu-flat .btn {
+  background: #4d4c4e !important;
+  min-width: 160px;
+  border: 0 !important;
+  font-family: "HelveticaNeueBold", "HelveticaNeue-Bold", "HelveticaNeue Bold", "Helvetica Neue Bold", "Helvetica Neue", "HelveticaNeue", Helvetica, Arial, "Lucida Grande", sans-serif;
+  font-weight: 700;
+  font-size: 13.5pt;
+  position: relative;
+  height: 40px;
+  padding: 4px 45px 5px 38px;
+}
+
+.menu-flat .btn > i {
+  font-size: 22px;
+  vertical-align: bottom;
+  width: 26px;
+  height: 40px;
+  text-align: left;
+  display: block;
+  position: absolute;
+  top: 0;
+  left: 6px;
+}
+
+.menu-flat .btn > i:before {
+  line-height: 40px;
+}
+
+.menu-flat .caret {
+  position: absolute;
+  top: 0;
+  right: 0;
+  display: block;
+  width: 40px;
+  height: 40px;
+  margin-left: 0;
+  vertical-align: middle;
+  border-top: 0;
+  border-top: 0 \9;
+  border-right: 0;
+  border-left: 0;
+}
+
+.menu-flat .caret:before {
+  font-family: "fontello";
+  font-style: normal;
+  font-weight: normal;
+  font-size: 13px;
+  speak: none;
+  display: inline-block;
+  text-decoration: inherit;
+  width: 1.2em;
+  height: 1.2em;
+  margin: .5em;
+  text-align: center;
+  font-variant: normal;
+  text-transform: none;
+  line-height: 2em;
+  content: '\e861';
+}
+
+.menu-flat.dropup,
+.menu-flat.dropdown {
+  position: relative;
+}
+
+.menu-flat .dropdown-toggle:focus {
+  outline: 0;
+}
+
+.menu-flat .dropdown-menu {
+  position: absolute;
+  top: 100%;
+  left: 0;
+  z-index: 1000;
+  display: none;
+  float: left;
+  min-width: 160px;
+  padding: 0;
+  margin: 0;
+  list-style: none;
+  font-size: 13.5pt;
+  text-align: left;
+  background-color: #3a393b;
+  border: 0;
+  border-radius: 0;
+  box-shadow: none !important;
+  background-clip: padding-box;
+}
+
+.menu-flat .dropdown-menu.pull-right {
+  right: 0;
+  left: auto;
+}
+
+.menu-flat .dropdown-menu .divider {
+  height: 1px;
+  margin: 9px 0;
+  overflow: hidden;
+  background-color: #404042;
+}
+
+.menu-flat .dropdown-menu > li > a {
+  border-top: 1px solid #2e2e2e;
+  box-shadow: inset 0px 1px 0px 0px #404042;
+}
+
+.menu-flat .dropdown-menu > li:first-child > a {
+  border-top: 1px solid #3a393b;
+  box-shadow: none;
+}
+
+.menu-flat .dropdown-menu > li.critical:last-child > a {
+  box-shadow: none;
+}
+
+.menu-flat .dropdown-menu > li > a {
+  display: block;
+  padding: 4px 6px;
+  clear: both;
+  font-weight: normal;
+  line-height: 31px;
+  color: #fff;
+  white-space: nowrap;
+}
+
+.menu-flat .dropdown-menu > li > a > i {
+  font-size: 22px;
+  margin-right: 10px;
+  vertical-align: top;
+  width: 26px;
+  height: 26px;
+  text-align: left;
+  display: inline-block;
+}
+
+.menu-flat .dropdown-menu > li > a:hover,
+.menu-flat .dropdown-menu > li > a:focus {
+  text-decoration: none;
+  color: #fff;
+  background-color: #3a393b;
+}
+
+.menu-flat .dropdown-menu > .active > a,
+.menu-flat .dropdown-menu > .active > a:hover,
+.menu-flat .dropdown-menu > .active > a:focus {
+  color: #fff;
+  text-decoration: none;
+  outline: 0;
+  background-color: #3a393b;
+}
+
+.menu-flat .dropdown-menu > li.critical > a {
+  background: #d9182d;
+}
+
+.menu-flat .dropdown-menu > .disabled > a,
+.menu-flat .dropdown-menu > .disabled > a:hover,
+.menu-flat .dropdown-menu > .disabled > a:focus {
+  color: #999;
+}
+
+.menu-flat .dropdown-menu > .disabled > a:hover,
+.menu-flat .dropdown-menu > .disabled > a:focus {
+  text-decoration: none;
+  background-color: transparent;
+  background-image: none;
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  cursor: not-allowed;
+}
+
+.menu-flat.open .btn {
+  border-bottom-left-radius: 0;
+  border-bottom-right-radius: 0;
+  border-top-right-radius: 0;
+}
+
+.menu-flat.open > .dropdown-menu {
+  display: block;
+}
+
+.menu-flat.open .caret {
+  background: #3a393b;
+}
+
+.menu-flat.open .caret:before {
+  content: '\e864';
+}
+
+.menu-flat.open > a {
+  outline: 0;
+}
+
+.dropdown-menu-right {
+  left: auto;
+  right: 0;
+}
+
+.dropdown-menu-left {
+  left: 0;
+  right: auto;
+}
+
+.dropdown-header {
+  display: block;
+  padding: 3px 20px;
+  font-size: 12px;
+  line-height: 1.428571429;
+  color: #999;
+  white-space: nowrap;
+}
+
+.dropdown-backdrop {
+  position: fixed;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  top: 0;
+  z-index: 990;
+}
+
+.pull-right > .dropdown-menu {
+  right: 0;
+  left: auto;
+}
+
+.dropup .caret,
+.navbar-fixed-bottom .dropdown .caret {
+  border-top: 0;
+  border-bottom: 4px dashed;
+  border-bottom: 4px solid \9;
+  content: "";
+}
+
+.dropup .dropdown-menu,
+.navbar-fixed-bottom .dropdown .dropdown-menu {
+  top: auto;
+  bottom: 100%;
+  margin-bottom: 2px;
+}
+
+ at media (min-width: 992px) {
+  .navbar-right .dropdown-menu {
+    right: 0;
+    left: auto;
+  }
+  .navbar-right .dropdown-menu-left {
+    left: 0;
+    right: auto;
+  }
+}
+
+.hosts {
+  /* Bootstrap Modal*/
+}
+
+.hosts .modal-footer {
+  background: #008abf;
+}
+
+pre {
+  margin-top: 20px;
+}
+
+ at media screen and (min-width: 768px) {
+  .container {
+    width: 1540px;
+  }
+}
+
+ at media screen and (min-width: 1680px) {
+  .container {
+    width: 1540px;
+  }
+}
+
+/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uc2NzcyIsIm1vZHVsZXMvX3Jlc2V0LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2NvbXBhc3MtbWl4aW5zL2xpYi9jb21wYXNzL2Z1bmN0aW9ucy9fbGlzdHMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvY29tcGFzcy1taXhpbnMvbGliL2NvbXBhc3MvZnVuY3Rpb25zL19jb25zdGFudHMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvY29tcGFzcy1taXhpbnMvbGliL2NvbXBhc3MvZnVuY3Rpb25zL19kaXNwbGF5LnNjc3MiLCJtb2R1bGVzL19ib290c3RyYXAuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fbm9ybWFsaXplLnNjc3MiLCJtYWluLmNzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fcHJpbnQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fZ2x5cGhpY29ucy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19zY2FmZm9sZGluZy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGlucy9fdmVuZG9yLXByZWZpeGVzLnNjc3MiLCJtb2R1bGVzL19raW1jaGktdmFyaWFibGVzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL190YWItZm9jdXMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX2ltYWdlLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX3R5cGUuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX3RleHQtZW1waGFzaXMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX2JhY2tncm91bmQtdmFyaWFudC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGlucy9fY2xlYXJmaXguc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX3RleHQtb3ZlcmZsb3cuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fY29kZS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19ncmlkLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL19ncmlkLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL19ncmlkLWZyYW1ld29yay5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL190YWJsZXMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX3RhYmxlLXJvdy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19mb3Jtcy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGlucy9fZm9ybXMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fYnV0dG9ucy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGlucy9fYnV0dG9ucy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGlucy9fb3BhY2l0eS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19jb21wb25lbnQtYW5pbWF0aW9ucy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19kcm9wZG93bnMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX25hdi1kaXZpZGVyLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL19yZXNldC1maWx0ZXIuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fYnV0dG9uLWdyb3Vwcy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGlucy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19pbnB1dC1ncm91cHMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fbmF2cy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19uYXZiYXIuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX25hdi12ZXJ0aWNhbC1hbGlnbi5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19icmVhZGNydW1icy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19wYWdpbmF0aW9uLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL19wYWdpbmF0aW9uLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX3BhZ2VyLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX2xhYmVscy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGlucy9fbGFiZWxzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX2JhZGdlcy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19qdW1ib3Ryb24uc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fdGh1bWJuYWlscy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19hbGVydHMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX2FsZXJ0cy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19wcm9ncmVzcy1iYXJzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL19ncmFkaWVudHMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX3Byb2dyZXNzLWJhci5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19tZWRpYS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19saXN0LWdyb3VwLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL19saXN0LWdyb3VwLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX3BhbmVscy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGlucy9fcGFuZWxzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX3Jlc3BvbnNpdmUtZW1iZWQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fd2VsbHMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fY2xvc2Uuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fbW9kYWxzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX3Rvb2x0aXAuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX3Jlc2V0LXRleHQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fcG9wb3ZlcnMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fY2Fyb3VzZWwuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fdXRpbGl0aWVzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL19jZW50ZXItYmxvY2suc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX2hpZGUtdGV4dC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19yZXNwb25zaXZlLXV0aWxpdGllcy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGlucy9fcmVzcG9uc2l2ZS12aXNpYmlsaXR5LnNjc3MiLCJtb2R1bGVzL19ib290c3RyYXAtc2VsZWN0LnNjc3MiLCJtb2R1bGVzL19iYXNlLnNjc3MiLCJtb2R1bGVzL190b3BiYXIuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvY29tcGFzcy1taXhpbnMvbGliL2NvbXBhc3MvY3NzMy9fc2hhcmVkLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2NvbXBhc3MtbWl4aW5zL2xpYi9jb21wYXNzL2NzczMvX3VzZXItaW50ZXJmYWNlLnNjc3MiLCJtb2R1bGVzL19sb2dpbi5zY3NzIiwibW9kdWxlcy9fYnV0dG9ucy5zY3NzIiwibW9kdWxlcy9fZGlhbG9nLWZsYXQuc2NzcyIsIm1vZHVsZXMvX21vZGFsLWZsYXQuc2NzcyIsIm1vZHVsZXMvX21lbnUtZmxhdC5zY3NzIiwibW9kdWxlcy9fY29sb3JzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUNoQkgsV0FBVztBQU9DOzs7Ozs7RUFDUixVQUFVO0VBQ1YsV0FBVztFQUNYLFVBQVU7Q0FITTs7QUFNa0Q7RUFFbEUsZUFBZTtDQURkOztBQUlGO0VBQ0MsaUJBQWlCO0NBRGQ7O0FBSVA7RUFDSSwwQkFBMEI7RUFDMUIsa0JBQWtCO0NBRmY7O0FBS1A7RUFDSSxhQUFhO0NBRFo7O0FBSUw7RUFDSSxzQkFBc0I7Q0FEdkI7O0FBSU87RUFDTixjQUFjO0NBREE7O0FBSWhCO0VBQ0UsZ0JBQWdCO0NBRFg7O0FDdkNUOzs7R0FHRztBQ0hIOzs7R0FHRztBQ0hIOzs7R0FHRztBQ0hIOzs7O0dBSUc7QUNKSCw0RUFBNEU7QUFRNUU7RUFDRSx3QkFBd0I7RUFDeEIsMkJBQTJCO0VBQzNCLCtCQUErQjtDQUgzQjs7QUFVTjtFQUNFLFVBQVU7Q0FETjs7QUEwQk47Ozs7Ozs7Ozs7Ozs7RUFDRSxlQUFlO0NBRFI7O0FBWVQ7Ozs7RUFDRSxzQkFBc0I7RUFDdEIseUJBQXlCO0NBRnBCOztBQVVhO0VBQ2xCLGNBQWM7RUFDZCxVQUFVO0NBRlc7O0FDaUR2Qjs7RURyQ0UsY0FBYztDQUROOztBQVdWO0VBQ0UsOEJBQThCO0NBRDdCOztBQVVGOztFQUNDLFdBQVc7Q0FESjs7QUFXQztFQUNSLDBCQUEwQjtDQURmOztBQVNiOztFQUNFLGtCQUFrQjtDQURaOztBQVFSO0VBQ0UsbUJBQW1CO0NBRGhCOztBQVNMO0VBQ0UsZUFBZTtFQUNmLGlCQUFpQjtDQUZmOztBQVNKO0VBQ0UsaUJBQWlCO0VBQ2pCLFlBQVk7Q0FGUjs7QUFTTjtFQUNFLGVBQWU7Q0FEVjs7QUFTUDs7RUFDRSxlQUFlO0VBQ2YsZUFBZTtFQUNmLG1CQUFtQjtFQUNuQix5QkFBeUI7Q0FKdEI7O0FBT0w7RUFDRSxZQUFZO0NBRFQ7O0FBSUw7RUFDRSxnQkFBZ0I7Q0FEYjs7QUFXTDtFQUNFLFVBQVU7Q0FEUDs7QUFRUTtFQUNYLGlCQUFpQjtDQURIOztBQVdoQjtFQUNFLGlCQUFnQjtDQURWOztBQVFSO0VBQ0Usd0JBQXdCO0VBQ3hCLFVBQVU7Q0FGUjs7QUFTSjtFQUNFLGVBQWU7Q0FEWjs7QUFXTDs7OztFQUNFLGtDQUFrQztFQUNsQyxlQUFlO0NBRlg7O0FBd0JOOzs7OztFQUNFLGVBQWU7RUFDZixjQUFjO0VBQ2QsVUFBVTtDQUhGOztBQVVWO0VBQ0Usa0JBQWtCO0NBRFo7O0FBWVI7O0VBQ0UscUJBQXFCO0NBRGY7O0FBZVc7OztFQUNqQiwyQkFBMkI7RUFDM0IsZ0JBQWdCO0NBRkk7O0FBVUg7O0VBQ2pCLGdCQUFnQjtDQURJOztBQVNqQjs7RUFDSCxVQUFVO0VBQ1YsV0FBVztDQUZZOztBQVV6QjtFQUNFLG9CQUFvQjtDQURmOztBQWFXOztFQUNoQix1QkFBdUI7RUFDdkIsV0FBVztDQUZROztBQVlEOztFQUNsQixhQUFhO0NBRGtDOztBQVM5QjtFQUNqQiw4QkFBOEI7RUFDOUIsd0JBQXdCO0NBRko7O0FBWUY7O0VBQ2xCLHlCQUF5QjtDQURzQjs7QUFRakQ7RUFDRSwwQkFBMEI7RUFDMUIsY0FBYTtFQUNiLCtCQUE4QjtDQUh0Qjs7QUFXVjtFQUNFLFVBQVU7RUFDVixXQUFXO0NBRkw7O0FBU1I7RUFDRSxlQUFlO0NBRFA7O0FBU1Y7RUFDRSxrQkFBa0I7Q0FEVjs7QUFXVjtFQUNFLDBCQUEwQjtFQUMxQixrQkFBa0I7Q0FGYjs7QUFNUDs7RUFDRSxXQUFXO0NBRFQ7O0FFcmFKLHFGQUFxRjtBQU9yRjtFQUdLOzs7SUFDRyxtQ0FBbUM7SUFDbkMsdUJBQXVCO0lBQ3ZCLDRCQUE0QjtJQUM1Qiw2QkFBNkI7R0FKeEI7RUFRUjs7SUFDRywyQkFBMkI7R0FEcEI7RUFJSjtJQUNILDZCQUE0QjtHQURqQjtFQUlKO0lBQ1AsOEJBQTZCO0dBRGQ7RUFPRzs7SUFDbEIsWUFBWTtHQURjO0VBSzlCOztJQUNJLHVCQUF1QjtJQUN2Qix5QkFBeUI7R0FGakI7RUFLWjtJQUNJLDRCQUE0QjtHQUR6QjtFQUtQOztJQUNJLHlCQUF5QjtHQUR4QjtFQUlMO0lBQ0ksMkJBQTJCO0dBRDFCO0VBTUw7OztJQUNJLFdBQVc7SUFDWCxVQUFVO0dBRlY7RUFNSjs7SUFDSSx3QkFBd0I7R0FEeEI7RUFPSjtJQUNJLGNBQWM7R0FEVDtFQUtIOztJQUNFLGtDQUFrQztHQUQ1QjtFQUlkO0lBQ0ksdUJBQXVCO0dBRG5CO0VBSVI7SUFDSSxxQ0FBcUM7R0FEakM7RUFJSjs7SUFDSSxrQ0FBa0M7R0FEbEM7RUFNSjs7SUFDSSxrQ0FBa0M7R0FEbEM7Q0Q0UVg7O0FFL1ZDO0VBQ0Usb0NBQW9DO0VBQ3BDLHNEQUFRO0VBQ1IsZ1lBSW1NO0NGOFZ0TTs7QUV6VkQ7RUFDRSxtQkFBbUI7RUFDbkIsU0FBUztFQUNULHNCQUFzQjtFQUN0QixvQ0FBb0M7RUFDcEMsbUJBQW1CO0VBQ25CLG9CQUFvQjtFQUNwQixlQUFlO0VBQ2Ysb0NBQW9DO0VBQ3BDLG1DQUFtQztDQVR6Qjs7QUFheUI7RUFBVSxlQUFlO0NBQWhCOztBQUNUO0VBQVUsZUFBZTtDQUFoQjs7QUFFVDs7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBU1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FBQ1Q7RUFBVSxpQkFBaUI7Q0FBbEI7O0FDeFM5QztFQ2tFVSx1QkRqRXNCO0NBRDdCOztBQUlGOztFQzhEUyx1QkQ3RHNCO0NBRHZCOztBQU9UO0VBQ0UsZ0JBQWdCO0VBQ2hCLHlDQUFpQztDQUY3Qjs7QUFLTjtFQUNFLHNLRWdDZ0w7RUYvQmhMLGdCRXlDNEI7RUZ4QzVCLHlCRXFEbUM7RUZwRG5DLFlFakIyQjtFRmtCM0IsdUJFVTBCO0NGZnRCOztBQVlOOzs7O0VBQ0UscUJBQXFCO0VBQ3JCLG1CQUFtQjtFQUNuQixxQkFBcUI7Q0FIYjs7QUFTVjtFQUNFLGVFN0I2QjtFRjhCN0Isc0JBQXNCO0NBRnJCOztBQUtBOztFQUNDLGVFSDBCO0VGSTFCLDJCRUY2QjtDRkF0Qjs7QUFLUjtFR3JERCxxQkFBcUI7RUFFckIsMkNBQTJDO0VBQzNDLHFCQUFxQjtDSGtEWjs7QUFXWDtFQUNFLFVBQVU7Q0FESjs7QUFPUjtFQUNFLHVCQUF1QjtDQURwQjs7QUFLTDtFSXZFRSxlQURtQztFQUVuQyxnQkFBZ0I7RUFDaEIsYUFBYTtDSnFFRTs7QUFLakI7RUFDRSxtQkUyQzZCO0NGNUNqQjs7QUFPZDtFQUNFLGFFK3JCK0I7RUY5ckIvQix5QkVabUM7RUZhbkMsdUJFdEQwQjtFRnVEMUIsdUJFZ3NCZ0M7RUYvckJoQyxtQkUrQjZCO0VEMkRyQixpQ0R6RitCO0VJekZ2QyxzQko0Rm9DO0VJM0ZwQyxnQkFBZ0I7RUFDaEIsYUFBYTtDSmlGQzs7QUFhaEI7RUFDRSxtQkFBbUI7Q0FEUjs7QUFPYjtFQUNFLGlCRTdCNkI7RUY4QjdCLG9CRTlCNkI7RUYrQjdCLFVBQVU7RUFDViwyQkVuRzRCO0NGK0YxQjs7QUFZSjtFQUNFLG1CQUFtQjtFQUNuQixXQUFXO0VBQ1gsWUFBWTtFQUNaLGFBQWE7RUFDYixXQUFXO0VBQ1gsaUJBQWlCO0VBQ2pCLHVCQUFVO0VBQ1YsVUFBVTtDQVJGOztBQWlCUDs7RUFDQyxpQkFBaUI7RUFDakIsWUFBWTtFQUNaLGFBQWE7RUFDYixVQUFVO0VBQ1Ysa0JBQWtCO0VBQ2xCLFdBQVc7Q0FOSjs7QUg4M0NYO0VHNTJDRSxnQkFBZ0I7Q0FERDs7QUtySlE7O0VBQ3ZCLHFCSDZFK0I7RUc1RS9CLGlCSDZFMkI7RUc1RTNCLGlCSDZFMkI7RUc1RTNCLGVINkUrQjtDR2pGSDs7QUFPNUI7Ozs7Ozs7Ozs7Ozs7O0VBQ0Usb0JBQW9CO0VBQ3BCLGVBQWU7RUFDZixZSEgyQjtDR0FyQjs7QUFTTjs7O0VBQ0YsaUJIMEQ2QjtFR3pEN0Isb0JBQXFDO0NBRjlCOztBQUtQOzs7Ozs7Ozs7RUFDRSxlQUFlO0NBRFQ7O0FBTU47OztFQUNGLGlCQUFrQztFQUNsQyxvQkFBcUM7Q0FGOUI7O0FBS1A7Ozs7Ozs7OztFQUNFLGVBQWU7Q0FEVDs7QUFLTjtFQUFNLG1CSDRCdUI7Q0c1QnhCOztBQUNMO0VBQU0sZ0JINEJvQjtDRzVCckI7O0FBQ0w7RUFBTSxnQkg0Qm9CO0NHNUJyQjs7QUFDTDtFQUFNLGdCSG9Cb0I7Q0dwQnJCOztBQUNMO0VBQU0sZ0JIbUJvQjtDR25CckI7O0FBQ0w7RUFBTSxnQkhrQm9CO0NHbEJyQjs7QUFNVDtFQUNFLGlCQUFrQztDQURqQzs7QUFJSDtFQUNFLG9CSHNCNkI7RUdyQjdCLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsaUJBQWlCO0NBSlo7O0FBTUw7RUFORjtJQU9JLGdCQUEyQjtHQVB4QjtDUjBqRE47O0FRemlERDs7RUFDRSxlQUFnQjtDQURWOztBQUtSOztFQUNFLDBCSHlkc0M7RUd4ZHRDLGNBQWM7Q0FGVDs7QUFNUDtFQUF1QixpQkFBaUI7Q0FBbEI7O0FBQ3RCO0VBQXVCLGtCQUFrQjtDQUFuQjs7QUFDdEI7RUFBdUIsbUJBQW1CO0NBQXBCOztBQUN0QjtFQUF1QixvQkFBb0I7Q0FBckI7O0FBQ3RCO0VBQXVCLG9CQUFvQjtDQUFyQjs7QUFHdEI7RUFBdUIsMEJBQTBCO0NBQTNCOztBQUN0QjtFQUF1QiwwQkFBMEI7Q0FBM0I7O0FBQ3RCO0VBQXVCLDJCQUEyQjtDQUE1Qjs7QUFHdEI7RUFDRSxZSHRGNkI7Q0dxRmxCOztBQ2xHa0M7RUFFM0MsZUpjMkI7Q0lmM0I7O0FBRUQ7O0VBRUMsZUFBYTtDQURiOztBQUoyQztFQUUzQyxlSitoQm9DO0NJaGlCcEM7O0FBRUQ7O0VBRUMsZUFBYTtDQURiOztBQUoyQztFQUUzQyxlSm1pQm9DO0NJcGlCcEM7O0FBRUQ7O0VBRUMsZUFBYTtDQURiOztBQUoyQztFQUUzQyxlSnVpQm9DO0NJeGlCcEM7O0FBRUQ7O0VBRUMsZUFBYTtDQURiOztBQUoyQztFQUUzQyxlSjJpQm9DO0NJNWlCcEM7O0FBRUQ7O0VBRUMsZUFBYTtDQURiOztBRCtHSjtFQUdFLFlBQVk7Q0FIRDs7QUVuSHVCO0VBRWhDLDBCTGMyQjtDS2YzQjs7QUFFRDs7RUFFQywwQkFBd0I7Q0FEeEI7O0FBSmdDO0VBRWhDLDBCTGdpQm9DO0NLamlCcEM7O0FBRUQ7O0VBRUMsMEJBQXdCO0NBRHhCOztBQUpnQztFQUVoQywwQkxvaUJvQztDS3JpQnBDOztBQUVEOztFQUVDLDBCQUF3QjtDQUR4Qjs7QUFKZ0M7RUFFaEMsMEJMd2lCb0M7Q0t6aUJwQzs7QUFFRDs7RUFFQywwQkFBd0I7Q0FEeEI7O0FBSmdDO0VBRWhDLDBCTDRpQnFDO0NLN2lCckM7O0FBRUQ7O0VBRUMsMEJBQXdCO0NBRHhCOztBRmtJSjtFQUNFLG9CQUF1QztFQUN2QyxvQkh2RDZCO0VHd0Q3Qiw4QkgzSDRCO0NHd0hoQjs7QUFZZDs7RUFDRSxjQUFjO0VBQ2Qsb0JBQXFDO0NBRm5DOztBQUlGOzs7O0VBQ0UsaUJBQWlCO0NBRGY7O0FBYU47RUFKRSxnQkFBZ0I7RUFDaEIsaUJBQWlCO0NBR0g7O0FBTWhCO0VBVkUsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQVdqQixrQkFBa0I7Q0FGTjs7QUFJVjtFQUNBLHNCQUFzQjtFQUN0QixrQkFBa0I7RUFDbEIsbUJBQW1CO0NBSGY7O0FBUVI7RUFDRSxjQUFjO0VBQ2Qsb0JIdEc2QjtDR29HM0I7O0FBS0o7O0VBQ0UseUJINUdtQztDRzJHakM7O0FBR0o7RUFDRSxrQkFBa0I7Q0FEaEI7O0FBR0o7RUFDRSxlQUFlO0NBRGI7O0FHckxEOztFQUNDLGFBQWE7RUFDYixlQUFlO0NBRlI7O0FBSVI7RUFDQyxZQUFZO0NBREw7O0FIK0xUO0VBQ0U7SUFDRSxZQUFZO0lBQ1osYUFBNkI7SUFDN0IsWUFBWTtJQUNaLGtCQUFrQjtJSWxOdEIsaUJBQWlCO0lBQ2pCLHdCQUF3QjtJQUN4QixvQkFBb0I7R0o0TWQ7RUFPSjtJQUNFLG1CSDBxQjZCO0dHM3FCM0I7Q1IwbkRQOztBUTdtRHVCOztFQUN0QixhQUFhO0VBQ2IsK0JIeE42QjtDR3NOSjs7QUFJM0I7RUFDRSxlQUFlO0NBREo7O0FBTWI7RUFDRSxtQkg3SjZCO0VHOEo3QixpQkg5SjZCO0VHK0o3QixrQkgycEI0QztFRzFwQjVDLDRCSG5PNEI7Q0crTmxCOztBQVNQOzs7RUFDQyxpQkFBaUI7Q0FETDs7QUFTaEI7OztFQUNFLGVBQWU7RUFDZixlQUFlO0VBQ2YseUJIbkxpQztFR29MakMsWUh0UDJCO0NHa1ByQjs7QUFNTDs7O0VBQ0MsdUJBQXVCO0NBRGY7O0FBVUo7O0VBQ1Isb0JBQW9CO0VBQ3BCLGdCQUFnQjtFQUNoQiw2QkhwUTRCO0VHcVE1QixlQUFlO0VBQ2Ysa0JBQWtCO0NBTEc7O0FBV2xCOzs7Ozs7RUFBVSxZQUFZO0NBQWI7O0FBQ1Q7Ozs7OztFQUNDLHVCQUF1QjtDQURoQjs7QUFPYjtFQUNFLG9CSGxONkI7RUdtTjdCLG1CQUFtQjtFQUNuQix5Qkh0Tm1DO0NHbU41Qjs7QUs1UlQ7Ozs7RUFDRSwrRFJvRHlFO0NRckRyRTs7QUFLTjtFQUNFLGlCQUFnQjtFQUNoQixlQUFlO0VBQ2YsZVJrMkJtQztFUWoyQm5DLDBCUmsyQm1DO0VRajJCbkMsbUJSNkc2QjtDUWxIekI7O0FBU047RUFDRSxpQkFBZ0I7RUFDaEIsZUFBZTtFQUNmLFlSNDFCZ0M7RVEzMUJoQyx1QlI0MUJnQztFUTMxQmhDLG1CUnNHNkI7RVFyRzdCLCtDQUErQjtDQU41Qjs7QUFRSDtFQUNFLFdBQVc7RUFDWCxnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLGlCQUFpQjtDQUpkOztBQVNQO0VBQ0UsZUFBZTtFQUNmLGVBQWdDO0VBQ2hDLGlCQUFrQztFQUNsQyxnQkFBMkI7RUFDM0IseUJScUNtQztFUXBDbkMsc0JBQXNCO0VBQ3RCLHNCQUFzQjtFQUN0QixZUm5DMkI7RVFvQzNCLDBCUncwQm1DO0VRdjBCbkMsdUJSeTBCZ0M7RVF4MEJoQyxtQlI2RTZCO0NReEYxQjs7QUFjSDtFQUNFLFdBQVc7RUFDWCxtQkFBbUI7RUFDbkIsZUFBZTtFQUNmLHNCQUFzQjtFQUN0Qiw4QkFBOEI7RUFDOUIsaUJBQWlCO0NBTmI7O0FBV1I7RUFDRSxrQlIwekJpQztFUXp6QmpDLG1CQUFtQjtDQUZKOztBQ3hEakI7RUNIRSxtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLGdCQUF1QjtFQUN2QixpQkFBdUI7Q0RBYjs7QUhLVDs7RUFDQyxhQUFhO0VBQ2IsZUFBZTtDQUZSOztBQUlSO0VBQ0MsWUFBWTtDQURMOztBR05UO0VBSEY7SUFJSSxhVHdYaUM7R1M1WHpCO0NkbStEWDs7QWM3OURDO0VBTkY7SUFPSSxjVDBYa0M7R1NqWTFCO0NkeStEWDs7QWNoK0RDO0VBVEY7SUFVSSxjVDRYa0M7R1N0WTFCO0NkKytEWDs7QWMzOUREO0VDdkJFLG1CQUFtQjtFQUNuQixrQkFBa0I7RUFDbEIsZ0JBQXVCO0VBQ3ZCLGlCQUF1QjtDRG9CUDs7QUhmZjs7RUFDQyxhQUFhO0VBQ2IsZUFBZTtDQUZSOztBQUlSO0VBQ0MsWUFBWTtDQURMOztBR29CWDtFQ3ZCRSxlQUFrQjtFQUNsQixnQkFBbUI7Q0RzQmY7O0FIeEJIOztFQUNDLGFBQWE7RUFDYixlQUFlO0NBRlI7O0FBSVI7RUFDQyxZQUFZO0NBREw7O0FLVFI7RUFFQyxtQkFBbUI7RUFFbkIsZ0JBQWdCO0VBRWhCLGdCQUFtQjtFQUNuQixpQkFBb0I7Q0FOcEI7O0FBZUQ7RUFFQyxZQUFZO0NBRFo7O0FBT3FDO0VBRW5DLHFCQUFpQjtDQURqQjs7QUFEbUM7RUFFbkMsc0JBQWlCO0NBRGpCOztBQURtQztFQUVuQyxXQUFpQjtDQURqQjs7QUFEbUM7RUFFbkMsc0JBQWlCO0NBRGpCOztBQURtQztFQUVuQyxzQkFBaUI7Q0FEakI7O0FBRG1DO0VBRW5DLFdBQWlCO0NBRGpCOztBQURtQztFQUVuQyxzQkFBaUI7Q0FEakI7O0FBRG1DO0VBRW5DLHNCQUFpQjtDQURqQjs7QUFEbUM7RUFFbkMsV0FBaUI7Q0FEakI7O0FBRG1DO0VBRW5DLHNCQUFpQjtDQURqQjs7QUFEbUM7RUFFbkMsc0JBQWlCO0NBRGpCOztBQURtQztFQUVuQyxZQUFpQjtDQURqQjs7QUFtQm1DO0VBRW5DLFlBQVk7Q0FEWjs7QUFOa0M7RUFFbEMscUJBQWlCO0NBRGpCOztBQURrQztFQUVsQyxzQkFBaUI7Q0FEakI7O0FBRGtDO0VBRWxDLFdBQWlCO0NBRGpCOztBQURrQztFQUVsQyxzQkFBaUI7Q0FEakI7O0FBRGtDO0VBRWxDLHNCQUFpQjtDQURqQjs7QUFEa0M7RUFFbEMsV0FBaUI7Q0FEakI7O0FBRGtDO0VBRWxDLHNCQUFpQjtDQURqQjs7QUFEa0M7RUFFbEMsc0JBQWlCO0NBRGpCOztBQURrQztFQUVsQyxXQUFpQjtDQURqQjs7QUFEa0M7RUFFbEMsc0JBQWlCO0NBRGpCOztBQURrQztFQUVsQyxzQkFBaUI7Q0FEakI7O0FBRGtDO0VBRWxDLFlBQWlCO0NBRGpCOztBQU5tQztFQUVuQyxXQUFXO0NBRFg7O0FBTmtDO0VBRWxDLG9CQUFnQjtDQURoQjs7QUFEa0M7RUFFbEMscUJBQWdCO0NBRGhCOztBQURrQztFQUVsQyxVQUFnQjtDQURoQjs7QUFEa0M7RUFFbEMscUJBQWdCO0NBRGhCOztBQURrQztFQUVsQyxxQkFBZ0I7Q0FEaEI7O0FBRGtDO0VBRWxDLFVBQWdCO0NBRGhCOztBQURrQztFQUVsQyxxQkFBZ0I7Q0FEaEI7O0FBRGtDO0VBRWxDLHFCQUFnQjtDQURoQjs7QUFEa0M7RUFFbEMsVUFBZ0I7Q0FEaEI7O0FBRGtDO0VBRWxDLHFCQUFnQjtDQURoQjs7QUFEa0M7RUFFbEMscUJBQWdCO0NBRGhCOztBQURrQztFQUVsQyxXQUFnQjtDQURoQjs7QUFtQm1CO0VBRW5CLGdCQUF1QjtDQUR2Qjs7QUFEbUI7RUFFbkIsMkJBQXVCO0NBRHZCOztBQURtQjtFQUVuQiw0QkFBdUI7Q0FEdkI7O0FBRG1CO0VBRW5CLGlCQUF1QjtDQUR2Qjs7QUFEbUI7RUFFbkIsNEJBQXVCO0NBRHZCOztBQURtQjtFQUVuQiw0QkFBdUI7Q0FEdkI7O0FBRG1CO0VBRW5CLGlCQUF1QjtDQUR2Qjs7QUFEbUI7RUFFbkIsNEJBQXVCO0NBRHZCOztBQURtQjtFQUVuQiw0QkFBdUI7Q0FEdkI7O0FBRG1CO0VBRW5CLGlCQUF1QjtDQUR2Qjs7QUFEbUI7RUFFbkIsNEJBQXVCO0NBRHZCOztBQURtQjtFQUVuQiw0QkFBdUI7Q0FEdkI7O0FBRG1CO0VBRW5CLGtCQUF1QjtDQUR2Qjs7QUZJTjtFRXRDRztJQUVDLFlBQVk7R0FEWjtFQU9xQztJQUVuQyxxQkFBaUI7R0FEakI7RUFEbUM7SUFFbkMsc0JBQWlCO0dBRGpCO0VBRG1DO0lBRW5DLFdBQWlCO0dBRGpCO0VBRG1DO0lBRW5DLHNCQUFpQjtHQURqQjtFQURtQztJQUVuQyxzQkFBaUI7R0FEakI7RUFEbUM7SUFFbkMsV0FBaUI7R0FEakI7RUFEbUM7SUFFbkMsc0JBQWlCO0dBRGpCO0VBRG1DO0lBRW5DLHNCQUFpQjtHQURqQjtFQURtQztJQUVuQyxXQUFpQjtHQURqQjtFQURtQztJQUVuQyxzQkFBaUI7R0FEakI7RUFEbUM7SUFFbkMsc0JBQWlCO0dBRGpCO0VBRG1DO0lBRW5DLFlBQWlCO0dBRGpCO0VBbUJtQztJQUVuQyxZQUFZO0dBRFo7RUFOa0M7SUFFbEMscUJBQWlCO0dBRGpCO0VBRGtDO0lBRWxDLHNCQUFpQjtHQURqQjtFQURrQztJQUVsQyxXQUFpQjtHQURqQjtFQURrQztJQUVsQyxzQkFBaUI7R0FEakI7RUFEa0M7SUFFbEMsc0JBQWlCO0dBRGpCO0VBRGtDO0lBRWxDLFdBQWlCO0dBRGpCO0VBRGtDO0lBRWxDLHNCQUFpQjtHQURqQjtFQURrQztJQUVsQyxzQkFBaUI7R0FEakI7RUFEa0M7SUFFbEMsV0FBaUI7R0FEakI7RUFEa0M7SUFFbEMsc0JBQWlCO0dBRGpCO0VBRGtDO0lBRWxDLHNCQUFpQjtHQURqQjtFQURrQztJQUVsQyxZQUFpQjtHQURqQjtFQU5tQztJQUVuQyxXQUFXO0dBRFg7RUFOa0M7SUFFbEMsb0JBQWdCO0dBRGhCO0VBRGtDO0lBRWxDLHFCQUFnQjtHQURoQjtFQURrQztJQUVsQyxVQUFnQjtHQURoQjtFQURrQztJQUVsQyxxQkFBZ0I7R0FEaEI7RUFEa0M7SUFFbEMscUJBQWdCO0dBRGhCO0VBRGtDO0lBRWxDLFVBQWdCO0dBRGhCO0VBRGtDO0lBRWxDLHFCQUFnQjtHQURoQjtFQURrQztJQUVsQyxxQkFBZ0I7R0FEaEI7RUFEa0M7SUFFbEMsVUFBZ0I7R0FEaEI7RUFEa0M7SUFFbEMscUJBQWdCO0dBRGhCO0VBRGtDO0lBRWxDLHFCQUFnQjtHQURoQjtFQURrQztJQUVsQyxXQUFnQjtHQURoQjtFQW1CbUI7SUFFbkIsZ0JBQXVCO0dBRHZCO0VBRG1CO0lBRW5CLDJCQUF1QjtHQUR2QjtFQURtQjtJQUVuQiw0QkFBdUI7R0FEdkI7RUFEbUI7SUFFbkIsaUJBQXVCO0dBRHZCO0VBRG1CO0lBRW5CLDRCQUF1QjtHQUR2QjtFQURtQjtJQUVuQiw0QkFBdUI7R0FEdkI7RUFEbUI7SUFFbkIsaUJBQXVCO0dBRHZCO0VBRG1CO0lBRW5CLDRCQUF1QjtHQUR2QjtFQURtQjtJQUVuQiw0QkFBdUI7R0FEdkI7RUFEbUI7SUFFbkIsaUJBQXVCO0dBRHZCO0VBRG1CO0lBRW5CLDRCQUF1QjtHQUR2QjtFQURtQjtJQUVuQiw0QkFBdUI7R0FEdkI7RUFEbUI7SUFFbkIsa0JBQXVCO0dBRHZCO0NoQm0xRUw7O0FjdDBFRDtFRS9DRztJQUVDLFlBQVk7R0FEWjtFQU9xQztJQUVuQyxxQkFBaUI7R0FEakI7RUFEbUM7SUFFbkMsc0JBQWlCO0dBRGpCO0VBRG1DO0lBRW5DLFdBQWlCO0dBRGpCO0VBRG1DO0lBRW5DLHNCQUFpQjtHQURqQjtFQURtQztJQUVuQyxzQkFBaUI7R0FEakI7RUFEbUM7SUFFbkMsV0FBaUI7R0FEakI7RUFEbUM7SUFFbkMsc0JBQWlCO0dBRGpCO0VBRG1DO0lBRW5DLHNCQUFpQjtHQURqQjtFQURtQztJQUVuQyxXQUFpQjtHQURqQjtFQURtQztJQUVuQyxzQkFBaUI7R0FEakI7RUFEbUM7SUFFbkMsc0JBQWlCO0dBRGpCO0VBRG1DO0lBRW5DLFlBQWlCO0dBRGpCO0VBbUJtQztJQUVuQyxZQUFZO0dBRFo7RUFOa0M7SUFFbEMscUJBQWlCO0dBRGpCO0VBRGtDO0lBRWxDLHNCQUFpQjtHQURqQjtFQURrQztJQUVsQyxXQUFpQjtHQURqQjtFQURrQztJQUVsQyxzQkFBaUI7R0FEakI7RUFEa0M7SUFFbEMsc0JBQWlCO0dBRGpCO0VBRGtDO0lBRWxDLFdBQWlCO0dBRGpCO0VBRGtDO0lBRWxDLHNCQUFpQjtHQURqQjtFQURrQztJQUVsQyxzQkFBaUI7R0FEakI7RUFEa0M7SUFFbEMsV0FBaUI7R0FEakI7RUFEa0M7SUFFbEMsc0JBQWlCO0dBRGpCO0VBRGtDO0lBRWxDLHNCQUFpQjtHQURqQjtFQURrQztJQUVsQyxZQUFpQjtHQURqQjtFQU5tQztJQUVuQyxXQUFXO0dBRFg7RUFOa0M7SUFFbEMsb0JBQWdCO0dBRGhCO0VBRGtDO0lBRWxDLHFCQUFnQjtHQURoQjtFQURrQztJQUVsQyxVQUFnQjtHQURoQjtFQURrQztJQUVsQyxxQkFBZ0I7R0FEaEI7RUFEa0M7SUFFbEMscUJBQWdCO0dBRGhCO0VBRGtDO0lBRWxDLFVBQWdCO0dBRGhCO0VBRGtDO0lBRWxDLHFCQUFnQjtHQURoQjtFQURrQztJQUVsQyxxQkFBZ0I7R0FEaEI7RUFEa0M7SUFFbEMsVUFBZ0I7R0FEaEI7RUFEa0M7SUFFbEMscUJBQWdCO0dBRGhCO0VBRGtDO0lBRWxDLHFCQUFnQjtHQURoQjtFQURrQztJQUVsQyxXQUFnQjtHQURoQjtFQW1CbUI7SUFFbkIsZ0JBQXVCO0dBRHZCO0VBRG1CO0lBRW5CLDJCQUF1QjtHQUR2QjtFQURtQjtJQUVuQiw0QkFBdUI7R0FEdkI7RUFEbUI7SUFFbkIsaUJBQXVCO0dBRHZCO0VBRG1CO0lBRW5CLDRCQUF1QjtHQUR2QjtFQURtQjtJQUVuQiw0QkFBdUI7R0FEdkI7RUFEbUI7SUFFbkIsaUJBQXVCO0dBRHZCO0VBRG1CO0lBRW5CLDRCQUF1QjtHQUR2QjtFQURtQjtJQUVuQiw0QkFBdUI7R0FEdkI7RUFEbUI7SUFFbkIsaUJBQXVCO0dBRHZCO0VBRG1CO0lBRW5CLDRCQUF1QjtHQUR2QjtFQURtQjtJQUVuQiw0QkFBdUI7R0FEdkI7RUFEbUI7SUFFbkIsa0JBQXVCO0dBRHZCO0NoQmsvRUw7O0FjNTlFRDtFRXhERztJQUVDLFlBQVk7R0FEWjtFQU9xQztJQUVuQyxxQkFBaUI7R0FEakI7RUFEbUM7SUFFbkMsc0JBQWlCO0dBRGpCO0VBRG1DO0lBRW5DLFdBQWlCO0dBRGpCO0VBRG1DO0lBRW5DLHNCQUFpQjtHQURqQjtFQURtQztJQUVuQyxzQkFBaUI7R0FEakI7RUFEbUM7SUFFbkMsV0FBaUI7R0FEakI7RUFEbUM7SUFFbkMsc0JBQWlCO0dBRGpCO0VBRG1DO0lBRW5DLHNCQUFpQjtHQURqQjtFQURtQztJQUVuQyxXQUFpQjtHQURqQjtFQURtQztJQUVuQyxzQkFBaUI7R0FEakI7RUFEbUM7SUFFbkMsc0JBQWlCO0dBRGpCO0VBRG1DO0lBRW5DLFlBQWlCO0dBRGpCO0VBbUJtQztJQUVuQyxZQUFZO0dBRFo7RUFOa0M7SUFFbEMscUJBQWlCO0dBRGpCO0VBRGtDO0lBRWxDLHNCQUFpQjtHQURqQjtFQURrQztJQUVsQyxXQUFpQjtHQURqQjtFQURrQztJQUVsQyxzQkFBaUI7R0FEakI7RUFEa0M7SUFFbEMsc0JBQWlCO0dBRGpCO0VBRGtDO0lBRWxDLFdBQWlCO0dBRGpCO0VBRGtDO0lBRWxDLHNCQUFpQjtHQURqQjtFQURrQztJQUVsQyxzQkFBaUI7R0FEakI7RUFEa0M7SUFFbEMsV0FBaUI7R0FEakI7RUFEa0M7SUFFbEMsc0JBQWlCO0dBRGpCO0VBRGtDO0lBRWxDLHNCQUFpQjtHQURqQjtFQURrQztJQUVsQyxZQUFpQjtHQURqQjtFQU5tQztJQUVuQyxXQUFXO0dBRFg7RUFOa0M7SUFFbEMsb0JBQWdCO0dBRGhCO0VBRGtDO0lBRWxDLHFCQUFnQjtHQURoQjtFQURrQztJQUVsQyxVQUFnQjtHQURoQjtFQURrQztJQUVsQyxxQkFBZ0I7R0FEaEI7RUFEa0M7SUFFbEMscUJBQWdCO0dBRGhCO0VBRGtDO0lBRWxDLFVBQWdCO0dBRGhCO0VBRGtDO0lBRWxDLHFCQUFnQjtHQURoQjtFQURrQztJQUVsQyxxQkFBZ0I7R0FEaEI7RUFEa0M7SUFFbEMsVUFBZ0I7R0FEaEI7RUFEa0M7SUFFbEMscUJBQWdCO0dBRGhCO0VBRGtDO0lBRWxDLHFCQUFnQjtHQURoQjtFQURrQztJQUVsQyxXQUFnQjtHQURoQjtFQW1CbUI7SUFFbkIsZ0JBQXVCO0dBRHZCO0VBRG1CO0lBRW5CLDJCQUF1QjtHQUR2QjtFQURtQjtJQUVuQiw0QkFBdUI7R0FEdkI7RUFEbUI7SUFFbkIsaUJBQXVCO0dBRHZCO0VBRG1CO0lBRW5CLDRCQUF1QjtHQUR2QjtFQURtQjtJQUVuQiw0QkFBdUI7R0FEdkI7RUFEbUI7SUFFbkIsaUJBQXVCO0dBRHZCO0VBRG1CO0lBRW5CLDRCQUF1QjtHQUR2QjtFQURtQjtJQUVuQiw0QkFBdUI7R0FEdkI7RUFEbUI7SUFFbkIsaUJBQXVCO0dBRHZCO0VBRG1CO0lBRW5CLDRCQUF1QjtHQUR2QjtFQURtQjtJQUVuQiw0QkFBdUI7R0FEdkI7RUFEbUI7SUFFbkIsa0JBQXVCO0dBRHZCO0NoQmlwRkw7O0FpQnZzRkQ7RUFDRSw4QlptSnlDO0NZcEpwQzs7QUFHUDtFQUNFLGlCWjJJaUM7RVkxSWpDLG9CWjBJaUM7RVl6SWpDLFlaSzZCO0VZSjdCLGlCQUFpQjtDQUpWOztBQU1UO0VBQ0UsaUJBQWlCO0NBRGY7O0FBT0o7RUFDRSxZQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLG9CWjRENkI7Q1kvRHZCOztBQVVBOzs7Ozs7RUFDQSxhWm9IMkI7RVluSDNCLHlCWmlENkI7RVloRDdCLG9CQUFvQjtFQUNwQiwyQlo4SDRCO0NZbEl4Qjs7QUFTSztFQUNiLHVCQUF1QjtFQUN2Qiw4Qlp1SGdDO0NZekhmOztBQVViOzs7Ozs7RUFDQSxjQUFjO0NBRFY7O0FBTUE7RUFDUiwyQlp3R2dDO0NZekdqQjs7QUFLakI7RUFDRSx1QlpyQndCO0NZb0JsQjs7QUFjRjs7Ozs7O0VBQ0EsYVowRTJCO0NZM0V2Qjs7QUFZWjtFQUNFLHVCWnlFa0M7Q1kxRW5COztBQU9UOzs7Ozs7RUFDQSx1QlprRTRCO0NZbkV4Qjs7QUFPTjs7RUFDQSx5QkFBeUI7Q0FEckI7O0FBWW9CO0VBQzFCLDBCWnlDbUM7Q1kxQ047O0FBV25CO0VBQ1YsMEJaZ0NtQztDWWpDakI7O0FBVUM7RUFDckIsaUJBQWlCO0VBQ2pCLFlBQVk7RUFDWixzQkFBc0I7Q0FIRTs7QUFRUDs7RUFDYixpQkFBaUI7RUFDakIsWUFBWTtFQUNaLG9CQUFvQjtDQUhKOztBQ3ZJQzs7Ozs7Ozs7Ozs7O0VBRWpCLDBCYm9KaUM7Q2FySmpDOztBQU91Qjs7Ozs7RUFFdkIsMEJBQXdCO0NBRHhCOztBQVRpQjs7Ozs7Ozs7Ozs7O0VBRWpCLDBCYjRoQmtDO0NhN2hCbEM7O0FBT3VCOzs7OztFQUV2QiwwQkFBd0I7Q0FEeEI7O0FBVGlCOzs7Ozs7Ozs7Ozs7RUFFakIsMEJiZ2lCa0M7Q2FqaUJsQzs7QUFPdUI7Ozs7O0VBRXZCLDBCQUF3QjtDQUR4Qjs7QUFUaUI7Ozs7Ozs7Ozs7OztFQUVqQiwwQmJvaUJrQztDYXJpQmxDOztBQU91Qjs7Ozs7RUFFdkIsMEJBQXdCO0NBRHhCOztBQVRpQjs7Ozs7Ozs7Ozs7O0VBRWpCLDBCYndpQm1DO0NhemlCbkM7O0FBT3VCOzs7OztFQUV2QiwwQkFBd0I7Q0FEeEI7O0FEMEpOO0VBQ0UsaUJBQWlCO0VBQ2pCLGtCQUFrQjtDQUZEOztBQUlqQjtFQUpGO0lBS0ksWUFBWTtJQUNaLG9CQUFxQztJQUNyQyxtQkFBbUI7SUFDbkIsNkNBQTZDO0lBQzdDLHVCWmxCZ0M7R1lTakI7RUFZYjtJQUNBLGlCQUFpQjtHQURUO0VBU0Y7Ozs7OztJQUNBLG9CQUFvQjtHQURoQjtFQVFWO0lBQ0EsVUFBVTtHQURPO0VBU1Q7Ozs7OztJQUNGLGVBQWU7R0FEQztFQUlkOzs7Ozs7SUFDRixnQkFBZ0I7R0FERDtFQWFmOzs7O0lBQ0EsaUJBQWlCO0dBRGI7Q2pCd3ZGZjs7QW1CaDlGRDtFQUNFLFdBQVc7RUFDWCxVQUFVO0VBQ1YsVUFBVTtFQUlWLGFBQWE7Q0FQTDs7QUFVVjtFQUNFLGVBQWU7RUFDZixZQUFZO0VBQ1osV0FBVztFQUNYLG9CZDZENkI7RWM1RDdCLGdCQUEyQjtFQUMzQixxQkFBcUI7RUFDckIsWWRiMkI7RWNjM0IsVUFBVTtFQUNWLGlDZDBOc0M7Q2NuT2hDOztBQVlSO0VBQ0Usc0JBQXNCO0VBQ3RCLGdCQUFnQjtFQUNoQixtQkFBbUI7RUFDbkIsa0JBQWtCO0NBSmI7O0FBZVk7RWY4QlQsdUJlN0JzQjtDQURWOztBQU1EOztFQUNuQixnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLG9CQUFvQjtDQUhFOztBQU1QO0VBQ2YsZUFBZTtDQURHOztBQUtGO0VBQ2hCLGVBQWU7RUFDZixZQUFZO0NBRk87O0FBT1Y7O0VBQ1QsYUFBYTtDQUREOztBQU9ROzs7RWJ6RXBCLHFCQUFxQjtFQUVyQiwyQ0FBMkM7RUFDM0MscUJBQXFCO0Nhc0VPOztBQUs5QjtFQUNFLGVBQWU7RUFDZixpQkFBb0M7RUFDcEMsZ0JkaEI0QjtFY2lCNUIseUJkSm1DO0VjS25DLFlkeEU4QjtDY21FeEI7O0FBK0JSO0VBQ0UsZUFBZTtFQUNmLFlBQVk7RUFDWixhZHdIcUQ7RWN2SHJELGtCZEg4QjtFY0k5QixnQmRqRDRCO0Vja0Q1Qix5QmRyQ21DO0Vjc0NuQyxZZHpHOEI7RWMwRzlCLHVCZDBGbUM7RWN6Rm5DLHVCQUF1QjtFQUN2Qix1QmQrRm1DO0VjOUZuQyxtQmRJNkI7RUQzRHJCLGlEZXdEZ0M7RWY4RGhDLHlFZTdEc0U7Q0FiakU7O0FDekRaO0VBQ0Msc0JmNktvQztFZTVLcEMsV0FBVztFaEJXTCxtRmdCZFM7Q0FDUjs7QWhCOENSO0VBQ0MsWUNrSWlDO0VEaklqQyxXQUFXO0NBRlE7O0FBSXBCO0VBQXlCLFlDK0hTO0NEL0hWOztBQUN4QjtFQUErQixZQzhIRztDRDlISjs7QWVrQ1o7OztFQUNqQix1QmQ3SDBCO0VjOEgxQixXQUFXO0NBRlM7O0FBTUg7O0VBQ2pCLG9CZDBHd0M7Q2MzR3BCOztBQVFoQjtFQUNOLGFBQWE7Q0FEUTs7QUFZSjtFQUNqQix5QkFBeUI7Q0FETDs7QUFjdEI7RUFLSzs7OztJQUNDLGtCZGlEaUQ7R2NsRG5DO0VBS0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBQ2Qsa0JkZ0RpQztHY2pEaEI7RUFLSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFDZCxrQmR5Q2dDO0djMUNmO0NuQjA4RnRCOztBbUI5N0ZEO0VBQ0Usb0Jka0NtQztDY25DeEI7O0FBVWI7O0VBQ0UsbUJBQW1CO0VBQ25CLGVBQWU7RUFDZixpQkFBaUI7RUFDakIsb0JBQW9CO0NBSlg7O0FBTVQ7O0VBQ0UsaUJkN0kyQjtFYzhJM0IsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQixvQkFBb0I7RUFDcEIsZ0JBQWdCO0NBTFg7O0FBVzZCOzs7O0VBQ3BDLG1CQUFtQjtFQUNuQixtQkFBbUI7RUFDbkIsbUJBQW1CO0NBSG9COztBQU83Qjs7RUFDVixpQkFBaUI7Q0FESTs7QUFNdkI7O0VBQ0UsbUJBQW1CO0VBQ25CLHNCQUFzQjtFQUN0QixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLHVCQUF1QjtFQUN2QixvQkFBb0I7RUFDcEIsZ0JBQWdCO0NBUEE7O0FBVUM7O0VBQ2pCLGNBQWM7RUFDZCxrQkFBa0I7Q0FGaUI7O0FBYWhCOzs7Ozs7RUFDakIsb0JkbEJ3QztDY2lCcEI7O0FBUUg7Ozs7RUFDakIsb0JkMUJ3QztDY3lCcEI7O0FBU3BCOzs7O0VBQ0Usb0JkbkNzQztDY2tDakM7O0FBWVg7RUFFRSxpQkFBb0M7RUFDcEMsb0JBQXVDO0VBRXZDLGlCQUFpQjtFQUNqQixpQkFBa0M7Q0FOZDs7QUFTbkI7Ozs7Ozs7RUFDQyxnQkFBZ0I7RUFDaEIsaUJBQWlCO0NBRlA7O0FDaFArRzs7O0VBRXpILGFmeUttQztFZXhLbkMsa0JmZ0Q0QjtFZS9DNUIsZ0JmRjBCO0VlRzFCLGlCZm9EMkI7RWVuRDNCLG1CZnVEMkI7Q2U1RDNCOztBQU1EOzs7RUFHQyxhZmlLbUM7RWVoS25DLGtCZmdLbUM7Q2VsS25DOztBQUdEOzs7Ozs7O0VBR0MsYUFBYTtDQURiOztBRG1QRjtFQUNFLGFkdkZtQztFY3dGbkMsa0JkaE40QjtFY2lONUIsZ0JkbFEwQjtFY21RMUIsaUJkNU0yQjtFYzZNM0IsbUJkek0yQjtDY29NZDs7QUFPVDtFQUNKLGFkOUZtQztFYytGbkMsa0JkL0ZtQztDYzZGaEI7O0FBS0w7O0VBQ2QsYUFBYTtDQURnQjs7QUFHL0I7RUFDRSxhZHRHbUM7RWN1R25DLGlCQUFrQztFQUNsQyxrQmRoTzRCO0VjaU81QixnQmRsUjBCO0VjbVIxQixpQmQ1TjJCO0NjdU5QOztBQ2hScUc7OztFQUV6SCxhZnVLa0M7RWV0S2xDLG1CZjZDNEI7RWU1QzVCLGdCZkgwQjtFZUkxQix1QmZtRGlDO0VlbERqQyxtQmZzRDJCO0NlM0QzQjs7QUFNRDs7O0VBR0MsYWYrSmtDO0VlOUpsQyxrQmY4SmtDO0NlaEtsQzs7QUFHRDs7Ozs7OztFQUdDLGFBQWE7Q0FEYjs7QUQ2UUY7RUFDRSxhZG5Ia0M7RWNvSGxDLG1CZDdPNEI7RWM4TzVCLGdCZDdSMEI7RWM4UjFCLHVCZHZPaUM7RWN3T2pDLG1CZHBPMkI7Q2MrTmQ7O0FBT1Q7RUFDSixhZDFIa0M7RWMySGxDLGtCZDNIa0M7Q2N5SGY7O0FBS0w7O0VBQ2QsYUFBYTtDQURnQjs7QUFHL0I7RUFDRSxhZGxJa0M7RWNtSWxDLGlCQUFrQztFQUNsQyxtQmQ3UDRCO0VjOFA1QixnQmQ3UzBCO0VjOFMxQix1QmR2UGlDO0Nja1BiOztBQWN4QjtFQUVFLG1CQUFtQjtDQUZOOztBQUtiO0VBQ0Usc0JBQWtDO0NBRHJCOztBQUtqQjtFQUNFLG1CQUFtQjtFQUNuQixPQUFPO0VBQ1AsU0FBUztFQUNULFdBQVc7RUFDWCxlQUFlO0VBQ2YsWWRqS3FEO0Vja0tyRCxhZGxLcUQ7RWNtS3JELGtCZG5LcUQ7RWNvS3JELG1CQUFtQjtFQUNuQixxQkFBcUI7Q0FWQzs7QUFjTzs7Ozs7O0VBQzdCLFlkeEtvQztFY3lLcEMsYWR6S29DO0VjMEtwQyxrQmQxS29DO0NjdUtpQjs7QUFPeEI7Ozs7OztFQUM3QixZZDdLcUM7RWM4S3JDLGFkOUtxQztFYytLckMsa0JkL0txQztDYzRLZ0I7O0FDNVluQzs7Ozs7Ozs7OztFQUNoQixlZm1oQm9DO0NlcGhCWjs7QUFJMUI7RUFDRSxzQmYrZ0JvQztFRC9kOUIsaURnQi9Da0M7Q0FGM0I7O0FBR1o7RUFDQyxzQkFBb0I7RWhCNkNoQixrRWdCNUNzRDtDQUZuRDs7QUFPWDtFQUNFLGVmcWdCb0M7RWVwZ0JwQyxzQmZvZ0JvQztFZW5nQnBDLDBCZm9nQm9DO0NldmdCbEI7O0FBTXBCO0VBQ0UsZWYrZm9DO0NlaGdCZDs7QUFwQk47Ozs7Ozs7Ozs7RUFDaEIsZWYyaEJvQztDZTVoQlo7O0FBSTFCO0VBQ0Usc0JmdWhCb0M7RUR2ZTlCLGlEZ0IvQ2tDO0NBRjNCOztBQUdaO0VBQ0Msc0JBQW9CO0VoQjZDaEIsa0VnQjVDc0Q7Q0FGbkQ7O0FBT1g7RUFDRSxlZjZnQm9DO0VlNWdCcEMsc0JmNGdCb0M7RWUzZ0JwQywwQmY0Z0JvQztDZS9nQmxCOztBQU1wQjtFQUNFLGVmdWdCb0M7Q2V4Z0JkOztBQXBCTjs7Ozs7Ozs7OztFQUNoQixlZitoQm9DO0NlaGlCWjs7QUFJMUI7RUFDRSxzQmYyaEJvQztFRDNlOUIsaURnQi9Da0M7Q0FGM0I7O0FBR1o7RUFDQyxzQkFBb0I7RWhCNkNoQixrRWdCNUNzRDtDQUZuRDs7QUFPWDtFQUNFLGVmaWhCb0M7RWVoaEJwQyxzQmZnaEJvQztFZS9nQnBDLDBCZmdoQnFDO0NlbmhCbkI7O0FBTXBCO0VBQ0UsZWYyZ0JvQztDZTVnQmQ7O0FENFlwQjtFQUNELFVBQTJCO0NBREY7O0FBR2hCO0VBQ1QsT0FBTztDQUQwQjs7QUFXdEM7RUFDRSxlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLG9CQUFvQjtFQUNwQixlQUFjO0NBSkg7O0FBdUJYO0VBRUU7SUFDRSxzQkFBc0I7SUFDdEIsaUJBQWlCO0lBQ2pCLHVCQUF1QjtHQUhaO0VBT2I7SUFDRSxzQkFBc0I7SUFDdEIsWUFBWTtJQUNaLHVCQUF1QjtHQUhWO0VBT2Y7SUFDRSxzQkFBc0I7R0FERjtFQUl0QjtJQUNFLHNCQUFzQjtJQUN0Qix1QkFBdUI7R0FGWDtFQU1aOzs7SUFDRSxZQUFZO0dBREM7RUFNRjtJQUNiLFlBQVk7R0FEZ0I7RUFJOUI7SUFDRSxpQkFBaUI7SUFDakIsdUJBQXVCO0dBRlQ7RUFRaEI7O0lBQ0Usc0JBQXNCO0lBQ3RCLGNBQWM7SUFDZCxpQkFBaUI7SUFDakIsdUJBQXVCO0dBSmQ7RUFNVDs7SUFDRSxnQkFBZ0I7R0FEWDtFQUtzQjs7SUFDN0IsbUJBQW1CO0lBQ25CLGVBQWU7R0FGaUI7RUFNcEI7SUFDWixPQUFPO0dBRDZCO0NuQnloR3pDOztBbUJoZ0dDOzs7O0VBQ0UsY0FBYztFQUNkLGlCQUFpQjtFQUNqQixpQkFBb0M7Q0FIcEI7O0FBUWxCOztFQUNFLGlCQUFrQztDQUR6Qjs7QUFLWDtFSnppQkEsZUFBa0I7RUFDbEIsZ0JBQW1CO0NJd2lCTjs7QVIxaUJaOztFQUNDLGFBQWE7RUFDYixlQUFlO0NBRlI7O0FBSVI7RUFDQyxZQUFZO0NBREw7O0FRNGlCVDtFQUNFO0lBQ0Usa0JBQWtCO0lBQ2xCLGlCQUFpQjtJQUNqQixpQkFBb0M7R0FIdEI7Q25CaWhHbkI7O0FtQnRnR2U7RUFDWixTQUFZO0NBRHdCOztBQVNwQztFQUNFO0lBQ0UseUJBQXNDO0lBQ3RDLGdCZGhoQnNCO0djOGdCUjtDbkJ1Z0dyQjs7QW1CaGdHRztFQUNFO0lBQ0UsaUJBQXFDO0lBQ3JDLGdCZHZoQnNCO0djcWhCUjtDbkJzZ0dyQjs7QXFCMWxIRDtFQUNFLHNCQUFzQjtFQUN0QixpQkFBaUI7RUFDakIsb0JoQjZKcUM7RWdCNUpyQyxtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLDJCQUEyQjtFQUMzQixnQkFBZ0I7RUFDaEIsdUJBQXVCO0VBQ3ZCLDhCQUE4QjtFQUM5QixvQkFBb0I7RUM2Q3BCLGtCakJtRDhCO0VpQmxEOUIsZ0JqQks0QjtFaUJKNUIseUJqQmlCbUM7RWlCaEJuQyxtQmpCOEQ2QjtFRHlGN0IsMEJpQnJNeUI7RWpCc010Qix1QmlCdE1zQjtFakJ1TXJCLHNCaUJ2TXFCO0VqQndNakIsa0JpQnhNaUI7Q0FackI7O0FBa0JEOzs7Ozs7RWZ0QkgscUJBQXFCO0VBRXJCLDJDQUEyQztFQUMzQyxxQkFBcUI7Q2VtQlY7O0FBT1Y7OztFQUNDLFloQndJaUM7RWdCdklqQyxzQkFBc0I7Q0FGZjs7QUFNUjs7RUFDQyxXQUFXO0VBQ1gsdUJBQXVCO0VqQjRCakIsaURpQjNCa0M7Q0FIaEM7O0FBUVM7OztFQUNqQixvQmhCOE13QztFa0IzUDFDLGNGOENzQjtFRTNDdEIsMEJBQWE7RW5CK0RMLGlCaUJuQmtCO0NBSEo7O0FBV0g7O0VBQ2pCLHFCQUFxQjtDQUREOztBQVN4QjtFQzdERSxZakJvS21DO0VpQm5LbkMsdUJqQm9LbUM7RWlCbktuQyxtQmpCb0ttQztDZ0J6R3ZCOztBQ3hEWDs7RUFDQyxZakI4SmlDO0VpQjdKakMsMEJBQXdCO0VBQ3BCLHNCQUFvQjtDQUhqQjs7QUFLUjtFQUNDLFlqQnlKaUM7RWlCeEpqQywwQkFBd0I7RUFDcEIsc0JBQW9CO0NBSGpCOztBQU9BOzs7RUFDUCxZakJrSmlDO0VpQmpKakMsMEJBQXdCO0VBQ3BCLHNCQUFvQjtDQUhDOztBQU94Qjs7Ozs7Ozs7O0VBQ0MsWWpCMkkrQjtFaUIxSS9CLDBCQUF3QjtFQUNwQixzQkFBb0I7Q0FIakI7O0FBUUY7OztFQUNQLHVCQUF1QjtDQURFOztBQVd4Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBQ0MsdUJqQnlIK0I7RWlCeEgzQixtQmpCeUgyQjtDaUIzSHZCOztBQU1aO0VBQ0UsWWpCbUhpQztFaUJsSGpDLHVCakJpSGlDO0NpQm5IM0I7O0FEZVY7RUNoRUUsWWpCd0ttQztFaUJ2S25DLDBCakJZNkI7RWlCWDdCLHNCakJXNkI7Q2dCbURqQjs7QUMzRFg7O0VBQ0MsWWpCa0tpQztFaUJqS2pDLDBCQUF3QjtFQUNwQixvQkFBb0I7Q0FIakI7O0FBS1I7RUFDQyxZakI2SmlDO0VpQjVKakMsMEJBQXdCO0VBQ3BCLHNCQUFvQjtDQUhqQjs7QUFPQTs7O0VBQ1AsWWpCc0ppQztFaUJySmpDLDBCQUF3QjtFQUNwQixzQkFBb0I7Q0FIQzs7QUFPeEI7Ozs7Ozs7OztFQUNDLFlqQitJK0I7RWlCOUkvQiwwQkFBd0I7RUFDcEIsb0JBQW9CO0NBSGpCOztBQVFGOzs7RUFDUCx1QkFBdUI7Q0FERTs7QUFXeEI7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUNDLDBCakIvQnlCO0VpQmdDckIsc0JqQmhDcUI7Q2lCOEJqQjs7QUFNWjtFQUNFLGVqQnJDMkI7RWlCc0MzQix1QmpCcUhpQztDaUJ2SDNCOztBRG1CVjtFQ3BFRSxZakJnTG1DO0VpQi9LbkMsMEJqQmE2QjtFaUJaN0Isc0JqQlk2QjtDZ0JzRGpCOztBQy9EWDs7RUFDQyxZakIwS2lDO0VpQnpLakMsMEJBQXdCO0VBQ3BCLHNCQUFvQjtDQUhqQjs7QUFLUjtFQUNDLFlqQnFLaUM7RWlCcEtqQywwQkFBd0I7RUFDcEIsc0JBQW9CO0NBSGpCOztBQU9BOzs7RUFDUCxZakI4SmlDO0VpQjdKakMsMEJBQXdCO0VBQ3BCLHNCQUFvQjtDQUhDOztBQU94Qjs7Ozs7Ozs7O0VBQ0MsWWpCdUorQjtFaUJ0Si9CLDBCQUF3QjtFQUNwQixzQkFBb0I7Q0FIakI7O0FBUUY7OztFQUNQLHVCQUF1QjtDQURFOztBQVd4Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBQ0MsMEJqQjlCeUI7RWlCK0JyQixzQmpCL0JxQjtDaUI2QmpCOztBQU1aO0VBQ0UsZWpCcEMyQjtFaUJxQzNCLHVCakI2SGlDO0NpQi9IM0I7O0FEdUJWO0VDeEVFLFlqQm9MbUM7RWlCbkxuQywwQmpCYzZCO0VpQmI3QixzQmpCYTZCO0NnQnlEcEI7O0FDbkVSOztFQUNDLFlqQjhLaUM7RWlCN0tqQywwQkFBd0I7RUFDcEIsc0JBQW9CO0NBSGpCOztBQUtSO0VBQ0MsWWpCeUtpQztFaUJ4S2pDLDBCQUF3QjtFQUNwQixzQkFBb0I7Q0FIakI7O0FBT0E7OztFQUNQLFlqQmtLaUM7RWlCaktqQywwQkFBd0I7RUFDcEIsc0JBQW9CO0NBSEM7O0FBT3hCOzs7Ozs7Ozs7RUFDQyxZakIySitCO0VpQjFKL0IsMEJBQXdCO0VBQ3BCLHNCQUFvQjtDQUhqQjs7QUFRRjs7O0VBQ1AsdUJBQXVCO0NBREU7O0FBV3hCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFDQywwQmpCN0J5QjtFaUI4QnJCLHNCakI5QnFCO0NpQjRCakI7O0FBTVo7RUFDRSxlakJuQzJCO0VpQm9DM0IsdUJqQmlJaUM7Q2lCbkkzQjs7QUQyQlY7RUM1RUUsWWpCd0xtQztFaUJ2TG5DLDBCakJlNkI7RWlCZDdCLHNCakJjNkI7Q2dCNERqQjs7QUN2RVg7O0VBQ0MsWWpCa0xpQztFaUJqTGpDLDBCQUF3QjtFQUNwQixzQkFBb0I7Q0FIakI7O0FBS1I7RUFDQyxZakI2S2lDO0VpQjVLakMsMEJBQXdCO0VBQ3BCLHNCQUFvQjtDQUhqQjs7QUFPQTs7O0VBQ1AsWWpCc0tpQztFaUJyS2pDLDBCQUF3QjtFQUNwQixzQkFBb0I7Q0FIQzs7QUFPeEI7Ozs7Ozs7OztFQUNDLFlqQitKK0I7RWlCOUovQiwwQkFBd0I7RUFDcEIsc0JBQW9CO0NBSGpCOztBQVFGOzs7RUFDUCx1QkFBdUI7Q0FERTs7QUFXeEI7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUNDLDBCakI1QnlCO0VpQjZCckIsc0JqQjdCcUI7Q2lCMkJqQjs7QUFNWjtFQUNFLGVqQmxDMkI7RWlCbUMzQix1QmpCcUlpQztDaUJ2STNCOztBRCtCVjtFQ2hGRSxZakI0TG1DO0VpQjNMbkMsMEJqQmdCNkI7RWlCZjdCLHNCakJlNkI7Q2dCK0RsQjs7QUMzRVY7O0VBQ0MsWWpCc0xpQztFaUJyTGpDLDBCQUF3QjtFQUNwQixzQkFBb0I7Q0FIakI7O0FBS1I7RUFDQyxZakJpTGlDO0VpQmhMakMsMEJBQXdCO0VBQ3BCLHNCQUFvQjtDQUhqQjs7QUFPQTs7O0VBQ1AsWWpCMEtpQztFaUJ6S2pDLDBCQUF3QjtFQUNwQixzQkFBb0I7Q0FIQzs7QUFPeEI7Ozs7Ozs7OztFQUNDLFlqQm1LK0I7RWlCbEsvQiwwQkFBd0I7RUFDcEIsc0JBQW9CO0NBSGpCOztBQVFGOzs7RUFDUCx1QkFBdUI7Q0FERTs7QUFXeEI7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUNDLDBCakIzQnlCO0VpQjRCckIsc0JqQjVCcUI7Q2lCMEJqQjs7QUFNWjtFQUNFLGVqQmpDMkI7RWlCa0MzQix1QmpCeUlpQztDaUIzSTNCOztBRHdDVjtFQUNFLGVoQjdFNkI7RWdCOEU3QixvQkFBb0I7RUFDcEIsaUJBQWlCO0NBSFI7O0FBU1U7Ozs7O0VBQ2pCLDhCQUE4QjtFakJwQ3hCLGlCaUJxQ2tCO0NBRko7O0FBT3JCOzs7O0VBQ0MsMEJBQTBCO0NBRGxCOztBQUlUOztFQUNDLGVoQmxFMEI7RWdCbUUxQiwyQmhCakU2QjtFZ0JrRTdCLDhCQUE4QjtDQUh2Qjs7QUFRTjs7OztFQUNDLFloQjVHeUI7RWdCNkd6QixzQkFBc0I7Q0FGZjs7QUFXYjtFQ3ZFRSxtQmpCc0Q4QjtFaUJyRDlCLGdCakJNNEI7RWlCTDVCLHVCakI0RG1DO0VpQjNEbkMsbUJqQitENkI7Q2dCS3RCOztBQUlUO0VDM0VFLGtCakJ5RDhCO0VpQnhEOUIsZ0JqQk80QjtFaUJONUIsaUJqQjZENkI7RWlCNUQ3QixtQmpCZ0U2QjtDZ0JRdEI7O0FBSVQ7RUMvRUUsaUJqQjRENkI7RWlCM0Q3QixnQmpCTzRCO0VpQk41QixpQmpCNkQ2QjtFaUI1RDdCLG1CakJnRTZCO0NnQll0Qjs7QUFRVDtFQUNFLGVBQWU7RUFDZixZQUFZO0NBRkY7O0FBTUM7RUFDWCxnQkFBZ0I7Q0FETzs7QUFRdEI7OztFQUNDLFlBQVk7Q0FERDs7QUczSmY7RUFDRSxXQUFXO0VwQmlMSCxpQ29CaEwrQjtDQUZsQzs7QUFHSjtFQUNDLFdBQVc7Q0FEUDs7QUFLUjtFQUNFLGNBQWM7Q0FETDs7QUFHUjtFQUFXLGVBQWU7Q0FBaEI7O0FBS0Y7RUFBUyxtQkFBbUI7Q0FBcEI7O0FBRUw7RUFBTSx5QkFBeUI7Q0FBMUI7O0FBRW5CO0VBQ0UsbUJBQW1CO0VBQ25CLFVBQVU7RUFDVixpQkFBaUI7RXBCK0pULHdDb0I5SnVDO0VwQnNLdkMsMkJvQnJLeUI7RXBCeUt6QixpQ29CeEtnQztDQU43Qjs7QUN2QmI7RUFDRSxzQkFBc0I7RUFDdEIsU0FBUztFQUNULFVBQVU7RUFDVixpQkFBaUI7RUFDakIsdUJBQXVCO0VBQ3ZCLHVCQUFzQztFQUN0Qyx5QkFBd0M7RUFDeEMsb0NBQWlEO0VBQ2pELG1DQUFpRDtDQVQzQzs7QUFjUjs7RUFDRSxtQkFBbUI7Q0FEVjs7QUFLSztFQUNkLFdBQVc7Q0FEVzs7QUFLeEI7RUFDRSxtQkFBbUI7RUFDbkIsVUFBVTtFQUNWLFFBQVE7RUFDUixjcEJpUzZCO0VvQmhTN0IsY0FBYztFQUNkLFlBQVk7RUFDWixpQkFBaUI7RUFDakIsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsZ0JwQjRCNEI7RW9CM0I1QixpQkFBaUI7RUFDakIsMEJwQjJOc0M7RW9CMU50Qyx1QnBCOE5tQztFb0I3Tm5DLHVCcEIyTm1DO0VvQjFObkMsbUJwQmtGNkI7RUQzRHJCLDRDcUJ0QjJCO0VBQ25DLDZCQUE2QjtDQWxCZjs7QUF1QmI7RUFDQyxTQUFTO0VBQ1QsV0FBVztDQUZDOztBQU1kO0VDdERBLFlBQVk7RUFDWixjQUEyQztFQUMzQyxpQkFBaUI7RUFDakIsdUJyQm9RbUM7Q29Cak56Qjs7QUFLSDtFQUNMLGVBQWU7RUFDZixrQkFBaUI7RUFDakIsWUFBWTtFQUNaLG9CQUFvQjtFQUNwQix5QnBCYWlDO0VvQlpqQyxZcEJ6RHlCO0VvQjBEekIsb0JBQW9CO0NBUFo7O0FBY1Q7O0VBQ0Msc0JBQXNCO0VBQ3RCLGVwQmlNbUM7RW9CaE1uQywwQnBCa01vQztDb0JyTTdCOztBQVdSOzs7RUFDQyxZcEIyQzRCO0VvQjFDNUIsc0JBQXNCO0VBQ3RCLFdBQVc7RUFDWCwwQnBCMUUyQjtDb0JzRXBCOztBQWVSOzs7RUFDQyxZcEJ6RjJCO0NvQndGcEI7O0FBTVI7O0VBQ0Msc0JBQXNCO0VBQ3RCLDhCQUE4QjtFQUM5Qix1QkFBdUI7RUUzR3pCLG9FQUFtRTtFRjZHakUsb0JwQjJJd0M7Q29CaEpqQzs7QUFZUDtFQUNBLGVBQWU7Q0FEQzs7QUFLaEI7RUFDQSxXQUFXO0NBRFI7O0FBU1A7RUFDRSxXQUFXO0VBQ1gsU0FBUztDQUZXOztBQVV0QjtFQUNFLFFBQVE7RUFDUixZQUFZO0NBRk87O0FBTXJCO0VBQ0UsZUFBZTtFQUNmLGtCQUFpQjtFQUNqQixnQnBCcEY0QjtFb0JxRjVCLHlCcEIxRW1DO0VvQjJFbkMsWXBCN0k2QjtFb0I4STdCLG9CQUFvQjtDQU5KOztBQVVsQjtFQUNFLGdCQUFnQjtFQUNoQixRQUFRO0VBQ1IsU0FBUztFQUNULFVBQVU7RUFDVixPQUFPO0VBQ1AsYUFBMEI7Q0FOUjs7QUFVTjtFQUNaLFNBQVM7RUFDVCxXQUFXO0NBRmlCOztBQWE1Qjs7RUFDRSxjQUFjO0VBQ2QsMEJBQXVDO0VBQ3ZDLDRCQUF5QztFQUN6QyxZQUFZO0NBSk47O0FBT1I7O0VBQ0UsVUFBVTtFQUNWLGFBQWE7RUFDYixtQkFBbUI7Q0FITDs7QUFZbEI7RUFFSTtJQUNFLFNBQVM7SUFBRSxXQUFXO0dBRFI7RUFLaEI7SUFDRSxRQUFRO0lBQUUsWUFBWTtHQURIO0N6QjZwSXhCOztBNEIxMklEOztFQUNFLG1CQUFtQjtFQUNuQixzQkFBc0I7RUFDdEIsdUJBQXVCO0NBSEo7O0FBSWpCOztFQUNBLG1CQUFtQjtFQUNuQixZQUFZO0NBRk47O0FBT0w7Ozs7Ozs7O0VBQ0MsV0FBVztDQURIOztBQVdDOzs7O0VBQ1gsa0JBQWtCO0NBREs7O0FBTTNCO0VBQ0Usa0JBQWtCO0NBRE47O0FqQnBCWDs7RUFDQyxhQUFhO0VBQ2IsZUFBZTtDQUZSOztBQUlSO0VBQ0MsWUFBWTtDQURMOztBaUJzQlQ7OztFQUNFLFlBQVk7Q0FEQTs7QUFLWjs7O0VBQ0EsaUJBQWlCO0NBREg7O0FBS3VEO0VBQ3ZFLGlCQUFpQjtDQUR5RDs7QUFLM0Q7RUFDZixlQUFlO0NBRGM7O0FBRVU7RUNsRHZDLDhCRG1EZ0M7RUNsRDdCLDJCRGtENkI7Q0FEVTs7QUFNRTs7RUNoRDVDLDZCRGlENkI7RUNoRDFCLDBCRGdEMEI7Q0FEa0I7O0FBS3BDO0VBQ1gsWUFBWTtDQURXOztBQUdvQztFQUMzRCxpQkFBaUI7Q0FEZ0Q7O0FBSy9EOztFQ3JFRiw4QkRzRWdDO0VDckU3QiwyQkRxRTZCO0NBRFo7O0FBSXFDO0VDakV6RCw2QkRrRTZCO0VDakUxQiwwQkRpRTBCO0NBRDBDOztBQU16RDs7RUFDZCxXQUFXO0NBRHFCOztBQWtCZDtFQUNsQixrQkFBa0I7RUFDbEIsbUJBQW1CO0NBRmlCOztBQUlmO0VBQ3JCLG1CQUFtQjtFQUNuQixvQkFBb0I7Q0FGbUI7O0FBT3pCO0V4QjlDTixpRHdCK0NnQztDQURSOztBQUkvQjtFeEJsRE8saUJ3Qm1Ea0I7Q0FEZDs7QUFPVDtFQUNILGVBQWU7Q0FESjs7QUFJTDtFQUNOLHdCQUFxRDtFQUNyRCx1QkFBdUI7Q0FGVDs7QUFLQTtFQUNkLHdCdkJJNkI7Q3VCTFA7O0FBV1A7OztFQUNiLGVBQWU7RUFDZixZQUFZO0VBQ1osWUFBWTtFQUNaLGdCQUFnQjtDQUpHOztBakJwSXBCOztFQUNDLGFBQWE7RUFDYixlQUFlO0NBRlI7O0FBSVI7RUFDQyxZQUFZO0NBREw7O0FpQjBJTDtFQUNBLFlBQVk7Q0FETjs7QUFRSzs7OztFQUNiLGlCQUFpQjtFQUNqQixlQUFlO0NBRlU7O0FBT1E7RUFDakMsaUJBQWlCO0NBRG1COztBQUdUO0VBQzNCLDZCdkIvQzJCO0V3QnJIN0IsOEJEcUtpQztFQ3BLaEMsNkJEb0tnQztDQUZEOztBQUlIO0VBQzNCLCtCdkJuRDJCO0V3QjdIN0IsMkJEaUw4QjtFQ2hMN0IsMEJEZ0w2QjtDQUZFOztBQUtvQztFQUNwRSxpQkFBaUI7Q0FEeUQ7O0FBS3hFOztFQ2pMRiw4QkRrTGlDO0VDakxoQyw2QkRpTGdDO0NBRGI7O0FBSThDO0VDN0xsRSwyQkQ4TDRCO0VDN0wzQiwwQkQ2TDJCO0NBRG9EOztBQVFsRjtFQUNFLGVBQWU7RUFDZixZQUFZO0VBQ1osb0JBQW9CO0VBQ3BCLDBCQUEwQjtDQUpOOztBQU1sQjs7RUFDQSxZQUFZO0VBQ1osb0JBQW9CO0VBQ3BCLFVBQVU7Q0FIRTs7QUFLRDtFQUNYLFlBQVk7Q0FESzs7QUFJTjtFQUNYLFdBQVc7Q0FEZ0I7O0E1Qm8zSS9COzs7O0U0QjcxSU0sbUJBQW1CO0VBQ25CLHVCQUFVO0VBQ1YscUJBQXFCO0NBSEM7O0FFdk81QjtFQUNFLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2YsMEJBQTBCO0NBSGQ7O0FBTUc7RUFDYixZQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLGlCQUFpQjtDQUhEOztBQU1sQjtFQUdFLG1CQUFtQjtFQUNuQixXQUFXO0VBS1gsWUFBWTtFQUVaLFlBQVk7RUFDWixpQkFBaUI7Q0FaSjs7QUFxQ0o7OztFQUNYLG9CQUFvQjtDQURNOztBQUdTOzs7RUFDakMsaUJBQWlCO0NBRG1COztBQU14Qzs7RUFDRSxVQUFVO0VBQ1Ysb0JBQW9CO0VBQ3BCLHVCQUF1QjtDQUhQOztBQVFsQjtFQUNFLGtCekJ5QzhCO0V5QnhDOUIsZ0J6Qkw0QjtFeUJNNUIsb0JBQW9CO0VBQ3BCLGVBQWU7RUFDZixZekI5RDhCO0V5QitEOUIsbUJBQW1CO0VBQ25CLHVCekI5RDRCO0V5QitENUIsdUJ6QjBJbUM7RXlCekluQyxtQnpCK0M2QjtDeUJ4RFg7O0FBWWpCOztFQUNDLGtCekJtQzRCO0V5QmxDNUIsZ0J6QmYwQjtFeUJnQjFCLG1CekIyQzJCO0N5QjlDakI7O0FBS1g7O0VBQ0MsbUJ6QjJCNEI7RXlCMUI1QixnQnpCckIwQjtFeUJzQjFCLG1CekJxQzJCO0N5QnhDakI7O0FBUVM7O0VBQ25CLGNBQWM7Q0FEUTs7QUFZa0M7Ozs7Ozs7RUR0RzFELDhCQ3VHOEI7RUR0RzNCLDJCQ3NHMkI7Q0FEa0M7O0FBR2hEO0VBQ2hCLGdCQUFnQjtDQURjOztBQVM4Qjs7Ozs7OztFRDFHNUQsNkJDMkc2QjtFRDFHMUIsMEJDMEcwQjtDQURxQzs7QUFHbEQ7RUFDaEIsZUFBZTtDQURjOztBQU0vQjtFQUNFLG1CQUFtQjtFQUduQixhQUFhO0VBQ2Isb0JBQW9CO0NBTEo7O0FBU2Q7RUFDQSxtQkFBbUI7Q0FEYjs7QUFFSjtFQUNBLGtCQUFrQjtDQURaOztBQU1QOzs7RUFDQyxXQUFXO0NBREg7O0FBUVI7O0VBQ0EsbUJBQW1CO0NBRFA7O0FBTVo7O0VBQ0EsV0FBVztFQUNYLGtCQUFrQjtDQUZOOztBQ3pKbEI7RUFDRSxpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtDQUhiOztBcEJNSDs7RUFDQyxhQUFhO0VBQ2IsZUFBZTtDQUZSOztBQUlSO0VBQ0MsWUFBWTtDQURMOztBb0JKUDtFQUNBLG1CQUFtQjtFQUNuQixlQUFlO0NBRlg7O0FBSUY7RUFDQSxtQkFBbUI7RUFDbkIsZUFBZTtFQUNmLG1CMUJrYytDO0MwQnJjNUM7O0FBS0Y7O0VBQ0Msc0JBQXNCO0VBQ3RCLHVCMUJSc0I7QzBCTWY7O0FBT0U7RUFDWCxZMUJmeUI7QzBCY1g7O0FBSWI7O0VBQ0MsWTFCbkJ1QjtFMEJvQnZCLHNCQUFzQjtFQUN0Qiw4QkFBOEI7RUFDOUIsb0IxQndOb0M7QzBCNU43Qjs7QUFhVjs7O0VBQ0MsdUIxQi9Cd0I7RTBCZ0N4QixzQjFCOUJ5QjtDMEI0QmxCOztBQVdYO0VMckRBLFlBQVk7RUFDWixjQUEyQztFQUMzQyxpQkFBaUI7RUFDakIsMEJBSmdDO0NLc0RsQjs7QUFPSDtFQUNULGdCQUFnQjtDQURGOztBQVVsQjtFQUNFLDhCMUJrWjhDO0MwQm5ackM7O0FBRVA7RUFDQSxZQUFZO0VBRVosb0JBQW9CO0NBSGhCOztBQU1GO0VBQ0Esa0JBQWtCO0VBQ2xCLHlCMUJIK0I7RTBCSS9CLDhCQUE4QjtFQUM5QiwyQkFBMEQ7Q0FKdkQ7O0FBS0Y7RUFDQyw2QjFCcVl3QztDMEJ0WWpDOztBQVNSOzs7RUFDQyxZMUJuRndCO0UwQm9GeEIsdUIxQjFEb0I7RTBCMkRwQix1QjFCZ1l3QztFMEIvWHhDLGlDQUFpQztFQUNqQyxnQkFBZ0I7Q0FMVDs7QUFvQlg7RUFDQSxZQUFZO0NBRFI7O0FBSUY7RUFDQSxtQjFCTXlCO0MwQlB0Qjs7QUFHSDtFQUNBLGlCQUFpQjtDQURiOztBQVFIOzs7RUFDQyxZMUJBd0I7RTBCQ3hCLDBCMUJuSHVCO0MwQmlIaEI7O0FBV1g7RUFDQSxZQUFZO0NBRFI7O0FBRUY7RUFDQSxnQkFBZ0I7RUFDaEIsZUFBZTtDQUZYOztBQWNWO0VBQ0UsWUFBWTtDQURFOztBQUdaO0VBQ0EsWUFBWTtDQURSOztBQUVGO0VBQ0EsbUJBQW1CO0VBQ25CLG1CQUFtQjtDQUZoQjs7QUFNSztFQUNWLFVBQVU7RUFDVixXQUFXO0NBRmU7O0FBSzVCO0VBQ0k7SUFDQSxvQkFBb0I7SUFDcEIsVUFBVTtHQUZOO0VBR0Y7SUFDQSxpQkFBaUI7R0FEZDtDL0J1ckpWOztBK0I3cUpEO0VBQ0UsaUJBQWlCO0NBREU7O0FBR1o7RUFFTCxnQkFBZ0I7RUFDaEIsbUIxQm5FMkI7QzBCZ0VuQjs7QUFRRzs7O0VBQ1gsdUIxQjZSa0Q7QzBCOVIvQjs7QUFJckI7RUFDUztJQUNMLDhCMUJ3UmdEO0kwQnZSaEQsMkJBQTBEO0dBRmxEO0VBTUc7OztJQUNYLDBCMUIzS3NCO0cwQjBLSDtDL0Jrckp4Qjs7QStCdHFKRztFQUNBLGNBQWM7Q0FESDs7QUFHWDtFQUNBLGVBQWU7Q0FETjs7QUFVSDtFQUVSLGlCQUFpQjtFRjNPakIsMkJFNk80QjtFRjVPM0IsMEJFNE8yQjtDQUpKOztBQ2xPMUI7RUFDRSxtQkFBbUI7RUFDbkIsaUIzQjZZcUM7RTJCNVlyQyxvQjNCdUU2QjtFMkJ0RTdCLDhCQUE4QjtDQUp2Qjs7QXJCSU47O0VBQ0MsYUFBYTtFQUNiLGVBQWU7Q0FGUjs7QUFJUjtFQUNDLFlBQVk7Q0FETDs7QXFCQ1Q7RUFURjtJQVVJLG1CM0I0RzJCO0cyQnRIdEI7Q2hDZzZKUjs7QVc1NUpFOztFQUNDLGFBQWE7RUFDYixlQUFlO0NBRlI7O0FBSVI7RUFDQyxZQUFZO0NBREw7O0FxQmVUO0VBSEY7SUFJSSxZQUFZO0dBSkE7Q2hDNDVKZjs7QWdDejRKRDtFQUNFLG9CQUFvQjtFQUNwQixpQjNCeVdzQztFMkJ4V3RDLGdCM0J3V3NDO0UyQnZXdEMsa0NBQWtDO0VBQ2xDLG1EQUE4QjtFQUU5QixrQ0FBa0M7Q0FQbEI7O0FyQm5DZjs7RUFDQyxhQUFhO0VBQ2IsZUFBZTtDQUZSOztBQUlSO0VBQ0MsWUFBWTtDQURMOztBcUJ3Q1I7RUFDQyxpQkFBaUI7Q0FEYjs7QUFJTjtFQWJGO0lBY0ksWUFBWTtJQUNaLGNBQWM7SUFDZCxpQkFBaUI7R0FoQkg7RUFrQmI7SUFDQywwQkFBMEI7SUFDMUIsd0JBQXdCO0lBQ3hCLGtCQUFrQjtJQUNsQiw2QkFBNkI7R0FKbkI7RUFPWDtJQUNDLG9CQUFvQjtHQURoQjtFQVFlOzs7SUFDbkIsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtHQUZLO0NoQ3M1SjNCOztBZ0M3NEpDOztFQUNFLGtCM0JrVW9DO0MyQm5VcEI7O0FBR2hCO0VBSEY7O0lBSUksa0JBQWtCO0dBSko7Q2hDeTVKbkI7O0FnQ3g0Skc7Ozs7RUFDQSxnQjNCK1NvQztFMkI5U3BDLGUzQjhTb0M7QzJCaFRsQjs7QUFJbEI7RUFKQTs7OztJQUtFLGdCQUFnQjtJQUNoQixlQUFnQjtHQU5BO0NoQzA1SnJCOztBZ0N2NEpEO0VBQ0UsYzNCa002QjtFMkJqTTdCLHNCQUFxQjtDQUZIOztBQUlsQjtFQUpGO0lBS0ksaUJBQWlCO0dBTEQ7Q2hDazVKbkI7O0FnQ3Y0SkQ7O0VBQ0UsZ0JBQWdCO0VBQ2hCLFNBQVM7RUFDVCxRQUFRO0VBQ1IsYzNCd0w2QjtDMkI1TFQ7O0FBT3BCO0VBUEY7O0lBUUksaUJBQWlCO0dBUkM7Q2hDczVKckI7O0FnQzM0SkQ7RUFDRSxPQUFPO0VBQ1Asc0JBQXFCO0NBRko7O0FBSW5CO0VBQ0UsVUFBVTtFQUNWLGlCQUFpQjtFQUNqQixzQkFBc0I7Q0FIRjs7QUFTdEI7RUFDRSxZQUFZO0VBQ1osZ0IzQndQc0M7RTJCdlB0QyxnQjNCL0Y0QjtFMkJnRzVCLGtCM0JsRjZCO0UyQm1GN0IsYTNCa1BxQztDMkJ2UHhCOztBQVFaOztFQUNDLHNCQUFzQjtDQURmOztBQUlQO0VBQ0EsZUFBZTtDQURWOztBQUlQO0VBRTZCOztJQUN6QixlM0J1T2tDO0cyQnhPTjtDaEMrNEpqQzs7QWdDbjRKRDtFQUNFLG1CQUFtQjtFQUNuQixhQUFhO0VBQ2IsZ0IzQnlOc0M7RTJCeE50QyxrQkFBaUI7RUM5TGpCLGdCQUE0QjtFQUM1QixtQkFBK0I7RUQrTC9CLDhCQUE4QjtFQUM5Qix1QkFBdUI7RUFDdkIsOEJBQThCO0VBQzlCLG1CM0J6RTZCO0MyQmdFZjs7QUFhYjtFQUNDLFdBQVc7Q0FESjs7QUFLVDtFQUNFLGVBQWU7RUFDZixZQUFZO0VBQ1osWUFBWTtFQUNaLG1CQUFtQjtDQUpWOztBQU1DO0VBQ1YsZ0JBQWdCO0NBREs7O0FBSXZCO0VBNUJGO0lBNkJJLGNBQWM7R0E3QkY7Q2hDcTZKZjs7QWdDOTNKRDtFQUNFLGdCM0JvTHNDO0MyQnJMM0I7O0FBR0o7RUFDTCxrQkFBcUI7RUFDckIscUJBQXFCO0VBQ3JCLGtCM0J6SjJCO0MyQnNKbkI7O0FBTVY7RUFFUTtJQUNKLGlCQUFpQjtJQUNqQixZQUFZO0lBQ1osWUFBWTtJQUNaLGNBQWM7SUFDZCw4QkFBOEI7SUFDOUIsVUFBVTtJQUNWLGlCQUFpQjtHQVBHO0VBU3BCOztJQUNFLDJCQUEwQjtHQURWO0VBR1g7SUFDTCxrQjNCM0t1QjtHMkIwS2Y7RUFHUDs7SUFDQyx1QkFBdUI7R0FEaEI7Q2hDcTRKaEI7O0FnQzczSkM7RUFsQ0Y7SUFtQ0ksWUFBWTtJQUNaLFVBQVU7R0FwQ0Q7RUFzQ1A7SUFDQSxZQUFZO0dBRFI7RUFFRjtJQUNBLGtCM0I2STJDO0kyQjVJM0MscUIzQjRJMkM7RzJCOUl4QztDaENxNEpWOztBZ0N2M0pEO0VBQ0UsZTNCOEhzQztFMkI3SHRDLGdCM0I2SHNDO0UyQjVIdEMsZ0IzQjRIc0M7RTJCM0h0QyxrQ0FBa0M7RUFDbEMscUNBQXFDO0U1QjdON0IscUY0QjhOaUQ7RUM3UnpELGdCQUE0QjtFQUM1QixtQkFBK0I7Q0RzUm5COztBYndMWjtFQUVFO0lBQ0Usc0JBQXNCO0lBQ3RCLGlCQUFpQjtJQUNqQix1QkFBdUI7R0FIWjtFQU9iO0lBQ0Usc0JBQXNCO0lBQ3RCLFlBQVk7SUFDWix1QkFBdUI7R0FIVjtFQU9mO0lBQ0Usc0JBQXNCO0dBREY7RUFJdEI7SUFDRSxzQkFBc0I7SUFDdEIsdUJBQXVCO0dBRlg7RUFNWjs7O0lBQ0UsWUFBWTtHQURDO0VBTUY7SUFDYixZQUFZO0dBRGdCO0VBSTlCO0lBQ0UsaUJBQWlCO0lBQ2pCLHVCQUF1QjtHQUZUO0VBUWhCOztJQUNFLHNCQUFzQjtJQUN0QixjQUFjO0lBQ2QsaUJBQWlCO0lBQ2pCLHVCQUF1QjtHQUpkO0VBTVQ7O0lBQ0UsZ0JBQWdCO0dBRFg7RUFLc0I7O0lBQzdCLG1CQUFtQjtJQUNuQixlQUFlO0dBRmlCO0VBTXBCO0lBQ1osT0FBTztHQUQ2QjtDbkJpc0p6Qzs7QWdDejZKRztFQURGO0lBRUksbUJBQW1CO0dBRlY7RUFJUjtJQUNDLGlCQUFpQjtHQURMO0NoQys2Sm5COztBZ0NyNkpDO0VBMUJGO0lBMkJJLFlBQVk7SUFDWixVQUFVO0lBQ1YsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2Ysa0JBQWtCO0k1QnhQWixpQjRCeVBrQjtHQWpDZDtDaEM0OEpiOztBZ0NuNkprQjtFQUNqQixjQUFjO0VIcFVkLDJCR3FVNEI7RUhwVTNCLDBCR29VMkI7Q0FGSzs7QUFLSztFQUN0QyxpQkFBaUI7RUh6VWpCLDZCeEI2SDZCO0V3QjVINUIsNEJ4QjRINEI7RXdCckg3Qiw4QkdtVStCO0VIbFU5Qiw2QkdrVThCO0NBSHVCOztBQVd4RDtFQ2hWRSxnQkFBNEI7RUFDNUIsbUJBQStCO0NEK1VwQjs7QUFHVjtFQ25WRCxpQkFBNEI7RUFDNUIsb0JBQStCO0NEa1ZyQjs7QUFHVDtFQ3RWRCxpQkFBNEI7RUFDNUIsb0JBQStCO0NEcVZyQjs7QUFVWjtFQ2hXRSxpQkFBNEI7RUFDNUIsb0JBQStCO0NEK1ZuQjs7QUFHWjtFQUhGO0lBSUksWUFBWTtJQUNaLGUzQmlEb0M7STJCaERwQyxnQjNCZ0RvQztHMkJ0RDFCO0NoQzY2SmI7O0FnQzE1SkQ7RUFDRTtJQUNFLHVCQUF1QjtHQURYO0VBR2Q7SUFDRSx3QkFBd0I7SUFDMUIsZ0IzQjZCc0M7RzJCL0J2QjtFQUlYO0lBQ0EsZ0JBQWdCO0dBREQ7Q2hDKzVKcEI7O0FnQ3A1SkQ7RUFDRSwwQjNCb0J3QztFMkJuQnhDLHNCM0JvQnVDO0MyQnRCeEI7O0FBSWY7RUFDRSxZM0JvQjJDO0MyQnJCOUI7O0FBR1o7O0VBQ0MsZTNCMkIyQztFMkIxQjNDLDhCM0IyQmdEO0MyQjdCekM7O0FBTVg7RUFDRSxZM0JNbUM7QzJCUHZCOztBQUtMO0VBQ0wsWTNCTXlDO0MyQlBqQzs7QUFJUDs7RUFDQyxZM0JHdUM7RTJCRnZDLDhCM0JHOEM7QzJCTHZDOztBQVFSOzs7RUFDQyxZM0JIdUM7RTJCSXZDLDBCM0JIeUM7QzJCQ2xDOztBQVFSOzs7RUFDQyxZM0JUdUM7RTJCVXZDLDhCM0JUOEM7QzJCT3ZDOztBQU9iO0VBQ0UsbUIzQkwyQztDMkJJN0I7O0FBR2I7O0VBQ0MsdUIzQlZ5QztDMkJTbEM7O0FBR1Q7RUFDRSx1QjNCWnlDO0MyQldoQzs7QUFNYjs7RUFDRSxzQjNCcENxQztDMkJtQ3pCOztBQVVUOzs7RUFDQywwQjNCdkN5QztFMkJ3Q3pDLFkzQnpDdUM7QzJCdUNoQzs7QUFNWDtFQUdXO0lBQ0wsWTNCcERxQztHMkJtRDdCO0VBR1A7O0lBQ0MsWTNCdERtQztJMkJ1RG5DLDhCM0J0RDBDO0cyQm9EbkM7RUFRUjs7O0lBQ0MsWTNCNURtQztJMkI2RG5DLDBCM0I1RHFDO0cyQjBEOUI7RUFRUjs7O0lBQ0MsWTNCbEVtQztJMkJtRW5DLDhCM0JsRTBDO0cyQmdFbkM7Q2hDZzVKbEI7O0FnQ2w0SkM7RUFDRSxZM0JyRjJDO0MyQm9GL0I7O0FBRVg7RUFDQyxZM0J0RnlDO0MyQnFGbEM7O0FBS1g7RUFDRSxZM0I1RjJDO0MyQjJGbEM7O0FBR1I7O0VBQ0MsWTNCOUZ5QztDMkI2RmxDOztBQU1OOzs7O0VBQ0MsWTNCaEd1QztDMkIrRmhDOztBQVNmO0VBQ0UsdUIzQnhGOEM7RTJCeUY5QyxzQjNCeEZnRDtDMkJzRmpDOztBQUlmO0VBQ0UsZTNCeEYrQztDMkJ1RmxDOztBQUdaOztFQUNDLFkzQmpGMEM7RTJCa0YxQyw4QjNCakZpRDtDMkIrRTFDOztBQU1YO0VBQ0UsZTNCdEcrQztDMkJxR25DOztBQUtMO0VBQ0wsZTNCdEc2QztDMkJxR3JDOztBQUlQOztFQUNDLFkzQnpHd0M7RTJCMEd4Qyw4QjNCekcrQztDMkJ1R3hDOztBQVFSOzs7RUFDQyxZM0JqSHdDO0UyQmtIeEMsMEIzQi9HMEM7QzJCNkduQzs7QUFRUjs7O0VBQ0MsWTNCckh3QztFMkJzSHhDLDhCM0JySCtDO0MyQm1IeEM7O0FBUWI7RUFDRSxtQjNCbEg0QztDMkJpSDlCOztBQUdiOztFQUNDLHVCM0J2SDBDO0MyQnNIbkM7O0FBR1Q7RUFDRSx1QjNCekgwQztDMkJ3SGpDOztBQU1iOztFQUNFLHNCQUFvQjtDQURSOztBQVNUOzs7RUFDQywwQjNCbkowQztFMkJvSjFDLFkzQnZKd0M7QzJCcUpqQzs7QUFNWDtFQUdNO0lBQ0Esc0IzQm5Ld0M7RzJCa0t0QjtFQUdwQjtJQUNFLDBCM0J0S3dDO0cyQnFLaEM7RUFHSDtJQUNMLGUzQnRLeUM7RzJCcUtqQztFQUdQOztJQUNDLFkzQnhLb0M7STJCeUtwQyw4QjNCeEsyQztHMkJzS3BDO0VBUVI7OztJQUNDLFkzQmhMb0M7STJCaUxwQywwQjNCOUtzQztHMkI0Sy9CO0VBUVI7OztJQUNDLFkzQnBMb0M7STJCcUxwQyw4QjNCcEwyQztHMkJrTHBDO0NoQzYzSmxCOztBZ0NwM0pDO0VBQ0UsZTNCbE0rQztDMkJpTW5DOztBQUVYO0VBQ0MsWTNCbk0wQztDMkJrTW5DOztBQUtYO0VBQ0UsZTNCek0rQztDMkJ3TXRDOztBQUdSOztFQUNDLFkzQjNNMEM7QzJCME1uQzs7QUFNTjs7OztFQUNDLFkzQjdNd0M7QzJCNE1qQzs7QUUzb0JmO0VBQ0Usa0I3Qm8wQmtDO0U2Qm4wQmxDLG9CN0I2RTZCO0U2QjVFN0IsaUJBQWlCO0VBQ2pCLDBCN0JtMEJxQztFNkJsMEJyQyxtQjdCc0g2QjtDNkIzSGxCOztBQU9UO0VBQ0Esc0JBQXNCO0NBRGxCOztBQUdBO0VBQ0YsbUJBQXdDO0VBQ3hDLGVBQWM7RUFDZCxZN0I0ekI4QjtDNkIvekJuQjs7QUFPYjtFQUNBLFk3QlAyQjtDNkJNbEI7O0FDbkJiO0VBQ0Usc0JBQXNCO0VBQ3RCLGdCQUFnQjtFQUNoQixlQUErQjtFQUMvQixtQjlCeUg2QjtDOEI3SGxCOztBQU1UO0VBQ0EsZ0JBQWdCO0NBRFo7O0FBR0Y7O0VBQ0EsbUJBQW1CO0VBQ25CLFlBQVk7RUFDWixrQjlCbUcwQjtFOEJsRzFCLHlCOUJrRStCO0U4QmpFL0Isc0JBQXNCO0VBQ3RCLGU5QkN5QjtFOEJBekIsdUI5QmllcUM7RThCaGVyQyx1QjlCaWVxQztFOEJoZXJDLGtCQUFrQjtDQVRaOztBQWFKOztFQUNBLGVBQWU7RU5YckIsK0J4QmlINkI7RXdCaEgxQiw0QnhCZ0gwQjtDOEJ2R2pCOztBQU9OOztFTnpCTixnQ3hCeUg2QjtFd0J4SDFCLDZCeEJ3SDBCO0M4QmhHakI7O0FBU1Q7Ozs7RUFDQyxXQUFXO0VBQ1gsZTlCT3dCO0U4Qk54Qix1QjlCM0J3QjtFOEI0QnhCLG1COUI0Y3FDO0M4QmhkOUI7O0FBWVI7Ozs7OztFQUNDLFdBQVc7RUFDWCxZOUJvY3FDO0U4Qm5jckMsMEI5QnJDeUI7RThCc0N6QixzQjlCdEN5QjtFOEJ1Q3pCLGdCQUFnQjtDQUxUOztBQWVOOzs7Ozs7RUFDRCxZOUJyRHlCO0U4QnNEekIsdUI5QjBicUM7RThCemJyQyxtQjlCMGJxQztFOEJ6YnJDLG9COUJzTHNDO0M4QjFMN0I7O0FDL0RUOztFQUNBLG1CL0IrRzBCO0UrQjlHMUIsZ0IvQitEd0I7RStCOUR4Qix1Qi9CcUgrQjtDK0J4SHpCOztBQU9KOztFUEdOLCtCeEJrSDZCO0V3QmpIMUIsNEJ4QmlIMEI7QytCckhqQjs7QUFNTjs7RVBYTixnQ3hCMEg2QjtFd0J6SDFCLDZCeEJ5SDBCO0MrQi9HakI7O0FBYlI7O0VBQ0Esa0IvQmtIMEI7RStCakgxQixnQi9CZ0V3QjtFK0IvRHhCLGlCL0JzSHlCO0MrQnpIbkI7O0FBT0o7O0VQR04sK0J4Qm1INkI7RXdCbEgxQiw0QnhCa0gwQjtDK0J0SGpCOztBQU1OOztFUFhOLGdDeEIySDZCO0V3QjFIMUIsNkJ4QjBIMEI7QytCaEhqQjs7QUNiZDtFQUNFLGdCQUFnQjtFQUNoQixlQUErQjtFQUMvQixpQkFBaUI7RUFDakIsbUJBQW1CO0NBSmI7O0ExQlNMOztFQUNDLGFBQWE7RUFDYixlQUFlO0NBRlI7O0FBSVI7RUFDQyxZQUFZO0NBREw7O0EwQlBUO0VBQ0UsZ0JBQWdCO0NBRGQ7O0FBR0E7O0VBQ0Esc0JBQXNCO0VBQ3RCLGtCQUFpQjtFQUNqQix1QmhDbWVxQztFZ0NsZXJDLHVCaENtZXFDO0VnQ2xlckMsb0JoQ3VmcUM7Q2dDNWYvQjs7QUFTTDs7RUFDRCxzQkFBc0I7RUFDdEIsdUJoQ1J3QjtDZ0NNZjs7QUFRVDs7RUFDQSxhQUFhO0NBRFA7O0FBT047O0VBQ0EsWUFBWTtDQUROOztBQVNOOzs7O0VBQ0EsWWhDaEN5QjtFZ0NpQ3pCLHVCaENtY3FDO0VnQ2xjckMsb0JoQzRNc0M7Q2dDL01oQzs7QUMzQ1o7RUFDRSxnQkFBZ0I7RUFDaEIsMkJBQXVCO0VBQ3ZCLGVBQWU7RUFDZixrQkFBa0I7RUFDbEIsZUFBZTtFQUNmLFlqQzRtQmdDO0VpQzNtQmhDLG1CQUFtQjtFQUNuQixvQkFBb0I7RUFDcEIseUJBQXlCO0VBQ3pCLHFCQUFxQjtDQVZmOztBQWVMO0VBQ0MsY0FBYztDQURQOztBQUtKO0VBQ0gsbUJBQW1CO0VBQ25CLFVBQVU7Q0FGSjs7QUFTUDs7RUFDQyxZakNzbEI4QjtFaUNybEI5QixzQkFBc0I7RUFDdEIsZ0JBQWdCO0NBSFQ7O0FBVVg7RUN4Q0UsdUJsQ2E2QjtDaUMyQmY7O0FDcENYOztFQUNDLHVCQUF3QjtDQURqQjs7QUR3Q2I7RUM1Q0UsMEJsQ2dCNkI7Q2lDNEJmOztBQ3hDWDs7RUFDQywwQkFBd0I7Q0FEakI7O0FENENiO0VDaERFLDBCbENpQjZCO0NpQytCZjs7QUM1Q1g7O0VBQ0MsMEJBQXdCO0NBRGpCOztBRGdEYjtFQ3BERSwwQmxDa0I2QjtDaUNrQ2xCOztBQ2hEUjs7RUFDQywwQkFBd0I7Q0FEakI7O0FEb0RiO0VDeERFLDBCbENtQjZCO0NpQ3FDZjs7QUNwRFg7O0VBQ0MsMEJBQXdCO0NBRGpCOztBRHdEYjtFQzVERSwwQmxDb0I2QjtDaUN3Q2hCOztBQ3hEVjs7RUFDQywwQkFBd0I7Q0FEakI7O0FDRGI7RUFDRSxzQkFBc0I7RUFDdEIsZ0JBQWdCO0VBQ2hCLGlCQUFnQjtFQUNoQixnQm5DNkQ0QjtFbUM1RDVCLGtCbkNxekJnQztFbUNwekJoQyxZbkMweUJnQztFbUN6eUJoQyxlbkNvekI2QjtFbUNuekI3Qix1QkFBdUI7RUFDdkIsb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQix1Qm5DRDZCO0VtQ0U3QixvQm5DZ3pCZ0M7Q21DNXpCMUI7O0FBZUw7RUFDQyxjQUFjO0NBRFA7O0FBS0o7RUFDSCxtQkFBbUI7RUFDbkIsVUFBVTtDQUZKOztBQU1hOzs7RUFDbkIsT0FBTztFQUNQLGlCQUFnQjtDQUZNOztBQVNHOztFQUN6QixlbkN2QjJCO0VtQ3dCM0IsdUJuQ214QjhCO0NtQ3J4QkY7O0FBS1g7RUFDakIsYUFBYTtDQURPOztBQUlDO0VBQ3JCLGtCQUFrQjtDQURNOztBQUlKO0VBQ3BCLGlCQUFpQjtDQURNOztBQVF4Qjs7RUFDQyxZbkN5dkI4QjtFbUN4dkI5QixzQkFBc0I7RUFDdEIsZ0JBQWdCO0NBSFQ7O0FDekRYO0VBQ0Usa0JwQ2toQm1DO0VvQ2poQm5DLHFCcENpaEJtQztFb0NoaEJuQyxvQnBDZ2hCbUM7RW9DL2dCbkMsZXBDZ2hCc0M7RW9DL2dCdEMsdUJwQ080QjtDb0NabEI7O0FBUVY7O0VBQ0UsZXBDNmdCb0M7Q29DOWdCakM7O0FBSUw7RUFDRSxvQkFBa0M7RUFDbEMsZ0JwQ3lnQmlDO0VvQ3hnQmpDLGlCQUFpQjtDQUhoQjs7QUFNRDtFQUNBLDBCQUF3QjtDQURwQjs7QUFLVzs7RUFDZixtQnBDb0cyQjtDb0NyR1Q7O0FBSXBCO0VBQ0UsZ0JBQWdCO0NBRE47O0FBSVo7RUEvQkY7SUFnQ0ksa0JBQW1DO0lBQ25DLHFCQUFtQztHQWpDM0I7RUFvQ1M7O0lBQ2YsbUJBQWtDO0lBQ2xDLG9CQUFrQztHQUZoQjtFQU1wQjs7SUFDRSxnQnBDNmUrQjtHb0M5ZTVCO0N6Q20xTFI7O0EwQzUzTEQ7RUFDRSxlQUFlO0VBQ2YsYXJDb3hCK0I7RXFDbnhCL0Isb0JyQzJFNkI7RXFDMUU3Qix5QnJDd0VtQztFcUN2RW5DLHVCckM4QjBCO0VxQzdCMUIsdUJyQ294QmdDO0VxQ254QmhDLG1CckNtSDZCO0VEMkRyQixvQ3NDN0trQztDQVJoQzs7QUFXTjs7RW5DUkosZUFEbUM7RUFFbkMsZ0JBQWdCO0VBQ2hCLGFBQWE7RW1DUVgsa0JBQWtCO0VBQ2xCLG1CQUFtQjtDQUhaOztBQVNUO0VBQ0UsYXJDNHdCNkI7RXFDM3dCN0IsWXJDZnlCO0NxQ2FqQjs7QUFTRDs7O0VBQ1Qsc0JyQ2pCNkI7Q3FDZ0JYOztBQzNCcEI7RUFDRSxrQnRDdXBCb0M7RXNDdHBCcEMsb0J0QzBFNkI7RXNDekU3Qiw4QkFBOEI7RUFDOUIsaUJ0Q3FwQjZCO0NzQ3pwQnZCOztBQU9OO0VBQ0UsY0FBYztFQUVkLGVBQWU7Q0FIYjs7QUFPSjtFQUNFLGtCdEMyb0I4QjtDc0M1b0JuQjs7QUFNWDs7RUFDQSxpQkFBaUI7Q0FEYjs7QUFJQTtFQUNKLGdCQUFnQjtDQURUOztBQVVYO0VBQ0UsMEJ0Q3FuQitCO0NzQ3RuQmI7O0FBSWxCO0VBQ0UsbUJBQW1CO0VBQ25CLFVBQVU7RUFDVixhQUFhO0VBQ2IsZUFBZTtDQUpUOztBQVlWO0VDdkRFLDBCdkNraUJzQztFdUNqaUJ0QyxzQnZDa2lCc0M7RXVDamlCdEMsZXZDK2hCc0M7Q3NDMWV4Qjs7QUNuRGQ7RUFDRSwwQkFBd0I7Q0FEdEI7O0FBR0o7RUFDRSxlQUFhO0NBREY7O0FEb0RmO0VDM0RFLDBCdkNzaUJzQztFdUNyaUJ0QyxzQnZDc2lCc0M7RXVDcmlCdEMsZXZDbWlCc0M7Q3NDMWUzQjs7QUN2RFg7RUFDRSwwQkFBd0I7Q0FEdEI7O0FBR0o7RUFDRSxlQUFhO0NBREY7O0FEd0RmO0VDL0RFLDBCdkMwaUJzQztFdUN6aUJ0QyxzQnZDMGlCc0M7RXVDemlCdEMsZXZDdWlCc0M7Q3NDMWV4Qjs7QUMzRGQ7RUFDRSwwQkFBd0I7Q0FEdEI7O0FBR0o7RUFDRSxlQUFhO0NBREY7O0FENERmO0VDbkVFLDBCdkM4aUJ1QztFdUM3aUJ2QyxzQnZDOGlCcUM7RXVDN2lCckMsZXZDMmlCc0M7Q3NDMWV6Qjs7QUMvRGI7RUFDRSwwQkFBd0I7Q0FEdEI7O0FBR0o7RUFDRSxlQUFhO0NBREY7O0FDRGY7RUFDRTtJQUFRLDRCQUE0QjtHN0MwL0xuQztFNkN6L0xEO0lBQVEseUJBQXlCO0c3QzQvTGhDO0NBQ0Y7O0E2Q3ovTEQ7RUFDRTtJQUFRLDRCQUE0QjtHN0M2L0xuQztFNkM1L0xEO0lBQVEseUJBQXlCO0c3QysvTGhDO0NBQ0Y7O0E2Q3gvTEQ7RUFDRSxpQkFBaUI7RUFDakIsYXhDeUQ2QjtFd0N4RDdCLG9CeEN3RDZCO0V3Q3ZEN0IsMEJ4QytwQm1DO0V3QzlwQm5DLG1CeENrRzZCO0VEM0RyQiwrQ3lDdENnQztDQU4vQjs7QUFVWDtFQUNFLFlBQVk7RUFDWixVQUFVO0VBQ1YsYUFBYTtFQUNiLGdCeENnQzRCO0V3Qy9CNUIsa0J4QzRDNkI7RXdDM0M3QixZeENxcEJnQztFd0NwcEJoQyxtQkFBbUI7RUFDbkIsMEJ4Q3hCNkI7RURrRHJCLCtDeUN6QitCO0V6QytJL0IsNEJ5QzlJMEI7Q0FWckI7O0FBbUJmOztFQ0VFLHNNQUFpQztFREFqQywyQkFBMEI7Q0FGTDs7QUFVVjs7RXpDN0NYLDJEeUM4QzBEO0V6QzVDbEQsbUR5QzRDa0Q7Q0FEdEM7O0FBUXRCO0VFckVFLDBCMUNpQjZCO0N3Q29EUjs7QUVsRUg7RURrRGxCLHNNQUFpQztDQ2xEWjs7QUZzRXZCO0VFekVFLDBCMUNrQjZCO0N3Q3VEWDs7QUV0RUE7RURrRGxCLHNNQUFpQztDQ2xEWjs7QUYwRXZCO0VFN0VFLDBCMUNtQjZCO0N3QzBEUjs7QUUxRUg7RURrRGxCLHNNQUFpQztDQ2xEWjs7QUY4RXZCO0VFakZFLDBCMUNvQjZCO0N3QzZEVDs7QUU5RUY7RURrRGxCLHNNQUFpQztDQ2xEWjs7QUNOdkI7RUFFRSxpQkFBaUI7Q0FGWDs7QUFJTDtFQUNDLGNBQWM7Q0FERDs7QUFNakI7O0VBQ0UsUUFBUTtFQUNSLGlCQUFpQjtDQUZOOztBQUtiO0VBQ0UsZUFBZTtDQURKOztBQUliO0VBQ0UsZUFBZTtDQURGOztBQUlaO0VBQ0MsZ0JBQWdCO0NBREQ7O0FBTVY7O0VBQ1AsbUJBQW1CO0NBREM7O0FBS2I7O0VBQ1Asb0JBQW9CO0NBREQ7O0FBTXJCOzs7RUFDRSxvQkFBb0I7RUFDcEIsb0JBQW9CO0NBRlQ7O0FBS2I7RUFDRSx1QkFBdUI7Q0FEVjs7QUFJZjtFQUNFLHVCQUF1QjtDQURWOztBQUtmO0VBQ0UsY0FBYztFQUNkLG1CQUFtQjtDQUZMOztBQVFoQjtFQUNFLGdCQUFnQjtFQUNoQixpQkFBaUI7Q0FGTjs7QUNyRGI7RUFFRSxvQkFBb0I7RUFDcEIsZ0JBQWdCO0NBSEw7O0FBV2I7RUFDRSxtQkFBbUI7RUFDbkIsZUFBZTtFQUNmLG1CQUFrQjtFQUVsQixvQkFBb0I7RUFDcEIsdUI1Q3lyQmtDO0U0Q3hyQmxDLHVCNUMwckJrQztDNENqc0JsQjs7QUFVZjtFcEIzQkQsNkJ4QjZINkI7RXdCNUg1Qiw0QnhCNEg0QjtDNENsR2Q7O0FBR2Q7RUFDQyxpQkFBaUI7RXBCdkJuQixnQ3hCcUg2QjtFd0JwSDVCLCtCeEJvSDRCO0M0Qy9GZjs7QUFhVjs7RUFDSixZNUM0ckJrQztDNEM3ckJaOztBQUd0Qjs7RUFDRSxZNUMyckJnQztDNEM1ckJSOztBQU16Qjs7OztFQUNDLHNCQUFzQjtFQUN0QixZNUNrckJnQztFNENqckJoQywwQjVDZ3FCbUM7QzRDbnFCNUI7O0FBT0w7RUFDSixZQUFZO0VBQ1osaUJBQWlCO0NBRks7O0FBU1o7OztFQUNSLHVCNUN2RDBCO0U0Q3dEMUIsWTVDekQyQjtFNEMwRDNCLG9CNUNvTHdDO0M0Q3ZMeEI7O0FBTWhCOzs7RUFDRSxlQUFlO0NBRFM7O0FBRzFCOzs7RUFDRSxZNUNqRXlCO0M0Q2dFSjs7QUFRakI7OztFQUNOLFdBQVc7RUFDWCxZNUMyQzRCO0U0QzFDNUIsMEI1Q3hFMkI7RTRDeUUzQixzQjVDekUyQjtDNENxRWI7O0FBU2E7Ozs7Ozs7OztFQUN6QixlQUFlO0NBRGtCOztBQUduQzs7O0VBQ0UsZTVDNm5CaUM7QzRDOW5CWjs7QUNsR2tDO0VBRXpELGU3Q2dpQm9DO0U2Qy9oQnBDLDBCN0NnaUJvQztDNkNsaUJwQzs7QUFLRDs7RUFHQyxlN0N5aEJvQztDNkMxaEJwQzs7QUFHQTs7RUFDRSxlQUFlO0NBRFM7O0FBS3pCOzs7O0VBQ0MsZTdDaWhCa0M7RTZDaGhCbEMsMEJBQXdCO0NBRmpCOztBQU1EOzs7Ozs7RUFDTixZQUFZO0VBQ1osMEI3QzBnQmtDO0U2Q3pnQmxDLHNCN0N5Z0JrQztDNkM1Z0JwQjs7QUF0QnlDO0VBRXpELGU3Q29pQm9DO0U2Q25pQnBDLDBCN0NvaUJvQztDNkN0aUJwQzs7QUFLRDs7RUFHQyxlN0M2aEJvQztDNkM5aEJwQzs7QUFHQTs7RUFDRSxlQUFlO0NBRFM7O0FBS3pCOzs7O0VBQ0MsZTdDcWhCa0M7RTZDcGhCbEMsMEJBQXdCO0NBRmpCOztBQU1EOzs7Ozs7RUFDTixZQUFZO0VBQ1osMEI3QzhnQmtDO0U2QzdnQmxDLHNCN0M2Z0JrQztDNkNoaEJwQjs7QUF0QnlDO0VBRXpELGU3Q3dpQm9DO0U2Q3ZpQnBDLDBCN0N3aUJvQztDNkMxaUJwQzs7QUFLRDs7RUFHQyxlN0NpaUJvQztDNkNsaUJwQzs7QUFHQTs7RUFDRSxlQUFlO0NBRFM7O0FBS3pCOzs7O0VBQ0MsZTdDeWhCa0M7RTZDeGhCbEMsMEJBQXdCO0NBRmpCOztBQU1EOzs7Ozs7RUFDTixZQUFZO0VBQ1osMEI3Q2toQmtDO0U2Q2poQmxDLHNCN0NpaEJrQztDNkNwaEJwQjs7QUF0QnlDO0VBRXpELGU3QzRpQm9DO0U2QzNpQnBDLDBCN0M0aUJxQztDNkM5aUJyQzs7QUFLRDs7RUFHQyxlN0NxaUJvQztDNkN0aUJwQzs7QUFHQTs7RUFDRSxlQUFlO0NBRFM7O0FBS3pCOzs7O0VBQ0MsZTdDNmhCa0M7RTZDNWhCbEMsMEJBQXdCO0NBRmpCOztBQU1EOzs7Ozs7RUFDTixZQUFZO0VBQ1osMEI3Q3NoQmtDO0U2Q3JoQmxDLHNCN0NxaEJrQztDNkN4aEJwQjs7QURrR3BCO0VBQ0UsY0FBYztFQUNkLG1CQUFtQjtDQUZLOztBQUkxQjtFQUNFLGlCQUFpQjtFQUNqQixpQkFBaUI7Q0FGSTs7QUV4SHZCO0VBQ0Usb0I5QzZFNkI7RThDNUU3Qix1QjlDNHVCZ0M7RThDM3VCaEMsOEJBQThCO0VBQzlCLG1COUNzSDZCO0VEM0RyQiwwQytDMUQwQjtDQUw1Qjs7QUFTUjtFQUNFLGM5Q3F1QmdDO0M4Q3R1QnJCOztBeENEVjs7RUFDQyxhQUFhO0VBQ2IsZUFBZTtDQUZSOztBQUlSO0VBQ0MsWUFBWTtDQURMOztBd0NHWDtFQUNFLG1COUNndUJxQztFOEMvdEJyQyxxQ0FBcUM7RXRCcEJyQyw2QnNCcUJnRDtFdEJwQi9DLDRCc0JvQitDO0NBSGxDOztBQUtGO0VBQ1YsZUFBZTtDQURhOztBQU1oQztFQUNFLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsZ0JBQWU7RUFDZixlQUFlO0NBSkg7O0FBVUQ7Ozs7O0VBQ1QsZUFBZTtDQURIOztBQU1oQjtFQUNFLG1COUNxc0JxQztFOENwc0JyQywwQjlDMHNCbUM7RThDenNCbkMsMkI5Q3dzQmdDO0V3Qmh2QmhDLGdDc0J5Q21EO0V0QnhDbEQsK0JzQndDa0Q7Q0FKdEM7O0FBZU87O0VBQ2xCLGlCQUFpQjtDQURjOztBQUcvQjs7RUFDRSxvQkFBb0I7RUFDcEIsaUJBQWlCO0NBRkQ7O0FBT0E7O0VBQ2QsY0FBYztFdEJ2RXBCLDZCc0J3RXNEO0V0QnZFckQsNEJzQnVFcUQ7Q0FGcEI7O0FBUWQ7O0VBQ2QsaUJBQWlCO0V0QnZFdkIsZ0NzQndFeUQ7RXRCdkV4RCwrQnNCdUV3RDtDQUZ4Qjs7QUFPZjtFdEJyRmxCLDJCc0JzRmdDO0V0QnJGL0IsMEJzQnFGK0I7Q0FEQTs7QUFPaEI7RUFDZCxvQkFBb0I7Q0FEUTs7QUFJbEI7RUFDWixvQkFBb0I7Q0FETzs7QUFZUDs7O0VBQ2xCLGlCQUFpQjtDQURTOztBQUcxQjs7O0VBQ0UsbUI5Q2tvQjRCO0U4Q2pvQjVCLG9COUNpb0I0QjtDOENub0JyQjs7QUFPNkI7O0V0QnRIeEMsNkJzQnVIa0Q7RXRCdEhqRCw0QnNCc0hpRDtDQURJOztBQUs5Qzs7OztFQUNGLDRCQUE2QztFQUM3Qyw2QkFBOEM7Q0FGOUI7O0FBS2Q7Ozs7Ozs7O0VBQ0EsNEJBQTZDO0NBRC9COztBQUlkOzs7Ozs7OztFQUNBLDZCQUE4QztDQURqQzs7QUFRa0I7O0V0QnBJdkMsZ0NzQnFJcUQ7RXRCcElwRCwrQnNCb0lvRDtDQUREOztBQUs1Qzs7OztFQUNGLCtCQUFnRDtFQUNoRCxnQ0FBaUQ7Q0FGbEM7O0FBS2I7Ozs7Ozs7O0VBQ0EsK0JBQWdEO0NBRGxDOztBQUlkOzs7Ozs7OztFQUNBLGdDQUFpRDtDQURwQzs7QUFTQzs7OztFQUNwQiwyQjlDTmdDO0M4Q0tDOztBQUlXOztFQUM1QyxjQUFjO0NBRGtDOztBQUk1Qjs7RUFDcEIsVUFBVTtDQUQyQjs7QUFPN0I7Ozs7Ozs7Ozs7OztFQUNGLGVBQWU7Q0FEQzs7QUFJZDs7Ozs7Ozs7Ozs7O0VBQ0YsZ0JBQWdCO0NBREQ7O0FBU2Y7Ozs7Ozs7O0VBQ0EsaUJBQWlCO0NBRGI7O0FBU0o7Ozs7Ozs7O0VBQ0EsaUJBQWlCO0NBRGI7O0FBTVY7RUFDQSxVQUFVO0VBQ1YsaUJBQWlCO0NBRkU7O0FBWXZCO0VBQ0Usb0I5QzFJNkI7QzhDeUlqQjs7QUFJWjtFQUNFLGlCQUFpQjtFQUNqQixtQjlDbkcyQjtDOENpR3JCOztBQUlKO0VBQ0EsZ0JBQWdCO0NBRFI7O0FBS1o7RUFDRSxpQkFBaUI7Q0FESDs7QUFJTTs7RUFDbEIsMkI5QzRnQjRCO0M4QzdnQkc7O0FBS25DO0VBQ0UsY0FBYztDQUREOztBQUVLO0VBQ2hCLDhCOUNxZ0I0QjtDOEN0Z0JDOztBQVFuQztFQzFQRSxtQi9DNHZCZ0M7QzhDbGdCbEI7O0FDeFBWO0VBQ0YsWS9DT3lCO0UrQ056QiwwQi9DeXZCaUM7RStDeHZCakMsbUIvQ3V2QjhCO0MrQzF2Qlo7O0FBS0U7RUFDbEIsdUIvQ292QjRCO0MrQ3J2Qkc7O0FBR2pDO0VBQ0UsZS9Da3ZCK0I7RStDanZCL0IsdUIvQ0Z1QjtDK0NBakI7O0FBTVk7RUFDbEIsMEIvQzJ1QjRCO0MrQzV1Qkc7O0FENk9yQztFQzdQRSxzQi9DZ0I2QjtDOEM2T2Y7O0FDM1BWO0VBQ0YsWS9DNHZCOEI7RStDM3ZCOUIsMEIvQ1kyQjtFK0NYM0Isc0IvQ1cyQjtDK0NkVDs7QUFLRTtFQUNsQiwwQi9DUXlCO0MrQ1RNOztBQUdqQztFQUNFLGUvQ0t5QjtFK0NKekIsdUIvQ212QjRCO0MrQ3J2QnRCOztBQU1ZO0VBQ2xCLDZCL0NEeUI7QytDQU07O0FEZ1ByQztFQ2hRRSxzQi9DbWlCc0M7QzhDblN4Qjs7QUM5UFY7RUFDRixlL0M4aEJvQztFK0M3aEJwQywwQi9DOGhCb0M7RStDN2hCcEMsc0IvQzhoQm9DO0MrQ2ppQmxCOztBQUtFO0VBQ2xCLDBCL0MyaEJrQztDK0M1aEJIOztBQUdqQztFQUNFLGUvQ3VoQmtDO0UrQ3RoQmxDLDBCL0NxaEJrQztDK0N2aEI1Qjs7QUFNWTtFQUNsQiw2Qi9Da2hCa0M7QytDbmhCSDs7QURtUHJDO0VDblFFLHNCL0N1aUJzQztDOENwUzNCOztBQ2pRUDtFQUNGLGUvQ2tpQm9DO0UrQ2ppQnBDLDBCL0NraUJvQztFK0NqaUJwQyxzQi9Da2lCb0M7QytDcmlCbEI7O0FBS0U7RUFDbEIsMEIvQytoQmtDO0MrQ2hpQkg7O0FBR2pDO0VBQ0UsZS9DMmhCa0M7RStDMWhCbEMsMEIvQ3loQmtDO0MrQzNoQjVCOztBQU1ZO0VBQ2xCLDZCL0NzaEJrQztDK0N2aEJIOztBRHNQckM7RUN0UUUsc0IvQzJpQnNDO0M4Q3JTeEI7O0FDcFFWO0VBQ0YsZS9Dc2lCb0M7RStDcmlCcEMsMEIvQ3NpQm9DO0UrQ3JpQnBDLHNCL0NzaUJvQztDK0N6aUJsQjs7QUFLRTtFQUNsQiwwQi9DbWlCa0M7QytDcGlCSDs7QUFHakM7RUFDRSxlL0MraEJrQztFK0M5aEJsQywwQi9DNmhCa0M7QytDL2hCNUI7O0FBTVk7RUFDbEIsNkIvQzBoQmtDO0MrQzNoQkg7O0FEeVByQztFQ3pRRSxzQi9DK2lCcUM7QzhDdFN4Qjs7QUN2UVQ7RUFDRixlL0MwaUJvQztFK0N6aUJwQywwQi9DMGlCcUM7RStDemlCckMsc0IvQzBpQm1DO0MrQzdpQmpCOztBQUtFO0VBQ2xCLDBCL0N1aUJpQztDK0N4aUJGOztBQUdqQztFQUNFLGUvQ21pQm1DO0UrQ2xpQm5DLDBCL0NpaUJrQztDK0NuaUI1Qjs7QUFNWTtFQUNsQiw2Qi9DOGhCaUM7QytDL2hCRjs7QUNmckM7RUFDRSxtQkFBbUI7RUFDbkIsZUFBZTtFQUNmLFVBQVU7RUFDVixXQUFXO0VBQ1gsaUJBQWlCO0NBTEE7O0FBV2pCOzs7OztFQUNFLG1CQUFtQjtFQUNuQixPQUFPO0VBQ1AsUUFBUTtFQUNSLFVBQVU7RUFDVixhQUFhO0VBQ2IsWUFBWTtFQUNaLFVBQVU7Q0FQTDs7QUFZVDtFQUNFLHVCQUF1QjtDQURBOztBQUt6QjtFQUNFLG9CQUFvQjtDQURFOztBQzFCeEI7RUFDRSxpQkFBaUI7RUFDakIsY0FBYztFQUNkLG9CQUFvQjtFQUNwQiwwQmpEb3lCbUM7RWlEbnlCbkMsMEJqRG95QmtDO0VpRG55QmxDLG1CakRvSDZCO0VEM0RyQixnRGtEeERnQztDQVBuQzs7QUFRTDtFQUNFLG1CQUFtQjtFQUNuQixrQ0FBa0I7Q0FGUjs7QUFPZDtFQUNFLGNBQWM7RUFDZCxtQmpEMEc2QjtDaUQ1R3JCOztBQUlWO0VBQ0UsYUFBYTtFQUNiLG1CakR1RzZCO0NpRHpHckI7O0FDcEJWO0VBQ0UsYUFBYTtFQUNiLGdCQUEyQjtFQUMzQixrQmxEazJCZ0M7RWtEajJCaEMsZUFBZTtFQUNmLFlsRGkyQmdDO0VrRGgyQmhDLDBCbERpMkJ3QztFa0J6MkJ4QyxhZ0NTbUI7RWhDTm5CLDBCQUFhO0NnQ0RQOztBQVVMOztFQUNDLFlsRDIxQjhCO0VrRDExQjlCLHNCQUFzQjtFQUN0QixnQkFBZ0I7RWhDZmxCLGFnQ2dCcUI7RWhDYnJCLDBCQUFhO0NnQ1NKOztBQWNMO0VBQ0osV0FBVztFQUNYLGdCQUFnQjtFQUNoQix3QkFBd0I7RUFDeEIsVUFBVTtFQUNWLHlCQUF5QjtDQUxiOztBQ25CZDtFQUNFLGlCQUFpQjtDQUROOztBQUtiO0VBQ0UsY0FBYztFQUNkLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsT0FBTztFQUNQLFNBQVM7RUFDVCxVQUFVO0VBQ1YsUUFBUTtFQUNSLGNuRGlUNkI7RW1EaFQ3QixrQ0FBa0M7RUFJbEMsV0FBVztDQWJMOztBQWdCQztFcEQwR1Asc0NBQTRCO0VBQ3hCLGtDQUF3QjtFQUVwQiw4QkFBb0I7RUFxRXBCLDRDb0RoTHFDO0VwRGdMckMsb0NvRGhMcUM7Q0FGdkI7O0FBSWpCO0VwRHNHTCxtQ0FBNEI7RUFDeEIsK0JBQXdCO0VBRXBCLDJCQUFvQjtDb0R6R1I7O0FBRVY7RUFDVixtQkFBbUI7RUFDbkIsaUJBQWlCO0NBRkM7O0FBTXBCO0VBQ0UsbUJBQW1CO0VBQ25CLFlBQVk7RUFDWixhQUFhO0NBSEE7O0FBT2Y7RUFDRSxtQkFBbUI7RUFDbkIsdUJuRG9sQmlEO0VtRG5sQmpELHVCbkR1bEJpRDtFbUR0bEJqRCwyQ25Eb2xCaUQ7RW1EbmxCakQsbUJuRDBFNkI7RUQ1RHJCLHlDb0RiMEI7RUFDbEMsNkJBQTZCO0VBRTdCLFdBQVc7Q0FURzs7QUFhaEI7RUFDRSxnQkFBZ0I7RUFDaEIsT0FBTztFQUNQLFNBQVM7RUFDVCxVQUFVO0VBQ1YsUUFBUTtFQUNSLGNuRGtRNkI7RW1EalE3Qix1Qm5EeWtCZ0M7Q21EaGxCakI7O0FBU2Q7RWpDckVELFdpQ3FFMkI7RWpDbEUzQix5QkFBYTtDaUNrRUw7O0FBQ1A7RWpDdEVELGFsQjhvQjhCO0VrQjNvQjlCLDBCQUFhO0NpQ21FUDs7QUFLUjtFQUNFLDZCbkRvakIrQztFbURuakIvQyxxQ25EbWtCdUM7RW1EbGtCdkMsb0NuRGtqQmdDO0NtRHJqQm5COztBQU1EO0VBQ1osaUJBQWlCO0NBREc7O0FBS3RCO0VBQ0UsVUFBVTtFQUNWLGtCbkQwaUJnQztDbUQ1aUJwQjs7QUFPZDtFQUNFLG1CQUFtQjtFQUNuQixtQm5EOGhCcUM7Q21EaGlCMUI7O0FBTWI7RUFDRSxtQm5EeWhCcUM7RW1EeGhCckMsa0JBQWtCO0VBQ2xCLGtDbkQwaUJ1QztDbUQ3aUIxQjs7QTdDeEZaOztFQUNDLGFBQWE7RUFDYixlQUFlO0NBRlI7O0FBSVI7RUFDQyxZQUFZO0NBREw7O0E2QzJGRjtFQUNMLGlCQUFpQjtFQUNqQixpQkFBaUI7Q0FGTjs7QUFLSztFQUNoQixrQkFBa0I7Q0FESTs7QUFJWDtFQUNYLGVBQWU7Q0FEUTs7QUFNM0I7RUFDRSxtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLFlBQVk7RUFDWixhQUFhO0VBQ2IsaUJBQWlCO0NBTE87O0FBUzFCO0VBRUU7SUFDRSxhbkRnaEIrQjtJbUQvZ0IvQixrQkFBa0I7R0FGTDtFQUlmO0lwRHRFUSwwQ29EdUU2QjtHQURyQjtFQUtoQjtJQUFZLGFuRHlnQnFCO0dtRHpnQnRCO0N4RGc1Tlo7O0F3RDc0TkQ7RUFDRTtJQUFZLGNuRG1nQnNCO0dtRG5nQnZCO0N4RGs1Tlo7O0F5RGhpT0Q7RUFDRSxtQkFBbUI7RUFDbkIsY3BENlQ2QjtFb0Q1VDdCLGVBQWU7RUNSZixzS3JEMERnTDtFcUR4RGhMLG1CQUFtQjtFQUNuQixvQkFBb0I7RUFDcEIsdUJBQXVCO0VBQ3ZCLGlCQUFpQjtFQUNqQix5QnJEMkVtQztFcUQxRW5DLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsc0JBQXNCO0VBQ3RCLGtCQUFrQjtFQUNsQixxQkFBcUI7RUFDckIsb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQixxQkFBcUI7RUFDckIsa0JBQWtCO0VESGxCLGdCcEQwRDRCO0VrQnBFNUIsV2tDWWtCO0VsQ1RsQix5QkFBYTtDa0NBTDs7QUFXUDtFbENkRCxhbEI0akI4QjtFa0J6akI5QiwwQkFBYTtDa0NXSDs7QUFDVDtFQUFVLGlCQUFrQjtFQUFFLGVBQStCO0NBQXBEOztBQUNUO0VBQVUsaUJBQWtCO0VBQUUsZXBEK2lCQTtDb0QvaUJyQjs7QUFDVDtFQUFVLGdCQUFrQjtFQUFFLGVBQStCO0NBQXBEOztBQUNUO0VBQVUsa0JBQWtCO0VBQUUsZXBENmlCQTtDb0Q3aUJyQjs7QUFJWjtFQUNFLGlCcERnaUJpQztFb0QvaEJqQyxpQkFBZ0I7RUFDaEIsWXBEZ2lCZ0M7RW9EL2hCaEMsbUJBQW1CO0VBQ25CLHVCcERnaUJnQztFb0QvaEJoQyxtQnBEaUc2QjtDb0R2R2Y7O0FBVWhCO0VBQ0UsbUJBQW1CO0VBQ25CLFNBQVM7RUFDVCxVQUFVO0VBQ1YsMEJBQTBCO0VBQzFCLG9CQUFvQjtDQUxOOztBQVNSO0VBQ0osVUFBVTtFQUNWLFVBQVU7RUFDVixrQnBEbWhCNkI7RW9EbGhCN0Isd0JBQXlEO0VBQ3pELHVCcEQ2Z0I4QjtDb0RsaEJWOztBQU9YO0VBQ1QsVUFBVTtFQUNWLFdwRDZnQjZCO0VvRDVnQjdCLG9CcEQ0Z0I2QjtFb0QzZ0I3Qix3QkFBeUQ7RUFDekQsdUJwRHNnQjhCO0NvRDNnQkw7O0FBT2Y7RUFDVixVQUFVO0VBQ1YsVXBEc2dCNkI7RW9EcmdCN0Isb0JwRHFnQjZCO0VvRHBnQjdCLHdCQUF5RDtFQUN6RCx1QnBEK2Y4QjtDb0RwZ0JKOztBQU9wQjtFQUNOLFNBQVM7RUFDVCxRQUFRO0VBQ1IsaUJwRDhmNkI7RW9EN2Y3Qiw0QkFBOEU7RUFDOUUseUJwRHdmOEI7Q29EN2ZSOztBQU9qQjtFQUNMLFNBQVM7RUFDVCxTQUFTO0VBQ1QsaUJwRHVmNkI7RW9EdGY3Qiw0QnBEc2Y2QjtFb0RyZjdCLHdCcERpZjhCO0NvRHRmVDs7QUFPZDtFQUNQLE9BQU87RUFDUCxVQUFVO0VBQ1Ysa0JwRGdmNkI7RW9EL2U3Qix3QnBEK2U2QjtFb0Q5ZTdCLDBCcEQwZThCO0NvRC9lUDs7QUFPWDtFQUNaLE9BQU87RUFDUCxXcEQwZTZCO0VvRHplN0IsaUJwRHllNkI7RW9EeGU3Qix3QnBEd2U2QjtFb0R2ZTdCLDBCcERtZThCO0NvRHhlRjs7QUFPZjtFQUNiLE9BQU87RUFDUCxVcERtZTZCO0VvRGxlN0IsaUJwRGtlNkI7RW9EamU3Qix3QnBEaWU2QjtFb0RoZTdCLDBCcEQ0ZDhCO0NvRGplRDs7QUV4RmpDO0VBQ0UsbUJBQW1CO0VBQ25CLE9BQU87RUFDUCxRQUFRO0VBQ1IsY3REMlQ2QjtFc0QxVDdCLGNBQWM7RUFDZCxpQnREbWtCeUM7RXNEbGtCekMsYUFBYTtFRFhiLHNLckQwRGdMO0VxRHhEaEwsbUJBQW1CO0VBQ25CLG9CQUFvQjtFQUNwQix1QkFBdUI7RUFDdkIsaUJBQWlCO0VBQ2pCLHlCckQyRW1DO0VxRDFFbkMsaUJBQWlCO0VBQ2pCLGtCQUFrQjtFQUNsQixzQkFBc0I7RUFDdEIsa0JBQWtCO0VBQ2xCLHFCQUFxQjtFQUNyQixvQkFBb0I7RUFDcEIsbUJBQW1CO0VBQ25CLHFCQUFxQjtFQUNyQixrQkFBa0I7RUNBbEIsZ0J0RHFENEI7RXNEbkQ1Qix1QnREMGpCd0M7RXNEempCeEMsNkJBQTZCO0VBQzdCLHVCdEQ4akJ3QztFc0Q3akJ4QyxxQ3REMmpCd0M7RXNEMWpCeEMsbUJ0RDJHNkI7RUQ1RHJCLDBDdUQ5QzJCO0NBbEIzQjs7QUFxQlA7RUFBVyxrQnREOGpCNEI7Q3NEOWpCN0I7O0FBQ1Y7RUFBVyxrQnRENmpCNEI7Q3NEN2pCN0I7O0FBQ1Y7RUFBVyxpQnRENGpCNEI7Q3NENWpCN0I7O0FBQ1Y7RUFBVyxtQnREMmpCNEI7Q3NEM2pCN0I7O0FBR2I7RUFDRSxVQUFVO0VBQ1Ysa0JBQWlCO0VBQ2pCLGdCdERrQzRCO0VzRGpDNUIsMEJ0RGlqQjBDO0VzRGhqQjFDLGlDQUErQjtFQUMvQiwyQkFBd0U7Q0FOMUQ7O0FBU2hCO0VBQ0Usa0JBQWlCO0NBREQ7O0FBVWY7O0VBQ0MsbUJBQW1CO0VBQ25CLGVBQWU7RUFDZixTQUFTO0VBQ1QsVUFBVTtFQUNWLDBCQUEwQjtFQUMxQixvQkFBb0I7Q0FOYjs7QUFTQTtFQUNULG1CdERnaUJ5RDtDc0RqaUJ4Qzs7QUFHRjtFQUNmLG1CdER3aEJ3QztFc0R2aEJ4QyxZQUFZO0NBRlc7O0FBTWY7RUFDTixVQUFVO0VBQ1YsbUJ0RHNoQnVEO0VzRHJoQnZELHVCQUF1QjtFQUN2QiwwQnREd2hCd0M7RXNEdmhCeEMsc0N0RHFoQnlDO0VzRHBoQnpDLGN0RGtoQnVEO0NzRHhoQnpDOztBQU9iO0VBQ0MsYUFBYTtFQUNiLFlBQVk7RUFDWixtQnREeWdCb0M7RXNEeGdCcEMsdUJBQXVCO0VBQ3ZCLHVCdEQyZm9DO0NzRGhnQjdCOztBQVFEO0VBQ1IsU0FBUztFQUNULFl0RHVnQnVEO0VzRHRnQnZELGtCdERzZ0J1RDtFc0RyZ0J2RCxxQkFBcUI7RUFDckIsNEJ0RHdnQndDO0VzRHZnQnhDLHdDdERxZ0J5QztDc0QzZ0J6Qjs7QUFPZjtFQUNDLGFBQWE7RUFDYixVQUFVO0VBQ1YsY3REMGZvQztFc0R6ZnBDLHFCQUFxQjtFQUNyQix5QnRENGVvQztDc0RqZjdCOztBQVFBO0VBQ1QsVUFBVTtFQUNWLG1CdER3ZnVEO0VzRHZmdkQsb0JBQW9CO0VBQ3BCLDZCdEQwZndDO0VzRHpmeEMseUN0RHVmeUM7RXNEdGZ6QyxXdERvZnVEO0NzRDFmdEM7O0FBT2hCO0VBQ0MsYUFBYTtFQUNiLFNBQVM7RUFDVCxtQnREMmVvQztFc0QxZXBDLG9CQUFvQjtFQUNwQiwwQnRENmRvQztDc0RsZTdCOztBQVNGO0VBQ1AsU0FBUztFQUNULGF0RHdldUQ7RXNEdmV2RCxrQnREdWV1RDtFc0R0ZXZELHNCQUFzQjtFQUN0QiwyQnREeWV3QztFc0R4ZXhDLHVDdERzZXlDO0NzRDVlMUI7O0FBT2Q7RUFDQyxhQUFhO0VBQ2IsV0FBVztFQUNYLHNCQUFzQjtFQUN0Qix3QnREOGNvQztFc0Q3Y3BDLGN0RHlkb0M7Q3NEOWQ3Qjs7QUNwSGI7RUFDRSxtQkFBbUI7Q0FEVjs7QUFJWDtFQUNFLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsWUFBWTtDQUhHOztBQUtiO0VBQ0EsY0FBYztFQUNkLG1CQUFtQjtFeEQwS2Isa0N3RHpLa0M7Q0FIakM7O0FBT0Q7O0VyRGJSLGVBRG1DO0VBRW5DLGdCQUFnQjtFQUNoQixhQUFhO0VxRGFULGVBQWU7Q0FGTjs7QUFNWDtFQWJBO0l4RGtNTSwrQ3dEcEwwQztJeERvTDFDLHVDd0RwTDBDO0l4RDRCbEQsb0N3RDNCdUM7SXhENkIvQiw0QndEN0IrQjtJeER1SXZDLDRCd0R0SStCO0l4RHdJdkIsb0J3RHhJdUI7R0FoQnRCO0VBbUJHOztJeEQ2R1osMkNBQThCO0lBQ3RCLG1DQUFzQjtJd0Q1R3hCLFFBQVE7R0FGTTtFQUtSOztJeER3R1osNENBQThCO0lBQ3RCLG9DQUFzQjtJd0R2R3hCLFFBQVE7R0FGSztFQU1kOzs7SXhEa0dMLHdDQUE4QjtJQUN0QixnQ0FBc0I7SXdEakd4QixRQUFRO0dBRkE7QzVENDBPZjs7QTREbjBPRzs7O0VBQ0EsZUFBZTtDQURSOztBQUlQO0VBQ0EsUUFBUTtDQURDOztBQUtUOztFQUNBLG1CQUFtQjtFQUNuQixPQUFPO0VBQ1AsWUFBWTtDQUhMOztBQU1QO0VBQ0EsV0FBVztDQURKOztBQUdQO0VBQ0EsWUFBWTtDQURMOztBQUlGOztFQUNMLFFBQVE7Q0FESzs7QUFJTjtFQUNQLFlBQVk7Q0FERTs7QUFHUDtFQUNQLFdBQVc7Q0FESTs7QUFTbkI7RUFDRSxtQkFBbUI7RUFDbkIsT0FBTztFQUNQLFFBQVE7RUFDUixVQUFVO0VBQ1YsV3ZEMnZCK0M7RWtCejFCL0MsYWxCMDFCOEM7RWtCdjFCOUMsMEJBQWE7RXFDNkZiLGdCdkQydkJnRDtFdUQxdkJoRCxZdkR1dkJnRDtFdUR0dkJoRCxtQkFBbUI7RUFDbkIsMEN2RG12QjBEO0N1RDd2QnpDOztBQWVoQjtFZGhHRCwrRkFBaUM7RUFDakMsNEJBQTRCO0VBQzVCLHVIQUF3SjtDYzhGaEo7O0FBR1A7RUFDQyxXQUFXO0VBQ1gsU0FBUztFZHJHWCwrRkFBaUM7RUFDakMsNEJBQTRCO0VBQzVCLHVIQUF3SjtDY2lHL0k7O0FBUVI7O0VBQ0MsV0FBVztFQUNYLFl2RG11QjhDO0V1RGx1QjlDLHNCQUFzQjtFckN0SHhCLGFxQ3VIcUI7RXJDcEhyQiwwQkFBYTtDcUNnSEo7O0FBV1Q7Ozs7RUFDRSxtQkFBbUI7RUFDbkIsU0FBUztFQUNULGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsc0JBQXNCO0NBTEU7O0FBUTFCOztFQUNFLFVBQVU7RUFDVixtQkFBbUI7Q0FGSTs7QUFLekI7O0VBQ0UsV0FBVztFQUNYLG9CQUFvQjtDQUZJOztBQUsxQjs7RUFDRSxZQUFhO0VBQ2IsYUFBYTtFQUNiLGVBQWU7RUFDZixtQkFBbUI7Q0FKVDs7QUFTVDtFQUNDLGlCQUFpQjtDQURUOztBQUtUO0VBQ0MsaUJBQWlCO0NBRFQ7O0FBV2Q7RUFDRSxtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLFVBQVU7RUFDVixZQUFZO0VBQ1osV0FBVztFQUNYLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsaUJBQWlCO0VBQ2pCLG1CQUFtQjtDQVRDOztBQVdwQjtFQUNFLHNCQUFzQjtFQUN0QixZQUFhO0VBQ2IsYUFBYTtFQUNiLFlBQVk7RUFDWixvQkFBb0I7RUFDcEIsdUJ2RG9xQjhDO0V1RG5xQjlDLG9CQUFvQjtFQUNwQixnQkFBZ0I7RUFXaEIsMEJBQTBCO0VBQzFCLDhCQUFzQjtDQXBCcEI7O0FBc0JKO0VBQ0UsVUFBVTtFQUNWLFlBQWE7RUFDYixhQUFhO0VBQ2IsdUJ2RCtvQjhDO0N1RG5wQnZDOztBQVdYO0VBQ0UsbUJBQW1CO0VBQ25CLFVBQVU7RUFDVixXQUFXO0VBQ1gsYUFBYTtFQUNiLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIscUJBQXFCO0VBQ3JCLFl2RG1vQmdEO0V1RGxvQmhELG1CQUFtQjtFQUNuQiwwQ3ZEdW5CMEQ7Q3VEam9CekM7O0FBV2Y7RUFDQSxrQkFBa0I7Q0FEWjs7QUFPVjtFQU9JOzs7O0lBQ0UsWUFBWTtJQUNaLGFBQWE7SUFDYixrQkFBa0I7SUFDbEIsZ0JBQWdCO0dBSk47RUFPWjs7SUFDRSxtQkFBbUI7R0FEVDtFQUlaOztJQUNFLG9CQUFvQjtHQURWO0VBTWQ7SUFDRSxVQUFVO0lBQ1YsV0FBVztJQUNYLHFCQUFxQjtHQUhKO0VBT25CO0lBQ0UsYUFBYTtHQURPO0M1RG16T3ZCOztBVzlpUEU7O0VBQ0MsYUFBYTtFQUNiLGVBQWU7Q0FGUjs7QUFJUjtFQUNDLFlBQVk7Q0FETDs7QWtEUFg7RUNSRSxlQUFlO0VBQ2Ysa0JBQWtCO0VBQ2xCLG1CQUFtQjtDRE1OOztBQUdmO0VBQ0Usd0JBQXdCO0NBRGI7O0FBR2I7RUFDRSx1QkFBdUI7Q0FEYjs7QUFTWjtFQUNFLHlCQUF5QjtDQURwQjs7QUFHUDtFQUNFLDBCQUEwQjtDQURyQjs7QUFHUDtFQUNFLG1CQUFtQjtDQURUOztBQUdaO0VFekJFLFlBQVk7RUFDWixtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLDhCQUE4QjtFQUM5QixVQUFVO0NGcUJBOztBQVNaO0VBQ0UseUJBQXlCO0NBRGxCOztBQVFUO0VBQ0UsZ0JBQWdCO0NBRFY7O0FHL0JOO0VBQ0Usb0JBQW9CO0NoRThsUHZCOztBaUVybVB3QztFQUVyQyx5QkFBeUI7Q0FEekI7O0FBRHFDO0VBRXJDLHlCQUF5QjtDQUR6Qjs7QUFEcUM7RUFFckMseUJBQXlCO0NBRHpCOztBQURxQztFQUVyQyx5QkFBeUI7Q0FEekI7O0FEOEJKOzs7Ozs7Ozs7Ozs7RUFDRSx5QkFBeUI7Q0FERDs7QUFJMUI7RUM3Q3VDO0lBRW5DLDBCQUEwQjtHQUQxQjtFQUVEO0lBQ0csMEJBQTBCO0dBQTNCO0VBQThCO0lBQzFCLDhCQUE4QjtHQUEvQjtFQUFrQzs7SUFDakMsK0JBQStCO0dBQWhDO0NqRXdwUFA7O0FnRTdtUEM7RUFERjtJQUVJLDBCQUEwQjtHQUZYO0NoRW9uUGxCOztBZ0U5bVBDO0VBREY7SUFFSSwyQkFBMkI7R0FGWDtDaEVxblBuQjs7QWdFL21QQztFQURGO0lBRUksaUNBQWlDO0dBRlg7Q2hFc25QekI7O0FnRWhuUEQ7RUNoRXVDO0lBRW5DLDBCQUEwQjtHQUQxQjtFQUVEO0lBQ0csMEJBQTBCO0dBQTNCO0VBQThCO0lBQzFCLDhCQUE4QjtHQUEvQjtFQUFrQzs7SUFDakMsK0JBQStCO0dBQWhDO0NqRTByUFA7O0FnRTVuUEM7RUFERjtJQUVJLDBCQUEwQjtHQUZYO0NoRW1vUGxCOztBZ0U3blBDO0VBREY7SUFFSSwyQkFBMkI7R0FGWDtDaEVvb1BuQjs7QWdFOW5QQztFQURGO0lBRUksaUNBQWlDO0dBRlg7Q2hFcW9QekI7O0FnRS9uUEQ7RUNuRnVDO0lBRW5DLDBCQUEwQjtHQUQxQjtFQUVEO0lBQ0csMEJBQTBCO0dBQTNCO0VBQThCO0lBQzFCLDhCQUE4QjtHQUEvQjtFQUFrQzs7SUFDakMsK0JBQStCO0dBQWhDO0NqRTR0UFA7O0FnRTNvUEM7RUFERjtJQUVJLDBCQUEwQjtHQUZYO0NoRWtwUGxCOztBZ0U1b1BDO0VBREY7SUFFSSwyQkFBMkI7R0FGWDtDaEVtcFBuQjs7QWdFN29QQztFQURGO0lBRUksaUNBQWlDO0dBRlg7Q2hFb3BQekI7O0FnRTlvUEQ7RUN0R3VDO0lBRW5DLDBCQUEwQjtHQUQxQjtFQUVEO0lBQ0csMEJBQTBCO0dBQTNCO0VBQThCO0lBQzFCLDhCQUE4QjtHQUEvQjtFQUFrQzs7SUFDakMsK0JBQStCO0dBQWhDO0NqRTh2UFA7O0FnRTFwUEM7RUFERjtJQUVJLDBCQUEwQjtHQUZYO0NoRWlxUGxCOztBZ0UzcFBDO0VBREY7SUFFSSwyQkFBMkI7R0FGWDtDaEVrcVBuQjs7QWdFNXBQQztFQURGO0lBRUksaUNBQWlDO0dBRlg7Q2hFbXFQekI7O0FnRTdwUEQ7RUMvR3lDO0lBRXJDLHlCQUF5QjtHQUR6QjtDakVpeFBIOztBZ0UvcFBEO0VDbkh5QztJQUVyQyx5QkFBeUI7R0FEekI7Q2pFdXhQSDs7QWdFanFQRDtFQ3ZIeUM7SUFFckMseUJBQXlCO0dBRHpCO0NqRTZ4UEg7O0FnRW5xUEQ7RUMzSHlDO0lBRXJDLHlCQUF5QjtHQUR6QjtDakVteVBIOztBaUVweVB3QztFQUVyQyx5QkFBeUI7Q0FEekI7O0FEdUlKO0VDbEp1QztJQUVuQywwQkFBMEI7R0FEMUI7RUFFRDtJQUNHLDBCQUEwQjtHQUEzQjtFQUE4QjtJQUMxQiw4QkFBOEI7R0FBL0I7RUFBa0M7O0lBQ2pDLCtCQUErQjtHQUFoQztDakU0elBQOztBZ0U3cVBEO0VBQ0UseUJBQXlCO0NBREw7O0FBR3BCO0VBSEY7SUFJSSwwQkFBMEI7R0FKUjtDaEV1clByQjs7QWdFaHJQRDtFQUNFLHlCQUF5QjtDQURKOztBQUdyQjtFQUhGO0lBSUksMkJBQTJCO0dBSlI7Q2hFMHJQdEI7O0FnRW5yUEQ7RUFDRSx5QkFBeUI7Q0FERTs7QUFHM0I7RUFIRjtJQUlJLGlDQUFpQztHQUpSO0NoRTZyUDVCOztBZ0VyclBEO0VDakt5QztJQUVyQyx5QkFBeUI7R0FEekI7Q2pFMjFQSDs7QWtFMzJQRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1lBcUJZO0FBUVo7RUFDRSxpQ0FBaUM7RUFFakMsZ0JBQWdCO0VBQUUsaUJBQWlCO0NBSGxCOztBQU1mO0VBQ0EsWUFBWTtFQUNaLGFBQWE7RUFDYixvQkFBb0I7Q0FIZDs7QUFPQztFQUNQLDBCN0RvNEJpQjtDNkRyNEJKOztBQUtRO0VBQ3JCLHNCN0QrM0JpQjtDNkRoNEJzQjs7QUFJeEM7RUFDQyx1QkFBdUI7Q0FEWjs7QUFJMkQ7RUFDdEUsYTdEMjNCaUI7QzZENTNCd0Q7O0FBSXZFO0VBQ0Ysd0NBQXdDO0VBQ3hDLHNEQUFzRDtFQUN0RCxxQkFBcUI7Q0FIWDs7QUFPRztFQUNmLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gsYUFBYTtDQUhpQjs7QUFLVDtFQUNuQixZQUFZO0NBRFU7O0FBUVQ7O0VBQ2IsWUFBWTtFQUNaLHNCQUFzQjtFQUN0QixlQUFlO0NBSEM7O0FBVWY7OztFQUNDLGFBQWE7Q0FEUTs7QUFRYjs7OztFQUNWLGlCQUFpQjtDQURKOztBQUtFOztFQUNmLFdBQVc7Q0FEbUI7O0FBTWpCO0VBQ2IsWUFBWTtDQURnQjs7QUFJaEI7RUFDWixrQkFBa0I7Q0FESDs7QUFJRjtFQUNiLG1CQUFtQjtDQURIOztBQUloQjtFQS9GRixvQkFBb0I7Q0ErRlA7O0FBR1Y7RUFDQyx5QkFBeUI7Q0FEbEI7O0FBT1Q7RUFDRSxzQkFBc0I7RUFDdEIsaUJBQWlCO0VBQ2pCLFlBQVk7RUFDWixpQkFBaUI7Q0FKSDs7QUFPaEI7RUFDRSxtQkFBbUI7RUFDbkIsT0FBTztFQUNQLFlBQVk7RUFDWixjQUFjO0VBQ2Qsb0JBQW9CO0VBQ3BCLFVBQVU7RUFDViw0QjdENEIrQjtFNkQzQi9CLGFBQWE7Q0FSUDs7QUFXRjtFQUNKLGlCQUFpQjtFQUNqQix3QkFBd0I7RUFDeEIsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZixtQkFBbUI7RUFDbkIsV0FBVztFQUNYLFNBQVM7RUFDVCxlQUFlO0NBUkY7O0FBV1A7RUFDTixzQkFBb0I7Q0FETjs7QUFJUjtFQUNOLHNCQUFvQjtDQUROOztBQU1EO0VBQ2YsWUFBWTtDQURTOztBQUt2QjtFQUNFLGdCQUFnQjtFQUNoQixjN0Rxd0J5QjtFNkRwd0J6Qix1QkFBdUI7Q0FIVDs7QUFLYjtFQUNDLGlCQUFpQjtFQUNqQixVQUFVO0VBQ1YsV0FBVztFQUNYLFVBQVU7RUFDVixpQkFBaUI7RUFDakIsaUJBQWlCO0NBTlY7O0FBU1Q7RUFDRSxtQkFBbUI7Q0FEakI7O0FBS3dCOzs7RUFDeEIsZTdEOHVCYztFNkQ3dUJkLDBCQUFXO0NBRm9COztBQUt0QjtFQTdLZixvQkFBb0I7Q0E2S0Y7O0FBSWQ7RUFDRSxjQUFjO0VBQ2QsZ0JBQWdCO0NBRmY7O0FBSUE7RUFDQyxtQkFBbUI7RUFDbkIscUJBQXFCO0NBRmhCOztBQUtIO0VBQ0YsY0FBYztDQURDOztBQUdiO0VBQ0Ysc0JBQXNCO0NBRGI7O0FBS2I7RUFDRSxvQkFBb0I7Q0FEZjs7QUFLVDtFQUNFLG1CQUFtQjtFQUNuQixZQUFZO0VBQ1osV0FBVztFQUNYLGFBQWE7RUFDYixpQkFBaUI7RUFDakIsaUJBQWdCO0VBQ2hCLHVCQUFlO0VBQ2YsMEJBQXFCO0VBQ3JCLDRDQUFnQztFQUNoQyxxQkFBcUI7RUFDckIsYUFBYTtFQUNiLHVCQUF1QjtDQVpoQjs7QUFnQlg7RUFDRSxhQUFhO0VBQ2Isb0JBQW9CO0VBQ3BCLGNBQWE7Q0FIRjs7QUFPWDtFQUNFLGlCQUFpQjtDQURIOztBQUloQjtFQUNFLGlCQUFpQjtFQUNqQixVQUFVO0VBQ1YsaUJBQWlCO0NBSFg7O0FBUVM7RUFDZixtQkFBbUI7RUFDbkIsc0JBQXNCO0VBQ3RCLFlBQVk7RUFDWixnQkFBZ0I7Q0FKWTs7QUFPeEI7RUFDSixtQkFBbUI7Q0FEUjs7QUFPTjtFQUNQLGNBQWdDO0NBRG5COztBQUtaO0VBQ0MsWUFBWTtFQUNaLG1DQUFtQztFQUNuQyxvQ0FBb0M7RUFDcEMseUJBQXlCO0VBQ3pCLDJCQUEyQjtFQUMzQiw2QjdEcXBCZ0I7RTZEcHBCaEIsd0NBQXlCO0VBQ3pCLG1CQUFtQjtFQUNuQixhQUFhO0VBQ2IsVUFBVTtFQUNWLGNBQWM7Q0FYTjs7QUFjVDtFQUNDLFlBQVk7RUFDWixtQ0FBbUM7RUFDbkMsb0NBQW9DO0VBQ3BDLCtCQUErQjtFQUMvQixtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLFdBQVc7RUFDWCxjQUFjO0NBUlA7O0FBYVI7RUFDQyxhQUFhO0VBQ2IsVUFBVTtFQUNWLGlCQUFpQjtFQUNqQixzQkFBc0I7RUFDdEIsd0JBQXdCO0VBQ3hCLDBCN0QwbkJnQjtFNkR6bkJoQixxQ0FBc0I7Q0FQZDs7QUFVVDtFQUNDLGFBQWE7RUFDYixVQUFVO0VBQ1YsNEJBQTRCO0VBQzVCLGlCQUFpQjtDQUpWOztBQVNSO0VBQ0MsWUFBWTtFQUNaLFdBQVc7Q0FGSDs7QUFLVDtFQUNDLFlBQVk7RUFDWixXQUFXO0NBRko7O0FBUVI7O0VBQ0MsZUFBZTtDQURSOztBQVFKO0VBQ0gsMkJBQXlCO0NBRGQ7O0FBSUY7RUFDVCwyQkFBeUI7Q0FEUjs7QUFPdkI7O0VBQ0UsaUJBQWdCO0NBREY7O0FBSWhCO0VBQ0UsWUFBWTtFQUNaLFlBQVk7RUFDWix1QkFBdUI7Q0FIVDs7QUFLRDtFQUNYLFdBQVc7Q0FEUTs7QUFNakI7RUFDRixtQkFBa0I7Q0FEQTs7QUFJYjtFQUNMLGlCQUFpQjtFQUNqQixZQUFZO0NBRlE7O0FBTXhCO0VBQ0UsbUJBQW1CO0VBQ25CLE9BQU87RUFDUCxRQUFRO0VBQ1IsMEJBQTBCO0VBQzFCLFlBQVk7RUFDWix3QkFBd0I7RUFDeEIsV0FBVztDQVBHOztBekUzVmhCO0VBQ0UsbUJBQW1CO0VBQ25CLGtCQUFrQjtFQUNsQiw4QkFBK0I7RUFDL0IsK0JBQStCO0NBSnJCOztBQVNaO0VBQ0Usd0JZdW5CcUM7Q1p4bkIvQjs7QTBFM0NSLGdCQUFnQjtBQUVoQjtFQUNJLFk5RFV5QjtFOERUekIsaUI5RHFDd0I7QzhEdkN0Qjs7QUFNTixxRkFBcUY7QUFDckY7RUFDRSxnQkFBZ0I7RUFDaEIsaUJBQWlCO0VBQ2pCLFlBQVk7RUFDWixpQkFBaUI7Q0FKRjs7QUNMaEIsWUFBWTtBQUViO0VBQ0UsV0FBVztFQUNYLGlCQUFpQjtDQUZWOztBQUlQO0VBQ0UsaUJBQWlCO0NBREw7O0FBR1o7RUFDRSxvQkFBbUI7RUFDbkIsb0JBQW1CO0VBQ25CLGFBQWE7RUFDYiwyRUFBNEQ7RUFDNUQsWS9EMEJxQjtFK0R6QnJCLHNML0Q4Q3dMO0UrRDdDeEwsaUJBQWlCO0VBQ2pCLG1CQUFtQjtFQUNuQixrQkFBa0I7RUFDbEIsZ0JBQWdCO0VDVG1DLDBCQ0Z2QztFREkwQyx1QkNKMUM7RURPK0Msc0JDUC9DO01ETytDLGtCQ1AvQztDRkNWOztBQWdCTjtFQUNFLG9CL0RYMkI7RStEWTNCLGFBQWE7Q0FGSjs7QUFJTDtFQUNGLHNCQUFzQjtFQUN0QiwrTi9EK0JvTztFK0Q5QnBPLFkvRFFxQjtFK0RQckIsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixVQUFVO0VBQ1YsZUFBZTtFQUNmLG9CQUFvQjtFaEVtQ2hCLHVCZ0VsQzBCO0NBVGpCOztBQVliO0VBQ0Esc0JBQXNCO0VBQ3RCLGlCQUFpQjtFQUNqQiw0QkFBNEI7RUFDNUIsV0FBVztFQUNYLG1CQUFrQjtDQUxQOztBQU9YO0VBQ0UsWUFBWTtFQUNaLGVBQWU7RUN4Q2tDLDBCQ0Z2QztFREkwQyx1QkNKMUM7RURPK0Msc0JDUC9DO01ETytDLGtCQ1AvQztDRndDUjs7QUFLQztFQUNELGVBQWU7RUFDZixzTC9ETW9MO0UrRExwTCxpQkFBaUI7RUFDakIsWS9EakJpQjtFK0RrQmpCLHNCQUFzQjtFQUN0QixnQkFBZ0I7RUFDaEIsa0JBQWlCO0VBQ2pCLGlCQUFpQjtFQUNqQixtQkFBbUI7RUFDbkIsY0FBYztDQVZGOztBQWFkO0VBQ00sWS9EMUJhO0UrRDJCYixnQkFBZ0I7Q0FGWDs7QUFJUDtFQUNFLGNBQWM7Q0FERTs7QUFNcEI7RUFDRSxzQkFBc0I7RUFDdEIsa0JBQWtCO0VBQ2xCLG9CQUFvQjtFQUNwQixhQUFhO0VBQ2IsaUJBQWlCO0VBQ2pCLHVCQUF1QjtFQUN2QixZQUFZO0VBQ1osc0svRDdCc0s7RStEOEJ0SyxnQkFBZ0I7RUFDaEIsZUFBYztDQVZFOztBQWVoQjtFQUNFLG1CQUFtQjtFQUNuQix3QkFBd0I7Q0FGUjs7QUFPWDtFQUFTLG9CL0R6RVE7QytEeUVUOztBQUNSO0VBQVUsb0IvRHpFTTtDK0R5RVA7O0FBQ1Q7RUFBYSxvQi9EekVDO0MrRHlFRjs7QUFDWjtFQUFXLG9CL0R6RUs7QytEeUVOOztBQUNWO0VBQVksb0IvRHpFRztDK0R5RUo7O0FBQ1g7RUFBa0Isb0IvRHpFSjtDK0R5RUc7O0FBU2xDO0VBQ0UsaUJBQWlCO0NBREU7O0FHcEh2QjtFQUNJLG9CQUFvQjtFQUNwQixhQUFhO0NBRko7O0FBSVQ7RUFDSSxlQUFlO0VBQ2YsaUJBQWlCO0VBQ2pCLFlBQVk7RUFDWixvQkFBb0I7Q0FKWjs7QUFPQTtFQUNSLFlBQVk7Q0FEUTs7QUFLeEI7O0VBQ0ksaUtsRStDa0s7RWtFOUNsSyxnQkFBZ0I7Q0FGTDs7QUFLQztFQUNaLGFBQWE7Q0FEYzs7QUFJL0I7RUFDSSxvQkFBb0I7Q0FEWDs7QUFJRjtFQUNQLGlCQUFpQjtDQURHOztBQzdCNUI7RUFDSSxzS25FMEQ4SztFbUV6RDlLLGdCQUFnQjtDQUZkOztBQUtOO0VsRENFLFlqQjRLaUM7RWlCM0tqQywwQmpCNEtvQztFaUIzS3BDLHNCakIyS29DO0NtRTlLMUI7O0FsRE1UOztFQUNDLFlqQnNLK0I7RWlCcksvQiwwQkFBd0I7RUFDcEIsc0JBQW9CO0NBSGpCOztBQUtSO0VBQ0MsWWpCaUsrQjtFaUJoSy9CLDBCQUF3QjtFQUNwQixzQkFBb0I7Q0FIakI7O0FBT0E7OztFQUNQLFlqQjBKK0I7RWlCekovQiwwQkFBd0I7RUFDcEIsc0JBQW9CO0NBSEM7O0FBT3hCOzs7Ozs7Ozs7RUFDQyxZakJtSjZCO0VpQmxKN0IsMEJBQXdCO0VBQ3BCLHNCQUFvQjtDQUhqQjs7QUFRRjs7O0VBQ1AsdUJBQXVCO0NBREU7O0FBV3hCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFDQywwQmpCaUlnQztFaUJoSTVCLHNCakJnSTRCO0NpQmxJeEI7O0FBTVo7RUFDRSxlakIySGtDO0VpQjFIbEMsdUJqQnlIK0I7Q2lCM0h6Qjs7QW1EdkRWOzs7Ozs7Ozs7Ozs7Ozs7O0VBZ0JFO0FBRUY7RUFDSSw0QkFBNEI7RUFDNUIsMkNBQXNCO0VBQ3RCLG1CQUFtQjtFQUNuQixRQUFRO0VBQ1IsU0FBUztFQUNULE9BQU87RUFDUCxVQUFVO0VBQ1YsYUFBYTtFQUNiLG1CQUFtQjtDQVRGOztBQVlyQjtFQUNJLDBCQUEwQjtFQUMxQixrQkFBa0I7Q0FGSDs7QUFLRDtFQUNkLGFBQWE7RUFDYiwwQkFBeUI7RUFDekIsVUFBVTtFQUNWLFlBQVk7RUFDWixnQkFBZ0I7RUFDaEIsaUtwRXVCc0s7RW9FdEJ0Syw0QkFBNEI7Q0FQQzs7QUFVZjtFQUNkLG1CQUFtQjtDQURTOztBQUlkO0VBQ2QsYUFBYTtFQUNiLDBCQUEwQjtDQUZJOztBQUtEO0VBQzdCLHNCQUFzQjtFQUN0Qix3QkFBd0I7RUFDeEIsWUFBWTtFQUNaLGFBQWE7RUFDYixrQkFBa0I7RUFDbEIsbUJBQW1CO0VBQ25CLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIsbUJBQW1CO0VBQ25CLHVCQUF1QjtDQVZzQjs7QUFhRjtFQUMzQywwQkFBMEI7RUFDMUIsZ0JBQWdCO0NBRmtDOztBQ25FdEQ7Ozs7Ozs7Ozs7Ozs7Ozs7RUFnQkU7QUFZRjtFQUNFLGlCQUFpQjtDQUROOztBQUtiO0VBQ0UsY0FBYztFQUNkLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsT0FBTztFQUNQLFNBQVM7RUFDVCxVQUFVO0VBQ1YsUUFBUTtFQUNSLGNyRStSNkI7RXFFOVI3QixrQ0FBa0M7RUFJbEMsV0FBVztDQWJMOztBQWdCQztFdEV3RlAsc0NBQTRCO0VBQ3hCLGtDQUF3QjtFQUVwQiw4QkFBb0I7RUFxRXBCLDRDc0U5SnFDO0V0RThKckMsb0NzRTlKcUM7Q0FGdkI7O0FBSWpCO0V0RW9GTCxtQ0FBNEI7RUFDeEIsK0JBQXdCO0VBRXBCLDJCQUFvQjtDc0V2RlI7O0FBRVY7RUFDVixtQkFBbUI7RUFDbkIsaUJBQWlCO0NBRkM7O0FBTXBCO0VBQ0UsbUJBQW1CO0VBQ25CLFlBQVk7RUFDWixhQUFhO0VBQ2IsdUJyRTJrQmlEO0VxRTFrQmpELDJDckV3a0JpRDtFcUV2a0JqRCxtQkFBbUI7RUFDbkIsNkJBQTZCO0NBUGhCOztBQVdmO0VBQ0UsbUJBQW1CO0VBQ25CLHVCckU4akJpRDtFcUU3akJqRCxpQkFBaUI7RUFDakIsdUJBQXVCO0VBQ3ZCLDZCQUE2QjtFdEVSckIsNEJzRVMyQjtFQUNuQyxpQkFBaUI7RUFDakIsV0FBVztDQVJHOztBQWFoQjtFQUNFLGdCQUFnQjtFQUNoQixPQUFPO0VBQ1AsU0FBUztFQUNULFVBQVU7RUFDVixRQUFRO0VBQ1IsY3JFNE82QjtFcUUzTzdCLHVCckVtakJnQztDcUUxakJqQjs7QUFTZDtFbkQzRkQsV21EMkYyQjtFbkR4RjNCLHlCQUFhO0NtRHdGTDs7QUFDUDtFbkQ1RkQsYWxCOG9COEI7RWtCM29COUIsMEJBQWE7Q21EeUZQOztBQUtSO0VBQ0UsNkJyRThoQitDO0VxRTdoQi9DLHFDckU2aUJ1QztFcUU1aUJ2QyxvQ3JFNGhCZ0M7Q3FFL2hCbkI7O0FBTUQ7RUFDWixpQkFBaUI7Q0FERzs7QUFLdEI7RUFDSSxVQUFVO0VBQ1Ysa0JyRW9oQjhCO0VxRW5oQjlCLGdCQUFnQjtFQUNoQixpS3JFbkRzSztFcUVvRHRLLDRCQUE0QjtDQUxsQjs7QUFVZDtFQUNFLG1CQUFtQjtFQUNuQixtQnJFcWdCcUM7Q3FFdmdCMUI7O0FBTWI7RUFDRSxtQnJFZ2dCcUM7RXFFL2ZyQyw0QkFBNEI7RUFDNUIsY0FBYztFQUNkLGlCQUFpQjtDQUpKOztBL0RqSFo7O0VBQ0MsYUFBYTtFQUNiLGVBQWU7Q0FGUjs7QUFJUjtFQUNDLFlBQVk7Q0FETDs7QStEb0hUO0VBQ0Usa0JBQWlCO0VBQ2pCLGdCQUFnQjtDQUZaOztBQU1DO0VBQ0wsaUJBQWlCO0VBQ2pCLGlCQUFpQjtDQUZOOztBQUtLO0VBQ2hCLGtCQUFrQjtDQURJOztBQUlYO0VBQ1gsZUFBZTtDQURROztBQU0zQjtFQUNFLG1CQUFtQjtFQUNuQixhQUFhO0VBQ2IsWUFBWTtFQUNaLGFBQWE7RUFDYixpQkFBaUI7Q0FMTzs7QUFTMUI7RUFFRTtJQUNFLGFyRWlmK0I7SXFFaGYvQixrQkFBa0I7R0FGTDtFQUlmO0l0RXJHUSwwQ3NFc0c2QjtHQURyQjtFQUtoQjtJQUFZLGFyRTBlcUI7R3FFMWV0QjtDMUU4aFJaOztBMEUzaFJEO0VBQ0U7SUFBWSxjckVvZXNCO0dxRXBldkI7QzFFZ2lSWjs7QTBFN2hSRDtFQUNFLG1CQUFtQjtDQURiOztBQUlSO0VBQ1E7SUFDSixzQkFBc0I7SUFDdEIsdUJBQXVCO0lBQ3ZCLGFBQWE7SUFDYixhQUFhO0dBSkE7QzFFcWlSaEI7O0EwRTdoUkQ7RUFDRSxzQkFBc0I7RUFDdEIsaUJBQWlCO0VBQ2pCLHVCQUF1QjtDQUhWOztBQ25NZjs7Ozs7Ozs7Ozs7Ozs7OztFQWdCRTtBQVdFO0VBQ0ksK0JBQXVDO0VBQ3ZDLGlCQUFpQjtFQUNqQixxQkFBcUI7RUFDckIsc0x0RWtDc0w7RXNFakN0TCxpQkFBaUI7RUFDakIsa0J0RXVDMEI7RXNFdEMxQixtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLDJCQUEwQjtDQVR4Qjs7QUFXRTtFQUNKLGdCQUFnQjtFQUNoQix1QkFBdUI7RUFDdkIsWUFBWTtFQUNaLGFBQWE7RUFDYixpQkFBaUI7RUFDakIsZUFBZTtFQUNmLG1CQUFtQjtFQUNuQixPQUFPO0VBQ1AsVUFBVTtDQVRIOztBQVlGO0VBQ0Qsa0JBQWtCO0NBRFI7O0FBTWxCO0VBQ0EsbUJBQW1CO0VBQ25CLE9BQU87RUFDUCxTQUFTO0VBQ1QsZUFBZTtFQUNmLFlBQVk7RUFDWixhQUFhO0VBQ2IsZUFBZTtFQUNmLHVCQUF1QjtFQUN2QixjQUFjO0VBQ2QsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQixlQUFlO0NBWlA7O0FBY0w7RUFDSyx3QkFBd0I7RUFDeEIsbUJBQW1CO0VBQ25CLG9CQUFvQjtFQUNwQixnQkFBZ0I7RUFDaEIsWUFBWTtFQUNaLHNCQUFzQjtFQUN0Qix5QkFBeUI7RUFDekIsYUFBYTtFQUNiLGNBQWM7RUFDZCxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHFCQUFxQjtFQUNyQixxQkFBcUI7RUFDckIsaUJBQWlCO0VBQ2pCLGlCQUFpQjtDQWZiOztBQXdCWDs7RUFDQyxtQkFBbUI7Q0FEVDs7QUFLSTtFQUNkLFdBQVc7Q0FEVzs7QUFLeEI7RUFDRSxtQkFBbUI7RUFDbkIsVUFBVTtFQUNWLFFBQVE7RUFDUixjdEV1TnlCO0VzRXROekIsY0FBYztFQUNkLFlBQVk7RUFDWixpQkFBaUI7RUFDakIsV0FBVztFQUNYLFVBQVU7RUFDVixpQkFBaUI7RUFDakIsa0J0RTNDNEI7RXNFNEM1QixpQkFBaUI7RUFDakIsMEJ0RW9MK0M7RXNFbkwvQyxVQUFVO0VBQ1YsaUJBQWlCO0V2RWxEYiw0QnVFbUQrQjtFQUNuQyw2QkFBNkI7Q0FqQmY7O0FBc0JUO0VBQ0MsU0FBUztFQUNULFdBQVc7Q0FGQzs7QUFNZDtFakQvSFIsWUFBWTtFQUNaLGNBQTJDO0VBQzNDLGlCQUFpQjtFQUNqQiwwQnJCcVNpRDtDc0V6Sy9COztBQUlIO0VBRUwsOEJ0RWtLdUM7RUR2T3pDLDBDQ3dPeUM7Q3NFcksvQjs7QUFNUztFQUNqQiw4QnRFMEp5QztFRHBPM0MsaUJ1RTJFMEI7Q0FGSjs7QUFLSztFdkU5RTNCLGlCdUUrRTBCO0NBREk7O0FBS3ZCO0VBQ0wsZUFBZTtFQUNmLGlCQUFnQjtFQUNoQixZQUFZO0VBQ1osb0JBQW9CO0VBQ3BCLGtCdEU2STRDO0VzRTVJNUMsWXRFMEk0QztFc0V6STVDLG9CQUFvQjtDQVBaOztBQVNGO0VBQ0UsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQixvQkFBb0I7RUFDcEIsWUFBWTtFQUNaLGFBQWE7RUFDYixpQkFBaUI7RUFDakIsc0JBQXNCO0NBUHJCOztBQWdCZDs7RUFDQyxzQkFBc0I7RUFDdEIsWXRFcUhnRDtFc0VwSGhELDBCdEVxSDZDO0NzRXhIdEM7O0FBV1I7OztFQUNDLFl0RTJHZ0Q7RXNFMUdoRCxzQkFBc0I7RUFDdEIsV0FBVztFQUNYLDBCdEV5RzZDO0NzRTdHdEM7O0FBU29CO0VBQzNCLG9CdEV3RzRDO0NzRXpHZDs7QUFXL0I7OztFQUNDLFl0RWpNdUI7Q3NFZ01oQjs7QUFNUjs7RUFDQyxzQkFBc0I7RUFDdEIsOEJBQThCO0VBQzlCLHVCQUF1QjtFaERuTjdCLG9FQUFtRTtFZ0RxTjdELG9CdEVtQ29DO0NzRXhDN0I7O0FBWVA7RUFDQSw2QkFBNkI7RUFDN0IsOEJBQThCO0VBQzlCLDJCQUEyQjtDQUhyQjs7QUFPTjtFQUNBLGVBQWU7Q0FEQzs7QUFJbEI7RUFDRSxvQkFBb0I7Q0FEZDs7QUFJRjtFQUNKLGlCQUFpQjtDQURKOztBQUtiO0VBQ0EsV0FBVztDQURSOztBQVdYO0VBQ0UsV0FBVztFQUNYLFNBQVM7Q0FGVzs7QUFVdEI7RUFDRSxRQUFRO0VBQ1IsWUFBWTtDQUZPOztBQU1yQjtFQUNFLGVBQWU7RUFDZixrQkFBaUI7RUFDakIsZ0J0RTdNNEI7RXNFOE01Qix5QnRFbk1tQztFc0VvTW5DLFl0RXRRNkI7RXNFdVE3QixvQkFBb0I7Q0FOSjs7QUFVbEI7RUFDRSxnQkFBZ0I7RUFDaEIsUUFBUTtFQUNSLFNBQVM7RUFDVCxVQUFVO0VBQ1YsT0FBTztFQUNQLGFBQTBCO0NBTlI7O0FBVU47RUFDWixTQUFTO0VBQ1QsV0FBVztDQUZpQjs7QUFhNUI7O0VBQ0UsY0FBYztFQUNkLDBCQUF1QztFQUN2Qyw0QkFBeUM7RUFDekMsWUFBWTtDQUpOOztBQU9SOztFQUNFLFVBQVU7RUFDVixhQUFhO0VBQ2IsbUJBQW1CO0NBSEw7O0FBWWxCO0VBRUk7SUFDRSxTQUFTO0lBQUUsV0FBVztHQURSO0VBS2hCO0lBQ0UsUUFBUTtJQUFFLFlBQVk7R0FESDtDM0UycVJ4Qjs7QTRFdi9SRDtFQUVJLG9CQUFvQjtDQUZoQjs7QUFJSjtFQUNJLG9CdkV3QjRCO0N1RXpCakI7O0FuRmtFbkI7RUFDRSxpQkFBaUI7Q0FEZDs7QUFNTDtFQUVFO0lBQ0UsY0FBYztHQURKO0NPMjdSYjs7QVByN1JEO0VBRUU7SUFDRSxjQUFjO0dBREo7Q095N1JiIiwiZmlsZSI6Im1haW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFByb2plY3QgS2ltY2hpXG4gKlxuICogQ29weXJpZ2h0IElCTSwgQ29ycC4gMjAxNVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vLyBDU1MgcmVzZXRcbkBpbXBvcnQgXCJtb2R1bGVzL3Jlc2V0XCI7XG5cbi8vIE92ZXJyaWRlIEJvb3RzdHJhcCBTQVNTIHZhcmlhYmxlc1xuQGltcG9ydCBcIm1vZHVsZXMva2ltY2hpLXZhcmlhYmxlc1wiO1xuXG4vLyBib3dlcjpzY3NzXG5AaW1wb3J0IFwiYm93ZXJfY29tcG9uZW50cy9jb21wYXNzLW1peGlucy9saWIvY29tcGFzc1wiO1xuLy8gZW5kYm93ZXJcblxuLy8gQm9vdHN0cmFwIGN1c3RvbSBpbXBvcnRzXG5AaW1wb3J0IFwibW9kdWxlcy9ib290c3RyYXBcIjtcbi8vIEJvb3RzdHJhcCBzZWxlY3QgcGx1Z2luXG5AaW1wb3J0IFwibW9kdWxlcy9ib290c3RyYXAtc2VsZWN0XCI7XG5cbi8vIE92ZXJyaWRlIEJvb3RzdHJhcCBtaXhpblxuLmNvbnRhaW5lciB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogIDgwcHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1yaWdodDogNjBweCAhaW1wb3J0YW50O1xufVxuXG4vLyBPdmVycmlkZSBhbGVydFxuXG4uYWxlcnQge1xuICBib3JkZXItd2lkdGg6ICRhbGVydC1ib3JkZXItd2lkdGg7XG59XG5cbi8vIEJvZHkgc3BlY3NcbkBpbXBvcnQgXCJtb2R1bGVzL2Jhc2VcIjtcblxuLy8gVG9wYmFyIGFuZCBuYXZpZ2F0aW9uXG5AaW1wb3J0IFwibW9kdWxlcy90b3BiYXJcIjtcblxuLy8gTG9naW5cbkBpbXBvcnQgXCJtb2R1bGVzL2xvZ2luXCI7XG5cbi8vIEJ1dHRvbnNcbkBpbXBvcnQgXCJtb2R1bGVzL2J1dHRvbnNcIjtcblxuLy8gRGlhbG9nIEZsYXRcbkBpbXBvcnQgXCJtb2R1bGVzL2RpYWxvZy1mbGF0XCI7XG5AaW1wb3J0IFwibW9kdWxlcy9tb2RhbC1mbGF0XCI7XG5cbi8vIERyb3Bkb3duIEJ1dHRvbiAtIEZsYXRcbkBpbXBvcnQgXCJtb2R1bGVzL21lbnUtZmxhdFwiO1xuXG4vLyBDb2xvciBzcGVjaWZpYyBcbkBpbXBvcnQgXCJtb2R1bGVzL2NvbG9yc1wiO1xuXG5cbnByZSB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG59XG5cbi8vIE1lZGlhIHF1ZXJpZXNcblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcblxuICAuY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTU0MHB4O1xuICB9XG5cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTY4MHB4KSB7XG5cbiAgLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDE1NDBweDtcbiAgfVxuXG59IiwiLyogUmVzZXQgKi9cblxuaHRtbCxib2R5LGRpdixzcGFuLG9iamVjdCxpZnJhbWUsaDEsaDIsaDMsaDQsaDUsaDYscCxibG9ja3F1b3RlLHByZSxhLGFiYnIsXG5hZGRyZXNzLGJpZyxjaXRlLGNvZGUsZGVsLGRmbixlbSxpbWcsaW5zLGtiZCxxLHMsc2FtcCxzbWFsbCxzdHJpa2Usc3Ryb25nLHN1YixcbnN1cCx0dCx2YXIsYix1LGksY2VudGVyLGRsLGR0LGRkLG9sLHVsLGxpLGZpZWxkc2V0LGZvcm0sbGFiZWwsbGVnZW5kLHRhYmxlLFxuY2FwdGlvbix0Ym9keSx0Zm9vdCx0aGVhZCx0cix0aCx0ZCxhcnRpY2xlLGFzaWRlLGNhbnZhcyxkZXRhaWxzLGVtYmVkLGZpZ3VyZSxcbmZpZ2NhcHRpb24sZm9vdGVyLGhlYWRlcixoZ3JvdXAsbWVudSxuYXYsb3V0cHV0LHJ1Ynksc2VjdGlvbixzdW1tYXJ5LHRpbWUsbWFyayxcbmF1ZGlvLHZpZGVvLGJ1dHRvbiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xufVxuXG5hcnRpY2xlLGFzaWRlLGRldGFpbHMsZmlnY2FwdGlvbixmaWd1cmUsZm9vdGVyLGhlYWRlcixoZ3JvdXAsbWVudSxuYXYsc2VjdGlvblxuICAgIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxub2wsdWwge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbnRhYmxlIHtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG5pbWcge1xuICAgIGJvcmRlcjogbm9uZTtcbn1cblxuYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5hOmFjdGl2ZSxhOmhvdmVyIHtcbiAgICBvdXRsaW5lOiBub25lO1xufVxuXG5hIGxhYmVsIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4iLCIvKlxuICogQSBwYXJ0aWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBSdWJ5IGxpc3QgZnVuY3Rpb25zIGZyb20gQ29tcGFzczpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9Db21wYXNzL2NvbXBhc3MvYmxvYi9zdGFibGUvbGliL2NvbXBhc3Mvc2Fzc19leHRlbnNpb25zL2Z1bmN0aW9ucy9saXN0cy5yYlxuICovXG5cblxuLy8gY29tcGFjdCBpcyBwYXJ0IG9mIGxpYnNhc3NcblxuQGZ1bmN0aW9uIC1jb21wYXNzLW50aCgkbGlzdCwgJHBsYWNlKSB7XG4gIC8vIFllcCwgU2Fzcy1saXN0cyBhcmUgMS1pbmRleGVkLlxuICBAaWYgJHBsYWNlID09IFwiZmlyc3RcIiB7XG4gICAgJHBsYWNlOiAxO1xuICB9XG4gIEBpZiAkcGxhY2UgPT0gXCJsYXN0XCIge1xuICAgICRwbGFjZTogbGVuZ3RoKCRsaXN0KTtcbiAgfVxuICBAcmV0dXJuIG50aCgkbGlzdCwgJHBsYWNlKTtcbn1cblxuLy8gY29tcGFzc19saXN0IGFuZCBjb21wYXNzX3NwYWNlX2xpc3QgY2FuJ3QgYmUgaW1wbGVtZW50ZWQgaW4gc2FzcyBzY3JpcHRcblxuQGZ1bmN0aW9uIC1jb21wYXNzLWxpc3Qtc2l6ZSgkbGlzdCkge1xuICBAcmV0dXJuIGxlbmd0aCgkbGlzdCk7XG59XG5cbkBmdW5jdGlvbiAtY29tcGFzcy1zbGljZSgkbGlzdCwgJHN0YXJ0LCAkZW5kOiBmYWxzZSkge1xuICBAaWYgJGVuZCA9PSBmYWxzZSB7XG4gICAgJGVuZDogbGVuZ3RoKCRsaXN0KTtcbiAgfVxuICAkZnVsbDogbnRoKCRsaXN0LCAkc3RhcnQpO1xuICBAZm9yICRpIGZyb20gJHN0YXJ0ICsgMSB0aHJvdWdoICRlbmQge1xuICAgICRmdWxsOiAkZnVsbCwgbnRoKCRsaXN0LCAkaSk7XG4gIH1cbiAgQHJldHVybiAkZnVsbDtcbn1cblxuQGZ1bmN0aW9uIHJlamVjdCgkbGlzdCwgJHJlamVjdDEsICRyZWplY3QyOm51bGwsICRyZWplY3QzOm51bGwsICRyZWplY3Q0Om51bGwsICRyZWplY3Q1Om51bGwsICRyZWplY3Q2Om51bGwsICRyZWplY3Q3Om51bGwsICRyZWplY3Q4Om51bGwsICRyZWplY3Q5Om51bGwpIHtcbiAgJHJlamVjdHM6ICRyZWplY3QxLCAkcmVqZWN0MiwgJHJlamVjdDMsICRyZWplY3Q0LCAkcmVqZWN0NSwgJHJlamVjdDYsICRyZWplY3Q3LCAkcmVqZWN0OCwgJHJlamVjdDk7XG5cbiAgJGZ1bGw6IGZhbHNlO1xuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgQGlmIGluZGV4KCRyZWplY3RzLCAkaXRlbSkge31cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgJGZ1bGwge1xuICAgICAgICAkZnVsbDogJGZ1bGwsICRpdGVtO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkZnVsbDogJGl0ZW07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGZ1bGw7XG59XG4iLCIvKlxuICogQSBwYXJ0aWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBSdWJ5IGNvbnN0YW50cyBmdW5jdGlvbnMgZnJvbSBDb21wYXNzOlxuICogaHR0cHM6Ly9naXRodWIuY29tL0NvbXBhc3MvY29tcGFzcy9ibG9iL3N0YWJsZS9saWIvY29tcGFzcy9zYXNzX2V4dGVuc2lvbnMvZnVuY3Rpb25zL2NvbnN0YW50cy5yYlxuICovXG5cbkBmdW5jdGlvbiBvcHBvc2l0ZS1wb3NpdGlvbigkZnJvbSkge1xuICAgIEBpZiAoJGZyb20gPT0gdG9wKSB7XG4gICAgICAgIEByZXR1cm4gYm90dG9tO1xuICAgIH0gQGVsc2UgaWYgKCRmcm9tID09IGJvdHRvbSkge1xuICAgICAgICBAcmV0dXJuIHRvcDtcbiAgICB9IEBlbHNlIGlmICgkZnJvbSA9PSBsZWZ0KSB7XG4gICAgICAgIEByZXR1cm4gcmlnaHQ7XG4gICAgfSBAZWxzZSBpZiAoJGZyb20gPT0gcmlnaHQpIHtcbiAgICAgICAgQHJldHVybiBsZWZ0O1xuICAgIH0gQGVsc2UgaWYgKCRmcm9tID09IGNlbnRlcikge1xuICAgICAgICBAcmV0dXJuIGNlbnRlcjtcbiAgICB9XG59XG4iLCIvKlxuICogQSBwYXJ0aWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBSdWJ5IGRpc3BsYXkgZnVuY3Rpb25zIGZyb20gQ29tcGFzczpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9Db21wYXNzL2NvbXBhc3MvYmxvYi9zdGFibGUvY29yZS9saWIvY29tcGFzcy9jb3JlL3Nhc3NfZXh0ZW5zaW9ucy9mdW5jdGlvbnMvZGlzcGxheS5yYlxuICovXG5cbkBmdW5jdGlvbiBlbGVtZW50cy1vZi10eXBlKCR0eXBlKXtcbiAgICBAaWYgKCR0eXBlID09IGJsb2NrKXtcbiAgICAgICAgQHJldHVybiBhZGRyZXNzLCBhcnRpY2xlLCBhc2lkZSwgYmxvY2txdW90ZSwgY2VudGVyLCBkaXIsIGRpdiwgZGQsIGRldGFpbHMsIGRsLCBkdCwgZmllbGRzZXQsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9ybSwgZm9vdGVyLCBmcmFtZXNldCwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgaHIsIGhlYWRlciwgaGdyb3VwLCBpc2luZGV4LCBtYWluLCBtZW51LCBuYXYsIG5vZnJhbWVzLCBub3NjcmlwdCwgb2wsIHAsIHByZSwgc2VjdGlvbiwgc3VtbWFyeSwgdWw7XG4gICAgfSBAZWxzZSBpZiAoJHR5cGUgPT0gaW5saW5lKXtcbiAgICAgICAgQHJldHVybiBhLCBhYmJyLCBhY3JvbnltLCBhdWRpbywgYiwgYmFzZWZvbnQsIGJkbywgYmlnLCBiciwgY2FudmFzLCBjaXRlLCBjb2RlLCBjb21tYW5kLCBkYXRhbGlzdCwgZGZuLCBlbSwgZW1iZWQsIGZvbnQsIGksIGltZywgaW5wdXQsIGtleWdlbiwga2JkLCBsYWJlbCwgbWFyaywgbWV0ZXIsIG91dHB1dCwgcHJvZ3Jlc3MsIHEsIHJwLCBydCwgcnVieSwgcywgc2FtcCwgc2VsZWN0LCBzbWFsbCwgc3Bhbiwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0ZXh0YXJlYSwgdGltZSwgdHQsIHUsIHZhciwgdmlkZW8sIHdicjtcbiAgICB9IEBlbHNlIGlmICgkdHlwZSA9PSBpbmxpbmUtYmxvY2spe1xuICAgICAgICBAcmV0dXJuIGltZztcbiAgICB9IEBlbHNlIGlmICgkdHlwZSA9PSB0YWJsZSl7XG4gICAgICAgIEByZXR1cm4gdGFibGU7XG4gICAgfSBAZWxzZSBpZiAoJHR5cGUgPT0gbGlzdC1pdGVtKXtcbiAgICAgICAgQHJldHVybiBsaTtcbiAgICB9IEBlbHNlIGlmICgkdHlwZSA9PSB0YWJsZS1yb3ctZ3JvdXApe1xuICAgICAgICBAcmV0dXJuIHRib2R5O1xuICAgIH0gQGVsc2UgaWYgKCR0eXBlID09IHRhYmxlLWhlYWRlci1ncm91cCl7XG4gICAgICAgIEByZXR1cm4gdGhlYWQ7XG4gICAgfSBAZWxzZSBpZiAoJHR5cGUgPT0gdGFibGUtZm9vdGVyLWdyb3VwKXtcbiAgICAgICAgQHJldHVybiB0Zm9vdDtcbiAgICB9IEBlbHNlIGlmICgkdHlwZSA9PSB0YWJsZS1yb3cpe1xuICAgICAgICBAcmV0dXJuIHRyO1xuICAgIH0gQGVsc2UgaWYgKCR0eXBlID09IHRhYmxlLWNlbGwpe1xuICAgICAgICBAcmV0dXJuIHRoLCB0ZDtcbiAgICB9IEBlbHNlIGlmICgkdHlwZSA9PSBodG1sNS1ibG9jayl7XG4gICAgICAgIEByZXR1cm4gYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWFpbiwgbWVudSwgbmF2LCBzZWN0aW9uLCBzdW1tYXJ5O1xuICAgIH0gQGVsc2UgaWYgKCR0eXBlID09IGh0bWw1LWlubGluZSl7XG4gICAgICAgIEByZXR1cm4gYXVkaW8sIGNhbnZhcywgY29tbWFuZCwgZGF0YWxpc3QsIGVtYmVkLCBrZXlnZW4sIG1hcmssIG1ldGVyLCBvdXRwdXQsIHByb2dyZXNzLCBycCwgcnQsIHJ1YnksIHRpbWUsIHZpZGVvLCB3YnI7XG4gICAgfSBAZWxzZSBpZiAoJHR5cGUgPT0gaHRtbDUpe1xuICAgICAgICBAcmV0dXJuIGFydGljbGUsIGFzaWRlLCBhdWRpbywgY2FudmFzLCBjb21tYW5kLCBkYXRhbGlzdCwgZGV0YWlscywgZW1iZWQsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwga2V5Z2VuLCBtYWluLCBtYXJrLCBtZW51LCBtZXRlciwgbmF2LCBvdXRwdXQsIHByb2dyZXNzLCBycCwgcnQsIHJ1YnksIHNlY3Rpb24sIHN1bW1hcnksIHRpbWUsIHZpZGVvLCB3YnI7XG4gICAgfSBAZWxzZSBpZiAoJHR5cGUgPT0gdGV4dC1pbnB1dCl7XG4gICAgICAgIEByZXR1cm4gaW5wdXQsIHRleHRhcmVhO1xuICAgIH1cbn1cbiIsIi8qIVxuICogQm9vdHN0cmFwIHYzLjMuNSAoaHR0cDovL2dldGJvb3RzdHJhcC5jb20pXG4gKiBDb3B5cmlnaHQgMjAxMS0yMDE1IFR3aXR0ZXIsIEluYy5cbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpXG4gKi9cblxuLy8gQ29yZSB2YXJpYWJsZXMgYW5kIG1peGluc1xuQGltcG9ydCBcImJvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnNcIjtcblxuLy8gUmVzZXQgYW5kIGRlcGVuZGVuY2llc1xuQGltcG9ydCBcImJvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9ub3JtYWxpemVcIjtcbkBpbXBvcnQgXCJib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvcHJpbnRcIjtcbkBpbXBvcnQgXCJib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvZ2x5cGhpY29uc1wiO1xuXG4vLyBDb3JlIENTU1xuQGltcG9ydCBcImJvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9zY2FmZm9sZGluZ1wiO1xuQGltcG9ydCBcImJvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC90eXBlXCI7XG5AaW1wb3J0IFwiYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL2NvZGVcIjtcbkBpbXBvcnQgXCJib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvZ3JpZFwiO1xuQGltcG9ydCBcImJvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC90YWJsZXNcIjtcbkBpbXBvcnQgXCJib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvZm9ybXNcIjtcbkBpbXBvcnQgXCJib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvYnV0dG9uc1wiO1xuXG4vLyBDb21wb25lbnRzXG5AaW1wb3J0IFwiYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL2NvbXBvbmVudC1hbmltYXRpb25zXCI7XG5AaW1wb3J0IFwiYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL2Ryb3Bkb3duc1wiO1xuQGltcG9ydCBcImJvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9idXR0b24tZ3JvdXBzXCI7XG5AaW1wb3J0IFwiYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL2lucHV0LWdyb3Vwc1wiO1xuQGltcG9ydCBcImJvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9uYXZzXCI7XG5AaW1wb3J0IFwiYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL25hdmJhclwiO1xuQGltcG9ydCBcImJvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9icmVhZGNydW1ic1wiO1xuQGltcG9ydCBcImJvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9wYWdpbmF0aW9uXCI7XG5AaW1wb3J0IFwiYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL3BhZ2VyXCI7XG5AaW1wb3J0IFwiYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL2xhYmVsc1wiO1xuQGltcG9ydCBcImJvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9iYWRnZXNcIjtcbkBpbXBvcnQgXCJib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvanVtYm90cm9uXCI7XG5AaW1wb3J0IFwiYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL3RodW1ibmFpbHNcIjtcbkBpbXBvcnQgXCJib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvYWxlcnRzXCI7XG5AaW1wb3J0IFwiYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL3Byb2dyZXNzLWJhcnNcIjtcbkBpbXBvcnQgXCJib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWVkaWFcIjtcbkBpbXBvcnQgXCJib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbGlzdC1ncm91cFwiO1xuQGltcG9ydCBcImJvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9wYW5lbHNcIjtcbkBpbXBvcnQgXCJib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvcmVzcG9uc2l2ZS1lbWJlZFwiO1xuQGltcG9ydCBcImJvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC93ZWxsc1wiO1xuQGltcG9ydCBcImJvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9jbG9zZVwiO1xuXG4vLyBDb21wb25lbnRzIHcvIEphdmFTY3JpcHRcbkBpbXBvcnQgXCJib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbW9kYWxzXCI7XG5AaW1wb3J0IFwiYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL3Rvb2x0aXBcIjtcbkBpbXBvcnQgXCJib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvcG9wb3ZlcnNcIjtcbkBpbXBvcnQgXCJib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvY2Fyb3VzZWxcIjtcblxuLy8gVXRpbGl0eSBjbGFzc2VzXG5AaW1wb3J0IFwiYm93ZXJfY29tcG9uZW50cy9ib290c3RyYXAtc2Fzcy1vZmZpY2lhbC9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL3V0aWxpdGllc1wiO1xuQGltcG9ydCBcImJvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwLXNhc3Mtb2ZmaWNpYWwvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9yZXNwb25zaXZlLXV0aWxpdGllc1wiO1xuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4zIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vL1xuLy8gMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbi8vIDIuIFByZXZlbnQgaU9TIGFuZCBJRSB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIGRldmljZSBvcmllbnRhdGlvbiBjaGFuZ2UsXG4vLyAgICB3aXRob3V0IGRpc2FibGluZyB1c2VyIHpvb20uXG4vL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8vIDFcbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8vIDJcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvLyAyXG59XG5cbi8vXG4vLyBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4vL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vLyBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbi8vIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4vLyBhbmQgRmlyZWZveC5cbi8vIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4vL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLy9cbi8vIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4vLyAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4vL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8vIDFcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvLyAyXG59XG5cbi8vXG4vLyBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuLy8gUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbi8vXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuLy9cbi8vIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbi8vIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbi8vXG5cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vLyBMaW5rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuLy9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vL1xuLy8gSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBmb2N1c2VkIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWxzbyBpbiBhblxuLy8gYWN0aXZlL2hvdmVyIHN0YXRlLlxuLy9cblxuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLy8gVGV4dC1sZXZlbCBzZW1hbnRpY3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4vL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5cbi8vXG4vLyBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4vL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8vXG4vLyBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4vL1xuXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8vXG4vLyBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4vLyBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4vL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vL1xuLy8gQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbi8vXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLy9cbi8vIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuLy9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLy9cbi8vIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbi8vXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbi8vIEVtYmVkZGVkIGNvbnRlbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbi8vXG5cbmltZyB7XG4gIGJvcmRlcjogMDtcbn1cblxuLy9cbi8vIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuLy9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLyBHcm91cGluZyBjb250ZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4vL1xuXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vL1xuLy8gQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuLy9cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vL1xuLy8gQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4vL1xuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLy9cbi8vIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbi8vXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLy8gRm9ybXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuLy8gc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxuLy9cblxuLy9cbi8vIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbi8vICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuLy8gMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbi8vIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuLy9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7IC8vIDFcbiAgZm9udDogaW5oZXJpdDsgLy8gMlxuICBtYXJnaW46IDA7IC8vIDNcbn1cblxuLy9cbi8vIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuLy9cblxuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8vXG4vLyBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4vLyBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuLy8gQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbi8vIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbi8vXG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vL1xuLy8gMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2Bcbi8vICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuLy8gMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuLy8gMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbi8vICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbi8vXG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLy8gMVxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvLyAyXG4gIGN1cnNvcjogcG9pbnRlcjsgLy8gM1xufVxuXG4vL1xuLy8gUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbi8vXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLy9cbi8vIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbi8vXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vL1xuLy8gQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuLy8gdGhlIFVBIHN0eWxlc2hlZXQuXG4vL1xuXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8vXG4vLyBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4vLyBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuLy9cbi8vIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4vLyAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuLy9cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMVxuICBwYWRkaW5nOiAwOyAvLyAyXG59XG5cbi8vXG4vLyBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuLy8gYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbi8vIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbi8vXG5cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vL1xuLy8gMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4vLyAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuLy9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvLyAxXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvLzJcbn1cblxuLy9cbi8vIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuLy8gU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuLy8gcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuLy9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8vXG4vLyBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4vL1xuXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxuLy9cbi8vIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbi8vIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cbi8vXG5cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDsgLy8gMVxuICBwYWRkaW5nOiAwOyAvLyAyXG59XG5cbi8vXG4vLyBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuLy9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLy9cbi8vIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbi8vIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuLy9cblxub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLy8gVGFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuLy9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCIvKlxuICogUHJvamVjdCBLaW1jaGlcbiAqXG4gKiBDb3B5cmlnaHQgSUJNLCBDb3JwLiAyMDE1XG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBSZXNldCAqL1xuaHRtbCwgYm9keSwgZGl2LCBzcGFuLCBvYmplY3QsIGlmcmFtZSwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLCBhLCBhYmJyLFxuYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLCBkZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsIHNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLFxuc3VwLCB0dCwgdmFyLCBiLCB1LCBpLCBjZW50ZXIsIGRsLCBkdCwgZGQsIG9sLCB1bCwgbGksIGZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLCB0YWJsZSxcbmNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsIGFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsIGVtYmVkLCBmaWd1cmUsXG5maWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtZW51LCBuYXYsIG91dHB1dCwgcnVieSwgc2VjdGlvbiwgc3VtbWFyeSwgdGltZSwgbWFyayxcbmF1ZGlvLCB2aWRlbywgYnV0dG9uIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG59XG5cbmFydGljbGUsIGFzaWRlLCBkZXRhaWxzLCBmaWdjYXB0aW9uLCBmaWd1cmUsIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1lbnUsIG5hdiwgc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5vbCwgdWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG5pbWcge1xuICBib3JkZXI6IG5vbmU7XG59XG5cbmEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbmE6YWN0aXZlLCBhOmhvdmVyIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuYSBsYWJlbCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLypcbiAqIEEgcGFydGlhbCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgUnVieSBsaXN0IGZ1bmN0aW9ucyBmcm9tIENvbXBhc3M6XG4gKiBodHRwczovL2dpdGh1Yi5jb20vQ29tcGFzcy9jb21wYXNzL2Jsb2Ivc3RhYmxlL2xpYi9jb21wYXNzL3Nhc3NfZXh0ZW5zaW9ucy9mdW5jdGlvbnMvbGlzdHMucmJcbiAqL1xuLypcbiAqIEEgcGFydGlhbCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgUnVieSBjb25zdGFudHMgZnVuY3Rpb25zIGZyb20gQ29tcGFzczpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9Db21wYXNzL2NvbXBhc3MvYmxvYi9zdGFibGUvbGliL2NvbXBhc3Mvc2Fzc19leHRlbnNpb25zL2Z1bmN0aW9ucy9jb25zdGFudHMucmJcbiAqL1xuLypcbiAqIEEgcGFydGlhbCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgUnVieSBkaXNwbGF5IGZ1bmN0aW9ucyBmcm9tIENvbXBhc3M6XG4gKiBodHRwczovL2dpdGh1Yi5jb20vQ29tcGFzcy9jb21wYXNzL2Jsb2Ivc3RhYmxlL2NvcmUvbGliL2NvbXBhc3MvY29yZS9zYXNzX2V4dGVuc2lvbnMvZnVuY3Rpb25zL2Rpc3BsYXkucmJcbiAqL1xuLyohXG4gKiBCb290c3RyYXAgdjMuMy41IChodHRwOi8vZ2V0Ym9vdHN0cmFwLmNvbSlcbiAqIENvcHlyaWdodCAyMDExLTIwMTUgVHdpdHRlciwgSW5jLlxuICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYXN0ZXIvTElDRU5TRSlcbiAqL1xuLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4zIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xufVxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDtcbn1cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5pbWcge1xuICBib3JkZXI6IDA7XG59XG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xufVxuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZm9udDogaW5oZXJpdDtcbiAgbWFyZ2luOiAwO1xufVxuXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMDtcbn1cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxubGVnZW5kIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn1cblxuLyohIFNvdXJjZTogaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyAqL1xuQG1lZGlhIHByaW50IHtcbiAgKixcbiAgKjpiZWZvcmUsXG4gICo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICBhLFxuICBhOnZpc2l0ZWQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG4gIGFbaHJlZl06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKVwiO1xuICB9XG4gIGFiYnJbdGl0bGVdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7XG4gIH1cbiAgYVtocmVmXj1cIiNcIl06YWZ0ZXIsXG4gIGFbaHJlZl49XCJqYXZhc2NyaXB0OlwiXTphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgfVxuICBwcmUsXG4gIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG4gIHRoZWFkIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7XG4gIH1cbiAgdHIsXG4gIGltZyB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgcCxcbiAgaDIsXG4gIGgzIHtcbiAgICBvcnBoYW5zOiAzO1xuICAgIHdpZG93czogMztcbiAgfVxuICBoMixcbiAgaDMge1xuICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkO1xuICB9XG4gIC5uYXZiYXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLmJ0biA+IC5jYXJldCxcbiAgLmRyb3B1cCA+IC5idG4gPiAuY2FyZXQge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICMwMDAgIWltcG9ydGFudDtcbiAgfVxuICAubGFiZWwge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7XG4gIH1cbiAgLnRhYmxlIHtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnRhYmxlIHRkLFxuICAudGFibGUgdGgge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiAgfVxuICAudGFibGUtYm9yZGVyZWQgdGgsXG4gIC50YWJsZS1ib3JkZXJlZCB0ZCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZCAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0dseXBoaWNvbnMgSGFsZmxpbmdzJztcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIi4uL2ZvbnRzL2dseXBoaWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2ZvbnRzL2dseXBoaWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci5zdmcjZ2x5cGhpY29uc19oYWxmbGluZ3NyZWd1bGFyXCIpIGZvcm1hdChcInN2Z1wiKTtcbn1cblxuLmdseXBoaWNvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAxcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6ICdHbHlwaGljb25zIEhhbGZsaW5ncyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4uZ2x5cGhpY29uLWFzdGVyaXNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyYVwiO1xufVxuXG4uZ2x5cGhpY29uLXBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDJiXCI7XG59XG5cbi5nbHlwaGljb24tZXVybzpiZWZvcmUsXG4uZ2x5cGhpY29uLWV1cjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMjBhY1wiO1xufVxuXG4uZ2x5cGhpY29uLW1pbnVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyMjEyXCI7XG59XG5cbi5nbHlwaGljb24tY2xvdWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDI2MDFcIjtcbn1cblxuLmdseXBoaWNvbi1lbnZlbG9wZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMjcwOVwiO1xufVxuXG4uZ2x5cGhpY29uLXBlbmNpbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMjcwZlwiO1xufVxuXG4uZ2x5cGhpY29uLWdsYXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDAxXCI7XG59XG5cbi5nbHlwaGljb24tbXVzaWM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDJcIjtcbn1cblxuLmdseXBoaWNvbi1zZWFyY2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDNcIjtcbn1cblxuLmdseXBoaWNvbi1oZWFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwNVwiO1xufVxuXG4uZ2x5cGhpY29uLXN0YXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDZcIjtcbn1cblxuLmdseXBoaWNvbi1zdGFyLWVtcHR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDA3XCI7XG59XG5cbi5nbHlwaGljb24tdXNlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwOFwiO1xufVxuXG4uZ2x5cGhpY29uLWZpbG06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDlcIjtcbn1cblxuLmdseXBoaWNvbi10aC1sYXJnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAxMFwiO1xufVxuXG4uZ2x5cGhpY29uLXRoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDExXCI7XG59XG5cbi5nbHlwaGljb24tdGgtbGlzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAxMlwiO1xufVxuXG4uZ2x5cGhpY29uLW9rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDEzXCI7XG59XG5cbi5nbHlwaGljb24tcmVtb3ZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDE0XCI7XG59XG5cbi5nbHlwaGljb24tem9vbS1pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAxNVwiO1xufVxuXG4uZ2x5cGhpY29uLXpvb20tb3V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDE2XCI7XG59XG5cbi5nbHlwaGljb24tb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDE3XCI7XG59XG5cbi5nbHlwaGljb24tc2lnbmFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDE4XCI7XG59XG5cbi5nbHlwaGljb24tY29nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDE5XCI7XG59XG5cbi5nbHlwaGljb24tdHJhc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMjBcIjtcbn1cblxuLmdseXBoaWNvbi1ob21lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDIxXCI7XG59XG5cbi5nbHlwaGljb24tZmlsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAyMlwiO1xufVxuXG4uZ2x5cGhpY29uLXRpbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMjNcIjtcbn1cblxuLmdseXBoaWNvbi1yb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDI0XCI7XG59XG5cbi5nbHlwaGljb24tZG93bmxvYWQtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDI1XCI7XG59XG5cbi5nbHlwaGljb24tZG93bmxvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMjZcIjtcbn1cblxuLmdseXBoaWNvbi11cGxvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMjdcIjtcbn1cblxuLmdseXBoaWNvbi1pbmJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAyOFwiO1xufVxuXG4uZ2x5cGhpY29uLXBsYXktY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDI5XCI7XG59XG5cbi5nbHlwaGljb24tcmVwZWF0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDMwXCI7XG59XG5cbi5nbHlwaGljb24tcmVmcmVzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzMVwiO1xufVxuXG4uZ2x5cGhpY29uLWxpc3QtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDMyXCI7XG59XG5cbi5nbHlwaGljb24tbG9jazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzM1wiO1xufVxuXG4uZ2x5cGhpY29uLWZsYWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMzRcIjtcbn1cblxuLmdseXBoaWNvbi1oZWFkcGhvbmVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDM1XCI7XG59XG5cbi5nbHlwaGljb24tdm9sdW1lLW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzNlwiO1xufVxuXG4uZ2x5cGhpY29uLXZvbHVtZS1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDM3XCI7XG59XG5cbi5nbHlwaGljb24tdm9sdW1lLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDM4XCI7XG59XG5cbi5nbHlwaGljb24tcXJjb2RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDM5XCI7XG59XG5cbi5nbHlwaGljb24tYmFyY29kZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA0MFwiO1xufVxuXG4uZ2x5cGhpY29uLXRhZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA0MVwiO1xufVxuXG4uZ2x5cGhpY29uLXRhZ3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNDJcIjtcbn1cblxuLmdseXBoaWNvbi1ib29rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQzXCI7XG59XG5cbi5nbHlwaGljb24tYm9va21hcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNDRcIjtcbn1cblxuLmdseXBoaWNvbi1wcmludDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA0NVwiO1xufVxuXG4uZ2x5cGhpY29uLWNhbWVyYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA0NlwiO1xufVxuXG4uZ2x5cGhpY29uLWZvbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNDdcIjtcbn1cblxuLmdseXBoaWNvbi1ib2xkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQ4XCI7XG59XG5cbi5nbHlwaGljb24taXRhbGljOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQ5XCI7XG59XG5cbi5nbHlwaGljb24tdGV4dC1oZWlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNTBcIjtcbn1cblxuLmdseXBoaWNvbi10ZXh0LXdpZHRoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDUxXCI7XG59XG5cbi5nbHlwaGljb24tYWxpZ24tbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1MlwiO1xufVxuXG4uZ2x5cGhpY29uLWFsaWduLWNlbnRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1M1wiO1xufVxuXG4uZ2x5cGhpY29uLWFsaWduLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDU0XCI7XG59XG5cbi5nbHlwaGljb24tYWxpZ24tanVzdGlmeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1NVwiO1xufVxuXG4uZ2x5cGhpY29uLWxpc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNTZcIjtcbn1cblxuLmdseXBoaWNvbi1pbmRlbnQtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1N1wiO1xufVxuXG4uZ2x5cGhpY29uLWluZGVudC1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1OFwiO1xufVxuXG4uZ2x5cGhpY29uLWZhY2V0aW1lLXZpZGVvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDU5XCI7XG59XG5cbi5nbHlwaGljb24tcGljdHVyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA2MFwiO1xufVxuXG4uZ2x5cGhpY29uLW1hcC1tYXJrZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNjJcIjtcbn1cblxuLmdseXBoaWNvbi1hZGp1c3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNjNcIjtcbn1cblxuLmdseXBoaWNvbi10aW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDY0XCI7XG59XG5cbi5nbHlwaGljb24tZWRpdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA2NVwiO1xufVxuXG4uZ2x5cGhpY29uLXNoYXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDY2XCI7XG59XG5cbi5nbHlwaGljb24tY2hlY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNjdcIjtcbn1cblxuLmdseXBoaWNvbi1tb3ZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDY4XCI7XG59XG5cbi5nbHlwaGljb24tc3RlcC1iYWNrd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA2OVwiO1xufVxuXG4uZ2x5cGhpY29uLWZhc3QtYmFja3dhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNzBcIjtcbn1cblxuLmdseXBoaWNvbi1iYWNrd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA3MVwiO1xufVxuXG4uZ2x5cGhpY29uLXBsYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNzJcIjtcbn1cblxuLmdseXBoaWNvbi1wYXVzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA3M1wiO1xufVxuXG4uZ2x5cGhpY29uLXN0b3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNzRcIjtcbn1cblxuLmdseXBoaWNvbi1mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDc1XCI7XG59XG5cbi5nbHlwaGljb24tZmFzdC1mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDc2XCI7XG59XG5cbi5nbHlwaGljb24tc3RlcC1mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDc3XCI7XG59XG5cbi5nbHlwaGljb24tZWplY3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNzhcIjtcbn1cblxuLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNzlcIjtcbn1cblxuLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDgwXCI7XG59XG5cbi5nbHlwaGljb24tcGx1cy1zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDgxXCI7XG59XG5cbi5nbHlwaGljb24tbWludXMtc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4MlwiO1xufVxuXG4uZ2x5cGhpY29uLXJlbW92ZS1zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDgzXCI7XG59XG5cbi5nbHlwaGljb24tb2stc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4NFwiO1xufVxuXG4uZ2x5cGhpY29uLXF1ZXN0aW9uLXNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwODVcIjtcbn1cblxuLmdseXBoaWNvbi1pbmZvLXNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwODZcIjtcbn1cblxuLmdseXBoaWNvbi1zY3JlZW5zaG90OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDg3XCI7XG59XG5cbi5nbHlwaGljb24tcmVtb3ZlLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4OFwiO1xufVxuXG4uZ2x5cGhpY29uLW9rLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4OVwiO1xufVxuXG4uZ2x5cGhpY29uLWJhbi1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTBcIjtcbn1cblxuLmdseXBoaWNvbi1hcnJvdy1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDkxXCI7XG59XG5cbi5nbHlwaGljb24tYXJyb3ctcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTJcIjtcbn1cblxuLmdseXBoaWNvbi1hcnJvdy11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA5M1wiO1xufVxuXG4uZ2x5cGhpY29uLWFycm93LWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTRcIjtcbn1cblxuLmdseXBoaWNvbi1zaGFyZS1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTVcIjtcbn1cblxuLmdseXBoaWNvbi1yZXNpemUtZnVsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA5NlwiO1xufVxuXG4uZ2x5cGhpY29uLXJlc2l6ZS1zbWFsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA5N1wiO1xufVxuXG4uZ2x5cGhpY29uLWV4Y2xhbWF0aW9uLXNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMDFcIjtcbn1cblxuLmdseXBoaWNvbi1naWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTAyXCI7XG59XG5cbi5nbHlwaGljb24tbGVhZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwM1wiO1xufVxuXG4uZ2x5cGhpY29uLWZpcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMDRcIjtcbn1cblxuLmdseXBoaWNvbi1leWUtb3BlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwNVwiO1xufVxuXG4uZ2x5cGhpY29uLWV5ZS1jbG9zZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwNlwiO1xufVxuXG4uZ2x5cGhpY29uLXdhcm5pbmctc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwN1wiO1xufVxuXG4uZ2x5cGhpY29uLXBsYW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTA4XCI7XG59XG5cbi5nbHlwaGljb24tY2FsZW5kYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMDlcIjtcbn1cblxuLmdseXBoaWNvbi1yYW5kb206YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTBcIjtcbn1cblxuLmdseXBoaWNvbi1jb21tZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTExXCI7XG59XG5cbi5nbHlwaGljb24tbWFnbmV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTEyXCI7XG59XG5cbi5nbHlwaGljb24tY2hldnJvbi11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExM1wiO1xufVxuXG4uZ2x5cGhpY29uLWNoZXZyb24tZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExNFwiO1xufVxuXG4uZ2x5cGhpY29uLXJldHdlZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTVcIjtcbn1cblxuLmdseXBoaWNvbi1zaG9wcGluZy1jYXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTE2XCI7XG59XG5cbi5nbHlwaGljb24tZm9sZGVyLWNsb3NlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTE3XCI7XG59XG5cbi5nbHlwaGljb24tZm9sZGVyLW9wZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMThcIjtcbn1cblxuLmdseXBoaWNvbi1yZXNpemUtdmVydGljYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTlcIjtcbn1cblxuLmdseXBoaWNvbi1yZXNpemUtaG9yaXpvbnRhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEyMFwiO1xufVxuXG4uZ2x5cGhpY29uLWhkZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEyMVwiO1xufVxuXG4uZ2x5cGhpY29uLWJ1bGxob3JuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTIyXCI7XG59XG5cbi5nbHlwaGljb24tYmVsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEyM1wiO1xufVxuXG4uZ2x5cGhpY29uLWNlcnRpZmljYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTI0XCI7XG59XG5cbi5nbHlwaGljb24tdGh1bWJzLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTI1XCI7XG59XG5cbi5nbHlwaGljb24tdGh1bWJzLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjZcIjtcbn1cblxuLmdseXBoaWNvbi1oYW5kLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTI3XCI7XG59XG5cbi5nbHlwaGljb24taGFuZC1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTI4XCI7XG59XG5cbi5nbHlwaGljb24taGFuZC11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEyOVwiO1xufVxuXG4uZ2x5cGhpY29uLWhhbmQtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzMFwiO1xufVxuXG4uZ2x5cGhpY29uLWNpcmNsZS1hcnJvdy1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzMVwiO1xufVxuXG4uZ2x5cGhpY29uLWNpcmNsZS1hcnJvdy1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTMyXCI7XG59XG5cbi5nbHlwaGljb24tY2lyY2xlLWFycm93LXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTMzXCI7XG59XG5cbi5nbHlwaGljb24tY2lyY2xlLWFycm93LWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMzRcIjtcbn1cblxuLmdseXBoaWNvbi1nbG9iZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzNVwiO1xufVxuXG4uZ2x5cGhpY29uLXdyZW5jaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzNlwiO1xufVxuXG4uZ2x5cGhpY29uLXRhc2tzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTM3XCI7XG59XG5cbi5nbHlwaGljb24tZmlsdGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTM4XCI7XG59XG5cbi5nbHlwaGljb24tYnJpZWZjYXNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTM5XCI7XG59XG5cbi5nbHlwaGljb24tZnVsbHNjcmVlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE0MFwiO1xufVxuXG4uZ2x5cGhpY29uLWRhc2hib2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE0MVwiO1xufVxuXG4uZ2x5cGhpY29uLXBhcGVyY2xpcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE0MlwiO1xufVxuXG4uZ2x5cGhpY29uLWhlYXJ0LWVtcHR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTQzXCI7XG59XG5cbi5nbHlwaGljb24tbGluazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE0NFwiO1xufVxuXG4uZ2x5cGhpY29uLXBob25lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTQ1XCI7XG59XG5cbi5nbHlwaGljb24tcHVzaHBpbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE0NlwiO1xufVxuXG4uZ2x5cGhpY29uLXVzZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE0OFwiO1xufVxuXG4uZ2x5cGhpY29uLWdicDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE0OVwiO1xufVxuXG4uZ2x5cGhpY29uLXNvcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNTBcIjtcbn1cblxuLmdseXBoaWNvbi1zb3J0LWJ5LWFscGhhYmV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTUxXCI7XG59XG5cbi5nbHlwaGljb24tc29ydC1ieS1hbHBoYWJldC1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNTJcIjtcbn1cblxuLmdseXBoaWNvbi1zb3J0LWJ5LW9yZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTUzXCI7XG59XG5cbi5nbHlwaGljb24tc29ydC1ieS1vcmRlci1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNTRcIjtcbn1cblxuLmdseXBoaWNvbi1zb3J0LWJ5LWF0dHJpYnV0ZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNTVcIjtcbn1cblxuLmdseXBoaWNvbi1zb3J0LWJ5LWF0dHJpYnV0ZXMtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTU2XCI7XG59XG5cbi5nbHlwaGljb24tdW5jaGVja2VkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTU3XCI7XG59XG5cbi5nbHlwaGljb24tZXhwYW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTU4XCI7XG59XG5cbi5nbHlwaGljb24tY29sbGFwc2UtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE1OVwiO1xufVxuXG4uZ2x5cGhpY29uLWNvbGxhcHNlLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTYwXCI7XG59XG5cbi5nbHlwaGljb24tbG9nLWluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTYxXCI7XG59XG5cbi5nbHlwaGljb24tZmxhc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNjJcIjtcbn1cblxuLmdseXBoaWNvbi1sb2ctb3V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTYzXCI7XG59XG5cbi5nbHlwaGljb24tbmV3LXdpbmRvdzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE2NFwiO1xufVxuXG4uZ2x5cGhpY29uLXJlY29yZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE2NVwiO1xufVxuXG4uZ2x5cGhpY29uLXNhdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNjZcIjtcbn1cblxuLmdseXBoaWNvbi1vcGVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTY3XCI7XG59XG5cbi5nbHlwaGljb24tc2F2ZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNjhcIjtcbn1cblxuLmdseXBoaWNvbi1pbXBvcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNjlcIjtcbn1cblxuLmdseXBoaWNvbi1leHBvcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzBcIjtcbn1cblxuLmdseXBoaWNvbi1zZW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTcxXCI7XG59XG5cbi5nbHlwaGljb24tZmxvcHB5LWRpc2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzJcIjtcbn1cblxuLmdseXBoaWNvbi1mbG9wcHktc2F2ZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzNcIjtcbn1cblxuLmdseXBoaWNvbi1mbG9wcHktcmVtb3ZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTc0XCI7XG59XG5cbi5nbHlwaGljb24tZmxvcHB5LXNhdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzVcIjtcbn1cblxuLmdseXBoaWNvbi1mbG9wcHktb3BlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE3NlwiO1xufVxuXG4uZ2x5cGhpY29uLWNyZWRpdC1jYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTc3XCI7XG59XG5cbi5nbHlwaGljb24tdHJhbnNmZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzhcIjtcbn1cblxuLmdseXBoaWNvbi1jdXRsZXJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTc5XCI7XG59XG5cbi5nbHlwaGljb24taGVhZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTgwXCI7XG59XG5cbi5nbHlwaGljb24tY29tcHJlc3NlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE4MVwiO1xufVxuXG4uZ2x5cGhpY29uLWVhcnBob25lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTgyXCI7XG59XG5cbi5nbHlwaGljb24tcGhvbmUtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTgzXCI7XG59XG5cbi5nbHlwaGljb24tdG93ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODRcIjtcbn1cblxuLmdseXBoaWNvbi1zdGF0czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE4NVwiO1xufVxuXG4uZ2x5cGhpY29uLXNkLXZpZGVvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTg2XCI7XG59XG5cbi5nbHlwaGljb24taGQtdmlkZW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODdcIjtcbn1cblxuLmdseXBoaWNvbi1zdWJ0aXRsZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODhcIjtcbn1cblxuLmdseXBoaWNvbi1zb3VuZC1zdGVyZW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODlcIjtcbn1cblxuLmdseXBoaWNvbi1zb3VuZC1kb2xieTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5MFwiO1xufVxuXG4uZ2x5cGhpY29uLXNvdW5kLTUtMTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5MVwiO1xufVxuXG4uZ2x5cGhpY29uLXNvdW5kLTYtMTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5MlwiO1xufVxuXG4uZ2x5cGhpY29uLXNvdW5kLTctMTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5M1wiO1xufVxuXG4uZ2x5cGhpY29uLWNvcHlyaWdodC1tYXJrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTk0XCI7XG59XG5cbi5nbHlwaGljb24tcmVnaXN0cmF0aW9uLW1hcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxOTVcIjtcbn1cblxuLmdseXBoaWNvbi1jbG91ZC1kb3dubG9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5N1wiO1xufVxuXG4uZ2x5cGhpY29uLWNsb3VkLXVwbG9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5OFwiO1xufVxuXG4uZ2x5cGhpY29uLXRyZWUtY29uaWZlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5OVwiO1xufVxuXG4uZ2x5cGhpY29uLXRyZWUtZGVjaWR1b3VzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjAwXCI7XG59XG5cbi5nbHlwaGljb24tY2Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMDFcIjtcbn1cblxuLmdseXBoaWNvbi1zYXZlLWZpbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMDJcIjtcbn1cblxuLmdseXBoaWNvbi1vcGVuLWZpbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMDNcIjtcbn1cblxuLmdseXBoaWNvbi1sZXZlbC11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIwNFwiO1xufVxuXG4uZ2x5cGhpY29uLWNvcHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMDVcIjtcbn1cblxuLmdseXBoaWNvbi1wYXN0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIwNlwiO1xufVxuXG4uZ2x5cGhpY29uLWFsZXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjA5XCI7XG59XG5cbi5nbHlwaGljb24tZXF1YWxpemVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjEwXCI7XG59XG5cbi5nbHlwaGljb24ta2luZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIxMVwiO1xufVxuXG4uZ2x5cGhpY29uLXF1ZWVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjEyXCI7XG59XG5cbi5nbHlwaGljb24tcGF3bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIxM1wiO1xufVxuXG4uZ2x5cGhpY29uLWJpc2hvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIxNFwiO1xufVxuXG4uZ2x5cGhpY29uLWtuaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIxNVwiO1xufVxuXG4uZ2x5cGhpY29uLWJhYnktZm9ybXVsYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIxNlwiO1xufVxuXG4uZ2x5cGhpY29uLXRlbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDI2ZmFcIjtcbn1cblxuLmdseXBoaWNvbi1ibGFja2JvYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjE4XCI7XG59XG5cbi5nbHlwaGljb24tYmVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjE5XCI7XG59XG5cbi5nbHlwaGljb24tYXBwbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY4ZmZcIjtcbn1cblxuLmdseXBoaWNvbi1lcmFzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIyMVwiO1xufVxuXG4uZ2x5cGhpY29uLWhvdXJnbGFzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMjMxYlwiO1xufVxuXG4uZ2x5cGhpY29uLWxhbXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMjNcIjtcbn1cblxuLmdseXBoaWNvbi1kdXBsaWNhdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMjRcIjtcbn1cblxuLmdseXBoaWNvbi1waWdneS1iYW5rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjI1XCI7XG59XG5cbi5nbHlwaGljb24tc2Npc3NvcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMjZcIjtcbn1cblxuLmdseXBoaWNvbi1iaXRjb2luOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjI3XCI7XG59XG5cbi5nbHlwaGljb24tYnRjOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjI3XCI7XG59XG5cbi5nbHlwaGljb24teGJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjI3XCI7XG59XG5cbi5nbHlwaGljb24teWVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwwMGE1XCI7XG59XG5cbi5nbHlwaGljb24tanB5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwwMGE1XCI7XG59XG5cbi5nbHlwaGljb24tcnVibGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDIwYmRcIjtcbn1cblxuLmdseXBoaWNvbi1ydWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDIwYmRcIjtcbn1cblxuLmdseXBoaWNvbi1zY2FsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzMFwiO1xufVxuXG4uZ2x5cGhpY29uLWljZS1sb2xseTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzMVwiO1xufVxuXG4uZ2x5cGhpY29uLWljZS1sb2xseS10YXN0ZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzJcIjtcbn1cblxuLmdseXBoaWNvbi1lZHVjYXRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzNcIjtcbn1cblxuLmdseXBoaWNvbi1vcHRpb24taG9yaXpvbnRhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzNFwiO1xufVxuXG4uZ2x5cGhpY29uLW9wdGlvbi12ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzNVwiO1xufVxuXG4uZ2x5cGhpY29uLW1lbnUtaGFtYnVyZ2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjM2XCI7XG59XG5cbi5nbHlwaGljb24tbW9kYWwtd2luZG93OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjM3XCI7XG59XG5cbi5nbHlwaGljb24tb2lsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjM4XCI7XG59XG5cbi5nbHlwaGljb24tZ3JhaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzlcIjtcbn1cblxuLmdseXBoaWNvbi1zdW5nbGFzc2VzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjQwXCI7XG59XG5cbi5nbHlwaGljb24tdGV4dC1zaXplOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjQxXCI7XG59XG5cbi5nbHlwaGljb24tdGV4dC1jb2xvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0MlwiO1xufVxuXG4uZ2x5cGhpY29uLXRleHQtYmFja2dyb3VuZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0M1wiO1xufVxuXG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi10b3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNDRcIjtcbn1cblxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24tYm90dG9tOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjQ1XCI7XG59XG5cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLWhvcml6b250YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNDZcIjtcbn1cblxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24tbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0N1wiO1xufVxuXG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi12ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0OFwiO1xufVxuXG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0OVwiO1xufVxuXG4uZ2x5cGhpY29uLXRyaWFuZ2xlLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjUwXCI7XG59XG5cbi5nbHlwaGljb24tdHJpYW5nbGUtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1MVwiO1xufVxuXG4uZ2x5cGhpY29uLXRyaWFuZ2xlLWJvdHRvbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1MlwiO1xufVxuXG4uZ2x5cGhpY29uLXRyaWFuZ2xlLXRvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1M1wiO1xufVxuXG4uZ2x5cGhpY29uLWNvbnNvbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNTRcIjtcbn1cblxuLmdseXBoaWNvbi1zdXBlcnNjcmlwdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1NVwiO1xufVxuXG4uZ2x5cGhpY29uLXN1YnNjcmlwdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1NlwiO1xufVxuXG4uZ2x5cGhpY29uLW1lbnUtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1N1wiO1xufVxuXG4uZ2x5cGhpY29uLW1lbnUtcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNThcIjtcbn1cblxuLmdseXBoaWNvbi1tZW51LWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNTlcIjtcbn1cblxuLmdseXBoaWNvbi1tZW51LXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjYwXCI7XG59XG5cbioge1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmh0bWwge1xuICBmb250LXNpemU6IDEwcHg7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbmJvZHkge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2FOZXVlTWVkaXVtXCIsIFwiSGVsdmV0aWNhTmV1ZS1NZWRpdW1cIiwgXCJIZWx2ZXRpY2EgTmV1ZSBNZWRpdW1cIiwgXCJIZWx2ZXRpY2FOZXVlXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgXCJMdWNpZGEgR3JhbmRlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDI5O1xuICBjb2xvcjogIzIyMjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuaW5wdXQsXG5idXR0b24sXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG5hIHtcbiAgY29sb3I6ICMzYTM5M2I7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuYTpob3ZlcixcbmE6Zm9jdXMge1xuICBjb2xvcjogIzE0MTMxNDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbmE6Zm9jdXMge1xuICBvdXRsaW5lOiB0aGluIGRvdHRlZDtcbiAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xufVxuXG5pbWcge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uaW1nLXJlc3BvbnNpdmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi5pbWctcm91bmRlZCB7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cblxuLmltZy10aHVtYm5haWwge1xuICBwYWRkaW5nOiA0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQyOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICAtby10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi5pbWctY2lyY2xlIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG5ociB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNmZmY7XG59XG5cbi5zci1vbmx5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICBib3JkZXI6IDA7XG59XG5cbi5zci1vbmx5LWZvY3VzYWJsZTphY3RpdmUsXG4uc3Itb25seS1mb2N1c2FibGU6Zm9jdXMge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjbGlwOiBhdXRvO1xufVxuXG5bcm9sZT1cImJ1dHRvblwiXSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNixcbi5oMSwgLmgyLCAuaDMsIC5oNCwgLmg1LCAuaDYge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbmgxIHNtYWxsLFxuaDEgLnNtYWxsLCBoMiBzbWFsbCxcbmgyIC5zbWFsbCwgaDMgc21hbGwsXG5oMyAuc21hbGwsIGg0IHNtYWxsLFxuaDQgLnNtYWxsLCBoNSBzbWFsbCxcbmg1IC5zbWFsbCwgaDYgc21hbGwsXG5oNiAuc21hbGwsXG4uaDEgc21hbGwsXG4uaDEgLnNtYWxsLCAuaDIgc21hbGwsXG4uaDIgLnNtYWxsLCAuaDMgc21hbGwsXG4uaDMgLnNtYWxsLCAuaDQgc21hbGwsXG4uaDQgLnNtYWxsLCAuaDUgc21hbGwsXG4uaDUgLnNtYWxsLCAuaDYgc21hbGwsXG4uaDYgLnNtYWxsIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjOTk5O1xufVxuXG5oMSwgLmgxLFxuaDIsIC5oMixcbmgzLCAuaDMge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG5oMSBzbWFsbCxcbmgxIC5zbWFsbCwgLmgxIHNtYWxsLFxuLmgxIC5zbWFsbCxcbmgyIHNtYWxsLFxuaDIgLnNtYWxsLCAuaDIgc21hbGwsXG4uaDIgLnNtYWxsLFxuaDMgc21hbGwsXG5oMyAuc21hbGwsIC5oMyBzbWFsbCxcbi5oMyAuc21hbGwge1xuICBmb250LXNpemU6IDY1JTtcbn1cblxuaDQsIC5oNCxcbmg1LCAuaDUsXG5oNiwgLmg2IHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuaDQgc21hbGwsXG5oNCAuc21hbGwsIC5oNCBzbWFsbCxcbi5oNCAuc21hbGwsXG5oNSBzbWFsbCxcbmg1IC5zbWFsbCwgLmg1IHNtYWxsLFxuLmg1IC5zbWFsbCxcbmg2IHNtYWxsLFxuaDYgLnNtYWxsLCAuaDYgc21hbGwsXG4uaDYgLnNtYWxsIHtcbiAgZm9udC1zaXplOiA3NSU7XG59XG5cbmgxLCAuaDEge1xuICBmb250LXNpemU6IDEuNTcxZW07XG59XG5cbmgyLCAuaDIge1xuICBmb250LXNpemU6IDIycHg7XG59XG5cbmgzLCAuaDMge1xuICBmb250LXNpemU6IDE3cHg7XG59XG5cbmg0LCAuaDQge1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbmg1LCAuaDUge1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbmg2LCAuaDYge1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbnAge1xuICBtYXJnaW46IDAgMCAxMHB4O1xufVxuXG4ubGVhZCB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5sZWFkIHtcbiAgICBmb250LXNpemU6IDIxcHg7XG4gIH1cbn1cblxuc21hbGwsXG4uc21hbGwge1xuICBmb250LXNpemU6IDg1JTtcbn1cblxubWFyayxcbi5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZTNjMjtcbiAgcGFkZGluZzogLjJlbTtcbn1cblxuLnRleHQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi50ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi50ZXh0LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnRleHQtanVzdGlmeSB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7XG59XG5cbi50ZXh0LW5vd3JhcCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi50ZXh0LWxvd2VyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG59XG5cbi50ZXh0LXVwcGVyY2FzZSwgLmluaXRpYWxpc20ge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4udGV4dC1jYXBpdGFsaXplIHtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG59XG5cbi50ZXh0LW11dGVkIHtcbiAgY29sb3I6ICM5OTk7XG59XG5cbi50ZXh0LXByaW1hcnkge1xuICBjb2xvcjogIzNhMzkzYjtcbn1cblxuYS50ZXh0LXByaW1hcnk6aG92ZXIsXG5hLnRleHQtcHJpbWFyeTpmb2N1cyB7XG4gIGNvbG9yOiAjMjEyMDIxO1xufVxuXG4udGV4dC1zdWNjZXNzIHtcbiAgY29sb3I6ICM2YzZjNmM7XG59XG5cbmEudGV4dC1zdWNjZXNzOmhvdmVyLFxuYS50ZXh0LXN1Y2Nlc3M6Zm9jdXMge1xuICBjb2xvcjogIzUyNTI1Mjtcbn1cblxuLnRleHQtaW5mbyB7XG4gIGNvbG9yOiAjNmM2YzZjO1xufVxuXG5hLnRleHQtaW5mbzpob3ZlcixcbmEudGV4dC1pbmZvOmZvY3VzIHtcbiAgY29sb3I6ICM1MjUyNTI7XG59XG5cbi50ZXh0LXdhcm5pbmcge1xuICBjb2xvcjogIzZjNmM2Yztcbn1cblxuYS50ZXh0LXdhcm5pbmc6aG92ZXIsXG5hLnRleHQtd2FybmluZzpmb2N1cyB7XG4gIGNvbG9yOiAjNTI1MjUyO1xufVxuXG4udGV4dC1kYW5nZXIge1xuICBjb2xvcjogIzZjNmM2Yztcbn1cblxuYS50ZXh0LWRhbmdlcjpob3ZlcixcbmEudGV4dC1kYW5nZXI6Zm9jdXMge1xuICBjb2xvcjogIzUyNTI1Mjtcbn1cblxuLmJnLXByaW1hcnkge1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLmJnLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2EzOTNiO1xufVxuXG5hLmJnLXByaW1hcnk6aG92ZXIsXG5hLmJnLXByaW1hcnk6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMDIxO1xufVxuXG4uYmctc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkYWU2Y2I7XG59XG5cbmEuYmctc3VjY2Vzczpob3ZlcixcbmEuYmctc3VjY2Vzczpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMWQ1YTk7XG59XG5cbi5iZy1pbmZvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZWRmNztcbn1cblxuYS5iZy1pbmZvOmhvdmVyLFxuYS5iZy1pbmZvOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2FmZDllZTtcbn1cblxuLmJnLXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFlM2MyO1xufVxuXG5hLmJnLXdhcm5pbmc6aG92ZXIsXG5hLmJnLXdhcm5pbmc6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTdkMDk5O1xufVxuXG4uYmctZGFuZ2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VhYzNjNztcbn1cblxuYS5iZy1kYW5nZXI6aG92ZXIsXG5hLmJnLWRhbmdlcjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZDlkYTQ7XG59XG5cbi5wYWdlLWhlYWRlciB7XG4gIHBhZGRpbmctYm90dG9tOiA5cHg7XG4gIG1hcmdpbjogNDBweCAwIDIwcHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZmZmO1xufVxuXG51bCxcbm9sIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxudWwgdWwsXG51bCBvbCxcbm9sIHVsLFxub2wgb2wge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4ubGlzdC11bnN0eWxlZCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLmxpc3QtaW5saW5lIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW4tbGVmdDogLTVweDtcbn1cblxuLmxpc3QtaW5saW5lID4gbGkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG59XG5cbmRsIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuZHQsXG5kZCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQyOTtcbn1cblxuZHQge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuZGQge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLmRsLWhvcml6b250YWwgZGQ6YmVmb3JlLFxuLmRsLWhvcml6b250YWwgZGQ6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi5kbC1ob3Jpem9udGFsIGRkOmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuZGwtaG9yaXpvbnRhbCBkdCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDE2MHB4O1xuICAgIGNsZWFyOiBsZWZ0O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuICAuZGwtaG9yaXpvbnRhbCBkZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDE4MHB4O1xuICB9XG59XG5cbmFiYnJbdGl0bGVdLFxuYWJicltkYXRhLW9yaWdpbmFsLXRpdGxlXSB7XG4gIGN1cnNvcjogaGVscDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjOTk5O1xufVxuXG4uaW5pdGlhbGlzbSB7XG4gIGZvbnQtc2l6ZTogOTAlO1xufVxuXG5ibG9ja3F1b3RlIHtcbiAgcGFkZGluZzogMTBweCAyMHB4O1xuICBtYXJnaW46IDAgMCAyMHB4O1xuICBmb250LXNpemU6IDE3LjVweDtcbiAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAjZmZmO1xufVxuXG5ibG9ja3F1b3RlIHA6bGFzdC1jaGlsZCxcbmJsb2NrcXVvdGUgdWw6bGFzdC1jaGlsZCxcbmJsb2NrcXVvdGUgb2w6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbmJsb2NrcXVvdGUgZm9vdGVyLFxuYmxvY2txdW90ZSBzbWFsbCxcbmJsb2NrcXVvdGUgLnNtYWxsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0Mjk7XG4gIGNvbG9yOiAjOTk5O1xufVxuXG5ibG9ja3F1b3RlIGZvb3RlcjpiZWZvcmUsXG5ibG9ja3F1b3RlIHNtYWxsOmJlZm9yZSxcbmJsb2NrcXVvdGUgLnNtYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXDIwMTQgXFwwMEEwJztcbn1cblxuLmJsb2NrcXVvdGUtcmV2ZXJzZSxcbmJsb2NrcXVvdGUucHVsbC1yaWdodCB7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgYm9yZGVyLXJpZ2h0OiA1cHggc29saWQgI2ZmZjtcbiAgYm9yZGVyLWxlZnQ6IDA7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4uYmxvY2txdW90ZS1yZXZlcnNlIGZvb3RlcjpiZWZvcmUsXG4uYmxvY2txdW90ZS1yZXZlcnNlIHNtYWxsOmJlZm9yZSxcbi5ibG9ja3F1b3RlLXJldmVyc2UgLnNtYWxsOmJlZm9yZSxcbmJsb2NrcXVvdGUucHVsbC1yaWdodCBmb290ZXI6YmVmb3JlLFxuYmxvY2txdW90ZS5wdWxsLXJpZ2h0IHNtYWxsOmJlZm9yZSxcbmJsb2NrcXVvdGUucHVsbC1yaWdodCAuc21hbGw6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG59XG5cbi5ibG9ja3F1b3RlLXJldmVyc2UgZm9vdGVyOmFmdGVyLFxuLmJsb2NrcXVvdGUtcmV2ZXJzZSBzbWFsbDphZnRlcixcbi5ibG9ja3F1b3RlLXJldmVyc2UgLnNtYWxsOmFmdGVyLFxuYmxvY2txdW90ZS5wdWxsLXJpZ2h0IGZvb3RlcjphZnRlcixcbmJsb2NrcXVvdGUucHVsbC1yaWdodCBzbWFsbDphZnRlcixcbmJsb2NrcXVvdGUucHVsbC1yaWdodCAuc21hbGw6YWZ0ZXIge1xuICBjb250ZW50OiAnXFwwMEEwIFxcMjAxNCc7XG59XG5cbmFkZHJlc3Mge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQyOTtcbn1cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xufVxuXG5jb2RlIHtcbiAgcGFkZGluZzogMnB4IDRweDtcbiAgZm9udC1zaXplOiA5MCU7XG4gIGNvbG9yOiAjYzcyNTRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmMmY0O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG5cbmtiZCB7XG4gIHBhZGRpbmc6IDJweCA0cHg7XG4gIGZvbnQtc2l6ZTogOTAlO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMztcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xufVxuXG5rYmQga2JkIHtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxucHJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDkuNXB4O1xuICBtYXJnaW46IDAgMCAxMHB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQyOTtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGNvbG9yOiAjMjIyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG5cbnByZSBjb2RlIHtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLnByZS1zY3JvbGxhYmxlIHtcbiAgbWF4LWhlaWdodDogMzQwcHg7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cblxuLmNvbnRhaW5lciB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDtcbn1cblxuLmNvbnRhaW5lcjpiZWZvcmUsXG4uY29udGFpbmVyOmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuXG4uY29udGFpbmVyOmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuY29udGFpbmVyIHtcbiAgICB3aWR0aDogOTQwcHg7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTE0MHB4O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxNjgwKSB7XG4gIC5jb250YWluZXIge1xuICAgIHdpZHRoOiAxNTQwcHg7XG4gIH1cbn1cblxuLmNvbnRhaW5lci1mbHVpZCB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDtcbn1cblxuLmNvbnRhaW5lci1mbHVpZDpiZWZvcmUsXG4uY29udGFpbmVyLWZsdWlkOmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuXG4uY29udGFpbmVyLWZsdWlkOmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5yb3cge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4ucm93OmJlZm9yZSxcbi5yb3c6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi5yb3c6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLmNvbC14cy0xLCAuY29sLXNtLTEsIC5jb2wtbWQtMSwgLmNvbC1sZy0xLCAuY29sLXhzLTIsIC5jb2wtc20tMiwgLmNvbC1tZC0yLCAuY29sLWxnLTIsIC5jb2wteHMtMywgLmNvbC1zbS0zLCAuY29sLW1kLTMsIC5jb2wtbGctMywgLmNvbC14cy00LCAuY29sLXNtLTQsIC5jb2wtbWQtNCwgLmNvbC1sZy00LCAuY29sLXhzLTUsIC5jb2wtc20tNSwgLmNvbC1tZC01LCAuY29sLWxnLTUsIC5jb2wteHMtNiwgLmNvbC1zbS02LCAuY29sLW1kLTYsIC5jb2wtbGctNiwgLmNvbC14cy03LCAuY29sLXNtLTcsIC5jb2wtbWQtNywgLmNvbC1sZy03LCAuY29sLXhzLTgsIC5jb2wtc20tOCwgLmNvbC1tZC04LCAuY29sLWxnLTgsIC5jb2wteHMtOSwgLmNvbC1zbS05LCAuY29sLW1kLTksIC5jb2wtbGctOSwgLmNvbC14cy0xMCwgLmNvbC1zbS0xMCwgLmNvbC1tZC0xMCwgLmNvbC1sZy0xMCwgLmNvbC14cy0xMSwgLmNvbC1zbS0xMSwgLmNvbC1tZC0xMSwgLmNvbC1sZy0xMSwgLmNvbC14cy0xMiwgLmNvbC1zbS0xMiwgLmNvbC1tZC0xMiwgLmNvbC1sZy0xMiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG59XG5cbi5jb2wteHMtMSwgLmNvbC14cy0yLCAuY29sLXhzLTMsIC5jb2wteHMtNCwgLmNvbC14cy01LCAuY29sLXhzLTYsIC5jb2wteHMtNywgLmNvbC14cy04LCAuY29sLXhzLTksIC5jb2wteHMtMTAsIC5jb2wteHMtMTEsIC5jb2wteHMtMTIge1xuICBmbG9hdDogbGVmdDtcbn1cblxuLmNvbC14cy0xIHtcbiAgd2lkdGg6IDguMzMzMzMzMzMzMyU7XG59XG5cbi5jb2wteHMtMiB7XG4gIHdpZHRoOiAxNi42NjY2NjY2NjY3JTtcbn1cblxuLmNvbC14cy0zIHtcbiAgd2lkdGg6IDI1JTtcbn1cblxuLmNvbC14cy00IHtcbiAgd2lkdGg6IDMzLjMzMzMzMzMzMzMlO1xufVxuXG4uY29sLXhzLTUge1xuICB3aWR0aDogNDEuNjY2NjY2NjY2NyU7XG59XG5cbi5jb2wteHMtNiB7XG4gIHdpZHRoOiA1MCU7XG59XG5cbi5jb2wteHMtNyB7XG4gIHdpZHRoOiA1OC4zMzMzMzMzMzMzJTtcbn1cblxuLmNvbC14cy04IHtcbiAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xufVxuXG4uY29sLXhzLTkge1xuICB3aWR0aDogNzUlO1xufVxuXG4uY29sLXhzLTEwIHtcbiAgd2lkdGg6IDgzLjMzMzMzMzMzMzMlO1xufVxuXG4uY29sLXhzLTExIHtcbiAgd2lkdGg6IDkxLjY2NjY2NjY2NjclO1xufVxuXG4uY29sLXhzLTEyIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jb2wteHMtcHVsbC0wIHtcbiAgcmlnaHQ6IGF1dG87XG59XG5cbi5jb2wteHMtcHVsbC0xIHtcbiAgcmlnaHQ6IDguMzMzMzMzMzMzMyU7XG59XG5cbi5jb2wteHMtcHVsbC0yIHtcbiAgcmlnaHQ6IDE2LjY2NjY2NjY2NjclO1xufVxuXG4uY29sLXhzLXB1bGwtMyB7XG4gIHJpZ2h0OiAyNSU7XG59XG5cbi5jb2wteHMtcHVsbC00IHtcbiAgcmlnaHQ6IDMzLjMzMzMzMzMzMzMlO1xufVxuXG4uY29sLXhzLXB1bGwtNSB7XG4gIHJpZ2h0OiA0MS42NjY2NjY2NjY3JTtcbn1cblxuLmNvbC14cy1wdWxsLTYge1xuICByaWdodDogNTAlO1xufVxuXG4uY29sLXhzLXB1bGwtNyB7XG4gIHJpZ2h0OiA1OC4zMzMzMzMzMzMzJTtcbn1cblxuLmNvbC14cy1wdWxsLTgge1xuICByaWdodDogNjYuNjY2NjY2NjY2NyU7XG59XG5cbi5jb2wteHMtcHVsbC05IHtcbiAgcmlnaHQ6IDc1JTtcbn1cblxuLmNvbC14cy1wdWxsLTEwIHtcbiAgcmlnaHQ6IDgzLjMzMzMzMzMzMzMlO1xufVxuXG4uY29sLXhzLXB1bGwtMTEge1xuICByaWdodDogOTEuNjY2NjY2NjY2NyU7XG59XG5cbi5jb2wteHMtcHVsbC0xMiB7XG4gIHJpZ2h0OiAxMDAlO1xufVxuXG4uY29sLXhzLXB1c2gtMCB7XG4gIGxlZnQ6IGF1dG87XG59XG5cbi5jb2wteHMtcHVzaC0xIHtcbiAgbGVmdDogOC4zMzMzMzMzMzMzJTtcbn1cblxuLmNvbC14cy1wdXNoLTIge1xuICBsZWZ0OiAxNi42NjY2NjY2NjY3JTtcbn1cblxuLmNvbC14cy1wdXNoLTMge1xuICBsZWZ0OiAyNSU7XG59XG5cbi5jb2wteHMtcHVzaC00IHtcbiAgbGVmdDogMzMuMzMzMzMzMzMzMyU7XG59XG5cbi5jb2wteHMtcHVzaC01IHtcbiAgbGVmdDogNDEuNjY2NjY2NjY2NyU7XG59XG5cbi5jb2wteHMtcHVzaC02IHtcbiAgbGVmdDogNTAlO1xufVxuXG4uY29sLXhzLXB1c2gtNyB7XG4gIGxlZnQ6IDU4LjMzMzMzMzMzMzMlO1xufVxuXG4uY29sLXhzLXB1c2gtOCB7XG4gIGxlZnQ6IDY2LjY2NjY2NjY2NjclO1xufVxuXG4uY29sLXhzLXB1c2gtOSB7XG4gIGxlZnQ6IDc1JTtcbn1cblxuLmNvbC14cy1wdXNoLTEwIHtcbiAgbGVmdDogODMuMzMzMzMzMzMzMyU7XG59XG5cbi5jb2wteHMtcHVzaC0xMSB7XG4gIGxlZnQ6IDkxLjY2NjY2NjY2NjclO1xufVxuXG4uY29sLXhzLXB1c2gtMTIge1xuICBsZWZ0OiAxMDAlO1xufVxuXG4uY29sLXhzLW9mZnNldC0wIHtcbiAgbWFyZ2luLWxlZnQ6IDAlO1xufVxuXG4uY29sLXhzLW9mZnNldC0xIHtcbiAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMzMyU7XG59XG5cbi5jb2wteHMtb2Zmc2V0LTIge1xuICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjY2NyU7XG59XG5cbi5jb2wteHMtb2Zmc2V0LTMge1xuICBtYXJnaW4tbGVmdDogMjUlO1xufVxuXG4uY29sLXhzLW9mZnNldC00IHtcbiAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzMzMlO1xufVxuXG4uY29sLXhzLW9mZnNldC01IHtcbiAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY2NjclO1xufVxuXG4uY29sLXhzLW9mZnNldC02IHtcbiAgbWFyZ2luLWxlZnQ6IDUwJTtcbn1cblxuLmNvbC14cy1vZmZzZXQtNyB7XG4gIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMzMzJTtcbn1cblxuLmNvbC14cy1vZmZzZXQtOCB7XG4gIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NjY3JTtcbn1cblxuLmNvbC14cy1vZmZzZXQtOSB7XG4gIG1hcmdpbi1sZWZ0OiA3NSU7XG59XG5cbi5jb2wteHMtb2Zmc2V0LTEwIHtcbiAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzMzMlO1xufVxuXG4uY29sLXhzLW9mZnNldC0xMSB7XG4gIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NjY3JTtcbn1cblxuLmNvbC14cy1vZmZzZXQtMTIge1xuICBtYXJnaW4tbGVmdDogMTAwJTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5jb2wtc20tMSwgLmNvbC1zbS0yLCAuY29sLXNtLTMsIC5jb2wtc20tNCwgLmNvbC1zbS01LCAuY29sLXNtLTYsIC5jb2wtc20tNywgLmNvbC1zbS04LCAuY29sLXNtLTksIC5jb2wtc20tMTAsIC5jb2wtc20tMTEsIC5jb2wtc20tMTIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gIC5jb2wtc20tMSB7XG4gICAgd2lkdGg6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS0zIHtcbiAgICB3aWR0aDogMjUlO1xuICB9XG4gIC5jb2wtc20tNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tNiB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuICAuY29sLXNtLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLTkge1xuICAgIHdpZHRoOiA3NSU7XG4gIH1cbiAgLmNvbC1zbS0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLTEyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuY29sLXNtLXB1bGwtMCB7XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLmNvbC1zbS1wdWxsLTEge1xuICAgIHJpZ2h0OiA4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tcHVsbC0yIHtcbiAgICByaWdodDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS1wdWxsLTMge1xuICAgIHJpZ2h0OiAyNSU7XG4gIH1cbiAgLmNvbC1zbS1wdWxsLTQge1xuICAgIHJpZ2h0OiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLXB1bGwtNSB7XG4gICAgcmlnaHQ6IDQxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tcHVsbC02IHtcbiAgICByaWdodDogNTAlO1xuICB9XG4gIC5jb2wtc20tcHVsbC03IHtcbiAgICByaWdodDogNTguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1wdWxsLTgge1xuICAgIHJpZ2h0OiA2Ni42NjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLXB1bGwtOSB7XG4gICAgcmlnaHQ6IDc1JTtcbiAgfVxuICAuY29sLXNtLXB1bGwtMTAge1xuICAgIHJpZ2h0OiA4My4zMzMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLXB1bGwtMTEge1xuICAgIHJpZ2h0OiA5MS42NjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLXB1bGwtMTIge1xuICAgIHJpZ2h0OiAxMDAlO1xuICB9XG4gIC5jb2wtc20tcHVzaC0wIHtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG4gIC5jb2wtc20tcHVzaC0xIHtcbiAgICBsZWZ0OiA4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tcHVzaC0yIHtcbiAgICBsZWZ0OiAxNi42NjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLXB1c2gtMyB7XG4gICAgbGVmdDogMjUlO1xuICB9XG4gIC5jb2wtc20tcHVzaC00IHtcbiAgICBsZWZ0OiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLXB1c2gtNSB7XG4gICAgbGVmdDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTYge1xuICAgIGxlZnQ6IDUwJTtcbiAgfVxuICAuY29sLXNtLXB1c2gtNyB7XG4gICAgbGVmdDogNTguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTgge1xuICAgIGxlZnQ6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tcHVzaC05IHtcbiAgICBsZWZ0OiA3NSU7XG4gIH1cbiAgLmNvbC1zbS1wdXNoLTEwIHtcbiAgICBsZWZ0OiA4My4zMzMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLXB1c2gtMTEge1xuICAgIGxlZnQ6IDkxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tcHVzaC0xMiB7XG4gICAgbGVmdDogMTAwJTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcbiAgfVxuICAuY29sLXNtLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtc20tb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1zbS1vZmZzZXQtMTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmNvbC1tZC0xLCAuY29sLW1kLTIsIC5jb2wtbWQtMywgLmNvbC1tZC00LCAuY29sLW1kLTUsIC5jb2wtbWQtNiwgLmNvbC1tZC03LCAuY29sLW1kLTgsIC5jb2wtbWQtOSwgLmNvbC1tZC0xMCwgLmNvbC1tZC0xMSwgLmNvbC1tZC0xMiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgLmNvbC1tZC0xIHtcbiAgICB3aWR0aDogOC4zMzMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLTMge1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbiAgLmNvbC1tZC00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC01IHtcbiAgICB3aWR0aDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC02IHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC5jb2wtbWQtNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtOSB7XG4gICAgd2lkdGg6IDc1JTtcbiAgfVxuICAuY29sLW1kLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtMTIge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5jb2wtbWQtcHVsbC0wIHtcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAuY29sLW1kLXB1bGwtMSB7XG4gICAgcmlnaHQ6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTIge1xuICAgIHJpZ2h0OiAxNi42NjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLXB1bGwtMyB7XG4gICAgcmlnaHQ6IDI1JTtcbiAgfVxuICAuY29sLW1kLXB1bGwtNCB7XG4gICAgcmlnaHQ6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtcHVsbC01IHtcbiAgICByaWdodDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTYge1xuICAgIHJpZ2h0OiA1MCU7XG4gIH1cbiAgLmNvbC1tZC1wdWxsLTcge1xuICAgIHJpZ2h0OiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLXB1bGwtOCB7XG4gICAgcmlnaHQ6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtcHVsbC05IHtcbiAgICByaWdodDogNzUlO1xuICB9XG4gIC5jb2wtbWQtcHVsbC0xMCB7XG4gICAgcmlnaHQ6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtcHVsbC0xMSB7XG4gICAgcmlnaHQ6IDkxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtcHVsbC0xMiB7XG4gICAgcmlnaHQ6IDEwMCU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTAge1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTEge1xuICAgIGxlZnQ6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTIge1xuICAgIGxlZnQ6IDE2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtcHVzaC0zIHtcbiAgICBsZWZ0OiAyNSU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTQge1xuICAgIGxlZnQ6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtcHVzaC01IHtcbiAgICBsZWZ0OiA0MS42NjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLXB1c2gtNiB7XG4gICAgbGVmdDogNTAlO1xuICB9XG4gIC5jb2wtbWQtcHVzaC03IHtcbiAgICBsZWZ0OiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLXB1c2gtOCB7XG4gICAgbGVmdDogNjYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTkge1xuICAgIGxlZnQ6IDc1JTtcbiAgfVxuICAuY29sLW1kLXB1c2gtMTAge1xuICAgIGxlZnQ6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtcHVzaC0xMSB7XG4gICAgbGVmdDogOTEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC1wdXNoLTEyIHtcbiAgICBsZWZ0OiAxMDAlO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMzMzJTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xuICB9XG4gIC5jb2wtbWQtb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1tZC1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLW1kLW9mZnNldC0xMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDE2ODApIHtcbiAgLmNvbC1sZy0xLCAuY29sLWxnLTIsIC5jb2wtbGctMywgLmNvbC1sZy00LCAuY29sLWxnLTUsIC5jb2wtbGctNiwgLmNvbC1sZy03LCAuY29sLWxnLTgsIC5jb2wtbGctOSwgLmNvbC1sZy0xMCwgLmNvbC1sZy0xMSwgLmNvbC1sZy0xMiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgLmNvbC1sZy0xIHtcbiAgICB3aWR0aDogOC4zMzMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLTMge1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbiAgLmNvbC1sZy00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy01IHtcbiAgICB3aWR0aDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy02IHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC5jb2wtbGctNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctOSB7XG4gICAgd2lkdGg6IDc1JTtcbiAgfVxuICAuY29sLWxnLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctMTIge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5jb2wtbGctcHVsbC0wIHtcbiAgICByaWdodDogYXV0bztcbiAgfVxuICAuY29sLWxnLXB1bGwtMSB7XG4gICAgcmlnaHQ6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1wdWxsLTIge1xuICAgIHJpZ2h0OiAxNi42NjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLXB1bGwtMyB7XG4gICAgcmlnaHQ6IDI1JTtcbiAgfVxuICAuY29sLWxnLXB1bGwtNCB7XG4gICAgcmlnaHQ6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctcHVsbC01IHtcbiAgICByaWdodDogNDEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy1wdWxsLTYge1xuICAgIHJpZ2h0OiA1MCU7XG4gIH1cbiAgLmNvbC1sZy1wdWxsLTcge1xuICAgIHJpZ2h0OiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLXB1bGwtOCB7XG4gICAgcmlnaHQ6IDY2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctcHVsbC05IHtcbiAgICByaWdodDogNzUlO1xuICB9XG4gIC5jb2wtbGctcHVsbC0xMCB7XG4gICAgcmlnaHQ6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctcHVsbC0xMSB7XG4gICAgcmlnaHQ6IDkxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctcHVsbC0xMiB7XG4gICAgcmlnaHQ6IDEwMCU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTAge1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTEge1xuICAgIGxlZnQ6IDguMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTIge1xuICAgIGxlZnQ6IDE2LjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctcHVzaC0zIHtcbiAgICBsZWZ0OiAyNSU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTQge1xuICAgIGxlZnQ6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctcHVzaC01IHtcbiAgICBsZWZ0OiA0MS42NjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLXB1c2gtNiB7XG4gICAgbGVmdDogNTAlO1xuICB9XG4gIC5jb2wtbGctcHVzaC03IHtcbiAgICBsZWZ0OiA1OC4zMzMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLXB1c2gtOCB7XG4gICAgbGVmdDogNjYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTkge1xuICAgIGxlZnQ6IDc1JTtcbiAgfVxuICAuY29sLWxnLXB1c2gtMTAge1xuICAgIGxlZnQ6IDgzLjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctcHVzaC0xMSB7XG4gICAgbGVmdDogOTEuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy1wdXNoLTEyIHtcbiAgICBsZWZ0OiAxMDAlO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMzMzJTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjY2NyU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY2NjclO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzMzMlO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xuICB9XG4gIC5jb2wtbGctb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMzMyU7XG4gIH1cbiAgLmNvbC1sZy1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NjY3JTtcbiAgfVxuICAuY29sLWxnLW9mZnNldC0xMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XG4gIH1cbn1cblxudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuY2FwdGlvbiB7XG4gIHBhZGRpbmctdG9wOiA4cHg7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gIGNvbG9yOiAjOTk5O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG50aCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0aCxcbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0ZCxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0aCxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0ZCxcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0aCxcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0ZCB7XG4gIHBhZGRpbmc6IDhweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDI5O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbn1cblxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRoIHtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNkZGQ7XG59XG5cbi50YWJsZSA+IGNhcHRpb24gKyB0aGVhZCA+IHRyOmZpcnN0LWNoaWxkID4gdGgsXG4udGFibGUgPiBjYXB0aW9uICsgdGhlYWQgPiB0cjpmaXJzdC1jaGlsZCA+IHRkLFxuLnRhYmxlID4gY29sZ3JvdXAgKyB0aGVhZCA+IHRyOmZpcnN0LWNoaWxkID4gdGgsXG4udGFibGUgPiBjb2xncm91cCArIHRoZWFkID4gdHI6Zmlyc3QtY2hpbGQgPiB0ZCxcbi50YWJsZSA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgPiB0aCxcbi50YWJsZSA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgPiB0ZCB7XG4gIGJvcmRlci10b3A6IDA7XG59XG5cbi50YWJsZSA+IHRib2R5ICsgdGJvZHkge1xuICBib3JkZXItdG9wOiAycHggc29saWQgI2RkZDtcbn1cblxuLnRhYmxlIC50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi50YWJsZS1jb25kZW5zZWQgPiB0aGVhZCA+IHRyID4gdGgsXG4udGFibGUtY29uZGVuc2VkID4gdGhlYWQgPiB0ciA+IHRkLFxuLnRhYmxlLWNvbmRlbnNlZCA+IHRib2R5ID4gdHIgPiB0aCxcbi50YWJsZS1jb25kZW5zZWQgPiB0Ym9keSA+IHRyID4gdGQsXG4udGFibGUtY29uZGVuc2VkID4gdGZvb3QgPiB0ciA+IHRoLFxuLnRhYmxlLWNvbmRlbnNlZCA+IHRmb290ID4gdHIgPiB0ZCB7XG4gIHBhZGRpbmc6IDVweDtcbn1cblxuLnRhYmxlLWJvcmRlcmVkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbn1cblxuLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRoLFxuLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRkLFxuLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRoLFxuLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRkLFxuLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRoLFxuLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbn1cblxuLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRoLFxuLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRkIHtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xufVxuXG4udGFibGUtc3RyaXBlZCA+IHRib2R5ID4gdHI6bnRoLW9mLXR5cGUob2RkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG59XG5cbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xufVxuXG50YWJsZSBjb2xbY2xhc3MqPVwiY29sLVwiXSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiB0YWJsZS1jb2x1bW47XG59XG5cbnRhYmxlIHRkW2NsYXNzKj1cImNvbC1cIl0sXG50YWJsZSB0aFtjbGFzcyo9XCJjb2wtXCJdIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgZmxvYXQ6IG5vbmU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG5cbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0ZC5hY3RpdmUsXG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGguYWN0aXZlLFxuLnRhYmxlID4gdGhlYWQgPiB0ci5hY3RpdmUgPiB0ZCxcbi50YWJsZSA+IHRoZWFkID4gdHIuYWN0aXZlID4gdGgsXG4udGFibGUgPiB0Ym9keSA+IHRyID4gdGQuYWN0aXZlLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRoLmFjdGl2ZSxcbi50YWJsZSA+IHRib2R5ID4gdHIuYWN0aXZlID4gdGQsXG4udGFibGUgPiB0Ym9keSA+IHRyLmFjdGl2ZSA+IHRoLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRkLmFjdGl2ZSxcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0aC5hY3RpdmUsXG4udGFibGUgPiB0Zm9vdCA+IHRyLmFjdGl2ZSA+IHRkLFxuLnRhYmxlID4gdGZvb3QgPiB0ci5hY3RpdmUgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG59XG5cbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0ZC5hY3RpdmU6aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyID4gdGguYWN0aXZlOmhvdmVyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci5hY3RpdmU6aG92ZXIgPiB0ZCxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHI6aG92ZXIgPiAuYWN0aXZlLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci5hY3RpdmU6aG92ZXIgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlOGU4ZTg7XG59XG5cbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0ZC5zdWNjZXNzLFxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRoLnN1Y2Nlc3MsXG4udGFibGUgPiB0aGVhZCA+IHRyLnN1Y2Nlc3MgPiB0ZCxcbi50YWJsZSA+IHRoZWFkID4gdHIuc3VjY2VzcyA+IHRoLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRkLnN1Y2Nlc3MsXG4udGFibGUgPiB0Ym9keSA+IHRyID4gdGguc3VjY2Vzcyxcbi50YWJsZSA+IHRib2R5ID4gdHIuc3VjY2VzcyA+IHRkLFxuLnRhYmxlID4gdGJvZHkgPiB0ci5zdWNjZXNzID4gdGgsXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGQuc3VjY2Vzcyxcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0aC5zdWNjZXNzLFxuLnRhYmxlID4gdGZvb3QgPiB0ci5zdWNjZXNzID4gdGQsXG4udGFibGUgPiB0Zm9vdCA+IHRyLnN1Y2Nlc3MgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkYWU2Y2I7XG59XG5cbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0ZC5zdWNjZXNzOmhvdmVyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciA+IHRoLnN1Y2Nlc3M6aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLnN1Y2Nlc3M6aG92ZXIgPiB0ZCxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHI6aG92ZXIgPiAuc3VjY2Vzcyxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIuc3VjY2Vzczpob3ZlciA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NlZGViYTtcbn1cblxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRkLmluZm8sXG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGguaW5mbyxcbi50YWJsZSA+IHRoZWFkID4gdHIuaW5mbyA+IHRkLFxuLnRhYmxlID4gdGhlYWQgPiB0ci5pbmZvID4gdGgsXG4udGFibGUgPiB0Ym9keSA+IHRyID4gdGQuaW5mbyxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0aC5pbmZvLFxuLnRhYmxlID4gdGJvZHkgPiB0ci5pbmZvID4gdGQsXG4udGFibGUgPiB0Ym9keSA+IHRyLmluZm8gPiB0aCxcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0ZC5pbmZvLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRoLmluZm8sXG4udGFibGUgPiB0Zm9vdCA+IHRyLmluZm8gPiB0ZCxcbi50YWJsZSA+IHRmb290ID4gdHIuaW5mbyA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZWRmNztcbn1cblxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciA+IHRkLmluZm86aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyID4gdGguaW5mbzpob3Zlcixcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIuaW5mbzpob3ZlciA+IHRkLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0cjpob3ZlciA+IC5pbmZvLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci5pbmZvOmhvdmVyID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzRlM2YzO1xufVxuXG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGQud2FybmluZyxcbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0aC53YXJuaW5nLFxuLnRhYmxlID4gdGhlYWQgPiB0ci53YXJuaW5nID4gdGQsXG4udGFibGUgPiB0aGVhZCA+IHRyLndhcm5pbmcgPiB0aCxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0ZC53YXJuaW5nLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRoLndhcm5pbmcsXG4udGFibGUgPiB0Ym9keSA+IHRyLndhcm5pbmcgPiB0ZCxcbi50YWJsZSA+IHRib2R5ID4gdHIud2FybmluZyA+IHRoLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRkLndhcm5pbmcsXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGgud2FybmluZyxcbi50YWJsZSA+IHRmb290ID4gdHIud2FybmluZyA+IHRkLFxuLnRhYmxlID4gdGZvb3QgPiB0ci53YXJuaW5nID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFlM2MyO1xufVxuXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyID4gdGQud2FybmluZzpob3Zlcixcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0aC53YXJuaW5nOmhvdmVyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci53YXJuaW5nOmhvdmVyID4gdGQsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyOmhvdmVyID4gLndhcm5pbmcsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLndhcm5pbmc6aG92ZXIgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2Q5YWQ7XG59XG5cbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0ZC5kYW5nZXIsXG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGguZGFuZ2VyLFxuLnRhYmxlID4gdGhlYWQgPiB0ci5kYW5nZXIgPiB0ZCxcbi50YWJsZSA+IHRoZWFkID4gdHIuZGFuZ2VyID4gdGgsXG4udGFibGUgPiB0Ym9keSA+IHRyID4gdGQuZGFuZ2VyLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRoLmRhbmdlcixcbi50YWJsZSA+IHRib2R5ID4gdHIuZGFuZ2VyID4gdGQsXG4udGFibGUgPiB0Ym9keSA+IHRyLmRhbmdlciA+IHRoLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRkLmRhbmdlcixcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0aC5kYW5nZXIsXG4udGFibGUgPiB0Zm9vdCA+IHRyLmRhbmdlciA+IHRkLFxuLnRhYmxlID4gdGZvb3QgPiB0ci5kYW5nZXIgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYWMzYzc7XG59XG5cbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0ZC5kYW5nZXI6aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyID4gdGguZGFuZ2VyOmhvdmVyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci5kYW5nZXI6aG92ZXIgPiB0ZCxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHI6aG92ZXIgPiAuZGFuZ2VyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci5kYW5nZXI6aG92ZXIgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlM2IwYjU7XG59XG5cbi50YWJsZS1yZXNwb25zaXZlIHtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgbWluLWhlaWdodDogMC4wMSU7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC50YWJsZS1yZXNwb25zaXZlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICB9XG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRoLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZSA+IHRoZWFkID4gdHIgPiB0ZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUgPiB0Ym9keSA+IHRyID4gdGgsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZSA+IHRmb290ID4gdHIgPiB0aCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUgPiB0Zm9vdCA+IHRyID4gdGQge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQge1xuICAgIGJvcmRlcjogMDtcbiAgfVxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRoOmZpcnN0LWNoaWxkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXG4gIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRkOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgfVxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0aDpsYXN0LWNoaWxkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0ZDpsYXN0LWNoaWxkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0aDpsYXN0LWNoaWxkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0ZDpsYXN0LWNoaWxkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0aDpsYXN0LWNoaWxkLFxuICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0ZDpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gIH1cbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyOmxhc3QtY2hpbGQgPiB0aCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyOmxhc3QtY2hpbGQgPiB0ZCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyOmxhc3QtY2hpbGQgPiB0aCxcbiAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyOmxhc3QtY2hpbGQgPiB0ZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgfVxufVxuXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiAwO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbmxlZ2VuZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgZm9udC1zaXplOiAyMXB4O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6ICMyMjI7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNWU1ZTU7XG59XG5cbmxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgbWFyZ2luOiA0cHggMCAwO1xuICBtYXJnaW4tdG9wOiAxcHggXFw5O1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG5pbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5pbnB1dFt0eXBlPVwicmFuZ2VcIl0ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG5cbnNlbGVjdFttdWx0aXBsZV0sXG5zZWxlY3Rbc2l6ZV0ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbmlucHV0W3R5cGU9XCJmaWxlXCJdOmZvY3VzLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdOmZvY3VzLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmZvY3VzIHtcbiAgb3V0bGluZTogdGhpbiBkb3R0ZWQ7XG4gIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG59XG5cbm91dHB1dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nLXRvcDogN3B4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQyOTtcbiAgY29sb3I6ICM0NDQ7XG59XG5cbi5mb3JtLWNvbnRyb2wge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzRweDtcbiAgcGFkZGluZzogNnB4IDEycHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDI5O1xuICBjb2xvcjogIzQ0NDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlLWluLW91dCAwLjE1cywgYm94LXNoYWRvdyBlYXNlLWluLW91dCAwLjE1cztcbiAgLW8tdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IDAuMTVzLCBib3gtc2hhZG93IGVhc2UtaW4tb3V0IDAuMTVzO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgMC4xNXMsIGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgMC4xNXM7XG59XG5cbi5mb3JtLWNvbnRyb2w6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICM2NmFmZTk7XG4gIG91dGxpbmU6IDA7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgOHB4IHJnYmEoMTAyLCAxNzUsIDIzMywgMC42KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgOHB4IHJnYmEoMTAyLCAxNzUsIDIzMywgMC42KTtcbn1cblxuLmZvcm0tY29udHJvbDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjOTk5O1xuICBvcGFjaXR5OiAxO1xufVxuXG4uZm9ybS1jb250cm9sOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjOTk5O1xufVxuXG4uZm9ybS1jb250cm9sOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICM5OTk7XG59XG5cbi5mb3JtLWNvbnRyb2xbZGlzYWJsZWRdLFxuLmZvcm0tY29udHJvbFtyZWFkb25seV0sXG5maWVsZHNldFtkaXNhYmxlZF0gLmZvcm0tY29udHJvbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5mb3JtLWNvbnRyb2xbZGlzYWJsZWRdLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5mb3JtLWNvbnRyb2wge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG50ZXh0YXJlYS5mb3JtLWNvbnRyb2wge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDApIHtcbiAgaW5wdXRbdHlwZT1cImRhdGVcIl0uZm9ybS1jb250cm9sLFxuICBpbnB1dFt0eXBlPVwidGltZVwiXS5mb3JtLWNvbnRyb2wsXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXS5mb3JtLWNvbnRyb2wsXG4gIGlucHV0W3R5cGU9XCJtb250aFwiXS5mb3JtLWNvbnRyb2wge1xuICAgIGxpbmUtaGVpZ2h0OiAzNHB4O1xuICB9XG4gIGlucHV0W3R5cGU9XCJkYXRlXCJdLmlucHV0LXNtLFxuICAuaW5wdXQtZ3JvdXAtc20gPiBpbnB1dFt0eXBlPVwiZGF0ZVwiXS5mb3JtLWNvbnRyb2wsXG4gIC5pbnB1dC1ncm91cC1zbSA+IGlucHV0W3R5cGU9XCJkYXRlXCJdLmlucHV0LWdyb3VwLWFkZG9uLFxuICAuaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYnRuID4gaW5wdXRbdHlwZT1cImRhdGVcIl0uYnRuLFxuICAuaW5wdXQtZ3JvdXAtc20gaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4gIGlucHV0W3R5cGU9XCJ0aW1lXCJdLmlucHV0LXNtLFxuICAuaW5wdXQtZ3JvdXAtc20gPiBpbnB1dFt0eXBlPVwidGltZVwiXS5mb3JtLWNvbnRyb2wsXG4gIC5pbnB1dC1ncm91cC1zbSA+IGlucHV0W3R5cGU9XCJ0aW1lXCJdLmlucHV0LWdyb3VwLWFkZG9uLFxuICAuaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYnRuID4gaW5wdXRbdHlwZT1cInRpbWVcIl0uYnRuLFxuICAuaW5wdXQtZ3JvdXAtc20gaW5wdXRbdHlwZT1cInRpbWVcIl0sXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXS5pbnB1dC1zbSxcbiAgLmlucHV0LWdyb3VwLXNtID4gaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLmZvcm0tY29udHJvbCxcbiAgLmlucHV0LWdyb3VwLXNtID4gaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLmlucHV0LWdyb3VwLWFkZG9uLFxuICAuaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYnRuID4gaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLmJ0bixcbiAgLmlucHV0LWdyb3VwLXNtIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbiAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLmlucHV0LXNtLFxuICAuaW5wdXQtZ3JvdXAtc20gPiBpbnB1dFt0eXBlPVwibW9udGhcIl0uZm9ybS1jb250cm9sLFxuICAuaW5wdXQtZ3JvdXAtc20gPiBpbnB1dFt0eXBlPVwibW9udGhcIl0uaW5wdXQtZ3JvdXAtYWRkb24sXG4gIC5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1idG4gPiBpbnB1dFt0eXBlPVwibW9udGhcIl0uYnRuLFxuICAuaW5wdXQtZ3JvdXAtc20gaW5wdXRbdHlwZT1cIm1vbnRoXCJdIHtcbiAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgfVxuICBpbnB1dFt0eXBlPVwiZGF0ZVwiXS5pbnB1dC1sZyxcbiAgLmlucHV0LWdyb3VwLWxnID4gaW5wdXRbdHlwZT1cImRhdGVcIl0uZm9ybS1jb250cm9sLFxuICAuaW5wdXQtZ3JvdXAtbGcgPiBpbnB1dFt0eXBlPVwiZGF0ZVwiXS5pbnB1dC1ncm91cC1hZGRvbixcbiAgLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWJ0biA+IGlucHV0W3R5cGU9XCJkYXRlXCJdLmJ0bixcbiAgLmlucHV0LWdyb3VwLWxnIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuICBpbnB1dFt0eXBlPVwidGltZVwiXS5pbnB1dC1sZyxcbiAgLmlucHV0LWdyb3VwLWxnID4gaW5wdXRbdHlwZT1cInRpbWVcIl0uZm9ybS1jb250cm9sLFxuICAuaW5wdXQtZ3JvdXAtbGcgPiBpbnB1dFt0eXBlPVwidGltZVwiXS5pbnB1dC1ncm91cC1hZGRvbixcbiAgLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWJ0biA+IGlucHV0W3R5cGU9XCJ0aW1lXCJdLmJ0bixcbiAgLmlucHV0LWdyb3VwLWxnIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0uaW5wdXQtbGcsXG4gIC5pbnB1dC1ncm91cC1sZyA+IGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXS5mb3JtLWNvbnRyb2wsXG4gIC5pbnB1dC1ncm91cC1sZyA+IGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXS5pbnB1dC1ncm91cC1hZGRvbixcbiAgLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWJ0biA+IGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXS5idG4sXG4gIC5pbnB1dC1ncm91cC1sZyBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4gIGlucHV0W3R5cGU9XCJtb250aFwiXS5pbnB1dC1sZyxcbiAgLmlucHV0LWdyb3VwLWxnID4gaW5wdXRbdHlwZT1cIm1vbnRoXCJdLmZvcm0tY29udHJvbCxcbiAgLmlucHV0LWdyb3VwLWxnID4gaW5wdXRbdHlwZT1cIm1vbnRoXCJdLmlucHV0LWdyb3VwLWFkZG9uLFxuICAuaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYnRuID4gaW5wdXRbdHlwZT1cIm1vbnRoXCJdLmJ0bixcbiAgLmlucHV0LWdyb3VwLWxnIGlucHV0W3R5cGU9XCJtb250aFwiXSB7XG4gICAgbGluZS1oZWlnaHQ6IDQ2cHg7XG4gIH1cbn1cblxuLmZvcm0tZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xufVxuXG4ucmFkaW8sXG4uY2hlY2tib3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4ucmFkaW8gbGFiZWwsXG4uY2hlY2tib3ggbGFiZWwge1xuICBtaW4taGVpZ2h0OiAyMHB4O1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbi5yYWRpby1pbmxpbmUgaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuLmNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbi5jaGVja2JveC1pbmxpbmUgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gIG1hcmdpbi10b3A6IDRweCBcXDk7XG59XG5cbi5yYWRpbyArIC5yYWRpbyxcbi5jaGVja2JveCArIC5jaGVja2JveCB7XG4gIG1hcmdpbi10b3A6IC01cHg7XG59XG5cbi5yYWRpby1pbmxpbmUsXG4uY2hlY2tib3gtaW5saW5lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ucmFkaW8taW5saW5lICsgLnJhZGlvLWlubGluZSxcbi5jaGVja2JveC1pbmxpbmUgKyAuY2hlY2tib3gtaW5saW5lIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbmlucHV0W3R5cGU9XCJyYWRpb1wiXVtkaXNhYmxlZF0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0uZGlzYWJsZWQsXG5maWVsZHNldFtkaXNhYmxlZF0gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdW2Rpc2FibGVkXSxcbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXS5kaXNhYmxlZCxcbmZpZWxkc2V0W2Rpc2FibGVkXSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4ucmFkaW8taW5saW5lLmRpc2FibGVkLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5yYWRpby1pbmxpbmUsXG4uY2hlY2tib3gtaW5saW5lLmRpc2FibGVkLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5jaGVja2JveC1pbmxpbmUge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4ucmFkaW8uZGlzYWJsZWQgbGFiZWwsXG5maWVsZHNldFtkaXNhYmxlZF0gLnJhZGlvIGxhYmVsLFxuLmNoZWNrYm94LmRpc2FibGVkIGxhYmVsLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5jaGVja2JveCBsYWJlbCB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5mb3JtLWNvbnRyb2wtc3RhdGljIHtcbiAgcGFkZGluZy10b3A6IDdweDtcbiAgcGFkZGluZy1ib3R0b206IDdweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbWluLWhlaWdodDogMzRweDtcbn1cblxuLmZvcm0tY29udHJvbC1zdGF0aWMuaW5wdXQtbGcsXG4uaW5wdXQtZ3JvdXAtbGcgPiAuZm9ybS1jb250cm9sLXN0YXRpYy5mb3JtLWNvbnRyb2wsXG4uaW5wdXQtZ3JvdXAtbGcgPiAuZm9ybS1jb250cm9sLXN0YXRpYy5pbnB1dC1ncm91cC1hZGRvbixcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1idG4gPiAuZm9ybS1jb250cm9sLXN0YXRpYy5idG4sXG4uZm9ybS1jb250cm9sLXN0YXRpYy5pbnB1dC1zbSwgLmlucHV0LWdyb3VwLXNtID4gLmZvcm0tY29udHJvbC1zdGF0aWMuZm9ybS1jb250cm9sLFxuLmlucHV0LWdyb3VwLXNtID4gLmZvcm0tY29udHJvbC1zdGF0aWMuaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmZvcm0tY29udHJvbC1zdGF0aWMuYnRuIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuXG4uaW5wdXQtc20sIC5pbnB1dC1ncm91cC1zbSA+IC5mb3JtLWNvbnRyb2wsXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biB7XG4gIGhlaWdodDogMzBweDtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuXG5zZWxlY3QuaW5wdXQtc20sIC5pbnB1dC1ncm91cC1zbSA+IHNlbGVjdC5mb3JtLWNvbnRyb2wsXG4uaW5wdXQtZ3JvdXAtc20gPiBzZWxlY3QuaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYnRuID4gc2VsZWN0LmJ0biB7XG4gIGhlaWdodDogMzBweDtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG59XG5cbnRleHRhcmVhLmlucHV0LXNtLFxuLmlucHV0LWdyb3VwLXNtID4gdGV4dGFyZWEuZm9ybS1jb250cm9sLFxuLmlucHV0LWdyb3VwLXNtID4gdGV4dGFyZWEuaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYnRuID4gdGV4dGFyZWEuYnRuLFxuc2VsZWN0W211bHRpcGxlXS5pbnB1dC1zbSwgLmlucHV0LWdyb3VwLXNtID4gc2VsZWN0W211bHRpcGxlXS5mb3JtLWNvbnRyb2wsXG4uaW5wdXQtZ3JvdXAtc20gPiBzZWxlY3RbbXVsdGlwbGVdLmlucHV0LWdyb3VwLWFkZG9uLFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWJ0biA+IHNlbGVjdFttdWx0aXBsZV0uYnRuIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uZm9ybS1ncm91cC1zbSAuZm9ybS1jb250cm9sIHtcbiAgaGVpZ2h0OiAzMHB4O1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMS41O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG5cbi5mb3JtLWdyb3VwLXNtIHNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICBoZWlnaHQ6IDMwcHg7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xufVxuXG4uZm9ybS1ncm91cC1zbSB0ZXh0YXJlYS5mb3JtLWNvbnRyb2wsXG4uZm9ybS1ncm91cC1zbSBzZWxlY3RbbXVsdGlwbGVdLmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLmZvcm0tZ3JvdXAtc20gLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICBoZWlnaHQ6IDMwcHg7XG4gIG1pbi1oZWlnaHQ6IDMycHg7XG4gIHBhZGRpbmc6IDZweCAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi5pbnB1dC1sZywgLmlucHV0LWdyb3VwLWxnID4gLmZvcm0tY29udHJvbCxcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1hZGRvbixcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1idG4gPiAuYnRuIHtcbiAgaGVpZ2h0OiA0NnB4O1xuICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzMzMzMztcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuXG5zZWxlY3QuaW5wdXQtbGcsIC5pbnB1dC1ncm91cC1sZyA+IHNlbGVjdC5mb3JtLWNvbnRyb2wsXG4uaW5wdXQtZ3JvdXAtbGcgPiBzZWxlY3QuaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYnRuID4gc2VsZWN0LmJ0biB7XG4gIGhlaWdodDogNDZweDtcbiAgbGluZS1oZWlnaHQ6IDQ2cHg7XG59XG5cbnRleHRhcmVhLmlucHV0LWxnLFxuLmlucHV0LWdyb3VwLWxnID4gdGV4dGFyZWEuZm9ybS1jb250cm9sLFxuLmlucHV0LWdyb3VwLWxnID4gdGV4dGFyZWEuaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYnRuID4gdGV4dGFyZWEuYnRuLFxuc2VsZWN0W211bHRpcGxlXS5pbnB1dC1sZywgLmlucHV0LWdyb3VwLWxnID4gc2VsZWN0W211bHRpcGxlXS5mb3JtLWNvbnRyb2wsXG4uaW5wdXQtZ3JvdXAtbGcgPiBzZWxlY3RbbXVsdGlwbGVdLmlucHV0LWdyb3VwLWFkZG9uLFxuLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWJ0biA+IHNlbGVjdFttdWx0aXBsZV0uYnRuIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uZm9ybS1ncm91cC1sZyAuZm9ybS1jb250cm9sIHtcbiAgaGVpZ2h0OiA0NnB4O1xuICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzMzMzMztcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuXG4uZm9ybS1ncm91cC1sZyBzZWxlY3QuZm9ybS1jb250cm9sIHtcbiAgaGVpZ2h0OiA0NnB4O1xuICBsaW5lLWhlaWdodDogNDZweDtcbn1cblxuLmZvcm0tZ3JvdXAtbGcgdGV4dGFyZWEuZm9ybS1jb250cm9sLFxuLmZvcm0tZ3JvdXAtbGcgc2VsZWN0W211bHRpcGxlXS5mb3JtLWNvbnRyb2wge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi5mb3JtLWdyb3VwLWxnIC5mb3JtLWNvbnRyb2wtc3RhdGljIHtcbiAgaGVpZ2h0OiA0NnB4O1xuICBtaW4taGVpZ2h0OiAzOHB4O1xuICBwYWRkaW5nOiAxMXB4IDE2cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzMzMzMztcbn1cblxuLmhhcy1mZWVkYmFjayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmhhcy1mZWVkYmFjayAuZm9ybS1jb250cm9sIHtcbiAgcGFkZGluZy1yaWdodDogNDIuNXB4O1xufVxuXG4uZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiAyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDM0cHg7XG4gIGhlaWdodDogMzRweDtcbiAgbGluZS1oZWlnaHQ6IDM0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5pbnB1dC1sZyArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssXG4uaW5wdXQtZ3JvdXAtbGcgPiAuZm9ybS1jb250cm9sICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayxcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1hZGRvbiArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssXG4uaW5wdXQtZ3JvdXAtbGcgKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrLFxuLmZvcm0tZ3JvdXAtbGcgLmZvcm0tY29udHJvbCArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICB3aWR0aDogNDZweDtcbiAgaGVpZ2h0OiA0NnB4O1xuICBsaW5lLWhlaWdodDogNDZweDtcbn1cblxuLmlucHV0LXNtICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayxcbi5pbnB1dC1ncm91cC1zbSA+IC5mb3JtLWNvbnRyb2wgKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrLFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWFkZG9uICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayxcbi5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1idG4gPiAuYnRuICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayxcbi5pbnB1dC1ncm91cC1zbSArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssXG4uZm9ybS1ncm91cC1zbSAuZm9ybS1jb250cm9sICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xufVxuXG4uaGFzLXN1Y2Nlc3MgLmhlbHAtYmxvY2ssXG4uaGFzLXN1Y2Nlc3MgLmNvbnRyb2wtbGFiZWwsXG4uaGFzLXN1Y2Nlc3MgLnJhZGlvLFxuLmhhcy1zdWNjZXNzIC5jaGVja2JveCxcbi5oYXMtc3VjY2VzcyAucmFkaW8taW5saW5lLFxuLmhhcy1zdWNjZXNzIC5jaGVja2JveC1pbmxpbmUsXG4uaGFzLXN1Y2Nlc3MucmFkaW8gbGFiZWwsXG4uaGFzLXN1Y2Nlc3MuY2hlY2tib3ggbGFiZWwsXG4uaGFzLXN1Y2Nlc3MucmFkaW8taW5saW5lIGxhYmVsLFxuLmhhcy1zdWNjZXNzLmNoZWNrYm94LWlubGluZSBsYWJlbCB7XG4gIGNvbG9yOiAjNmM2YzZjO1xufVxuXG4uaGFzLXN1Y2Nlc3MgLmZvcm0tY29udHJvbCB7XG4gIGJvcmRlci1jb2xvcjogIzZjNmM2YztcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbn1cblxuLmhhcy1zdWNjZXNzIC5mb3JtLWNvbnRyb2w6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICM1MjUyNTI7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgNnB4ICM5ZjlmOWY7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwgMCAwIDZweCAjOWY5ZjlmO1xufVxuXG4uaGFzLXN1Y2Nlc3MgLmlucHV0LWdyb3VwLWFkZG9uIHtcbiAgY29sb3I6ICM2YzZjNmM7XG4gIGJvcmRlci1jb2xvcjogIzZjNmM2YztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RhZTZjYjtcbn1cblxuLmhhcy1zdWNjZXNzIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICBjb2xvcjogIzZjNmM2Yztcbn1cblxuLmhhcy13YXJuaW5nIC5oZWxwLWJsb2NrLFxuLmhhcy13YXJuaW5nIC5jb250cm9sLWxhYmVsLFxuLmhhcy13YXJuaW5nIC5yYWRpbyxcbi5oYXMtd2FybmluZyAuY2hlY2tib3gsXG4uaGFzLXdhcm5pbmcgLnJhZGlvLWlubGluZSxcbi5oYXMtd2FybmluZyAuY2hlY2tib3gtaW5saW5lLFxuLmhhcy13YXJuaW5nLnJhZGlvIGxhYmVsLFxuLmhhcy13YXJuaW5nLmNoZWNrYm94IGxhYmVsLFxuLmhhcy13YXJuaW5nLnJhZGlvLWlubGluZSBsYWJlbCxcbi5oYXMtd2FybmluZy5jaGVja2JveC1pbmxpbmUgbGFiZWwge1xuICBjb2xvcjogIzZjNmM2Yztcbn1cblxuLmhhcy13YXJuaW5nIC5mb3JtLWNvbnRyb2wge1xuICBib3JkZXItY29sb3I6ICM2YzZjNmM7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG59XG5cbi5oYXMtd2FybmluZyAuZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjNTI1MjUyO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwgMCAwIDZweCAjOWY5ZjlmO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA2cHggIzlmOWY5Zjtcbn1cblxuLmhhcy13YXJuaW5nIC5pbnB1dC1ncm91cC1hZGRvbiB7XG4gIGNvbG9yOiAjNmM2YzZjO1xuICBib3JkZXItY29sb3I6ICM2YzZjNmM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWUzYzI7XG59XG5cbi5oYXMtd2FybmluZyAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgY29sb3I6ICM2YzZjNmM7XG59XG5cbi5oYXMtZXJyb3IgLmhlbHAtYmxvY2ssXG4uaGFzLWVycm9yIC5jb250cm9sLWxhYmVsLFxuLmhhcy1lcnJvciAucmFkaW8sXG4uaGFzLWVycm9yIC5jaGVja2JveCxcbi5oYXMtZXJyb3IgLnJhZGlvLWlubGluZSxcbi5oYXMtZXJyb3IgLmNoZWNrYm94LWlubGluZSxcbi5oYXMtZXJyb3IucmFkaW8gbGFiZWwsXG4uaGFzLWVycm9yLmNoZWNrYm94IGxhYmVsLFxuLmhhcy1lcnJvci5yYWRpby1pbmxpbmUgbGFiZWwsXG4uaGFzLWVycm9yLmNoZWNrYm94LWlubGluZSBsYWJlbCB7XG4gIGNvbG9yOiAjNmM2YzZjO1xufVxuXG4uaGFzLWVycm9yIC5mb3JtLWNvbnRyb2wge1xuICBib3JkZXItY29sb3I6ICM2YzZjNmM7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG59XG5cbi5oYXMtZXJyb3IgLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzUyNTI1MjtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA2cHggIzlmOWY5ZjtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgNnB4ICM5ZjlmOWY7XG59XG5cbi5oYXMtZXJyb3IgLmlucHV0LWdyb3VwLWFkZG9uIHtcbiAgY29sb3I6ICM2YzZjNmM7XG4gIGJvcmRlci1jb2xvcjogIzZjNmM2YztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VhYzNjNztcbn1cblxuLmhhcy1lcnJvciAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgY29sb3I6ICM2YzZjNmM7XG59XG5cbi5oYXMtZmVlZGJhY2sgbGFiZWwgfiAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgdG9wOiAyNXB4O1xufVxuXG4uaGFzLWZlZWRiYWNrIGxhYmVsLnNyLW9ubHkgfiAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgdG9wOiAwO1xufVxuXG4uaGVscC1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGNvbG9yOiAjNjI2MjYyO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmZvcm0taW5saW5lIC5mb3JtLWdyb3VwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5mb3JtLWlubGluZSAuZm9ybS1jb250cm9sIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAuZm9ybS1pbmxpbmUgLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuICAuZm9ybS1pbmxpbmUgLmlucHV0LWdyb3VwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAuZm9ybS1pbmxpbmUgLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1hZGRvbixcbiAgLmZvcm0taW5saW5lIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnRuLFxuICAuZm9ybS1pbmxpbmUgLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2wge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG4gIC5mb3JtLWlubGluZSAuaW5wdXQtZ3JvdXAgPiAuZm9ybS1jb250cm9sIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuZm9ybS1pbmxpbmUgLmNvbnRyb2wtbGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAuZm9ybS1pbmxpbmUgLnJhZGlvLFxuICAuZm9ybS1pbmxpbmUgLmNoZWNrYm94IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbiAgLmZvcm0taW5saW5lIC5yYWRpbyBsYWJlbCxcbiAgLmZvcm0taW5saW5lIC5jaGVja2JveCBsYWJlbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG4gIC5mb3JtLWlubGluZSAucmFkaW8gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuICAuZm9ybS1pbmxpbmUgLmNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIC5mb3JtLWlubGluZSAuaGFzLWZlZWRiYWNrIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICAgIHRvcDogMDtcbiAgfVxufVxuXG4uZm9ybS1ob3Jpem9udGFsIC5yYWRpbyxcbi5mb3JtLWhvcml6b250YWwgLmNoZWNrYm94LFxuLmZvcm0taG9yaXpvbnRhbCAucmFkaW8taW5saW5lLFxuLmZvcm0taG9yaXpvbnRhbCAuY2hlY2tib3gtaW5saW5lIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZy10b3A6IDdweDtcbn1cblxuLmZvcm0taG9yaXpvbnRhbCAucmFkaW8sXG4uZm9ybS1ob3Jpem9udGFsIC5jaGVja2JveCB7XG4gIG1pbi1oZWlnaHQ6IDI3cHg7XG59XG5cbi5mb3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXAge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4uZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwOmJlZm9yZSxcbi5mb3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXA6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi5mb3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXA6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5mb3JtLWhvcml6b250YWwgLmNvbnRyb2wtbGFiZWwge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcGFkZGluZy10b3A6IDdweDtcbiAgfVxufVxuXG4uZm9ybS1ob3Jpem9udGFsIC5oYXMtZmVlZGJhY2sgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gIHJpZ2h0OiAwO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmZvcm0taG9yaXpvbnRhbCAuZm9ybS1ncm91cC1sZyAuY29udHJvbC1sYWJlbCB7XG4gICAgcGFkZGluZy10b3A6IDE0LjMzMzMzM3B4O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmZvcm0taG9yaXpvbnRhbCAuZm9ybS1ncm91cC1zbSAuY29udHJvbC1sYWJlbCB7XG4gICAgcGFkZGluZy10b3A6IDZweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gIH1cbn1cblxuLmJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgcGFkZGluZzogNnB4IDEycHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDI5O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5idG46Zm9jdXMsXG4uYnRuLmZvY3VzLFxuLmJ0bjphY3RpdmU6Zm9jdXMsXG4uYnRuOmFjdGl2ZS5mb2N1cyxcbi5idG4uYWN0aXZlOmZvY3VzLFxuLmJ0bi5hY3RpdmUuZm9jdXMge1xuICBvdXRsaW5lOiB0aGluIGRvdHRlZDtcbiAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cblxuLmJ0bjpob3Zlcixcbi5idG46Zm9jdXMsXG4uYnRuLmZvY3VzIHtcbiAgY29sb3I6ICM0NDQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmJ0bjphY3RpdmUsXG4uYnRuLmFjdGl2ZSB7XG4gIG91dGxpbmU6IDA7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAzcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMjUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDNweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyNSk7XG59XG5cbi5idG4uZGlzYWJsZWQsXG4uYnRuW2Rpc2FibGVkXSxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgb3BhY2l0eTogMC42NTtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTY1KTtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG5hLmJ0bi5kaXNhYmxlZCxcbmZpZWxkc2V0W2Rpc2FibGVkXSBhLmJ0biB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uYnRuLWRlZmF1bHQge1xuICBjb2xvcjogIzQ0NDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjY2NjO1xufVxuXG4uYnRuLWRlZmF1bHQ6Zm9jdXMsXG4uYnRuLWRlZmF1bHQuZm9jdXMge1xuICBjb2xvcjogIzQ0NDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgYm9yZGVyLWNvbG9yOiAjOGM4YzhjO1xufVxuXG4uYnRuLWRlZmF1bHQ6aG92ZXIge1xuICBjb2xvcjogIzQ0NDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgYm9yZGVyLWNvbG9yOiAjYWRhZGFkO1xufVxuXG4uYnRuLWRlZmF1bHQ6YWN0aXZlLFxuLmJ0bi1kZWZhdWx0LmFjdGl2ZSxcbi5vcGVuID4gLmJ0bi1kZWZhdWx0LmRyb3Bkb3duLXRvZ2dsZSB7XG4gIGNvbG9yOiAjNDQ0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBib3JkZXItY29sb3I6ICNhZGFkYWQ7XG59XG5cbi5idG4tZGVmYXVsdDphY3RpdmU6aG92ZXIsXG4uYnRuLWRlZmF1bHQ6YWN0aXZlOmZvY3VzLFxuLmJ0bi1kZWZhdWx0OmFjdGl2ZS5mb2N1cyxcbi5idG4tZGVmYXVsdC5hY3RpdmU6aG92ZXIsXG4uYnRuLWRlZmF1bHQuYWN0aXZlOmZvY3VzLFxuLmJ0bi1kZWZhdWx0LmFjdGl2ZS5mb2N1cyxcbi5vcGVuID4gLmJ0bi1kZWZhdWx0LmRyb3Bkb3duLXRvZ2dsZTpob3Zlcixcbi5vcGVuID4gLmJ0bi1kZWZhdWx0LmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyxcbi5vcGVuID4gLmJ0bi1kZWZhdWx0LmRyb3Bkb3duLXRvZ2dsZS5mb2N1cyB7XG4gIGNvbG9yOiAjNDQ0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDRkNGQ0O1xuICBib3JkZXItY29sb3I6ICM4YzhjOGM7XG59XG5cbi5idG4tZGVmYXVsdDphY3RpdmUsXG4uYnRuLWRlZmF1bHQuYWN0aXZlLFxuLm9wZW4gPiAuYnRuLWRlZmF1bHQuZHJvcGRvd24tdG9nZ2xlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cblxuLmJ0bi1kZWZhdWx0LmRpc2FibGVkLFxuLmJ0bi1kZWZhdWx0LmRpc2FibGVkOmhvdmVyLFxuLmJ0bi1kZWZhdWx0LmRpc2FibGVkOmZvY3VzLFxuLmJ0bi1kZWZhdWx0LmRpc2FibGVkLmZvY3VzLFxuLmJ0bi1kZWZhdWx0LmRpc2FibGVkOmFjdGl2ZSxcbi5idG4tZGVmYXVsdC5kaXNhYmxlZC5hY3RpdmUsXG4uYnRuLWRlZmF1bHRbZGlzYWJsZWRdLFxuLmJ0bi1kZWZhdWx0W2Rpc2FibGVkXTpob3Zlcixcbi5idG4tZGVmYXVsdFtkaXNhYmxlZF06Zm9jdXMsXG4uYnRuLWRlZmF1bHRbZGlzYWJsZWRdLmZvY3VzLFxuLmJ0bi1kZWZhdWx0W2Rpc2FibGVkXTphY3RpdmUsXG4uYnRuLWRlZmF1bHRbZGlzYWJsZWRdLmFjdGl2ZSxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRlZmF1bHQsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kZWZhdWx0OmhvdmVyLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGVmYXVsdDpmb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRlZmF1bHQuZm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kZWZhdWx0OmFjdGl2ZSxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRlZmF1bHQuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjY2NjO1xufVxuXG4uYnRuLWRlZmF1bHQgLmJhZGdlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7XG59XG5cbi5idG4tcHJpbWFyeSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2EzOTNiO1xuICBib3JkZXItY29sb3I6ICMzYTM5M2I7XG59XG5cbi5idG4tcHJpbWFyeTpmb2N1cyxcbi5idG4tcHJpbWFyeS5mb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMDIxO1xuICBib3JkZXItY29sb3I6IGJsYWNrO1xufVxuXG4uYnRuLXByaW1hcnk6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxMjAyMTtcbiAgYm9yZGVyLWNvbG9yOiAjMWIxYjFjO1xufVxuXG4uYnRuLXByaW1hcnk6YWN0aXZlLFxuLmJ0bi1wcmltYXJ5LmFjdGl2ZSxcbi5vcGVuID4gLmJ0bi1wcmltYXJ5LmRyb3Bkb3duLXRvZ2dsZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMDIxO1xuICBib3JkZXItY29sb3I6ICMxYjFiMWM7XG59XG5cbi5idG4tcHJpbWFyeTphY3RpdmU6aG92ZXIsXG4uYnRuLXByaW1hcnk6YWN0aXZlOmZvY3VzLFxuLmJ0bi1wcmltYXJ5OmFjdGl2ZS5mb2N1cyxcbi5idG4tcHJpbWFyeS5hY3RpdmU6aG92ZXIsXG4uYnRuLXByaW1hcnkuYWN0aXZlOmZvY3VzLFxuLmJ0bi1wcmltYXJ5LmFjdGl2ZS5mb2N1cyxcbi5vcGVuID4gLmJ0bi1wcmltYXJ5LmRyb3Bkb3duLXRvZ2dsZTpob3Zlcixcbi5vcGVuID4gLmJ0bi1wcmltYXJ5LmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyxcbi5vcGVuID4gLmJ0bi1wcmltYXJ5LmRyb3Bkb3duLXRvZ2dsZS5mb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwZTBmO1xuICBib3JkZXItY29sb3I6IGJsYWNrO1xufVxuXG4uYnRuLXByaW1hcnk6YWN0aXZlLFxuLmJ0bi1wcmltYXJ5LmFjdGl2ZSxcbi5vcGVuID4gLmJ0bi1wcmltYXJ5LmRyb3Bkb3duLXRvZ2dsZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG5cbi5idG4tcHJpbWFyeS5kaXNhYmxlZCxcbi5idG4tcHJpbWFyeS5kaXNhYmxlZDpob3Zlcixcbi5idG4tcHJpbWFyeS5kaXNhYmxlZDpmb2N1cyxcbi5idG4tcHJpbWFyeS5kaXNhYmxlZC5mb2N1cyxcbi5idG4tcHJpbWFyeS5kaXNhYmxlZDphY3RpdmUsXG4uYnRuLXByaW1hcnkuZGlzYWJsZWQuYWN0aXZlLFxuLmJ0bi1wcmltYXJ5W2Rpc2FibGVkXSxcbi5idG4tcHJpbWFyeVtkaXNhYmxlZF06aG92ZXIsXG4uYnRuLXByaW1hcnlbZGlzYWJsZWRdOmZvY3VzLFxuLmJ0bi1wcmltYXJ5W2Rpc2FibGVkXS5mb2N1cyxcbi5idG4tcHJpbWFyeVtkaXNhYmxlZF06YWN0aXZlLFxuLmJ0bi1wcmltYXJ5W2Rpc2FibGVkXS5hY3RpdmUsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1wcmltYXJ5LFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tcHJpbWFyeTpob3ZlcixcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXByaW1hcnk6Zm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1wcmltYXJ5LmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tcHJpbWFyeTphY3RpdmUsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1wcmltYXJ5LmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYTM5M2I7XG4gIGJvcmRlci1jb2xvcjogIzNhMzkzYjtcbn1cblxuLmJ0bi1wcmltYXJ5IC5iYWRnZSB7XG4gIGNvbG9yOiAjM2EzOTNiO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4uYnRuLXN1Y2Nlc3Mge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVjYjg1YztcbiAgYm9yZGVyLWNvbG9yOiAjNWNiODVjO1xufVxuXG4uYnRuLXN1Y2Nlc3M6Zm9jdXMsXG4uYnRuLXN1Y2Nlc3MuZm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OWQ0NDtcbiAgYm9yZGVyLWNvbG9yOiAjMmQ2NzJkO1xufVxuXG4uYnRuLXN1Y2Nlc3M6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OWQ0NDtcbiAgYm9yZGVyLWNvbG9yOiAjNDE5NjQxO1xufVxuXG4uYnRuLXN1Y2Nlc3M6YWN0aXZlLFxuLmJ0bi1zdWNjZXNzLmFjdGl2ZSxcbi5vcGVuID4gLmJ0bi1zdWNjZXNzLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ5ZDQ0O1xuICBib3JkZXItY29sb3I6ICM0MTk2NDE7XG59XG5cbi5idG4tc3VjY2VzczphY3RpdmU6aG92ZXIsXG4uYnRuLXN1Y2Nlc3M6YWN0aXZlOmZvY3VzLFxuLmJ0bi1zdWNjZXNzOmFjdGl2ZS5mb2N1cyxcbi5idG4tc3VjY2Vzcy5hY3RpdmU6aG92ZXIsXG4uYnRuLXN1Y2Nlc3MuYWN0aXZlOmZvY3VzLFxuLmJ0bi1zdWNjZXNzLmFjdGl2ZS5mb2N1cyxcbi5vcGVuID4gLmJ0bi1zdWNjZXNzLmRyb3Bkb3duLXRvZ2dsZTpob3Zlcixcbi5vcGVuID4gLmJ0bi1zdWNjZXNzLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyxcbi5vcGVuID4gLmJ0bi1zdWNjZXNzLmRyb3Bkb3duLXRvZ2dsZS5mb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzk4NDM5O1xuICBib3JkZXItY29sb3I6ICMyZDY3MmQ7XG59XG5cbi5idG4tc3VjY2VzczphY3RpdmUsXG4uYnRuLXN1Y2Nlc3MuYWN0aXZlLFxuLm9wZW4gPiAuYnRuLXN1Y2Nlc3MuZHJvcGRvd24tdG9nZ2xlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cblxuLmJ0bi1zdWNjZXNzLmRpc2FibGVkLFxuLmJ0bi1zdWNjZXNzLmRpc2FibGVkOmhvdmVyLFxuLmJ0bi1zdWNjZXNzLmRpc2FibGVkOmZvY3VzLFxuLmJ0bi1zdWNjZXNzLmRpc2FibGVkLmZvY3VzLFxuLmJ0bi1zdWNjZXNzLmRpc2FibGVkOmFjdGl2ZSxcbi5idG4tc3VjY2Vzcy5kaXNhYmxlZC5hY3RpdmUsXG4uYnRuLXN1Y2Nlc3NbZGlzYWJsZWRdLFxuLmJ0bi1zdWNjZXNzW2Rpc2FibGVkXTpob3Zlcixcbi5idG4tc3VjY2Vzc1tkaXNhYmxlZF06Zm9jdXMsXG4uYnRuLXN1Y2Nlc3NbZGlzYWJsZWRdLmZvY3VzLFxuLmJ0bi1zdWNjZXNzW2Rpc2FibGVkXTphY3RpdmUsXG4uYnRuLXN1Y2Nlc3NbZGlzYWJsZWRdLmFjdGl2ZSxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXN1Y2Nlc3MsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1zdWNjZXNzOmhvdmVyLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tc3VjY2Vzczpmb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXN1Y2Nlc3MuZm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1zdWNjZXNzOmFjdGl2ZSxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXN1Y2Nlc3MuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVjYjg1YztcbiAgYm9yZGVyLWNvbG9yOiAjNWNiODVjO1xufVxuXG4uYnRuLXN1Y2Nlc3MgLmJhZGdlIHtcbiAgY29sb3I6ICM1Y2I4NWM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5idG4taW5mbyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWJjMGRlO1xuICBib3JkZXItY29sb3I6ICM1YmMwZGU7XG59XG5cbi5idG4taW5mbzpmb2N1cyxcbi5idG4taW5mby5mb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzFiMGQ1O1xuICBib3JkZXItY29sb3I6ICMxZjdlOWE7XG59XG5cbi5idG4taW5mbzpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzFiMGQ1O1xuICBib3JkZXItY29sb3I6ICMyYWFiZDI7XG59XG5cbi5idG4taW5mbzphY3RpdmUsXG4uYnRuLWluZm8uYWN0aXZlLFxuLm9wZW4gPiAuYnRuLWluZm8uZHJvcGRvd24tdG9nZ2xlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMWIwZDU7XG4gIGJvcmRlci1jb2xvcjogIzJhYWJkMjtcbn1cblxuLmJ0bi1pbmZvOmFjdGl2ZTpob3Zlcixcbi5idG4taW5mbzphY3RpdmU6Zm9jdXMsXG4uYnRuLWluZm86YWN0aXZlLmZvY3VzLFxuLmJ0bi1pbmZvLmFjdGl2ZTpob3Zlcixcbi5idG4taW5mby5hY3RpdmU6Zm9jdXMsXG4uYnRuLWluZm8uYWN0aXZlLmZvY3VzLFxuLm9wZW4gPiAuYnRuLWluZm8uZHJvcGRvd24tdG9nZ2xlOmhvdmVyLFxuLm9wZW4gPiAuYnRuLWluZm8uZHJvcGRvd24tdG9nZ2xlOmZvY3VzLFxuLm9wZW4gPiAuYnRuLWluZm8uZHJvcGRvd24tdG9nZ2xlLmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNjlhYmM7XG4gIGJvcmRlci1jb2xvcjogIzFmN2U5YTtcbn1cblxuLmJ0bi1pbmZvOmFjdGl2ZSxcbi5idG4taW5mby5hY3RpdmUsXG4ub3BlbiA+IC5idG4taW5mby5kcm9wZG93bi10b2dnbGUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuXG4uYnRuLWluZm8uZGlzYWJsZWQsXG4uYnRuLWluZm8uZGlzYWJsZWQ6aG92ZXIsXG4uYnRuLWluZm8uZGlzYWJsZWQ6Zm9jdXMsXG4uYnRuLWluZm8uZGlzYWJsZWQuZm9jdXMsXG4uYnRuLWluZm8uZGlzYWJsZWQ6YWN0aXZlLFxuLmJ0bi1pbmZvLmRpc2FibGVkLmFjdGl2ZSxcbi5idG4taW5mb1tkaXNhYmxlZF0sXG4uYnRuLWluZm9bZGlzYWJsZWRdOmhvdmVyLFxuLmJ0bi1pbmZvW2Rpc2FibGVkXTpmb2N1cyxcbi5idG4taW5mb1tkaXNhYmxlZF0uZm9jdXMsXG4uYnRuLWluZm9bZGlzYWJsZWRdOmFjdGl2ZSxcbi5idG4taW5mb1tkaXNhYmxlZF0uYWN0aXZlLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4taW5mbyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWluZm86aG92ZXIsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1pbmZvOmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4taW5mby5mb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWluZm86YWN0aXZlLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4taW5mby5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWJjMGRlO1xuICBib3JkZXItY29sb3I6ICM1YmMwZGU7XG59XG5cbi5idG4taW5mbyAuYmFkZ2Uge1xuICBjb2xvcjogIzViYzBkZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuLmJ0bi13YXJuaW5nIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGFkNGU7XG4gIGJvcmRlci1jb2xvcjogI2YwYWQ0ZTtcbn1cblxuLmJ0bi13YXJuaW5nOmZvY3VzLFxuLmJ0bi13YXJuaW5nLmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYzk3MWY7XG4gIGJvcmRlci1jb2xvcjogI2IwNmQwZjtcbn1cblxuLmJ0bi13YXJuaW5nOmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYzk3MWY7XG4gIGJvcmRlci1jb2xvcjogI2ViOTMxNjtcbn1cblxuLmJ0bi13YXJuaW5nOmFjdGl2ZSxcbi5idG4td2FybmluZy5hY3RpdmUsXG4ub3BlbiA+IC5idG4td2FybmluZy5kcm9wZG93bi10b2dnbGUge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjOTcxZjtcbiAgYm9yZGVyLWNvbG9yOiAjZWI5MzE2O1xufVxuXG4uYnRuLXdhcm5pbmc6YWN0aXZlOmhvdmVyLFxuLmJ0bi13YXJuaW5nOmFjdGl2ZTpmb2N1cyxcbi5idG4td2FybmluZzphY3RpdmUuZm9jdXMsXG4uYnRuLXdhcm5pbmcuYWN0aXZlOmhvdmVyLFxuLmJ0bi13YXJuaW5nLmFjdGl2ZTpmb2N1cyxcbi5idG4td2FybmluZy5hY3RpdmUuZm9jdXMsXG4ub3BlbiA+IC5idG4td2FybmluZy5kcm9wZG93bi10b2dnbGU6aG92ZXIsXG4ub3BlbiA+IC5idG4td2FybmluZy5kcm9wZG93bi10b2dnbGU6Zm9jdXMsXG4ub3BlbiA+IC5idG4td2FybmluZy5kcm9wZG93bi10b2dnbGUuZm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q1ODUxMjtcbiAgYm9yZGVyLWNvbG9yOiAjYjA2ZDBmO1xufVxuXG4uYnRuLXdhcm5pbmc6YWN0aXZlLFxuLmJ0bi13YXJuaW5nLmFjdGl2ZSxcbi5vcGVuID4gLmJ0bi13YXJuaW5nLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG5cbi5idG4td2FybmluZy5kaXNhYmxlZCxcbi5idG4td2FybmluZy5kaXNhYmxlZDpob3Zlcixcbi5idG4td2FybmluZy5kaXNhYmxlZDpmb2N1cyxcbi5idG4td2FybmluZy5kaXNhYmxlZC5mb2N1cyxcbi5idG4td2FybmluZy5kaXNhYmxlZDphY3RpdmUsXG4uYnRuLXdhcm5pbmcuZGlzYWJsZWQuYWN0aXZlLFxuLmJ0bi13YXJuaW5nW2Rpc2FibGVkXSxcbi5idG4td2FybmluZ1tkaXNhYmxlZF06aG92ZXIsXG4uYnRuLXdhcm5pbmdbZGlzYWJsZWRdOmZvY3VzLFxuLmJ0bi13YXJuaW5nW2Rpc2FibGVkXS5mb2N1cyxcbi5idG4td2FybmluZ1tkaXNhYmxlZF06YWN0aXZlLFxuLmJ0bi13YXJuaW5nW2Rpc2FibGVkXS5hY3RpdmUsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi13YXJuaW5nLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4td2FybmluZzpob3ZlcixcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXdhcm5pbmc6Zm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi13YXJuaW5nLmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4td2FybmluZzphY3RpdmUsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi13YXJuaW5nLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGFkNGU7XG4gIGJvcmRlci1jb2xvcjogI2YwYWQ0ZTtcbn1cblxuLmJ0bi13YXJuaW5nIC5iYWRnZSB7XG4gIGNvbG9yOiAjZjBhZDRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4uYnRuLWRhbmdlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDk1MzRmO1xuICBib3JkZXItY29sb3I6ICNkOTUzNGY7XG59XG5cbi5idG4tZGFuZ2VyOmZvY3VzLFxuLmJ0bi1kYW5nZXIuZm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M5MzAyYztcbiAgYm9yZGVyLWNvbG9yOiAjOGIyMTFlO1xufVxuXG4uYnRuLWRhbmdlcjpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzkzMDJjO1xuICBib3JkZXItY29sb3I6ICNjMTJlMmE7XG59XG5cbi5idG4tZGFuZ2VyOmFjdGl2ZSxcbi5idG4tZGFuZ2VyLmFjdGl2ZSxcbi5vcGVuID4gLmJ0bi1kYW5nZXIuZHJvcGRvd24tdG9nZ2xlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjOTMwMmM7XG4gIGJvcmRlci1jb2xvcjogI2MxMmUyYTtcbn1cblxuLmJ0bi1kYW5nZXI6YWN0aXZlOmhvdmVyLFxuLmJ0bi1kYW5nZXI6YWN0aXZlOmZvY3VzLFxuLmJ0bi1kYW5nZXI6YWN0aXZlLmZvY3VzLFxuLmJ0bi1kYW5nZXIuYWN0aXZlOmhvdmVyLFxuLmJ0bi1kYW5nZXIuYWN0aXZlOmZvY3VzLFxuLmJ0bi1kYW5nZXIuYWN0aXZlLmZvY3VzLFxuLm9wZW4gPiAuYnRuLWRhbmdlci5kcm9wZG93bi10b2dnbGU6aG92ZXIsXG4ub3BlbiA+IC5idG4tZGFuZ2VyLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyxcbi5vcGVuID4gLmJ0bi1kYW5nZXIuZHJvcGRvd24tdG9nZ2xlLmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhYzI5MjU7XG4gIGJvcmRlci1jb2xvcjogIzhiMjExZTtcbn1cblxuLmJ0bi1kYW5nZXI6YWN0aXZlLFxuLmJ0bi1kYW5nZXIuYWN0aXZlLFxuLm9wZW4gPiAuYnRuLWRhbmdlci5kcm9wZG93bi10b2dnbGUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuXG4uYnRuLWRhbmdlci5kaXNhYmxlZCxcbi5idG4tZGFuZ2VyLmRpc2FibGVkOmhvdmVyLFxuLmJ0bi1kYW5nZXIuZGlzYWJsZWQ6Zm9jdXMsXG4uYnRuLWRhbmdlci5kaXNhYmxlZC5mb2N1cyxcbi5idG4tZGFuZ2VyLmRpc2FibGVkOmFjdGl2ZSxcbi5idG4tZGFuZ2VyLmRpc2FibGVkLmFjdGl2ZSxcbi5idG4tZGFuZ2VyW2Rpc2FibGVkXSxcbi5idG4tZGFuZ2VyW2Rpc2FibGVkXTpob3Zlcixcbi5idG4tZGFuZ2VyW2Rpc2FibGVkXTpmb2N1cyxcbi5idG4tZGFuZ2VyW2Rpc2FibGVkXS5mb2N1cyxcbi5idG4tZGFuZ2VyW2Rpc2FibGVkXTphY3RpdmUsXG4uYnRuLWRhbmdlcltkaXNhYmxlZF0uYWN0aXZlLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGFuZ2VyLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGFuZ2VyOmhvdmVyLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGFuZ2VyOmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGFuZ2VyLmZvY3VzLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGFuZ2VyOmFjdGl2ZSxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRhbmdlci5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDk1MzRmO1xuICBib3JkZXItY29sb3I6ICNkOTUzNGY7XG59XG5cbi5idG4tZGFuZ2VyIC5iYWRnZSB7XG4gIGNvbG9yOiAjZDk1MzRmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4uYnRuLWxpbmsge1xuICBjb2xvcjogIzNhMzkzYjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLmJ0bi1saW5rLFxuLmJ0bi1saW5rOmFjdGl2ZSxcbi5idG4tbGluay5hY3RpdmUsXG4uYnRuLWxpbmtbZGlzYWJsZWRdLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tbGluayB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5idG4tbGluayxcbi5idG4tbGluazpob3Zlcixcbi5idG4tbGluazpmb2N1cyxcbi5idG4tbGluazphY3RpdmUge1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uYnRuLWxpbms6aG92ZXIsXG4uYnRuLWxpbms6Zm9jdXMge1xuICBjb2xvcjogIzE0MTMxNDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uYnRuLWxpbmtbZGlzYWJsZWRdOmhvdmVyLFxuLmJ0bi1saW5rW2Rpc2FibGVkXTpmb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWxpbms6aG92ZXIsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1saW5rOmZvY3VzIHtcbiAgY29sb3I6ICM5OTk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmJ0bi1sZywgLmJ0bi1ncm91cC1sZyA+IC5idG4ge1xuICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzMzMzMztcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuXG4uYnRuLXNtLCAuYnRuLWdyb3VwLXNtID4gLmJ0biB7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cblxuLmJ0bi14cywgLmJ0bi1ncm91cC14cyA+IC5idG4ge1xuICBwYWRkaW5nOiAxcHggNXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cblxuLmJ0bi1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmJ0bi1ibG9jayArIC5idG4tYmxvY2sge1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG5cbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0uYnRuLWJsb2NrLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLmJ0bi1ibG9jayxcbmlucHV0W3R5cGU9XCJidXR0b25cIl0uYnRuLWJsb2NrIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5mYWRlIHtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhcjtcbiAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXI7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgbGluZWFyO1xufVxuXG4uZmFkZS5pbiB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5jb2xsYXBzZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jb2xsYXBzZS5pbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG50ci5jb2xsYXBzZS5pbiB7XG4gIGRpc3BsYXk6IHRhYmxlLXJvdztcbn1cblxudGJvZHkuY29sbGFwc2UuaW4ge1xuICBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXA7XG59XG5cbi5jb2xsYXBzaW5nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogaGVpZ2h0LCB2aXNpYmlsaXR5O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBoZWlnaHQsIHZpc2liaWxpdHk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zNXM7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMzVzO1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTtcbn1cblxuLmNhcmV0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMnB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBib3JkZXItdG9wOiA0cHggZGFzaGVkO1xuICBib3JkZXItdG9wOiA0cHggc29saWQgXFw5O1xuICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLmRyb3B1cCxcbi5kcm9wZG93biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi5kcm9wZG93bi1tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZsb2F0OiBsZWZ0O1xuICBtaW4td2lkdGg6IDE2MHB4O1xuICBwYWRkaW5nOiA1cHggMDtcbiAgbWFyZ2luOiAycHggMCAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2ZjZmM7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDZweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNzUpO1xuICBib3gtc2hhZG93OiAwIDZweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNzUpO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xufVxuXG4uZHJvcGRvd24tbWVudS5wdWxsLXJpZ2h0IHtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87XG59XG5cbi5kcm9wZG93bi1tZW51IC5kaXZpZGVyIHtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogOXB4IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG59XG5cbi5kcm9wZG93bi1tZW51ID4gbGkgPiBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDNweCAyMHB4O1xuICBjbGVhcjogYm90aDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDI5O1xuICBjb2xvcjogIzIyMjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGE6aG92ZXIsXG4uZHJvcGRvd24tbWVudSA+IGxpID4gYTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICMxNTE1MTU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG59XG5cbi5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGEsXG4uZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIG91dGxpbmU6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYTM5M2I7XG59XG5cbi5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYSxcbi5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYTpob3Zlcixcbi5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYTpmb2N1cyB7XG4gIGNvbG9yOiAjOTk5O1xufVxuXG4uZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGE6aG92ZXIsXG4uZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGE6Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChlbmFibGVkID0gZmFsc2UpO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4ub3BlbiA+IC5kcm9wZG93bi1tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5vcGVuID4gYSB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi5kcm9wZG93bi1tZW51LXJpZ2h0IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7XG59XG5cbi5kcm9wZG93bi1tZW51LWxlZnQge1xuICBsZWZ0OiAwO1xuICByaWdodDogYXV0bztcbn1cblxuLmRyb3Bkb3duLWhlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAzcHggMjBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0Mjk7XG4gIGNvbG9yOiAjOTk5O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uZHJvcGRvd24tYmFja2Ryb3Age1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHRvcDogMDtcbiAgei1pbmRleDogOTkwO1xufVxuXG4ucHVsbC1yaWdodCA+IC5kcm9wZG93bi1tZW51IHtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87XG59XG5cbi5kcm9wdXAgLmNhcmV0LFxuLm5hdmJhci1maXhlZC1ib3R0b20gLmRyb3Bkb3duIC5jYXJldCB7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci1ib3R0b206IDRweCBkYXNoZWQ7XG4gIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCBcXDk7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG5cbi5kcm9wdXAgLmRyb3Bkb3duLW1lbnUsXG4ubmF2YmFyLWZpeGVkLWJvdHRvbSAuZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLm5hdmJhci1yaWdodCAuZHJvcGRvd24tbWVudSB7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogYXV0bztcbiAgfVxuICAubmF2YmFyLXJpZ2h0IC5kcm9wZG93bi1tZW51LWxlZnQge1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbn1cblxuLmJ0bi1ncm91cCxcbi5idG4tZ3JvdXAtdmVydGljYWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmJ0bi1ncm91cCA+IC5idG4sXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5idG4tZ3JvdXAgPiAuYnRuOmhvdmVyLFxuLmJ0bi1ncm91cCA+IC5idG46Zm9jdXMsXG4uYnRuLWdyb3VwID4gLmJ0bjphY3RpdmUsXG4uYnRuLWdyb3VwID4gLmJ0bi5hY3RpdmUsXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bjpob3Zlcixcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOmZvY3VzLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG46YWN0aXZlLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4uYWN0aXZlIHtcbiAgei1pbmRleDogMjtcbn1cblxuLmJ0bi1ncm91cCAuYnRuICsgLmJ0bixcbi5idG4tZ3JvdXAgLmJ0biArIC5idG4tZ3JvdXAsXG4uYnRuLWdyb3VwIC5idG4tZ3JvdXAgKyAuYnRuLFxuLmJ0bi1ncm91cCAuYnRuLWdyb3VwICsgLmJ0bi1ncm91cCB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuXG4uYnRuLXRvb2xiYXIge1xuICBtYXJnaW4tbGVmdDogLTVweDtcbn1cblxuLmJ0bi10b29sYmFyOmJlZm9yZSxcbi5idG4tdG9vbGJhcjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLmJ0bi10b29sYmFyOmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5idG4tdG9vbGJhciAuYnRuLFxuLmJ0bi10b29sYmFyIC5idG4tZ3JvdXAsXG4uYnRuLXRvb2xiYXIgLmlucHV0LWdyb3VwIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5idG4tdG9vbGJhciA+IC5idG4sXG4uYnRuLXRvb2xiYXIgPiAuYnRuLWdyb3VwLFxuLmJ0bi10b29sYmFyID4gLmlucHV0LWdyb3VwIHtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuLmJ0bi1ncm91cCA+IC5idG46bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSkge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG4uYnRuLWdyb3VwID4gLmJ0bjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4uYnRuLWdyb3VwID4gLmJ0bjpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbn1cblxuLmJ0bi1ncm91cCA+IC5idG46bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSxcbi5idG4tZ3JvdXAgPiAuZHJvcGRvd24tdG9nZ2xlOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbn1cblxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXAge1xuICBmbG9hdDogbGVmdDtcbn1cblxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSA+IC5idG4ge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG4uYnRuLWdyb3VwID4gLmJ0bi1ncm91cDpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpID4gLmJ0bjpsYXN0LWNoaWxkLFxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSA+IC5kcm9wZG93bi10b2dnbGUge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG59XG5cbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbn1cblxuLmJ0bi1ncm91cCAuZHJvcGRvd24tdG9nZ2xlOmFjdGl2ZSxcbi5idG4tZ3JvdXAub3BlbiAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLmJ0bi1ncm91cCA+IC5idG4gKyAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDhweDtcbn1cblxuLmJ0bi1ncm91cCA+IC5idG4tbGcgKyAuZHJvcGRvd24tdG9nZ2xlLCAuYnRuLWdyb3VwLWxnLmJ0bi1ncm91cCA+IC5idG4gKyAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xufVxuXG4uYnRuLWdyb3VwLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAzcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMjUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDNweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyNSk7XG59XG5cbi5idG4tZ3JvdXAub3BlbiAuZHJvcGRvd24tdG9nZ2xlLmJ0bi1saW5rIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4uYnRuIC5jYXJldCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4uYnRuLWxnIC5jYXJldCwgLmJ0bi1ncm91cC1sZyA+IC5idG4gLmNhcmV0IHtcbiAgYm9yZGVyLXdpZHRoOiA1cHggNXB4IDA7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG59XG5cbi5kcm9wdXAgLmJ0bi1sZyAuY2FyZXQsIC5kcm9wdXAgLmJ0bi1ncm91cC1sZyA+IC5idG4gLmNhcmV0IHtcbiAgYm9yZGVyLXdpZHRoOiAwIDVweCA1cHg7XG59XG5cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXAsXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cCA+IC5idG4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOmJlZm9yZSxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cCA+IC5idG4ge1xuICBmbG9hdDogbm9uZTtcbn1cblxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4gKyAuYnRuLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4gKyAuYnRuLWdyb3VwLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXAgKyAuYnRuLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXAgKyAuYnRuLWdyb3VwIHtcbiAgbWFyZ2luLXRvcDogLTFweDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bjpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG59XG5cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xufVxuXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpID4gLmJ0biB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuOmxhc3QtY2hpbGQsXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpID4gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xufVxuXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0bjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xufVxuXG4uYnRuLWdyb3VwLWp1c3RpZmllZCB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICB3aWR0aDogMTAwJTtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbn1cblxuLmJ0bi1ncm91cC1qdXN0aWZpZWQgPiAuYnRuLFxuLmJ0bi1ncm91cC1qdXN0aWZpZWQgPiAuYnRuLWdyb3VwIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHdpZHRoOiAxJTtcbn1cblxuLmJ0bi1ncm91cC1qdXN0aWZpZWQgPiAuYnRuLWdyb3VwIC5idG4ge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmJ0bi1ncm91cC1qdXN0aWZpZWQgPiAuYnRuLWdyb3VwIC5kcm9wZG93bi1tZW51IHtcbiAgbGVmdDogYXV0bztcbn1cblxuW2RhdGEtdG9nZ2xlPVwiYnV0dG9uc1wiXSA+IC5idG4gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuW2RhdGEtdG9nZ2xlPVwiYnV0dG9uc1wiXSA+IC5idG4gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuW2RhdGEtdG9nZ2xlPVwiYnV0dG9uc1wiXSA+IC5idG4tZ3JvdXAgPiAuYnRuIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbltkYXRhLXRvZ2dsZT1cImJ1dHRvbnNcIl0gPiAuYnRuLWdyb3VwID4gLmJ0biBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uaW5wdXQtZ3JvdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xufVxuXG4uaW5wdXQtZ3JvdXBbY2xhc3MqPVwiY29sLVwiXSB7XG4gIGZsb2F0OiBub25lO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG59XG5cbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5pbnB1dC1ncm91cC1hZGRvbixcbi5pbnB1dC1ncm91cC1idG4sXG4uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbCB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG5cbi5pbnB1dC1ncm91cC1hZGRvbjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpLFxuLmlucHV0LWdyb3VwLWJ0bjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpLFxuLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2w6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi5pbnB1dC1ncm91cC1hZGRvbixcbi5pbnB1dC1ncm91cC1idG4ge1xuICB3aWR0aDogMSU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5pbnB1dC1ncm91cC1hZGRvbiB7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogIzQ0NDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG5cbi5pbnB1dC1ncm91cC1hZGRvbi5pbnB1dC1zbSwgLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWFkZG9uLFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWJ0biA+IC5pbnB1dC1ncm91cC1hZGRvbi5idG4ge1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG5cbi5pbnB1dC1ncm91cC1hZGRvbi5pbnB1dC1sZywgLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWFkZG9uLFxuLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWJ0biA+IC5pbnB1dC1ncm91cC1hZGRvbi5idG4ge1xuICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuXG4uaW5wdXQtZ3JvdXAtYWRkb24gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuLmlucHV0LWdyb3VwLWFkZG9uIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOmZpcnN0LWNoaWxkLFxuLmlucHV0LWdyb3VwLWFkZG9uOmZpcnN0LWNoaWxkLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bi1ncm91cCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmRyb3Bkb3duLXRvZ2dsZSxcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG46bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSksXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuLWdyb3VwOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xufVxuXG4uaW5wdXQtZ3JvdXAtYWRkb246Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmlnaHQ6IDA7XG59XG5cbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOmxhc3QtY2hpbGQsXG4uaW5wdXQtZ3JvdXAtYWRkb246bGFzdC1jaGlsZCxcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuLWdyb3VwID4gLmJ0bixcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5kcm9wZG93bi10b2dnbGUsXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bjpub3QoOmZpcnN0LWNoaWxkKSxcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0biB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG59XG5cbi5pbnB1dC1ncm91cC1hZGRvbjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IDA7XG59XG5cbi5pbnB1dC1ncm91cC1idG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmlucHV0LWdyb3VwLWJ0biA+IC5idG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5pbnB1dC1ncm91cC1idG4gPiAuYnRuICsgLmJ0biB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuXG4uaW5wdXQtZ3JvdXAtYnRuID4gLmJ0bjpob3Zlcixcbi5pbnB1dC1ncm91cC1idG4gPiAuYnRuOmZvY3VzLFxuLmlucHV0LWdyb3VwLWJ0biA+IC5idG46YWN0aXZlIHtcbiAgei1pbmRleDogMjtcbn1cblxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bi1ncm91cCB7XG4gIG1hcmdpbi1yaWdodDogLTFweDtcbn1cblxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmJ0bixcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG4tZ3JvdXAge1xuICB6LWluZGV4OiAyO1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cblxuLm5hdiB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLm5hdjpiZWZvcmUsXG4ubmF2OmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuXG4ubmF2OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5uYXYgPiBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5uYXYgPiBsaSA+IGEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxMHB4IDE1cHg7XG59XG5cbi5uYXYgPiBsaSA+IGE6aG92ZXIsXG4ubmF2ID4gbGkgPiBhOmZvY3VzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4ubmF2ID4gbGkuZGlzYWJsZWQgPiBhIHtcbiAgY29sb3I6ICM5OTk7XG59XG5cbi5uYXYgPiBsaS5kaXNhYmxlZCA+IGE6aG92ZXIsXG4ubmF2ID4gbGkuZGlzYWJsZWQgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICM5OTk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5uYXYgLm9wZW4gPiBhLFxuLm5hdiAub3BlbiA+IGE6aG92ZXIsXG4ubmF2IC5vcGVuID4gYTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1jb2xvcjogIzNhMzkzYjtcbn1cblxuLm5hdiAubmF2LWRpdmlkZXIge1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiA5cHggMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTtcbn1cblxuLm5hdiA+IGxpID4gYSA+IGltZyB7XG4gIG1heC13aWR0aDogbm9uZTtcbn1cblxuLm5hdi10YWJzIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG59XG5cbi5uYXYtdGFicyA+IGxpIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1ib3R0b206IC0xcHg7XG59XG5cbi5uYXYtdGFicyA+IGxpID4gYSB7XG4gIG1hcmdpbi1yaWdodDogMnB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0Mjk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAzcHggM3B4IDAgMDtcbn1cblxuLm5hdi10YWJzID4gbGkgPiBhOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjZmZmICNmZmYgI2RkZDtcbn1cblxuLm5hdi10YWJzID4gbGkuYWN0aXZlID4gYSxcbi5uYXYtdGFicyA+IGxpLmFjdGl2ZSA+IGE6aG92ZXIsXG4ubmF2LXRhYnMgPiBsaS5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICM0NDQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5uYXYtcGlsbHMgPiBsaSB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4ubmF2LXBpbGxzID4gbGkgPiBhIHtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuXG4ubmF2LXBpbGxzID4gbGkgKyBsaSB7XG4gIG1hcmdpbi1sZWZ0OiAycHg7XG59XG5cbi5uYXYtcGlsbHMgPiBsaS5hY3RpdmUgPiBhLFxuLm5hdi1waWxscyA+IGxpLmFjdGl2ZSA+IGE6aG92ZXIsXG4ubmF2LXBpbGxzID4gbGkuYWN0aXZlID4gYTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2EzOTNiO1xufVxuXG4ubmF2LXN0YWNrZWQgPiBsaSB7XG4gIGZsb2F0OiBub25lO1xufVxuXG4ubmF2LXN0YWNrZWQgPiBsaSArIGxpIHtcbiAgbWFyZ2luLXRvcDogMnB4O1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLm5hdi1qdXN0aWZpZWQsIC5uYXYtdGFicy5uYXYtanVzdGlmaWVkIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5uYXYtanVzdGlmaWVkID4gbGksIC5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gbGkge1xuICBmbG9hdDogbm9uZTtcbn1cblxuLm5hdi1qdXN0aWZpZWQgPiBsaSA+IGEsIC5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gbGkgPiBhIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi5uYXYtanVzdGlmaWVkID4gLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51IHtcbiAgdG9wOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLm5hdi1qdXN0aWZpZWQgPiBsaSwgLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiBsaSB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB3aWR0aDogMSU7XG4gIH1cbiAgLm5hdi1qdXN0aWZpZWQgPiBsaSA+IGEsIC5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gbGkgPiBhIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi5uYXYtdGFicy1qdXN0aWZpZWQsIC5uYXYtdGFicy5uYXYtanVzdGlmaWVkIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cblxuLm5hdi10YWJzLWp1c3RpZmllZCA+IGxpID4gYSwgLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiBsaSA+IGEge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cblxuLm5hdi10YWJzLWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhLFxuLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYSwgLm5hdi10YWJzLWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYTpob3ZlciwgLm5hdi10YWJzLWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhOmZvY3VzLCAubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5uYXYtdGFicy1qdXN0aWZpZWQgPiBsaSA+IGEsIC5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gbGkgPiBhIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHggM3B4IDAgMDtcbiAgfVxuICAubmF2LXRhYnMtanVzdGlmaWVkID4gLmFjdGl2ZSA+IGEsXG4gIC5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gLmFjdGl2ZSA+IGEsIC5uYXYtdGFicy1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYTpob3ZlcixcbiAgLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYTpob3ZlciwgLm5hdi10YWJzLWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhOmZvY3VzLCAubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjZmZmO1xuICB9XG59XG5cbi50YWItY29udGVudCA+IC50YWItcGFuZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi50YWItY29udGVudCA+IC5hY3RpdmUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLm5hdi10YWJzIC5kcm9wZG93bi1tZW51IHtcbiAgbWFyZ2luLXRvcDogLTFweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG59XG5cbi5uYXZiYXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDUwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4ubmF2YmFyOmJlZm9yZSxcbi5uYXZiYXI6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi5uYXZiYXI6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5uYXZiYXIge1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgfVxufVxuXG4ubmF2YmFyLWhlYWRlcjpiZWZvcmUsXG4ubmF2YmFyLWhlYWRlcjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLm5hdmJhci1oZWFkZXI6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5uYXZiYXItaGVhZGVyIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxufVxuXG4ubmF2YmFyLWNvbGxhcHNlIHtcbiAgb3ZlcmZsb3cteDogdmlzaWJsZTtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi5uYXZiYXItY29sbGFwc2U6YmVmb3JlLFxuLm5hdmJhci1jb2xsYXBzZTphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLm5hdmJhci1jb2xsYXBzZTphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuXG4ubmF2YmFyLWNvbGxhcHNlLmluIHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5uYXZiYXItY29sbGFwc2Uge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGJvcmRlci10b3A6IDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuICAubmF2YmFyLWNvbGxhcHNlLmNvbGxhcHNlIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm5hdmJhci1jb2xsYXBzZS5pbiB7XG4gICAgb3ZlcmZsb3cteTogdmlzaWJsZTtcbiAgfVxuICAubmF2YmFyLWZpeGVkLXRvcCAubmF2YmFyLWNvbGxhcHNlLFxuICAubmF2YmFyLXN0YXRpYy10b3AgLm5hdmJhci1jb2xsYXBzZSxcbiAgLm5hdmJhci1maXhlZC1ib3R0b20gLm5hdmJhci1jb2xsYXBzZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cbn1cblxuLm5hdmJhci1maXhlZC10b3AgLm5hdmJhci1jb2xsYXBzZSxcbi5uYXZiYXItZml4ZWQtYm90dG9tIC5uYXZiYXItY29sbGFwc2Uge1xuICBtYXgtaGVpZ2h0OiAzNDBweDtcbn1cblxuQG1lZGlhIChtYXgtZGV2aWNlLXdpZHRoOiA0ODBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gIC5uYXZiYXItZml4ZWQtdG9wIC5uYXZiYXItY29sbGFwc2UsXG4gIC5uYXZiYXItZml4ZWQtYm90dG9tIC5uYXZiYXItY29sbGFwc2Uge1xuICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xuICB9XG59XG5cbi5jb250YWluZXIgPiAubmF2YmFyLWhlYWRlcixcbi5jb250YWluZXIgPiAubmF2YmFyLWNvbGxhcHNlLFxuLmNvbnRhaW5lci1mbHVpZCA+IC5uYXZiYXItaGVhZGVyLFxuLmNvbnRhaW5lci1mbHVpZCA+IC5uYXZiYXItY29sbGFwc2Uge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmNvbnRhaW5lciA+IC5uYXZiYXItaGVhZGVyLFxuICAuY29udGFpbmVyID4gLm5hdmJhci1jb2xsYXBzZSxcbiAgLmNvbnRhaW5lci1mbHVpZCA+IC5uYXZiYXItaGVhZGVyLFxuICAuY29udGFpbmVyLWZsdWlkID4gLm5hdmJhci1jb2xsYXBzZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG5cbi5uYXZiYXItc3RhdGljLXRvcCB7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGJvcmRlci13aWR0aDogMCAwIDFweDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5uYXZiYXItc3RhdGljLXRvcCB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuXG4ubmF2YmFyLWZpeGVkLXRvcCxcbi5uYXZiYXItZml4ZWQtYm90dG9tIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICByaWdodDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTAzMDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5uYXZiYXItZml4ZWQtdG9wLFxuICAubmF2YmFyLWZpeGVkLWJvdHRvbSB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuXG4ubmF2YmFyLWZpeGVkLXRvcCB7XG4gIHRvcDogMDtcbiAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4O1xufVxuXG4ubmF2YmFyLWZpeGVkLWJvdHRvbSB7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgYm9yZGVyLXdpZHRoOiAxcHggMCAwO1xufVxuXG4ubmF2YmFyLWJyYW5kIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmc6IDE1cHggMDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgaGVpZ2h0OiA1MHB4O1xufVxuXG4ubmF2YmFyLWJyYW5kOmhvdmVyLFxuLm5hdmJhci1icmFuZDpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLm5hdmJhci1icmFuZCA+IGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLm5hdmJhciA+IC5jb250YWluZXIgLm5hdmJhci1icmFuZCxcbiAgLm5hdmJhciA+IC5jb250YWluZXItZmx1aWQgLm5hdmJhci1icmFuZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbn1cblxuLm5hdmJhci10b2dnbGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBwYWRkaW5nOiA5cHggMTBweDtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuXG4ubmF2YmFyLXRvZ2dsZTpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi5uYXZiYXItdG9nZ2xlIC5pY29uLWJhciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAycHg7XG4gIGJvcmRlci1yYWRpdXM6IDFweDtcbn1cblxuLm5hdmJhci10b2dnbGUgLmljb24tYmFyICsgLmljb24tYmFyIHtcbiAgbWFyZ2luLXRvcDogNHB4O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLm5hdmJhci10b2dnbGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLm5hdmJhci1uYXYge1xuICBtYXJnaW46IDcuNXB4IDA7XG59XG5cbi5uYXZiYXItbmF2ID4gbGkgPiBhIHtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51IHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbiAgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGEsXG4gIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1oZWFkZXIge1xuICAgIHBhZGRpbmc6IDVweCAxNXB4IDVweCAyNXB4O1xuICB9XG4gIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gbGkgPiBhIHtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgfVxuICAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYTpob3ZlcixcbiAgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGE6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5uYXZiYXItbmF2IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgLm5hdmJhci1uYXYgPiBsaSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgLm5hdmJhci1uYXYgPiBsaSA+IGEge1xuICAgIHBhZGRpbmctdG9wOiAxNXB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xuICB9XG59XG5cbi5uYXZiYXItZm9ybSB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIHBhZGRpbmc6IDEwcHggMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSksIDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSwgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLm5hdmJhci1mb3JtIC5mb3JtLWdyb3VwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5uYXZiYXItZm9ybSAuZm9ybS1jb250cm9sIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAubmF2YmFyLWZvcm0gLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuICAubmF2YmFyLWZvcm0gLmlucHV0LWdyb3VwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAubmF2YmFyLWZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1hZGRvbixcbiAgLm5hdmJhci1mb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnRuLFxuICAubmF2YmFyLWZvcm0gLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2wge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG4gIC5uYXZiYXItZm9ybSAuaW5wdXQtZ3JvdXAgPiAuZm9ybS1jb250cm9sIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAubmF2YmFyLWZvcm0gLmNvbnRyb2wtbGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAubmF2YmFyLWZvcm0gLnJhZGlvLFxuICAubmF2YmFyLWZvcm0gLmNoZWNrYm94IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5yYWRpbyBsYWJlbCxcbiAgLm5hdmJhci1mb3JtIC5jaGVja2JveCBsYWJlbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG4gIC5uYXZiYXItZm9ybSAucmFkaW8gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuICAubmF2YmFyLWZvcm0gLmNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIC5uYXZiYXItZm9ybSAuaGFzLWZlZWRiYWNrIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICAgIHRvcDogMDtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLm5hdmJhci1mb3JtIC5mb3JtLWdyb3VwIHtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIH1cbiAgLm5hdmJhci1mb3JtIC5mb3JtLWdyb3VwOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5uYXZiYXItZm9ybSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG4ubmF2YmFyLW5hdiA+IGxpID4gLmRyb3Bkb3duLW1lbnUge1xuICBtYXJnaW4tdG9wOiAwO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbn1cblxuLm5hdmJhci1maXhlZC1ib3R0b20gLm5hdmJhci1uYXYgPiBsaSA+IC5kcm9wZG93bi1tZW51IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cblxuLm5hdmJhci1idG4ge1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuLm5hdmJhci1idG4uYnRuLXNtLCAuYnRuLWdyb3VwLXNtID4gLm5hdmJhci1idG4uYnRuIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLm5hdmJhci1idG4uYnRuLXhzLCAuYnRuLWdyb3VwLXhzID4gLm5hdmJhci1idG4uYnRuIHtcbiAgbWFyZ2luLXRvcDogMTRweDtcbiAgbWFyZ2luLWJvdHRvbTogMTRweDtcbn1cblxuLm5hdmJhci10ZXh0IHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5uYXZiYXItdGV4dCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAubmF2YmFyLWxlZnQge1xuICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm5hdmJhci1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG4gIC5uYXZiYXItcmlnaHQgfiAubmF2YmFyLXJpZ2h0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbn1cblxuLm5hdmJhci1kZWZhdWx0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcbiAgYm9yZGVyLWNvbG9yOiAjZTdlN2U3O1xufVxuXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1icmFuZCB7XG4gIGNvbG9yOiAjNzc3O1xufVxuXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1icmFuZDpob3Zlcixcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWJyYW5kOmZvY3VzIHtcbiAgY29sb3I6ICM1ZTVlNWU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci10ZXh0IHtcbiAgY29sb3I6ICM3Nzc7XG59XG5cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IGxpID4gYSB7XG4gIGNvbG9yOiAjNzc3O1xufVxuXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiBsaSA+IGE6aG92ZXIsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiBsaSA+IGE6Zm9jdXMge1xuICBjb2xvcjogIzMzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IC5hY3RpdmUgPiBhLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gIGNvbG9yOiAjNTU1O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTdlN2U3O1xufVxuXG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiAuZGlzYWJsZWQgPiBhLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gLmRpc2FibGVkID4gYTpob3Zlcixcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IC5kaXNhYmxlZCA+IGE6Zm9jdXMge1xuICBjb2xvcjogI2NjYztcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLXRvZ2dsZSB7XG4gIGJvcmRlci1jb2xvcjogI2RkZDtcbn1cblxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItdG9nZ2xlOmhvdmVyLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItdG9nZ2xlOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcbn1cblxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItdG9nZ2xlIC5pY29uLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4ODg7XG59XG5cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWNvbGxhcHNlLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItZm9ybSB7XG4gIGJvcmRlci1jb2xvcjogI2U3ZTdlNztcbn1cblxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gLm9wZW4gPiBhLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gLm9wZW4gPiBhOmhvdmVyLFxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gLm9wZW4gPiBhOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U3ZTdlNztcbiAgY29sb3I6ICM1NTU7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkge1xuICAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGEge1xuICAgIGNvbG9yOiAjNzc3O1xuICB9XG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYTpob3ZlcixcbiAgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gbGkgPiBhOmZvY3VzIHtcbiAgICBjb2xvcjogIzMzMztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuICAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYSxcbiAgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgICBjb2xvcjogIzU1NTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTdlN2U3O1xuICB9XG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGEsXG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGE6aG92ZXIsXG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjY2NjO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWxpbmsge1xuICBjb2xvcjogIzc3Nztcbn1cblxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbGluazpob3ZlciB7XG4gIGNvbG9yOiAjMzMzO1xufVxuXG4ubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rIHtcbiAgY29sb3I6ICM3Nzc7XG59XG5cbi5uYXZiYXItZGVmYXVsdCAuYnRuLWxpbms6aG92ZXIsXG4ubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rOmZvY3VzIHtcbiAgY29sb3I6ICMzMzM7XG59XG5cbi5uYXZiYXItZGVmYXVsdCAuYnRuLWxpbmtbZGlzYWJsZWRdOmhvdmVyLFxuLm5hdmJhci1kZWZhdWx0IC5idG4tbGlua1tkaXNhYmxlZF06Zm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLm5hdmJhci1kZWZhdWx0IC5idG4tbGluazpob3ZlcixcbmZpZWxkc2V0W2Rpc2FibGVkXSAubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rOmZvY3VzIHtcbiAgY29sb3I6ICNjY2M7XG59XG5cbi5uYXZiYXItaW52ZXJzZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjI7XG4gIGJvcmRlci1jb2xvcjogIzA5MDkwOTtcbn1cblxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItYnJhbmQge1xuICBjb2xvcjogI2JmYmZiZjtcbn1cblxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItYnJhbmQ6aG92ZXIsXG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1icmFuZDpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItdGV4dCB7XG4gIGNvbG9yOiAjYmZiZmJmO1xufVxuXG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiBsaSA+IGEge1xuICBjb2xvcjogI2JmYmZiZjtcbn1cblxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gbGkgPiBhOmhvdmVyLFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gbGkgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiAuYWN0aXZlID4gYSxcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzA5MDkwOTtcbn1cblxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gLmRpc2FibGVkID4gYSxcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5kaXNhYmxlZCA+IGE6aG92ZXIsXG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiAuZGlzYWJsZWQgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICM0NDQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci10b2dnbGUge1xuICBib3JkZXItY29sb3I6ICMzMzM7XG59XG5cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLXRvZ2dsZTpob3Zlcixcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLXRvZ2dsZTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG59XG5cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLXRvZ2dsZSAuaWNvbi1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci1jb2xsYXBzZSxcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWZvcm0ge1xuICBib3JkZXItY29sb3I6ICMxMDEwMTA7XG59XG5cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5vcGVuID4gYSxcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5vcGVuID4gYTpob3Zlcixcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5vcGVuID4gYTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwOTA5MDk7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmRyb3Bkb3duLWhlYWRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAjMDkwOTA5O1xuICB9XG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSAuZGl2aWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzA5MDkwOTtcbiAgfVxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGEge1xuICAgIGNvbG9yOiAjYmZiZmJmO1xuICB9XG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYTpob3ZlcixcbiAgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gbGkgPiBhOmZvY3VzIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYSxcbiAgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDkwOTA5O1xuICB9XG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGEsXG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGE6aG92ZXIsXG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjNDQ0O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWxpbmsge1xuICBjb2xvcjogI2JmYmZiZjtcbn1cblxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbGluazpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4ubmF2YmFyLWludmVyc2UgLmJ0bi1saW5rIHtcbiAgY29sb3I6ICNiZmJmYmY7XG59XG5cbi5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbms6aG92ZXIsXG4ubmF2YmFyLWludmVyc2UgLmJ0bi1saW5rOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbmtbZGlzYWJsZWRdOmhvdmVyLFxuLm5hdmJhci1pbnZlcnNlIC5idG4tbGlua1tkaXNhYmxlZF06Zm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLm5hdmJhci1pbnZlcnNlIC5idG4tbGluazpob3ZlcixcbmZpZWxkc2V0W2Rpc2FibGVkXSAubmF2YmFyLWludmVyc2UgLmJ0bi1saW5rOmZvY3VzIHtcbiAgY29sb3I6ICM0NDQ7XG59XG5cbi5icmVhZGNydW1iIHtcbiAgcGFkZGluZzogOHB4IDE1cHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cblxuLmJyZWFkY3J1bWIgPiBsaSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmJyZWFkY3J1bWIgPiBsaSArIGxpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiL1xcXFwwMGEwXCI7XG4gIHBhZGRpbmc6IDAgNXB4O1xuICBjb2xvcjogI2NjYztcbn1cblxuLmJyZWFkY3J1bWIgPiAuYWN0aXZlIHtcbiAgY29sb3I6ICM5OTk7XG59XG5cbi5wYWdpbmF0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1hcmdpbjogMjBweCAwO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG5cbi5wYWdpbmF0aW9uID4gbGkge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5wYWdpbmF0aW9uID4gbGkgPiBhLFxuLnBhZ2luYXRpb24gPiBsaSA+IHNwYW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nOiA2cHggMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDI5O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjM2EzOTNiO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cblxuLnBhZ2luYXRpb24gPiBsaTpmaXJzdC1jaGlsZCA+IGEsXG4ucGFnaW5hdGlvbiA+IGxpOmZpcnN0LWNoaWxkID4gc3BhbiB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbn1cblxuLnBhZ2luYXRpb24gPiBsaTpsYXN0LWNoaWxkID4gYSxcbi5wYWdpbmF0aW9uID4gbGk6bGFzdC1jaGlsZCA+IHNwYW4ge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogM3B4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xufVxuXG4ucGFnaW5hdGlvbiA+IGxpID4gYTpob3Zlcixcbi5wYWdpbmF0aW9uID4gbGkgPiBhOmZvY3VzLFxuLnBhZ2luYXRpb24gPiBsaSA+IHNwYW46aG92ZXIsXG4ucGFnaW5hdGlvbiA+IGxpID4gc3Bhbjpmb2N1cyB7XG4gIHotaW5kZXg6IDM7XG4gIGNvbG9yOiAjMTQxMzE0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICNkZGQ7XG59XG5cbi5wYWdpbmF0aW9uID4gLmFjdGl2ZSA+IGEsXG4ucGFnaW5hdGlvbiA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuLnBhZ2luYXRpb24gPiAuYWN0aXZlID4gYTpmb2N1cyxcbi5wYWdpbmF0aW9uID4gLmFjdGl2ZSA+IHNwYW4sXG4ucGFnaW5hdGlvbiA+IC5hY3RpdmUgPiBzcGFuOmhvdmVyLFxuLnBhZ2luYXRpb24gPiAuYWN0aXZlID4gc3Bhbjpmb2N1cyB7XG4gIHotaW5kZXg6IDI7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2EzOTNiO1xuICBib3JkZXItY29sb3I6ICMzYTM5M2I7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLnBhZ2luYXRpb24gPiAuZGlzYWJsZWQgPiBzcGFuLFxuLnBhZ2luYXRpb24gPiAuZGlzYWJsZWQgPiBzcGFuOmhvdmVyLFxuLnBhZ2luYXRpb24gPiAuZGlzYWJsZWQgPiBzcGFuOmZvY3VzLFxuLnBhZ2luYXRpb24gPiAuZGlzYWJsZWQgPiBhLFxuLnBhZ2luYXRpb24gPiAuZGlzYWJsZWQgPiBhOmhvdmVyLFxuLnBhZ2luYXRpb24gPiAuZGlzYWJsZWQgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICM5OTk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1jb2xvcjogI2RkZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLnBhZ2luYXRpb24tbGcgPiBsaSA+IGEsXG4ucGFnaW5hdGlvbi1sZyA+IGxpID4gc3BhbiB7XG4gIHBhZGRpbmc6IDEwcHggMTZweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMS4zMzMzMzMzO1xufVxuXG4ucGFnaW5hdGlvbi1sZyA+IGxpOmZpcnN0LWNoaWxkID4gYSxcbi5wYWdpbmF0aW9uLWxnID4gbGk6Zmlyc3QtY2hpbGQgPiBzcGFuIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG59XG5cbi5wYWdpbmF0aW9uLWxnID4gbGk6bGFzdC1jaGlsZCA+IGEsXG4ucGFnaW5hdGlvbi1sZyA+IGxpOmxhc3QtY2hpbGQgPiBzcGFuIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDNweDtcbn1cblxuLnBhZ2luYXRpb24tc20gPiBsaSA+IGEsXG4ucGFnaW5hdGlvbi1zbSA+IGxpID4gc3BhbiB7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi5wYWdpbmF0aW9uLXNtID4gbGk6Zmlyc3QtY2hpbGQgPiBhLFxuLnBhZ2luYXRpb24tc20gPiBsaTpmaXJzdC1jaGlsZCA+IHNwYW4ge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbn1cblxuLnBhZ2luYXRpb24tc20gPiBsaTpsYXN0LWNoaWxkID4gYSxcbi5wYWdpbmF0aW9uLXNtID4gbGk6bGFzdC1jaGlsZCA+IHNwYW4ge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogM3B4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xufVxuXG4ucGFnZXIge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1hcmdpbjogMjBweCAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5wYWdlcjpiZWZvcmUsXG4ucGFnZXI6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi5wYWdlcjphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuXG4ucGFnZXIgbGkge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5wYWdlciBsaSA+IGEsXG4ucGFnZXIgbGkgPiBzcGFuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiA1cHggMTRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgYm9yZGVyLXJhZGl1czogMTVweDtcbn1cblxuLnBhZ2VyIGxpID4gYTpob3Zlcixcbi5wYWdlciBsaSA+IGE6Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5wYWdlciAubmV4dCA+IGEsXG4ucGFnZXIgLm5leHQgPiBzcGFuIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4ucGFnZXIgLnByZXZpb3VzID4gYSxcbi5wYWdlciAucHJldmlvdXMgPiBzcGFuIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5wYWdlciAuZGlzYWJsZWQgPiBhLFxuLnBhZ2VyIC5kaXNhYmxlZCA+IGE6aG92ZXIsXG4ucGFnZXIgLmRpc2FibGVkID4gYTpmb2N1cyxcbi5wYWdlciAuZGlzYWJsZWQgPiBzcGFuIHtcbiAgY29sb3I6ICM5OTk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgcGFkZGluZzogMC4yZW0gMC42ZW0gMC4zZW07XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgYm9yZGVyLXJhZGl1czogLjI1ZW07XG59XG5cbi5sYWJlbDplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5idG4gLmxhYmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0xcHg7XG59XG5cbmEubGFiZWw6aG92ZXIsXG5hLmxhYmVsOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubGFiZWwtZGVmYXVsdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5OTk7XG59XG5cbi5sYWJlbC1kZWZhdWx0W2hyZWZdOmhvdmVyLFxuLmxhYmVsLWRlZmF1bHRbaHJlZl06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBncmF5O1xufVxuXG4ubGFiZWwtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYTM5M2I7XG59XG5cbi5sYWJlbC1wcmltYXJ5W2hyZWZdOmhvdmVyLFxuLmxhYmVsLXByaW1hcnlbaHJlZl06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMDIxO1xufVxuXG4ubGFiZWwtc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1Y2I4NWM7XG59XG5cbi5sYWJlbC1zdWNjZXNzW2hyZWZdOmhvdmVyLFxuLmxhYmVsLXN1Y2Nlc3NbaHJlZl06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ5ZDQ0O1xufVxuXG4ubGFiZWwtaW5mbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1YmMwZGU7XG59XG5cbi5sYWJlbC1pbmZvW2hyZWZdOmhvdmVyLFxuLmxhYmVsLWluZm9baHJlZl06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzFiMGQ1O1xufVxuXG4ubGFiZWwtd2FybmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGFkNGU7XG59XG5cbi5sYWJlbC13YXJuaW5nW2hyZWZdOmhvdmVyLFxuLmxhYmVsLXdhcm5pbmdbaHJlZl06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWM5NzFmO1xufVxuXG4ubGFiZWwtZGFuZ2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5NTM0Zjtcbn1cblxuLmxhYmVsLWRhbmdlcltocmVmXTpob3Zlcixcbi5sYWJlbC1kYW5nZXJbaHJlZl06Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzkzMDJjO1xufVxuXG4uYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi13aWR0aDogMTBweDtcbiAgcGFkZGluZzogM3B4IDdweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNmZmY7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5OTk7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG59XG5cbi5iYWRnZTplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5idG4gLmJhZGdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0xcHg7XG59XG5cbi5idG4teHMgLmJhZGdlLFxuLmJ0bi1ncm91cC14cyA+IC5idG4gLmJhZGdlLFxuLmJ0bi1ncm91cC14cyA+IC5idG4gLmJhZGdlIHtcbiAgdG9wOiAwO1xuICBwYWRkaW5nOiAxcHggNXB4O1xufVxuXG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSA+IC5iYWRnZSxcbi5uYXYtcGlsbHMgPiAuYWN0aXZlID4gYSA+IC5iYWRnZSB7XG4gIGNvbG9yOiAjM2EzOTNiO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4ubGlzdC1ncm91cC1pdGVtID4gLmJhZGdlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4ubGlzdC1ncm91cC1pdGVtID4gLmJhZGdlICsgLmJhZGdlIHtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG5cbi5uYXYtcGlsbHMgPiBsaSA+IGEgPiAuYmFkZ2Uge1xuICBtYXJnaW4tbGVmdDogM3B4O1xufVxuXG5hLmJhZGdlOmhvdmVyLFxuYS5iYWRnZTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmp1bWJvdHJvbiB7XG4gIHBhZGRpbmctdG9wOiAzMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMzBweDtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5qdW1ib3Ryb24gaDEsXG4uanVtYm90cm9uIC5oMSB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG4uanVtYm90cm9uIHAge1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiAyMDA7XG59XG5cbi5qdW1ib3Ryb24gPiBociB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNlNmU2ZTY7XG59XG5cbi5jb250YWluZXIgLmp1bWJvdHJvbixcbi5jb250YWluZXItZmx1aWQgLmp1bWJvdHJvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cblxuLmp1bWJvdHJvbiAuY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkge1xuICAuanVtYm90cm9uIHtcbiAgICBwYWRkaW5nLXRvcDogNDhweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDhweDtcbiAgfVxuICAuY29udGFpbmVyIC5qdW1ib3Ryb24sXG4gIC5jb250YWluZXItZmx1aWQgLmp1bWJvdHJvbiB7XG4gICAgcGFkZGluZy1sZWZ0OiA2MHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDYwcHg7XG4gIH1cbiAgLmp1bWJvdHJvbiBoMSxcbiAgLmp1bWJvdHJvbiAuaDEge1xuICAgIGZvbnQtc2l6ZTogNjNweDtcbiAgfVxufVxuXG4udGh1bWJuYWlsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDRweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDI5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYm9yZGVyIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIC1vLXRyYW5zaXRpb246IGJvcmRlciAwLjJzIGVhc2UtaW4tb3V0O1xuICB0cmFuc2l0aW9uOiBib3JkZXIgMC4ycyBlYXNlLWluLW91dDtcbn1cblxuLnRodW1ibmFpbCA+IGltZyxcbi50aHVtYm5haWwgYSA+IGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLnRodW1ibmFpbCAuY2FwdGlvbiB7XG4gIHBhZGRpbmc6IDlweDtcbiAgY29sb3I6ICMyMjI7XG59XG5cbmEudGh1bWJuYWlsOmhvdmVyLFxuYS50aHVtYm5haWw6Zm9jdXMsXG5hLnRodW1ibmFpbC5hY3RpdmUge1xuICBib3JkZXItY29sb3I6ICMzYTM5M2I7XG59XG5cbi5hbGVydCB7XG4gIHBhZGRpbmc6IDhweCAxNXB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLmFsZXJ0IGg0IHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5hbGVydCAuYWxlcnQtbGluayB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uYWxlcnQgPiBwLFxuLmFsZXJ0ID4gdWwge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uYWxlcnQgPiBwICsgcCB7XG4gIG1hcmdpbi10b3A6IDVweDtcbn1cblxuLmFsZXJ0LWRpc21pc3NhYmxlLCAuYWxlcnQtZGlzbWlzc2libGUge1xuICBwYWRkaW5nLXJpZ2h0OiA4cHggMTVweDIwO1xufVxuXG4uYWxlcnQtZGlzbWlzc2FibGUgLmNsb3NlLCAuYWxlcnQtZGlzbWlzc2libGUgLmNsb3NlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0ycHg7XG4gIHJpZ2h0OiAtMjFweDtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5hbGVydC1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RhZTZjYjtcbiAgYm9yZGVyLWNvbG9yOiAjOGNjNjNmO1xuICBjb2xvcjogIzZjNmM2Yztcbn1cblxuLmFsZXJ0LXN1Y2Nlc3MgaHIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjN2ZiNjM2O1xufVxuXG4uYWxlcnQtc3VjY2VzcyAuYWxlcnQtbGluayB7XG4gIGNvbG9yOiAjNTI1MjUyO1xufVxuXG4uYWxlcnQtaW5mbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOWVkZjc7XG4gIGJvcmRlci1jb2xvcjogIzAwOGFiZjtcbiAgY29sb3I6ICM2YzZjNmM7XG59XG5cbi5hbGVydC1pbmZvIGhyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzAwNzhhNjtcbn1cblxuLmFsZXJ0LWluZm8gLmFsZXJ0LWxpbmsge1xuICBjb2xvcjogIzUyNTI1Mjtcbn1cblxuLmFsZXJ0LXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFlM2MyO1xuICBib3JkZXItY29sb3I6ICNmZGI4MTM7XG4gIGNvbG9yOiAjNmM2YzZjO1xufVxuXG4uYWxlcnQtd2FybmluZyBociB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNmNGFkMDI7XG59XG5cbi5hbGVydC13YXJuaW5nIC5hbGVydC1saW5rIHtcbiAgY29sb3I6ICM1MjUyNTI7XG59XG5cbi5hbGVydC1kYW5nZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWFjM2M3O1xuICBib3JkZXItY29sb3I6ICNkOTE4MmQ7XG4gIGNvbG9yOiAjNmM2YzZjO1xufVxuXG4uYWxlcnQtZGFuZ2VyIGhyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2MyMTUyODtcbn1cblxuLmFsZXJ0LWRhbmdlciAuYWxlcnQtbGluayB7XG4gIGNvbG9yOiAjNTI1MjUyO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcHJvZ3Jlc3MtYmFyLXN0cmlwZXMge1xuICBmcm9tIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0MHB4IDA7XG4gIH1cbiAgdG8ge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHByb2dyZXNzLWJhci1zdHJpcGVzIHtcbiAgZnJvbSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNDBweCAwO1xuICB9XG4gIHRvIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XG4gIH1cbn1cblxuLnByb2dyZXNzIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgaGVpZ2h0OiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuLnByb2dyZXNzLWJhciB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNhMzkzYjtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICAtd2Via2l0LXRyYW5zaXRpb246IHdpZHRoIDAuNnMgZWFzZTtcbiAgLW8tdHJhbnNpdGlvbjogd2lkdGggMC42cyBlYXNlO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGVhc2U7XG59XG5cbi5wcm9ncmVzcy1zdHJpcGVkIC5wcm9ncmVzcy1iYXIsXG4ucHJvZ3Jlc3MtYmFyLXN0cmlwZWQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtc2l6ZTogNDBweCA0MHB4O1xufVxuXG4ucHJvZ3Jlc3MuYWN0aXZlIC5wcm9ncmVzcy1iYXIsXG4ucHJvZ3Jlc3MtYmFyLmFjdGl2ZSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBwcm9ncmVzcy1iYXItc3RyaXBlcyAycyBsaW5lYXIgaW5maW5pdGU7XG4gIC1vLWFuaW1hdGlvbjogcHJvZ3Jlc3MtYmFyLXN0cmlwZXMgMnMgbGluZWFyIGluZmluaXRlO1xuICBhbmltYXRpb246IHByb2dyZXNzLWJhci1zdHJpcGVzIDJzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuLnByb2dyZXNzLWJhci1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVjYjg1Yztcbn1cblxuLnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhci1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4ucHJvZ3Jlc3MtYmFyLWluZm8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWJjMGRlO1xufVxuXG4ucHJvZ3Jlc3Mtc3RyaXBlZCAucHJvZ3Jlc3MtYmFyLWluZm8ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG59XG5cbi5wcm9ncmVzcy1iYXItd2FybmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGFkNGU7XG59XG5cbi5wcm9ncmVzcy1zdHJpcGVkIC5wcm9ncmVzcy1iYXItd2FybmluZyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbn1cblxuLnByb2dyZXNzLWJhci1kYW5nZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDk1MzRmO1xufVxuXG4ucHJvZ3Jlc3Mtc3RyaXBlZCAucHJvZ3Jlc3MtYmFyLWRhbmdlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbn1cblxuLm1lZGlhIHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cblxuLm1lZGlhOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLm1lZGlhLFxuLm1lZGlhLWJvZHkge1xuICB6b29tOiAxO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubWVkaWEtYm9keSB7XG4gIHdpZHRoOiAxMDAwMHB4O1xufVxuXG4ubWVkaWEtb2JqZWN0IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5tZWRpYS1vYmplY3QuaW1nLXRodW1ibmFpbCB7XG4gIG1heC13aWR0aDogbm9uZTtcbn1cblxuLm1lZGlhLXJpZ2h0LFxuLm1lZGlhID4gLnB1bGwtcmlnaHQge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi5tZWRpYS1sZWZ0LFxuLm1lZGlhID4gLnB1bGwtbGVmdCB7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG59XG5cbi5tZWRpYS1sZWZ0LFxuLm1lZGlhLXJpZ2h0LFxuLm1lZGlhLWJvZHkge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG4ubWVkaWEtbWlkZGxlIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLm1lZGlhLWJvdHRvbSB7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG5cbi5tZWRpYS1oZWFkaW5nIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4ubWVkaWEtbGlzdCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLmxpc3QtZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gIG1hcmdpbi1ib3R0b206IC0xcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW06bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbn1cblxuYS5saXN0LWdyb3VwLWl0ZW0sXG5idXR0b24ubGlzdC1ncm91cC1pdGVtIHtcbiAgY29sb3I6ICM1NTU7XG59XG5cbmEubGlzdC1ncm91cC1pdGVtIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0gLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgY29sb3I6ICMzMzM7XG59XG5cbmEubGlzdC1ncm91cC1pdGVtOmhvdmVyLFxuYS5saXN0LWdyb3VwLWl0ZW06Zm9jdXMsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtOmhvdmVyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICM1NTU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG59XG5cbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0ge1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZCxcbi5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQ6aG92ZXIsXG4ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY29sb3I6ICM5OTk7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZDpob3ZlciAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsXG4ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG4ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCxcbi5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQ6aG92ZXIgLmxpc3QtZ3JvdXAtaXRlbS10ZXh0LFxuLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZDpmb2N1cyAubGlzdC1ncm91cC1pdGVtLXRleHQge1xuICBjb2xvcjogIzk5OTtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUsXG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpob3Zlcixcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzIHtcbiAgei1pbmRleDogMjtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYTM5M2I7XG4gIGJvcmRlci1jb2xvcjogIzNhMzkzYjtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nID4gc21hbGwsXG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcgPiAuc21hbGwsXG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpob3ZlciAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsXG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpob3ZlciAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcgPiBzbWFsbCxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmhvdmVyIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyA+IC5zbWFsbCxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyA+IHNtYWxsLFxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6Zm9jdXMgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nID4gLnNtYWxsIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmhvdmVyIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCB7XG4gIGNvbG9yOiAjYTA5ZWEyO1xufVxuXG4ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3Mge1xuICBjb2xvcjogIzZjNmM2YztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RhZTZjYjtcbn1cblxuYS5saXN0LWdyb3VwLWl0ZW0tc3VjY2VzcyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2VzcyB7XG4gIGNvbG9yOiAjNmM2YzZjO1xufVxuXG5hLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2VzcyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuYS5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzczpob3ZlcixcbmEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3M6Zm9jdXMsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3M6aG92ZXIsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3M6Zm9jdXMge1xuICBjb2xvcjogIzZjNmM2YztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NlZGViYTtcbn1cblxuYS5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzcy5hY3RpdmUsXG5hLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmFjdGl2ZTpob3ZlcixcbmEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlOmZvY3VzLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmFjdGl2ZSxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzcy5hY3RpdmU6aG92ZXIsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2YzZjNmM7XG4gIGJvcmRlci1jb2xvcjogIzZjNmM2Yztcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS1pbmZvIHtcbiAgY29sb3I6ICM2YzZjNmM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOWVkZjc7XG59XG5cbmEubGlzdC1ncm91cC1pdGVtLWluZm8sXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm8ge1xuICBjb2xvcjogIzZjNmM2Yztcbn1cblxuYS5saXN0LWdyb3VwLWl0ZW0taW5mbyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm8gLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbmEubGlzdC1ncm91cC1pdGVtLWluZm86aG92ZXIsXG5hLmxpc3QtZ3JvdXAtaXRlbS1pbmZvOmZvY3VzLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvOmhvdmVyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvOmZvY3VzIHtcbiAgY29sb3I6ICM2YzZjNmM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjNGUzZjM7XG59XG5cbmEubGlzdC1ncm91cC1pdGVtLWluZm8uYWN0aXZlLFxuYS5saXN0LWdyb3VwLWl0ZW0taW5mby5hY3RpdmU6aG92ZXIsXG5hLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLmFjdGl2ZTpmb2N1cyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mby5hY3RpdmUsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm8uYWN0aXZlOmhvdmVyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLmFjdGl2ZTpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNmM2YzZjO1xuICBib3JkZXItY29sb3I6ICM2YzZjNmM7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZyB7XG4gIGNvbG9yOiAjNmM2YzZjO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFlM2MyO1xufVxuXG5hLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nIHtcbiAgY29sb3I6ICM2YzZjNmM7XG59XG5cbmEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG5hLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nOmhvdmVyLFxuYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZzpmb2N1cyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZzpob3ZlcixcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZzpmb2N1cyB7XG4gIGNvbG9yOiAjNmM2YzZjO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNkOWFkO1xufVxuXG5hLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmFjdGl2ZSxcbmEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcuYWN0aXZlOmhvdmVyLFxuYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZy5hY3RpdmU6Zm9jdXMsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcuYWN0aXZlLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmFjdGl2ZTpob3ZlcixcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZy5hY3RpdmU6Zm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZjNmM2YztcbiAgYm9yZGVyLWNvbG9yOiAjNmM2YzZjO1xufVxuXG4ubGlzdC1ncm91cC1pdGVtLWRhbmdlciB7XG4gIGNvbG9yOiAjNmM2YzZjO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWFjM2M3O1xufVxuXG5hLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlciB7XG4gIGNvbG9yOiAjNmM2YzZjO1xufVxuXG5hLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbmEubGlzdC1ncm91cC1pdGVtLWRhbmdlcjpob3ZlcixcbmEubGlzdC1ncm91cC1pdGVtLWRhbmdlcjpmb2N1cyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyOmhvdmVyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXI6Zm9jdXMge1xuICBjb2xvcjogIzZjNmM2YztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UzYjBiNTtcbn1cblxuYS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLmFjdGl2ZSxcbmEubGlzdC1ncm91cC1pdGVtLWRhbmdlci5hY3RpdmU6aG92ZXIsXG5hLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlOmZvY3VzLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlOmhvdmVyLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2YzZjNmM7XG4gIGJvcmRlci1jb2xvcjogIzZjNmM2Yztcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4ubGlzdC1ncm91cC1pdGVtLXRleHQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBsaW5lLWhlaWdodDogMS4zO1xufVxuXG4ucGFuZWwge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBib3gtc2hhZG93OiAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbn1cblxuLnBhbmVsLWJvZHkge1xuICBwYWRkaW5nOiAxNXB4O1xufVxuXG4ucGFuZWwtYm9keTpiZWZvcmUsXG4ucGFuZWwtYm9keTphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLnBhbmVsLWJvZHk6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLnBhbmVsLWhlYWRpbmcge1xuICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDJweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMnB4O1xufVxuXG4ucGFuZWwtaGVhZGluZyA+IC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5wYW5lbC10aXRsZSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5wYW5lbC10aXRsZSA+IGEsXG4ucGFuZWwtdGl0bGUgPiBzbWFsbCxcbi5wYW5lbC10aXRsZSA+IC5zbWFsbCxcbi5wYW5lbC10aXRsZSA+IHNtYWxsID4gYSxcbi5wYW5lbC10aXRsZSA+IC5zbWFsbCA+IGEge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLnBhbmVsLWZvb3RlciB7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAycHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDJweDtcbn1cblxuLnBhbmVsID4gLmxpc3QtZ3JvdXAsXG4ucGFuZWwgPiAucGFuZWwtY29sbGFwc2UgPiAubGlzdC1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5wYW5lbCA+IC5saXN0LWdyb3VwIC5saXN0LWdyb3VwLWl0ZW0sXG4ucGFuZWwgPiAucGFuZWwtY29sbGFwc2UgPiAubGlzdC1ncm91cCAubGlzdC1ncm91cC1pdGVtIHtcbiAgYm9yZGVyLXdpZHRoOiAxcHggMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLnBhbmVsID4gLmxpc3QtZ3JvdXA6Zmlyc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC5wYW5lbC1jb2xsYXBzZSA+IC5saXN0LWdyb3VwOmZpcnN0LWNoaWxkIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiAwO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMnB4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAycHg7XG59XG5cbi5wYW5lbCA+IC5saXN0LWdyb3VwOmxhc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnBhbmVsLWNvbGxhcHNlID4gLmxpc3QtZ3JvdXA6bGFzdC1jaGlsZCAubGlzdC1ncm91cC1pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiAwO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMnB4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAycHg7XG59XG5cbi5wYW5lbCA+IC5wYW5lbC1oZWFkaW5nICsgLnBhbmVsLWNvbGxhcHNlID4gLmxpc3QtZ3JvdXAgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xufVxuXG4ucGFuZWwtaGVhZGluZyArIC5saXN0LWdyb3VwIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXdpZHRoOiAwO1xufVxuXG4ubGlzdC1ncm91cCArIC5wYW5lbC1mb290ZXIge1xuICBib3JkZXItdG9wLXdpZHRoOiAwO1xufVxuXG4ucGFuZWwgPiAudGFibGUsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZSxcbi5wYW5lbCA+IC5wYW5lbC1jb2xsYXBzZSA+IC50YWJsZSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5wYW5lbCA+IC50YWJsZSBjYXB0aW9uLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUgY2FwdGlvbixcbi5wYW5lbCA+IC5wYW5lbC1jb2xsYXBzZSA+IC50YWJsZSBjYXB0aW9uIHtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxuXG4ucGFuZWwgPiAudGFibGU6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAycHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDJweDtcbn1cblxuLnBhbmVsID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAycHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAycHg7XG59XG5cbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAycHg7XG59XG5cbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0aDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDJweDtcbn1cblxuLnBhbmVsID4gLnRhYmxlOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMnB4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAycHg7XG59XG5cbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRmb290Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDJweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDJweDtcbn1cblxuLnBhbmVsID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Ym9keTpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRmb290Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRib2R5Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRmb290Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMnB4O1xufVxuXG4ucGFuZWwgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRib2R5Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRib2R5Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRmb290Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRmb290Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Ym9keTpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRmb290Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0aDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDJweDtcbn1cblxuLnBhbmVsID4gLnBhbmVsLWJvZHkgKyAudGFibGUsXG4ucGFuZWwgPiAucGFuZWwtYm9keSArIC50YWJsZS1yZXNwb25zaXZlLFxuLnBhbmVsID4gLnRhYmxlICsgLnBhbmVsLWJvZHksXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSArIC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG59XG5cbi5wYW5lbCA+IC50YWJsZSA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGgsXG4ucGFuZWwgPiAudGFibGUgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgYm9yZGVyLXRvcDogMDtcbn1cblxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQge1xuICBib3JkZXI6IDA7XG59XG5cbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRoOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRkOmZpcnN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiAwO1xufVxuXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGg6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0aDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRkOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0aDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGQ6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0ZDpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGg6bGFzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRkOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmlnaHQ6IDA7XG59XG5cbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHI6Zmlyc3QtY2hpbGQgPiB0ZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHI6Zmlyc3QtY2hpbGQgPiB0aCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHI6Zmlyc3QtY2hpbGQgPiB0ZCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHI6Zmlyc3QtY2hpbGQgPiB0aCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0cjpmaXJzdC1jaGlsZCA+IHRkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyOmZpcnN0LWNoaWxkID4gdGgsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHI6Zmlyc3QtY2hpbGQgPiB0ZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0cjpmaXJzdC1jaGlsZCA+IHRoIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cblxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0cjpsYXN0LWNoaWxkID4gdGQsXG4ucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyOmxhc3QtY2hpbGQgPiB0aCxcbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHI6bGFzdC1jaGlsZCA+IHRkLFxuLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0cjpsYXN0LWNoaWxkID4gdGgsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHI6bGFzdC1jaGlsZCA+IHRkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyOmxhc3QtY2hpbGQgPiB0aCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0cjpsYXN0LWNoaWxkID4gdGQsXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHI6bGFzdC1jaGlsZCA+IHRoIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cblxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUge1xuICBib3JkZXI6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5wYW5lbC1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5wYW5lbC1ncm91cCAucGFuZWwge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG5cbi5wYW5lbC1ncm91cCAucGFuZWwgKyAucGFuZWwge1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG5cbi5wYW5lbC1ncm91cCAucGFuZWwtaGVhZGluZyB7XG4gIGJvcmRlci1ib3R0b206IDA7XG59XG5cbi5wYW5lbC1ncm91cCAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5LFxuLnBhbmVsLWdyb3VwIC5wYW5lbC1oZWFkaW5nICsgLnBhbmVsLWNvbGxhcHNlID4gLmxpc3QtZ3JvdXAge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbn1cblxuLnBhbmVsLWdyb3VwIC5wYW5lbC1mb290ZXIge1xuICBib3JkZXItdG9wOiAwO1xufVxuXG4ucGFuZWwtZ3JvdXAgLnBhbmVsLWZvb3RlciArIC5wYW5lbC1jb2xsYXBzZSAucGFuZWwtYm9keSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xufVxuXG4ucGFuZWwtZGVmYXVsdCB7XG4gIGJvcmRlci1jb2xvcjogI2RkZDtcbn1cblxuLnBhbmVsLWRlZmF1bHQgPiAucGFuZWwtaGVhZGluZyB7XG4gIGNvbG9yOiAjMjIyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBib3JkZXItY29sb3I6ICNkZGQ7XG59XG5cbi5wYW5lbC1kZWZhdWx0ID4gLnBhbmVsLWhlYWRpbmcgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNkZGQ7XG59XG5cbi5wYW5lbC1kZWZhdWx0ID4gLnBhbmVsLWhlYWRpbmcgLmJhZGdlIHtcbiAgY29sb3I6ICNmNWY1ZjU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjI7XG59XG5cbi5wYW5lbC1kZWZhdWx0ID4gLnBhbmVsLWZvb3RlciArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2RkZDtcbn1cblxuLnBhbmVsLXByaW1hcnkge1xuICBib3JkZXItY29sb3I6ICMzYTM5M2I7XG59XG5cbi5wYW5lbC1wcmltYXJ5ID4gLnBhbmVsLWhlYWRpbmcge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNhMzkzYjtcbiAgYm9yZGVyLWNvbG9yOiAjM2EzOTNiO1xufVxuXG4ucGFuZWwtcHJpbWFyeSA+IC5wYW5lbC1oZWFkaW5nICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICBib3JkZXItdG9wLWNvbG9yOiAjM2EzOTNiO1xufVxuXG4ucGFuZWwtcHJpbWFyeSA+IC5wYW5lbC1oZWFkaW5nIC5iYWRnZSB7XG4gIGNvbG9yOiAjM2EzOTNiO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4ucGFuZWwtcHJpbWFyeSA+IC5wYW5lbC1mb290ZXIgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICMzYTM5M2I7XG59XG5cbi5wYW5lbC1zdWNjZXNzIHtcbiAgYm9yZGVyLWNvbG9yOiAjOGNjNjNmO1xufVxuXG4ucGFuZWwtc3VjY2VzcyA+IC5wYW5lbC1oZWFkaW5nIHtcbiAgY29sb3I6ICM2YzZjNmM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkYWU2Y2I7XG4gIGJvcmRlci1jb2xvcjogIzhjYzYzZjtcbn1cblxuLnBhbmVsLXN1Y2Nlc3MgPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzhjYzYzZjtcbn1cblxuLnBhbmVsLXN1Y2Nlc3MgPiAucGFuZWwtaGVhZGluZyAuYmFkZ2Uge1xuICBjb2xvcjogI2RhZTZjYjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZjNmM2Yztcbn1cblxuLnBhbmVsLXN1Y2Nlc3MgPiAucGFuZWwtZm9vdGVyICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjOGNjNjNmO1xufVxuXG4ucGFuZWwtaW5mbyB7XG4gIGJvcmRlci1jb2xvcjogIzAwOGFiZjtcbn1cblxuLnBhbmVsLWluZm8gPiAucGFuZWwtaGVhZGluZyB7XG4gIGNvbG9yOiAjNmM2YzZjO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDllZGY3O1xuICBib3JkZXItY29sb3I6ICMwMDhhYmY7XG59XG5cbi5wYW5lbC1pbmZvID4gLnBhbmVsLWhlYWRpbmcgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gIGJvcmRlci10b3AtY29sb3I6ICMwMDhhYmY7XG59XG5cbi5wYW5lbC1pbmZvID4gLnBhbmVsLWhlYWRpbmcgLmJhZGdlIHtcbiAgY29sb3I6ICNkOWVkZjc7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2YzZjNmM7XG59XG5cbi5wYW5lbC1pbmZvID4gLnBhbmVsLWZvb3RlciArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzAwOGFiZjtcbn1cblxuLnBhbmVsLXdhcm5pbmcge1xuICBib3JkZXItY29sb3I6ICNmZGI4MTM7XG59XG5cbi5wYW5lbC13YXJuaW5nID4gLnBhbmVsLWhlYWRpbmcge1xuICBjb2xvcjogIzZjNmM2YztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZTNjMjtcbiAgYm9yZGVyLWNvbG9yOiAjZmRiODEzO1xufVxuXG4ucGFuZWwtd2FybmluZyA+IC5wYW5lbC1oZWFkaW5nICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICBib3JkZXItdG9wLWNvbG9yOiAjZmRiODEzO1xufVxuXG4ucGFuZWwtd2FybmluZyA+IC5wYW5lbC1oZWFkaW5nIC5iYWRnZSB7XG4gIGNvbG9yOiAjZjFlM2MyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNmM2YzZjO1xufVxuXG4ucGFuZWwtd2FybmluZyA+IC5wYW5lbC1mb290ZXIgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNmZGI4MTM7XG59XG5cbi5wYW5lbC1kYW5nZXIge1xuICBib3JkZXItY29sb3I6ICNkOTE4MmQ7XG59XG5cbi5wYW5lbC1kYW5nZXIgPiAucGFuZWwtaGVhZGluZyB7XG4gIGNvbG9yOiAjNmM2YzZjO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWFjM2M3O1xuICBib3JkZXItY29sb3I6ICNkOTE4MmQ7XG59XG5cbi5wYW5lbC1kYW5nZXIgPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2Q5MTgyZDtcbn1cblxuLnBhbmVsLWRhbmdlciA+IC5wYW5lbC1oZWFkaW5nIC5iYWRnZSB7XG4gIGNvbG9yOiAjZWFjM2M3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNmM2YzZjO1xufVxuXG4ucGFuZWwtZGFuZ2VyID4gLnBhbmVsLWZvb3RlciArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2Q5MTgyZDtcbn1cblxuLmVtYmVkLXJlc3BvbnNpdmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5lbWJlZC1yZXNwb25zaXZlIC5lbWJlZC1yZXNwb25zaXZlLWl0ZW0sXG4uZW1iZWQtcmVzcG9uc2l2ZSBpZnJhbWUsXG4uZW1iZWQtcmVzcG9uc2l2ZSBlbWJlZCxcbi5lbWJlZC1yZXNwb25zaXZlIG9iamVjdCxcbi5lbWJlZC1yZXNwb25zaXZlIHZpZGVvIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyOiAwO1xufVxuXG4uZW1iZWQtcmVzcG9uc2l2ZS0xNmJ5OSB7XG4gIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG59XG5cbi5lbWJlZC1yZXNwb25zaXZlLTRieTMge1xuICBwYWRkaW5nLWJvdHRvbTogNzUlO1xufVxuXG4ud2VsbCB7XG4gIG1pbi1oZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmc6IDE5cHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlM2UzZTM7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG5cbi53ZWxsIGJsb2NrcXVvdGUge1xuICBib3JkZXItY29sb3I6ICNkZGQ7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cblxuLndlbGwtbGcge1xuICBwYWRkaW5nOiAyNHB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG5cbi53ZWxsLXNtIHtcbiAgcGFkZGluZzogOXB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG5cbi5jbG9zZSB7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1zaXplOiAyMXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAjMDAwO1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMCAjZmZmO1xuICBvcGFjaXR5OiAwLjI7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0yMCk7XG59XG5cbi5jbG9zZTpob3Zlcixcbi5jbG9zZTpmb2N1cyB7XG4gIGNvbG9yOiAjMDAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMC41O1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NTApO1xufVxuXG5idXR0b24uY2xvc2Uge1xuICBwYWRkaW5nOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLm1vZGFsLW9wZW4ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubW9kYWwge1xuICBkaXNwbGF5OiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTA1MDtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICBvdXRsaW5lOiAwO1xufVxuXG4ubW9kYWwuZmFkZSAubW9kYWwtZGlhbG9nIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMjUlKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0yNSUpO1xuICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMjUlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTI1JSk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4zcyBlYXNlLW91dDtcbiAgLW1vei10cmFuc2l0aW9uOiAtbW96LXRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0O1xuICAtby10cmFuc2l0aW9uOiAtby10cmFuc2Zvcm0gMC4zcyBlYXNlLW91dDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XG59XG5cbi5tb2RhbC5pbiAubW9kYWwtZGlhbG9nIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG59XG5cbi5tb2RhbC1vcGVuIC5tb2RhbCB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLm1vZGFsLWRpYWxvZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbjogMTBweDtcbn1cblxuLm1vZGFsLWNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTcwLCAxNzAsIDE3MCwgMC4zKTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgM3B4IDlweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIGJveC1zaGFkb3c6IDAgM3B4IDlweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIG91dGxpbmU6IDA7XG59XG5cbi5tb2RhbC1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDQwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4ubW9kYWwtYmFja2Ryb3AuZmFkZSB7XG4gIG9wYWNpdHk6IDA7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcbn1cblxuLm1vZGFsLWJhY2tkcm9wLmluIHtcbiAgb3BhY2l0eTogMC41O1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NTApO1xufVxuXG4ubW9kYWwtaGVhZGVyIHtcbiAgcGFkZGluZzogMjdweCAxNHB4IDE0cHggMzBweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBtaW4taGVpZ2h0OiAyN3B4IDE0cHggMTRweCAzMHB4MjNweDtcbn1cblxuLm1vZGFsLWhlYWRlciAuY2xvc2Uge1xuICBtYXJnaW4tdG9wOiAtMnB4O1xufVxuXG4ubW9kYWwtdGl0bGUge1xuICBtYXJnaW46IDA7XG4gIGxpbmUtaGVpZ2h0OiAyM3B4O1xufVxuXG4ubW9kYWwtYm9keSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMjBweCAzMHB4O1xufVxuXG4ubW9kYWwtZm9vdGVyIHtcbiAgcGFkZGluZzogMjBweCAzMHB4O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4ubW9kYWwtZm9vdGVyOmJlZm9yZSxcbi5tb2RhbC1mb290ZXI6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi5tb2RhbC1mb290ZXI6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLm1vZGFsLWZvb3RlciAuYnRuICsgLmJ0biB7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5tb2RhbC1mb290ZXIgLmJ0bi1ncm91cCAuYnRuICsgLmJ0biB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuXG4ubW9kYWwtZm9vdGVyIC5idG4tYmxvY2sgKyAuYnRuLWJsb2NrIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5tb2RhbC1zY3JvbGxiYXItbWVhc3VyZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtOTk5OXB4O1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBvdmVyZmxvdzogc2Nyb2xsO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLm1vZGFsLWRpYWxvZyB7XG4gICAgd2lkdGg6IDgyNHB4O1xuICAgIG1hcmdpbjogMzBweCBhdXRvO1xuICB9XG4gIC5tb2RhbC1jb250ZW50IHtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNXB4IDE1cHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIGJveC1zaGFkb3c6IDAgNXB4IDE1cHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuICB9XG4gIC5tb2RhbC1zbSB7XG4gICAgd2lkdGg6IDUyNHB4O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLm1vZGFsLWxnIHtcbiAgICB3aWR0aDogMTEyNHB4O1xuICB9XG59XG5cbi50b29sdGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDcwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhTmV1ZU1lZGl1bVwiLCBcIkhlbHZldGljYU5ldWUtTWVkaXVtXCIsIFwiSGVsdmV0aWNhIE5ldWUgTWVkaXVtXCIsIFwiSGVsdmV0aWNhTmV1ZVwiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIFwiTHVjaWRhIEdyYW5kZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIGxpbmUtYnJlYWs6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQyOTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gIHdvcmQtc3BhY2luZzogbm9ybWFsO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBvcGFjaXR5OiAwO1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XG59XG5cbi50b29sdGlwLmluIHtcbiAgb3BhY2l0eTogMC45O1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9OTApO1xufVxuXG4udG9vbHRpcC50b3Age1xuICBtYXJnaW4tdG9wOiAtM3B4O1xuICBwYWRkaW5nOiA1cHggMDtcbn1cblxuLnRvb2x0aXAucmlnaHQge1xuICBtYXJnaW4tbGVmdDogM3B4O1xuICBwYWRkaW5nOiAwIDVweDtcbn1cblxuLnRvb2x0aXAuYm90dG9tIHtcbiAgbWFyZ2luLXRvcDogM3B4O1xuICBwYWRkaW5nOiA1cHggMDtcbn1cblxuLnRvb2x0aXAubGVmdCB7XG4gIG1hcmdpbi1sZWZ0OiAtM3B4O1xuICBwYWRkaW5nOiAwIDVweDtcbn1cblxuLnRvb2x0aXAtaW5uZXIge1xuICBtYXgtd2lkdGg6IDIwMHB4O1xuICBwYWRkaW5nOiAzcHggOHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG5cbi50b29sdGlwLWFycm93IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuXG4udG9vbHRpcC50b3AgLnRvb2x0aXAtYXJyb3cge1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gIGJvcmRlci13aWR0aDogNXB4IDVweCAwO1xuICBib3JkZXItdG9wLWNvbG9yOiAjMDAwO1xufVxuXG4udG9vbHRpcC50b3AtbGVmdCAudG9vbHRpcC1hcnJvdyB7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogLTVweDtcbiAgYm9yZGVyLXdpZHRoOiA1cHggNXB4IDA7XG4gIGJvcmRlci10b3AtY29sb3I6ICMwMDA7XG59XG5cbi50b29sdGlwLnRvcC1yaWdodCAudG9vbHRpcC1hcnJvdyB7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogNXB4O1xuICBtYXJnaW4tYm90dG9tOiAtNXB4O1xuICBib3JkZXItd2lkdGg6IDVweCA1cHggMDtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzAwMDtcbn1cblxuLnRvb2x0aXAucmlnaHQgLnRvb2x0aXAtYXJyb3cge1xuICB0b3A6IDUwJTtcbiAgbGVmdDogMDtcbiAgbWFyZ2luLXRvcDogLTVweDtcbiAgYm9yZGVyLXdpZHRoOiA1cHggNXB4IDVweCAwO1xuICBib3JkZXItcmlnaHQtY29sb3I6ICMwMDA7XG59XG5cbi50b29sdGlwLmxlZnQgLnRvb2x0aXAtYXJyb3cge1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IDA7XG4gIG1hcmdpbi10b3A6IC01cHg7XG4gIGJvcmRlci13aWR0aDogNXB4IDAgNXB4IDVweDtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICMwMDA7XG59XG5cbi50b29sdGlwLmJvdHRvbSAudG9vbHRpcC1hcnJvdyB7XG4gIHRvcDogMDtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTVweDtcbiAgYm9yZGVyLXdpZHRoOiAwIDVweCA1cHg7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICMwMDA7XG59XG5cbi50b29sdGlwLmJvdHRvbS1sZWZ0IC50b29sdGlwLWFycm93IHtcbiAgdG9wOiAwO1xuICByaWdodDogNXB4O1xuICBtYXJnaW4tdG9wOiAtNXB4O1xuICBib3JkZXItd2lkdGg6IDAgNXB4IDVweDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzAwMDtcbn1cblxuLnRvb2x0aXAuYm90dG9tLXJpZ2h0IC50b29sdGlwLWFycm93IHtcbiAgdG9wOiAwO1xuICBsZWZ0OiA1cHg7XG4gIG1hcmdpbi10b3A6IC01cHg7XG4gIGJvcmRlci13aWR0aDogMCA1cHggNXB4O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjMDAwO1xufVxuXG4ucG9wb3ZlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDYwO1xuICBkaXNwbGF5OiBub25lO1xuICBtYXgtd2lkdGg6IDI3NnB4O1xuICBwYWRkaW5nOiAxcHg7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYU5ldWVNZWRpdW1cIiwgXCJIZWx2ZXRpY2FOZXVlLU1lZGl1bVwiLCBcIkhlbHZldGljYSBOZXVlIE1lZGl1bVwiLCBcIkhlbHZldGljYU5ldWVcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBcIkx1Y2lkYSBHcmFuZGVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBsaW5lLWJyZWFrOiBhdXRvO1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0Mjk7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHRleHQtYWxpZ246IHN0YXJ0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgd29yZC1icmVhazogbm9ybWFsO1xuICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA1cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGJveC1zaGFkb3c6IDAgNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xufVxuXG4ucG9wb3Zlci50b3Age1xuICBtYXJnaW4tdG9wOiAtMTBweDtcbn1cblxuLnBvcG92ZXIucmlnaHQge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLnBvcG92ZXIuYm90dG9tIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLnBvcG92ZXIubGVmdCB7XG4gIG1hcmdpbi1sZWZ0OiAtMTBweDtcbn1cblxuLnBvcG92ZXItdGl0bGUge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDhweCAxNHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWJlYmViO1xuICBib3JkZXItcmFkaXVzOiAycHggMnB4IDAgMDtcbn1cblxuLnBvcG92ZXItY29udGVudCB7XG4gIHBhZGRpbmc6IDlweCAxNHB4O1xufVxuXG4ucG9wb3ZlciA+IC5hcnJvdyxcbi5wb3BvdmVyID4gLmFycm93OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbn1cblxuLnBvcG92ZXIgPiAuYXJyb3cge1xuICBib3JkZXItd2lkdGg6IDExcHg7XG59XG5cbi5wb3BvdmVyID4gLmFycm93OmFmdGVyIHtcbiAgYm9yZGVyLXdpZHRoOiAxMHB4O1xuICBjb250ZW50OiBcIlwiO1xufVxuXG4ucG9wb3Zlci50b3AgPiAuYXJyb3cge1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMTFweDtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzk5OTk5OTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgYm90dG9tOiAtMTFweDtcbn1cblxuLnBvcG92ZXIudG9wID4gLmFycm93OmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGJvdHRvbTogMXB4O1xuICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gIGJvcmRlci10b3AtY29sb3I6ICNmZmY7XG59XG5cbi5wb3BvdmVyLnJpZ2h0ID4gLmFycm93IHtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IC0xMXB4O1xuICBtYXJnaW4tdG9wOiAtMTFweDtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogIzk5OTk5OTtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjUpO1xufVxuXG4ucG9wb3Zlci5yaWdodCA+IC5hcnJvdzphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBsZWZ0OiAxcHg7XG4gIGJvdHRvbTogLTEwcHg7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItcmlnaHQtY29sb3I6ICNmZmY7XG59XG5cbi5wb3BvdmVyLmJvdHRvbSA+IC5hcnJvdyB7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0xMXB4O1xuICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjOTk5OTk5O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICB0b3A6IC0xMXB4O1xufVxuXG4ucG9wb3Zlci5ib3R0b20gPiAuYXJyb3c6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgdG9wOiAxcHg7XG4gIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2ZmZjtcbn1cblxuLnBvcG92ZXIubGVmdCA+IC5hcnJvdyB7XG4gIHRvcDogNTAlO1xuICByaWdodDogLTExcHg7XG4gIG1hcmdpbi10b3A6IC0xMXB4O1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjOTk5OTk5O1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI1KTtcbn1cblxuLnBvcG92ZXIubGVmdCA+IC5hcnJvdzphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICByaWdodDogMXB4O1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjZmZmO1xuICBib3R0b206IC0xMHB4O1xufVxuXG4uY2Fyb3VzZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jYXJvdXNlbC1pbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jYXJvdXNlbC1pbm5lciA+IC5pdGVtIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAtd2Via2l0LXRyYW5zaXRpb246IDAuNnMgZWFzZS1pbi1vdXQgbGVmdDtcbiAgLW8tdHJhbnNpdGlvbjogMC42cyBlYXNlLWluLW91dCBsZWZ0O1xuICB0cmFuc2l0aW9uOiAwLjZzIGVhc2UtaW4tb3V0IGxlZnQ7XG59XG5cbi5jYXJvdXNlbC1pbm5lciA+IC5pdGVtID4gaW1nLFxuLmNhcm91c2VsLWlubmVyID4gLml0ZW0gPiBhID4gaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuQG1lZGlhIGFsbCBhbmQgKHRyYW5zZm9ybS0zZCksICgtd2Via2l0LXRyYW5zZm9ybS0zZCkge1xuICAuY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbSB7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjZzIGVhc2UtaW4tb3V0O1xuICAgIC1tb3otdHJhbnNpdGlvbjogLW1vei10cmFuc2Zvcm0gMC42cyBlYXNlLWluLW91dDtcbiAgICAtby10cmFuc2l0aW9uOiAtby10cmFuc2Zvcm0gMC42cyBlYXNlLWluLW91dDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC42cyBlYXNlLWluLW91dDtcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtbW96LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLXdlYmtpdC1wZXJzcGVjdGl2ZTogMTAwMHB4O1xuICAgIC1tb3otcGVyc3BlY3RpdmU6IDEwMDBweDtcbiAgICBwZXJzcGVjdGl2ZTogMTAwMHB4O1xuICB9XG4gIC5jYXJvdXNlbC1pbm5lciA+IC5pdGVtLm5leHQsXG4gIC5jYXJvdXNlbC1pbm5lciA+IC5pdGVtLmFjdGl2ZS5yaWdodCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgbGVmdDogMDtcbiAgfVxuICAuY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbS5wcmV2LFxuICAuY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbS5hY3RpdmUubGVmdCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICBsZWZ0OiAwO1xuICB9XG4gIC5jYXJvdXNlbC1pbm5lciA+IC5pdGVtLm5leHQubGVmdCxcbiAgLmNhcm91c2VsLWlubmVyID4gLml0ZW0ucHJldi5yaWdodCxcbiAgLmNhcm91c2VsLWlubmVyID4gLml0ZW0uYWN0aXZlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICBsZWZ0OiAwO1xuICB9XG59XG5cbi5jYXJvdXNlbC1pbm5lciA+IC5hY3RpdmUsXG4uY2Fyb3VzZWwtaW5uZXIgPiAubmV4dCxcbi5jYXJvdXNlbC1pbm5lciA+IC5wcmV2IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5jYXJvdXNlbC1pbm5lciA+IC5hY3RpdmUge1xuICBsZWZ0OiAwO1xufVxuXG4uY2Fyb3VzZWwtaW5uZXIgPiAubmV4dCxcbi5jYXJvdXNlbC1pbm5lciA+IC5wcmV2IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uY2Fyb3VzZWwtaW5uZXIgPiAubmV4dCB7XG4gIGxlZnQ6IDEwMCU7XG59XG5cbi5jYXJvdXNlbC1pbm5lciA+IC5wcmV2IHtcbiAgbGVmdDogLTEwMCU7XG59XG5cbi5jYXJvdXNlbC1pbm5lciA+IC5uZXh0LmxlZnQsXG4uY2Fyb3VzZWwtaW5uZXIgPiAucHJldi5yaWdodCB7XG4gIGxlZnQ6IDA7XG59XG5cbi5jYXJvdXNlbC1pbm5lciA+IC5hY3RpdmUubGVmdCB7XG4gIGxlZnQ6IC0xMDAlO1xufVxuXG4uY2Fyb3VzZWwtaW5uZXIgPiAuYWN0aXZlLnJpZ2h0IHtcbiAgbGVmdDogMTAwJTtcbn1cblxuLmNhcm91c2VsLWNvbnRyb2wge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTUlO1xuICBvcGFjaXR5OiAwLjU7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT01MCk7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG5cbi5jYXJvdXNlbC1jb250cm9sLmxlZnQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDAsIDAsIDAsIDAuNSkgMCUsIHJnYmEoMCwgMCwgMCwgMC4wMDAxKSAxMDAlKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMCwgMCwgMCwgMC41KSAwJSwgcmdiYSgwLCAwLCAwLCAwLjAwMDEpIDEwMCUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC41KSAwJSwgcmdiYSgwLCAwLCAwLCAwLjAwMDEpIDEwMCUpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyM4MDAwMDAwMCcsIGVuZENvbG9yc3RyPScjMDAwMDAwMDAnLCBHcmFkaWVudFR5cGU9MSk7XG59XG5cbi5jYXJvdXNlbC1jb250cm9sLnJpZ2h0IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMCwgMCwgMCwgMC4wMDAxKSAwJSwgcmdiYSgwLCAwLCAwLCAwLjUpIDEwMCUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgwLCAwLCAwLCAwLjAwMDEpIDAlLCByZ2JhKDAsIDAsIDAsIDAuNSkgMTAwJSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwLjAwMDEpIDAlLCByZ2JhKDAsIDAsIDAsIDAuNSkgMTAwJSk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzAwMDAwMDAwJywgZW5kQ29sb3JzdHI9JyM4MDAwMDAwMCcsIEdyYWRpZW50VHlwZT0xKTtcbn1cblxuLmNhcm91c2VsLWNvbnRyb2w6aG92ZXIsXG4uY2Fyb3VzZWwtY29udHJvbDpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIG9wYWNpdHk6IDAuOTtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTkwKTtcbn1cblxuLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldixcbi5jYXJvdXNlbC1jb250cm9sIC5pY29uLW5leHQsXG4uY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCxcbi5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1yaWdodCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6IC0xMHB4O1xuICB6LWluZGV4OiA1O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5jYXJvdXNlbC1jb250cm9sIC5pY29uLXByZXYsXG4uY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCB7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xufVxuXG4uY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1uZXh0LFxuLmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0IHtcbiAgcmlnaHQ6IDUwJTtcbiAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbn1cblxuLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldixcbi5jYXJvdXNlbC1jb250cm9sIC5pY29uLW5leHQge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1mYW1pbHk6IHNlcmlmO1xufVxuXG4uY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1wcmV2OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXDIwMzknO1xufVxuXG4uY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1uZXh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXDIwM2EnO1xufVxuXG4uY2Fyb3VzZWwtaW5kaWNhdG9ycyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxMHB4O1xuICBsZWZ0OiA1MCU7XG4gIHotaW5kZXg6IDE1O1xuICB3aWR0aDogNjAlO1xuICBtYXJnaW4tbGVmdDogLTMwJTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5jYXJvdXNlbC1pbmRpY2F0b3JzIGxpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBtYXJnaW46IDFweDtcbiAgdGV4dC1pbmRlbnQ6IC05OTlweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwIFxcOTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5jYXJvdXNlbC1pbmRpY2F0b3JzIC5hY3RpdmUge1xuICBtYXJnaW46IDA7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEycHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5jYXJvdXNlbC1jYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxNSU7XG4gIHJpZ2h0OiAxNSU7XG4gIGJvdHRvbTogMjBweDtcbiAgei1pbmRleDogMTA7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG5cbi5jYXJvdXNlbC1jYXB0aW9uIC5idG4ge1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQsXG4gIC5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1yaWdodCxcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldixcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dCB7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIG1hcmdpbi10b3A6IC0xNXB4O1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgfVxuICAuY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCxcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldiB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuICB9XG4gIC5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1yaWdodCxcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbiAgfVxuICAuY2Fyb3VzZWwtY2FwdGlvbiB7XG4gICAgbGVmdDogMjAlO1xuICAgIHJpZ2h0OiAyMCU7XG4gICAgcGFkZGluZy1ib3R0b206IDMwcHg7XG4gIH1cbiAgLmNhcm91c2VsLWluZGljYXRvcnMge1xuICAgIGJvdHRvbTogMjBweDtcbiAgfVxufVxuXG4uY2xlYXJmaXg6YmVmb3JlLFxuLmNsZWFyZml4OmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuXG4uY2xlYXJmaXg6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLmNlbnRlci1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4ucHVsbC1yaWdodCB7XG4gIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xufVxuXG4ucHVsbC1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbn1cblxuLmhpZGUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5zaG93IHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cblxuLmludmlzaWJsZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnRleHQtaGlkZSB7XG4gIGZvbnQ6IDAvMCBhO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xufVxuXG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uYWZmaXgge1xuICBwb3NpdGlvbjogZml4ZWQ7XG59XG5cbkAtbXMtdmlld3BvcnQge1xuICB3aWR0aDogZGV2aWNlLXdpZHRoO1xufVxuXG4udmlzaWJsZS14cyB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLnZpc2libGUtc20ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi52aXNpYmxlLW1kIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4udmlzaWJsZS1sZyB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLnZpc2libGUteHMtYmxvY2ssXG4udmlzaWJsZS14cy1pbmxpbmUsXG4udmlzaWJsZS14cy1pbmxpbmUtYmxvY2ssXG4udmlzaWJsZS1zbS1ibG9jayxcbi52aXNpYmxlLXNtLWlubGluZSxcbi52aXNpYmxlLXNtLWlubGluZS1ibG9jayxcbi52aXNpYmxlLW1kLWJsb2NrLFxuLnZpc2libGUtbWQtaW5saW5lLFxuLnZpc2libGUtbWQtaW5saW5lLWJsb2NrLFxuLnZpc2libGUtbGctYmxvY2ssXG4udmlzaWJsZS1sZy1pbmxpbmUsXG4udmlzaWJsZS1sZy1pbmxpbmUtYmxvY2sge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudmlzaWJsZS14cyB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICB0YWJsZS52aXNpYmxlLXhzIHtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50O1xuICB9XG4gIHRyLnZpc2libGUteHMge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xuICB9XG4gIHRoLnZpc2libGUteHMsXG4gIHRkLnZpc2libGUteHMge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnZpc2libGUteHMtYmxvY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC52aXNpYmxlLXhzLWlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC52aXNpYmxlLXhzLWlubGluZS1ibG9jayB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gIC52aXNpYmxlLXNtIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIHRhYmxlLnZpc2libGUtc20ge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG4gIH1cbiAgdHIudmlzaWJsZS1zbSB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGgudmlzaWJsZS1zbSxcbiAgdGQudmlzaWJsZS1zbSB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAudmlzaWJsZS1zbS1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLnZpc2libGUtc20taW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLnZpc2libGUtc20taW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSBhbmQgKG1heC13aWR0aDogMTY3OSkge1xuICAudmlzaWJsZS1tZCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICB0YWJsZS52aXNpYmxlLW1kIHtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50O1xuICB9XG4gIHRyLnZpc2libGUtbWQge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xuICB9XG4gIHRoLnZpc2libGUtbWQsXG4gIHRkLnZpc2libGUtbWQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSBhbmQgKG1heC13aWR0aDogMTY3OSkge1xuICAudmlzaWJsZS1tZC1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSBhbmQgKG1heC13aWR0aDogMTY3OSkge1xuICAudmlzaWJsZS1tZC1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIGFuZCAobWF4LXdpZHRoOiAxNjc5KSB7XG4gIC52aXNpYmxlLW1kLWlubGluZS1ibG9jayB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDE2ODApIHtcbiAgLnZpc2libGUtbGcge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGFibGUudmlzaWJsZS1sZyB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbiAgfVxuICB0ci52aXNpYmxlLWxnIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDtcbiAgfVxuICB0aC52aXNpYmxlLWxnLFxuICB0ZC52aXNpYmxlLWxnIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDE2ODApIHtcbiAgLnZpc2libGUtbGctYmxvY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDE2ODApIHtcbiAgLnZpc2libGUtbGctaW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTY4MCkge1xuICAudmlzaWJsZS1sZy1pbmxpbmUtYmxvY2sge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkge1xuICAuaGlkZGVuLXhzIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gIC5oaWRkZW4tc20ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSBhbmQgKG1heC13aWR0aDogMTY3OSkge1xuICAuaGlkZGVuLW1kIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDE2ODApIHtcbiAgLmhpZGRlbi1sZyB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi52aXNpYmxlLXByaW50IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgcHJpbnQge1xuICAudmlzaWJsZS1wcmludCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICB0YWJsZS52aXNpYmxlLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50O1xuICB9XG4gIHRyLnZpc2libGUtcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xuICB9XG4gIHRoLnZpc2libGUtcHJpbnQsXG4gIHRkLnZpc2libGUtcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgfVxufVxuXG4udmlzaWJsZS1wcmludC1ibG9jayB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIHByaW50IHtcbiAgLnZpc2libGUtcHJpbnQtYmxvY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLnZpc2libGUtcHJpbnQtaW5saW5lIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgcHJpbnQge1xuICAudmlzaWJsZS1wcmludC1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi52aXNpYmxlLXByaW50LWlubGluZS1ibG9jayB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIHByaW50IHtcbiAgLnZpc2libGUtcHJpbnQtaW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgcHJpbnQge1xuICAuaGlkZGVuLXByaW50IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLyogXG5UaGUgTUlUIExpY2Vuc2UgKE1JVClcblxuQ29weXJpZ2h0IChjKSAyMDEzLTIwMTUgYm9vdHN0cmFwLXNlbGVjdFxuXG5QZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG5vZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG5pbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG50byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG5jb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbmZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cblRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cblxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG5GSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbkxJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG5PVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuU09GVFdBUkUuICovXG4uYm9vdHN0cmFwLXNlbGVjdCB7XG4gIC8qd2lkdGg6IDIyMHB4XFw5OyBJRTggYW5kIGJlbG93Ki9cbiAgd2lkdGg6IDIyMHB4IFxcMDtcbiAgLypJRTkgYW5kIGJlbG93Ki9cbn1cblxuLmJvb3RzdHJhcC1zZWxlY3QgPiAuYnRuIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNDBweDtcbiAgcGFkZGluZy1yaWdodDogMjVweDtcbn1cblxuLmVycm9yIC5ib290c3RyYXAtc2VsZWN0IC5idG4ge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYjk0YTQ4O1xufVxuXG4uY29udHJvbC1ncm91cC5lcnJvciAuYm9vdHN0cmFwLXNlbGVjdCAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjYjk0YTQ4O1xufVxuXG4uYm9vdHN0cmFwLXNlbGVjdC5maXQtd2lkdGgge1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xufVxuXG4uYm9vdHN0cmFwLXNlbGVjdDpub3QoW2NsYXNzKj1cImNvbC1cIl0pOm5vdChbY2xhc3MqPVwiZm9ybS1jb250cm9sXCJdKTpub3QoLmlucHV0LWdyb3VwLWJ0bikge1xuICB3aWR0aDogMjIwcHg7XG59XG5cbi5ib290c3RyYXAtc2VsZWN0IC5idG46Zm9jdXMge1xuICBvdXRsaW5lOiB0aGluIGRvdHRlZCAjMzMzMzMzICFpbXBvcnRhbnQ7XG4gIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvciAhaW1wb3J0YW50O1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cblxuLmJvb3RzdHJhcC1zZWxlY3QuZm9ybS1jb250cm9sIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4uYm9vdHN0cmFwLXNlbGVjdC5mb3JtLWNvbnRyb2w6bm90KFtjbGFzcyo9XCJjb2wtXCJdKSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uYm9vdHN0cmFwLXNlbGVjdC5idG4tZ3JvdXA6bm90KC5pbnB1dC1ncm91cC1idG4pLFxuLmJvb3RzdHJhcC1zZWxlY3QuYnRuLWdyb3VwW2NsYXNzKj1cImNvbC1cIl0ge1xuICBmbG9hdDogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLmJvb3RzdHJhcC1zZWxlY3QuYnRuLWdyb3VwLmRyb3Bkb3duLW1lbnUtcmlnaHQsXG4uYm9vdHN0cmFwLXNlbGVjdC5idG4tZ3JvdXBbY2xhc3MqPVwiY29sLVwiXS5kcm9wZG93bi1tZW51LXJpZ2h0LFxuLnJvdy1mbHVpZCAuYm9vdHN0cmFwLXNlbGVjdC5idG4tZ3JvdXBbY2xhc3MqPVwiY29sLVwiXS5kcm9wZG93bi1tZW51LXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4uZm9ybS1zZWFyY2ggLmJvb3RzdHJhcC1zZWxlY3QuYnRuLWdyb3VwLFxuLmZvcm0taW5saW5lIC5ib290c3RyYXAtc2VsZWN0LmJ0bi1ncm91cCxcbi5mb3JtLWhvcml6b250YWwgLmJvb3RzdHJhcC1zZWxlY3QuYnRuLWdyb3VwLFxuLmZvcm0tZ3JvdXAgLmJvb3RzdHJhcC1zZWxlY3QuYnRuLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmZvcm0tZ3JvdXAtbGcgLmJvb3RzdHJhcC1zZWxlY3QuYnRuLWdyb3VwLmZvcm0tY29udHJvbCxcbi5mb3JtLWdyb3VwLXNtIC5ib290c3RyYXAtc2VsZWN0LmJ0bi1ncm91cC5mb3JtLWNvbnRyb2wge1xuICBwYWRkaW5nOiAwO1xufVxuXG4uZm9ybS1pbmxpbmUgLmJvb3RzdHJhcC1zZWxlY3QuYnRuLWdyb3VwIC5mb3JtLWNvbnRyb2wge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmlucHV0LWFwcGVuZCAuYm9vdHN0cmFwLXNlbGVjdC5idG4tZ3JvdXAge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cblxuLmlucHV0LXByZXBlbmQgLmJvb3RzdHJhcC1zZWxlY3QuYnRuLWdyb3VwIHtcbiAgbWFyZ2luLXJpZ2h0OiAtMXB4O1xufVxuXG4uYm9vdHN0cmFwLXNlbGVjdC5idG4tZ3JvdXAgPiAuZGlzYWJsZWQge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uYm9vdHN0cmFwLXNlbGVjdC5idG4tZ3JvdXAgPiAuZGlzYWJsZWQ6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5ib290c3RyYXAtc2VsZWN0LmJ0bi1ncm91cCAuYnRuIC5maWx0ZXItb3B0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmJvb3RzdHJhcC1zZWxlY3QuYnRuLWdyb3VwIC5idG4gLmNhcmV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiA0MHB4O1xuICBtYXJnaW4tdG9wOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2NjYztcbiAgaGVpZ2h0OiAzOHB4O1xufVxuXG4uYm9vdHN0cmFwLXNlbGVjdC5idG4tZ3JvdXAgLmJ0biAuY2FyZXQ6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTg2MSc7XG4gIGZvbnQtZmFtaWx5OiBcImZvbnRlbGxvXCI7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgY29sb3I6ICM2NjY2NjY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMTJweDtcbiAgdG9wOiA5cHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uYm9vdHN0cmFwLXNlbGVjdC5idG4tZ3JvdXAgLmJ0bjpob3ZlciAuY2FyZXQge1xuICBib3JkZXItY29sb3I6ICNhZGFkYWQ7XG59XG5cbi5ib290c3RyYXAtc2VsZWN0LmJ0bi1ncm91cCAuYnRuOmZvY3VzIC5jYXJldCB7XG4gIGJvcmRlci1jb2xvcjogIzhjOGM4Yztcbn1cblxuLmJvb3RzdHJhcC1zZWxlY3QuYnRuLWdyb3VwW2NsYXNzKj1cImNvbC1cIl0gLmJ0biB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uYm9vdHN0cmFwLXNlbGVjdC5idG4tZ3JvdXAgLmRyb3Bkb3duLW1lbnUge1xuICBtaW4td2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDEwMzU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5ib290c3RyYXAtc2VsZWN0LmJ0bi1ncm91cCAuZHJvcGRvd24tbWVudS5pbm5lciB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4uYm9vdHN0cmFwLXNlbGVjdC5idG4tZ3JvdXAgLmRyb3Bkb3duLW1lbnUgbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5ib290c3RyYXAtc2VsZWN0LmJ0bi1ncm91cCAuZHJvcGRvd24tbWVudSBsaTpub3QoLmRpc2FibGVkKSBhOmhvdmVyIHNtYWxsLFxuLmJvb3RzdHJhcC1zZWxlY3QuYnRuLWdyb3VwIC5kcm9wZG93bi1tZW51IGxpOm5vdCguZGlzYWJsZWQpIGE6Zm9jdXMgc21hbGwsXG4uYm9vdHN0cmFwLXNlbGVjdC5idG4tZ3JvdXAgLmRyb3Bkb3duLW1lbnUgbGkuYWN0aXZlOm5vdCguZGlzYWJsZWQpIGEgc21hbGwge1xuICBjb2xvcjogIzY0YjFkODtcbiAgY29sb3I6IGZhZGUoIzY0YjFkOCwgNDAlKTtcbn1cblxuLmJvb3RzdHJhcC1zZWxlY3QuYnRuLWdyb3VwIC5kcm9wZG93bi1tZW51IGxpLmRpc2FibGVkIGEge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uYm9vdHN0cmFwLXNlbGVjdC5idG4tZ3JvdXAgLmRyb3Bkb3duLW1lbnUgbGkgYSB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmJvb3RzdHJhcC1zZWxlY3QuYnRuLWdyb3VwIC5kcm9wZG93bi1tZW51IGxpIGEub3B0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6IDIuMjVlbTtcbn1cblxuLmJvb3RzdHJhcC1zZWxlY3QuYnRuLWdyb3VwIC5kcm9wZG93bi1tZW51IGxpIGEgc3Bhbi5jaGVjay1tYXJrIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmJvb3RzdHJhcC1zZWxlY3QuYnRuLWdyb3VwIC5kcm9wZG93bi1tZW51IGxpIGEgc3Bhbi50ZXh0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uYm9vdHN0cmFwLXNlbGVjdC5idG4tZ3JvdXAgLmRyb3Bkb3duLW1lbnUgbGkgc21hbGwge1xuICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xufVxuXG4uYm9vdHN0cmFwLXNlbGVjdC5idG4tZ3JvdXAgLmRyb3Bkb3duLW1lbnUgLm5vdGlmeSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiA1cHg7XG4gIHdpZHRoOiA5NiU7XG4gIG1hcmdpbjogMCAyJTtcbiAgbWluLWhlaWdodDogMjZweDtcbiAgcGFkZGluZzogM3B4IDVweDtcbiAgYmFja2dyb3VuZDogd2hpdGVzbW9rZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2UzZTNlMztcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IGZhZGUoYmxhY2ssIDUlKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDAuOTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLmJvb3RzdHJhcC1zZWxlY3QuYnRuLWdyb3VwIC5uby1yZXN1bHRzIHtcbiAgcGFkZGluZzogM3B4O1xuICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xuICBtYXJnaW46IDAgNXB4O1xufVxuXG4uYm9vdHN0cmFwLXNlbGVjdC5idG4tZ3JvdXAuZml0LXdpZHRoIC5idG4gLmZpbHRlci1vcHRpb24ge1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuXG4uYm9vdHN0cmFwLXNlbGVjdC5idG4tZ3JvdXAuZml0LXdpZHRoIC5idG4gLmNhcmV0IHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgdG9wOiBhdXRvO1xuICBtYXJnaW4tdG9wOiAtMXB4O1xufVxuXG4uYm9vdHN0cmFwLXNlbGVjdC5idG4tZ3JvdXAuc2hvdy10aWNrIC5kcm9wZG93bi1tZW51IGxpLnNlbGVjdGVkIGEgc3Bhbi5jaGVjay1tYXJrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHJpZ2h0OiAxNXB4O1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG5cbi5ib290c3RyYXAtc2VsZWN0LmJ0bi1ncm91cC5zaG93LXRpY2sgLmRyb3Bkb3duLW1lbnUgbGkgYSBzcGFuLnRleHQge1xuICBtYXJnaW4tcmlnaHQ6IDM0cHg7XG59XG5cbi5ib290c3RyYXAtc2VsZWN0LnNob3ctbWVudS1hcnJvdy5vcGVuID4gLmJ0biB7XG4gIHotaW5kZXg6IDEwMzY7XG59XG5cbi5ib290c3RyYXAtc2VsZWN0LnNob3ctbWVudS1hcnJvdyAuZHJvcGRvd24tdG9nZ2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItbGVmdDogN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDdweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogN3B4O1xuICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2NjY2NjYztcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogZmFkZSgjY2NjY2NjLCAyMCUpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogLTRweDtcbiAgbGVmdDogOXB4O1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uYm9vdHN0cmFwLXNlbGVjdC5zaG93LW1lbnUtYXJyb3cgLmRyb3Bkb3duLXRvZ2dsZTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItbGVmdDogNnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkIHdoaXRlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogLTRweDtcbiAgbGVmdDogMTBweDtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmJvb3RzdHJhcC1zZWxlY3Quc2hvdy1tZW51LWFycm93LmRyb3B1cCAuZHJvcGRvd24tdG9nZ2xlOmJlZm9yZSB7XG4gIGJvdHRvbTogYXV0bztcbiAgdG9wOiAtM3B4O1xuICBib3JkZXItYm90dG9tOiAwO1xuICBib3JkZXItdG9wLXdpZHRoOiA3cHg7XG4gIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICBib3JkZXItdG9wLWNvbG9yOiAjY2NjY2NjO1xuICBib3JkZXItdG9wLWNvbG9yOiBmYWRlKCNjY2NjY2MsIDIwJSk7XG59XG5cbi5ib290c3RyYXAtc2VsZWN0LnNob3ctbWVudS1hcnJvdy5kcm9wdXAgLmRyb3Bkb3duLXRvZ2dsZTphZnRlciB7XG4gIGJvdHRvbTogYXV0bztcbiAgdG9wOiAtM3B4O1xuICBib3JkZXItdG9wOiA2cHggc29saWQgd2hpdGU7XG4gIGJvcmRlci1ib3R0b206IDA7XG59XG5cbi5ib290c3RyYXAtc2VsZWN0LnNob3ctbWVudS1hcnJvdy5wdWxsLXJpZ2h0IC5kcm9wZG93bi10b2dnbGU6YmVmb3JlIHtcbiAgcmlnaHQ6IDEycHg7XG4gIGxlZnQ6IGF1dG87XG59XG5cbi5ib290c3RyYXAtc2VsZWN0LnNob3ctbWVudS1hcnJvdy5wdWxsLXJpZ2h0IC5kcm9wZG93bi10b2dnbGU6YWZ0ZXIge1xuICByaWdodDogMTNweDtcbiAgbGVmdDogYXV0bztcbn1cblxuLmJvb3RzdHJhcC1zZWxlY3Quc2hvdy1tZW51LWFycm93Lm9wZW4gPiAuZHJvcGRvd24tdG9nZ2xlOmJlZm9yZSxcbi5ib290c3RyYXAtc2VsZWN0LnNob3ctbWVudS1hcnJvdy5vcGVuID4gLmRyb3Bkb3duLXRvZ2dsZTphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uYm9vdHN0cmFwLXNlbGVjdC5idG4tZ3JvdXAub3BlbiAuYnRuIC5jYXJldCB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjYWRhZGFkO1xufVxuXG4uYm9vdHN0cmFwLXNlbGVjdC5idG4tZ3JvdXAub3BlbiAuYnRuOmhvdmVyIC5jYXJldCB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjOGM4YzhjO1xufVxuXG4uYnMtc2VhcmNoYm94LFxuLmJzLWFjdGlvbnNib3gge1xuICBwYWRkaW5nOiA0cHggOHB4O1xufVxuXG4uYnMtYWN0aW9uc2JveCB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLmJzLWFjdGlvbnNib3ggLmJ0bi1ncm91cCBidXR0b24ge1xuICB3aWR0aDogNTAlO1xufVxuXG4uYnMtc2VhcmNoYm94ICsgLmJzLWFjdGlvbnNib3gge1xuICBwYWRkaW5nOiAwIDhweCA0cHg7XG59XG5cbi5icy1zZWFyY2hib3ggaW5wdXQuZm9ybS1jb250cm9sIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5tb2JpbGUtZGV2aWNlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMDtcbn1cblxuLmNvbnRhaW5lciB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogODBweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiA2MHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5hbGVydCB7XG4gIGJvcmRlci13aWR0aDogMCAwIDAgNXB4O1xufVxuXG4vKiBCb2R5IHNwZWNzICovXG5ib2R5IHtcbiAgY29sb3I6ICMyMjI7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG59XG5cbi8qIE1lc3NhZ2Ugd2FybmluZyB1c2VycyB0aGF0IHNvbWUgZmVhdHVyZXMgbWlnaHQgbm90IGJlIHN1cHBvcnRlZCBpbiBvbGQgYnJvd3NlcnMgKi9cbi5icm93c2VydXBncmFkZSB7XG4gIG1hcmdpbjogMC4yZW0gMDtcbiAgYmFja2dyb3VuZDogI2NjYztcbiAgY29sb3I6ICMwMDA7XG4gIHBhZGRpbmc6IDAuMmVtIDA7XG59XG5cbi8qIFRvcGJhciAqL1xuLnRvcGJhciB7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6ICMyMjI7XG59XG5cbi50b3BiYXIgLmJhbm5lci1hcmVhIHtcbiAgYmFja2dyb3VuZDogIzIyMjtcbn1cblxuLnRvcGJhciAuYmFubmVyLWFyZWEgaDEge1xuICBtYXJnaW46IDAgMCAwIC04MHB4O1xuICBwYWRkaW5nOiAwIDAgMCA4MHB4O1xuICBoZWlnaHQ6IDU1cHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybChcIi4uL2ltYWdlcy9sb2dvLXdoaXRlLnBuZ1wiKSBuby1yZXBlYXQgMjRweCAzcHg7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2FOZXVlQm9sZFwiLCBcIkhlbHZldGljYU5ldWUtQm9sZFwiLCBcIkhlbHZldGljYU5ldWUgQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlIEJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYU5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgXCJMdWNpZGEgR3JhbmRlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMS41NzFlbTtcbiAgbGluZS1oZWlnaHQ6IDU1cHg7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi50b3BiYXIgLnRhYi1hcmVhIHtcbiAgYmFja2dyb3VuZDogIzNhMzkzYjtcbiAgaGVpZ2h0OiA0MHB4O1xufVxuXG4udG9wYmFyIC50YWItYXJlYSBzcGFuLmhvc3RuYW1lIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZSBMVCBXMUcgNTUgUm9tYW5cIiwgXCJIZWx2ZXRpY2EgTmV1ZSBMVCBXMUdcIiwgXCJIZWx2ZXRpY2FOZXVlIFJvbWFuXCIsIFwiSGVsdmV0aWNhTmV1ZS1Sb21hblwiLCBcIkhlbHZldGljYSBOZXVlIFJvbWFuXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIFwiTHVjaWRhIEdyYW5kZVwiLCBzYW5zLXNlcmlmO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxM3B0O1xuICBmb250LXdlaWdodDogNDAwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDhweCAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLnRvcGJhciAudGFiLWFyZWEgdWwubmF2LW1lbnUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwIDAgMCAyNHB4O1xufVxuXG4udG9wYmFyIC50YWItYXJlYSB1bC5uYXYtbWVudSBsaSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBkaXNwbGF5OiBibG9jaztcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi50b3BiYXIgLnRhYi1hcmVhIHVsLm5hdi1tZW51IGxpIGEsIC50b3BiYXIgLnRhYi1hcmVhIHVsLm5hdi1tZW51IGxpIC5kaXNhYmxlZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2FOZXVlQm9sZFwiLCBcIkhlbHZldGljYU5ldWUtQm9sZFwiLCBcIkhlbHZldGljYU5ldWUgQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlIEJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYU5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgXCJMdWNpZGEgR3JhbmRlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtc2l6ZTogMTNwdDtcbiAgcGFkZGluZzogOHB4IDQwcHg7XG4gIG1pbi13aWR0aDogMTkwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLnRvcGJhciAudGFiLWFyZWEgdWwubmF2LW1lbnUgbGkgLmRpc2FibGVkIHtcbiAgY29sb3I6ICM5OTk7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLnRvcGJhciAudGFiLWFyZWEgdWwubmF2LW1lbnUgbGkgLmRpc2FibGVkIC5kaWdpdC1jb250YWluZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udG9wYmFyIC50YWItYXJlYSB1bC5uYXYtbWVudSBsaSAuZGlnaXQtY29udGFpbmVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBiYWNrZ3JvdW5kOiAjNTU1O1xuICBib3JkZXI6IDJweCBzb2xpZCAjNTU1O1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhTmV1ZU1lZGl1bVwiLCBcIkhlbHZldGljYU5ldWUtTWVkaXVtXCIsIFwiSGVsdmV0aWNhIE5ldWUgTWVkaXVtXCIsIFwiSGVsdmV0aWNhTmV1ZVwiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIFwiTHVjaWRhIEdyYW5kZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmc6IDAgOHB4O1xufVxuXG4udG9wYmFyIC50YWItYXJlYSB1bC5uYXYtbWVudSBsaS5jdXJyZW50IC5kaWdpdC1jb250YWluZXIge1xuICBib3JkZXItY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG4udG9wYmFyIC50YWItYXJlYSB1bC5uYXYtbWVudSBsaS5jdXJyZW50Lmhvc3RzIHtcbiAgYmFja2dyb3VuZDogIzAwOGFiZjtcbn1cblxuLnRvcGJhciAudGFiLWFyZWEgdWwubmF2LW1lbnUgbGkuY3VycmVudC5ndWVzdHMge1xuICBiYWNrZ3JvdW5kOiAjOGNjNjNmO1xufVxuXG4udG9wYmFyIC50YWItYXJlYSB1bC5uYXYtbWVudSBsaS5jdXJyZW50LnRlbXBsYXRlcyB7XG4gIGJhY2tncm91bmQ6ICMwMGE2YTA7XG59XG5cbi50b3BiYXIgLnRhYi1hcmVhIHVsLm5hdi1tZW51IGxpLmN1cnJlbnQuc3RvcmFnZSB7XG4gIGJhY2tncm91bmQ6ICNmZWI4MTM7XG59XG5cbi50b3BiYXIgLnRhYi1hcmVhIHVsLm5hdi1tZW51IGxpLmN1cnJlbnQubmV0d29ya3Mge1xuICBiYWNrZ3JvdW5kOiAjN2YxYzdkO1xufVxuXG4udG9wYmFyIC50YWItYXJlYSB1bC5uYXYtbWVudSBsaS5jdXJyZW50LmFkbWluaXN0cmF0aW9uIHtcbiAgYmFja2dyb3VuZDogI2Q5MTgyZDtcbn1cblxuLnRvcGJhciAucGFuZWwtYWN0aW9ucy1hcmVhIHtcbiAgbWluLWhlaWdodDogNDBweDtcbn1cblxuLmxvZ2luLWFyZWEge1xuICBtYXJnaW46IDkwcHggYXV0byAwO1xuICB3aWR0aDogMzAwcHg7XG59XG5cbi5sb2dpbi1hcmVhIC5idG4tbG9naW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgZmxvYXQ6IG5vbmU7XG4gIG1hcmdpbi1ib3R0b206IDUwcHg7XG59XG5cbi5sb2dpbi1hcmVhIC5jb2wtbWQtMTIsIC5sb2dpbi1hcmVhIC5jb2wtbGctMTIge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmxvZ2luLWFyZWEgLmJvb3RzdHJhcC1zZWxlY3QsXG4ubG9naW4tYXJlYSAuc2VsZWN0cGlja2VyIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhTmV1ZUxpZ2h0XCIsIFwiSGVsdmV0aWNhTmV1ZS1MaWdodFwiLCBcIkhlbHZldGljYU5ldWUgTGlnaHRcIiwgXCJIZWx2ZXRpY2FOZXVlXCIsIFwiSGVsdmV0aWNhTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBcIkx1Y2lkYSBHcmFuZGVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B0O1xufVxuXG4ubG9naW4tYXJlYSAuZHJvcGRvd24tdG9nZ2xlLnNlbGVjdHBpY2tlciB7XG4gIGhlaWdodDogNDBweDtcbn1cblxuLmxvZ2luLWFyZWEgLmZvcm0tZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4ubG9naW4tYXJlYSAuZm9ybS1ncm91cDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmJ0biB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYU5ldWVNZWRpdW1cIiwgXCJIZWx2ZXRpY2FOZXVlLU1lZGl1bVwiLCBcIkhlbHZldGljYSBOZXVlIE1lZGl1bVwiLCBcIkhlbHZldGljYU5ldWVcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBcIkx1Y2lkYSBHcmFuZGVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B0O1xufVxuXG4uYnRuLWxvZ2luIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDhhYmY7XG4gIGJvcmRlci1jb2xvcjogIzAwOGFiZjtcbn1cblxuLmJ0bi1sb2dpbjpmb2N1cyxcbi5idG4tbG9naW4uZm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNjU4YztcbiAgYm9yZGVyLWNvbG9yOiAjMDAyZTQwO1xufVxuXG4uYnRuLWxvZ2luOmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDY1OGM7XG4gIGJvcmRlci1jb2xvcjogIzAwNWU4Mjtcbn1cblxuLmJ0bi1sb2dpbjphY3RpdmUsXG4uYnRuLWxvZ2luLmFjdGl2ZSxcbi5vcGVuID4gLmJ0bi1sb2dpbi5kcm9wZG93bi10b2dnbGUge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNjU4YztcbiAgYm9yZGVyLWNvbG9yOiAjMDA1ZTgyO1xufVxuXG4uYnRuLWxvZ2luOmFjdGl2ZTpob3Zlcixcbi5idG4tbG9naW46YWN0aXZlOmZvY3VzLFxuLmJ0bi1sb2dpbjphY3RpdmUuZm9jdXMsXG4uYnRuLWxvZ2luLmFjdGl2ZTpob3Zlcixcbi5idG4tbG9naW4uYWN0aXZlOmZvY3VzLFxuLmJ0bi1sb2dpbi5hY3RpdmUuZm9jdXMsXG4ub3BlbiA+IC5idG4tbG9naW4uZHJvcGRvd24tdG9nZ2xlOmhvdmVyLFxuLm9wZW4gPiAuYnRuLWxvZ2luLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyxcbi5vcGVuID4gLmJ0bi1sb2dpbi5kcm9wZG93bi10b2dnbGUuZm9jdXMge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNGI2ODtcbiAgYm9yZGVyLWNvbG9yOiAjMDAyZTQwO1xufVxuXG4uYnRuLWxvZ2luOmFjdGl2ZSxcbi5idG4tbG9naW4uYWN0aXZlLFxuLm9wZW4gPiAuYnRuLWxvZ2luLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG5cbi5idG4tbG9naW4uZGlzYWJsZWQsXG4uYnRuLWxvZ2luLmRpc2FibGVkOmhvdmVyLFxuLmJ0bi1sb2dpbi5kaXNhYmxlZDpmb2N1cyxcbi5idG4tbG9naW4uZGlzYWJsZWQuZm9jdXMsXG4uYnRuLWxvZ2luLmRpc2FibGVkOmFjdGl2ZSxcbi5idG4tbG9naW4uZGlzYWJsZWQuYWN0aXZlLFxuLmJ0bi1sb2dpbltkaXNhYmxlZF0sXG4uYnRuLWxvZ2luW2Rpc2FibGVkXTpob3Zlcixcbi5idG4tbG9naW5bZGlzYWJsZWRdOmZvY3VzLFxuLmJ0bi1sb2dpbltkaXNhYmxlZF0uZm9jdXMsXG4uYnRuLWxvZ2luW2Rpc2FibGVkXTphY3RpdmUsXG4uYnRuLWxvZ2luW2Rpc2FibGVkXS5hY3RpdmUsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1sb2dpbixcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWxvZ2luOmhvdmVyLFxuZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tbG9naW46Zm9jdXMsXG5maWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1sb2dpbi5mb2N1cyxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWxvZ2luOmFjdGl2ZSxcbmZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWxvZ2luLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDhhYmY7XG4gIGJvcmRlci1jb2xvcjogIzAwOGFiZjtcbn1cblxuLmJ0bi1sb2dpbiAuYmFkZ2Uge1xuICBjb2xvcjogIzAwOGFiZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuLypcbiogUHJvamVjdCBLaW1jaGlcbipcbiogQ29weXJpZ2h0IElCTSwgQ29ycC4gMjAxNVxuKlxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgJ0xpY2Vuc2UnKTtcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbipcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuKlxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuKi9cbi5kaWFsb2ctYm9yZGVyLWdyZXkge1xuICBiYWNrZ3JvdW5kLWNsaXA6IGJvcmRlci1ib3g7XG4gIGJvcmRlcjogNnB4IHNvbGlkIHJnYmEoMTcwLCAxNzAsIDE3MCwgMC4zKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4uZGlhbG9nLWNvbnRhaW5lciB7XG4gIGJvcmRlcjogM3B4IHNvbGlkICM5OTk5OTk7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuXG4uZGlhbG9nLWNvbnRhaW5lciAuZGlhbG9nLXRpdGxlIHtcbiAgaGVpZ2h0OiA2MHB4O1xuICBwYWRkaW5nOiAyMHB4IDAgMjBweCAyMHB4O1xuICBtYXJnaW46IDA7XG4gIGZsb2F0OiBsZWZ0O1xuICBmb250LXNpemU6IDI3cHg7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYU5ldWVMaWdodFwiLCBcIkhlbHZldGljYU5ldWUtTGlnaHRcIiwgXCJIZWx2ZXRpY2FOZXVlIExpZ2h0XCIsIFwiSGVsdmV0aWNhTmV1ZVwiLCBcIkhlbHZldGljYU5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgXCJMdWNpZGEgR3JhbmRlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiAzMDAgIWltcG9ydGFudDtcbn1cblxuLmRpYWxvZy1jb250YWluZXIgLmRpYWxvZy1ib2R5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZGlhbG9nLWNvbnRhaW5lciAuZGlhbG9nLWZvb3RlciB7XG4gIGhlaWdodDogNTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOEFCRjtcbn1cblxuLmRpYWxvZy1jb250YWluZXIgLmRpYWxvZy1mb290ZXIgLmRpYWxvZy1idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICB3aWR0aDogNzVweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBsaW5lLWhlaWdodDogMzBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uZGlhbG9nLWNvbnRhaW5lciAuZGlhbG9nLWZvb3RlciAuZGlhbG9nLWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFRUVFRUU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLypcbiogUHJvamVjdCBLaW1jaGlcbipcbiogQ29weXJpZ2h0IElCTSwgQ29ycC4gMjAxNVxuKlxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgJ0xpY2Vuc2UnKTtcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbipcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuKlxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuKi9cbi5tb2RhbC1vcGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm1vZGFsIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwNTA7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgb3V0bGluZTogMDtcbn1cblxuLm1vZGFsLmZhZGUgLm1vZGFsLWRpYWxvZyB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTI1JSk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMjUlKTtcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTI1JSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0yNSUpO1xuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XG4gIC1tb3otdHJhbnNpdGlvbjogLW1vei10cmFuc2Zvcm0gMC4zcyBlYXNlLW91dDtcbiAgLW8tdHJhbnNpdGlvbjogLW8tdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0O1xufVxuXG4ubW9kYWwuaW4gLm1vZGFsLWRpYWxvZyB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xufVxuXG4ubW9kYWwtb3BlbiAubW9kYWwge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5tb2RhbC1kaWFsb2cge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW46IDEwcHg7XG4gIGJvcmRlcjogNnB4IHNvbGlkICNhYWE7XG4gIGJvcmRlcjogNnB4IHNvbGlkIHJnYmEoMTcwLCAxNzAsIDE3MCwgMC4zKTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xufVxuXG4ubW9kYWwtY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYm9yZGVyOiAzcHggc29saWQgIzk5OTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgb3V0bGluZTogMDtcbn1cblxuLm1vZGFsLWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwNDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5tb2RhbC1iYWNrZHJvcC5mYWRlIHtcbiAgb3BhY2l0eTogMDtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO1xufVxuXG4ubW9kYWwtYmFja2Ryb3AuaW4ge1xuICBvcGFjaXR5OiAwLjU7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT01MCk7XG59XG5cbi5tb2RhbC1oZWFkZXIge1xuICBwYWRkaW5nOiAyN3B4IDE0cHggMTRweCAzMHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIG1pbi1oZWlnaHQ6IDI3cHggMTRweCAxNHB4IDMwcHgyM3B4O1xufVxuXG4ubW9kYWwtaGVhZGVyIC5jbG9zZSB7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG5cbi5tb2RhbC10aXRsZSB7XG4gIG1hcmdpbjogMDtcbiAgbGluZS1oZWlnaHQ6IDIzcHg7XG4gIGZvbnQtc2l6ZTogMjdweDtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhTmV1ZUxpZ2h0XCIsIFwiSGVsdmV0aWNhTmV1ZS1MaWdodFwiLCBcIkhlbHZldGljYU5ldWUgTGlnaHRcIiwgXCJIZWx2ZXRpY2FOZXVlXCIsIFwiSGVsdmV0aWNhTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBcIkx1Y2lkYSBHcmFuZGVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDMwMCAhaW1wb3J0YW50O1xufVxuXG4ubW9kYWwtYm9keSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMjBweCAzMHB4O1xufVxuXG4ubW9kYWwtZm9vdGVyIHtcbiAgcGFkZGluZzogMjBweCAzMHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3A6IDA7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG59XG5cbi5tb2RhbC1mb290ZXI6YmVmb3JlLFxuLm1vZGFsLWZvb3RlcjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLm1vZGFsLWZvb3RlcjphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuXG4ubW9kYWwtZm9vdGVyIC5idG4ge1xuICBwYWRkaW5nOiA2cHggMTJweDtcbiAgbWluLXdpZHRoOiA3NXB4O1xufVxuXG4ubW9kYWwtZm9vdGVyIC5idG4gKyAuYnRuIHtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm1vZGFsLWZvb3RlciAuYnRuLWdyb3VwIC5idG4gKyAuYnRuIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG5cbi5tb2RhbC1mb290ZXIgLmJ0bi1ibG9jayArIC5idG4tYmxvY2sge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLm1vZGFsLXNjcm9sbGJhci1tZWFzdXJlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC05OTk5cHg7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIG92ZXJmbG93OiBzY3JvbGw7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAubW9kYWwtZGlhbG9nIHtcbiAgICB3aWR0aDogODI0cHg7XG4gICAgbWFyZ2luOiAzMHB4IGF1dG87XG4gIH1cbiAgLm1vZGFsLWNvbnRlbnQge1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCA1cHggMTVweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgYm94LXNoYWRvdzogMCA1cHggMTVweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIH1cbiAgLm1vZGFsLXNtIHtcbiAgICB3aWR0aDogNTI0cHg7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAubW9kYWwtbGcge1xuICAgIHdpZHRoOiAxMTI0cHg7XG4gIH1cbn1cblxuLm1vZGFsIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAubW9kYWw6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cblxuLm1vZGFsLWRpYWxvZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLypcbiogUHJvamVjdCBLaW1jaGlcbipcbiogQ29weXJpZ2h0IElCTSwgQ29ycC4gMjAxNVxuKlxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgJ0xpY2Vuc2UnKTtcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbipcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuKlxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuKi9cbi5tZW51LWZsYXQgLmJ0biB7XG4gIGJhY2tncm91bmQ6ICM0ZDRjNGUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAxNjBweDtcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYU5ldWVCb2xkXCIsIFwiSGVsdmV0aWNhTmV1ZS1Cb2xkXCIsIFwiSGVsdmV0aWNhTmV1ZSBCb2xkXCIsIFwiSGVsdmV0aWNhIE5ldWUgQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBcIkx1Y2lkYSBHcmFuZGVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAxMy41cHQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiA0MHB4O1xuICBwYWRkaW5nOiA0cHggNDVweCA1cHggMzhweDtcbn1cblxuLm1lbnUtZmxhdCAuYnRuID4gaSB7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgd2lkdGg6IDI2cHg7XG4gIGhlaWdodDogNDBweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiA2cHg7XG59XG5cbi5tZW51LWZsYXQgLmJ0biA+IGk6YmVmb3JlIHtcbiAgbGluZS1oZWlnaHQ6IDQwcHg7XG59XG5cbi5tZW51LWZsYXQgLmNhcmV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci10b3A6IDAgXFw5O1xuICBib3JkZXItcmlnaHQ6IDA7XG4gIGJvcmRlci1sZWZ0OiAwO1xufVxuXG4ubWVudS1mbGF0IC5jYXJldDpiZWZvcmUge1xuICBmb250LWZhbWlseTogXCJmb250ZWxsb1wiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgc3BlYWs6IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB3aWR0aDogMS4yZW07XG4gIGhlaWdodDogMS4yZW07XG4gIG1hcmdpbjogLjVlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAyZW07XG4gIGNvbnRlbnQ6ICdcXGU4NjEnO1xufVxuXG4ubWVudS1mbGF0LmRyb3B1cCxcbi5tZW51LWZsYXQuZHJvcGRvd24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5tZW51LWZsYXQgLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi5tZW51LWZsYXQgLmRyb3Bkb3duLW1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTAwMDtcbiAgZGlzcGxheTogbm9uZTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1pbi13aWR0aDogMTYwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZm9udC1zaXplOiAxMy41cHQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYTM5M2I7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbn1cblxuLm1lbnUtZmxhdCAuZHJvcGRvd24tbWVudS5wdWxsLXJpZ2h0IHtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87XG59XG5cbi5tZW51LWZsYXQgLmRyb3Bkb3duLW1lbnUgLmRpdmlkZXIge1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiA5cHggMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQwNDA0Mjtcbn1cblxuLm1lbnUtZmxhdCAuZHJvcGRvd24tbWVudSA+IGxpID4gYSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMmUyZTJlO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDBweCAxcHggMHB4IDBweCAjNDA0MDQyO1xuICBib3gtc2hhZG93OiBpbnNldCAwcHggMXB4IDBweCAwcHggIzQwNDA0Mjtcbn1cblxuLm1lbnUtZmxhdCAuZHJvcGRvd24tbWVudSA+IGxpOmZpcnN0LWNoaWxkID4gYSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjM2EzOTNiO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5tZW51LWZsYXQgLmRyb3Bkb3duLW1lbnUgPiBsaS5jcml0aWNhbDpsYXN0LWNoaWxkID4gYSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLm1lbnUtZmxhdCAuZHJvcGRvd24tbWVudSA+IGxpID4gYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiA0cHggNnB4O1xuICBjbGVhcjogYm90aDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDMxcHg7XG4gIGNvbG9yOiAjZmZmO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ubWVudS1mbGF0IC5kcm9wZG93bi1tZW51ID4gbGkgPiBhID4gaSB7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB3aWR0aDogMjZweDtcbiAgaGVpZ2h0OiAyNnB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5tZW51LWZsYXQgLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGE6aG92ZXIsXG4ubWVudS1mbGF0IC5kcm9wZG93bi1tZW51ID4gbGkgPiBhOmZvY3VzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNhMzkzYjtcbn1cblxuLm1lbnUtZmxhdCAuZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhLFxuLm1lbnUtZmxhdCAuZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuLm1lbnUtZmxhdCAuZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgb3V0bGluZTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNhMzkzYjtcbn1cblxuLm1lbnUtZmxhdCAuZHJvcGRvd24tbWVudSA+IGxpLmNyaXRpY2FsID4gYSB7XG4gIGJhY2tncm91bmQ6ICNkOTE4MmQ7XG59XG5cbi5tZW51LWZsYXQgLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhLFxuLm1lbnUtZmxhdCAuZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGE6aG92ZXIsXG4ubWVudS1mbGF0IC5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYTpmb2N1cyB7XG4gIGNvbG9yOiAjOTk5O1xufVxuXG4ubWVudS1mbGF0IC5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYTpob3Zlcixcbi5tZW51LWZsYXQgLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhOmZvY3VzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoZW5hYmxlZCA9IGZhbHNlKTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLm1lbnUtZmxhdC5vcGVuIC5idG4ge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG59XG5cbi5tZW51LWZsYXQub3BlbiA+IC5kcm9wZG93bi1tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5tZW51LWZsYXQub3BlbiAuY2FyZXQge1xuICBiYWNrZ3JvdW5kOiAjM2EzOTNiO1xufVxuXG4ubWVudS1mbGF0Lm9wZW4gLmNhcmV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4NjQnO1xufVxuXG4ubWVudS1mbGF0Lm9wZW4gPiBhIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLmRyb3Bkb3duLW1lbnUtcmlnaHQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDtcbn1cblxuLmRyb3Bkb3duLW1lbnUtbGVmdCB7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiBhdXRvO1xufVxuXG4uZHJvcGRvd24taGVhZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDNweCAyMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQyOTtcbiAgY29sb3I6ICM5OTk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5kcm9wZG93bi1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiA5OTA7XG59XG5cbi5wdWxsLXJpZ2h0ID4gLmRyb3Bkb3duLW1lbnUge1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bztcbn1cblxuLmRyb3B1cCAuY2FyZXQsXG4ubmF2YmFyLWZpeGVkLWJvdHRvbSAuZHJvcGRvd24gLmNhcmV0IHtcbiAgYm9yZGVyLXRvcDogMDtcbiAgYm9yZGVyLWJvdHRvbTogNHB4IGRhc2hlZDtcbiAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkIFxcOTtcbiAgY29udGVudDogXCJcIjtcbn1cblxuLmRyb3B1cCAuZHJvcGRvd24tbWVudSxcbi5uYXZiYXItZml4ZWQtYm90dG9tIC5kcm9wZG93biAuZHJvcGRvd24tbWVudSB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAycHg7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAubmF2YmFyLXJpZ2h0IC5kcm9wZG93bi1tZW51IHtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG4gIC5uYXZiYXItcmlnaHQgLmRyb3Bkb3duLW1lbnUtbGVmdCB7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogYXV0bztcbiAgfVxufVxuXG4uaG9zdHMge1xuICAvKiBCb290c3RyYXAgTW9kYWwqL1xufVxuXG4uaG9zdHMgLm1vZGFsLWZvb3RlciB7XG4gIGJhY2tncm91bmQ6ICMwMDhhYmY7XG59XG5cbnByZSB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb250YWluZXIge1xuICAgIHdpZHRoOiAxNTQwcHg7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTY4MHB4KSB7XG4gIC5jb250YWluZXIge1xuICAgIHdpZHRoOiAxNTQwcHg7XG4gIH1cbn1cbiIsIi8qISBTb3VyY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MgKi9cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFByaW50IHN0eWxlcy5cbi8vIElubGluZWQgdG8gYXZvaWQgdGhlIGFkZGl0aW9uYWwgSFRUUCByZXF1ZXN0OiBoNWJwLmNvbS9yXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AbWVkaWEgcHJpbnQge1xuICAgICosXG4gICAgKjpiZWZvcmUsXG4gICAgKjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7IC8vIEJsYWNrIHByaW50cyBmYXN0ZXI6IGg1YnAuY29tL3NcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGEsXG4gICAgYTp2aXNpdGVkIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuXG4gICAgYVtocmVmXTphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKVwiO1xuICAgIH1cblxuICAgIGFiYnJbdGl0bGVdOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCIgKFwiIGF0dHIodGl0bGUpIFwiKVwiO1xuICAgIH1cblxuICAgIC8vIERvbid0IHNob3cgbGlua3MgdGhhdCBhcmUgZnJhZ21lbnQgaWRlbnRpZmllcnMsXG4gICAgLy8gb3IgdXNlIHRoZSBgamF2YXNjcmlwdDpgIHBzZXVkbyBwcm90b2NvbFxuICAgIGFbaHJlZl49XCIjXCJdOmFmdGVyLFxuICAgIGFbaHJlZl49XCJqYXZhc2NyaXB0OlwiXTphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgfVxuXG4gICAgcHJlLFxuICAgIGJsb2NrcXVvdGUge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgdGhlYWQge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IC8vIGg1YnAuY29tL3RcbiAgICB9XG5cbiAgICB0cixcbiAgICBpbWcge1xuICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgcCxcbiAgICBoMixcbiAgICBoMyB7XG4gICAgICAgIG9ycGhhbnM6IDM7XG4gICAgICAgIHdpZG93czogMztcbiAgICB9XG5cbiAgICBoMixcbiAgICBoMyB7XG4gICAgICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkO1xuICAgIH1cblxuICAgIC8vIEJvb3RzdHJhcCBzcGVjaWZpYyBjaGFuZ2VzIHN0YXJ0XG5cbiAgICAvLyBCb290c3RyYXAgY29tcG9uZW50c1xuICAgIC5uYXZiYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAuYnRuLFxuICAgIC5kcm9wdXAgPiAuYnRuIHtcbiAgICAgICAgPiAuY2FyZXQge1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogIzAwMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5sYWJlbCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7XG4gICAgfVxuXG4gICAgLnRhYmxlIHtcbiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSAhaW1wb3J0YW50O1xuXG4gICAgICAgIHRkLFxuICAgICAgICB0aCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnRhYmxlLWJvcmRlcmVkIHtcbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJvb3RzdHJhcCBzcGVjaWZpYyBjaGFuZ2VzIGVuZFxufVxuIiwiLy9cbi8vIEdseXBoaWNvbnMgZm9yIEJvb3RzdHJhcFxuLy9cbi8vIFNpbmNlIGljb25zIGFyZSBmb250cywgdGhleSBjYW4gYmUgcGxhY2VkIGFueXdoZXJlIHRleHQgaXMgcGxhY2VkIGFuZCBhcmVcbi8vIHRodXMgYXV0b21hdGljYWxseSBzaXplZCB0byBtYXRjaCB0aGUgc3Vycm91bmRpbmcgY2hpbGQuIFRvIHVzZSwgY3JlYXRlIGFuXG4vLyBpbmxpbmUgZWxlbWVudCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBjbGFzc2VzLCBsaWtlIHNvOlxuLy9cbi8vIDxhIGhyZWY9XCIjXCI+PHNwYW4gY2xhc3M9XCJnbHlwaGljb24gZ2x5cGhpY29uLXN0YXJcIj48L3NwYW4+IFN0YXI8L2E+XG5cbkBhdC1yb290IHtcbiAgLy8gSW1wb3J0IHRoZSBmb250c1xuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ0dseXBoaWNvbnMgSGFsZmxpbmdzJztcbiAgICBzcmM6IHVybChpZigkYm9vdHN0cmFwLXNhc3MtYXNzZXQtaGVscGVyLCB0d2JzLWZvbnQtcGF0aCgnI3skaWNvbi1mb250LXBhdGh9I3skaWNvbi1mb250LW5hbWV9LmVvdCcpLCAnI3skaWNvbi1mb250LXBhdGh9I3skaWNvbi1mb250LW5hbWV9LmVvdCcpKTtcbiAgICBzcmM6IHVybChpZigkYm9vdHN0cmFwLXNhc3MtYXNzZXQtaGVscGVyLCB0d2JzLWZvbnQtcGF0aCgnI3skaWNvbi1mb250LXBhdGh9I3skaWNvbi1mb250LW5hbWV9LmVvdD8jaWVmaXgnKSwgJyN7JGljb24tZm9udC1wYXRofSN7JGljb24tZm9udC1uYW1lfS5lb3Q/I2llZml4JykpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICAgIHVybChpZigkYm9vdHN0cmFwLXNhc3MtYXNzZXQtaGVscGVyLCB0d2JzLWZvbnQtcGF0aCgnI3skaWNvbi1mb250LXBhdGh9I3skaWNvbi1mb250LW5hbWV9LndvZmYyJyksICcjeyRpY29uLWZvbnQtcGF0aH0jeyRpY29uLWZvbnQtbmFtZX0ud29mZjInKSkgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICAgdXJsKGlmKCRib290c3RyYXAtc2Fzcy1hc3NldC1oZWxwZXIsIHR3YnMtZm9udC1wYXRoKCcjeyRpY29uLWZvbnQtcGF0aH0jeyRpY29uLWZvbnQtbmFtZX0ud29mZicpLCAnI3skaWNvbi1mb250LXBhdGh9I3skaWNvbi1mb250LW5hbWV9LndvZmYnKSkgZm9ybWF0KCd3b2ZmJyksXG4gICAgICAgICB1cmwoaWYoJGJvb3RzdHJhcC1zYXNzLWFzc2V0LWhlbHBlciwgdHdicy1mb250LXBhdGgoJyN7JGljb24tZm9udC1wYXRofSN7JGljb24tZm9udC1uYW1lfS50dGYnKSwgJyN7JGljb24tZm9udC1wYXRofSN7JGljb24tZm9udC1uYW1lfS50dGYnKSkgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICAgdXJsKGlmKCRib290c3RyYXAtc2Fzcy1hc3NldC1oZWxwZXIsIHR3YnMtZm9udC1wYXRoKCcjeyRpY29uLWZvbnQtcGF0aH0jeyRpY29uLWZvbnQtbmFtZX0uc3ZnIyN7JGljb24tZm9udC1zdmctaWR9JyksICcjeyRpY29uLWZvbnQtcGF0aH0jeyRpY29uLWZvbnQtbmFtZX0uc3ZnIyN7JGljb24tZm9udC1zdmctaWR9JykpIGZvcm1hdCgnc3ZnJyk7XG4gIH1cbn1cblxuLy8gQ2F0Y2hhbGwgYmFzZWNsYXNzXG4uZ2x5cGhpY29uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDFweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogJ0dseXBoaWNvbnMgSGFsZmxpbmdzJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi8vIEluZGl2aWR1YWwgaWNvbnNcbi5nbHlwaGljb24tYXN0ZXJpc2sgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDJhXCI7IH0gfVxuLmdseXBoaWNvbi1wbHVzICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMmJcIjsgfSB9XG4uZ2x5cGhpY29uLWV1cm8sXG4uZ2x5cGhpY29uLWV1ciAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwyMGFjXCI7IH0gfVxuLmdseXBoaWNvbi1taW51cyAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMjIxMlwiOyB9IH1cbi5nbHlwaGljb24tY2xvdWQgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDI2MDFcIjsgfSB9XG4uZ2x5cGhpY29uLWVudmVsb3BlICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwyNzA5XCI7IH0gfVxuLmdseXBoaWNvbi1wZW5jaWwgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMjcwZlwiOyB9IH1cbi5nbHlwaGljb24tZ2xhc3MgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMDFcIjsgfSB9XG4uZ2x5cGhpY29uLW11c2ljICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDAyXCI7IH0gfVxuLmdseXBoaWNvbi1zZWFyY2ggICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAwM1wiOyB9IH1cbi5nbHlwaGljb24taGVhcnQgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMDVcIjsgfSB9XG4uZ2x5cGhpY29uLXN0YXIgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDA2XCI7IH0gfVxuLmdseXBoaWNvbi1zdGFyLWVtcHR5ICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAwN1wiOyB9IH1cbi5nbHlwaGljb24tdXNlciAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMDhcIjsgfSB9XG4uZ2x5cGhpY29uLWZpbG0gICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDA5XCI7IH0gfVxuLmdseXBoaWNvbi10aC1sYXJnZSAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAxMFwiOyB9IH1cbi5nbHlwaGljb24tdGggICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMTFcIjsgfSB9XG4uZ2x5cGhpY29uLXRoLWxpc3QgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDEyXCI7IH0gfVxuLmdseXBoaWNvbi1vayAgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAxM1wiOyB9IH1cbi5nbHlwaGljb24tcmVtb3ZlICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMTRcIjsgfSB9XG4uZ2x5cGhpY29uLXpvb20taW4gICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDE1XCI7IH0gfVxuLmdseXBoaWNvbi16b29tLW91dCAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAxNlwiOyB9IH1cbi5nbHlwaGljb24tb2ZmICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMTdcIjsgfSB9XG4uZ2x5cGhpY29uLXNpZ25hbCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDE4XCI7IH0gfVxuLmdseXBoaWNvbi1jb2cgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAxOVwiOyB9IH1cbi5nbHlwaGljb24tdHJhc2ggICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMjBcIjsgfSB9XG4uZ2x5cGhpY29uLWhvbWUgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDIxXCI7IH0gfVxuLmdseXBoaWNvbi1maWxlICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAyMlwiOyB9IH1cbi5nbHlwaGljb24tdGltZSAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMjNcIjsgfSB9XG4uZ2x5cGhpY29uLXJvYWQgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDI0XCI7IH0gfVxuLmdseXBoaWNvbi1kb3dubG9hZC1hbHQgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAyNVwiOyB9IH1cbi5nbHlwaGljb24tZG93bmxvYWQgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMjZcIjsgfSB9XG4uZ2x5cGhpY29uLXVwbG9hZCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDI3XCI7IH0gfVxuLmdseXBoaWNvbi1pbmJveCAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAyOFwiOyB9IH1cbi5nbHlwaGljb24tcGxheS1jaXJjbGUgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMjlcIjsgfSB9XG4uZ2x5cGhpY29uLXJlcGVhdCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDMwXCI7IH0gfVxuLmdseXBoaWNvbi1yZWZyZXNoICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAzMVwiOyB9IH1cbi5nbHlwaGljb24tbGlzdC1hbHQgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMzJcIjsgfSB9XG4uZ2x5cGhpY29uLWxvY2sgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDMzXCI7IH0gfVxuLmdseXBoaWNvbi1mbGFnICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAzNFwiOyB9IH1cbi5nbHlwaGljb24taGVhZHBob25lcyAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMzVcIjsgfSB9XG4uZ2x5cGhpY29uLXZvbHVtZS1vZmYgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDM2XCI7IH0gfVxuLmdseXBoaWNvbi12b2x1bWUtZG93biAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAzN1wiOyB9IH1cbi5nbHlwaGljb24tdm9sdW1lLXVwICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMzhcIjsgfSB9XG4uZ2x5cGhpY29uLXFyY29kZSAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDM5XCI7IH0gfVxuLmdseXBoaWNvbi1iYXJjb2RlICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA0MFwiOyB9IH1cbi5nbHlwaGljb24tdGFnICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNDFcIjsgfSB9XG4uZ2x5cGhpY29uLXRhZ3MgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDQyXCI7IH0gfVxuLmdseXBoaWNvbi1ib29rICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA0M1wiOyB9IH1cbi5nbHlwaGljb24tYm9va21hcmsgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNDRcIjsgfSB9XG4uZ2x5cGhpY29uLXByaW50ICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDQ1XCI7IH0gfVxuLmdseXBoaWNvbi1jYW1lcmEgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA0NlwiOyB9IH1cbi5nbHlwaGljb24tZm9udCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNDdcIjsgfSB9XG4uZ2x5cGhpY29uLWJvbGQgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDQ4XCI7IH0gfVxuLmdseXBoaWNvbi1pdGFsaWMgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA0OVwiOyB9IH1cbi5nbHlwaGljb24tdGV4dC1oZWlnaHQgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNTBcIjsgfSB9XG4uZ2x5cGhpY29uLXRleHQtd2lkdGggICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDUxXCI7IH0gfVxuLmdseXBoaWNvbi1hbGlnbi1sZWZ0ICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA1MlwiOyB9IH1cbi5nbHlwaGljb24tYWxpZ24tY2VudGVyICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNTNcIjsgfSB9XG4uZ2x5cGhpY29uLWFsaWduLXJpZ2h0ICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDU0XCI7IH0gfVxuLmdseXBoaWNvbi1hbGlnbi1qdXN0aWZ5ICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA1NVwiOyB9IH1cbi5nbHlwaGljb24tbGlzdCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNTZcIjsgfSB9XG4uZ2x5cGhpY29uLWluZGVudC1sZWZ0ICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDU3XCI7IH0gfVxuLmdseXBoaWNvbi1pbmRlbnQtcmlnaHQgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA1OFwiOyB9IH1cbi5nbHlwaGljb24tZmFjZXRpbWUtdmlkZW8gICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNTlcIjsgfSB9XG4uZ2x5cGhpY29uLXBpY3R1cmUgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDYwXCI7IH0gfVxuLmdseXBoaWNvbi1tYXAtbWFya2VyICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA2MlwiOyB9IH1cbi5nbHlwaGljb24tYWRqdXN0ICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNjNcIjsgfSB9XG4uZ2x5cGhpY29uLXRpbnQgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDY0XCI7IH0gfVxuLmdseXBoaWNvbi1lZGl0ICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA2NVwiOyB9IH1cbi5nbHlwaGljb24tc2hhcmUgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNjZcIjsgfSB9XG4uZ2x5cGhpY29uLWNoZWNrICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDY3XCI7IH0gfVxuLmdseXBoaWNvbi1tb3ZlICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA2OFwiOyB9IH1cbi5nbHlwaGljb24tc3RlcC1iYWNrd2FyZCAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNjlcIjsgfSB9XG4uZ2x5cGhpY29uLWZhc3QtYmFja3dhcmQgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDcwXCI7IH0gfVxuLmdseXBoaWNvbi1iYWNrd2FyZCAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA3MVwiOyB9IH1cbi5nbHlwaGljb24tcGxheSAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNzJcIjsgfSB9XG4uZ2x5cGhpY29uLXBhdXNlICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDczXCI7IH0gfVxuLmdseXBoaWNvbi1zdG9wICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA3NFwiOyB9IH1cbi5nbHlwaGljb24tZm9yd2FyZCAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNzVcIjsgfSB9XG4uZ2x5cGhpY29uLWZhc3QtZm9yd2FyZCAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDc2XCI7IH0gfVxuLmdseXBoaWNvbi1zdGVwLWZvcndhcmQgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA3N1wiOyB9IH1cbi5nbHlwaGljb24tZWplY3QgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNzhcIjsgfSB9XG4uZ2x5cGhpY29uLWNoZXZyb24tbGVmdCAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDc5XCI7IH0gfVxuLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0ICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA4MFwiOyB9IH1cbi5nbHlwaGljb24tcGx1cy1zaWduICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwODFcIjsgfSB9XG4uZ2x5cGhpY29uLW1pbnVzLXNpZ24gICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDgyXCI7IH0gfVxuLmdseXBoaWNvbi1yZW1vdmUtc2lnbiAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA4M1wiOyB9IH1cbi5nbHlwaGljb24tb2stc2lnbiAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwODRcIjsgfSB9XG4uZ2x5cGhpY29uLXF1ZXN0aW9uLXNpZ24gICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDg1XCI7IH0gfVxuLmdseXBoaWNvbi1pbmZvLXNpZ24gICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA4NlwiOyB9IH1cbi5nbHlwaGljb24tc2NyZWVuc2hvdCAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwODdcIjsgfSB9XG4uZ2x5cGhpY29uLXJlbW92ZS1jaXJjbGUgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDg4XCI7IH0gfVxuLmdseXBoaWNvbi1vay1jaXJjbGUgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA4OVwiOyB9IH1cbi5nbHlwaGljb24tYmFuLWNpcmNsZSAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwOTBcIjsgfSB9XG4uZ2x5cGhpY29uLWFycm93LWxlZnQgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDkxXCI7IH0gfVxuLmdseXBoaWNvbi1hcnJvdy1yaWdodCAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA5MlwiOyB9IH1cbi5nbHlwaGljb24tYXJyb3ctdXAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwOTNcIjsgfSB9XG4uZ2x5cGhpY29uLWFycm93LWRvd24gICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDk0XCI7IH0gfVxuLmdseXBoaWNvbi1zaGFyZS1hbHQgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA5NVwiOyB9IH1cbi5nbHlwaGljb24tcmVzaXplLWZ1bGwgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwOTZcIjsgfSB9XG4uZ2x5cGhpY29uLXJlc2l6ZS1zbWFsbCAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDk3XCI7IH0gfVxuLmdseXBoaWNvbi1leGNsYW1hdGlvbi1zaWduICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEwMVwiOyB9IH1cbi5nbHlwaGljb24tZ2lmdCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMDJcIjsgfSB9XG4uZ2x5cGhpY29uLWxlYWYgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTAzXCI7IH0gfVxuLmdseXBoaWNvbi1maXJlICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEwNFwiOyB9IH1cbi5nbHlwaGljb24tZXllLW9wZW4gICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMDVcIjsgfSB9XG4uZ2x5cGhpY29uLWV5ZS1jbG9zZSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTA2XCI7IH0gfVxuLmdseXBoaWNvbi13YXJuaW5nLXNpZ24gICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEwN1wiOyB9IH1cbi5nbHlwaGljb24tcGxhbmUgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMDhcIjsgfSB9XG4uZ2x5cGhpY29uLWNhbGVuZGFyICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTA5XCI7IH0gfVxuLmdseXBoaWNvbi1yYW5kb20gICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTExMFwiOyB9IH1cbi5nbHlwaGljb24tY29tbWVudCAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMTFcIjsgfSB9XG4uZ2x5cGhpY29uLW1hZ25ldCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTEyXCI7IH0gfVxuLmdseXBoaWNvbi1jaGV2cm9uLXVwICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTExM1wiOyB9IH1cbi5nbHlwaGljb24tY2hldnJvbi1kb3duICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMTRcIjsgfSB9XG4uZ2x5cGhpY29uLXJldHdlZXQgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTE1XCI7IH0gfVxuLmdseXBoaWNvbi1zaG9wcGluZy1jYXJ0ICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTExNlwiOyB9IH1cbi5nbHlwaGljb24tZm9sZGVyLWNsb3NlICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMTdcIjsgfSB9XG4uZ2x5cGhpY29uLWZvbGRlci1vcGVuICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTE4XCI7IH0gfVxuLmdseXBoaWNvbi1yZXNpemUtdmVydGljYWwgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTExOVwiOyB9IH1cbi5nbHlwaGljb24tcmVzaXplLWhvcml6b250YWwgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMjBcIjsgfSB9XG4uZ2x5cGhpY29uLWhkZCAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTIxXCI7IH0gfVxuLmdseXBoaWNvbi1idWxsaG9ybiAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEyMlwiOyB9IH1cbi5nbHlwaGljb24tYmVsbCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMjNcIjsgfSB9XG4uZ2x5cGhpY29uLWNlcnRpZmljYXRlICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTI0XCI7IH0gfVxuLmdseXBoaWNvbi10aHVtYnMtdXAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEyNVwiOyB9IH1cbi5nbHlwaGljb24tdGh1bWJzLWRvd24gICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMjZcIjsgfSB9XG4uZ2x5cGhpY29uLWhhbmQtcmlnaHQgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTI3XCI7IH0gfVxuLmdseXBoaWNvbi1oYW5kLWxlZnQgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEyOFwiOyB9IH1cbi5nbHlwaGljb24taGFuZC11cCAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMjlcIjsgfSB9XG4uZ2x5cGhpY29uLWhhbmQtZG93biAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTMwXCI7IH0gfVxuLmdseXBoaWNvbi1jaXJjbGUtYXJyb3ctcmlnaHQgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEzMVwiOyB9IH1cbi5nbHlwaGljb24tY2lyY2xlLWFycm93LWxlZnQgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMzJcIjsgfSB9XG4uZ2x5cGhpY29uLWNpcmNsZS1hcnJvdy11cCAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTMzXCI7IH0gfVxuLmdseXBoaWNvbi1jaXJjbGUtYXJyb3ctZG93biAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEzNFwiOyB9IH1cbi5nbHlwaGljb24tZ2xvYmUgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMzVcIjsgfSB9XG4uZ2x5cGhpY29uLXdyZW5jaCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTM2XCI7IH0gfVxuLmdseXBoaWNvbi10YXNrcyAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEzN1wiOyB9IH1cbi5nbHlwaGljb24tZmlsdGVyICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMzhcIjsgfSB9XG4uZ2x5cGhpY29uLWJyaWVmY2FzZSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTM5XCI7IH0gfVxuLmdseXBoaWNvbi1mdWxsc2NyZWVuICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE0MFwiOyB9IH1cbi5nbHlwaGljb24tZGFzaGJvYXJkICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNDFcIjsgfSB9XG4uZ2x5cGhpY29uLXBhcGVyY2xpcCAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTQyXCI7IH0gfVxuLmdseXBoaWNvbi1oZWFydC1lbXB0eSAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE0M1wiOyB9IH1cbi5nbHlwaGljb24tbGluayAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNDRcIjsgfSB9XG4uZ2x5cGhpY29uLXBob25lICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTQ1XCI7IH0gfVxuLmdseXBoaWNvbi1wdXNocGluICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE0NlwiOyB9IH1cbi5nbHlwaGljb24tdXNkICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNDhcIjsgfSB9XG4uZ2x5cGhpY29uLWdicCAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTQ5XCI7IH0gfVxuLmdseXBoaWNvbi1zb3J0ICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE1MFwiOyB9IH1cbi5nbHlwaGljb24tc29ydC1ieS1hbHBoYWJldCAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNTFcIjsgfSB9XG4uZ2x5cGhpY29uLXNvcnQtYnktYWxwaGFiZXQtYWx0ICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTUyXCI7IH0gfVxuLmdseXBoaWNvbi1zb3J0LWJ5LW9yZGVyICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE1M1wiOyB9IH1cbi5nbHlwaGljb24tc29ydC1ieS1vcmRlci1hbHQgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNTRcIjsgfSB9XG4uZ2x5cGhpY29uLXNvcnQtYnktYXR0cmlidXRlcyAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTU1XCI7IH0gfVxuLmdseXBoaWNvbi1zb3J0LWJ5LWF0dHJpYnV0ZXMtYWx0IHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE1NlwiOyB9IH1cbi5nbHlwaGljb24tdW5jaGVja2VkICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNTdcIjsgfSB9XG4uZ2x5cGhpY29uLWV4cGFuZCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTU4XCI7IH0gfVxuLmdseXBoaWNvbi1jb2xsYXBzZS1kb3duICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE1OVwiOyB9IH1cbi5nbHlwaGljb24tY29sbGFwc2UtdXAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNjBcIjsgfSB9XG4uZ2x5cGhpY29uLWxvZy1pbiAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTYxXCI7IH0gfVxuLmdseXBoaWNvbi1mbGFzaCAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE2MlwiOyB9IH1cbi5nbHlwaGljb24tbG9nLW91dCAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNjNcIjsgfSB9XG4uZ2x5cGhpY29uLW5ldy13aW5kb3cgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTY0XCI7IH0gfVxuLmdseXBoaWNvbi1yZWNvcmQgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE2NVwiOyB9IH1cbi5nbHlwaGljb24tc2F2ZSAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNjZcIjsgfSB9XG4uZ2x5cGhpY29uLW9wZW4gICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTY3XCI7IH0gfVxuLmdseXBoaWNvbi1zYXZlZCAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE2OFwiOyB9IH1cbi5nbHlwaGljb24taW1wb3J0ICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNjlcIjsgfSB9XG4uZ2x5cGhpY29uLWV4cG9ydCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTcwXCI7IH0gfVxuLmdseXBoaWNvbi1zZW5kICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE3MVwiOyB9IH1cbi5nbHlwaGljb24tZmxvcHB5LWRpc2sgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNzJcIjsgfSB9XG4uZ2x5cGhpY29uLWZsb3BweS1zYXZlZCAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTczXCI7IH0gfVxuLmdseXBoaWNvbi1mbG9wcHktcmVtb3ZlICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE3NFwiOyB9IH1cbi5nbHlwaGljb24tZmxvcHB5LXNhdmUgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNzVcIjsgfSB9XG4uZ2x5cGhpY29uLWZsb3BweS1vcGVuICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTc2XCI7IH0gfVxuLmdseXBoaWNvbi1jcmVkaXQtY2FyZCAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE3N1wiOyB9IH1cbi5nbHlwaGljb24tdHJhbnNmZXIgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNzhcIjsgfSB9XG4uZ2x5cGhpY29uLWN1dGxlcnkgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTc5XCI7IH0gfVxuLmdseXBoaWNvbi1oZWFkZXIgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE4MFwiOyB9IH1cbi5nbHlwaGljb24tY29tcHJlc3NlZCAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxODFcIjsgfSB9XG4uZ2x5cGhpY29uLWVhcnBob25lICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTgyXCI7IH0gfVxuLmdseXBoaWNvbi1waG9uZS1hbHQgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE4M1wiOyB9IH1cbi5nbHlwaGljb24tdG93ZXIgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxODRcIjsgfSB9XG4uZ2x5cGhpY29uLXN0YXRzICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTg1XCI7IH0gfVxuLmdseXBoaWNvbi1zZC12aWRlbyAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE4NlwiOyB9IH1cbi5nbHlwaGljb24taGQtdmlkZW8gICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxODdcIjsgfSB9XG4uZ2x5cGhpY29uLXN1YnRpdGxlcyAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTg4XCI7IH0gfVxuLmdseXBoaWNvbi1zb3VuZC1zdGVyZW8gICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE4OVwiOyB9IH1cbi5nbHlwaGljb24tc291bmQtZG9sYnkgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxOTBcIjsgfSB9XG4uZ2x5cGhpY29uLXNvdW5kLTUtMSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTkxXCI7IH0gfVxuLmdseXBoaWNvbi1zb3VuZC02LTEgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE5MlwiOyB9IH1cbi5nbHlwaGljb24tc291bmQtNy0xICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxOTNcIjsgfSB9XG4uZ2x5cGhpY29uLWNvcHlyaWdodC1tYXJrICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTk0XCI7IH0gfVxuLmdseXBoaWNvbi1yZWdpc3RyYXRpb24tbWFyayAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE5NVwiOyB9IH1cbi5nbHlwaGljb24tY2xvdWQtZG93bmxvYWQgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxOTdcIjsgfSB9XG4uZ2x5cGhpY29uLWNsb3VkLXVwbG9hZCAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTk4XCI7IH0gfVxuLmdseXBoaWNvbi10cmVlLWNvbmlmZXIgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE5OVwiOyB9IH1cbi5nbHlwaGljb24tdHJlZS1kZWNpZHVvdXMgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMDBcIjsgfSB9XG4uZ2x5cGhpY29uLWNkICAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjAxXCI7IH0gfVxuLmdseXBoaWNvbi1zYXZlLWZpbGUgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIwMlwiOyB9IH1cbi5nbHlwaGljb24tb3Blbi1maWxlICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMDNcIjsgfSB9XG4uZ2x5cGhpY29uLWxldmVsLXVwICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjA0XCI7IH0gfVxuLmdseXBoaWNvbi1jb3B5ICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIwNVwiOyB9IH1cbi5nbHlwaGljb24tcGFzdGUgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMDZcIjsgfSB9XG4vLyBUaGUgZm9sbG93aW5nIDIgR2x5cGhpY29ucyBhcmUgb21pdHRlZCBmb3IgdGhlIHRpbWUgYmVpbmcgYmVjYXVzZVxuLy8gdGhleSBjdXJyZW50bHkgdXNlIFVuaWNvZGUgY29kZXBvaW50cyB0aGF0IGFyZSBvdXRzaWRlIHRoZVxuLy8gQmFzaWMgTXVsdGlsaW5ndWFsIFBsYW5lIChCTVApLiBPbGRlciBidWdneSB2ZXJzaW9ucyBvZiBXZWJLaXQgY2FuJ3QgaGFuZGxlXG4vLyBub24tQk1QIGNvZGVwb2ludHMgaW4gQ1NTIHN0cmluZyBlc2NhcGVzLCBhbmQgdGh1cyBjYW4ndCBkaXNwbGF5IHRoZXNlIHR3byBpY29ucy5cbi8vIE5vdGFibHksIHRoZSBidWcgYWZmZWN0cyBzb21lIG9sZGVyIHZlcnNpb25zIG9mIHRoZSBBbmRyb2lkIEJyb3dzZXIuXG4vLyBNb3JlIGluZm86IGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTAxMDZcbi8vIC5nbHlwaGljb24tZG9vciAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDFmNmFhXCI7IH0gfVxuLy8gLmdseXBoaWNvbi1rZXkgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMWY1MTFcIjsgfSB9XG4uZ2x5cGhpY29uLWFsZXJ0ICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjA5XCI7IH0gfVxuLmdseXBoaWNvbi1lcXVhbGl6ZXIgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIxMFwiOyB9IH1cbi5nbHlwaGljb24ta2luZyAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMTFcIjsgfSB9XG4uZ2x5cGhpY29uLXF1ZWVuICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjEyXCI7IH0gfVxuLmdseXBoaWNvbi1wYXduICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIxM1wiOyB9IH1cbi5nbHlwaGljb24tYmlzaG9wICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMTRcIjsgfSB9XG4uZ2x5cGhpY29uLWtuaWdodCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjE1XCI7IH0gfVxuLmdseXBoaWNvbi1iYWJ5LWZvcm11bGEgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIxNlwiOyB9IH1cbi5nbHlwaGljb24tdGVudCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDI2ZmFcIjsgfSB9XG4uZ2x5cGhpY29uLWJsYWNrYm9hcmQgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjE4XCI7IH0gfVxuLmdseXBoaWNvbi1iZWQgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIxOVwiOyB9IH1cbi5nbHlwaGljb24tYXBwbGUgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGY4ZmZcIjsgfSB9XG4uZ2x5cGhpY29uLWVyYXNlICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjIxXCI7IH0gfVxuLmdseXBoaWNvbi1ob3VyZ2xhc3MgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMjMxYlwiOyB9IH1cbi5nbHlwaGljb24tbGFtcCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMjNcIjsgfSB9XG4uZ2x5cGhpY29uLWR1cGxpY2F0ZSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjI0XCI7IH0gfVxuLmdseXBoaWNvbi1waWdneS1iYW5rICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIyNVwiOyB9IH1cbi5nbHlwaGljb24tc2Npc3NvcnMgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMjZcIjsgfSB9XG4uZ2x5cGhpY29uLWJpdGNvaW4gICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjI3XCI7IH0gfVxuLmdseXBoaWNvbi1idGMgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIyN1wiOyB9IH1cbi5nbHlwaGljb24teGJ0ICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMjdcIjsgfSB9XG4uZ2x5cGhpY29uLXllbiAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwwMGE1XCI7IH0gfVxuLmdseXBoaWNvbi1qcHkgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMDBhNVwiOyB9IH1cbi5nbHlwaGljb24tcnVibGUgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDIwYmRcIjsgfSB9XG4uZ2x5cGhpY29uLXJ1YiAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwyMGJkXCI7IH0gfVxuLmdseXBoaWNvbi1zY2FsZSAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIzMFwiOyB9IH1cbi5nbHlwaGljb24taWNlLWxvbGx5ICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMzFcIjsgfSB9XG4uZ2x5cGhpY29uLWljZS1sb2xseS10YXN0ZWQgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjMyXCI7IH0gfVxuLmdseXBoaWNvbi1lZHVjYXRpb24gICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIzM1wiOyB9IH1cbi5nbHlwaGljb24tb3B0aW9uLWhvcml6b250YWwgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMzRcIjsgfSB9XG4uZ2x5cGhpY29uLW9wdGlvbi12ZXJ0aWNhbCAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjM1XCI7IH0gfVxuLmdseXBoaWNvbi1tZW51LWhhbWJ1cmdlciAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIzNlwiOyB9IH1cbi5nbHlwaGljb24tbW9kYWwtd2luZG93ICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMzdcIjsgfSB9XG4uZ2x5cGhpY29uLW9pbCAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjM4XCI7IH0gfVxuLmdseXBoaWNvbi1ncmFpbiAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIzOVwiOyB9IH1cbi5nbHlwaGljb24tc3VuZ2xhc3NlcyAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNDBcIjsgfSB9XG4uZ2x5cGhpY29uLXRleHQtc2l6ZSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjQxXCI7IH0gfVxuLmdseXBoaWNvbi10ZXh0LWNvbG9yICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI0MlwiOyB9IH1cbi5nbHlwaGljb24tdGV4dC1iYWNrZ3JvdW5kICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNDNcIjsgfSB9XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi10b3AgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjQ0XCI7IH0gfVxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24tYm90dG9tICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI0NVwiOyB9IH1cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLWhvcml6b250YWx7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNDZcIjsgfSB9XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi1sZWZ0ICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjQ3XCI7IH0gfVxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24tdmVydGljYWwgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI0OFwiOyB9IH1cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLXJpZ2h0ICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNDlcIjsgfSB9XG4uZ2x5cGhpY29uLXRyaWFuZ2xlLXJpZ2h0ICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjUwXCI7IH0gfVxuLmdseXBoaWNvbi10cmlhbmdsZS1sZWZ0ICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI1MVwiOyB9IH1cbi5nbHlwaGljb24tdHJpYW5nbGUtYm90dG9tICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNTJcIjsgfSB9XG4uZ2x5cGhpY29uLXRyaWFuZ2xlLXRvcCAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjUzXCI7IH0gfVxuLmdseXBoaWNvbi1jb25zb2xlICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI1NFwiOyB9IH1cbi5nbHlwaGljb24tc3VwZXJzY3JpcHQgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNTVcIjsgfSB9XG4uZ2x5cGhpY29uLXN1YnNjcmlwdCAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjU2XCI7IH0gfVxuLmdseXBoaWNvbi1tZW51LWxlZnQgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI1N1wiOyB9IH1cbi5nbHlwaGljb24tbWVudS1yaWdodCAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNThcIjsgfSB9XG4uZ2x5cGhpY29uLW1lbnUtZG93biAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjU5XCI7IH0gfVxuLmdseXBoaWNvbi1tZW51LXVwICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI2MFwiOyB9IH1cbiIsIi8vXG4vLyBTY2FmZm9sZGluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBSZXNldCB0aGUgYm94LXNpemluZ1xuLy9cbi8vIEhlYWRzIHVwISBUaGlzIHJlc2V0IG1heSBjYXVzZSBjb25mbGljdHMgd2l0aCBzb21lIHRoaXJkLXBhcnR5IHdpZGdldHMuXG4vLyBGb3IgcmVjb21tZW5kYXRpb25zIG9uIHJlc29sdmluZyBzdWNoIGNvbmZsaWN0cywgc2VlXG4vLyBodHRwOi8vZ2V0Ym9vdHN0cmFwLmNvbS9nZXR0aW5nLXN0YXJ0ZWQvI3RoaXJkLWJveC1zaXppbmdcbioge1xuICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xufVxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcbn1cblxuXG4vLyBCb2R5IHJlc2V0XG5cbmh0bWwge1xuICBmb250LXNpemU6IDEwcHg7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcbn1cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYmFzZTtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7XG4gIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYmFzZTtcbiAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYm9keS1iZztcbn1cblxuLy8gUmVzZXQgZm9udHMgZm9yIHJlbGV2YW50IGVsZW1lbnRzXG5pbnB1dCxcbmJ1dHRvbixcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cblxuLy8gTGlua3NcblxuYSB7XG4gIGNvbG9yOiAkbGluay1jb2xvcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkbGluay1ob3Zlci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246ICRsaW5rLWhvdmVyLWRlY29yYXRpb247XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBAaW5jbHVkZSB0YWItZm9jdXM7XG4gIH1cbn1cblxuXG4vLyBGaWd1cmVzXG4vL1xuLy8gV2UgcmVzZXQgdGhpcyBoZXJlIGJlY2F1c2UgcHJldmlvdXNseSBOb3JtYWxpemUgaGFkIG5vIGBmaWd1cmVgIG1hcmdpbnMuIFRoaXNcbi8vIGVuc3VyZXMgd2UgZG9uJ3QgYnJlYWsgYW55b25lJ3MgdXNlIG9mIHRoZSBlbGVtZW50LlxuXG5maWd1cmUge1xuICBtYXJnaW46IDA7XG59XG5cblxuLy8gSW1hZ2VzXG5cbmltZyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8vIFJlc3BvbnNpdmUgaW1hZ2VzIChlbnN1cmUgaW1hZ2VzIGRvbid0IHNjYWxlIGJleW9uZCB0aGVpciBwYXJlbnRzKVxuLmltZy1yZXNwb25zaXZlIHtcbiAgQGluY2x1ZGUgaW1nLXJlc3BvbnNpdmU7XG59XG5cbi8vIFJvdW5kZWQgY29ybmVyc1xuLmltZy1yb3VuZGVkIHtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbGFyZ2U7XG59XG5cbi8vIEltYWdlIHRodW1ibmFpbHNcbi8vXG4vLyBIZWFkcyB1cCEgVGhpcyBpcyBtaXhpbi1lZCBpbnRvIHRodW1ibmFpbHMubGVzcyBmb3IgYC50aHVtYm5haWxgLlxuLmltZy10aHVtYm5haWwge1xuICBwYWRkaW5nOiAkdGh1bWJuYWlsLXBhZGRpbmc7XG4gIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYmFzZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHRodW1ibmFpbC1iZztcbiAgYm9yZGVyOiAxcHggc29saWQgJHRodW1ibmFpbC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICR0aHVtYm5haWwtYm9yZGVyLXJhZGl1cztcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgLjJzIGVhc2UtaW4tb3V0KTtcblxuICAvLyBLZWVwIHRoZW0gYXQgbW9zdCAxMDAlIHdpZGVcbiAgQGluY2x1ZGUgaW1nLXJlc3BvbnNpdmUoaW5saW5lLWJsb2NrKTtcbn1cblxuLy8gUGVyZmVjdCBjaXJjbGVcbi5pbWctY2lyY2xlIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlOyAvLyBzZXQgcmFkaXVzIGluIHBlcmNlbnRzXG59XG5cblxuLy8gSG9yaXpvbnRhbCBydWxlc1xuXG5ociB7XG4gIG1hcmdpbi10b3A6ICAgICRsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgbWFyZ2luLWJvdHRvbTogJGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAkaHItYm9yZGVyO1xufVxuXG5cbi8vIE9ubHkgZGlzcGxheSBjb250ZW50IHRvIHNjcmVlbiByZWFkZXJzXG4vL1xuLy8gU2VlOiBodHRwOi8vYTExeXByb2plY3QuY29tL3Bvc3RzL2hvdy10by1oaWRlLWNvbnRlbnQvXG5cbi5zci1vbmx5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsMCwwLDApO1xuICBib3JkZXI6IDA7XG59XG5cbi8vIFVzZSBpbiBjb25qdW5jdGlvbiB3aXRoIC5zci1vbmx5IHRvIG9ubHkgZGlzcGxheSBjb250ZW50IHdoZW4gaXQncyBmb2N1c2VkLlxuLy8gVXNlZnVsIGZvciBcIlNraXAgdG8gbWFpbiBjb250ZW50XCIgbGlua3M7IHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDEzL05PVEUtV0NBRzIwLVRFQ0hTLTIwMTMwOTA1L0cxXG4vLyBDcmVkaXQ6IEhUTUw1IEJvaWxlcnBsYXRlXG5cbi5zci1vbmx5LWZvY3VzYWJsZSB7XG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW46IDA7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgY2xpcDogYXV0bztcbiAgfVxufVxuXG5cbi8vIGlPUyBcImNsaWNrYWJsZSBlbGVtZW50c1wiIGZpeCBmb3Igcm9sZT1cImJ1dHRvblwiXG4vL1xuLy8gRml4ZXMgXCJjbGlja2FiaWxpdHlcIiBpc3N1ZSAoYW5kIG1vcmUgZ2VuZXJhbGx5LCB0aGUgZmlyaW5nIG9mIGV2ZW50cyBzdWNoIGFzIGZvY3VzIGFzIHdlbGwpXG4vLyBmb3IgdHJhZGl0aW9uYWxseSBub24tZm9jdXNhYmxlIGVsZW1lbnRzIHdpdGggcm9sZT1cImJ1dHRvblwiXG4vLyBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvRXZlbnRzL2NsaWNrI1NhZmFyaV9Nb2JpbGVcblxuW3JvbGU9XCJidXR0b25cIl0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4iLCIvLyBWZW5kb3IgUHJlZml4ZXNcbi8vXG4vLyBBbGwgdmVuZG9yIG1peGlucyBhcmUgZGVwcmVjYXRlZCBhcyBvZiB2My4yLjAgZHVlIHRvIHRoZSBpbnRyb2R1Y3Rpb24gb2Zcbi8vIEF1dG9wcmVmaXhlciBpbiBvdXIgR3J1bnRmaWxlLiBUaGV5IHdpbGwgYmUgcmVtb3ZlZCBpbiB2NC5cblxuLy8gLSBBbmltYXRpb25zXG4vLyAtIEJhY2tmYWNlIHZpc2liaWxpdHlcbi8vIC0gQm94IHNoYWRvd1xuLy8gLSBCb3ggc2l6aW5nXG4vLyAtIENvbnRlbnQgY29sdW1uc1xuLy8gLSBIeXBoZW5zXG4vLyAtIFBsYWNlaG9sZGVyIHRleHRcbi8vIC0gVHJhbnNmb3JtYXRpb25zXG4vLyAtIFRyYW5zaXRpb25zXG4vLyAtIFVzZXIgU2VsZWN0XG5cblxuLy8gQW5pbWF0aW9uc1xuQG1peGluIGFuaW1hdGlvbigkYW5pbWF0aW9uKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiAkYW5pbWF0aW9uO1xuICAgICAgIC1vLWFuaW1hdGlvbjogJGFuaW1hdGlvbjtcbiAgICAgICAgICBhbmltYXRpb246ICRhbmltYXRpb247XG59XG5AbWl4aW4gYW5pbWF0aW9uLW5hbWUoJG5hbWUpIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogJG5hbWU7XG4gICAgICAgICAgYW5pbWF0aW9uLW5hbWU6ICRuYW1lO1xufVxuQG1peGluIGFuaW1hdGlvbi1kdXJhdGlvbigkZHVyYXRpb24pIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246ICRkdXJhdGlvbjtcbiAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246ICRkdXJhdGlvbjtcbn1cbkBtaXhpbiBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uKCR0aW1pbmctZnVuY3Rpb24pIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdGltaW5nLWZ1bmN0aW9uO1xuICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICR0aW1pbmctZnVuY3Rpb247XG59XG5AbWl4aW4gYW5pbWF0aW9uLWRlbGF5KCRkZWxheSkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogJGRlbGF5O1xuICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogJGRlbGF5O1xufVxuQG1peGluIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQoJGl0ZXJhdGlvbi1jb3VudCkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6ICRpdGVyYXRpb24tY291bnQ7XG4gICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogJGl0ZXJhdGlvbi1jb3VudDtcbn1cbkBtaXhpbiBhbmltYXRpb24tZGlyZWN0aW9uKCRkaXJlY3Rpb24pIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiAkZGlyZWN0aW9uO1xuICAgICAgICAgIGFuaW1hdGlvbi1kaXJlY3Rpb246ICRkaXJlY3Rpb247XG59XG5AbWl4aW4gYW5pbWF0aW9uLWZpbGwtbW9kZSgkZmlsbC1tb2RlKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogJGZpbGwtbW9kZTtcbiAgICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiAkZmlsbC1tb2RlO1xufVxuXG4vLyBCYWNrZmFjZSB2aXNpYmlsaXR5XG4vLyBQcmV2ZW50IGJyb3dzZXJzIGZyb20gZmxpY2tlcmluZyB3aGVuIHVzaW5nIENTUyAzRCB0cmFuc2Zvcm1zLlxuLy8gRGVmYXVsdCB2YWx1ZSBpcyBgdmlzaWJsZWAsIGJ1dCBjYW4gYmUgY2hhbmdlZCB0byBgaGlkZGVuYFxuXG5AbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmlzaWJpbGl0eSl7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogJHZpc2liaWxpdHk7XG4gICAgIC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogJHZpc2liaWxpdHk7XG4gICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogJHZpc2liaWxpdHk7XG59XG5cbi8vIERyb3Agc2hhZG93c1xuLy9cbi8vIE5vdGU6IERlcHJlY2F0ZWQgYC5ib3gtc2hhZG93KClgIGFzIG9mIHYzLjEuMCBzaW5jZSBhbGwgb2YgQm9vdHN0cmFwJ3Ncbi8vIHN1cHBvcnRlZCBicm93c2VycyB0aGF0IGhhdmUgYm94IHNoYWRvdyBjYXBhYmlsaXRpZXMgbm93IHN1cHBvcnQgaXQuXG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93OyAvLyBpT1MgPDQuMyAmIEFuZHJvaWQgPDQuMVxuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbi8vIEJveCBzaXppbmdcbkBtaXhpbiBib3gtc2l6aW5nKCRib3htb2RlbCkge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRib3htb2RlbDtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkYm94bW9kZWw7XG4gICAgICAgICAgYm94LXNpemluZzogJGJveG1vZGVsO1xufVxuXG4vLyBDU1MzIENvbnRlbnQgQ29sdW1uc1xuQG1peGluIGNvbnRlbnQtY29sdW1ucygkY29sdW1uLWNvdW50LCAkY29sdW1uLWdhcDogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkY29sdW1uLWNvdW50O1xuICAgICAtbW96LWNvbHVtbi1jb3VudDogJGNvbHVtbi1jb3VudDtcbiAgICAgICAgICBjb2x1bW4tY291bnQ6ICRjb2x1bW4tY291bnQ7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJGNvbHVtbi1nYXA7XG4gICAgIC1tb3otY29sdW1uLWdhcDogJGNvbHVtbi1nYXA7XG4gICAgICAgICAgY29sdW1uLWdhcDogJGNvbHVtbi1nYXA7XG59XG5cbi8vIE9wdGlvbmFsIGh5cGhlbmF0aW9uXG5AbWl4aW4gaHlwaGVucygkbW9kZTogYXV0bykge1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIC13ZWJraXQtaHlwaGVuczogJG1vZGU7XG4gICAgIC1tb3otaHlwaGVuczogJG1vZGU7XG4gICAgICAtbXMtaHlwaGVuczogJG1vZGU7IC8vIElFMTArXG4gICAgICAgLW8taHlwaGVuczogJG1vZGU7XG4gICAgICAgICAgaHlwaGVuczogJG1vZGU7XG59XG5cbi8vIFBsYWNlaG9sZGVyIHRleHRcbkBtaXhpbiBwbGFjZWhvbGRlcigkY29sb3I6ICRpbnB1dC1jb2xvci1wbGFjZWhvbGRlcikge1xuICAvLyBGaXJlZm94XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgb3BhY2l0eTogMTsgLy8gT3ZlcnJpZGUgRmlyZWZveCdzIHVudXN1YWwgZGVmYXVsdCBvcGFjaXR5OyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL3B1bGwvMTE1MjZcbiAgfVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiAkY29sb3I7IH0gLy8gSW50ZXJuZXQgRXhwbG9yZXIgMTArXG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIgIHsgY29sb3I6ICRjb2xvcjsgfSAvLyBTYWZhcmkgYW5kIENocm9tZVxufVxuXG4vLyBUcmFuc2Zvcm1hdGlvbnNcbkBtaXhpbiBzY2FsZSgkcmF0aW8uLi4pIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKCRyYXRpbyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgkcmF0aW8pOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoJHJhdGlvKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKCRyYXRpbyk7XG59XG5cbkBtaXhpbiBzY2FsZVgoJHJhdGlvKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoJHJhdGlvKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlWCgkcmF0aW8pOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogc2NhbGVYKCRyYXRpbyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoJHJhdGlvKTtcbn1cbkBtaXhpbiBzY2FsZVkoJHJhdGlvKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVkoJHJhdGlvKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlWSgkcmF0aW8pOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogc2NhbGVZKCRyYXRpbyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVkoJHJhdGlvKTtcbn1cbkBtaXhpbiBza2V3KCR4LCAkeSkge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goJHgpIHNrZXdZKCR5KTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHNrZXdYKCR4KSBza2V3WSgkeSk7IC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzQ4ODU7IElFOStcbiAgICAgICAtby10cmFuc2Zvcm06IHNrZXdYKCR4KSBza2V3WSgkeSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBza2V3WCgkeCkgc2tld1koJHkpO1xufVxuQG1peGluIHRyYW5zbGF0ZSgkeCwgJHkpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgkeCwgJHkpO1xuICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKCR4LCAkeSk7IC8vIElFOSBvbmx5XG4gICAgICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoJHgsICR5KTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgkeCwgJHkpO1xufVxuQG1peGluIHRyYW5zbGF0ZTNkKCR4LCAkeSwgJHopIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKCR4LCAkeSwgJHopO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoJHgsICR5LCAkeik7XG59XG5AbWl4aW4gcm90YXRlKCRkZWdyZWVzKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoJGRlZ3JlZXMpO1xuICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKCRkZWdyZWVzKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHJvdGF0ZSgkZGVncmVlcyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoJGRlZ3JlZXMpO1xufVxuQG1peGluIHJvdGF0ZVgoJGRlZ3JlZXMpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVgoJGRlZ3JlZXMpO1xuICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlWCgkZGVncmVlcyk7IC8vIElFOSBvbmx5XG4gICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGVYKCRkZWdyZWVzKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVgoJGRlZ3JlZXMpO1xufVxuQG1peGluIHJvdGF0ZVkoJGRlZ3JlZXMpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVkoJGRlZ3JlZXMpO1xuICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlWSgkZGVncmVlcyk7IC8vIElFOSBvbmx5XG4gICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGVZKCRkZWdyZWVzKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoJGRlZ3JlZXMpO1xufVxuQG1peGluIHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkge1xuICAtd2Via2l0LXBlcnNwZWN0aXZlOiAkcGVyc3BlY3RpdmU7XG4gICAgIC1tb3otcGVyc3BlY3RpdmU6ICRwZXJzcGVjdGl2ZTtcbiAgICAgICAgICBwZXJzcGVjdGl2ZTogJHBlcnNwZWN0aXZlO1xufVxuQG1peGluIHBlcnNwZWN0aXZlLW9yaWdpbigkcGVyc3BlY3RpdmUpIHtcbiAgLXdlYmtpdC1wZXJzcGVjdGl2ZS1vcmlnaW46ICRwZXJzcGVjdGl2ZTtcbiAgICAgLW1vei1wZXJzcGVjdGl2ZS1vcmlnaW46ICRwZXJzcGVjdGl2ZTtcbiAgICAgICAgICBwZXJzcGVjdGl2ZS1vcmlnaW46ICRwZXJzcGVjdGl2ZTtcbn1cbkBtaXhpbiB0cmFuc2Zvcm0tb3JpZ2luKCRvcmlnaW4pIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAkb3JpZ2luO1xuICAgICAtbW96LXRyYW5zZm9ybS1vcmlnaW46ICRvcmlnaW47XG4gICAgICAtbXMtdHJhbnNmb3JtLW9yaWdpbjogJG9yaWdpbjsgLy8gSUU5IG9ubHlcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAkb3JpZ2luO1xufVxuXG5cbi8vIFRyYW5zaXRpb25zXG5cbkBtaXhpbiB0cmFuc2l0aW9uKCR0cmFuc2l0aW9uLi4uKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogJHRyYW5zaXRpb247XG4gICAgICAgLW8tdHJhbnNpdGlvbjogJHRyYW5zaXRpb247XG4gICAgICAgICAgdHJhbnNpdGlvbjogJHRyYW5zaXRpb247XG59XG5AbWl4aW4gdHJhbnNpdGlvbi1wcm9wZXJ0eSgkdHJhbnNpdGlvbi1wcm9wZXJ0eS4uLikge1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6ICR0cmFuc2l0aW9uLXByb3BlcnR5O1xuICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6ICR0cmFuc2l0aW9uLXByb3BlcnR5O1xufVxuQG1peGluIHRyYW5zaXRpb24tZGVsYXkoJHRyYW5zaXRpb24tZGVsYXkpIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiAkdHJhbnNpdGlvbi1kZWxheTtcbiAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAkdHJhbnNpdGlvbi1kZWxheTtcbn1cbkBtaXhpbiB0cmFuc2l0aW9uLWR1cmF0aW9uKCR0cmFuc2l0aW9uLWR1cmF0aW9uLi4uKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogJHRyYW5zaXRpb24tZHVyYXRpb247XG4gICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogJHRyYW5zaXRpb24tZHVyYXRpb247XG59XG5AbWl4aW4gdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oJHRpbWluZy1mdW5jdGlvbikge1xuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdGltaW5nLWZ1bmN0aW9uO1xuICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdGltaW5nLWZ1bmN0aW9uO1xufVxuQG1peGluIHRyYW5zaXRpb24tdHJhbnNmb3JtKCR0cmFuc2l0aW9uLi4uKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gJHRyYW5zaXRpb247XG4gICAgIC1tb3otdHJhbnNpdGlvbjogLW1vei10cmFuc2Zvcm0gJHRyYW5zaXRpb247XG4gICAgICAgLW8tdHJhbnNpdGlvbjogLW8tdHJhbnNmb3JtICR0cmFuc2l0aW9uO1xuICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkdHJhbnNpdGlvbjtcbn1cblxuXG4vLyBVc2VyIHNlbGVjdFxuLy8gRm9yIHNlbGVjdGluZyB0ZXh0IG9uIHRoZSBwYWdlXG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0KSB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7IC8vIElFMTArXG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG4iLCIkYm9vdHN0cmFwLXNhc3MtYXNzZXQtaGVscGVyOiBmYWxzZSAhZGVmYXVsdDtcbi8vXG4vLyBWYXJpYWJsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRraW1jaGktbG9nbzogXCIuLi9pbWFnZXMvbG9nby13aGl0ZS5wbmdcIjtcbiRpY29uLWZvbnQtcGF0aDogJy4uL2ZvbnRzLyc7XG5cbi8vPT0gQ29sb3JzXG4vL1xuLy8jIyBHcmF5IGFuZCBicmFuZCBjb2xvcnMgZm9yIHVzZSBhY3Jvc3MgQm9vdHN0cmFwLlxuXG4kZ3JheS1iYXNlOiAgICAgICAgICAgICAgIzAwMCAhZGVmYXVsdDtcbiRncmF5LWRhcmtlcjogICAgICAgICAgICAjMjIyICFkZWZhdWx0O1xuJGdyYXktZGFyazogICAgICAgICAgICAgICAkZ3JheS1kYXJrZXIgIWRlZmF1bHQ7XG4kZ3JheTogICAgICAgICAgICAgICAgICAgICAgIzQ0NCAhZGVmYXVsdDtcbiRncmF5LWxpZ2h0OiAgICAgICAgICAgICAgICM5OTkgIWRlZmF1bHQ7XG4kZ3JheS1saWdodGVyOiAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG5cbiRicmFuZC1wcmltYXJ5OiAgICAgICAgICMzYTM5M2IgIWRlZmF1bHQ7IC8vICMzYTM5M2JcbiRicmFuZC1zdWNjZXNzOiAgICAgICAgICM1Y2I4NWMgIWRlZmF1bHQ7XG4kYnJhbmQtaW5mbzogICAgICAgICAgICAjNWJjMGRlICFkZWZhdWx0O1xuJGJyYW5kLXdhcm5pbmc6ICAgICAgICAgI2YwYWQ0ZSAhZGVmYXVsdDtcbiRicmFuZC1kYW5nZXI6ICAgICAgICAgICNkOTUzNGYgIWRlZmF1bHQ7XG4ka2ltY2hpLWRyb3Bkb3duOiAgICAgICM0ZDRjNGUgIWRlZmF1bHQ7XG5cblxuLy8jIyBLaW1jaGkgZGVmYXVsdCBjb2xvcnNcblxuJGhvc3RzLWNvbG9yOiAgICAgICAgICAgICAgICAjMDA4YWJmICFkZWZhdWx0O1xuJGd1ZXN0cy1jb2xvcjogICAgICAgICAgICAgICM4Y2M2M2YgIWRlZmF1bHQ7XG4kdGVtcGxhdGVzLWNvbG9yOiAgICAgICAgICMwMGE2YTAgIWRlZmF1bHQ7XG4kc3RvcmFnZS1jb2xvcjogICAgICAgICAgICAgI2ZlYjgxMyAhZGVmYXVsdDtcbiRuZXR3b3Jrcy1jb2xvcjogICAgICAgICAgICM3ZjFjN2QgIWRlZmF1bHQ7XG4kYWRtaW5pc3RyYXRpb24tY29sb3I6ICAgICNkOTE4MmQgIWRlZmF1bHQ7XG5cbi8vPT0gU2NhZmZvbGRpbmdcbi8vXG4vLyMjIFNldHRpbmdzIGZvciBzb21lIG9mIHRoZSBtb3N0IGdsb2JhbCBzdHlsZXMuXG5cbi8vKiogQmFja2dyb3VuZCBjb2xvciBmb3IgYDxib2R5PmAuXG4kYm9keS1iZzogICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuLy8qKiBHbG9iYWwgdGV4dCBjb2xvciBvbiBgPGJvZHk+YC5cbiR0ZXh0LWNvbG9yOiAgICAgICAgICAgICRncmF5LWRhcmtlciAhZGVmYXVsdDtcbiRoaWdobGlnaHRzLWNvbG9yOiAgICAgI2ZmZiAhZGVmYXVsdDtcbiRkaXNhYmxlZC1jb2xvcjogICAgICAgIzk5OSAhZGVmYXVsdDtcblxuLy8qKiBHbG9iYWwgdGV4dHVhbCBsaW5rIGNvbG9yLlxuJGxpbmstY29sb3I6ICAgICAgICAgICAgJGJyYW5kLXByaW1hcnkgIWRlZmF1bHQ7XG4vLyoqIExpbmsgaG92ZXIgY29sb3Igc2V0IHZpYSBgZGFya2VuKClgIGZ1bmN0aW9uLlxuJGxpbmstaG92ZXItY29sb3I6ICAgICAgZGFya2VuKCRsaW5rLWNvbG9yLCAxNSUpICFkZWZhdWx0O1xuLy8qKiBMaW5rIGhvdmVyIGRlY29yYXRpb24uXG4kbGluay1ob3Zlci1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWRlZmF1bHQ7XG5cblxuLy89PSBUeXBvZ3JhcGh5XG4vL1xuLy8jIyBGb250LCBsaW5lLWhlaWdodCwgYW5kIGNvbG9yIGZvciBib2R5IHRleHQsIGhlYWRpbmdzLCBhbmQgbW9yZS5cblxuJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY6ICBcIkhlbHZldGljYU5ldWVNZWRpdW1cIiwgXCJIZWx2ZXRpY2FOZXVlLU1lZGl1bVwiLCBcIkhlbHZldGljYSBOZXVlIE1lZGl1bVwiLCBcIkhlbHZldGljYU5ldWVcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBcIkx1Y2lkYSBHcmFuZGVcIiwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcbiRmb250LWZhbWlseS1zZXJpZjogICAgICAgR2VvcmdpYSwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgVGltZXMsIHNlcmlmICFkZWZhdWx0O1xuLy8qKiBEZWZhdWx0IG1vbm9zcGFjZSBmb250cyBmb3IgYDxjb2RlPmAsIGA8a2JkPmAsIGFuZCBgPHByZT5gLlxuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogICBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2UgIWRlZmF1bHQ7XG4kZm9udC1mYW1pbHktYmFzZTogICAgICAgICRmb250LWZhbWlseS1zYW5zLXNlcmlmICFkZWZhdWx0O1xuJGZvbnQtZmFtaWx5LWxpZ2h0OiAgICBcIkhlbHZldGljYU5ldWVMaWdodFwiLCBcIkhlbHZldGljYU5ldWUtTGlnaHRcIiwgXCJIZWx2ZXRpY2FOZXVlIExpZ2h0XCIsIFwiSGVsdmV0aWNhTmV1ZVwiLCBcIkhlbHZldGljYU5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgXCJMdWNpZGEgR3JhbmRlXCIsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kZm9udC1mYW1pbHktYm9sZDogICAgXCJIZWx2ZXRpY2FOZXVlQm9sZFwiLCBcIkhlbHZldGljYU5ldWUtQm9sZFwiLCBcIkhlbHZldGljYU5ldWUgQm9sZFwiLCBcIkhlbHZldGljYSBOZXVlIEJvbGRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYU5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgXCJMdWNpZGEgR3JhbmRlXCIsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kZm9udC1mYW1pbHktYWx0ZXJuYXRlOiAgXCJIZWx2ZXRpY2EgTmV1ZSBMVCBXMUcgNTUgUm9tYW5cIiwgXCJIZWx2ZXRpY2EgTmV1ZSBMVCBXMUdcIiwgXCJIZWx2ZXRpY2FOZXVlIFJvbWFuXCIsIFwiSGVsdmV0aWNhTmV1ZS1Sb21hblwiLCBcIkhlbHZldGljYSBOZXVlIFJvbWFuXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIFwiTHVjaWRhIEdyYW5kZVwiLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuXG5cbiRmb250LXNpemUtYmFzZTogICAgICAgICAgMTRweCAhZGVmYXVsdDtcbiRmb250LXNpemUtbGFyZ2U6ICAgICAgICAgY2VpbCgoJGZvbnQtc2l6ZS1iYXNlICogMS4yNSkpICFkZWZhdWx0OyAvLyB+MThweFxuJGZvbnQtc2l6ZS1zbWFsbDogICAgICAgICBjZWlsKCgkZm9udC1zaXplLWJhc2UgKiAwLjg1KSkgIWRlZmF1bHQ7IC8vIH4xMnB4XG4kZm9udC1zaXplLWJ0bjogICAgICAgICAgICAgMTMuNXB0O1xuXG4kZm9udC1zaXplLWgxOiAgICAgICAgICAgIDEuNTcxZW0gIWRlZmF1bHQ7XG4kZm9udC1zaXplLWgyOiAgICAgICAgICAgIDIycHggIWRlZmF1bHQ7XG4kZm9udC1zaXplLWgzOiAgICAgICAgICAgIDE3cHggIWRlZmF1bHQ7XG4kZm9udC1zaXplLWg0OiAgICAgICAgICAgICRmb250LXNpemUtYmFzZSAhZGVmYXVsdDtcbiRmb250LXNpemUtaDU6ICAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICFkZWZhdWx0O1xuJGZvbnQtc2l6ZS1oNjogICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgIWRlZmF1bHQ7XG5cbi8vKiogVW5pdC1sZXNzIGBsaW5lLWhlaWdodGAgZm9yIHVzZSBpbiBjb21wb25lbnRzIGxpa2UgYnV0dG9ucy5cbiRsaW5lLWhlaWdodC1iYXNlOiAgICAgICAgMS40Mjg1NzE0MjkgIWRlZmF1bHQ7IC8vIDIwLzE0XG4vLyoqIENvbXB1dGVkIFwibGluZS1oZWlnaHRcIiAoYGZvbnQtc2l6ZWAgKiBgbGluZS1oZWlnaHRgKSBmb3IgdXNlIHdpdGggYG1hcmdpbmAsIGBwYWRkaW5nYCwgZXRjLlxuJGxpbmUtaGVpZ2h0LWNvbXB1dGVkOiAgICBmbG9vcigoJGZvbnQtc2l6ZS1iYXNlICogJGxpbmUtaGVpZ2h0LWJhc2UpKSAhZGVmYXVsdDsgLy8gfjIwcHhcblxuLy8qKiBCeSBkZWZhdWx0LCB0aGlzIGluaGVyaXRzIGZyb20gdGhlIGA8Ym9keT5gLlxuJGhlYWRpbmdzLWZvbnQtZmFtaWx5OiAgICBpbmhlcml0ICFkZWZhdWx0O1xuJGhlYWRpbmdzLWZvbnQtd2VpZ2h0OiAgICA1MDAgIWRlZmF1bHQ7XG4kaGVhZGluZ3MtbGluZS1oZWlnaHQ6ICAgIDEuMSAhZGVmYXVsdDtcbiRoZWFkaW5ncy1jb2xvcjogICAgICAgICAgaW5oZXJpdCAhZGVmYXVsdDtcblxuXG4vLz09IEljb25vZ3JhcGh5XG4vL1xuLy8jIyBTcGVjaWZ5IGN1c3RvbSBsb2NhdGlvbiBhbmQgZmlsZW5hbWUgb2YgdGhlIGluY2x1ZGVkIEdseXBoaWNvbnMgaWNvbiBmb250LiBVc2VmdWwgZm9yIHRob3NlIGluY2x1ZGluZyBCb290c3RyYXAgdmlhIEJvd2VyLlxuXG4vLyoqIExvYWQgZm9udHMgZnJvbSB0aGlzIGRpcmVjdG9yeS5cblxuLy8gW2NvbnZlcnRlcl0gSWYgJGJvb3RzdHJhcC1zYXNzLWFzc2V0LWhlbHBlciBpZiB1c2VkLCBwcm92aWRlIHBhdGggcmVsYXRpdmUgdG8gdGhlIGFzc2V0cyBsb2FkIHBhdGguXG4vLyBbY29udmVydGVyXSBUaGlzIGlzIGJlY2F1c2Ugc29tZSBhc3NldCBoZWxwZXJzLCBzdWNoIGFzIFNwcm9ja2V0cywgZG8gbm90IHdvcmsgd2l0aCBmaWxlLXJlbGF0aXZlIHBhdGhzLlxuJGljb24tZm9udC1wYXRoOiBpZigkYm9vdHN0cmFwLXNhc3MtYXNzZXQtaGVscGVyLCBcImJvb3RzdHJhcC9cIiwgXCIuLi9mb250cy9ib290c3RyYXAvXCIpICFkZWZhdWx0O1xuXG4vLyoqIEZpbGUgbmFtZSBmb3IgYWxsIGZvbnQgZmlsZXMuXG4kaWNvbi1mb250LW5hbWU6ICAgICAgICAgIFwiZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhclwiICFkZWZhdWx0O1xuLy8qKiBFbGVtZW50IElEIHdpdGhpbiBTVkcgaWNvbiBmaWxlLlxuJGljb24tZm9udC1zdmctaWQ6ICAgICAgICBcImdseXBoaWNvbnNfaGFsZmxpbmdzcmVndWxhclwiICFkZWZhdWx0O1xuXG5cbi8vPT0gQ29tcG9uZW50c1xuLy9cbi8vIyMgRGVmaW5lIGNvbW1vbiBwYWRkaW5nIGFuZCBib3JkZXIgcmFkaXVzIHNpemVzIGFuZCBtb3JlLiBWYWx1ZXMgYmFzZWQgb24gMTRweCB0ZXh0IGFuZCAxLjQyOCBsaW5lLWhlaWdodCAofjIwcHggdG8gc3RhcnQpLlxuXG4kcGFkZGluZy1iYXNlLXZlcnRpY2FsOiAgICAgNnB4ICFkZWZhdWx0O1xuJHBhZGRpbmctYmFzZS1ob3Jpem9udGFsOiAgIDEycHggIWRlZmF1bHQ7XG5cbiRwYWRkaW5nLWxhcmdlLXZlcnRpY2FsOiAgICAxMHB4ICFkZWZhdWx0O1xuJHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbDogIDE2cHggIWRlZmF1bHQ7XG5cbiRwYWRkaW5nLXNtYWxsLXZlcnRpY2FsOiAgICA1cHggIWRlZmF1bHQ7XG4kcGFkZGluZy1zbWFsbC1ob3Jpem9udGFsOiAgMTBweCAhZGVmYXVsdDtcblxuJHBhZGRpbmcteHMtdmVydGljYWw6ICAgICAgIDFweCAhZGVmYXVsdDtcbiRwYWRkaW5nLXhzLWhvcml6b250YWw6ICAgICA1cHggIWRlZmF1bHQ7XG5cbiRsaW5lLWhlaWdodC1sYXJnZTogICAgICAgICAxLjMzMzMzMzMgIWRlZmF1bHQ7IC8vIGV4dHJhIGRlY2ltYWxzIGZvciBXaW4gOC4xIENocm9tZVxuJGxpbmUtaGVpZ2h0LXNtYWxsOiAgICAgICAgIDEuNSAhZGVmYXVsdDtcblxuJGJvcmRlci1yYWRpdXMtYmFzZTogICAgICAgIDNweCAhZGVmYXVsdDtcbiRib3JkZXItcmFkaXVzLWxhcmdlOiAgICAgICAzcHggIWRlZmF1bHQ7XG4kYm9yZGVyLXJhZGl1cy1zbWFsbDogICAgICAgM3B4ICFkZWZhdWx0O1xuXG4vLyoqIEdsb2JhbCBjb2xvciBmb3IgYWN0aXZlIGl0ZW1zIChlLmcuLCBuYXZzIG9yIGRyb3Bkb3ducykuXG4kY29tcG9uZW50LWFjdGl2ZS1jb2xvcjogICAgI2ZmZiAhZGVmYXVsdDtcbi8vKiogR2xvYmFsIGJhY2tncm91bmQgY29sb3IgZm9yIGFjdGl2ZSBpdGVtcyAoZS5nLiwgbmF2cyBvciBkcm9wZG93bnMpLlxuJGNvbXBvbmVudC1hY3RpdmUtYmc6ICAgICAgICRicmFuZC1wcmltYXJ5ICFkZWZhdWx0O1xuXG4vLyoqIFdpZHRoIG9mIHRoZSBgYm9yZGVyYCBmb3IgZ2VuZXJhdGluZyBjYXJldHMgdGhhdCBpbmRpY2F0b3IgZHJvcGRvd25zLlxuJGNhcmV0LXdpZHRoLWJhc2U6ICAgICAgICAgIDRweCAhZGVmYXVsdDtcbi8vKiogQ2FyZXRzIGluY3JlYXNlIHNsaWdodGx5IGluIHNpemUgZm9yIGxhcmdlciBjb21wb25lbnRzLlxuJGNhcmV0LXdpZHRoLWxhcmdlOiAgICAgICAgIDVweCAhZGVmYXVsdDtcblxuXG4vLz09IFRhYmxlc1xuLy9cbi8vIyMgQ3VzdG9taXplcyB0aGUgYC50YWJsZWAgY29tcG9uZW50IHdpdGggYmFzaWMgdmFsdWVzLCBlYWNoIHVzZWQgYWNyb3NzIGFsbCB0YWJsZSB2YXJpYXRpb25zLlxuXG4vLyoqIFBhZGRpbmcgZm9yIGA8dGg+YHMgYW5kIGA8dGQ+YHMuXG4kdGFibGUtY2VsbC1wYWRkaW5nOiAgICAgICAgICAgIDhweCAhZGVmYXVsdDtcbi8vKiogUGFkZGluZyBmb3IgY2VsbHMgaW4gYC50YWJsZS1jb25kZW5zZWRgLlxuJHRhYmxlLWNvbmRlbnNlZC1jZWxsLXBhZGRpbmc6ICA1cHggIWRlZmF1bHQ7XG5cbi8vKiogRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIHVzZWQgZm9yIGFsbCB0YWJsZXMuXG4kdGFibGUtYmc6ICAgICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuLy8qKiBCYWNrZ3JvdW5kIGNvbG9yIHVzZWQgZm9yIGAudGFibGUtc3RyaXBlZGAuXG4kdGFibGUtYmctYWNjZW50OiAgICAgICAgICAgICAgICNmOWY5ZjkgIWRlZmF1bHQ7XG4vLyoqIEJhY2tncm91bmQgY29sb3IgdXNlZCBmb3IgYC50YWJsZS1ob3ZlcmAuXG4kdGFibGUtYmctaG92ZXI6ICAgICAgICAgICAgICAgICNmNWY1ZjUgIWRlZmF1bHQ7XG4kdGFibGUtYmctYWN0aXZlOiAgICAgICAgICAgICAgICR0YWJsZS1iZy1ob3ZlciAhZGVmYXVsdDtcblxuLy8qKiBCb3JkZXIgY29sb3IgZm9yIHRhYmxlIGFuZCBjZWxsIGJvcmRlcnMuXG4kdGFibGUtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICNkZGQgIWRlZmF1bHQ7XG5cblxuLy89PSBCdXR0b25zXG4vL1xuLy8jIyBGb3IgZWFjaCBvZiBCb290c3RyYXAncyBidXR0b25zLCBkZWZpbmUgdGV4dCwgYmFja2dyb3VuZCBhbmQgYm9yZGVyIGNvbG9yLlxuXG4kYnRuLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICBub3JtYWwgIWRlZmF1bHQ7XG5cbiRidG4tZGVmYXVsdC1jb2xvcjogICAgICAgICAgICAgICM0NDQgIWRlZmF1bHQ7XG4kYnRuLWRlZmF1bHQtYmc6ICAgICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJGJ0bi1kZWZhdWx0LWJvcmRlcjogICAgICAgICAgICAgI2NjYyAhZGVmYXVsdDtcblxuJGJ0bi1wcmltYXJ5LWNvbG9yOiAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRidG4tcHJpbWFyeS1iZzogICAgICAgICAgICAgICAgICRicmFuZC1wcmltYXJ5ICFkZWZhdWx0O1xuJGJ0bi1wcmltYXJ5LWJvcmRlcjogICAgICAgICAgICRidG4tcHJpbWFyeS1iZyAhZGVmYXVsdDtcblxuJGJ0bi1sb2dpbi1jb2xvcjogICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kYnRuLWxvZ2luLWJnOiAgICAgICAgICAgICAgICAgIzAwOGFiZiAhZGVmYXVsdDtcbiRidG4tbG9naW4tYm9yZGVyOiAgICAgICAgICAgICAkYnRuLWxvZ2luLWJnICFkZWZhdWx0O1xuXG4kYnRuLXN1Y2Nlc3MtY29sb3I6ICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJGJ0bi1zdWNjZXNzLWJnOiAgICAgICAgICAgICAgICAgJGJyYW5kLXN1Y2Nlc3MgIWRlZmF1bHQ7XG4kYnRuLXN1Y2Nlc3MtYm9yZGVyOiAgICAgICAgICAgJGJ0bi1zdWNjZXNzLWJnICFkZWZhdWx0O1xuXG4kYnRuLWluZm8tY29sb3I6ICAgICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJGJ0bi1pbmZvLWJnOiAgICAgICAgICAgICAgICAgICAgJGJyYW5kLWluZm8gIWRlZmF1bHQ7XG4kYnRuLWluZm8tYm9yZGVyOiAgICAgICAgICAgICAgJGJyYW5kLWluZm8gIWRlZmF1bHQ7XG5cbiRidG4td2FybmluZy1jb2xvcjogICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kYnRuLXdhcm5pbmctYmc6ICAgICAgICAgICAgICAgICAkYnJhbmQtd2FybmluZyAhZGVmYXVsdDtcbiRidG4td2FybmluZy1ib3JkZXI6ICAgICAgICAgICAkYnJhbmQtd2FybmluZyAhZGVmYXVsdDtcblxuJGJ0bi1kYW5nZXItY29sb3I6ICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRidG4tZGFuZ2VyLWJnOiAgICAgICAgICAgICAgICAgICRicmFuZC1kYW5nZXIgIWRlZmF1bHQ7XG4kYnRuLWRhbmdlci1ib3JkZXI6ICAgICAgICAgICAgJGJyYW5kLWRhbmdlciAhZGVmYXVsdDtcblxuJGJ0bi1saW5rLWRpc2FibGVkLWNvbG9yOiAgICAgICAgJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG5cbi8vIEFsbG93cyBmb3IgY3VzdG9taXppbmcgYnV0dG9uIHJhZGl1cyBpbmRlcGVuZGVudGx5IGZyb20gZ2xvYmFsIGJvcmRlciByYWRpdXNcbiRidG4tYm9yZGVyLXJhZGl1cy1iYXNlOiAgICAgICAgICRib3JkZXItcmFkaXVzLWJhc2UgIWRlZmF1bHQ7XG4kYnRuLWJvcmRlci1yYWRpdXMtbGFyZ2U6ICAgICAgICAkYm9yZGVyLXJhZGl1cy1sYXJnZSAhZGVmYXVsdDtcbiRidG4tYm9yZGVyLXJhZGl1cy1zbWFsbDogICAgICAgICRib3JkZXItcmFkaXVzLXNtYWxsICFkZWZhdWx0O1xuXG5cbi8vPT0gRm9ybXNcbi8vXG4vLyMjXG5cbi8vKiogYDxpbnB1dD5gIGJhY2tncm91bmQgY29sb3JcbiRpbnB1dC1iZzogICAgICAgICAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4vLyoqIGA8aW5wdXQgZGlzYWJsZWQ+YCBiYWNrZ3JvdW5kIGNvbG9yXG4kaW5wdXQtYmctZGlzYWJsZWQ6ICAgICAgICAgICAgICAkZ3JheS1saWdodGVyICFkZWZhdWx0O1xuXG4vLyoqIFRleHQgY29sb3IgZm9yIGA8aW5wdXQ+YHNcbiRpbnB1dC1jb2xvcjogICAgICAgICAgICAgICAgICAgICRncmF5ICFkZWZhdWx0O1xuLy8qKiBgPGlucHV0PmAgYm9yZGVyIGNvbG9yXG4kaW5wdXQtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAjY2NjICFkZWZhdWx0O1xuXG4vLyBUT0RPOiBSZW5hbWUgYCRpbnB1dC1ib3JkZXItcmFkaXVzYCB0byBgJGlucHV0LWJvcmRlci1yYWRpdXMtYmFzZWAgaW4gdjRcbi8vKiogRGVmYXVsdCBgLmZvcm0tY29udHJvbGAgYm9yZGVyIHJhZGl1c1xuLy8gVGhpcyBoYXMgbm8gZWZmZWN0IG9uIGA8c2VsZWN0PmBzIGluIHNvbWUgYnJvd3NlcnMsIGR1ZSB0byB0aGUgbGltaXRlZCBzdHlsYWJpbGl0eSBvZiBgPHNlbGVjdD5gcyBpbiBDU1MuXG4kaW5wdXQtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAkYm9yZGVyLXJhZGl1cy1iYXNlICFkZWZhdWx0O1xuLy8qKiBMYXJnZSBgLmZvcm0tY29udHJvbGAgYm9yZGVyIHJhZGl1c1xuJGlucHV0LWJvcmRlci1yYWRpdXMtbGFyZ2U6ICAgICAgJGJvcmRlci1yYWRpdXMtbGFyZ2UgIWRlZmF1bHQ7XG4vLyoqIFNtYWxsIGAuZm9ybS1jb250cm9sYCBib3JkZXIgcmFkaXVzXG4kaW5wdXQtYm9yZGVyLXJhZGl1cy1zbWFsbDogICAgICAkYm9yZGVyLXJhZGl1cy1zbWFsbCAhZGVmYXVsdDtcblxuLy8qKiBCb3JkZXIgY29sb3IgZm9yIGlucHV0cyBvbiBmb2N1c1xuJGlucHV0LWJvcmRlci1mb2N1czogICAgICAgICAgICAgIzY2YWZlOSAhZGVmYXVsdDtcblxuLy8qKiBQbGFjZWhvbGRlciB0ZXh0IGNvbG9yXG4kaW5wdXQtY29sb3ItcGxhY2Vob2xkZXI6ICAgICAgICAjOTk5ICFkZWZhdWx0O1xuXG4vLyoqIERlZmF1bHQgYC5mb3JtLWNvbnRyb2xgIGhlaWdodFxuJGlucHV0LWhlaWdodC1iYXNlOiAgICAgICAgICAgICAgKCRsaW5lLWhlaWdodC1jb21wdXRlZCArICgkcGFkZGluZy1iYXNlLXZlcnRpY2FsICogMikgKyAyKSAhZGVmYXVsdDtcbi8vKiogTGFyZ2UgYC5mb3JtLWNvbnRyb2xgIGhlaWdodFxuJGlucHV0LWhlaWdodC1sYXJnZTogICAgICAgICAgICAgKGNlaWwoJGZvbnQtc2l6ZS1sYXJnZSAqICRsaW5lLWhlaWdodC1sYXJnZSkgKyAoJHBhZGRpbmctbGFyZ2UtdmVydGljYWwgKiAyKSArIDIpICFkZWZhdWx0O1xuLy8qKiBTbWFsbCBgLmZvcm0tY29udHJvbGAgaGVpZ2h0XG4kaW5wdXQtaGVpZ2h0LXNtYWxsOiAgICAgICAgICAgICAoZmxvb3IoJGZvbnQtc2l6ZS1zbWFsbCAqICRsaW5lLWhlaWdodC1zbWFsbCkgKyAoJHBhZGRpbmctc21hbGwtdmVydGljYWwgKiAyKSArIDIpICFkZWZhdWx0O1xuXG4vLyoqIGAuZm9ybS1ncm91cGAgbWFyZ2luXG4kZm9ybS1ncm91cC1tYXJnaW4tYm90dG9tOiAgICAgICAxNXB4ICFkZWZhdWx0O1xuXG4kbGVnZW5kLWNvbG9yOiAgICAgICAgICAgICAgICAgICAkZ3JheS1kYXJrICFkZWZhdWx0O1xuJGxlZ2VuZC1ib3JkZXItY29sb3I6ICAgICAgICAgICAgI2U1ZTVlNSAhZGVmYXVsdDtcblxuLy8qKiBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0ZXh0dWFsIGlucHV0IGFkZG9uc1xuJGlucHV0LWdyb3VwLWFkZG9uLWJnOiAgICAgICAgICAgJGdyYXktbGlnaHRlciAhZGVmYXVsdDtcbi8vKiogQm9yZGVyIGNvbG9yIGZvciB0ZXh0dWFsIGlucHV0IGFkZG9uc1xuJGlucHV0LWdyb3VwLWFkZG9uLWJvcmRlci1jb2xvcjogJGlucHV0LWJvcmRlciAhZGVmYXVsdDtcblxuLy8qKiBEaXNhYmxlZCBjdXJzb3IgZm9yIGZvcm0gY29udHJvbHMgYW5kIGJ1dHRvbnMuXG4kY3Vyc29yLWRpc2FibGVkOiAgICAgICAgICAgICAgICBub3QtYWxsb3dlZCAhZGVmYXVsdDtcblxuXG4vLz09IERyb3Bkb3duc1xuLy9cbi8vIyMgRHJvcGRvd24gbWVudSBjb250YWluZXIgYW5kIGNvbnRlbnRzLlxuXG4vLyoqIEJhY2tncm91bmQgZm9yIHRoZSBkcm9wZG93biBtZW51LlxuJGRyb3Bkb3duLWJnOiAgICAgICAgICAgICAgICAgICAgI2ZjZmNmYyAhZGVmYXVsdDtcbi8vKiogRHJvcGRvd24gbWVudSBgYm9yZGVyLWNvbG9yYC5cbiRkcm9wZG93bi1ib3JkZXI6ICAgICAgICAgICAgICAgICNjY2MgIWRlZmF1bHQ7XG4vLyoqIERyb3Bkb3duIG1lbnUgYGJvcmRlci1jb2xvcmAgKipmb3IgSUU4KiouXG4kZHJvcGRvd24tZmFsbGJhY2stYm9yZGVyOiAgICAgICAjY2NjICFkZWZhdWx0O1xuLy8qKiBEaXZpZGVyIGNvbG9yIGZvciBiZXR3ZWVuIGRyb3Bkb3duIGl0ZW1zLlxuJGRyb3Bkb3duLWRpdmlkZXItYmc6ICAgICAgICAgICAgI2VlZSAhZGVmYXVsdDtcblxuLy8qKiBEcm9wZG93biBsaW5rIHRleHQgY29sb3IuXG4kZHJvcGRvd24tbGluay1jb2xvcjogICAgICAgICAgICAkZ3JheS1kYXJrICFkZWZhdWx0O1xuLy8qKiBIb3ZlciBjb2xvciBmb3IgZHJvcGRvd24gbGlua3MuXG4kZHJvcGRvd24tbGluay1ob3Zlci1jb2xvcjogICAgICBkYXJrZW4oJGdyYXktZGFyaywgNSUpICFkZWZhdWx0O1xuLy8qKiBIb3ZlciBiYWNrZ3JvdW5kIGZvciBkcm9wZG93biBsaW5rcy5cbiRkcm9wZG93bi1saW5rLWhvdmVyLWJnOiAgICAgICAgICNmNWY1ZjUgIWRlZmF1bHQ7XG5cbi8vKiogQWN0aXZlIGRyb3Bkb3duIG1lbnUgaXRlbSB0ZXh0IGNvbG9yLlxuJGRyb3Bkb3duLWxpbmstYWN0aXZlLWNvbG9yOiAgICAgJGNvbXBvbmVudC1hY3RpdmUtY29sb3IgIWRlZmF1bHQ7XG4vLyoqIEFjdGl2ZSBkcm9wZG93biBtZW51IGl0ZW0gYmFja2dyb3VuZCBjb2xvci5cbiRkcm9wZG93bi1saW5rLWFjdGl2ZS1iZzogICAgICAgICRjb21wb25lbnQtYWN0aXZlLWJnICFkZWZhdWx0O1xuXG4vLyoqIERpc2FibGVkIGRyb3Bkb3duIG1lbnUgaXRlbSBiYWNrZ3JvdW5kIGNvbG9yLlxuJGRyb3Bkb3duLWxpbmstZGlzYWJsZWQtY29sb3I6ICAgJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG5cbi8vKiogVGV4dCBjb2xvciBmb3IgaGVhZGVycyB3aXRoaW4gZHJvcGRvd24gbWVudXMuXG4kZHJvcGRvd24taGVhZGVyLWNvbG9yOiAgICAgICAgICAkZ3JheS1saWdodCAhZGVmYXVsdDtcblxuLy8qKiBEZXByZWNhdGVkIGAkZHJvcGRvd24tY2FyZXQtY29sb3JgIGFzIG9mIHYzLjEuMFxuJGRyb3Bkb3duLWNhcmV0LWNvbG9yOiAgICAgICAgICAgIzAwMCAhZGVmYXVsdDtcblxuXG4vLz09IE1lbnUtRmxhdCBEcm9wZG93bnNcbi8vXG4vLyMjIE1lbnUtRmxhdCBEcm9wZG93biBtZW51IGNvbnRhaW5lciBhbmQgY29udGVudHMuXG5cbiRtZW51LWZsYXQtdGV4dDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJG1lbnUtZmxhdC1kcm9wZG93bi1iZzogICAgICAgICAgICAgICAgICAgICAgICMzYTM5M2IgIWRlZmF1bHQ7XG4kbGluZS1oZWlnaHQtbWVudS1mbGF0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzFweDtcbi8vKiogTWVudS1GbGF0IERyb3Bkb3duIG1lbnUgYGJvcmRlci1jb2xvcmAuXG4kbWVudS1mbGF0LWRyb3Bkb3duLWJvcmRlcjogICAgICAgICAgICAgICAgICMyZTJlMmUgIWRlZmF1bHQ7XG4kbWVudS1mbGF0LWRyb3Bkb3duLWRpdmlkZXItYmc6ICAgICAgICAgICAgICM0MDQwNDIgIWRlZmF1bHQ7XG4kbWVudS1mbGF0LWRyb3Bkb3duLWNyaXRpY2FsLWJnOiAgICAgICAgICAgICAjZDkxODJkICFkZWZhdWx0O1xuLy8qKiBEcm9wZG93biBsaW5rIHRleHQgY29sb3IuXG4kbWVudS1mbGF0LWRyb3Bkb3duLWxpbmstY29sb3I6ICAgICAgICAgICAgICAkbWVudS1mbGF0LXRleHQgIWRlZmF1bHQ7XG4vLyoqIEhvdmVyIGNvbG9yIGZvciBkcm9wZG93biBsaW5rcy5cbiRtZW51LWZsYXQtZHJvcGRvd24tbGluay1ob3Zlci1jb2xvcjogICAgICRtZW51LWZsYXQtdGV4dCAhZGVmYXVsdDtcbi8vKiogSG92ZXIgYmFja2dyb3VuZCBmb3IgZHJvcGRvd24gbGlua3MuXG4kbWVudS1mbGF0LWRyb3Bkb3duLWxpbmstaG92ZXItYmc6ICAgICAgICAgJG1lbnUtZmxhdC1kcm9wZG93bi1iZyAhZGVmYXVsdDtcbi8vKiogQWN0aXZlIGRyb3Bkb3duIG1lbnUgaXRlbSB0ZXh0IGNvbG9yLlxuJG1lbnUtZmxhdC1kcm9wZG93bi1saW5rLWFjdGl2ZS1jb2xvcjogICAgICRtZW51LWZsYXQtdGV4dCAhZGVmYXVsdDtcbi8vKiogQWN0aXZlIGRyb3Bkb3duIG1lbnUgaXRlbSBiYWNrZ3JvdW5kIGNvbG9yLlxuJG1lbnUtZmxhdC1kcm9wZG93bi1saW5rLWFjdGl2ZS1iZzogICAgICAgICRtZW51LWZsYXQtZHJvcGRvd24tYmcgIWRlZmF1bHQ7XG5cblxuLy8tLSBaLWluZGV4IG1hc3RlciBsaXN0XG4vL1xuLy8gV2FybmluZzogQXZvaWQgY3VzdG9taXppbmcgdGhlc2UgdmFsdWVzLiBUaGV5J3JlIHVzZWQgZm9yIGEgYmlyZCdzIGV5ZSB2aWV3XG4vLyBvZiBjb21wb25lbnRzIGRlcGVuZGVudCBvbiB0aGUgei1heGlzIGFuZCBhcmUgZGVzaWduZWQgdG8gYWxsIHdvcmsgdG9nZXRoZXIuXG4vL1xuLy8gTm90ZTogVGhlc2UgdmFyaWFibGVzIGFyZSBub3QgZ2VuZXJhdGVkIGludG8gdGhlIEN1c3RvbWl6ZXIuXG5cbiR6aW5kZXgtbmF2YmFyOiAgICAgICAgICAgIDEwMDAgIWRlZmF1bHQ7XG4kemluZGV4LWRyb3Bkb3duOiAgICAgICAgICAxMDAwICFkZWZhdWx0O1xuJHppbmRleC1wb3BvdmVyOiAgICAgICAgICAgMTA2MCAhZGVmYXVsdDtcbiR6aW5kZXgtdG9vbHRpcDogICAgICAgICAgIDEwNzAgIWRlZmF1bHQ7XG4kemluZGV4LW5hdmJhci1maXhlZDogICAgICAxMDMwICFkZWZhdWx0O1xuJHppbmRleC1tb2RhbC1iYWNrZ3JvdW5kOiAgMTA0MCAhZGVmYXVsdDtcbiR6aW5kZXgtbW9kYWw6ICAgICAgICAgICAgIDEwNTAgIWRlZmF1bHQ7XG5cbi8vPT0gTWVkaWEgcXVlcmllcyBicmVha3BvaW50c1xuLy9cbi8vIyMgRGVmaW5lIHRoZSBicmVha3BvaW50cyBhdCB3aGljaCB5b3VyIGxheW91dCB3aWxsIGNoYW5nZSwgYWRhcHRpbmcgdG8gZGlmZmVyZW50IHNjcmVlbiBzaXplcy5cblxuLy8gRXh0cmEgc21hbGwgc2NyZWVuIC8gcGhvbmVcbi8vKiogRGVwcmVjYXRlZCBgJHNjcmVlbi14c2AgYXMgb2YgdjMuMC4xXG4kc2NyZWVuLXhzOiAgICAgICAgICAgICAgICAgIDQ4MHB4ICFkZWZhdWx0O1xuLy8qKiBEZXByZWNhdGVkIGAkc2NyZWVuLXhzLW1pbmAgYXMgb2YgdjMuMi4wXG4kc2NyZWVuLXhzLW1pbjogICAgICAgICAgICAgICRzY3JlZW4teHMgIWRlZmF1bHQ7XG4vLyoqIERlcHJlY2F0ZWQgYCRzY3JlZW4tcGhvbmVgIGFzIG9mIHYzLjAuMVxuJHNjcmVlbi1waG9uZTogICAgICAgICAgICAgICAkc2NyZWVuLXhzLW1pbiAhZGVmYXVsdDtcblxuLy8gU21hbGwgc2NyZWVuIC8gdGFibGV0XG4vLyoqIERlcHJlY2F0ZWQgYCRzY3JlZW4tc21gIGFzIG9mIHYzLjAuMVxuJHNjcmVlbi1zbTogICAgICAgICAgICAgICAgICA5OTJweCAhZGVmYXVsdDtcbiRzY3JlZW4tc20tbWluOiAgICAgICAgICAgICAgJHNjcmVlbi1zbSAhZGVmYXVsdDtcbi8vKiogRGVwcmVjYXRlZCBgJHNjcmVlbi10YWJsZXRgIGFzIG9mIHYzLjAuMVxuJHNjcmVlbi10YWJsZXQ6ICAgICAgICAgICAgICAkc2NyZWVuLXNtLW1pbiAhZGVmYXVsdDtcblxuLy8gTWVkaXVtIHNjcmVlbiAvIGRlc2t0b3Bcbi8vKiogRGVwcmVjYXRlZCBgJHNjcmVlbi1tZGAgYXMgb2YgdjMuMC4xXG4kc2NyZWVuLW1kOiAgICAgICAgICAgICAgICAgIDEyMDBweCAhZGVmYXVsdDtcbiRzY3JlZW4tbWQtbWluOiAgICAgICAgICAgICAgJHNjcmVlbi1tZCAhZGVmYXVsdDtcbi8vKiogRGVwcmVjYXRlZCBgJHNjcmVlbi1kZXNrdG9wYCBhcyBvZiB2My4wLjFcbiRzY3JlZW4tZGVza3RvcDogICAgICAgICAgICAgJHNjcmVlbi1tZC1taW4gIWRlZmF1bHQ7XG5cbi8vIExhcmdlIHNjcmVlbiAvIHdpZGUgZGVza3RvcFxuLy8qKiBEZXByZWNhdGVkIGAkc2NyZWVuLWxnYCBhcyBvZiB2My4wLjFcbiRzY3JlZW4tbGc6ICAgICAgICAgICAgICAgICAgMTY4MCAhZGVmYXVsdDtcbiRzY3JlZW4tbGctbWluOiAgICAgICAgICAgICAgJHNjcmVlbi1sZyAhZGVmYXVsdDtcbi8vKiogRGVwcmVjYXRlZCBgJHNjcmVlbi1sZy1kZXNrdG9wYCBhcyBvZiB2My4wLjFcbiRzY3JlZW4tbGctZGVza3RvcDogICAgICAgICAgJHNjcmVlbi1sZy1taW4gIWRlZmF1bHQ7XG5cbi8vIFNvIG1lZGlhIHF1ZXJpZXMgZG9uJ3Qgb3ZlcmxhcCB3aGVuIHJlcXVpcmVkLCBwcm92aWRlIGEgbWF4aW11bVxuJHNjcmVlbi14cy1tYXg6ICAgICAgICAgICAgICAoJHNjcmVlbi1zbS1taW4gLSAxKSAhZGVmYXVsdDtcbiRzY3JlZW4tc20tbWF4OiAgICAgICAgICAgICAgKCRzY3JlZW4tbWQtbWluIC0gMSkgIWRlZmF1bHQ7XG4kc2NyZWVuLW1kLW1heDogICAgICAgICAgICAgICgkc2NyZWVuLWxnLW1pbiAtIDEpICFkZWZhdWx0O1xuXG5cbi8vPT0gR3JpZCBzeXN0ZW1cbi8vXG4vLyMjIERlZmluZSB5b3VyIGN1c3RvbSByZXNwb25zaXZlIGdyaWQuXG5cbi8vKiogTnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIGdyaWQuXG4kZ3JpZC1jb2x1bW5zOiAgICAgICAgICAgICAgMTIgIWRlZmF1bHQ7XG4vLyoqIFBhZGRpbmcgYmV0d2VlbiBjb2x1bW5zLiBHZXRzIGRpdmlkZWQgaW4gaGFsZiBmb3IgdGhlIGxlZnQgYW5kIHJpZ2h0LlxuJGdyaWQtZ3V0dGVyLXdpZHRoOiAgICAgICAgIDAgIWRlZmF1bHQ7XG4vLyBOYXZiYXIgY29sbGFwc2Vcbi8vKiogUG9pbnQgYXQgd2hpY2ggdGhlIG5hdmJhciBiZWNvbWVzIHVuY29sbGFwc2VkLlxuJGdyaWQtZmxvYXQtYnJlYWtwb2ludDogICAgICRzY3JlZW4tc20tbWluICFkZWZhdWx0O1xuLy8qKiBQb2ludCBhdCB3aGljaCB0aGUgbmF2YmFyIGJlZ2lucyBjb2xsYXBzaW5nLlxuJGdyaWQtZmxvYXQtYnJlYWtwb2ludC1tYXg6ICgkZ3JpZC1mbG9hdC1icmVha3BvaW50IC0gMSkgIWRlZmF1bHQ7XG5cblxuLy89PSBDb250YWluZXIgc2l6ZXNcbi8vXG4vLyMjIERlZmluZSB0aGUgbWF4aW11bSB3aWR0aCBvZiBgLmNvbnRhaW5lcmAgZm9yIGRpZmZlcmVudCBzY3JlZW4gc2l6ZXMuXG5cbi8vIFNtYWxsIHNjcmVlbiAvIHRhYmxldFxuJGNvbnRhaW5lci10YWJsZXQ6ICAgICAgICAgICAgICg5NDBweCArICRncmlkLWd1dHRlci13aWR0aCkgIWRlZmF1bHQ7XG4vLyoqIEZvciBgJHNjcmVlbi1zbS1taW5gIGFuZCB1cC5cbiRjb250YWluZXItc206ICAgICAgICAgICAgICAgICAkY29udGFpbmVyLXRhYmxldCAhZGVmYXVsdDtcblxuLy8gTWVkaXVtIHNjcmVlbiAvIGRlc2t0b3BcbiRjb250YWluZXItZGVza3RvcDogICAgICAgICAgICAoMTE0MHB4ICsgJGdyaWQtZ3V0dGVyLXdpZHRoKSAhZGVmYXVsdDtcbi8vKiogRm9yIGAkc2NyZWVuLW1kLW1pbmAgYW5kIHVwLlxuJGNvbnRhaW5lci1tZDogICAgICAgICAgICAgICAgICRjb250YWluZXItZGVza3RvcCAhZGVmYXVsdDtcblxuLy8gTGFyZ2Ugc2NyZWVuIC8gd2lkZSBkZXNrdG9wXG4kY29udGFpbmVyLWxhcmdlLWRlc2t0b3A6ICAgICAgKDE1NDBweCArICRncmlkLWd1dHRlci13aWR0aCkgIWRlZmF1bHQ7XG4vLyoqIEZvciBgJHNjcmVlbi1sZy1taW5gIGFuZCB1cC5cbiRjb250YWluZXItbGc6ICAgICAgICAgICAgICAgICAkY29udGFpbmVyLWxhcmdlLWRlc2t0b3AgIWRlZmF1bHQ7XG5cblxuLy89PSBOYXZiYXJcbi8vXG4vLyMjXG5cbi8vIEJhc2ljcyBvZiBhIG5hdmJhclxuJG5hdmJhci1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICA1MHB4ICFkZWZhdWx0O1xuJG5hdmJhci1tYXJnaW4tYm90dG9tOiAgICAgICAgICAgICAkbGluZS1oZWlnaHQtY29tcHV0ZWQgIWRlZmF1bHQ7XG4kbmF2YmFyLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICRib3JkZXItcmFkaXVzLWJhc2UgIWRlZmF1bHQ7XG4kbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgIGZsb29yKCgkZ3JpZC1ndXR0ZXItd2lkdGggLyAyKSkgIWRlZmF1bHQ7XG4kbmF2YmFyLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICgoJG5hdmJhci1oZWlnaHQgLSAkbGluZS1oZWlnaHQtY29tcHV0ZWQpIC8gMikgIWRlZmF1bHQ7XG4kbmF2YmFyLWNvbGxhcHNlLW1heC1oZWlnaHQ6ICAgICAgIDM0MHB4ICFkZWZhdWx0O1xuXG4kbmF2YmFyLWRlZmF1bHQtY29sb3I6ICAgICAgICAgICAgICM3NzcgIWRlZmF1bHQ7XG4kbmF2YmFyLWRlZmF1bHQtYmc6ICAgICAgICAgICAgICAgICNmOGY4ZjggIWRlZmF1bHQ7XG4kbmF2YmFyLWRlZmF1bHQtYm9yZGVyOiAgICAgICAgICAgIGRhcmtlbigkbmF2YmFyLWRlZmF1bHQtYmcsIDYuNSUpICFkZWZhdWx0O1xuXG4vLyBOYXZiYXIgbGlua3NcbiRuYXZiYXItZGVmYXVsdC1saW5rLWNvbG9yOiAgICAgICAgICAgICAgICAjNzc3ICFkZWZhdWx0O1xuJG5hdmJhci1kZWZhdWx0LWxpbmstaG92ZXItY29sb3I6ICAgICAgICAgICMzMzMgIWRlZmF1bHQ7XG4kbmF2YmFyLWRlZmF1bHQtbGluay1ob3Zlci1iZzogICAgICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kbmF2YmFyLWRlZmF1bHQtbGluay1hY3RpdmUtY29sb3I6ICAgICAgICAgIzU1NSAhZGVmYXVsdDtcbiRuYXZiYXItZGVmYXVsdC1saW5rLWFjdGl2ZS1iZzogICAgICAgICAgICBkYXJrZW4oJG5hdmJhci1kZWZhdWx0LWJnLCA2LjUlKSAhZGVmYXVsdDtcbiRuYXZiYXItZGVmYXVsdC1saW5rLWRpc2FibGVkLWNvbG9yOiAgICAgICAjY2NjICFkZWZhdWx0O1xuJG5hdmJhci1kZWZhdWx0LWxpbmstZGlzYWJsZWQtYmc6ICAgICAgICAgIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG4vLyBOYXZiYXIgYnJhbmQgbGFiZWxcbiRuYXZiYXItZGVmYXVsdC1icmFuZC1jb2xvcjogICAgICAgICAgICAgICAkbmF2YmFyLWRlZmF1bHQtbGluay1jb2xvciAhZGVmYXVsdDtcbiRuYXZiYXItZGVmYXVsdC1icmFuZC1ob3Zlci1jb2xvcjogICAgICAgICBkYXJrZW4oJG5hdmJhci1kZWZhdWx0LWJyYW5kLWNvbG9yLCAxMCUpICFkZWZhdWx0O1xuJG5hdmJhci1kZWZhdWx0LWJyYW5kLWhvdmVyLWJnOiAgICAgICAgICAgIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG4vLyBOYXZiYXIgdG9nZ2xlXG4kbmF2YmFyLWRlZmF1bHQtdG9nZ2xlLWhvdmVyLWJnOiAgICAgICAgICAgI2RkZCAhZGVmYXVsdDtcbiRuYXZiYXItZGVmYXVsdC10b2dnbGUtaWNvbi1iYXItYmc6ICAgICAgICAjODg4ICFkZWZhdWx0O1xuJG5hdmJhci1kZWZhdWx0LXRvZ2dsZS1ib3JkZXItY29sb3I6ICAgICAgICNkZGQgIWRlZmF1bHQ7XG5cblxuLy89PT0gSW52ZXJ0ZWQgbmF2YmFyXG4vLyBSZXNldCBpbnZlcnRlZCBuYXZiYXIgYmFzaWNzXG4kbmF2YmFyLWludmVyc2UtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgIGxpZ2h0ZW4oJGdyYXktbGlnaHQsIDE1JSkgIWRlZmF1bHQ7XG4kbmF2YmFyLWludmVyc2UtYmc6ICAgICAgICAgICAgICAgICAgICAgICAgICMyMjIgIWRlZmF1bHQ7XG4kbmF2YmFyLWludmVyc2UtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgIGRhcmtlbigkbmF2YmFyLWludmVyc2UtYmcsIDEwJSkgIWRlZmF1bHQ7XG5cbi8vIEludmVydGVkIG5hdmJhciBsaW5rc1xuJG5hdmJhci1pbnZlcnNlLWxpbmstY29sb3I6ICAgICAgICAgICAgICAgICBsaWdodGVuKCRncmF5LWxpZ2h0LCAxNSUpICFkZWZhdWx0O1xuJG5hdmJhci1pbnZlcnNlLWxpbmstaG92ZXItY29sb3I6ICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJG5hdmJhci1pbnZlcnNlLWxpbmstaG92ZXItYmc6ICAgICAgICAgICAgICB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRuYXZiYXItaW52ZXJzZS1saW5rLWFjdGl2ZS1jb2xvcjogICAgICAgICAgJG5hdmJhci1pbnZlcnNlLWxpbmstaG92ZXItY29sb3IgIWRlZmF1bHQ7XG4kbmF2YmFyLWludmVyc2UtbGluay1hY3RpdmUtYmc6ICAgICAgICAgICAgIGRhcmtlbigkbmF2YmFyLWludmVyc2UtYmcsIDEwJSkgIWRlZmF1bHQ7XG4kbmF2YmFyLWludmVyc2UtbGluay1kaXNhYmxlZC1jb2xvcjogICAgICAgICM0NDQgIWRlZmF1bHQ7XG4kbmF2YmFyLWludmVyc2UtbGluay1kaXNhYmxlZC1iZzogICAgICAgICAgIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG4vLyBJbnZlcnRlZCBuYXZiYXIgYnJhbmQgbGFiZWxcbiRuYXZiYXItaW52ZXJzZS1icmFuZC1jb2xvcjogICAgICAgICAgICAgICAgJG5hdmJhci1pbnZlcnNlLWxpbmstY29sb3IgIWRlZmF1bHQ7XG4kbmF2YmFyLWludmVyc2UtYnJhbmQtaG92ZXItY29sb3I6ICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kbmF2YmFyLWludmVyc2UtYnJhbmQtaG92ZXItYmc6ICAgICAgICAgICAgIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG4vLyBJbnZlcnRlZCBuYXZiYXIgdG9nZ2xlXG4kbmF2YmFyLWludmVyc2UtdG9nZ2xlLWhvdmVyLWJnOiAgICAgICAgICAgICMzMzMgIWRlZmF1bHQ7XG4kbmF2YmFyLWludmVyc2UtdG9nZ2xlLWljb24tYmFyLWJnOiAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kbmF2YmFyLWludmVyc2UtdG9nZ2xlLWJvcmRlci1jb2xvcjogICAgICAgICMzMzMgIWRlZmF1bHQ7XG5cblxuLy89PSBOYXZzXG4vL1xuLy8jI1xuXG4vLz09PSBTaGFyZWQgbmF2IHN0eWxlc1xuJG5hdi1saW5rLXBhZGRpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAxMHB4IDE1cHggIWRlZmF1bHQ7XG4kbmF2LWxpbmstaG92ZXItYmc6ICAgICAgICAgICAgICAgICAgICAgICAgICRncmF5LWxpZ2h0ZXIgIWRlZmF1bHQ7XG5cbiRuYXYtZGlzYWJsZWQtbGluay1jb2xvcjogICAgICAgICAgICAgICAgICAgJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG4kbmF2LWRpc2FibGVkLWxpbmstaG92ZXItY29sb3I6ICAgICAgICAgICAgICRncmF5LWxpZ2h0ICFkZWZhdWx0O1xuXG4vLz09IFRhYnNcbiRuYXYtdGFicy1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgI2RkZCAhZGVmYXVsdDtcblxuJG5hdi10YWJzLWxpbmstaG92ZXItYm9yZGVyLWNvbG9yOiAgICAgICAgICAkZ3JheS1saWdodGVyICFkZWZhdWx0O1xuXG4kbmF2LXRhYnMtYWN0aXZlLWxpbmstaG92ZXItYmc6ICAgICAgICAgICAgICRib2R5LWJnICFkZWZhdWx0O1xuJG5hdi10YWJzLWFjdGl2ZS1saW5rLWhvdmVyLWNvbG9yOiAgICAgICAgICAkZ3JheSAhZGVmYXVsdDtcbiRuYXYtdGFicy1hY3RpdmUtbGluay1ob3Zlci1ib3JkZXItY29sb3I6ICAgI2RkZCAhZGVmYXVsdDtcblxuJG5hdi10YWJzLWp1c3RpZmllZC1saW5rLWJvcmRlci1jb2xvcjogICAgICAgICAgICAjZGRkICFkZWZhdWx0O1xuJG5hdi10YWJzLWp1c3RpZmllZC1hY3RpdmUtbGluay1ib3JkZXItY29sb3I6ICAgICAkYm9keS1iZyAhZGVmYXVsdDtcblxuLy89PSBQaWxsc1xuJG5hdi1waWxscy1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgICAgICAkYm9yZGVyLXJhZGl1cy1iYXNlICFkZWZhdWx0O1xuJG5hdi1waWxscy1hY3RpdmUtbGluay1ob3Zlci1iZzogICAgICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1iZyAhZGVmYXVsdDtcbiRuYXYtcGlsbHMtYWN0aXZlLWxpbmstaG92ZXItY29sb3I6ICAgICAgICAgJGNvbXBvbmVudC1hY3RpdmUtY29sb3IgIWRlZmF1bHQ7XG5cblxuLy89PSBQYWdpbmF0aW9uXG4vL1xuLy8jI1xuXG4kcGFnaW5hdGlvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAkbGluay1jb2xvciAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWJnOiAgICAgICAgICAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAjZGRkICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAkbGluay1ob3Zlci1jb2xvciAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWhvdmVyLWJnOiAgICAgICAgICAgICAgICAgICRncmF5LWxpZ2h0ZXIgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1ob3Zlci1ib3JkZXI6ICAgICAgICAgICAgICAjZGRkICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1hY3RpdmUtY29sb3I6ICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tYWN0aXZlLWJnOiAgICAgICAgICAgICAgICAgJGJyYW5kLXByaW1hcnkgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1hY3RpdmUtYm9yZGVyOiAgICAgICAgICAgICAkYnJhbmQtcHJpbWFyeSAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb24tZGlzYWJsZWQtY29sb3I6ICAgICAgICAgICAgJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1kaXNhYmxlZC1iZzogICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tZGlzYWJsZWQtYm9yZGVyOiAgICAgICAgICAgI2RkZCAhZGVmYXVsdDtcblxuXG4vLz09IFBhZ2VyXG4vL1xuLy8jI1xuXG4kcGFnZXItYmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFnaW5hdGlvbi1iZyAhZGVmYXVsdDtcbiRwYWdlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICRwYWdpbmF0aW9uLWJvcmRlciAhZGVmYXVsdDtcbiRwYWdlci1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgICAgIDE1cHggIWRlZmF1bHQ7XG5cbiRwYWdlci1ob3Zlci1iZzogICAgICAgICAgICAgICAgICAgICAgICRwYWdpbmF0aW9uLWhvdmVyLWJnICFkZWZhdWx0O1xuXG4kcGFnZXItYWN0aXZlLWJnOiAgICAgICAgICAgICAgICAgICAgICAkcGFnaW5hdGlvbi1hY3RpdmUtYmcgIWRlZmF1bHQ7XG4kcGFnZXItYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAkcGFnaW5hdGlvbi1hY3RpdmUtY29sb3IgIWRlZmF1bHQ7XG5cbiRwYWdlci1kaXNhYmxlZC1jb2xvcjogICAgICAgICAgICAgICAgICRwYWdpbmF0aW9uLWRpc2FibGVkLWNvbG9yICFkZWZhdWx0O1xuXG5cbi8vPT0gSnVtYm90cm9uXG4vL1xuLy8jI1xuXG4kanVtYm90cm9uLXBhZGRpbmc6ICAgICAgICAgICAgICAzMHB4ICFkZWZhdWx0O1xuJGp1bWJvdHJvbi1jb2xvcjogICAgICAgICAgICAgICAgaW5oZXJpdCAhZGVmYXVsdDtcbiRqdW1ib3Ryb24tYmc6ICAgICAgICAgICAgICAgICAgICRncmF5LWxpZ2h0ZXIgIWRlZmF1bHQ7XG4kanVtYm90cm9uLWhlYWRpbmctY29sb3I6ICAgICAgICBpbmhlcml0ICFkZWZhdWx0O1xuJGp1bWJvdHJvbi1mb250LXNpemU6ICAgICAgICAgICAgY2VpbCgoJGZvbnQtc2l6ZS1iYXNlICogMS41KSkgIWRlZmF1bHQ7XG4kanVtYm90cm9uLWhlYWRpbmctZm9udC1zaXplOiAgICBjZWlsKCgkZm9udC1zaXplLWJhc2UgKiA0LjUpKSAhZGVmYXVsdDtcblxuXG4vLz09IEZvcm0gc3RhdGVzIGFuZCBhbGVydHNcbi8vXG4vLyMjIERlZmluZSBjb2xvcnMgZm9yIGZvcm0gZmVlZGJhY2sgc3RhdGVzIGFuZCwgYnkgZGVmYXVsdCwgYWxlcnRzLlxuXG4kc3RhdGUtc3VjY2Vzcy10ZXh0OiAgICAgICAgICAgICAjNmM2YzZjICFkZWZhdWx0O1xuJHN0YXRlLXN1Y2Nlc3MtYmc6ICAgICAgICAgICAgICAgI2RhZTZjYiAhZGVmYXVsdDtcbiRzdGF0ZS1zdWNjZXNzLWJvcmRlcjogICAgICAgICAgICM4Y2M2M2YgIWRlZmF1bHQ7XG5cbiRzdGF0ZS1pbmZvLXRleHQ6ICAgICAgICAgICAgICAgICM2YzZjNmMgIWRlZmF1bHQ7XG4kc3RhdGUtaW5mby1iZzogICAgICAgICAgICAgICAgICAjZDllZGY3ICFkZWZhdWx0O1xuJHN0YXRlLWluZm8tYm9yZGVyOiAgICAgICAgICAgICAgIzAwOGFiZiAhZGVmYXVsdDtcblxuJHN0YXRlLXdhcm5pbmctdGV4dDogICAgICAgICAgICAgIzZjNmM2YyAhZGVmYXVsdDtcbiRzdGF0ZS13YXJuaW5nLWJnOiAgICAgICAgICAgICAgICNmMWUzYzIgIWRlZmF1bHQ7XG4kc3RhdGUtd2FybmluZy1ib3JkZXI6ICAgICAgICAgICAjZmRiODEzICFkZWZhdWx0O1xuXG4kc3RhdGUtZGFuZ2VyLXRleHQ6ICAgICAgICAgICAgICAjNmM2YzZjICFkZWZhdWx0O1xuJHN0YXRlLWRhbmdlci1iZzogICAgICAgICAgICAgICAgICNlYWMzYzcgIWRlZmF1bHQ7XG4kc3RhdGUtZGFuZ2VyLWJvcmRlcjogICAgICAgICAgICNkOTE4MmQgIWRlZmF1bHQ7XG5cblxuLy89PSBUb29sdGlwc1xuLy9cbi8vIyNcblxuLy8qKiBUb29sdGlwIG1heCB3aWR0aFxuJHRvb2x0aXAtbWF4LXdpZHRoOiAgICAgICAgICAgMjAwcHggIWRlZmF1bHQ7XG4vLyoqIFRvb2x0aXAgdGV4dCBjb2xvclxuJHRvb2x0aXAtY29sb3I6ICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbi8vKiogVG9vbHRpcCBiYWNrZ3JvdW5kIGNvbG9yXG4kdG9vbHRpcC1iZzogICAgICAgICAgICAgICAgICAjMDAwICFkZWZhdWx0O1xuJHRvb2x0aXAtb3BhY2l0eTogICAgICAgICAgICAgLjkgIWRlZmF1bHQ7XG5cbi8vKiogVG9vbHRpcCBhcnJvdyB3aWR0aFxuJHRvb2x0aXAtYXJyb3ctd2lkdGg6ICAgICAgICAgNXB4ICFkZWZhdWx0O1xuLy8qKiBUb29sdGlwIGFycm93IGNvbG9yXG4kdG9vbHRpcC1hcnJvdy1jb2xvcjogICAgICAgICAkdG9vbHRpcC1iZyAhZGVmYXVsdDtcblxuXG4vLz09IFBvcG92ZXJzXG4vL1xuLy8jI1xuXG4vLyoqIFBvcG92ZXIgYm9keSBiYWNrZ3JvdW5kIGNvbG9yXG4kcG9wb3Zlci1iZzogICAgICAgICAgICAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4vLyoqIFBvcG92ZXIgbWF4aW11bSB3aWR0aFxuJHBvcG92ZXItbWF4LXdpZHRoOiAgICAgICAgICAgICAgICAgICAyNzZweCAhZGVmYXVsdDtcbi8vKiogUG9wb3ZlciBib3JkZXIgY29sb3JcbiRwb3BvdmVyLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICAgcmdiYSgwLDAsMCwuMikgIWRlZmF1bHQ7XG4vLyoqIFBvcG92ZXIgZmFsbGJhY2sgYm9yZGVyIGNvbG9yXG4kcG9wb3Zlci1mYWxsYmFjay1ib3JkZXItY29sb3I6ICAgICAgICNjY2MgIWRlZmF1bHQ7XG5cbi8vKiogUG9wb3ZlciB0aXRsZSBiYWNrZ3JvdW5kIGNvbG9yXG4kcG9wb3Zlci10aXRsZS1iZzogICAgICAgICAgICAgICAgICAgIGRhcmtlbigkcG9wb3Zlci1iZywgMyUpICFkZWZhdWx0O1xuXG4vLyoqIFBvcG92ZXIgYXJyb3cgd2lkdGhcbiRwb3BvdmVyLWFycm93LXdpZHRoOiAgICAgICAgICAgICAgICAgMTBweCAhZGVmYXVsdDtcbi8vKiogUG9wb3ZlciBhcnJvdyBjb2xvclxuJHBvcG92ZXItYXJyb3ctY29sb3I6ICAgICAgICAgICAgICAgICAkcG9wb3Zlci1iZyAhZGVmYXVsdDtcblxuLy8qKiBQb3BvdmVyIG91dGVyIGFycm93IHdpZHRoXG4kcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDogICAgICAgICAgICgkcG9wb3Zlci1hcnJvdy13aWR0aCArIDEpICFkZWZhdWx0O1xuLy8qKiBQb3BvdmVyIG91dGVyIGFycm93IGNvbG9yXG4kcG9wb3Zlci1hcnJvdy1vdXRlci1jb2xvcjogICAgICAgICAgIGZhZGVfaW4oJHBvcG92ZXItYm9yZGVyLWNvbG9yLCAwLjA1KSAhZGVmYXVsdDtcbi8vKiogUG9wb3ZlciBvdXRlciBhcnJvdyBmYWxsYmFjayBjb2xvclxuJHBvcG92ZXItYXJyb3ctb3V0ZXItZmFsbGJhY2stY29sb3I6ICBkYXJrZW4oJHBvcG92ZXItZmFsbGJhY2stYm9yZGVyLWNvbG9yLCAyMCUpICFkZWZhdWx0O1xuXG5cbi8vPT0gTGFiZWxzXG4vL1xuLy8jI1xuXG4vLyoqIERlZmF1bHQgbGFiZWwgYmFja2dyb3VuZCBjb2xvclxuJGxhYmVsLWRlZmF1bHQtYmc6ICAgICAgICAgICAgJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG4vLyoqIFByaW1hcnkgbGFiZWwgYmFja2dyb3VuZCBjb2xvclxuJGxhYmVsLXByaW1hcnktYmc6ICAgICAgICAgICAgJGJyYW5kLXByaW1hcnkgIWRlZmF1bHQ7XG4vLyoqIFN1Y2Nlc3MgbGFiZWwgYmFja2dyb3VuZCBjb2xvclxuJGxhYmVsLXN1Y2Nlc3MtYmc6ICAgICAgICAgICAgJGJyYW5kLXN1Y2Nlc3MgIWRlZmF1bHQ7XG4vLyoqIEluZm8gbGFiZWwgYmFja2dyb3VuZCBjb2xvclxuJGxhYmVsLWluZm8tYmc6ICAgICAgICAgICAgICAgJGJyYW5kLWluZm8gIWRlZmF1bHQ7XG4vLyoqIFdhcm5pbmcgbGFiZWwgYmFja2dyb3VuZCBjb2xvclxuJGxhYmVsLXdhcm5pbmctYmc6ICAgICAgICAgICAgJGJyYW5kLXdhcm5pbmcgIWRlZmF1bHQ7XG4vLyoqIERhbmdlciBsYWJlbCBiYWNrZ3JvdW5kIGNvbG9yXG4kbGFiZWwtZGFuZ2VyLWJnOiAgICAgICAgICAgICAkYnJhbmQtZGFuZ2VyICFkZWZhdWx0O1xuXG4vLyoqIERlZmF1bHQgbGFiZWwgdGV4dCBjb2xvclxuJGxhYmVsLWNvbG9yOiAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbi8vKiogRGVmYXVsdCB0ZXh0IGNvbG9yIG9mIGEgbGlua2VkIGxhYmVsXG4kbGFiZWwtbGluay1ob3Zlci1jb2xvcjogICAgICAjZmZmICFkZWZhdWx0O1xuXG5cbi8vPT0gTW9kYWxzXG4vL1xuLy8jI1xuXG4vLyoqIFBhZGRpbmcgYXBwbGllZCB0byB0aGUgbW9kYWwgYm9keVxuJG1vZGFsLWlubmVyLXBhZGRpbmc6ICAgICAgICAgMjBweCAzMHB4ICFkZWZhdWx0O1xuXG4vLyoqIFBhZGRpbmcgYXBwbGllZCB0byB0aGUgbW9kYWwgdGl0bGVcbiRtb2RhbC10aXRsZS1wYWRkaW5nOiAgICAgICAgIDI3cHggMTRweCAxNHB4IDMwcHggIWRlZmF1bHQ7XG4vLyoqIE1vZGFsIHRpdGxlIGxpbmUtaGVpZ2h0XG4kbW9kYWwtdGl0bGUtbGluZS1oZWlnaHQ6ICAgICAyM3B4ICFkZWZhdWx0O1xuXG4vLyoqIEJhY2tncm91bmQgY29sb3Igb2YgbW9kYWwgY29udGVudCBhcmVhXG4kbW9kYWwtY29udGVudC1iZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4vLyoqIE1vZGFsIGNvbnRlbnQgYm9yZGVyIGNvbG9yXG4kbW9kYWwtY29udGVudC1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgIHJnYmEoMTcwLDE3MCwxNzAsLjMpICFkZWZhdWx0O1xuLy8qKiBNb2RhbCBjb250ZW50IGJvcmRlciBjb2xvciAqKmZvciBJRTgqKlxuJG1vZGFsLWNvbnRlbnQtZmFsbGJhY2stYm9yZGVyLWNvbG9yOiAgICAgICAgICAjYWFhICFkZWZhdWx0O1xuXG4vLyoqIE1vZGFsIGJhY2tkcm9wIGJhY2tncm91bmQgY29sb3JcbiRtb2RhbC1iYWNrZHJvcC1iZzogICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4vLyoqIE1vZGFsIGJhY2tkcm9wIG9wYWNpdHlcbiRtb2RhbC1iYWNrZHJvcC1vcGFjaXR5OiAgICAgIC41ICFkZWZhdWx0O1xuLy8qKiBNb2RhbCBoZWFkZXIgYm9yZGVyIGNvbG9yXG4kbW9kYWwtaGVhZGVyLWJvcmRlci1jb2xvcjogICB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbi8vKiogTW9kYWwgZm9vdGVyIGJvcmRlciBjb2xvclxuJG1vZGFsLWZvb3Rlci1ib3JkZXItY29sb3I6ICAgJG1vZGFsLWhlYWRlci1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG5cbiRtb2RhbC1sZzogICAgICAgICAgICAgICAgICAgIDExMjRweCAhZGVmYXVsdDtcbiRtb2RhbC1tZDogICAgICAgICAgICAgICAgICAgIDgyNHB4ICFkZWZhdWx0O1xuJG1vZGFsLXNtOiAgICAgICAgICAgICAgICAgICAgNTI0cHggIWRlZmF1bHQ7XG5cblxuLy89PSBBbGVydHNcbi8vXG4vLyMjIERlZmluZSBhbGVydCBjb2xvcnMsIGJvcmRlciByYWRpdXMsIGFuZCBwYWRkaW5nLlxuXG4kYWxlcnQtcGFkZGluZzogICAgICAgICAgICAgICA4cHggMTVweCAhZGVmYXVsdDtcbiRhbGVydC1ib3JkZXItcmFkaXVzOiAgICAgICAgIDAgIWRlZmF1bHQ7XG4kYWxlcnQtbGluay1mb250LXdlaWdodDogICAgICBib2xkICFkZWZhdWx0O1xuJGFsZXJ0LWJvcmRlci13aWR0aDogICAgICAgICAgMCAwIDAgNXB4ICFkZWZhdWx0O1xuJGFsZXJ0LWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgMTAuNXB0ICFkZWZhdWx0OyBcblxuJGFsZXJ0LXN1Y2Nlc3MtYmc6ICAgICAgICAgICAgJHN0YXRlLXN1Y2Nlc3MtYmcgIWRlZmF1bHQ7XG4kYWxlcnQtc3VjY2Vzcy10ZXh0OiAgICAgICAgICAkc3RhdGUtc3VjY2Vzcy10ZXh0ICFkZWZhdWx0O1xuJGFsZXJ0LXN1Y2Nlc3MtYm9yZGVyOiAgICAgICAgJHN0YXRlLXN1Y2Nlc3MtYm9yZGVyICFkZWZhdWx0O1xuXG4kYWxlcnQtaW5mby1iZzogICAgICAgICAgICAgICAkc3RhdGUtaW5mby1iZyAhZGVmYXVsdDtcbiRhbGVydC1pbmZvLXRleHQ6ICAgICAgICAgICAgICRzdGF0ZS1pbmZvLXRleHQgIWRlZmF1bHQ7XG4kYWxlcnQtaW5mby1ib3JkZXI6ICAgICAgICAgICAkc3RhdGUtaW5mby1ib3JkZXIgIWRlZmF1bHQ7XG5cbiRhbGVydC13YXJuaW5nLWJnOiAgICAgICAgICAgICRzdGF0ZS13YXJuaW5nLWJnICFkZWZhdWx0O1xuJGFsZXJ0LXdhcm5pbmctdGV4dDogICAgICAgICAgJHN0YXRlLXdhcm5pbmctdGV4dCAhZGVmYXVsdDtcbiRhbGVydC13YXJuaW5nLWJvcmRlcjogICAgICAgICRzdGF0ZS13YXJuaW5nLWJvcmRlciAhZGVmYXVsdDtcblxuJGFsZXJ0LWRhbmdlci1iZzogICAgICAgICAgICAgJHN0YXRlLWRhbmdlci1iZyAhZGVmYXVsdDtcbiRhbGVydC1kYW5nZXItdGV4dDogICAgICAgICAgICRzdGF0ZS1kYW5nZXItdGV4dCAhZGVmYXVsdDtcbiRhbGVydC1kYW5nZXItYm9yZGVyOiAgICAgICAgICRzdGF0ZS1kYW5nZXItYm9yZGVyICFkZWZhdWx0O1xuXG5cbi8vPT0gUHJvZ3Jlc3MgYmFyc1xuLy9cbi8vIyNcblxuLy8qKiBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSB3aG9sZSBwcm9ncmVzcyBjb21wb25lbnRcbiRwcm9ncmVzcy1iZzogICAgICAgICAgICAgICAgICNmNWY1ZjUgIWRlZmF1bHQ7XG4vLyoqIFByb2dyZXNzIGJhciB0ZXh0IGNvbG9yXG4kcHJvZ3Jlc3MtYmFyLWNvbG9yOiAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuLy8qKiBWYXJpYWJsZSBmb3Igc2V0dGluZyByb3VuZGVkIGNvcm5lcnMgb24gcHJvZ3Jlc3MgYmFyLlxuJHByb2dyZXNzLWJvcmRlci1yYWRpdXM6ICAgICAgJGJvcmRlci1yYWRpdXMtYmFzZSAhZGVmYXVsdDtcblxuLy8qKiBEZWZhdWx0IHByb2dyZXNzIGJhciBjb2xvclxuJHByb2dyZXNzLWJhci1iZzogICAgICAgICAgICAgJGJyYW5kLXByaW1hcnkgIWRlZmF1bHQ7XG4vLyoqIFN1Y2Nlc3MgcHJvZ3Jlc3MgYmFyIGNvbG9yXG4kcHJvZ3Jlc3MtYmFyLXN1Y2Nlc3MtYmc6ICAgICAkYnJhbmQtc3VjY2VzcyAhZGVmYXVsdDtcbi8vKiogV2FybmluZyBwcm9ncmVzcyBiYXIgY29sb3JcbiRwcm9ncmVzcy1iYXItd2FybmluZy1iZzogICAgICRicmFuZC13YXJuaW5nICFkZWZhdWx0O1xuLy8qKiBEYW5nZXIgcHJvZ3Jlc3MgYmFyIGNvbG9yXG4kcHJvZ3Jlc3MtYmFyLWRhbmdlci1iZzogICAgICAkYnJhbmQtZGFuZ2VyICFkZWZhdWx0O1xuLy8qKiBJbmZvIHByb2dyZXNzIGJhciBjb2xvclxuJHByb2dyZXNzLWJhci1pbmZvLWJnOiAgICAgICAgJGJyYW5kLWluZm8gIWRlZmF1bHQ7XG5cblxuLy89PSBMaXN0IGdyb3VwXG4vL1xuLy8jI1xuXG4vLyoqIEJhY2tncm91bmQgY29sb3Igb24gYC5saXN0LWdyb3VwLWl0ZW1gXG4kbGlzdC1ncm91cC1iZzogICAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4vLyoqIGAubGlzdC1ncm91cC1pdGVtYCBib3JkZXIgY29sb3JcbiRsaXN0LWdyb3VwLWJvcmRlcjogICAgICAgICAgICAgI2RkZCAhZGVmYXVsdDtcbi8vKiogTGlzdCBncm91cCBib3JkZXIgcmFkaXVzXG4kbGlzdC1ncm91cC1ib3JkZXItcmFkaXVzOiAgICAgICRib3JkZXItcmFkaXVzLWJhc2UgIWRlZmF1bHQ7XG5cbi8vKiogQmFja2dyb3VuZCBjb2xvciBvZiBzaW5nbGUgbGlzdCBpdGVtcyBvbiBob3ZlclxuJGxpc3QtZ3JvdXAtaG92ZXItYmc6ICAgICAgICAgICAjZjVmNWY1ICFkZWZhdWx0O1xuLy8qKiBUZXh0IGNvbG9yIG9mIGFjdGl2ZSBsaXN0IGl0ZW1zXG4kbGlzdC1ncm91cC1hY3RpdmUtY29sb3I6ICAgICAgICRjb21wb25lbnQtYWN0aXZlLWNvbG9yICFkZWZhdWx0O1xuLy8qKiBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFjdGl2ZSBsaXN0IGl0ZW1zXG4kbGlzdC1ncm91cC1hY3RpdmUtYmc6ICAgICAgICAgICRjb21wb25lbnQtYWN0aXZlLWJnICFkZWZhdWx0O1xuLy8qKiBCb3JkZXIgY29sb3Igb2YgYWN0aXZlIGxpc3QgZWxlbWVudHNcbiRsaXN0LWdyb3VwLWFjdGl2ZS1ib3JkZXI6ICAgICAgJGxpc3QtZ3JvdXAtYWN0aXZlLWJnICFkZWZhdWx0O1xuLy8qKiBUZXh0IGNvbG9yIGZvciBjb250ZW50IHdpdGhpbiBhY3RpdmUgbGlzdCBpdGVtc1xuJGxpc3QtZ3JvdXAtYWN0aXZlLXRleHQtY29sb3I6ICBsaWdodGVuKCRsaXN0LWdyb3VwLWFjdGl2ZS1iZywgNDAlKSAhZGVmYXVsdDtcblxuLy8qKiBUZXh0IGNvbG9yIG9mIGRpc2FibGVkIGxpc3QgaXRlbXNcbiRsaXN0LWdyb3VwLWRpc2FibGVkLWNvbG9yOiAgICAgICRncmF5LWxpZ2h0ICFkZWZhdWx0O1xuLy8qKiBCYWNrZ3JvdW5kIGNvbG9yIG9mIGRpc2FibGVkIGxpc3QgaXRlbXNcbiRsaXN0LWdyb3VwLWRpc2FibGVkLWJnOiAgICAgICAgICRncmF5LWxpZ2h0ZXIgIWRlZmF1bHQ7XG4vLyoqIFRleHQgY29sb3IgZm9yIGNvbnRlbnQgd2l0aGluIGRpc2FibGVkIGxpc3QgaXRlbXNcbiRsaXN0LWdyb3VwLWRpc2FibGVkLXRleHQtY29sb3I6ICRsaXN0LWdyb3VwLWRpc2FibGVkLWNvbG9yICFkZWZhdWx0O1xuXG4kbGlzdC1ncm91cC1saW5rLWNvbG9yOiAgICAgICAgICM1NTUgIWRlZmF1bHQ7XG4kbGlzdC1ncm91cC1saW5rLWhvdmVyLWNvbG9yOiAgICRsaXN0LWdyb3VwLWxpbmstY29sb3IgIWRlZmF1bHQ7XG4kbGlzdC1ncm91cC1saW5rLWhlYWRpbmctY29sb3I6ICMzMzMgIWRlZmF1bHQ7XG5cblxuLy89PSBQYW5lbHNcbi8vXG4vLyMjXG5cbiRwYW5lbC1iZzogICAgICAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kcGFuZWwtYm9keS1wYWRkaW5nOiAgICAgICAgICAxNXB4ICFkZWZhdWx0O1xuJHBhbmVsLWhlYWRpbmctcGFkZGluZzogICAgICAgMTBweCAxNXB4ICFkZWZhdWx0O1xuJHBhbmVsLWZvb3Rlci1wYWRkaW5nOiAgICAgICAgJHBhbmVsLWhlYWRpbmctcGFkZGluZyAhZGVmYXVsdDtcbiRwYW5lbC1ib3JkZXItcmFkaXVzOiAgICAgICAgICRib3JkZXItcmFkaXVzLWJhc2UgIWRlZmF1bHQ7XG5cbi8vKiogQm9yZGVyIGNvbG9yIGZvciBlbGVtZW50cyB3aXRoaW4gcGFuZWxzXG4kcGFuZWwtaW5uZXItYm9yZGVyOiAgICAgICAgICAjZGRkICFkZWZhdWx0O1xuJHBhbmVsLWZvb3Rlci1iZzogICAgICAgICAgICAgI2Y1ZjVmNSAhZGVmYXVsdDtcblxuJHBhbmVsLWRlZmF1bHQtdGV4dDogICAgICAgICAgJGdyYXktZGFyayAhZGVmYXVsdDtcbiRwYW5lbC1kZWZhdWx0LWJvcmRlcjogICAgICAgICNkZGQgIWRlZmF1bHQ7XG4kcGFuZWwtZGVmYXVsdC1oZWFkaW5nLWJnOiAgICAjZjVmNWY1ICFkZWZhdWx0O1xuXG4kcGFuZWwtcHJpbWFyeS10ZXh0OiAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJHBhbmVsLXByaW1hcnktYm9yZGVyOiAgICAgICAgJGJyYW5kLXByaW1hcnkgIWRlZmF1bHQ7XG4kcGFuZWwtcHJpbWFyeS1oZWFkaW5nLWJnOiAgICAkYnJhbmQtcHJpbWFyeSAhZGVmYXVsdDtcblxuJHBhbmVsLXN1Y2Nlc3MtdGV4dDogICAgICAgICAgJHN0YXRlLXN1Y2Nlc3MtdGV4dCAhZGVmYXVsdDtcbiRwYW5lbC1zdWNjZXNzLWJvcmRlcjogICAgICAgICRzdGF0ZS1zdWNjZXNzLWJvcmRlciAhZGVmYXVsdDtcbiRwYW5lbC1zdWNjZXNzLWhlYWRpbmctYmc6ICAgICRzdGF0ZS1zdWNjZXNzLWJnICFkZWZhdWx0O1xuXG4kcGFuZWwtaW5mby10ZXh0OiAgICAgICAgICAgICAkc3RhdGUtaW5mby10ZXh0ICFkZWZhdWx0O1xuJHBhbmVsLWluZm8tYm9yZGVyOiAgICAgICAgICAgJHN0YXRlLWluZm8tYm9yZGVyICFkZWZhdWx0O1xuJHBhbmVsLWluZm8taGVhZGluZy1iZzogICAgICAgJHN0YXRlLWluZm8tYmcgIWRlZmF1bHQ7XG5cbiRwYW5lbC13YXJuaW5nLXRleHQ6ICAgICAgICAgICRzdGF0ZS13YXJuaW5nLXRleHQgIWRlZmF1bHQ7XG4kcGFuZWwtd2FybmluZy1ib3JkZXI6ICAgICAgICAkc3RhdGUtd2FybmluZy1ib3JkZXIgIWRlZmF1bHQ7XG4kcGFuZWwtd2FybmluZy1oZWFkaW5nLWJnOiAgICAkc3RhdGUtd2FybmluZy1iZyAhZGVmYXVsdDtcblxuJHBhbmVsLWRhbmdlci10ZXh0OiAgICAgICAgICAgJHN0YXRlLWRhbmdlci10ZXh0ICFkZWZhdWx0O1xuJHBhbmVsLWRhbmdlci1ib3JkZXI6ICAgICAgICAgJHN0YXRlLWRhbmdlci1ib3JkZXIgIWRlZmF1bHQ7XG4kcGFuZWwtZGFuZ2VyLWhlYWRpbmctYmc6ICAgICAkc3RhdGUtZGFuZ2VyLWJnICFkZWZhdWx0O1xuXG5cbi8vPT0gVGh1bWJuYWlsc1xuLy9cbi8vIyNcblxuLy8qKiBQYWRkaW5nIGFyb3VuZCB0aGUgdGh1bWJuYWlsIGltYWdlXG4kdGh1bWJuYWlsLXBhZGRpbmc6ICAgICAgICAgICA0cHggIWRlZmF1bHQ7XG4vLyoqIFRodW1ibmFpbCBiYWNrZ3JvdW5kIGNvbG9yXG4kdGh1bWJuYWlsLWJnOiAgICAgICAgICAgICAgICAkYm9keS1iZyAhZGVmYXVsdDtcbi8vKiogVGh1bWJuYWlsIGJvcmRlciBjb2xvclxuJHRodW1ibmFpbC1ib3JkZXI6ICAgICAgICAgICAgI2RkZCAhZGVmYXVsdDtcbi8vKiogVGh1bWJuYWlsIGJvcmRlciByYWRpdXNcbiR0aHVtYm5haWwtYm9yZGVyLXJhZGl1czogICAgICRib3JkZXItcmFkaXVzLWJhc2UgIWRlZmF1bHQ7XG5cbi8vKiogQ3VzdG9tIHRleHQgY29sb3IgZm9yIHRodW1ibmFpbCBjYXB0aW9uc1xuJHRodW1ibmFpbC1jYXB0aW9uLWNvbG9yOiAgICAgJHRleHQtY29sb3IgIWRlZmF1bHQ7XG4vLyoqIFBhZGRpbmcgYXJvdW5kIHRoZSB0aHVtYm5haWwgY2FwdGlvblxuJHRodW1ibmFpbC1jYXB0aW9uLXBhZGRpbmc6ICAgOXB4ICFkZWZhdWx0O1xuXG5cbi8vPT0gV2VsbHNcbi8vXG4vLyMjXG5cbiR3ZWxsLWJnOiAgICAgICAgICAgICAgICAgICAgICNmNWY1ZjUgIWRlZmF1bHQ7XG4kd2VsbC1ib3JkZXI6ICAgICAgICAgICAgICAgICBkYXJrZW4oJHdlbGwtYmcsIDclKSAhZGVmYXVsdDtcblxuXG4vLz09IEJhZGdlc1xuLy9cbi8vIyNcblxuJGJhZGdlLWNvbG9yOiAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbi8vKiogTGlua2VkIGJhZGdlIHRleHQgY29sb3Igb24gaG92ZXJcbiRiYWRnZS1saW5rLWhvdmVyLWNvbG9yOiAgICAgICNmZmYgIWRlZmF1bHQ7XG4kYmFkZ2UtYmc6ICAgICAgICAgICAgICAgICAgICAkZ3JheS1saWdodCAhZGVmYXVsdDtcblxuLy8qKiBCYWRnZSB0ZXh0IGNvbG9yIGluIGFjdGl2ZSBuYXYgbGlua1xuJGJhZGdlLWFjdGl2ZS1jb2xvcjogICAgICAgICAgJGxpbmstY29sb3IgIWRlZmF1bHQ7XG4vLyoqIEJhZGdlIGJhY2tncm91bmQgY29sb3IgaW4gYWN0aXZlIG5hdiBsaW5rXG4kYmFkZ2UtYWN0aXZlLWJnOiAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuXG4kYmFkZ2UtZm9udC13ZWlnaHQ6ICAgICAgICAgICBib2xkICFkZWZhdWx0O1xuJGJhZGdlLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgMSAhZGVmYXVsdDtcbiRiYWRnZS1ib3JkZXItcmFkaXVzOiAgICAgICAgIDEwcHggIWRlZmF1bHQ7XG5cblxuLy89PSBCcmVhZGNydW1ic1xuLy9cbi8vIyNcblxuJGJyZWFkY3J1bWItcGFkZGluZy12ZXJ0aWNhbDogICA4cHggIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1wYWRkaW5nLWhvcml6b250YWw6IDE1cHggIWRlZmF1bHQ7XG4vLyoqIEJyZWFkY3J1bWIgYmFja2dyb3VuZCBjb2xvclxuJGJyZWFkY3J1bWItYmc6ICAgICAgICAgICAgICAgICAjZjVmNWY1ICFkZWZhdWx0O1xuLy8qKiBCcmVhZGNydW1iIHRleHQgY29sb3JcbiRicmVhZGNydW1iLWNvbG9yOiAgICAgICAgICAgICAgI2NjYyAhZGVmYXVsdDtcbi8vKiogVGV4dCBjb2xvciBvZiBjdXJyZW50IHBhZ2UgaW4gdGhlIGJyZWFkY3J1bWJcbiRicmVhZGNydW1iLWFjdGl2ZS1jb2xvcjogICAgICAgJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG4vLyoqIFRleHR1YWwgc2VwYXJhdG9yIGZvciBiZXR3ZWVuIGJyZWFkY3J1bWIgZWxlbWVudHNcbiRicmVhZGNydW1iLXNlcGFyYXRvcjogICAgICAgICAgXCIvXCIgIWRlZmF1bHQ7XG5cblxuLy89PSBDYXJvdXNlbFxuLy9cbi8vIyNcblxuJGNhcm91c2VsLXRleHQtc2hhZG93OiAgICAgICAgICAgICAgICAgICAgICAgIDAgMXB4IDJweCByZ2JhKDAsMCwwLC42KSAhZGVmYXVsdDtcblxuJGNhcm91c2VsLWNvbnRyb2wtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtY29udHJvbC13aWR0aDogICAgICAgICAgICAgICAgICAgICAgMTUlICFkZWZhdWx0O1xuJGNhcm91c2VsLWNvbnRyb2wtb3BhY2l0eTogICAgICAgICAgICAgICAgICAgIC41ICFkZWZhdWx0O1xuJGNhcm91c2VsLWNvbnRyb2wtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgIDIwcHggIWRlZmF1bHQ7XG5cbiRjYXJvdXNlbC1pbmRpY2F0b3ItYWN0aXZlLWJnOiAgICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJGNhcm91c2VsLWluZGljYXRvci1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG5cbiRjYXJvdXNlbC1jYXB0aW9uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuXG5cbi8vPT0gQ2xvc2Vcbi8vXG4vLyMjXG5cbiRjbG9zZS1mb250LXdlaWdodDogICAgICAgICAgIGJvbGQgIWRlZmF1bHQ7XG4kY2xvc2UtY29sb3I6ICAgICAgICAgICAgICAgICAjMDAwICFkZWZhdWx0O1xuJGNsb3NlLXRleHQtc2hhZG93OiAgICAgICAgICAgMCAxcHggMCAjZmZmICFkZWZhdWx0O1xuXG5cbi8vPT0gQ29kZVxuLy9cbi8vIyNcblxuJGNvZGUtY29sb3I6ICAgICAgICAgICAgICAgICAgI2M3MjU0ZSAhZGVmYXVsdDtcbiRjb2RlLWJnOiAgICAgICAgICAgICAgICAgICAgICNmOWYyZjQgIWRlZmF1bHQ7XG5cbiRrYmQtY29sb3I6ICAgICAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4ka2JkLWJnOiAgICAgICAgICAgICAgICAgICAgICAjMzMzICFkZWZhdWx0O1xuXG4kcHJlLWJnOiAgICAgICAgICAgICAgICAgICAgICAjZjVmNWY1ICFkZWZhdWx0O1xuJHByZS1jb2xvcjogICAgICAgICAgICAgICAgICAgJGdyYXktZGFyayAhZGVmYXVsdDtcbiRwcmUtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICNjY2MgIWRlZmF1bHQ7XG4kcHJlLXNjcm9sbGFibGUtbWF4LWhlaWdodDogICAzNDBweCAhZGVmYXVsdDtcblxuXG4vLz09IFR5cGVcbi8vXG4vLyMjXG5cbi8vKiogSG9yaXpvbnRhbCBvZmZzZXQgZm9yIGZvcm1zIGFuZCBsaXN0cy5cbiRjb21wb25lbnQtb2Zmc2V0LWhvcml6b250YWw6IDE4MHB4ICFkZWZhdWx0O1xuLy8qKiBUZXh0IG11dGVkIGNvbG9yXG4kdGV4dC1tdXRlZDogICAgICAgICAgICAgICAgICAkZ3JheS1saWdodCAhZGVmYXVsdDtcbi8vKiogQWJicmV2aWF0aW9ucyBhbmQgYWNyb255bXMgYm9yZGVyIGNvbG9yXG4kYWJici1ib3JkZXItY29sb3I6ICAgICAgICAgICAkZ3JheS1saWdodCAhZGVmYXVsdDtcbi8vKiogSGVhZGluZ3Mgc21hbGwgY29sb3JcbiRoZWFkaW5ncy1zbWFsbC1jb2xvcjogICAgICAgICRncmF5LWxpZ2h0ICFkZWZhdWx0O1xuLy8qKiBCbG9ja3F1b3RlIHNtYWxsIGNvbG9yXG4kYmxvY2txdW90ZS1zbWFsbC1jb2xvcjogICAgICAkZ3JheS1saWdodCAhZGVmYXVsdDtcbi8vKiogQmxvY2txdW90ZSBmb250IHNpemVcbiRibG9ja3F1b3RlLWZvbnQtc2l6ZTogICAgICAgICgkZm9udC1zaXplLWJhc2UgKiAxLjI1KSAhZGVmYXVsdDtcbi8vKiogQmxvY2txdW90ZSBib3JkZXIgY29sb3JcbiRibG9ja3F1b3RlLWJvcmRlci1jb2xvcjogICAgICRncmF5LWxpZ2h0ZXIgIWRlZmF1bHQ7XG4vLyoqIFBhZ2UgaGVhZGVyIGJvcmRlciBjb2xvclxuJHBhZ2UtaGVhZGVyLWJvcmRlci1jb2xvcjogICAgJGdyYXktbGlnaHRlciAhZGVmYXVsdDtcbi8vKiogV2lkdGggb2YgaG9yaXpvbnRhbCBkZXNjcmlwdGlvbiBsaXN0IHRpdGxlc1xuJGRsLWhvcml6b250YWwtb2Zmc2V0OiAgICAgICAgJGNvbXBvbmVudC1vZmZzZXQtaG9yaXpvbnRhbCAhZGVmYXVsdDtcbi8vKiogSG9yaXpvbnRhbCBsaW5lIGNvbG9yLlxuJGhyLWJvcmRlcjogICAgICAgICAgICAgICAgICAgJGdyYXktbGlnaHRlciAhZGVmYXVsdDtcblxuLy8qIFxuLy8gVGhlIE1JVCBMaWNlbnNlIChNSVQpXG5cbi8vIENvcHlyaWdodCAoYykgMjAxMy0yMDE1IGJvb3RzdHJhcC1zZWxlY3RcblxuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbi8vIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG5cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbi8vIFNPRlRXQVJFLiAqL1xuXG4kY29sb3ItcmVkLWVycm9yOiByZ2IoMTg1LCA3NCwgNzIpO1xuJGNvbG9yLWJsdWUtaG92ZXI6IHJnYigxMDAsIDE3NywgMjE2KTtcbiRjb2xvci1ncmV5LWFycm93OiByZ2IoMjA0LCAyMDQsIDIwNCk7XG5cbiR3aWR0aC1kZWZhdWx0OiAyMjBweDtcblxuJHppbmRleC1zZWxlY3QtZHJvcGRvd246IDEwMzUgIWRlZmF1bHQ7ICIsIi8vIFdlYktpdC1zdHlsZSBmb2N1c1xuXG5AbWl4aW4gdGFiLWZvY3VzKCkge1xuICAvLyBEZWZhdWx0XG4gIG91dGxpbmU6IHRoaW4gZG90dGVkO1xuICAvLyBXZWJLaXRcbiAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cbiIsIi8vIEltYWdlIE1peGluc1xuLy8gLSBSZXNwb25zaXZlIGltYWdlXG4vLyAtIFJldGluYSBpbWFnZVxuXG5cbi8vIFJlc3BvbnNpdmUgaW1hZ2Vcbi8vXG4vLyBLZWVwIGltYWdlcyBmcm9tIHNjYWxpbmcgYmV5b25kIHRoZSB3aWR0aCBvZiB0aGVpciBwYXJlbnRzLlxuQG1peGluIGltZy1yZXNwb25zaXZlKCRkaXNwbGF5OiBibG9jaykge1xuICBkaXNwbGF5OiAkZGlzcGxheTtcbiAgbWF4LXdpZHRoOiAxMDAlOyAvLyBQYXJ0IDE6IFNldCBhIG1heGltdW0gcmVsYXRpdmUgdG8gdGhlIHBhcmVudFxuICBoZWlnaHQ6IGF1dG87IC8vIFBhcnQgMjogU2NhbGUgdGhlIGhlaWdodCBhY2NvcmRpbmcgdG8gdGhlIHdpZHRoLCBvdGhlcndpc2UgeW91IGdldCBzdHJldGNoaW5nXG59XG5cblxuLy8gUmV0aW5hIGltYWdlXG4vL1xuLy8gU2hvcnQgcmV0aW5hIG1peGluIGZvciBzZXR0aW5nIGJhY2tncm91bmQtaW1hZ2UgYW5kIC1zaXplLiBOb3RlIHRoYXQgdGhlXG4vLyBzcGVsbGluZyBvZiBgbWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvYCBpcyBpbnRlbnRpb25hbC5cbkBtaXhpbiBpbWctcmV0aW5hKCRmaWxlLTF4LCAkZmlsZS0yeCwgJHdpZHRoLTF4LCAkaGVpZ2h0LTF4KSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChpZigkYm9vdHN0cmFwLXNhc3MtYXNzZXQtaGVscGVyLCB0d2JzLWltYWdlLXBhdGgoXCIjeyRmaWxlLTF4fVwiKSwgXCIjeyRmaWxlLTF4fVwiKSk7XG5cbiAgQG1lZGlhXG4gIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSxcbiAgb25seSBzY3JlZW4gYW5kICggICBtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLFxuICBvbmx5IHNjcmVlbiBhbmQgKCAgICAgLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogMi8xKSxcbiAgb25seSBzY3JlZW4gYW5kICggICAgICAgIG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLFxuICBvbmx5IHNjcmVlbiBhbmQgKCAgICAgICAgICAgICAgICBtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSxcbiAgb25seSBzY3JlZW4gYW5kICggICAgICAgICAgICAgICAgbWluLXJlc29sdXRpb246IDJkcHB4KSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGlmKCRib290c3RyYXAtc2Fzcy1hc3NldC1oZWxwZXIsIHR3YnMtaW1hZ2UtcGF0aChcIiN7JGZpbGUtMnh9XCIpLCBcIiN7JGZpbGUtMnh9XCIpKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICR3aWR0aC0xeCAkaGVpZ2h0LTF4O1xuICB9XG59XG4iLCIvL1xuLy8gVHlwb2dyYXBoeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBIZWFkaW5nc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2LFxuLmgxLCAuaDIsIC5oMywgLmg0LCAuaDUsIC5oNiB7XG4gIGZvbnQtZmFtaWx5OiAkaGVhZGluZ3MtZm9udC1mYW1pbHk7XG4gIGZvbnQtd2VpZ2h0OiAkaGVhZGluZ3MtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkaGVhZGluZ3MtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkaGVhZGluZ3MtY29sb3I7XG5cbiAgc21hbGwsXG4gIC5zbWFsbCB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJGhlYWRpbmdzLXNtYWxsLWNvbG9yO1xuICB9XG59XG5cbmgxLCAuaDEsXG5oMiwgLmgyLFxuaDMsIC5oMyB7XG4gIG1hcmdpbi10b3A6ICRsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgbWFyZ2luLWJvdHRvbTogKCRsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIpO1xuXG4gIHNtYWxsLFxuICAuc21hbGwge1xuICAgIGZvbnQtc2l6ZTogNjUlO1xuICB9XG59XG5oNCwgLmg0LFxuaDUsIC5oNSxcbmg2LCAuaDYge1xuICBtYXJnaW4tdG9wOiAoJGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMik7XG4gIG1hcmdpbi1ib3R0b206ICgkbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKTtcblxuICBzbWFsbCxcbiAgLnNtYWxsIHtcbiAgICBmb250LXNpemU6IDc1JTtcbiAgfVxufVxuXG5oMSwgLmgxIHsgZm9udC1zaXplOiAkZm9udC1zaXplLWgxOyB9XG5oMiwgLmgyIHsgZm9udC1zaXplOiAkZm9udC1zaXplLWgyOyB9XG5oMywgLmgzIHsgZm9udC1zaXplOiAkZm9udC1zaXplLWgzOyB9XG5oNCwgLmg0IHsgZm9udC1zaXplOiAkZm9udC1zaXplLWg0OyB9XG5oNSwgLmg1IHsgZm9udC1zaXplOiAkZm9udC1zaXplLWg1OyB9XG5oNiwgLmg2IHsgZm9udC1zaXplOiAkZm9udC1zaXplLWg2OyB9XG5cblxuLy8gQm9keSB0ZXh0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbnAge1xuICBtYXJnaW46IDAgMCAoJGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMik7XG59XG5cbi5sZWFkIHtcbiAgbWFyZ2luLWJvdHRvbTogJGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBmb250LXNpemU6IGZsb29yKCgkZm9udC1zaXplLWJhc2UgKiAxLjE1KSk7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tc20tbWluKSB7XG4gICAgZm9udC1zaXplOiAoJGZvbnQtc2l6ZS1iYXNlICogMS41KTtcbiAgfVxufVxuXG5cbi8vIEVtcGhhc2lzICYgbWlzY1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBFeDogKDEycHggc21hbGwgZm9udCAvIDE0cHggYmFzZSBmb250KSAqIDEwMCUgPSBhYm91dCA4NSVcbnNtYWxsLFxuLnNtYWxsIHtcbiAgZm9udC1zaXplOiBmbG9vcigoMTAwJSAqICRmb250LXNpemUtc21hbGwgLyAkZm9udC1zaXplLWJhc2UpKTtcbn1cblxubWFyayxcbi5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHN0YXRlLXdhcm5pbmctYmc7XG4gIHBhZGRpbmc6IC4yZW07XG59XG5cbi8vIEFsaWdubWVudFxuLnRleHQtbGVmdCAgICAgICAgICAgeyB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4udGV4dC1yaWdodCAgICAgICAgICB7IHRleHQtYWxpZ246IHJpZ2h0OyB9XG4udGV4dC1jZW50ZXIgICAgICAgICB7IHRleHQtYWxpZ246IGNlbnRlcjsgfVxuLnRleHQtanVzdGlmeSAgICAgICAgeyB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9XG4udGV4dC1ub3dyYXAgICAgICAgICB7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLy8gVHJhbnNmb3JtYXRpb25cbi50ZXh0LWxvd2VyY2FzZSAgICAgIHsgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTsgfVxuLnRleHQtdXBwZXJjYXNlICAgICAgeyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4udGV4dC1jYXBpdGFsaXplICAgICB7IHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOyB9XG5cbi8vIENvbnRleHR1YWwgY29sb3JzXG4udGV4dC1tdXRlZCB7XG4gIGNvbG9yOiAkdGV4dC1tdXRlZDtcbn1cblxuQGluY2x1ZGUgdGV4dC1lbXBoYXNpcy12YXJpYW50KCcudGV4dC1wcmltYXJ5JywgJGJyYW5kLXByaW1hcnkpO1xuXG5AaW5jbHVkZSB0ZXh0LWVtcGhhc2lzLXZhcmlhbnQoJy50ZXh0LXN1Y2Nlc3MnLCAkc3RhdGUtc3VjY2Vzcy10ZXh0KTtcblxuQGluY2x1ZGUgdGV4dC1lbXBoYXNpcy12YXJpYW50KCcudGV4dC1pbmZvJywgJHN0YXRlLWluZm8tdGV4dCk7XG5cbkBpbmNsdWRlIHRleHQtZW1waGFzaXMtdmFyaWFudCgnLnRleHQtd2FybmluZycsICRzdGF0ZS13YXJuaW5nLXRleHQpO1xuXG5AaW5jbHVkZSB0ZXh0LWVtcGhhc2lzLXZhcmlhbnQoJy50ZXh0LWRhbmdlcicsICRzdGF0ZS1kYW5nZXItdGV4dCk7XG5cbi8vIENvbnRleHR1YWwgYmFja2dyb3VuZHNcbi8vIEZvciBub3cgd2UnbGwgbGVhdmUgdGhlc2UgYWxvbmdzaWRlIHRoZSB0ZXh0IGNsYXNzZXMgdW50aWwgdjQgd2hlbiB3ZSBjYW5cbi8vIHNhZmVseSBzaGlmdCB0aGluZ3MgYXJvdW5kIChwZXIgU2VtVmVyIHJ1bGVzKS5cbi5iZy1wcmltYXJ5IHtcbiAgLy8gR2l2ZW4gdGhlIGNvbnRyYXN0IGhlcmUsIHRoaXMgaXMgdGhlIG9ubHkgY2xhc3MgdG8gaGF2ZSBpdHMgY29sb3IgaW52ZXJ0ZWRcbiAgLy8gYXV0b21hdGljYWxseS5cbiAgY29sb3I6ICNmZmY7XG59XG5AaW5jbHVkZSBiZy12YXJpYW50KCcuYmctcHJpbWFyeScsICRicmFuZC1wcmltYXJ5KTtcblxuQGluY2x1ZGUgYmctdmFyaWFudCgnLmJnLXN1Y2Nlc3MnLCAkc3RhdGUtc3VjY2Vzcy1iZyk7XG5cbkBpbmNsdWRlIGJnLXZhcmlhbnQoJy5iZy1pbmZvJywgJHN0YXRlLWluZm8tYmcpO1xuXG5AaW5jbHVkZSBiZy12YXJpYW50KCcuYmctd2FybmluZycsICRzdGF0ZS13YXJuaW5nLWJnKTtcblxuQGluY2x1ZGUgYmctdmFyaWFudCgnLmJnLWRhbmdlcicsICRzdGF0ZS1kYW5nZXItYmcpO1xuXG5cbi8vIFBhZ2UgaGVhZGVyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5wYWdlLWhlYWRlciB7XG4gIHBhZGRpbmctYm90dG9tOiAoKCRsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIpIC0gMSk7XG4gIG1hcmdpbjogKCRsaW5lLWhlaWdodC1jb21wdXRlZCAqIDIpIDAgJGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHBhZ2UtaGVhZGVyLWJvcmRlci1jb2xvcjtcbn1cblxuXG4vLyBMaXN0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBVbm9yZGVyZWQgYW5kIE9yZGVyZWQgbGlzdHNcbnVsLFxub2wge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAoJGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMik7XG4gIHVsLFxuICBvbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLyBMaXN0IG9wdGlvbnNcblxuLy8gW2NvbnZlcnRlcl0gZXh0cmFjdGVkIGZyb20gYC5saXN0LXVuc3R5bGVkYCBmb3IgbGlic2FzcyBjb21wYXRpYmlsaXR5XG5AbWl4aW4gbGlzdC11bnN0eWxlZCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbi8vIFtjb252ZXJ0ZXJdIGV4dHJhY3RlZCBhcyBgQG1peGluIGxpc3QtdW5zdHlsZWRgIGZvciBsaWJzYXNzIGNvbXBhdGliaWxpdHlcbi5saXN0LXVuc3R5bGVkIHtcbiAgQGluY2x1ZGUgbGlzdC11bnN0eWxlZDtcbn1cblxuXG4vLyBJbmxpbmUgdHVybnMgbGlzdCBpdGVtcyBpbnRvIGlubGluZS1ibG9ja1xuLmxpc3QtaW5saW5lIHtcbiAgQGluY2x1ZGUgbGlzdC11bnN0eWxlZDtcbiAgbWFyZ2luLWxlZnQ6IC01cHg7XG5cbiAgPiBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgfVxufVxuXG4vLyBEZXNjcmlwdGlvbiBMaXN0c1xuZGwge1xuICBtYXJnaW4tdG9wOiAwOyAvLyBSZW1vdmUgYnJvd3NlciBkZWZhdWx0XG4gIG1hcmdpbi1ib3R0b206ICRsaW5lLWhlaWdodC1jb21wdXRlZDtcbn1cbmR0LFxuZGQge1xuICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XG59XG5kdCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuZGQge1xuICBtYXJnaW4tbGVmdDogMDsgLy8gVW5kbyBicm93c2VyIGRlZmF1bHRcbn1cblxuLy8gSG9yaXpvbnRhbCBkZXNjcmlwdGlvbiBsaXN0c1xuLy9cbi8vIERlZmF1bHRzIHRvIGJlaW5nIHN0YWNrZWQgd2l0aG91dCBhbnkgb2YgdGhlIGJlbG93IHN0eWxlcyBhcHBsaWVkLCB1bnRpbCB0aGVcbi8vIGdyaWQgYnJlYWtwb2ludCBpcyByZWFjaGVkIChkZWZhdWx0IG9mIH43NjhweCkuXG5cbi5kbC1ob3Jpem9udGFsIHtcbiAgZGQge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4OyAvLyBDbGVhciB0aGUgZmxvYXRlZCBgZHRgIGlmIGFuIGVtcHR5IGBkZGAgaXMgcHJlc2VudFxuICB9XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6ICRncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICBkdCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHdpZHRoOiAoJGRsLWhvcml6b250YWwtb2Zmc2V0IC0gMjApO1xuICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIEBpbmNsdWRlIHRleHQtb3ZlcmZsb3c7XG4gICAgfVxuICAgIGRkIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAkZGwtaG9yaXpvbnRhbC1vZmZzZXQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8gTWlzY1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBBYmJyZXZpYXRpb25zIGFuZCBhY3Jvbnltc1xuYWJiclt0aXRsZV0sXG4vLyBBZGQgZGF0YS0qIGF0dHJpYnV0ZSB0byBoZWxwIG91dCBvdXIgdG9vbHRpcCBwbHVnaW4sIHBlciBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzUyNTdcbmFiYnJbZGF0YS1vcmlnaW5hbC10aXRsZV0ge1xuICBjdXJzb3I6IGhlbHA7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgJGFiYnItYm9yZGVyLWNvbG9yO1xufVxuLmluaXRpYWxpc20ge1xuICBmb250LXNpemU6IDkwJTtcbiAgQGV4dGVuZCAudGV4dC11cHBlcmNhc2U7XG59XG5cbi8vIEJsb2NrcXVvdGVzXG5ibG9ja3F1b3RlIHtcbiAgcGFkZGluZzogKCRsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIpICRsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgbWFyZ2luOiAwIDAgJGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBmb250LXNpemU6ICRibG9ja3F1b3RlLWZvbnQtc2l6ZTtcbiAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAkYmxvY2txdW90ZS1ib3JkZXItY29sb3I7XG5cbiAgcCxcbiAgdWwsXG4gIG9sIHtcbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAvLyBOb3RlOiBEZXByZWNhdGVkIHNtYWxsIGFuZCAuc21hbGwgYXMgb2YgdjMuMS4wXG4gIC8vIENvbnRleHQ6IGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTE2NjBcbiAgZm9vdGVyLFxuICBzbWFsbCxcbiAgLnNtYWxsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDgwJTsgLy8gYmFjayB0byBkZWZhdWx0IGZvbnQtc2l6ZVxuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYmFzZTtcbiAgICBjb2xvcjogJGJsb2NrcXVvdGUtc21hbGwtY29sb3I7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFwyMDE0IFxcMDBBMCc7IC8vIGVtIGRhc2gsIG5ic3BcbiAgICB9XG4gIH1cbn1cblxuLy8gT3Bwb3NpdGUgYWxpZ25tZW50IG9mIGJsb2NrcXVvdGVcbi8vXG4vLyBIZWFkcyB1cDogYGJsb2NrcXVvdGUucHVsbC1yaWdodGAgaGFzIGJlZW4gZGVwcmVjYXRlZCBhcyBvZiB2My4xLjAuXG4uYmxvY2txdW90ZS1yZXZlcnNlLFxuYmxvY2txdW90ZS5wdWxsLXJpZ2h0IHtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBib3JkZXItcmlnaHQ6IDVweCBzb2xpZCAkYmxvY2txdW90ZS1ib3JkZXItY29sb3I7XG4gIGJvcmRlci1sZWZ0OiAwO1xuICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAvLyBBY2NvdW50IGZvciBjaXRhdGlvblxuICBmb290ZXIsXG4gIHNtYWxsLFxuICAuc21hbGwge1xuICAgICY6YmVmb3JlIHsgY29udGVudDogJyc7IH1cbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDAwQTAgXFwyMDE0JzsgLy8gbmJzcCwgZW0gZGFzaFxuICAgIH1cbiAgfVxufVxuXG4vLyBBZGRyZXNzZXNcbmFkZHJlc3Mge1xuICBtYXJnaW4tYm90dG9tOiAkbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlO1xufVxuIiwiLy8gVHlwb2dyYXBoeVxuXG4vLyBbY29udmVydGVyXSAkcGFyZW50IGhhY2tcbkBtaXhpbiB0ZXh0LWVtcGhhc2lzLXZhcmlhbnQoJHBhcmVudCwgJGNvbG9yKSB7XG4gICN7JHBhcmVudH0ge1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbiAgYSN7JHBhcmVudH06aG92ZXIsXG4gIGEjeyRwYXJlbnR9OmZvY3VzIHtcbiAgICBjb2xvcjogZGFya2VuKCRjb2xvciwgMTAlKTtcbiAgfVxufVxuIiwiLy8gQ29udGV4dHVhbCBiYWNrZ3JvdW5kc1xuXG4vLyBbY29udmVydGVyXSAkcGFyZW50IGhhY2tcbkBtaXhpbiBiZy12YXJpYW50KCRwYXJlbnQsICRjb2xvcikge1xuICAjeyRwYXJlbnR9IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gIH1cbiAgYSN7JHBhcmVudH06aG92ZXIsXG4gIGEjeyRwYXJlbnR9OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGNvbG9yLCAxMCUpO1xuICB9XG59XG4iLCIvLyBDbGVhcmZpeFxuLy9cbi8vIEZvciBtb2Rlcm4gYnJvd3NlcnNcbi8vIDEuIFRoZSBzcGFjZSBjb250ZW50IGlzIG9uZSB3YXkgdG8gYXZvaWQgYW4gT3BlcmEgYnVnIHdoZW4gdGhlXG4vLyAgICBjb250ZW50ZWRpdGFibGUgYXR0cmlidXRlIGlzIGluY2x1ZGVkIGFueXdoZXJlIGVsc2UgaW4gdGhlIGRvY3VtZW50LlxuLy8gICAgT3RoZXJ3aXNlIGl0IGNhdXNlcyBzcGFjZSB0byBhcHBlYXIgYXQgdGhlIHRvcCBhbmQgYm90dG9tIG9mIGVsZW1lbnRzXG4vLyAgICB0aGF0IGFyZSBjbGVhcmZpeGVkLlxuLy8gMi4gVGhlIHVzZSBvZiBgdGFibGVgIHJhdGhlciB0aGFuIGBibG9ja2AgaXMgb25seSBuZWNlc3NhcnkgaWYgdXNpbmdcbi8vICAgIGA6YmVmb3JlYCB0byBjb250YWluIHRoZSB0b3AtbWFyZ2lucyBvZiBjaGlsZCBlbGVtZW50cy5cbi8vXG4vLyBTb3VyY2U6IGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrL1xuXG5AbWl4aW4gY2xlYXJmaXgoKSB7XG4gICY6YmVmb3JlLFxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiBcIjsgLy8gMVxuICAgIGRpc3BsYXk6IHRhYmxlOyAvLyAyXG4gIH1cbiAgJjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cbiIsIi8vIFRleHQgb3ZlcmZsb3dcbi8vIFJlcXVpcmVzIGlubGluZS1ibG9jayBvciBibG9jayBmb3IgcHJvcGVyIHN0eWxpbmdcblxuQG1peGluIHRleHQtb3ZlcmZsb3coKSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuIiwiLy9cbi8vIENvZGUgKGlubGluZSBhbmQgYmxvY2spXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIElubGluZSBhbmQgYmxvY2sgY29kZSBzdHlsZXNcbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XG59XG5cbi8vIElubGluZSBjb2RlXG5jb2RlIHtcbiAgcGFkZGluZzogMnB4IDRweDtcbiAgZm9udC1zaXplOiA5MCU7XG4gIGNvbG9yOiAkY29kZS1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvZGUtYmc7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWJhc2U7XG59XG5cbi8vIFVzZXIgaW5wdXQgdHlwaWNhbGx5IGVudGVyZWQgdmlhIGtleWJvYXJkXG5rYmQge1xuICBwYWRkaW5nOiAycHggNHB4O1xuICBmb250LXNpemU6IDkwJTtcbiAgY29sb3I6ICRrYmQtY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6ICRrYmQtYmc7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLXNtYWxsO1xuICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCByZ2JhKDAsMCwwLC4yNSk7XG5cbiAga2JkIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG59XG5cbi8vIEJsb2NrcyBvZiBjb2RlXG5wcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogKCgkbGluZS1oZWlnaHQtY29tcHV0ZWQgLSAxKSAvIDIpO1xuICBtYXJnaW46IDAgMCAoJGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMik7XG4gIGZvbnQtc2l6ZTogKCRmb250LXNpemUtYmFzZSAtIDEpOyAvLyAxNHB4IHRvIDEzcHhcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlO1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgY29sb3I6ICRwcmUtY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcmUtYmc7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRwcmUtYm9yZGVyLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1iYXNlO1xuXG4gIC8vIEFjY291bnQgZm9yIHNvbWUgY29kZSBvdXRwdXRzIHRoYXQgcGxhY2UgY29kZSB0YWdzIGluIHByZSB0YWdzXG4gIGNvZGUge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG5cbi8vIEVuYWJsZSBzY3JvbGxhYmxlIGJsb2NrcyBvZiBjb2RlXG4ucHJlLXNjcm9sbGFibGUge1xuICBtYXgtaGVpZ2h0OiAkcHJlLXNjcm9sbGFibGUtbWF4LWhlaWdodDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuIiwiLy9cbi8vIEdyaWQgc3lzdGVtXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIENvbnRhaW5lciB3aWR0aHNcbi8vXG4vLyBTZXQgdGhlIGNvbnRhaW5lciB3aWR0aCwgYW5kIG92ZXJyaWRlIGl0IGZvciBmaXhlZCBuYXZiYXJzIGluIG1lZGlhIHF1ZXJpZXMuXG5cbi5jb250YWluZXIge1xuICBAaW5jbHVkZSBjb250YWluZXItZml4ZWQ7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tc20tbWluKSB7XG4gICAgd2lkdGg6ICRjb250YWluZXItc207XG4gIH1cbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbWQtbWluKSB7XG4gICAgd2lkdGg6ICRjb250YWluZXItbWQ7XG4gIH1cbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbGctbWluKSB7XG4gICAgd2lkdGg6ICRjb250YWluZXItbGc7XG4gIH1cbn1cblxuXG4vLyBGbHVpZCBjb250YWluZXJcbi8vXG4vLyBVdGlsaXplcyB0aGUgbWl4aW4gbWVhbnQgZm9yIGZpeGVkIHdpZHRoIGNvbnRhaW5lcnMsIGJ1dCB3aXRob3V0IGFueSBkZWZpbmVkXG4vLyB3aWR0aCBmb3IgZmx1aWQsIGZ1bGwgd2lkdGggbGF5b3V0cy5cblxuLmNvbnRhaW5lci1mbHVpZCB7XG4gIEBpbmNsdWRlIGNvbnRhaW5lci1maXhlZDtcbn1cblxuXG4vLyBSb3dcbi8vXG4vLyBSb3dzIGNvbnRhaW4gYW5kIGNsZWFyIHRoZSBmbG9hdHMgb2YgeW91ciBjb2x1bW5zLlxuXG4ucm93IHtcbiAgQGluY2x1ZGUgbWFrZS1yb3c7XG59XG5cblxuLy8gQ29sdW1uc1xuLy9cbi8vIENvbW1vbiBzdHlsZXMgZm9yIHNtYWxsIGFuZCBsYXJnZSBncmlkIGNvbHVtbnNcblxuQGluY2x1ZGUgbWFrZS1ncmlkLWNvbHVtbnM7XG5cblxuLy8gRXh0cmEgc21hbGwgZ3JpZFxuLy9cbi8vIENvbHVtbnMsIG9mZnNldHMsIHB1c2hlcywgYW5kIHB1bGxzIGZvciBleHRyYSBzbWFsbCBkZXZpY2VzIGxpa2Vcbi8vIHNtYXJ0cGhvbmVzLlxuXG5AaW5jbHVkZSBtYWtlLWdyaWQoeHMpO1xuXG5cbi8vIFNtYWxsIGdyaWRcbi8vXG4vLyBDb2x1bW5zLCBvZmZzZXRzLCBwdXNoZXMsIGFuZCBwdWxscyBmb3IgdGhlIHNtYWxsIGRldmljZSByYW5nZSwgZnJvbSBwaG9uZXNcbi8vIHRvIHRhYmxldHMuXG5cbkBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikge1xuICBAaW5jbHVkZSBtYWtlLWdyaWQoc20pO1xufVxuXG5cbi8vIE1lZGl1bSBncmlkXG4vL1xuLy8gQ29sdW1ucywgb2Zmc2V0cywgcHVzaGVzLCBhbmQgcHVsbHMgZm9yIHRoZSBkZXNrdG9wIGRldmljZSByYW5nZS5cblxuQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbWQtbWluKSB7XG4gIEBpbmNsdWRlIG1ha2UtZ3JpZChtZCk7XG59XG5cblxuLy8gTGFyZ2UgZ3JpZFxuLy9cbi8vIENvbHVtbnMsIG9mZnNldHMsIHB1c2hlcywgYW5kIHB1bGxzIGZvciB0aGUgbGFyZ2UgZGVza3RvcCBkZXZpY2UgcmFuZ2UuXG5cbkBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLWxnLW1pbikge1xuICBAaW5jbHVkZSBtYWtlLWdyaWQobGcpO1xufVxuIiwiLy8gR3JpZCBzeXN0ZW1cbi8vXG4vLyBHZW5lcmF0ZSBzZW1hbnRpYyBncmlkIGNvbHVtbnMgd2l0aCB0aGVzZSBtaXhpbnMuXG5cbi8vIENlbnRlcmVkIGNvbnRhaW5lciBlbGVtZW50XG5AbWl4aW4gY29udGFpbmVyLWZpeGVkKCRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aCkge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6ICAoJGd1dHRlciAvIDIpO1xuICBwYWRkaW5nLXJpZ2h0OiAoJGd1dHRlciAvIDIpO1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbn1cblxuLy8gQ3JlYXRlcyBhIHdyYXBwZXIgZm9yIGEgc2VyaWVzIG9mIGNvbHVtbnNcbkBtaXhpbiBtYWtlLXJvdygkZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgbWFyZ2luLWxlZnQ6ICBjZWlsKCgkZ3V0dGVyIC8gLTIpKTtcbiAgbWFyZ2luLXJpZ2h0OiBmbG9vcigoJGd1dHRlciAvIC0yKSk7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xufVxuXG4vLyBHZW5lcmF0ZSB0aGUgZXh0cmEgc21hbGwgY29sdW1uc1xuQG1peGluIG1ha2UteHMtY29sdW1uKCRjb2x1bW5zLCAkZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IHBlcmNlbnRhZ2UoKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1ucykpO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmctbGVmdDogICgkZ3V0dGVyIC8gMik7XG4gIHBhZGRpbmctcmlnaHQ6ICgkZ3V0dGVyIC8gMik7XG59XG5AbWl4aW4gbWFrZS14cy1jb2x1bW4tb2Zmc2V0KCRjb2x1bW5zKSB7XG4gIG1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKCgkY29sdW1ucyAvICRncmlkLWNvbHVtbnMpKTtcbn1cbkBtaXhpbiBtYWtlLXhzLWNvbHVtbi1wdXNoKCRjb2x1bW5zKSB7XG4gIGxlZnQ6IHBlcmNlbnRhZ2UoKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1ucykpO1xufVxuQG1peGluIG1ha2UteHMtY29sdW1uLXB1bGwoJGNvbHVtbnMpIHtcbiAgcmlnaHQ6IHBlcmNlbnRhZ2UoKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1ucykpO1xufVxuXG4vLyBHZW5lcmF0ZSB0aGUgc21hbGwgY29sdW1uc1xuQG1peGluIG1ha2Utc20tY29sdW1uKCRjb2x1bW5zLCAkZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmctbGVmdDogICgkZ3V0dGVyIC8gMik7XG4gIHBhZGRpbmctcmlnaHQ6ICgkZ3V0dGVyIC8gMik7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tc20tbWluKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1ucykpO1xuICB9XG59XG5AbWl4aW4gbWFrZS1zbS1jb2x1bW4tb2Zmc2V0KCRjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikge1xuICAgIG1hcmdpbi1sZWZ0OiBwZXJjZW50YWdlKCgkY29sdW1ucyAvICRncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuQG1peGluIG1ha2Utc20tY29sdW1uLXB1c2goJGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tc20tbWluKSB7XG4gICAgbGVmdDogcGVyY2VudGFnZSgoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbkBtaXhpbiBtYWtlLXNtLWNvbHVtbi1wdWxsKCRjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikge1xuICAgIHJpZ2h0OiBwZXJjZW50YWdlKCgkY29sdW1ucyAvICRncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuXG4vLyBHZW5lcmF0ZSB0aGUgbWVkaXVtIGNvbHVtbnNcbkBtaXhpbiBtYWtlLW1kLWNvbHVtbigkY29sdW1ucywgJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6ICAoJGd1dHRlciAvIDIpO1xuICBwYWRkaW5nLXJpZ2h0OiAoJGd1dHRlciAvIDIpO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLW1kLW1pbikge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKCgkY29sdW1ucyAvICRncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuQG1peGluIG1ha2UtbWQtY29sdW1uLW9mZnNldCgkY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1tZC1taW4pIHtcbiAgICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbkBtaXhpbiBtYWtlLW1kLWNvbHVtbi1wdXNoKCRjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLW1kLW1pbikge1xuICAgIGxlZnQ6IHBlcmNlbnRhZ2UoKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1ucykpO1xuICB9XG59XG5AbWl4aW4gbWFrZS1tZC1jb2x1bW4tcHVsbCgkY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1tZC1taW4pIHtcbiAgICByaWdodDogcGVyY2VudGFnZSgoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cblxuLy8gR2VuZXJhdGUgdGhlIGxhcmdlIGNvbHVtbnNcbkBtaXhpbiBtYWtlLWxnLWNvbHVtbigkY29sdW1ucywgJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6ICAoJGd1dHRlciAvIDIpO1xuICBwYWRkaW5nLXJpZ2h0OiAoJGd1dHRlciAvIDIpO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLWxnLW1pbikge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKCgkY29sdW1ucyAvICRncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuQG1peGluIG1ha2UtbGctY29sdW1uLW9mZnNldCgkY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1sZy1taW4pIHtcbiAgICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbkBtaXhpbiBtYWtlLWxnLWNvbHVtbi1wdXNoKCRjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLWxnLW1pbikge1xuICAgIGxlZnQ6IHBlcmNlbnRhZ2UoKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1ucykpO1xuICB9XG59XG5AbWl4aW4gbWFrZS1sZy1jb2x1bW4tcHVsbCgkY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1sZy1taW4pIHtcbiAgICByaWdodDogcGVyY2VudGFnZSgoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbiIsIi8vIEZyYW1ld29yayBncmlkIGdlbmVyYXRpb25cbi8vXG4vLyBVc2VkIG9ubHkgYnkgQm9vdHN0cmFwIHRvIGdlbmVyYXRlIHRoZSBjb3JyZWN0IG51bWJlciBvZiBncmlkIGNsYXNzZXMgZ2l2ZW5cbi8vIGFueSB2YWx1ZSBvZiBgJGdyaWQtY29sdW1uc2AuXG5cbi8vIFtjb252ZXJ0ZXJdIFRoaXMgaXMgZGVmaW5lZCByZWN1cnNpdmVseSBpbiBMRVNTLCBidXQgU2FzcyBzdXBwb3J0cyByZWFsIGxvb3BzXG5AbWl4aW4gbWFrZS1ncmlkLWNvbHVtbnMoJGk6IDEsICRsaXN0OiBcIi5jb2wteHMtI3skaX0sIC5jb2wtc20tI3skaX0sIC5jb2wtbWQtI3skaX0sIC5jb2wtbGctI3skaX1cIikge1xuICBAZm9yICRpIGZyb20gKDEgKyAxKSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICRsaXN0OiBcIiN7JGxpc3R9LCAuY29sLXhzLSN7JGl9LCAuY29sLXNtLSN7JGl9LCAuY29sLW1kLSN7JGl9LCAuY29sLWxnLSN7JGl9XCI7XG4gIH1cbiAgI3skbGlzdH0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAvLyBQcmV2ZW50IGNvbHVtbnMgZnJvbSBjb2xsYXBzaW5nIHdoZW4gZW1wdHlcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gICAgLy8gSW5uZXIgZ3V0dGVyIHZpYSBwYWRkaW5nXG4gICAgcGFkZGluZy1sZWZ0OiAgY2VpbCgoJGdyaWQtZ3V0dGVyLXdpZHRoIC8gMikpO1xuICAgIHBhZGRpbmctcmlnaHQ6IGZsb29yKCgkZ3JpZC1ndXR0ZXItd2lkdGggLyAyKSk7XG4gIH1cbn1cblxuXG4vLyBbY29udmVydGVyXSBUaGlzIGlzIGRlZmluZWQgcmVjdXJzaXZlbHkgaW4gTEVTUywgYnV0IFNhc3Mgc3VwcG9ydHMgcmVhbCBsb29wc1xuQG1peGluIGZsb2F0LWdyaWQtY29sdW1ucygkY2xhc3MsICRpOiAxLCAkbGlzdDogXCIuY29sLSN7JGNsYXNzfS0jeyRpfVwiKSB7XG4gIEBmb3IgJGkgZnJvbSAoMSArIDEpIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgJGxpc3Q6IFwiI3skbGlzdH0sIC5jb2wtI3skY2xhc3N9LSN7JGl9XCI7XG4gIH1cbiAgI3skbGlzdH0ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG59XG5cblxuQG1peGluIGNhbGMtZ3JpZC1jb2x1bW4oJGluZGV4LCAkY2xhc3MsICR0eXBlKSB7XG4gIEBpZiAoJHR5cGUgPT0gd2lkdGgpIGFuZCAoJGluZGV4ID4gMCkge1xuICAgIC5jb2wtI3skY2xhc3N9LSN7JGluZGV4fSB7XG4gICAgICB3aWR0aDogcGVyY2VudGFnZSgoJGluZGV4IC8gJGdyaWQtY29sdW1ucykpO1xuICAgIH1cbiAgfVxuICBAaWYgKCR0eXBlID09IHB1c2gpIGFuZCAoJGluZGV4ID4gMCkge1xuICAgIC5jb2wtI3skY2xhc3N9LXB1c2gtI3skaW5kZXh9IHtcbiAgICAgIGxlZnQ6IHBlcmNlbnRhZ2UoKCRpbmRleCAvICRncmlkLWNvbHVtbnMpKTtcbiAgICB9XG4gIH1cbiAgQGlmICgkdHlwZSA9PSBwdXNoKSBhbmQgKCRpbmRleCA9PSAwKSB7XG4gICAgLmNvbC0jeyRjbGFzc30tcHVzaC0wIHtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgfVxuICB9XG4gIEBpZiAoJHR5cGUgPT0gcHVsbCkgYW5kICgkaW5kZXggPiAwKSB7XG4gICAgLmNvbC0jeyRjbGFzc30tcHVsbC0jeyRpbmRleH0ge1xuICAgICAgcmlnaHQ6IHBlcmNlbnRhZ2UoKCRpbmRleCAvICRncmlkLWNvbHVtbnMpKTtcbiAgICB9XG4gIH1cbiAgQGlmICgkdHlwZSA9PSBwdWxsKSBhbmQgKCRpbmRleCA9PSAwKSB7XG4gICAgLmNvbC0jeyRjbGFzc30tcHVsbC0wIHtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxuICBAaWYgKCR0eXBlID09IG9mZnNldCkge1xuICAgIC5jb2wtI3skY2xhc3N9LW9mZnNldC0jeyRpbmRleH0ge1xuICAgICAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKCRpbmRleCAvICRncmlkLWNvbHVtbnMpKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gW2NvbnZlcnRlcl0gVGhpcyBpcyBkZWZpbmVkIHJlY3Vyc2l2ZWx5IGluIExFU1MsIGJ1dCBTYXNzIHN1cHBvcnRzIHJlYWwgbG9vcHNcbkBtaXhpbiBsb29wLWdyaWQtY29sdW1ucygkY29sdW1ucywgJGNsYXNzLCAkdHlwZSkge1xuICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICRjb2x1bW5zIHtcbiAgICBAaW5jbHVkZSBjYWxjLWdyaWQtY29sdW1uKCRpLCAkY2xhc3MsICR0eXBlKTtcbiAgfVxufVxuXG5cbi8vIENyZWF0ZSBncmlkIGZvciBzcGVjaWZpYyBjbGFzc1xuQG1peGluIG1ha2UtZ3JpZCgkY2xhc3MpIHtcbiAgQGluY2x1ZGUgZmxvYXQtZ3JpZC1jb2x1bW5zKCRjbGFzcyk7XG4gIEBpbmNsdWRlIGxvb3AtZ3JpZC1jb2x1bW5zKCRncmlkLWNvbHVtbnMsICRjbGFzcywgd2lkdGgpO1xuICBAaW5jbHVkZSBsb29wLWdyaWQtY29sdW1ucygkZ3JpZC1jb2x1bW5zLCAkY2xhc3MsIHB1bGwpO1xuICBAaW5jbHVkZSBsb29wLWdyaWQtY29sdW1ucygkZ3JpZC1jb2x1bW5zLCAkY2xhc3MsIHB1c2gpO1xuICBAaW5jbHVkZSBsb29wLWdyaWQtY29sdW1ucygkZ3JpZC1jb2x1bW5zLCAkY2xhc3MsIG9mZnNldCk7XG59XG4iLCIvL1xuLy8gVGFibGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJnO1xufVxuY2FwdGlvbiB7XG4gIHBhZGRpbmctdG9wOiAkdGFibGUtY2VsbC1wYWRkaW5nO1xuICBwYWRkaW5nLWJvdHRvbTogJHRhYmxlLWNlbGwtcGFkZGluZztcbiAgY29sb3I6ICR0ZXh0LW11dGVkO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxudGgge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG5cbi8vIEJhc2VsaW5lIHN0eWxlc1xuXG4udGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAkbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIC8vIENlbGxzXG4gID4gdGhlYWQsXG4gID4gdGJvZHksXG4gID4gdGZvb3Qge1xuICAgID4gdHIge1xuICAgICAgPiB0aCxcbiAgICAgID4gdGQge1xuICAgICAgICBwYWRkaW5nOiAkdGFibGUtY2VsbC1wYWRkaW5nO1xuICAgICAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyBCb3R0b20gYWxpZ24gZm9yIGNvbHVtbiBoZWFkaW5nc1xuICA+IHRoZWFkID4gdHIgPiB0aCB7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgfVxuICAvLyBSZW1vdmUgdG9wIGJvcmRlciBmcm9tIHRoZWFkIGJ5IGRlZmF1bHRcbiAgPiBjYXB0aW9uICsgdGhlYWQsXG4gID4gY29sZ3JvdXAgKyB0aGVhZCxcbiAgPiB0aGVhZDpmaXJzdC1jaGlsZCB7XG4gICAgPiB0cjpmaXJzdC1jaGlsZCB7XG4gICAgICA+IHRoLFxuICAgICAgPiB0ZCB7XG4gICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIEFjY291bnQgZm9yIG11bHRpcGxlIHRib2R5IGluc3RhbmNlc1xuICA+IHRib2R5ICsgdGJvZHkge1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICB9XG5cbiAgLy8gTmVzdGluZ1xuICAudGFibGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRib2R5LWJnO1xuICB9XG59XG5cblxuLy8gQ29uZGVuc2VkIHRhYmxlIHcvIGhhbGYgcGFkZGluZ1xuXG4udGFibGUtY29uZGVuc2VkIHtcbiAgPiB0aGVhZCxcbiAgPiB0Ym9keSxcbiAgPiB0Zm9vdCB7XG4gICAgPiB0ciB7XG4gICAgICA+IHRoLFxuICAgICAgPiB0ZCB7XG4gICAgICAgIHBhZGRpbmc6ICR0YWJsZS1jb25kZW5zZWQtY2VsbC1wYWRkaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8vIEJvcmRlcmVkIHZlcnNpb25cbi8vXG4vLyBBZGQgYm9yZGVycyBhbGwgYXJvdW5kIHRoZSB0YWJsZSBhbmQgYmV0d2VlbiBhbGwgdGhlIGNvbHVtbnMuXG5cbi50YWJsZS1ib3JkZXJlZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR0YWJsZS1ib3JkZXItY29sb3I7XG4gID4gdGhlYWQsXG4gID4gdGJvZHksXG4gID4gdGZvb3Qge1xuICAgID4gdHIge1xuICAgICAgPiB0aCxcbiAgICAgID4gdGQge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICA+IHRoZWFkID4gdHIge1xuICAgID4gdGgsXG4gICAgPiB0ZCB7XG4gICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG4gICAgfVxuICB9XG59XG5cblxuLy8gWmVicmEtc3RyaXBpbmdcbi8vXG4vLyBEZWZhdWx0IHplYnJhLXN0cmlwZSBzdHlsZXMgKGFsdGVybmF0aW5nIGdyYXkgYW5kIHRyYW5zcGFyZW50IGJhY2tncm91bmRzKVxuXG4udGFibGUtc3RyaXBlZCB7XG4gID4gdGJvZHkgPiB0cjpudGgtb2YtdHlwZShvZGQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmctYWNjZW50O1xuICB9XG59XG5cblxuLy8gSG92ZXIgZWZmZWN0XG4vL1xuLy8gUGxhY2VkIGhlcmUgc2luY2UgaXQgaGFzIHRvIGNvbWUgYWZ0ZXIgdGhlIHBvdGVudGlhbCB6ZWJyYSBzdHJpcGluZ1xuXG4udGFibGUtaG92ZXIge1xuICA+IHRib2R5ID4gdHI6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iZy1ob3ZlcjtcbiAgfVxufVxuXG5cbi8vIFRhYmxlIGNlbGwgc2l6aW5nXG4vL1xuLy8gUmVzZXQgZGVmYXVsdCB0YWJsZSBiZWhhdmlvclxuXG50YWJsZSBjb2xbY2xhc3MqPVwiY29sLVwiXSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7IC8vIFByZXZlbnQgYm9yZGVyIGhpZGluZyBpbiBGaXJlZm94IGFuZCBJRTktMTEgKHNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzExNjIzKVxuICBmbG9hdDogbm9uZTtcbiAgZGlzcGxheTogdGFibGUtY29sdW1uO1xufVxudGFibGUge1xuICB0ZCxcbiAgdGgge1xuICAgICZbY2xhc3MqPVwiY29sLVwiXSB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljOyAvLyBQcmV2ZW50IGJvcmRlciBoaWRpbmcgaW4gRmlyZWZveCBhbmQgSUU5LTExIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMTYyMylcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBUYWJsZSBiYWNrZ3JvdW5kc1xuLy9cbi8vIEV4YWN0IHNlbGVjdG9ycyBiZWxvdyByZXF1aXJlZCB0byBvdmVycmlkZSBgLnRhYmxlLXN0cmlwZWRgIGFuZCBwcmV2ZW50XG4vLyBpbmhlcml0YW5jZSB0byBuZXN0ZWQgdGFibGVzLlxuXG4vLyBHZW5lcmF0ZSB0aGUgY29udGV4dHVhbCB2YXJpYW50c1xuQGluY2x1ZGUgdGFibGUtcm93LXZhcmlhbnQoJ2FjdGl2ZScsICR0YWJsZS1iZy1hY3RpdmUpO1xuQGluY2x1ZGUgdGFibGUtcm93LXZhcmlhbnQoJ3N1Y2Nlc3MnLCAkc3RhdGUtc3VjY2Vzcy1iZyk7XG5AaW5jbHVkZSB0YWJsZS1yb3ctdmFyaWFudCgnaW5mbycsICRzdGF0ZS1pbmZvLWJnKTtcbkBpbmNsdWRlIHRhYmxlLXJvdy12YXJpYW50KCd3YXJuaW5nJywgJHN0YXRlLXdhcm5pbmctYmcpO1xuQGluY2x1ZGUgdGFibGUtcm93LXZhcmlhbnQoJ2RhbmdlcicsICRzdGF0ZS1kYW5nZXItYmcpO1xuXG5cbi8vIFJlc3BvbnNpdmUgdGFibGVzXG4vL1xuLy8gV3JhcCB5b3VyIHRhYmxlcyBpbiBgLnRhYmxlLXJlc3BvbnNpdmVgIGFuZCB3ZSdsbCBtYWtlIHRoZW0gbW9iaWxlIGZyaWVuZGx5XG4vLyBieSBlbmFibGluZyBob3Jpem9udGFsIHNjcm9sbGluZy4gT25seSBhcHBsaWVzIDw3NjhweC4gRXZlcnl0aGluZyBhYm92ZSB0aGF0XG4vLyB3aWxsIGRpc3BsYXkgbm9ybWFsbHkuXG5cbi50YWJsZS1yZXNwb25zaXZlIHtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgbWluLWhlaWdodDogMC4wMSU7IC8vIFdvcmthcm91bmQgZm9yIElFOSBidWcgKHNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzE0ODM3KVxuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRzY3JlZW4teHMtbWF4KSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogKCRsaW5lLWhlaWdodC1jb21wdXRlZCAqIDAuNzUpO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkdGFibGUtYm9yZGVyLWNvbG9yO1xuXG4gICAgLy8gVGlnaHRlbiB1cCBzcGFjaW5nXG4gICAgPiAudGFibGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgLy8gRW5zdXJlIHRoZSBjb250ZW50IGRvZXNuJ3Qgd3JhcFxuICAgICAgPiB0aGVhZCxcbiAgICAgID4gdGJvZHksXG4gICAgICA+IHRmb290IHtcbiAgICAgICAgPiB0ciB7XG4gICAgICAgICAgPiB0aCxcbiAgICAgICAgICA+IHRkIHtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU3BlY2lhbCBvdmVycmlkZXMgZm9yIHRoZSBib3JkZXJlZCB0YWJsZXNcbiAgICA+IC50YWJsZS1ib3JkZXJlZCB7XG4gICAgICBib3JkZXI6IDA7XG5cbiAgICAgIC8vIE51a2UgdGhlIGFwcHJvcHJpYXRlIGJvcmRlcnMgc28gdGhhdCB0aGUgcGFyZW50IGNhbiBoYW5kbGUgdGhlbVxuICAgICAgPiB0aGVhZCxcbiAgICAgID4gdGJvZHksXG4gICAgICA+IHRmb290IHtcbiAgICAgICAgPiB0ciB7XG4gICAgICAgICAgPiB0aDpmaXJzdC1jaGlsZCxcbiAgICAgICAgICA+IHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICA+IHRoOmxhc3QtY2hpbGQsXG4gICAgICAgICAgPiB0ZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gT25seSBudWtlIHRoZSBsYXN0IHJvdydzIGJvdHRvbS1ib3JkZXIgaW4gYHRib2R5YCBhbmQgYHRmb290YCBzaW5jZVxuICAgICAgLy8gY2hhbmNlcyBhcmUgdGhlcmUgd2lsbCBiZSBvbmx5IG9uZSBgdHJgIGluIGEgYHRoZWFkYCBhbmQgdGhhdCB3b3VsZFxuICAgICAgLy8gcmVtb3ZlIHRoZSBib3JkZXIgYWx0b2dldGhlci5cbiAgICAgID4gdGJvZHksXG4gICAgICA+IHRmb290IHtcbiAgICAgICAgPiB0cjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICA+IHRoLFxuICAgICAgICAgID4gdGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cbiAgfVxufVxuIiwiLy8gVGFibGVzXG5cbkBtaXhpbiB0YWJsZS1yb3ctdmFyaWFudCgkc3RhdGUsICRiYWNrZ3JvdW5kKSB7XG4gIC8vIEV4YWN0IHNlbGVjdG9ycyBiZWxvdyByZXF1aXJlZCB0byBvdmVycmlkZSBgLnRhYmxlLXN0cmlwZWRgIGFuZCBwcmV2ZW50XG4gIC8vIGluaGVyaXRhbmNlIHRvIG5lc3RlZCB0YWJsZXMuXG4gIC50YWJsZSA+IHRoZWFkID4gdHIsXG4gIC50YWJsZSA+IHRib2R5ID4gdHIsXG4gIC50YWJsZSA+IHRmb290ID4gdHIge1xuICAgID4gdGQuI3skc3RhdGV9LFxuICAgID4gdGguI3skc3RhdGV9LFxuICAgICYuI3skc3RhdGV9ID4gdGQsXG4gICAgJi4jeyRzdGF0ZX0gPiB0aCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZXMgZm9yIGAudGFibGUtaG92ZXJgXG4gIC8vIE5vdGU6IHRoaXMgaXMgbm90IGF2YWlsYWJsZSBmb3IgY2VsbHMgb3Igcm93cyB3aXRoaW4gYHRoZWFkYCBvciBgdGZvb3RgLlxuICAudGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyIHtcbiAgICA+IHRkLiN7JHN0YXRlfTpob3ZlcixcbiAgICA+IHRoLiN7JHN0YXRlfTpob3ZlcixcbiAgICAmLiN7JHN0YXRlfTpob3ZlciA+IHRkLFxuICAgICY6aG92ZXIgPiAuI3skc3RhdGV9LFxuICAgICYuI3skc3RhdGV9OmhvdmVyID4gdGgge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRiYWNrZ3JvdW5kLCA1JSk7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gRm9ybXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gTm9ybWFsaXplIG5vbi1jb250cm9sc1xuLy9cbi8vIFJlc3R5bGUgYW5kIGJhc2VsaW5lIG5vbi1jb250cm9sIGZvcm0gZWxlbWVudHMuXG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDA7XG4gIC8vIENocm9tZSBhbmQgRmlyZWZveCBzZXQgYSBgbWluLXdpZHRoOiBtaW4tY29udGVudDtgIG9uIGZpZWxkc2V0cyxcbiAgLy8gc28gd2UgcmVzZXQgdGhhdCB0byBlbnN1cmUgaXQgYmVoYXZlcyBtb3JlIGxpa2UgYSBzdGFuZGFyZCBibG9jayBlbGVtZW50LlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMjM1OS5cbiAgbWluLXdpZHRoOiAwO1xufVxuXG5sZWdlbmQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbi1ib3R0b206ICRsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgZm9udC1zaXplOiAoJGZvbnQtc2l6ZS1iYXNlICogMS41KTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiAkbGVnZW5kLWNvbG9yO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbGVnZW5kLWJvcmRlci1jb2xvcjtcbn1cblxubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTsgLy8gRm9yY2UgSUU4IHRvIHdyYXAgbG9uZyBjb250ZW50IChzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMzE0MSlcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuXG4vLyBOb3JtYWxpemUgZm9ybSBjb250cm9sc1xuLy9cbi8vIFdoaWxlIG1vc3Qgb2Ygb3VyIGZvcm0gc3R5bGVzIHJlcXVpcmUgZXh0cmEgY2xhc3Nlcywgc29tZSBiYXNpYyBub3JtYWxpemF0aW9uXG4vLyBpcyByZXF1aXJlZCB0byBlbnN1cmUgb3B0aW11bSBkaXNwbGF5IHdpdGggb3Igd2l0aG91dCB0aG9zZSBjbGFzc2VzIHRvIGJldHRlclxuLy8gYWRkcmVzcyBicm93c2VyIGluY29uc2lzdGVuY2llcy5cblxuLy8gT3ZlcnJpZGUgY29udGVudC1ib3ggaW4gTm9ybWFsaXplICgqIGlzbid0IHNwZWNpZmljIGVub3VnaClcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xufVxuXG4vLyBQb3NpdGlvbiByYWRpb3MgYW5kIGNoZWNrYm94ZXMgYmV0dGVyXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0sXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBtYXJnaW46IDRweCAwIDA7XG4gIG1hcmdpbi10b3A6IDFweCBcXDk7IC8vIElFOC05XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbmlucHV0W3R5cGU9XCJmaWxlXCJdIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vIE1ha2UgcmFuZ2UgaW5wdXRzIGJlaGF2ZSBsaWtlIHRleHR1YWwgZm9ybSBjb250cm9sc1xuaW5wdXRbdHlwZT1cInJhbmdlXCJdIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4vLyBNYWtlIG11bHRpcGxlIHNlbGVjdCBlbGVtZW50cyBoZWlnaHQgbm90IGZpeGVkXG5zZWxlY3RbbXVsdGlwbGVdLFxuc2VsZWN0W3NpemVdIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vLyBGb2N1cyBmb3IgZmlsZSwgcmFkaW8sIGFuZCBjaGVja2JveFxuaW5wdXRbdHlwZT1cImZpbGVcIl06Zm9jdXMsXG5pbnB1dFt0eXBlPVwicmFkaW9cIl06Zm9jdXMsXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Zm9jdXMge1xuICBAaW5jbHVkZSB0YWItZm9jdXM7XG59XG5cbi8vIEFkanVzdCBvdXRwdXQgZWxlbWVudFxub3V0cHV0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmctdG9wOiAoJHBhZGRpbmctYmFzZS12ZXJ0aWNhbCArIDEpO1xuICBmb250LXNpemU6ICRmb250LXNpemUtYmFzZTtcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlO1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xufVxuXG5cbi8vIENvbW1vbiBmb3JtIGNvbnRyb2xzXG4vL1xuLy8gU2hhcmVkIHNpemUgYW5kIHR5cGUgcmVzZXRzIGZvciBmb3JtIGNvbnRyb2xzLiBBcHBseSBgLmZvcm0tY29udHJvbGAgdG8gYW55XG4vLyBvZiB0aGUgZm9sbG93aW5nIGZvcm0gY29udHJvbHM6XG4vL1xuLy8gc2VsZWN0XG4vLyB0ZXh0YXJlYVxuLy8gaW5wdXRbdHlwZT1cInRleHRcIl1cbi8vIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXVxuLy8gaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdXG4vLyBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl1cbi8vIGlucHV0W3R5cGU9XCJkYXRlXCJdXG4vLyBpbnB1dFt0eXBlPVwibW9udGhcIl1cbi8vIGlucHV0W3R5cGU9XCJ0aW1lXCJdXG4vLyBpbnB1dFt0eXBlPVwid2Vla1wiXVxuLy8gaW5wdXRbdHlwZT1cIm51bWJlclwiXVxuLy8gaW5wdXRbdHlwZT1cImVtYWlsXCJdXG4vLyBpbnB1dFt0eXBlPVwidXJsXCJdXG4vLyBpbnB1dFt0eXBlPVwic2VhcmNoXCJdXG4vLyBpbnB1dFt0eXBlPVwidGVsXCJdXG4vLyBpbnB1dFt0eXBlPVwiY29sb3JcIl1cblxuLmZvcm0tY29udHJvbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkaW5wdXQtaGVpZ2h0LWJhc2U7IC8vIE1ha2UgaW5wdXRzIGF0IGxlYXN0IHRoZSBoZWlnaHQgb2YgdGhlaXIgYnV0dG9uIGNvdW50ZXJwYXJ0IChiYXNlIGxpbmUtaGVpZ2h0ICsgcGFkZGluZyArIGJvcmRlcilcbiAgcGFkZGluZzogJHBhZGRpbmctYmFzZS12ZXJ0aWNhbCAkcGFkZGluZy1iYXNlLWhvcml6b250YWw7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlO1xuICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XG4gIGNvbG9yOiAkaW5wdXQtY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iZztcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLy8gUmVzZXQgdW51c3VhbCBGaXJlZm94LW9uLUFuZHJvaWQgZGVmYXVsdCBzdHlsZTsgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MvaXNzdWVzLzIxNFxuICBib3JkZXI6IDFweCBzb2xpZCAkaW5wdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkaW5wdXQtYm9yZGVyLXJhZGl1czsgLy8gTm90ZTogVGhpcyBoYXMgbm8gZWZmZWN0IG9uIDxzZWxlY3Q+cyBpbiBzb21lIGJyb3dzZXJzLCBkdWUgdG8gdGhlIGxpbWl0ZWQgc3R5bGFiaWxpdHkgb2YgPHNlbGVjdD5zIGluIENTUy5cbiAgQGluY2x1ZGUgYm94LXNoYWRvdyhpbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KSk7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsIGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1cyk7XG5cbiAgLy8gQ3VzdG9taXplIHRoZSBgOmZvY3VzYCBzdGF0ZSB0byBpbWl0YXRlIG5hdGl2ZSBXZWJLaXQgc3R5bGVzLlxuICBAaW5jbHVkZSBmb3JtLWNvbnRyb2wtZm9jdXM7XG5cbiAgLy8gUGxhY2Vob2xkZXJcbiAgQGluY2x1ZGUgcGxhY2Vob2xkZXI7XG5cbiAgLy8gRGlzYWJsZWQgYW5kIHJlYWQtb25seSBpbnB1dHNcbiAgLy9cbiAgLy8gSFRNTDUgc2F5cyB0aGF0IGNvbnRyb2xzIHVuZGVyIGEgZmllbGRzZXQgPiBsZWdlbmQ6Zmlyc3QtY2hpbGQgd29uJ3QgYmVcbiAgLy8gZGlzYWJsZWQgaWYgdGhlIGZpZWxkc2V0IGlzIGRpc2FibGVkLiBEdWUgdG8gaW1wbGVtZW50YXRpb24gZGlmZmljdWx0eSwgd2VcbiAgLy8gZG9uJ3QgaG9ub3IgdGhhdCBlZGdlIGNhc2U7IHdlIHN0eWxlIHRoZW0gYXMgZGlzYWJsZWQgYW55d2F5LlxuICAmW2Rpc2FibGVkXSxcbiAgJltyZWFkb25seV0sXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmctZGlzYWJsZWQ7XG4gICAgb3BhY2l0eTogMTsgLy8gaU9TIGZpeCBmb3IgdW5yZWFkYWJsZSBkaXNhYmxlZCBjb250ZW50OyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMTY1NVxuICB9XG5cbiAgJltkaXNhYmxlZF0sXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICBjdXJzb3I6ICRjdXJzb3ItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBbY29udmVydGVyXSBleHRyYWN0ZWQgdGV4dGFyZWEmIHRvIHRleHRhcmVhLmZvcm0tY29udHJvbFxufVxuXG4vLyBSZXNldCBoZWlnaHQgZm9yIGB0ZXh0YXJlYWBzXG50ZXh0YXJlYS5mb3JtLWNvbnRyb2wge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cblxuLy8gU2VhcmNoIGlucHV0cyBpbiBpT1Ncbi8vXG4vLyBUaGlzIG92ZXJyaWRlcyB0aGUgZXh0cmEgcm91bmRlZCBjb3JuZXJzIG9uIHNlYXJjaCBpbnB1dHMgaW4gaU9TIHNvIHRoYXQgb3VyXG4vLyBgLmZvcm0tY29udHJvbGAgY2xhc3MgY2FuIHByb3Blcmx5IHN0eWxlIHRoZW0uIE5vdGUgdGhhdCB0aGlzIGNhbm5vdCBzaW1wbHlcbi8vIGJlIGFkZGVkIHRvIGAuZm9ybS1jb250cm9sYCBhcyBpdCdzIG5vdCBzcGVjaWZpYyBlbm91Z2guIEZvciBkZXRhaWxzLCBzZWVcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTE1ODYuXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cblxuLy8gU3BlY2lhbCBzdHlsZXMgZm9yIGlPUyB0ZW1wb3JhbCBpbnB1dHNcbi8vXG4vLyBJbiBNb2JpbGUgU2FmYXJpLCBzZXR0aW5nIGBkaXNwbGF5OiBibG9ja2Agb24gdGVtcG9yYWwgaW5wdXRzIGNhdXNlcyB0aGVcbi8vIHRleHQgd2l0aGluIHRoZSBpbnB1dCB0byBiZWNvbWUgdmVydGljYWxseSBtaXNhbGlnbmVkLiBBcyBhIHdvcmthcm91bmQsIHdlXG4vLyBzZXQgYSBwaXhlbCBsaW5lLWhlaWdodCB0aGF0IG1hdGNoZXMgdGhlIGdpdmVuIGhlaWdodCBvZiB0aGUgaW5wdXQsIGJ1dCBvbmx5XG4vLyBmb3IgU2FmYXJpLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTg0OFxuLy9cbi8vIE5vdGUgdGhhdCBhcyBvZiA4LjMsIGlPUyBkb2Vzbid0IHN1cHBvcnQgYGRhdGV0aW1lYCBvciBgd2Vla2AuXG5cbkBtZWRpYSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDApIHtcbiAgaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4gIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4gIGlucHV0W3R5cGU9XCJtb250aFwiXSB7XG4gICAgJi5mb3JtLWNvbnRyb2wge1xuICAgICAgbGluZS1oZWlnaHQ6ICRpbnB1dC1oZWlnaHQtYmFzZTtcbiAgICB9XG5cbiAgICAmLmlucHV0LXNtLFxuICAgIC5pbnB1dC1ncm91cC1zbSAmIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkaW5wdXQtaGVpZ2h0LXNtYWxsO1xuICAgIH1cblxuICAgICYuaW5wdXQtbGcsXG4gICAgLmlucHV0LWdyb3VwLWxnICYge1xuICAgICAgbGluZS1oZWlnaHQ6ICRpbnB1dC1oZWlnaHQtbGFyZ2U7XG4gICAgfVxuICB9XG59XG5cblxuLy8gRm9ybSBncm91cHNcbi8vXG4vLyBEZXNpZ25lZCB0byBoZWxwIHdpdGggdGhlIG9yZ2FuaXphdGlvbiBhbmQgc3BhY2luZyBvZiB2ZXJ0aWNhbCBmb3Jtcy4gRm9yXG4vLyBob3Jpem9udGFsIGZvcm1zLCB1c2UgdGhlIHByZWRlZmluZWQgZ3JpZCBjbGFzc2VzLlxuXG4uZm9ybS1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206ICRmb3JtLWdyb3VwLW1hcmdpbi1ib3R0b207XG59XG5cblxuLy8gQ2hlY2tib3hlcyBhbmQgcmFkaW9zXG4vL1xuLy8gSW5kZW50IHRoZSBsYWJlbHMgdG8gcG9zaXRpb24gcmFkaW9zL2NoZWNrYm94ZXMgYXMgaGFuZ2luZyBjb250cm9scy5cblxuLnJhZGlvLFxuLmNoZWNrYm94IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcblxuICBsYWJlbCB7XG4gICAgbWluLWhlaWdodDogJGxpbmUtaGVpZ2h0LWNvbXB1dGVkOyAvLyBFbnN1cmUgdGhlIGlucHV0IGRvZXNuJ3QganVtcCB3aGVuIHRoZXJlIGlzIG5vIHRleHRcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbi5yYWRpby1pbmxpbmUgaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuLmNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbi5jaGVja2JveC1pbmxpbmUgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gIG1hcmdpbi10b3A6IDRweCBcXDk7XG59XG5cbi5yYWRpbyArIC5yYWRpbyxcbi5jaGVja2JveCArIC5jaGVja2JveCB7XG4gIG1hcmdpbi10b3A6IC01cHg7IC8vIE1vdmUgdXAgc2libGluZyByYWRpb3Mgb3IgY2hlY2tib3hlcyBmb3IgdGlnaHRlciBzcGFjaW5nXG59XG5cbi8vIFJhZGlvcyBhbmQgY2hlY2tib3hlcyBvbiBzYW1lIGxpbmVcbi5yYWRpby1pbmxpbmUsXG4uY2hlY2tib3gtaW5saW5lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnJhZGlvLWlubGluZSArIC5yYWRpby1pbmxpbmUsXG4uY2hlY2tib3gtaW5saW5lICsgLmNoZWNrYm94LWlubGluZSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4OyAvLyBzcGFjZSBvdXQgY29uc2VjdXRpdmUgaW5saW5lIGNvbnRyb2xzXG59XG5cbi8vIEFwcGx5IHNhbWUgZGlzYWJsZWQgY3Vyc29yIHR3ZWFrIGFzIGZvciBpbnB1dHNcbi8vIFNvbWUgc3BlY2lhbCBjYXJlIGlzIG5lZWRlZCBiZWNhdXNlIDxsYWJlbD5zIGRvbid0IGluaGVyaXQgdGhlaXIgcGFyZW50J3MgYGN1cnNvcmAuXG4vL1xuLy8gTm90ZTogTmVpdGhlciByYWRpb3Mgbm9yIGNoZWNrYm94ZXMgY2FuIGJlIHJlYWRvbmx5LlxuaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgJltkaXNhYmxlZF0sXG4gICYuZGlzYWJsZWQsXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICBjdXJzb3I6ICRjdXJzb3ItZGlzYWJsZWQ7XG4gIH1cbn1cbi8vIFRoZXNlIGNsYXNzZXMgYXJlIHVzZWQgZGlyZWN0bHkgb24gPGxhYmVsPnNcbi5yYWRpby1pbmxpbmUsXG4uY2hlY2tib3gtaW5saW5lIHtcbiAgJi5kaXNhYmxlZCxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgIGN1cnNvcjogJGN1cnNvci1kaXNhYmxlZDtcbiAgfVxufVxuLy8gVGhlc2UgY2xhc3NlcyBhcmUgdXNlZCBvbiBlbGVtZW50cyB3aXRoIDxsYWJlbD4gZGVzY2VuZGFudHNcbi5yYWRpbyxcbi5jaGVja2JveCB7XG4gICYuZGlzYWJsZWQsXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICBsYWJlbCB7XG4gICAgICBjdXJzb3I6ICRjdXJzb3ItZGlzYWJsZWQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8gU3RhdGljIGZvcm0gY29udHJvbCB0ZXh0XG4vL1xuLy8gQXBwbHkgY2xhc3MgdG8gYSBgcGAgZWxlbWVudCB0byBtYWtlIGFueSBzdHJpbmcgb2YgdGV4dCBhbGlnbiB3aXRoIGxhYmVscyBpblxuLy8gYSBob3Jpem9udGFsIGZvcm0gbGF5b3V0LlxuXG4uZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gIC8vIFNpemUgaXQgYXBwcm9wcmlhdGVseSBuZXh0IHRvIHJlYWwgZm9ybSBjb250cm9sc1xuICBwYWRkaW5nLXRvcDogKCRwYWRkaW5nLWJhc2UtdmVydGljYWwgKyAxKTtcbiAgcGFkZGluZy1ib3R0b206ICgkcGFkZGluZy1iYXNlLXZlcnRpY2FsICsgMSk7XG4gIC8vIFJlbW92ZSBkZWZhdWx0IG1hcmdpbiBmcm9tIGBwYFxuICBtYXJnaW4tYm90dG9tOiAwO1xuICBtaW4taGVpZ2h0OiAoJGxpbmUtaGVpZ2h0LWNvbXB1dGVkICsgJGZvbnQtc2l6ZS1iYXNlKTtcblxuICAmLmlucHV0LWxnLFxuICAmLmlucHV0LXNtIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxufVxuXG5cbi8vIEZvcm0gY29udHJvbCBzaXppbmdcbi8vXG4vLyBCdWlsZCBvbiBgLmZvcm0tY29udHJvbGAgd2l0aCBtb2RpZmllciBjbGFzc2VzIHRvIGRlY3JlYXNlIG9yIGluY3JlYXNlIHRoZVxuLy8gaGVpZ2h0IGFuZCBmb250LXNpemUgb2YgZm9ybSBjb250cm9scy5cbi8vXG4vLyBUaGUgYC5mb3JtLWdyb3VwLSogZm9ybS1jb250cm9sYCB2YXJpYXRpb25zIGFyZSBzYWRseSBkdXBsaWNhdGVkIHRvIGF2b2lkIHRoZVxuLy8gaXNzdWUgZG9jdW1lbnRlZCBpbiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzE1MDc0LlxuXG5AaW5jbHVkZSBpbnB1dC1zaXplKCcuaW5wdXQtc20nLCAkaW5wdXQtaGVpZ2h0LXNtYWxsLCAkcGFkZGluZy1zbWFsbC12ZXJ0aWNhbCwgJHBhZGRpbmctc21hbGwtaG9yaXpvbnRhbCwgJGZvbnQtc2l6ZS1zbWFsbCwgJGxpbmUtaGVpZ2h0LXNtYWxsLCAkaW5wdXQtYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG4uZm9ybS1ncm91cC1zbSB7XG4gIC5mb3JtLWNvbnRyb2wge1xuICAgIGhlaWdodDogJGlucHV0LWhlaWdodC1zbWFsbDtcbiAgICBwYWRkaW5nOiAkcGFkZGluZy1zbWFsbC12ZXJ0aWNhbCAkcGFkZGluZy1zbWFsbC1ob3Jpem9udGFsO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbDtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LXNtYWxsO1xuICAgIGJvcmRlci1yYWRpdXM6ICRpbnB1dC1ib3JkZXItcmFkaXVzLXNtYWxsO1xuICB9XG4gIHNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICAgIGhlaWdodDogJGlucHV0LWhlaWdodC1zbWFsbDtcbiAgICBsaW5lLWhlaWdodDogJGlucHV0LWhlaWdodC1zbWFsbDtcbiAgfVxuICB0ZXh0YXJlYS5mb3JtLWNvbnRyb2wsXG4gIHNlbGVjdFttdWx0aXBsZV0uZm9ybS1jb250cm9sIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICAgIGhlaWdodDogJGlucHV0LWhlaWdodC1zbWFsbDtcbiAgICBtaW4taGVpZ2h0OiAoJGxpbmUtaGVpZ2h0LWNvbXB1dGVkICsgJGZvbnQtc2l6ZS1zbWFsbCk7XG4gICAgcGFkZGluZzogKCRwYWRkaW5nLXNtYWxsLXZlcnRpY2FsICsgMSkgJHBhZGRpbmctc21hbGwtaG9yaXpvbnRhbDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGw7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1zbWFsbDtcbiAgfVxufVxuXG5AaW5jbHVkZSBpbnB1dC1zaXplKCcuaW5wdXQtbGcnLCAkaW5wdXQtaGVpZ2h0LWxhcmdlLCAkcGFkZGluZy1sYXJnZS12ZXJ0aWNhbCwgJHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbCwgJGZvbnQtc2l6ZS1sYXJnZSwgJGxpbmUtaGVpZ2h0LWxhcmdlLCAkaW5wdXQtYm9yZGVyLXJhZGl1cy1sYXJnZSk7XG4uZm9ybS1ncm91cC1sZyB7XG4gIC5mb3JtLWNvbnRyb2wge1xuICAgIGhlaWdodDogJGlucHV0LWhlaWdodC1sYXJnZTtcbiAgICBwYWRkaW5nOiAkcGFkZGluZy1sYXJnZS12ZXJ0aWNhbCAkcGFkZGluZy1sYXJnZS1ob3Jpem9udGFsO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1sYXJnZTtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWxhcmdlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRpbnB1dC1ib3JkZXItcmFkaXVzLWxhcmdlO1xuICB9XG4gIHNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICAgIGhlaWdodDogJGlucHV0LWhlaWdodC1sYXJnZTtcbiAgICBsaW5lLWhlaWdodDogJGlucHV0LWhlaWdodC1sYXJnZTtcbiAgfVxuICB0ZXh0YXJlYS5mb3JtLWNvbnRyb2wsXG4gIHNlbGVjdFttdWx0aXBsZV0uZm9ybS1jb250cm9sIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICAgIGhlaWdodDogJGlucHV0LWhlaWdodC1sYXJnZTtcbiAgICBtaW4taGVpZ2h0OiAoJGxpbmUtaGVpZ2h0LWNvbXB1dGVkICsgJGZvbnQtc2l6ZS1sYXJnZSk7XG4gICAgcGFkZGluZzogKCRwYWRkaW5nLWxhcmdlLXZlcnRpY2FsICsgMSkgJHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtbGFyZ2U7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1sYXJnZTtcbiAgfVxufVxuXG5cbi8vIEZvcm0gY29udHJvbCBmZWVkYmFjayBzdGF0ZXNcbi8vXG4vLyBBcHBseSBjb250ZXh0dWFsIGFuZCBzZW1hbnRpYyBzdGF0ZXMgdG8gaW5kaXZpZHVhbCBmb3JtIGNvbnRyb2xzLlxuXG4uaGFzLWZlZWRiYWNrIHtcbiAgLy8gRW5hYmxlIGFic29sdXRlIHBvc2l0aW9uaW5nXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAvLyBFbnN1cmUgaWNvbnMgZG9uJ3Qgb3ZlcmxhcCB0ZXh0XG4gIC5mb3JtLWNvbnRyb2wge1xuICAgIHBhZGRpbmctcmlnaHQ6ICgkaW5wdXQtaGVpZ2h0LWJhc2UgKiAxLjI1KTtcbiAgfVxufVxuLy8gRmVlZGJhY2sgaWNvbiAocmVxdWlyZXMgLmdseXBoaWNvbiBjbGFzc2VzKVxuLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgei1pbmRleDogMjsgLy8gRW5zdXJlIGljb24gaXMgYWJvdmUgaW5wdXQgZ3JvdXBzXG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogJGlucHV0LWhlaWdodC1iYXNlO1xuICBoZWlnaHQ6ICRpbnB1dC1oZWlnaHQtYmFzZTtcbiAgbGluZS1oZWlnaHQ6ICRpbnB1dC1oZWlnaHQtYmFzZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5pbnB1dC1sZyArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssXG4uaW5wdXQtZ3JvdXAtbGcgKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrLFxuLmZvcm0tZ3JvdXAtbGcgLmZvcm0tY29udHJvbCArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICB3aWR0aDogJGlucHV0LWhlaWdodC1sYXJnZTtcbiAgaGVpZ2h0OiAkaW5wdXQtaGVpZ2h0LWxhcmdlO1xuICBsaW5lLWhlaWdodDogJGlucHV0LWhlaWdodC1sYXJnZTtcbn1cbi5pbnB1dC1zbSArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssXG4uaW5wdXQtZ3JvdXAtc20gKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrLFxuLmZvcm0tZ3JvdXAtc20gLmZvcm0tY29udHJvbCArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICB3aWR0aDogJGlucHV0LWhlaWdodC1zbWFsbDtcbiAgaGVpZ2h0OiAkaW5wdXQtaGVpZ2h0LXNtYWxsO1xuICBsaW5lLWhlaWdodDogJGlucHV0LWhlaWdodC1zbWFsbDtcbn1cblxuLy8gRmVlZGJhY2sgc3RhdGVzXG4uaGFzLXN1Y2Nlc3Mge1xuICBAaW5jbHVkZSBmb3JtLWNvbnRyb2wtdmFsaWRhdGlvbigkc3RhdGUtc3VjY2Vzcy10ZXh0LCAkc3RhdGUtc3VjY2Vzcy10ZXh0LCAkc3RhdGUtc3VjY2Vzcy1iZyk7XG59XG4uaGFzLXdhcm5pbmcge1xuICBAaW5jbHVkZSBmb3JtLWNvbnRyb2wtdmFsaWRhdGlvbigkc3RhdGUtd2FybmluZy10ZXh0LCAkc3RhdGUtd2FybmluZy10ZXh0LCAkc3RhdGUtd2FybmluZy1iZyk7XG59XG4uaGFzLWVycm9yIHtcbiAgQGluY2x1ZGUgZm9ybS1jb250cm9sLXZhbGlkYXRpb24oJHN0YXRlLWRhbmdlci10ZXh0LCAkc3RhdGUtZGFuZ2VyLXRleHQsICRzdGF0ZS1kYW5nZXItYmcpO1xufVxuXG4vLyBSZXBvc2l0aW9uIGZlZWRiYWNrIGljb24gaWYgaW5wdXQgaGFzIHZpc2libGUgbGFiZWwgYWJvdmVcbi5oYXMtZmVlZGJhY2sgbGFiZWwge1xuXG4gICYgfiAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgICAgdG9wOiAoJGxpbmUtaGVpZ2h0LWNvbXB1dGVkICsgNSk7IC8vIEhlaWdodCBvZiB0aGUgYGxhYmVsYCBhbmQgaXRzIG1hcmdpblxuICB9XG4gICYuc3Itb25seSB+IC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICAgICB0b3A6IDA7XG4gIH1cbn1cblxuXG4vLyBIZWxwIHRleHRcbi8vXG4vLyBBcHBseSB0byBhbnkgZWxlbWVudCB5b3Ugd2lzaCB0byBjcmVhdGUgbGlnaHQgdGV4dCBmb3IgcGxhY2VtZW50IGltbWVkaWF0ZWx5XG4vLyBiZWxvdyBhIGZvcm0gY29udHJvbC4gVXNlIGZvciBnZW5lcmFsIGhlbHAsIGZvcm1hdHRpbmcsIG9yIGluc3RydWN0aW9uYWwgdGV4dC5cblxuLmhlbHAtYmxvY2sge1xuICBkaXNwbGF5OiBibG9jazsgLy8gYWNjb3VudCBmb3IgYW55IGVsZW1lbnQgdXNpbmcgaGVscC1ibG9ja1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGNvbG9yOiBsaWdodGVuKCR0ZXh0LWNvbG9yLCAyNSUpOyAvLyBsaWdodGVuIHRoZSB0ZXh0IHNvbWUgZm9yIGNvbnRyYXN0XG59XG5cblxuLy8gSW5saW5lIGZvcm1zXG4vL1xuLy8gTWFrZSBmb3JtcyBhcHBlYXIgaW5saW5lKC1ibG9jaykgYnkgYWRkaW5nIHRoZSBgLmZvcm0taW5saW5lYCBjbGFzcy4gSW5saW5lXG4vLyBmb3JtcyBiZWdpbiBzdGFja2VkIG9uIGV4dHJhIHNtYWxsIChtb2JpbGUpIGRldmljZXMgYW5kIHRoZW4gZ28gaW5saW5lIHdoZW5cbi8vIHZpZXdwb3J0cyByZWFjaCA8NzY4cHguXG4vL1xuLy8gUmVxdWlyZXMgd3JhcHBpbmcgaW5wdXRzIGFuZCBsYWJlbHMgd2l0aCBgLmZvcm0tZ3JvdXBgIGZvciBwcm9wZXIgZGlzcGxheSBvZlxuLy8gZGVmYXVsdCBIVE1MIGZvcm0gY29udHJvbHMgYW5kIG91ciBjdXN0b20gZm9ybSBjb250cm9scyAoZS5nLiwgaW5wdXQgZ3JvdXBzKS5cbi8vXG4vLyBIZWFkcyB1cCEgVGhpcyBpcyBtaXhpbi1lZCBpbnRvIGAubmF2YmFyLWZvcm1gIGluIG5hdmJhcnMubGVzcy5cblxuLy8gW2NvbnZlcnRlcl0gZXh0cmFjdGVkIGZyb20gYC5mb3JtLWlubGluZWAgZm9yIGxpYnNhc3MgY29tcGF0aWJpbGl0eVxuQG1peGluIGZvcm0taW5saW5lIHtcblxuICAvLyBLaWNrIGluIHRoZSBpbmxpbmVcbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tc20tbWluKSB7XG4gICAgLy8gSW5saW5lLWJsb2NrIGFsbCB0aGUgdGhpbmdzIGZvciBcImlubGluZVwiXG4gICAgLmZvcm0tZ3JvdXAge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLy8gSW4gbmF2YmFyLWZvcm0sIGFsbG93IGZvbGtzIHRvICpub3QqIHVzZSBgLmZvcm0tZ3JvdXBgXG4gICAgLmZvcm0tY29udHJvbCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogYXV0bzsgLy8gUHJldmVudCBsYWJlbHMgZnJvbSBzdGFja2luZyBhYm92ZSBpbnB1dHMgaW4gYC5mb3JtLWdyb3VwYFxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAvLyBNYWtlIHN0YXRpYyBjb250cm9scyBiZWhhdmUgbGlrZSByZWd1bGFyIG9uZXNcbiAgICAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgLmlucHV0LWdyb3VwIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS10YWJsZTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgIC5pbnB1dC1ncm91cC1hZGRvbixcbiAgICAgIC5pbnB1dC1ncm91cC1idG4sXG4gICAgICAuZm9ybS1jb250cm9sIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSW5wdXQgZ3JvdXBzIG5lZWQgdGhhdCAxMDAlIHdpZHRoIHRob3VnaFxuICAgIC5pbnB1dC1ncm91cCA+IC5mb3JtLWNvbnRyb2wge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmNvbnRyb2wtbGFiZWwge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIGRlZmF1bHQgbWFyZ2luIG9uIHJhZGlvcy9jaGVja2JveGVzIHRoYXQgd2VyZSB1c2VkIGZvciBzdGFja2luZywgYW5kXG4gICAgLy8gdGhlbiB1bmRvIHRoZSBmbG9hdGluZyBvZiByYWRpb3MgYW5kIGNoZWNrYm94ZXMgdG8gbWF0Y2guXG4gICAgLnJhZGlvLFxuICAgIC5jaGVja2JveCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgIGxhYmVsIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgICAucmFkaW8gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuICAgIC5jaGVja2JveCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLy8gUmUtb3ZlcnJpZGUgdGhlIGZlZWRiYWNrIGljb24uXG4gICAgLmhhcy1mZWVkYmFjayAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgICAgIHRvcDogMDtcbiAgICB9XG4gIH1cbn1cbi8vIFtjb252ZXJ0ZXJdIGV4dHJhY3RlZCBhcyBgQG1peGluIGZvcm0taW5saW5lYCBmb3IgbGlic2FzcyBjb21wYXRpYmlsaXR5XG4uZm9ybS1pbmxpbmUge1xuICBAaW5jbHVkZSBmb3JtLWlubGluZTtcbn1cblxuXG5cbi8vIEhvcml6b250YWwgZm9ybXNcbi8vXG4vLyBIb3Jpem9udGFsIGZvcm1zIGFyZSBidWlsdCBvbiBncmlkIGNsYXNzZXMgYW5kIGFsbG93IHlvdSB0byBjcmVhdGUgZm9ybXMgd2l0aFxuLy8gbGFiZWxzIG9uIHRoZSBsZWZ0IGFuZCBpbnB1dHMgb24gdGhlIHJpZ2h0LlxuXG4uZm9ybS1ob3Jpem9udGFsIHtcblxuICAvLyBDb25zaXN0ZW50IHZlcnRpY2FsIGFsaWdubWVudCBvZiByYWRpb3MgYW5kIGNoZWNrYm94ZXNcbiAgLy9cbiAgLy8gTGFiZWxzIGFsc28gZ2V0IHNvbWUgcmVzZXQgc3R5bGVzLCBidXQgdGhhdCBpcyBzY29wZWQgdG8gYSBtZWRpYSBxdWVyeSBiZWxvdy5cbiAgLnJhZGlvLFxuICAuY2hlY2tib3gsXG4gIC5yYWRpby1pbmxpbmUsXG4gIC5jaGVja2JveC1pbmxpbmUge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nLXRvcDogKCRwYWRkaW5nLWJhc2UtdmVydGljYWwgKyAxKTsgLy8gRGVmYXVsdCBwYWRkaW5nIHBsdXMgYSBib3JkZXJcbiAgfVxuICAvLyBBY2NvdW50IGZvciBwYWRkaW5nIHdlJ3JlIGFkZGluZyB0byBlbnN1cmUgdGhlIGFsaWdubWVudCBhbmQgb2YgaGVscCB0ZXh0XG4gIC8vIGFuZCBvdGhlciBjb250ZW50IGJlbG93IGl0ZW1zXG4gIC5yYWRpbyxcbiAgLmNoZWNrYm94IHtcbiAgICBtaW4taGVpZ2h0OiAoJGxpbmUtaGVpZ2h0LWNvbXB1dGVkICsgKCRwYWRkaW5nLWJhc2UtdmVydGljYWwgKyAxKSk7XG4gIH1cblxuICAvLyBNYWtlIGZvcm0gZ3JvdXBzIGJlaGF2ZSBsaWtlIHJvd3NcbiAgLmZvcm0tZ3JvdXAge1xuICAgIEBpbmNsdWRlIG1ha2Utcm93O1xuICB9XG5cbiAgLy8gUmVzZXQgc3BhY2luZyBhbmQgcmlnaHQgYWxpZ24gbGFiZWxzLCBidXQgc2NvcGUgdG8gbWVkaWEgcXVlcmllcyBzbyB0aGF0XG4gIC8vIGxhYmVscyBvbiBuYXJyb3cgdmlld3BvcnRzIHN0YWNrIHRoZSBzYW1lIGFzIGEgZGVmYXVsdCBmb3JtIGV4YW1wbGUuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikge1xuICAgIC5jb250cm9sLWxhYmVsIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHBhZGRpbmctdG9wOiAoJHBhZGRpbmctYmFzZS12ZXJ0aWNhbCArIDEpOyAvLyBEZWZhdWx0IHBhZGRpbmcgcGx1cyBhIGJvcmRlclxuICAgIH1cbiAgfVxuXG4gIC8vIFZhbGlkYXRpb24gc3RhdGVzXG4gIC8vXG4gIC8vIFJlcG9zaXRpb24gdGhlIGljb24gYmVjYXVzZSBpdCdzIG5vdyB3aXRoaW4gYSBncmlkIGNvbHVtbiBhbmQgY29sdW1ucyBoYXZlXG4gIC8vIGBwb3NpdGlvbjogcmVsYXRpdmU7YCBvbiB0aGVtLiBBbHNvIGFjY291bnRzIGZvciB0aGUgZ3JpZCBndXR0ZXIgcGFkZGluZy5cbiAgLmhhcy1mZWVkYmFjayAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgICByaWdodDogZmxvb3IoKCRncmlkLWd1dHRlci13aWR0aCAvIDIpKTtcbiAgfVxuXG4gIC8vIEZvcm0gZ3JvdXAgc2l6ZXNcbiAgLy9cbiAgLy8gUXVpY2sgdXRpbGl0eSBjbGFzcyBmb3IgYXBwbHlpbmcgYC5pbnB1dC1sZ2AgYW5kIGAuaW5wdXQtc21gIHN0eWxlcyB0byB0aGVcbiAgLy8gaW5wdXRzIGFuZCBsYWJlbHMgd2l0aGluIGEgYC5mb3JtLWdyb3VwYC5cbiAgLmZvcm0tZ3JvdXAtbGcge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikge1xuICAgICAgLmNvbnRyb2wtbGFiZWwge1xuICAgICAgICBwYWRkaW5nLXRvcDogKCgkcGFkZGluZy1sYXJnZS12ZXJ0aWNhbCAqICRsaW5lLWhlaWdodC1sYXJnZSkgKyAxKTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLWxhcmdlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAuZm9ybS1ncm91cC1zbSB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tc20tbWluKSB7XG4gICAgICAuY29udHJvbC1sYWJlbCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAoJHBhZGRpbmctc21hbGwtdmVydGljYWwgKyAxKTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm9ybSB2YWxpZGF0aW9uIHN0YXRlc1xuLy9cbi8vIFVzZWQgaW4gZm9ybXMubGVzcyB0byBnZW5lcmF0ZSB0aGUgZm9ybSB2YWxpZGF0aW9uIENTUyBmb3Igd2FybmluZ3MsIGVycm9ycyxcbi8vIGFuZCBzdWNjZXNzZXMuXG5cbkBtaXhpbiBmb3JtLWNvbnRyb2wtdmFsaWRhdGlvbigkdGV4dC1jb2xvcjogIzU1NSwgJGJvcmRlci1jb2xvcjogI2NjYywgJGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjUpIHtcbiAgLy8gQ29sb3IgdGhlIGxhYmVsIGFuZCBoZWxwIHRleHRcbiAgLmhlbHAtYmxvY2ssXG4gIC5jb250cm9sLWxhYmVsLFxuICAucmFkaW8sXG4gIC5jaGVja2JveCxcbiAgLnJhZGlvLWlubGluZSxcbiAgLmNoZWNrYm94LWlubGluZSxcbiAgJi5yYWRpbyBsYWJlbCxcbiAgJi5jaGVja2JveCBsYWJlbCxcbiAgJi5yYWRpby1pbmxpbmUgbGFiZWwsXG4gICYuY2hlY2tib3gtaW5saW5lIGxhYmVsICB7XG4gICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICB9XG4gIC8vIFNldCB0aGUgYm9yZGVyIGFuZCBib3ggc2hhZG93IG9uIHNwZWNpZmljIGlucHV0cyB0byBtYXRjaFxuICAuZm9ybS1jb250cm9sIHtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdyhpbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KSk7IC8vIFJlZGVjbGFyZSBzbyB0cmFuc2l0aW9ucyB3b3JrXG4gICAgJjpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6IGRhcmtlbigkYm9yZGVyLWNvbG9yLCAxMCUpO1xuICAgICAgJHNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSksIDAgMCA2cHggbGlnaHRlbigkYm9yZGVyLWNvbG9yLCAyMCUpO1xuICAgICAgQGluY2x1ZGUgYm94LXNoYWRvdygkc2hhZG93KTtcbiAgICB9XG4gIH1cbiAgLy8gU2V0IHZhbGlkYXRpb24gc3RhdGVzIGFsc28gZm9yIGFkZG9uc1xuICAuaW5wdXQtZ3JvdXAtYWRkb24ge1xuICAgIGNvbG9yOiAkdGV4dC1jb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3I7XG4gIH1cbiAgLy8gT3B0aW9uYWwgZmVlZGJhY2sgaWNvblxuICAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgICBjb2xvcjogJHRleHQtY29sb3I7XG4gIH1cbn1cblxuXG4vLyBGb3JtIGNvbnRyb2wgZm9jdXMgc3RhdGVcbi8vXG4vLyBHZW5lcmF0ZSBhIGN1c3RvbWl6ZWQgZm9jdXMgc3RhdGUgYW5kIGZvciBhbnkgaW5wdXQgd2l0aCB0aGUgc3BlY2lmaWVkIGNvbG9yLFxuLy8gd2hpY2ggZGVmYXVsdHMgdG8gdGhlIGAkaW5wdXQtYm9yZGVyLWZvY3VzYCB2YXJpYWJsZS5cbi8vXG4vLyBXZSBoaWdobHkgZW5jb3VyYWdlIHlvdSB0byBub3QgY3VzdG9taXplIHRoZSBkZWZhdWx0IHZhbHVlLCBidXQgaW5zdGVhZCB1c2Vcbi8vIHRoaXMgdG8gdHdlYWsgY29sb3JzIG9uIGFuIGFzLW5lZWRlZCBiYXNpcy4gVGhpcyBhZXN0aGV0aWMgY2hhbmdlIGlzIGJhc2VkIG9uXG4vLyBXZWJLaXQncyBkZWZhdWx0IHN0eWxlcywgYnV0IGFwcGxpY2FibGUgdG8gYSB3aWRlciByYW5nZSBvZiBicm93c2Vycy4gSXRzXG4vLyB1c2FiaWxpdHkgYW5kIGFjY2Vzc2liaWxpdHkgc2hvdWxkIGJlIHRha2VuIGludG8gYWNjb3VudCB3aXRoIGFueSBjaGFuZ2UuXG4vL1xuLy8gRXhhbXBsZSB1c2FnZTogY2hhbmdlIHRoZSBkZWZhdWx0IGJsdWUgYm9yZGVyIGFuZCBzaGFkb3cgdG8gd2hpdGUgZm9yIGJldHRlclxuLy8gY29udHJhc3QgYWdhaW5zdCBhIGRhcmsgZ3JheSBiYWNrZ3JvdW5kLlxuQG1peGluIGZvcm0tY29udHJvbC1mb2N1cygkY29sb3I6ICRpbnB1dC1ib3JkZXItZm9jdXMpIHtcbiAgJGNvbG9yLXJnYmE6IHJnYmEocmVkKCRjb2xvciksIGdyZWVuKCRjb2xvciksIGJsdWUoJGNvbG9yKSwgLjYpO1xuICAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICBvdXRsaW5lOiAwO1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSksIDAgMCA4cHggJGNvbG9yLXJnYmEpO1xuICB9XG59XG5cbi8vIEZvcm0gY29udHJvbCBzaXppbmdcbi8vXG4vLyBSZWxhdGl2ZSB0ZXh0IHNpemUsIHBhZGRpbmcsIGFuZCBib3JkZXItcmFkaWkgY2hhbmdlcyBmb3IgZm9ybSBjb250cm9scy4gRm9yXG4vLyBob3Jpem9udGFsIHNpemluZywgd3JhcCBjb250cm9scyBpbiB0aGUgcHJlZGVmaW5lZCBncmlkIGNsYXNzZXMuIGA8c2VsZWN0PmBcbi8vIGVsZW1lbnQgZ2V0cyBzcGVjaWFsIGxvdmUgYmVjYXVzZSBpdCdzIHNwZWNpYWwsIGFuZCB0aGF0J3MgYSBmYWN0IVxuLy8gW2NvbnZlcnRlcl0gJHBhcmVudCBoYWNrXG5AbWl4aW4gaW5wdXQtc2l6ZSgkcGFyZW50LCAkaW5wdXQtaGVpZ2h0LCAkcGFkZGluZy12ZXJ0aWNhbCwgJHBhZGRpbmctaG9yaXpvbnRhbCwgJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkYm9yZGVyLXJhZGl1cykge1xuICAjeyRwYXJlbnR9IHtcbiAgICBoZWlnaHQ6ICRpbnB1dC1oZWlnaHQ7XG4gICAgcGFkZGluZzogJHBhZGRpbmctdmVydGljYWwgJHBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgfVxuXG4gIHNlbGVjdCN7JHBhcmVudH0ge1xuICAgIGhlaWdodDogJGlucHV0LWhlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJGlucHV0LWhlaWdodDtcbiAgfVxuXG4gIHRleHRhcmVhI3skcGFyZW50fSxcbiAgc2VsZWN0W211bHRpcGxlXSN7JHBhcmVudH0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuIiwiLy9cbi8vIEJ1dHRvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFzZSBzdHlsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDA7IC8vIEZvciBpbnB1dC5idG5cbiAgZm9udC13ZWlnaHQ6ICRidG4tZm9udC13ZWlnaHQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLy8gUmVzZXQgdW51c3VhbCBGaXJlZm94LW9uLUFuZHJvaWQgZGVmYXVsdCBzdHlsZTsgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MvaXNzdWVzLzIxNFxuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgQGluY2x1ZGUgYnV0dG9uLXNpemUoJHBhZGRpbmctYmFzZS12ZXJ0aWNhbCwgJHBhZGRpbmctYmFzZS1ob3Jpem9udGFsLCAkZm9udC1zaXplLWJhc2UsICRsaW5lLWhlaWdodC1iYXNlLCAkYnRuLWJvcmRlci1yYWRpdXMtYmFzZSk7XG4gIEBpbmNsdWRlIHVzZXItc2VsZWN0KG5vbmUpO1xuXG4gICYsXG4gICY6YWN0aXZlLFxuICAmLmFjdGl2ZSB7XG4gICAgJjpmb2N1cyxcbiAgICAmLmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIHRhYi1mb2N1cztcbiAgICB9XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmLmZvY3VzIHtcbiAgICBjb2xvcjogJGJ0bi1kZWZhdWx0LWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gICY6YWN0aXZlLFxuICAmLmFjdGl2ZSB7XG4gICAgb3V0bGluZTogMDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coaW5zZXQgMCAzcHggNXB4IHJnYmEoMCwwLDAsLjEyNSkpO1xuICB9XG5cbiAgJi5kaXNhYmxlZCxcbiAgJltkaXNhYmxlZF0sXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICBjdXJzb3I6ICRjdXJzb3ItZGlzYWJsZWQ7XG4gICAgQGluY2x1ZGUgb3BhY2l0eSguNjUpO1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3cobm9uZSk7XG4gIH1cblxuICAvLyBbY29udmVydGVyXSBleHRyYWN0ZWQgYSYgdG8gYS5idG5cbn1cblxuYS5idG4ge1xuICAmLmRpc2FibGVkLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8vIEZ1dHVyZS1wcm9vZiBkaXNhYmxpbmcgb2YgY2xpY2tzIG9uIGA8YT5gIGVsZW1lbnRzXG4gIH1cbn1cblxuXG4vLyBBbHRlcm5hdGUgYnV0dG9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmJ0bi1kZWZhdWx0IHtcbiAgQGluY2x1ZGUgYnV0dG9uLXZhcmlhbnQoJGJ0bi1kZWZhdWx0LWNvbG9yLCAkYnRuLWRlZmF1bHQtYmcsICRidG4tZGVmYXVsdC1ib3JkZXIpO1xufVxuLmJ0bi1wcmltYXJ5IHtcbiAgQGluY2x1ZGUgYnV0dG9uLXZhcmlhbnQoJGJ0bi1wcmltYXJ5LWNvbG9yLCAkYnRuLXByaW1hcnktYmcsICRidG4tcHJpbWFyeS1ib3JkZXIpO1xufVxuLy8gU3VjY2VzcyBhcHBlYXJzIGFzIGdyZWVuXG4uYnRuLXN1Y2Nlc3Mge1xuICBAaW5jbHVkZSBidXR0b24tdmFyaWFudCgkYnRuLXN1Y2Nlc3MtY29sb3IsICRidG4tc3VjY2Vzcy1iZywgJGJ0bi1zdWNjZXNzLWJvcmRlcik7XG59XG4vLyBJbmZvIGFwcGVhcnMgYXMgYmx1ZS1ncmVlblxuLmJ0bi1pbmZvIHtcbiAgQGluY2x1ZGUgYnV0dG9uLXZhcmlhbnQoJGJ0bi1pbmZvLWNvbG9yLCAkYnRuLWluZm8tYmcsICRidG4taW5mby1ib3JkZXIpO1xufVxuLy8gV2FybmluZyBhcHBlYXJzIGFzIG9yYW5nZVxuLmJ0bi13YXJuaW5nIHtcbiAgQGluY2x1ZGUgYnV0dG9uLXZhcmlhbnQoJGJ0bi13YXJuaW5nLWNvbG9yLCAkYnRuLXdhcm5pbmctYmcsICRidG4td2FybmluZy1ib3JkZXIpO1xufVxuLy8gRGFuZ2VyIGFuZCBlcnJvciBhcHBlYXIgYXMgcmVkXG4uYnRuLWRhbmdlciB7XG4gIEBpbmNsdWRlIGJ1dHRvbi12YXJpYW50KCRidG4tZGFuZ2VyLWNvbG9yLCAkYnRuLWRhbmdlci1iZywgJGJ0bi1kYW5nZXItYm9yZGVyKTtcbn1cblxuXG4vLyBMaW5rIGJ1dHRvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gTWFrZSBhIGJ1dHRvbiBsb29rIGFuZCBiZWhhdmUgbGlrZSBhIGxpbmtcbi5idG4tbGluayB7XG4gIGNvbG9yOiAkbGluay1jb2xvcjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgYm9yZGVyLXJhZGl1czogMDtcblxuICAmLFxuICAmOmFjdGl2ZSxcbiAgJi5hY3RpdmUsXG4gICZbZGlzYWJsZWRdLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdyhub25lKTtcbiAgfVxuICAmLFxuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGxpbmstaG92ZXItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiAkbGluay1ob3Zlci1kZWNvcmF0aW9uO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG4gICZbZGlzYWJsZWRdLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkYnRuLWxpbmstZGlzYWJsZWQtY29sb3I7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG59XG5cblxuLy8gQnV0dG9uIFNpemVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uYnRuLWxnIHtcbiAgLy8gbGluZS1oZWlnaHQ6IGVuc3VyZSBldmVuLW51bWJlcmVkIGhlaWdodCBvZiBidXR0b24gbmV4dCB0byBsYXJnZSBpbnB1dFxuICBAaW5jbHVkZSBidXR0b24tc2l6ZSgkcGFkZGluZy1sYXJnZS12ZXJ0aWNhbCwgJHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbCwgJGZvbnQtc2l6ZS1sYXJnZSwgJGxpbmUtaGVpZ2h0LWxhcmdlLCAkYnRuLWJvcmRlci1yYWRpdXMtbGFyZ2UpO1xufVxuLmJ0bi1zbSB7XG4gIC8vIGxpbmUtaGVpZ2h0OiBlbnN1cmUgcHJvcGVyIGhlaWdodCBvZiBidXR0b24gbmV4dCB0byBzbWFsbCBpbnB1dFxuICBAaW5jbHVkZSBidXR0b24tc2l6ZSgkcGFkZGluZy1zbWFsbC12ZXJ0aWNhbCwgJHBhZGRpbmctc21hbGwtaG9yaXpvbnRhbCwgJGZvbnQtc2l6ZS1zbWFsbCwgJGxpbmUtaGVpZ2h0LXNtYWxsLCAkYnRuLWJvcmRlci1yYWRpdXMtc21hbGwpO1xufVxuLmJ0bi14cyB7XG4gIEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nLXhzLXZlcnRpY2FsLCAkcGFkZGluZy14cy1ob3Jpem9udGFsLCAkZm9udC1zaXplLXNtYWxsLCAkbGluZS1oZWlnaHQtc21hbGwsICRidG4tYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG59XG5cblxuLy8gQmxvY2sgYnV0dG9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uYnRuLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4vLyBWZXJ0aWNhbGx5IHNwYWNlIG91dCBtdWx0aXBsZSBibG9jayBidXR0b25zXG4uYnRuLWJsb2NrICsgLmJ0bi1ibG9jayB7XG4gIG1hcmdpbi10b3A6IDVweDtcbn1cblxuLy8gU3BlY2lmaWNpdHkgb3ZlcnJpZGVzXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cImJ1dHRvblwiXSB7XG4gICYuYnRuLWJsb2NrIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuIiwiLy8gQnV0dG9uIHZhcmlhbnRzXG4vL1xuLy8gRWFzaWx5IHB1bXAgb3V0IGRlZmF1bHQgc3R5bGVzLCBhcyB3ZWxsIGFzIDpob3ZlciwgOmZvY3VzLCA6YWN0aXZlLFxuLy8gYW5kIGRpc2FibGVkIG9wdGlvbnMgZm9yIGFsbCBidXR0b25zXG5cbkBtaXhpbiBidXR0b24tdmFyaWFudCgkY29sb3IsICRiYWNrZ3JvdW5kLCAkYm9yZGVyKSB7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBib3JkZXItY29sb3I6ICRib3JkZXI7XG5cbiAgJjpmb2N1cyxcbiAgJi5mb2N1cyB7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGJhY2tncm91bmQsIDEwJSk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogZGFya2VuKCRib3JkZXIsIDI1JSk7XG4gIH1cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGJhY2tncm91bmQsIDEwJSk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogZGFya2VuKCRib3JkZXIsIDEyJSk7XG4gIH1cbiAgJjphY3RpdmUsXG4gICYuYWN0aXZlLFxuICAub3BlbiA+ICYuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkYmFja2dyb3VuZCwgMTAlKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oJGJvcmRlciwgMTIlKTtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmLmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGJhY2tncm91bmQsIDE3JSk7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oJGJvcmRlciwgMjUlKTtcbiAgICB9XG4gIH1cbiAgJjphY3RpdmUsXG4gICYuYWN0aXZlLFxuICAub3BlbiA+ICYuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICB9XG4gICYuZGlzYWJsZWQsXG4gICZbZGlzYWJsZWRdLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgJixcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJi5mb2N1cyxcbiAgICAmOmFjdGl2ZSxcbiAgICAmLmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRib3JkZXI7XG4gICAgfVxuICB9XG5cbiAgLmJhZGdlIHtcbiAgICBjb2xvcjogJGJhY2tncm91bmQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vIEJ1dHRvbiBzaXplc1xuQG1peGluIGJ1dHRvbi1zaXplKCRwYWRkaW5nLXZlcnRpY2FsLCAkcGFkZGluZy1ob3Jpem9udGFsLCAkZm9udC1zaXplLCAkbGluZS1oZWlnaHQsICRib3JkZXItcmFkaXVzKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nLXZlcnRpY2FsICRwYWRkaW5nLWhvcml6b250YWw7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG4iLCIvLyBPcGFjaXR5XG5cbkBtaXhpbiBvcGFjaXR5KCRvcGFjaXR5KSB7XG4gIG9wYWNpdHk6ICRvcGFjaXR5O1xuICAvLyBJRTggZmlsdGVyXG4gICRvcGFjaXR5LWllOiAoJG9wYWNpdHkgKiAxMDApO1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9JG9wYWNpdHktaWUpO1xufVxuIiwiLy9cbi8vIENvbXBvbmVudCBhbmltYXRpb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBIZWFkcyB1cCFcbi8vXG4vLyBXZSBkb24ndCB1c2UgdGhlIGAub3BhY2l0eSgpYCBtaXhpbiBoZXJlIHNpbmNlIGl0IGNhdXNlcyBhIGJ1ZyB3aXRoIHRleHRcbi8vIGZpZWxkcyBpbiBJRTctOC4gU291cmNlOiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvcHVsbC8zNTUyLlxuXG4uZmFkZSB7XG4gIG9wYWNpdHk6IDA7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAuMTVzIGxpbmVhcik7XG4gICYuaW4ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLmNvbGxhcHNlIHtcbiAgZGlzcGxheTogbm9uZTtcblxuICAmLmluICAgICAgeyBkaXNwbGF5OiBibG9jazsgfVxuICAvLyBbY29udmVydGVyXSBleHRyYWN0ZWQgdHImLmluIHRvIHRyLmNvbGxhcHNlLmluXG4gIC8vIFtjb252ZXJ0ZXJdIGV4dHJhY3RlZCB0Ym9keSYuaW4gdG8gdGJvZHkuY29sbGFwc2UuaW5cbn1cblxudHIuY29sbGFwc2UuaW4gICAgeyBkaXNwbGF5OiB0YWJsZS1yb3c7IH1cblxudGJvZHkuY29sbGFwc2UuaW4geyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXA7IH1cblxuLmNvbGxhcHNpbmcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1wcm9wZXJ0eShoZWlnaHQsIHZpc2liaWxpdHkpO1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKC4zNXMpO1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbihlYXNlKTtcbn1cbiIsIi8vXG4vLyBEcm9wZG93biBtZW51c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBEcm9wZG93biBhcnJvdy9jYXJldFxuLmNhcmV0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMnB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBib3JkZXItdG9wOiAgICRjYXJldC13aWR0aC1iYXNlIGRhc2hlZDtcbiAgYm9yZGVyLXRvcDogICAkY2FyZXQtd2lkdGgtYmFzZSBzb2xpZCBcXDk7IC8vIElFOFxuICBib3JkZXItcmlnaHQ6ICRjYXJldC13aWR0aC1iYXNlIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdDogICRjYXJldC13aWR0aC1iYXNlIHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4vLyBUaGUgZHJvcGRvd24gd3JhcHBlciAoZGl2KVxuLmRyb3B1cCxcbi5kcm9wZG93biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLy8gUHJldmVudCB0aGUgZm9jdXMgb24gdGhlIGRyb3Bkb3duIHRvZ2dsZSB3aGVuIGNsb3NpbmcgZHJvcGRvd25zXG4uZHJvcGRvd24tdG9nZ2xlOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLy8gVGhlIGRyb3Bkb3duIG1lbnUgKHVsKVxuLmRyb3Bkb3duLW1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogJHppbmRleC1kcm9wZG93bjtcbiAgZGlzcGxheTogbm9uZTsgLy8gbm9uZSBieSBkZWZhdWx0LCBidXQgYmxvY2sgb24gXCJvcGVuXCIgb2YgdGhlIG1lbnVcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1pbi13aWR0aDogMTYwcHg7XG4gIHBhZGRpbmc6IDVweCAwO1xuICBtYXJnaW46IDJweCAwIDA7IC8vIG92ZXJyaWRlIGRlZmF1bHQgdWxcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7XG4gIHRleHQtYWxpZ246IGxlZnQ7IC8vIEVuc3VyZXMgcHJvcGVyIGFsaWdubWVudCBpZiBwYXJlbnQgaGFzIGl0IGNoYW5nZWQgKGUuZy4sIG1vZGFsIGZvb3RlcilcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRyb3Bkb3duLWJnO1xuICBib3JkZXI6IDFweCBzb2xpZCAkZHJvcGRvd24tZmFsbGJhY2stYm9yZGVyOyAvLyBJRTggZmFsbGJhY2tcbiAgYm9yZGVyOiAxcHggc29saWQgJGRyb3Bkb3duLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtYmFzZTtcbiAgQGluY2x1ZGUgYm94LXNoYWRvdygwIDZweCAxMnB4IHJnYmEoMCwwLDAsLjE3NSkpO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gIC8vIEFsaWducyB0aGUgZHJvcGRvd24gbWVudSB0byByaWdodFxuICAvL1xuICAvLyBEZXByZWNhdGVkIGFzIG9mIDMuMS4wIGluIGZhdm9yIG9mIGAuZHJvcGRvd24tbWVudS1bZGlyXWBcbiAgJi5wdWxsLXJpZ2h0IHtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG5cbiAgLy8gRGl2aWRlcnMgKGJhc2ljYWxseSBhbiBocikgd2l0aGluIHRoZSBkcm9wZG93blxuICAuZGl2aWRlciB7XG4gICAgQGluY2x1ZGUgbmF2LWRpdmlkZXIoJGRyb3Bkb3duLWRpdmlkZXItYmcpO1xuICB9XG5cbiAgLy8gTGlua3Mgd2l0aGluIHRoZSBkcm9wZG93biBtZW51XG4gID4gbGkgPiBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAzcHggMjBweDtcbiAgICBjbGVhcjogYm90aDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYmFzZTtcbiAgICBjb2xvcjogJGRyb3Bkb3duLWxpbmstY29sb3I7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgLy8gcHJldmVudCBsaW5rcyBmcm9tIHJhbmRvbWx5IGJyZWFraW5nIG9udG8gbmV3IGxpbmVzXG4gIH1cbn1cblxuLy8gSG92ZXIvRm9jdXMgc3RhdGVcbi5kcm9wZG93bi1tZW51ID4gbGkgPiBhIHtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiAkZHJvcGRvd24tbGluay1ob3Zlci1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJvcGRvd24tbGluay1ob3Zlci1iZztcbiAgfVxufVxuXG4vLyBBY3RpdmUgc3RhdGVcbi5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGEge1xuICAmLFxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGRyb3Bkb3duLWxpbmstYWN0aXZlLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkcm9wZG93bi1saW5rLWFjdGl2ZS1iZztcbiAgfVxufVxuXG4vLyBEaXNhYmxlZCBzdGF0ZVxuLy9cbi8vIEdyYXkgb3V0IHRleHQgYW5kIGVuc3VyZSB0aGUgaG92ZXIvZm9jdXMgc3RhdGUgcmVtYWlucyBncmF5XG5cbi5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYSB7XG4gICYsXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkZHJvcGRvd24tbGluay1kaXNhYmxlZC1jb2xvcjtcbiAgfVxuXG4gIC8vIE51a2UgaG92ZXIvZm9jdXMgZWZmZWN0c1xuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLy8gUmVtb3ZlIENTUyBncmFkaWVudFxuICAgIEBpbmNsdWRlIHJlc2V0LWZpbHRlcjtcbiAgICBjdXJzb3I6ICRjdXJzb3ItZGlzYWJsZWQ7XG4gIH1cbn1cblxuLy8gT3BlbiBzdGF0ZSBmb3IgdGhlIGRyb3Bkb3duXG4ub3BlbiB7XG4gIC8vIFNob3cgdGhlIG1lbnVcbiAgPiAuZHJvcGRvd24tbWVudSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIG91dGxpbmUgd2hlbiA6Zm9jdXMgaXMgdHJpZ2dlcmVkXG4gID4gYSB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG4vLyBNZW51IHBvc2l0aW9uaW5nXG4vL1xuLy8gQWRkIGV4dHJhIGNsYXNzIHRvIGAuZHJvcGRvd24tbWVudWAgdG8gZmxpcCB0aGUgYWxpZ25tZW50IG9mIHRoZSBkcm9wZG93blxuLy8gbWVudSB3aXRoIHRoZSBwYXJlbnQuXG4uZHJvcGRvd24tbWVudS1yaWdodCB7XG4gIGxlZnQ6IGF1dG87IC8vIFJlc2V0IHRoZSBkZWZhdWx0IGZyb20gYC5kcm9wZG93bi1tZW51YFxuICByaWdodDogMDtcbn1cbi8vIFdpdGggdjMsIHdlIGVuYWJsZWQgYXV0by1mbGlwcGluZyBpZiB5b3UgaGF2ZSBhIGRyb3Bkb3duIHdpdGhpbiBhIHJpZ2h0XG4vLyBhbGlnbmVkIG5hdiBjb21wb25lbnQuIFRvIGVuYWJsZSB0aGUgdW5kb2luZyBvZiB0aGF0LCB3ZSBwcm92aWRlIGFuIG92ZXJyaWRlXG4vLyB0byByZXN0b3JlIHRoZSBkZWZhdWx0IGRyb3Bkb3duIG1lbnUgYWxpZ25tZW50LlxuLy9cbi8vIFRoaXMgaXMgb25seSBmb3IgbGVmdC1hbGlnbmluZyBhIGRyb3Bkb3duIG1lbnUgd2l0aGluIGEgYC5uYXZiYXItcmlnaHRgIG9yXG4vLyBgLnB1bGwtcmlnaHRgIG5hdiBjb21wb25lbnQuXG4uZHJvcGRvd24tbWVudS1sZWZ0IHtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IGF1dG87XG59XG5cbi8vIERyb3Bkb3duIHNlY3Rpb24gaGVhZGVyc1xuLmRyb3Bkb3duLWhlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAzcHggMjBweDtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XG4gIGNvbG9yOiAkZHJvcGRvd24taGVhZGVyLWNvbG9yO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyAvLyBhcyB3aXRoID4gbGkgPiBhXG59XG5cbi8vIEJhY2tkcm9wIHRvIGNhdGNoIGJvZHkgY2xpY2tzIG9uIG1vYmlsZSwgZXRjLlxuLmRyb3Bkb3duLWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6ICgkemluZGV4LWRyb3Bkb3duIC0gMTApO1xufVxuXG4vLyBSaWdodCBhbGlnbmVkIGRyb3Bkb3duc1xuLnB1bGwtcmlnaHQgPiAuZHJvcGRvd24tbWVudSB7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvO1xufVxuXG4vLyBBbGxvdyBmb3IgZHJvcGRvd25zIHRvIGdvIGJvdHRvbSB1cCAoYWthLCBkcm9wdXAtbWVudSlcbi8vXG4vLyBKdXN0IGFkZCAuZHJvcHVwIGFmdGVyIHRoZSBzdGFuZGFyZCAuZHJvcGRvd24gY2xhc3MgYW5kIHlvdSdyZSBzZXQsIGJyby5cbi8vIFRPRE86IGFic3RyYWN0IHRoaXMgc28gdGhhdCB0aGUgbmF2YmFyIGZpeGVkIHN0eWxlcyBhcmUgbm90IHBsYWNlZCBoZXJlP1xuXG4uZHJvcHVwLFxuLm5hdmJhci1maXhlZC1ib3R0b20gLmRyb3Bkb3duIHtcbiAgLy8gUmV2ZXJzZSB0aGUgY2FyZXRcbiAgLmNhcmV0IHtcbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJvcmRlci1ib3R0b206ICRjYXJldC13aWR0aC1iYXNlIGRhc2hlZDtcbiAgICBib3JkZXItYm90dG9tOiAkY2FyZXQtd2lkdGgtYmFzZSBzb2xpZCBcXDk7IC8vIElFOFxuICAgIGNvbnRlbnQ6IFwiXCI7XG4gIH1cbiAgLy8gRGlmZmVyZW50IHBvc2l0aW9uaW5nIGZvciBib3R0b20gdXAgbWVudVxuICAuZHJvcGRvd24tbWVudSB7XG4gICAgdG9wOiBhdXRvO1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gIH1cbn1cblxuXG4vLyBDb21wb25lbnQgYWxpZ25tZW50XG4vL1xuLy8gUmVpdGVyYXRlIHBlciBuYXZiYXIubGVzcyBhbmQgdGhlIG1vZGlmaWVkIGNvbXBvbmVudCBhbGlnbm1lbnQgdGhlcmUuXG5cbkBtZWRpYSAobWluLXdpZHRoOiAkZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gIC5uYXZiYXItcmlnaHQge1xuICAgIC5kcm9wZG93bi1tZW51IHtcbiAgICAgIHJpZ2h0OiAwOyBsZWZ0OiBhdXRvO1xuICAgIH1cbiAgICAvLyBOZWNlc3NhcnkgZm9yIG92ZXJyaWRlcyBvZiB0aGUgZGVmYXVsdCByaWdodCBhbGlnbmVkIG1lbnUuXG4gICAgLy8gV2lsbCByZW1vdmUgY29tZSB2NCBpbiBhbGwgbGlrZWxpaG9vZC5cbiAgICAuZHJvcGRvd24tbWVudS1sZWZ0IHtcbiAgICAgIGxlZnQ6IDA7IHJpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gSG9yaXpvbnRhbCBkaXZpZGVyc1xuLy9cbi8vIERpdmlkZXJzIChiYXNpY2FsbHkgYW4gaHIpIHdpdGhpbiBkcm9wZG93bnMgYW5kIG5hdiBsaXN0c1xuXG5AbWl4aW4gbmF2LWRpdmlkZXIoJGNvbG9yOiAjZTVlNWU1KSB7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46ICgoJGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMikgLSAxKSAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG59XG4iLCIvLyBSZXNldCBmaWx0ZXJzIGZvciBJRVxuLy9cbi8vIFdoZW4geW91IG5lZWQgdG8gcmVtb3ZlIGEgZ3JhZGllbnQgYmFja2dyb3VuZCwgZG8gbm90IGZvcmdldCB0byB1c2UgdGhpcyB0byByZXNldFxuLy8gdGhlIElFIGZpbHRlciBmb3IgSUU5IGFuZCBiZWxvdy5cblxuQG1peGluIHJlc2V0LWZpbHRlcigpIHtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoZW5hYmxlZCA9IGZhbHNlKTtcbn1cbiIsIi8vXG4vLyBCdXR0b24gZ3JvdXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBNYWtlIHRoZSBkaXYgYmVoYXZlIGxpa2UgYSBidXR0b25cbi5idG4tZ3JvdXAsXG4uYnRuLWdyb3VwLXZlcnRpY2FsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IC8vIG1hdGNoIC5idG4gYWxpZ25tZW50IGdpdmVuIGZvbnQtc2l6ZSBoYWNrIGFib3ZlXG4gID4gLmJ0biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIC8vIEJyaW5nIHRoZSBcImFjdGl2ZVwiIGJ1dHRvbiB0byB0aGUgZnJvbnRcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUsXG4gICAgJi5hY3RpdmUge1xuICAgICAgei1pbmRleDogMjtcbiAgICB9XG4gIH1cbn1cblxuLy8gUHJldmVudCBkb3VibGUgYm9yZGVycyB3aGVuIGJ1dHRvbnMgYXJlIG5leHQgdG8gZWFjaCBvdGhlclxuLmJ0bi1ncm91cCB7XG4gIC5idG4gKyAuYnRuLFxuICAuYnRuICsgLmJ0bi1ncm91cCxcbiAgLmJ0bi1ncm91cCArIC5idG4sXG4gIC5idG4tZ3JvdXAgKyAuYnRuLWdyb3VwIHtcbiAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgfVxufVxuXG4vLyBPcHRpb25hbDogR3JvdXAgbXVsdGlwbGUgYnV0dG9uIGdyb3VwcyB0b2dldGhlciBmb3IgYSB0b29sYmFyXG4uYnRuLXRvb2xiYXIge1xuICBtYXJnaW4tbGVmdDogLTVweDsgLy8gT2Zmc2V0IHRoZSBmaXJzdCBjaGlsZCdzIG1hcmdpblxuICBAaW5jbHVkZSBjbGVhcmZpeDtcblxuICAuYnRuLFxuICAuYnRuLWdyb3VwLFxuICAuaW5wdXQtZ3JvdXAge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gID4gLmJ0bixcbiAgPiAuYnRuLWdyb3VwLFxuICA+IC5pbnB1dC1ncm91cCB7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgfVxufVxuXG4uYnRuLWdyb3VwID4gLmJ0bjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi8vIFNldCBjb3JuZXJzIGluZGl2aWR1YWwgYmVjYXVzZSBzb21ldGltZXMgYSBzaW5nbGUgYnV0dG9uIGNhbiBiZSBpbiBhIC5idG4tZ3JvdXAgYW5kIHdlIG5lZWQgOmZpcnN0LWNoaWxkIGFuZCA6bGFzdC1jaGlsZCB0byBib3RoIG1hdGNoXG4uYnRuLWdyb3VwID4gLmJ0bjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICAmOm5vdCg6bGFzdC1jaGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpIHtcbiAgICBAaW5jbHVkZSBib3JkZXItcmlnaHQtcmFkaXVzKDApO1xuICB9XG59XG4vLyBOZWVkIC5kcm9wZG93bi10b2dnbGUgc2luY2UgOmxhc3QtY2hpbGQgZG9lc24ndCBhcHBseSBnaXZlbiBhIC5kcm9wZG93bi1tZW51IGltbWVkaWF0ZWx5IGFmdGVyIGl0XG4uYnRuLWdyb3VwID4gLmJ0bjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpLFxuLmJ0bi1ncm91cCA+IC5kcm9wZG93bi10b2dnbGU6bm90KDpmaXJzdC1jaGlsZCkge1xuICBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoMCk7XG59XG5cbi8vIEN1c3RvbSBlZGl0cyBmb3IgaW5jbHVkaW5nIGJ0bi1ncm91cHMgd2l0aGluIGJ0bi1ncm91cHMgKHVzZWZ1bCBmb3IgaW5jbHVkaW5nIGRyb3Bkb3duIGJ1dHRvbnMgd2l0aGluIGEgYnRuLWdyb3VwKVxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXAge1xuICBmbG9hdDogbGVmdDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkge1xuICA+IC5idG46bGFzdC1jaGlsZCxcbiAgPiAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBAaW5jbHVkZSBib3JkZXItcmlnaHQtcmFkaXVzKDApO1xuICB9XG59XG4uYnRuLWdyb3VwID4gLmJ0bi1ncm91cDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0bjpmaXJzdC1jaGlsZCB7XG4gIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygwKTtcbn1cblxuLy8gT24gYWN0aXZlIGFuZCBvcGVuLCBkb24ndCBzaG93IG91dGxpbmVcbi5idG4tZ3JvdXAgLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmUsXG4uYnRuLWdyb3VwLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIG91dGxpbmU6IDA7XG59XG5cblxuLy8gU2l6aW5nXG4vL1xuLy8gUmVtaXggdGhlIGRlZmF1bHQgYnV0dG9uIHNpemluZyBjbGFzc2VzIGludG8gbmV3IG9uZXMgZm9yIGVhc2llciBtYW5pcHVsYXRpb24uXG5cbi5idG4tZ3JvdXAteHMgPiAuYnRuIHsgQGV4dGVuZCAuYnRuLXhzOyB9XG4uYnRuLWdyb3VwLXNtID4gLmJ0biB7IEBleHRlbmQgLmJ0bi1zbTsgfVxuLmJ0bi1ncm91cC1sZyA+IC5idG4geyBAZXh0ZW5kIC5idG4tbGc7IH1cblxuXG4vLyBTcGxpdCBidXR0b24gZHJvcGRvd25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEdpdmUgdGhlIGxpbmUgYmV0d2VlbiBidXR0b25zIHNvbWUgZGVwdGhcbi5idG4tZ3JvdXAgPiAuYnRuICsgLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG59XG4uYnRuLWdyb3VwID4gLmJ0bi1sZyArIC5kcm9wZG93bi10b2dnbGUge1xuICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEycHg7XG59XG5cbi8vIFRoZSBjbGlja2FibGUgYnV0dG9uIGZvciB0b2dnbGluZyB0aGUgbWVudVxuLy8gUmVtb3ZlIHRoZSBncmFkaWVudCBhbmQgc2V0IHRoZSBzYW1lIGluc2V0IHNoYWRvdyBhcyB0aGUgOmFjdGl2ZSBzdGF0ZVxuLmJ0bi1ncm91cC5vcGVuIC5kcm9wZG93bi10b2dnbGUge1xuICBAaW5jbHVkZSBib3gtc2hhZG93KGluc2V0IDAgM3B4IDVweCByZ2JhKDAsMCwwLC4xMjUpKTtcblxuICAvLyBTaG93IG5vIHNoYWRvdyBmb3IgYC5idG4tbGlua2Agc2luY2UgaXQgaGFzIG5vIG90aGVyIGJ1dHRvbiBzdHlsZXMuXG4gICYuYnRuLWxpbmsge1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3cobm9uZSk7XG4gIH1cbn1cblxuXG4vLyBSZXBvc2l0aW9uIHRoZSBjYXJldFxuLmJ0biAuY2FyZXQge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbi8vIENhcmV0cyBpbiBvdGhlciBidXR0b24gc2l6ZXNcbi5idG4tbGcgLmNhcmV0IHtcbiAgYm9yZGVyLXdpZHRoOiAkY2FyZXQtd2lkdGgtbGFyZ2UgJGNhcmV0LXdpZHRoLWxhcmdlIDA7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG59XG4vLyBVcHNpZGUgZG93biBjYXJldHMgZm9yIC5kcm9wdXBcbi5kcm9wdXAgLmJ0bi1sZyAuY2FyZXQge1xuICBib3JkZXItd2lkdGg6IDAgJGNhcmV0LXdpZHRoLWxhcmdlICRjYXJldC13aWR0aC1sYXJnZTtcbn1cblxuXG4vLyBWZXJ0aWNhbCBidXR0b24gZ3JvdXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5idG4tZ3JvdXAtdmVydGljYWwge1xuICA+IC5idG4sXG4gID4gLmJ0bi1ncm91cCxcbiAgPiAuYnRuLWdyb3VwID4gLmJ0biB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gQ2xlYXIgZmxvYXRzIHNvIGRyb3Bkb3duIG1lbnVzIGNhbiBiZSBwcm9wZXJseSBwbGFjZWRcbiAgPiAuYnRuLWdyb3VwIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICA+IC5idG4ge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgPiAuYnRuICsgLmJ0bixcbiAgPiAuYnRuICsgLmJ0bi1ncm91cCxcbiAgPiAuYnRuLWdyb3VwICsgLmJ0bixcbiAgPiAuYnRuLWdyb3VwICsgLmJ0bi1ncm91cCB7XG4gICAgbWFyZ2luLXRvcDogLTFweDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0biB7XG4gICY6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxuICAmOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkYnRuLWJvcmRlci1yYWRpdXMtYmFzZTtcbiAgICBAaW5jbHVkZSBib3JkZXItYm90dG9tLXJhZGl1cygwKTtcbiAgfVxuICAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRidG4tYm9yZGVyLXJhZGl1cy1iYXNlO1xuICAgIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKDApO1xuICB9XG59XG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpID4gLmJ0biB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgPiAuYnRuOmxhc3QtY2hpbGQsXG4gID4gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1yYWRpdXMoMCk7XG4gIH1cbn1cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuOmZpcnN0LWNoaWxkIHtcbiAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoMCk7XG59XG5cblxuLy8gSnVzdGlmaWVkIGJ1dHRvbiBncm91cHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmJ0bi1ncm91cC1qdXN0aWZpZWQge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG4gID4gLmJ0bixcbiAgPiAuYnRuLWdyb3VwIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHdpZHRoOiAxJTtcbiAgfVxuICA+IC5idG4tZ3JvdXAgLmJ0biB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICA+IC5idG4tZ3JvdXAgLmRyb3Bkb3duLW1lbnUge1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbn1cblxuXG4vLyBDaGVja2JveCBhbmQgcmFkaW8gb3B0aW9uc1xuLy9cbi8vIEluIG9yZGVyIHRvIHN1cHBvcnQgdGhlIGJyb3dzZXIncyBmb3JtIHZhbGlkYXRpb24gZmVlZGJhY2ssIHBvd2VyZWQgYnkgdGhlXG4vLyBgcmVxdWlyZWRgIGF0dHJpYnV0ZSwgd2UgaGF2ZSB0byBcImhpZGVcIiB0aGUgaW5wdXRzIHZpYSBgY2xpcGAuIFdlIGNhbm5vdCB1c2Vcbi8vIGBkaXNwbGF5OiBub25lO2Agb3IgYHZpc2liaWxpdHk6IGhpZGRlbjtgIGFzIHRoYXQgYWxzbyBoaWRlcyB0aGUgcG9wb3Zlci5cbi8vIFNpbXBseSB2aXN1YWxseSBoaWRpbmcgdGhlIGlucHV0cyB2aWEgYG9wYWNpdHlgIHdvdWxkIGxlYXZlIHRoZW0gY2xpY2thYmxlIGluXG4vLyBjZXJ0YWluIGNhc2VzIHdoaWNoIGlzIHByZXZlbnRlZCBieSB1c2luZyBgY2xpcGAgYW5kIGBwb2ludGVyLWV2ZW50c2AuXG4vLyBUaGlzIHdheSwgd2UgZW5zdXJlIGEgRE9NIGVsZW1lbnQgaXMgdmlzaWJsZSB0byBwb3NpdGlvbiB0aGUgcG9wb3ZlciBmcm9tLlxuLy9cbi8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvcHVsbC8xMjc5NCBhbmRcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9wdWxsLzE0NTU5IGZvciBtb3JlIGluZm9ybWF0aW9uLlxuXG5bZGF0YS10b2dnbGU9XCJidXR0b25zXCJdIHtcbiAgPiAuYnRuLFxuICA+IC5idG4tZ3JvdXAgPiAuYnRuIHtcbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGNsaXA6IHJlY3QoMCwwLDAsMCk7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFNpbmdsZSBzaWRlIGJvcmRlci1yYWRpdXNcblxuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpdXMpIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG4gICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xufVxuQG1peGluIGJvcmRlci1yaWdodC1yYWRpdXMoJHJhZGl1cykge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG59XG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGl1cykge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG59XG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpdXMpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGl1cztcbiAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGl1cztcbn1cbiIsIi8vXG4vLyBJbnB1dCBncm91cHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEJhc2Ugc3R5bGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uaW5wdXQtZ3JvdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIEZvciBkcm9wZG93bnNcbiAgZGlzcGxheTogdGFibGU7XG4gIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7IC8vIHByZXZlbnQgaW5wdXQgZ3JvdXBzIGZyb20gaW5oZXJpdGluZyBib3JkZXIgc3R5bGVzIGZyb20gdGFibGUgY2VsbHMgd2hlbiBwbGFjZWQgd2l0aGluIGEgdGFibGVcblxuICAvLyBVbmRvIHBhZGRpbmcgYW5kIGZsb2F0IG9mIGdyaWQgY2xhc3Nlc1xuICAmW2NsYXNzKj1cImNvbC1cIl0ge1xuICAgIGZsb2F0OiBub25lO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG5cbiAgLmZvcm0tY29udHJvbCB7XG4gICAgLy8gRW5zdXJlIHRoYXQgdGhlIGlucHV0IGlzIGFsd2F5cyBhYm92ZSB0aGUgKmFwcGVuZGVkKiBhZGRvbiBidXR0b24gZm9yXG4gICAgLy8gcHJvcGVyIGJvcmRlciBjb2xvcnMuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG5cbiAgICAvLyBJRTkgZnViYXJzIHRoZSBwbGFjZWhvbGRlciBhdHRyaWJ1dGUgaW4gdGV4dCBpbnB1dHMgYW5kIHRoZSBhcnJvd3Mgb25cbiAgICAvLyBzZWxlY3QgZWxlbWVudHMgaW4gaW5wdXQgZ3JvdXBzLiBUbyBmaXggaXQsIHdlIGZsb2F0IHRoZSBpbnB1dC4gRGV0YWlsczpcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzExNTYxI2lzc3VlY29tbWVudC0yODkzNjg1NVxuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLyBTaXppbmcgb3B0aW9uc1xuLy9cbi8vIFJlbWl4IHRoZSBkZWZhdWx0IGZvcm0gY29udHJvbCBzaXppbmcgY2xhc3NlcyBpbnRvIG5ldyBvbmVzIGZvciBlYXNpZXJcbi8vIG1hbmlwdWxhdGlvbi5cblxuLmlucHV0LWdyb3VwLWxnID4gLmZvcm0tY29udHJvbCxcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1hZGRvbixcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1idG4gPiAuYnRuIHtcbiAgQGV4dGVuZCAuaW5wdXQtbGc7XG59XG4uaW5wdXQtZ3JvdXAtc20gPiAuZm9ybS1jb250cm9sLFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWFkZG9uLFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWJ0biA+IC5idG4ge1xuICBAZXh0ZW5kIC5pbnB1dC1zbTtcbn1cblxuXG4vLyBEaXNwbGF5IGFzIHRhYmxlLWNlbGxcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5pbnB1dC1ncm91cC1hZGRvbixcbi5pbnB1dC1ncm91cC1idG4sXG4uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbCB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cbiAgJjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG4vLyBBZGRvbiBhbmQgYWRkb24gd3JhcHBlciBmb3IgYnV0dG9uc1xuLmlucHV0LWdyb3VwLWFkZG9uLFxuLmlucHV0LWdyb3VwLWJ0biB7XG4gIHdpZHRoOiAxJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgLy8gTWF0Y2ggdGhlIGlucHV0c1xufVxuXG4vLyBUZXh0IGlucHV0IGdyb3Vwc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmlucHV0LWdyb3VwLWFkZG9uIHtcbiAgcGFkZGluZzogJHBhZGRpbmctYmFzZS12ZXJ0aWNhbCAkcGFkZGluZy1iYXNlLWhvcml6b250YWw7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtZ3JvdXAtYWRkb24tYmc7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRpbnB1dC1ncm91cC1hZGRvbi1ib3JkZXItY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWJhc2U7XG5cbiAgLy8gU2l6aW5nXG4gICYuaW5wdXQtc20ge1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nLXNtYWxsLXZlcnRpY2FsICRwYWRkaW5nLXNtYWxsLWhvcml6b250YWw7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLXNtYWxsO1xuICB9XG4gICYuaW5wdXQtbGcge1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nLWxhcmdlLXZlcnRpY2FsICRwYWRkaW5nLWxhcmdlLWhvcml6b250YWw7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWxhcmdlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWxhcmdlO1xuICB9XG5cbiAgLy8gTnVrZSBkZWZhdWx0IG1hcmdpbnMgZnJvbSBjaGVja2JveGVzIGFuZCByYWRpb3MgdG8gdmVydGljYWxseSBjZW50ZXIgd2l0aGluLlxuICBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4gIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuXG4vLyBSZXNldCByb3VuZGVkIGNvcm5lcnNcbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOmZpcnN0LWNoaWxkLFxuLmlucHV0LWdyb3VwLWFkZG9uOmZpcnN0LWNoaWxkLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bi1ncm91cCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmRyb3Bkb3duLXRvZ2dsZSxcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG46bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSksXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuLWdyb3VwOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuIHtcbiAgQGluY2x1ZGUgYm9yZGVyLXJpZ2h0LXJhZGl1cygwKTtcbn1cbi5pbnB1dC1ncm91cC1hZGRvbjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yaWdodDogMDtcbn1cbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOmxhc3QtY2hpbGQsXG4uaW5wdXQtZ3JvdXAtYWRkb246bGFzdC1jaGlsZCxcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuLWdyb3VwID4gLmJ0bixcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5kcm9wZG93bi10b2dnbGUsXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bjpub3QoOmZpcnN0LWNoaWxkKSxcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0biB7XG4gIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygwKTtcbn1cbi5pbnB1dC1ncm91cC1hZGRvbjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IDA7XG59XG5cbi8vIEJ1dHRvbiBpbnB1dCBncm91cHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5pbnB1dC1ncm91cC1idG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8vIEphbmtpbHkgcHJldmVudCBpbnB1dCBidXR0b24gZ3JvdXBzIGZyb20gd3JhcHBpbmcgd2l0aCBgd2hpdGUtc3BhY2VgIGFuZFxuICAvLyBgZm9udC1zaXplYCBpbiBjb21iaW5hdGlvbiB3aXRoIGBpbmxpbmUtYmxvY2tgIG9uIGJ1dHRvbnMuXG4gIGZvbnQtc2l6ZTogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAvLyBOZWdhdGl2ZSBtYXJnaW4gZm9yIHNwYWNpbmcsIHBvc2l0aW9uIGZvciBicmluZ2luZyBob3ZlcmVkL2ZvY3VzZWQvYWN0aXZlZFxuICAvLyBlbGVtZW50IGFib3ZlIHRoZSBzaWJsaW5ncy5cbiAgPiAuYnRuIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgKyAuYnRuIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICAgIH1cbiAgICAvLyBCcmluZyB0aGUgXCJhY3RpdmVcIiBidXR0b24gdG8gdGhlIGZyb250XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgfVxuICB9XG5cbiAgLy8gTmVnYXRpdmUgbWFyZ2luIHRvIG9ubHkgaGF2ZSBhIDFweCBib3JkZXIgYmV0d2VlbiB0aGUgdHdvXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgID4gLmJ0bixcbiAgICA+IC5idG4tZ3JvdXAge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMXB4O1xuICAgIH1cbiAgfVxuICAmOmxhc3QtY2hpbGQge1xuICAgID4gLmJ0bixcbiAgICA+IC5idG4tZ3JvdXAge1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIE5hdnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFzZSBjbGFzc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLm5hdiB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmctbGVmdDogMDsgLy8gT3ZlcnJpZGUgZGVmYXVsdCB1bC9vbFxuICBsaXN0LXN0eWxlOiBub25lO1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcblxuICA+IGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICA+IGEge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiAkbmF2LWxpbmstcGFkZGluZztcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2LWxpbmstaG92ZXItYmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQgc3RhdGUgc2V0cyB0ZXh0IHRvIGdyYXkgYW5kIG51a2VzIGhvdmVyL3RhYiBlZmZlY3RzXG4gICAgJi5kaXNhYmxlZCA+IGEge1xuICAgICAgY29sb3I6ICRuYXYtZGlzYWJsZWQtbGluay1jb2xvcjtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJG5hdi1kaXNhYmxlZC1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjdXJzb3I6ICRjdXJzb3ItZGlzYWJsZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gT3BlbiBkcm9wZG93bnNcbiAgLm9wZW4gPiBhIHtcbiAgICAmLFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2LWxpbmstaG92ZXItYmc7XG4gICAgICBib3JkZXItY29sb3I6ICRsaW5rLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIE5hdiBkaXZpZGVycyAoZGVwcmVjYXRlZCB3aXRoIHYzLjAuMSlcbiAgLy9cbiAgLy8gVGhpcyBzaG91bGQgaGF2ZSBiZWVuIHJlbW92ZWQgaW4gdjMgd2l0aCB0aGUgZHJvcHBpbmcgb2YgYC5uYXYtbGlzdGAsIGJ1dFxuICAvLyB3ZSBtaXNzZWQgaXQuIFdlIGRvbid0IGN1cnJlbnRseSBzdXBwb3J0IHRoaXMgYW55d2hlcmUsIGJ1dCBpbiB0aGUgaW50ZXJlc3RcbiAgLy8gb2YgbWFpbnRhaW5pbmcgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBpbiBjYXNlIHlvdSB1c2UgaXQsIGl0J3MgZGVwcmVjYXRlZC5cbiAgLm5hdi1kaXZpZGVyIHtcbiAgICBAaW5jbHVkZSBuYXYtZGl2aWRlcjtcbiAgfVxuXG4gIC8vIFByZXZlbnQgSUU4IGZyb20gbWlzcGxhY2luZyBpbWdzXG4gIC8vXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9pc3N1ZXMvOTg0I2lzc3VlY29tbWVudC0zOTg1OTg5XG4gID4gbGkgPiBhID4gaW1nIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cbn1cblxuXG4vLyBUYWJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEdpdmUgdGhlIHRhYnMgc29tZXRoaW5nIHRvIHNpdCBvblxuLm5hdi10YWJzIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRuYXYtdGFicy1ib3JkZXItY29sb3I7XG4gID4gbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIC8vIE1ha2UgdGhlIGxpc3QtaXRlbXMgb3ZlcmxheSB0aGUgYm90dG9tIGJvcmRlclxuICAgIG1hcmdpbi1ib3R0b206IC0xcHg7XG5cbiAgICAvLyBBY3R1YWwgdGFicyAoYXMgbGlua3MpXG4gICAgPiBhIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMnB4O1xuICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1iYXNlICRib3JkZXItcmFkaXVzLWJhc2UgMCAwO1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJG5hdi10YWJzLWxpbmstaG92ZXItYm9yZGVyLWNvbG9yICRuYXYtdGFicy1saW5rLWhvdmVyLWJvcmRlci1jb2xvciAkbmF2LXRhYnMtYm9yZGVyLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFjdGl2ZSBzdGF0ZSwgYW5kIGl0cyA6aG92ZXIgdG8gb3ZlcnJpZGUgbm9ybWFsIDpob3ZlclxuICAgICYuYWN0aXZlID4gYSB7XG4gICAgICAmLFxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJG5hdi10YWJzLWFjdGl2ZS1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2LXRhYnMtYWN0aXZlLWxpbmstaG92ZXItYmc7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRuYXYtdGFicy1hY3RpdmUtbGluay1ob3Zlci1ib3JkZXItY29sb3I7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIHB1bGxpbmcgdGhpcyBpbiBtYWlubHkgZm9yIGxlc3Mgc2hvcnRoYW5kXG4gICYubmF2LWp1c3RpZmllZCB7XG4gICAgQGV4dGVuZCAubmF2LWp1c3RpZmllZDtcbiAgICBAZXh0ZW5kIC5uYXYtdGFicy1qdXN0aWZpZWQ7XG4gIH1cbn1cblxuXG4vLyBQaWxsc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLm5hdi1waWxscyB7XG4gID4gbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgLy8gTGlua3MgcmVuZGVyZWQgYXMgcGlsbHNcbiAgICA+IGEge1xuICAgICAgYm9yZGVyLXJhZGl1czogJG5hdi1waWxscy1ib3JkZXItcmFkaXVzO1xuICAgIH1cbiAgICArIGxpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAycHg7XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIHN0YXRlXG4gICAgJi5hY3RpdmUgPiBhIHtcbiAgICAgICYsXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkbmF2LXBpbGxzLWFjdGl2ZS1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2LXBpbGxzLWFjdGl2ZS1saW5rLWhvdmVyLWJnO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8vIFN0YWNrZWQgcGlsbHNcbi5uYXYtc3RhY2tlZCB7XG4gID4gbGkge1xuICAgIGZsb2F0OiBub25lO1xuICAgICsgbGkge1xuICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IC8vIG5vIG5lZWQgZm9yIHRoaXMgZ2FwIGJldHdlZW4gbmF2IGl0ZW1zXG4gICAgfVxuICB9XG59XG5cblxuLy8gTmF2IHZhcmlhdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEp1c3RpZmllZCBuYXYgbGlua3Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLm5hdi1qdXN0aWZpZWQge1xuICB3aWR0aDogMTAwJTtcblxuICA+IGxpIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICA+IGEge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIH1cbiAgfVxuXG4gID4gLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51IHtcbiAgICB0b3A6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikge1xuICAgID4gbGkge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgID4gYSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIE1vdmUgYm9yZGVycyB0byBhbmNob3JzIGluc3RlYWQgb2YgYm90dG9tIG9mIGxpc3Rcbi8vXG4vLyBNaXhpbiBmb3IgYWRkaW5nIG9uIHRvcCB0aGUgc2hhcmVkIGAubmF2LWp1c3RpZmllZGAgc3R5bGVzIGZvciBvdXIgdGFic1xuLm5hdi10YWJzLWp1c3RpZmllZCB7XG4gIGJvcmRlci1ib3R0b206IDA7XG5cbiAgPiBsaSA+IGEge1xuICAgIC8vIE92ZXJyaWRlIG1hcmdpbiBmcm9tIC5uYXYtdGFic1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1iYXNlO1xuICB9XG5cbiAgPiAuYWN0aXZlID4gYSxcbiAgPiAuYWN0aXZlID4gYTpob3ZlcixcbiAgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJG5hdi10YWJzLWp1c3RpZmllZC1saW5rLWJvcmRlci1jb2xvcjtcbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikge1xuICAgID4gbGkgPiBhIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbmF2LXRhYnMtanVzdGlmaWVkLWxpbmstYm9yZGVyLWNvbG9yO1xuICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtYmFzZSAkYm9yZGVyLXJhZGl1cy1iYXNlIDAgMDtcbiAgICB9XG4gICAgPiAuYWN0aXZlID4gYSxcbiAgICA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuICAgID4gLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJG5hdi10YWJzLWp1c3RpZmllZC1hY3RpdmUtbGluay1ib3JkZXItY29sb3I7XG4gICAgfVxuICB9XG59XG5cblxuLy8gVGFiYmFibGUgdGFic1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBIaWRlIHRhYmJhYmxlIHBhbmVzIHRvIHN0YXJ0LCBzaG93IHRoZW0gd2hlbiBgLmFjdGl2ZWBcbi50YWItY29udGVudCB7XG4gID4gLnRhYi1wYW5lIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gID4gLmFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuXG4vLyBEcm9wZG93bnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gU3BlY2lmaWMgZHJvcGRvd25zXG4ubmF2LXRhYnMgLmRyb3Bkb3duLW1lbnUge1xuICAvLyBtYWtlIGRyb3Bkb3duIGJvcmRlciBvdmVybGFwIHRhYiBib3JkZXJcbiAgbWFyZ2luLXRvcDogLTFweDtcbiAgLy8gUmVtb3ZlIHRoZSB0b3Agcm91bmRlZCBjb3JuZXJzIGhlcmUgc2luY2UgdGhlcmUgaXMgYSBoYXJkIGVkZ2UgYWJvdmUgdGhlIG1lbnVcbiAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoMCk7XG59XG4iLCIvL1xuLy8gTmF2YmFyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBXcmFwcGVyIGFuZCBiYXNlIGNsYXNzXG4vL1xuLy8gUHJvdmlkZSBhIHN0YXRpYyBuYXZiYXIgZnJvbSB3aGljaCB3ZSBleHBhbmQgdG8gY3JlYXRlIGZ1bGwtd2lkdGgsIGZpeGVkLCBhbmRcbi8vIG90aGVyIG5hdmJhciB2YXJpYXRpb25zLlxuXG4ubmF2YmFyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAkbmF2YmFyLWhlaWdodDsgLy8gRW5zdXJlIGEgbmF2YmFyIGFsd2F5cyBzaG93cyAoZS5nLiwgd2l0aG91dCBhIC5uYXZiYXItYnJhbmQgaW4gY29sbGFwc2VkIG1vZGUpXG4gIG1hcmdpbi1ib3R0b206ICRuYXZiYXItbWFyZ2luLWJvdHRvbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgLy8gUHJldmVudCBmbG9hdHMgZnJvbSBicmVha2luZyB0aGUgbmF2YmFyXG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgYm9yZGVyLXJhZGl1czogJG5hdmJhci1ib3JkZXItcmFkaXVzO1xuICB9XG59XG5cblxuLy8gTmF2YmFyIGhlYWRpbmdcbi8vXG4vLyBHcm91cHMgYC5uYXZiYXItYnJhbmRgIGFuZCBgLm5hdmJhci10b2dnbGVgIGludG8gYSBzaW5nbGUgY29tcG9uZW50IGZvciBlYXN5XG4vLyBzdHlsaW5nIG9mIHJlc3BvbnNpdmUgYXNwZWN0cy5cblxuLm5hdmJhci1oZWFkZXIge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogJGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG59XG5cblxuLy8gTmF2YmFyIGNvbGxhcHNlIChib2R5KVxuLy9cbi8vIEdyb3VwIHlvdXIgbmF2YmFyIGNvbnRlbnQgaW50byB0aGlzIGZvciBlYXN5IGNvbGxhcHNpbmcgYW5kIGV4cGFuZGluZyBhY3Jvc3Ncbi8vIHZhcmlvdXMgZGV2aWNlIHNpemVzLiBCeSBkZWZhdWx0LCB0aGlzIGNvbnRlbnQgaXMgY29sbGFwc2VkIHdoZW4gPDc2OHB4LCBidXRcbi8vIHdpbGwgZXhwYW5kIHBhc3QgdGhhdCBmb3IgYSBob3Jpem9udGFsIGRpc3BsYXkuXG4vL1xuLy8gVG8gc3RhcnQgKG9uIG1vYmlsZSBkZXZpY2VzKSB0aGUgbmF2YmFyIGxpbmtzLCBmb3JtcywgYW5kIGJ1dHRvbnMgYXJlIHN0YWNrZWRcbi8vIHZlcnRpY2FsbHkgYW5kIGluY2x1ZGUgYSBgbWF4LWhlaWdodGAgdG8gb3ZlcmZsb3cgaW4gY2FzZSB5b3UgaGF2ZSB0b28gbXVjaFxuLy8gY29udGVudCBmb3IgdGhlIHVzZXIncyB2aWV3cG9ydC5cblxuLm5hdmJhci1jb2xsYXBzZSB7XG4gIG92ZXJmbG93LXg6IHZpc2libGU7XG4gIHBhZGRpbmctcmlnaHQ6ICRuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICBwYWRkaW5nLWxlZnQ6ICAkbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LDI1NSwyNTUsLjEpO1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuXG4gICYuaW4ge1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogJGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGJvcmRlci10b3A6IDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcblxuICAgICYuY29sbGFwc2Uge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7IC8vIE92ZXJyaWRlIGRlZmF1bHQgc2V0dGluZ1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmLmluIHtcbiAgICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLy8gVW5kbyB0aGUgY29sbGFwc2Ugc2lkZSBwYWRkaW5nIGZvciBuYXZiYXJzIHdpdGggY29udGFpbmVycyB0byBlbnN1cmVcbiAgICAvLyBhbGlnbm1lbnQgb2YgcmlnaHQtYWxpZ25lZCBjb250ZW50cy5cbiAgICAubmF2YmFyLWZpeGVkLXRvcCAmLFxuICAgIC5uYXZiYXItc3RhdGljLXRvcCAmLFxuICAgIC5uYXZiYXItZml4ZWQtYm90dG9tICYge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG4gIH1cbn1cblxuLm5hdmJhci1maXhlZC10b3AsXG4ubmF2YmFyLWZpeGVkLWJvdHRvbSB7XG4gIC5uYXZiYXItY29sbGFwc2Uge1xuICAgIG1heC1oZWlnaHQ6ICRuYXZiYXItY29sbGFwc2UtbWF4LWhlaWdodDtcblxuICAgIEBtZWRpYSAobWF4LWRldmljZS13aWR0aDogJHNjcmVlbi14cy1taW4pIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgICAgbWF4LWhlaWdodDogMjAwcHg7XG4gICAgfVxuICB9XG59XG5cblxuLy8gQm90aCBuYXZiYXIgaGVhZGVyIGFuZCBjb2xsYXBzZVxuLy9cbi8vIFdoZW4gYSBjb250YWluZXIgaXMgcHJlc2VudCwgY2hhbmdlIHRoZSBiZWhhdmlvciBvZiB0aGUgaGVhZGVyIGFuZCBjb2xsYXBzZS5cblxuLmNvbnRhaW5lcixcbi5jb250YWluZXItZmx1aWQge1xuICA+IC5uYXZiYXItaGVhZGVyLFxuICA+IC5uYXZiYXItY29sbGFwc2Uge1xuICAgIG1hcmdpbi1yaWdodDogLSRuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIG1hcmdpbi1sZWZ0OiAgLSRuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAgMDtcbiAgICB9XG4gIH1cbn1cblxuXG4vL1xuLy8gTmF2YmFyIGFsaWdubWVudCBvcHRpb25zXG4vL1xuLy8gRGlzcGxheSB0aGUgbmF2YmFyIGFjcm9zcyB0aGUgZW50aXJldHkgb2YgdGhlIHBhZ2Ugb3IgZml4ZWQgaXQgdG8gdGhlIHRvcCBvclxuLy8gYm90dG9tIG9mIHRoZSBwYWdlLlxuXG4vLyBTdGF0aWMgdG9wICh1bmZpeGVkLCBidXQgMTAwJSB3aWRlKSBuYXZiYXJcbi5uYXZiYXItc3RhdGljLXRvcCB7XG4gIHotaW5kZXg6ICR6aW5kZXgtbmF2YmFyO1xuICBib3JkZXItd2lkdGg6IDAgMCAxcHg7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6ICRncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG5cbi8vIEZpeCB0aGUgdG9wL2JvdHRvbSBuYXZiYXJzIHdoZW4gc2NyZWVuIHJlYWwgZXN0YXRlIHN1cHBvcnRzIGl0XG4ubmF2YmFyLWZpeGVkLXRvcCxcbi5uYXZiYXItZml4ZWQtYm90dG9tIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICByaWdodDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogJHppbmRleC1uYXZiYXItZml4ZWQ7XG5cbiAgLy8gVW5kbyB0aGUgcm91bmRlZCBjb3JuZXJzXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuLm5hdmJhci1maXhlZC10b3Age1xuICB0b3A6IDA7XG4gIGJvcmRlci13aWR0aDogMCAwIDFweDtcbn1cbi5uYXZiYXItZml4ZWQtYm90dG9tIHtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwOyAvLyBvdmVycmlkZSAubmF2YmFyIGRlZmF1bHRzXG4gIGJvcmRlci13aWR0aDogMXB4IDAgMDtcbn1cblxuXG4vLyBCcmFuZC9wcm9qZWN0IG5hbWVcblxuLm5hdmJhci1icmFuZCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nOiAkbmF2YmFyLXBhZGRpbmctdmVydGljYWwgJG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1sYXJnZTtcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgaGVpZ2h0OiAkbmF2YmFyLWhlaWdodDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICA+IGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogJGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgIC5uYXZiYXIgPiAuY29udGFpbmVyICYsXG4gICAgLm5hdmJhciA+IC5jb250YWluZXItZmx1aWQgJiB7XG4gICAgICBtYXJnaW4tbGVmdDogLSRuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIE5hdmJhciB0b2dnbGVcbi8vXG4vLyBDdXN0b20gYnV0dG9uIGZvciB0b2dnbGluZyB0aGUgYC5uYXZiYXItY29sbGFwc2VgLCBwb3dlcmVkIGJ5IHRoZSBjb2xsYXBzZVxuLy8gSmF2YVNjcmlwdCBwbHVnaW4uXG5cbi5uYXZiYXItdG9nZ2xlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1yaWdodDogJG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gIHBhZGRpbmc6IDlweCAxMHB4O1xuICBAaW5jbHVkZSBuYXZiYXItdmVydGljYWwtYWxpZ24oMzRweCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyAvLyBSZXNldCB1bnVzdWFsIEZpcmVmb3gtb24tQW5kcm9pZCBkZWZhdWx0IHN0eWxlOyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcy9pc3N1ZXMvMjE0XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1iYXNlO1xuXG4gIC8vIFdlIHJlbW92ZSB0aGUgYG91dGxpbmVgIGhlcmUsIGJ1dCBsYXRlciBjb21wZW5zYXRlIGJ5IGF0dGFjaGluZyBgOmhvdmVyYFxuICAvLyBzdHlsZXMgdG8gYDpmb2N1c2AuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAvLyBCYXJzXG4gIC5pY29uLWJhciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDIycHg7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYm9yZGVyLXJhZGl1czogMXB4O1xuICB9XG4gIC5pY29uLWJhciArIC5pY29uLWJhciB7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICB9XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6ICRncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cblxuLy8gTmF2YmFyIG5hdiBsaW5rc1xuLy9cbi8vIEJ1aWxkcyBvbiB0b3Agb2YgdGhlIGAubmF2YCBjb21wb25lbnRzIHdpdGggaXRzIG93biBtb2RpZmllciBjbGFzcyB0byBtYWtlXG4vLyB0aGUgbmF2IHRoZSBmdWxsIGhlaWdodCBvZiB0aGUgaG9yaXpvbnRhbCBuYXYgKGFib3ZlIDc2OHB4KS5cblxuLm5hdmJhci1uYXYge1xuICBtYXJnaW46ICgkbmF2YmFyLXBhZGRpbmctdmVydGljYWwgLyAyKSAoLSRuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsKTtcblxuICA+IGxpID4gYSB7XG4gICAgcGFkZGluZy10b3A6ICAgIDEwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgfVxuXG4gIEBtZWRpYSAobWF4LXdpZHRoOiAkZ3JpZC1mbG9hdC1icmVha3BvaW50LW1heCkge1xuICAgIC8vIERyb3Bkb3ducyBnZXQgY3VzdG9tIGRpc3BsYXkgd2hlbiBjb2xsYXBzZWRcbiAgICAub3BlbiAuZHJvcGRvd24tbWVudSB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICA+IGxpID4gYSxcbiAgICAgIC5kcm9wZG93bi1oZWFkZXIge1xuICAgICAgICBwYWRkaW5nOiA1cHggMTVweCA1cHggMjVweDtcbiAgICAgIH1cbiAgICAgID4gbGkgPiBhIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFVuY29sbGFwc2UgdGhlIG5hdlxuICBAbWVkaWEgKG1pbi13aWR0aDogJGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogMDtcblxuICAgID4gbGkge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICA+IGEge1xuICAgICAgICBwYWRkaW5nLXRvcDogICAgJG5hdmJhci1wYWRkaW5nLXZlcnRpY2FsO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJG5hdmJhci1wYWRkaW5nLXZlcnRpY2FsO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8vIE5hdmJhciBmb3JtXG4vL1xuLy8gRXh0ZW5zaW9uIG9mIHRoZSBgLmZvcm0taW5saW5lYCB3aXRoIHNvbWUgZXh0cmEgZmxhdm9yIGZvciBvcHRpbXVtIGRpc3BsYXkgaW5cbi8vIG91ciBuYXZiYXJzLlxuXG4ubmF2YmFyLWZvcm0ge1xuICBtYXJnaW4tbGVmdDogLSRuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICBtYXJnaW4tcmlnaHQ6IC0kbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgcGFkZGluZzogMTBweCAkbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICRzaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuMSksIDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuMSk7XG4gIEBpbmNsdWRlIGJveC1zaGFkb3coJHNoYWRvdyk7XG5cbiAgLy8gTWl4aW4gYmVoYXZpb3IgZm9yIG9wdGltdW0gZGlzcGxheVxuICBAaW5jbHVkZSBmb3JtLWlubGluZTtcblxuICAuZm9ybS1ncm91cCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRncmlkLWZsb2F0LWJyZWFrcG9pbnQtbWF4KSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVmVydGljYWxseSBjZW50ZXIgaW4gZXhwYW5kZWQsIGhvcml6b250YWwgbmF2YmFyXG4gIEBpbmNsdWRlIG5hdmJhci12ZXJ0aWNhbC1hbGlnbigkaW5wdXQtaGVpZ2h0LWJhc2UpO1xuXG4gIC8vIFVuZG8gMTAwJSB3aWR0aCBmb3IgcHVsbCBjbGFzc2VzXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KG5vbmUpO1xuICB9XG59XG5cblxuLy8gRHJvcGRvd24gbWVudXNcblxuLy8gTWVudSBwb3NpdGlvbiBhbmQgbWVudSBjYXJldHNcbi5uYXZiYXItbmF2ID4gbGkgPiAuZHJvcGRvd24tbWVudSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKDApO1xufVxuLy8gTWVudSBwb3NpdGlvbiBhbmQgbWVudSBjYXJldCBzdXBwb3J0IGZvciBkcm9wdXBzIHZpYSBleHRyYSBkcm9wdXAgY2xhc3Ncbi5uYXZiYXItZml4ZWQtYm90dG9tIC5uYXZiYXItbmF2ID4gbGkgPiAuZHJvcGRvd24tbWVudSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKCRuYXZiYXItYm9yZGVyLXJhZGl1cyk7XG4gIEBpbmNsdWRlIGJvcmRlci1ib3R0b20tcmFkaXVzKDApO1xufVxuXG5cbi8vIEJ1dHRvbnMgaW4gbmF2YmFyc1xuLy9cbi8vIFZlcnRpY2FsbHkgY2VudGVyIGEgYnV0dG9uIHdpdGhpbiBhIG5hdmJhciAod2hlbiAqbm90KiBpbiBhIGZvcm0pLlxuXG4ubmF2YmFyLWJ0biB7XG4gIEBpbmNsdWRlIG5hdmJhci12ZXJ0aWNhbC1hbGlnbigkaW5wdXQtaGVpZ2h0LWJhc2UpO1xuXG4gICYuYnRuLXNtIHtcbiAgICBAaW5jbHVkZSBuYXZiYXItdmVydGljYWwtYWxpZ24oJGlucHV0LWhlaWdodC1zbWFsbCk7XG4gIH1cbiAgJi5idG4teHMge1xuICAgIEBpbmNsdWRlIG5hdmJhci12ZXJ0aWNhbC1hbGlnbigyMik7XG4gIH1cbn1cblxuXG4vLyBUZXh0IGluIG5hdmJhcnNcbi8vXG4vLyBBZGQgYSBjbGFzcyB0byBtYWtlIGFueSBlbGVtZW50IHByb3Blcmx5IGFsaWduIGl0c2VsZiB2ZXJ0aWNhbGx5IHdpdGhpbiB0aGUgbmF2YmFycy5cblxuLm5hdmJhci10ZXh0IHtcbiAgQGluY2x1ZGUgbmF2YmFyLXZlcnRpY2FsLWFsaWduKCRsaW5lLWhlaWdodC1jb21wdXRlZCk7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6ICRncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogJG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgbWFyZ2luLXJpZ2h0OiAkbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgfVxufVxuXG5cbi8vIENvbXBvbmVudCBhbGlnbm1lbnRcbi8vXG4vLyBSZXB1cnBvc2UgdGhlIHB1bGwgdXRpbGl0aWVzIGFzIHRoZWlyIG93biBuYXZiYXIgdXRpbGl0aWVzIHRvIGF2b2lkIHNwZWNpZmljaXR5XG4vLyBpc3N1ZXMgd2l0aCBwYXJlbnRzIGFuZCBjaGFpbmluZy4gT25seSBkbyB0aGlzIHdoZW4gdGhlIG5hdmJhciBpcyB1bmNvbGxhcHNlZFxuLy8gdGhvdWdoIHNvIHRoYXQgbmF2YmFyIGNvbnRlbnRzIHByb3Blcmx5IHN0YWNrIGFuZCBhbGlnbiBpbiBtb2JpbGUuXG4vL1xuLy8gRGVjbGFyZWQgYWZ0ZXIgdGhlIG5hdmJhciBjb21wb25lbnRzIHRvIGVuc3VyZSBtb3JlIHNwZWNpZmljaXR5IG9uIHRoZSBtYXJnaW5zLlxuXG5AbWVkaWEgKG1pbi13aWR0aDogJGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAubmF2YmFyLWxlZnQge1xuICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm5hdmJhci1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogLSRuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuXG4gICAgfiAubmF2YmFyLXJpZ2h0IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBBbHRlcm5hdGUgbmF2YmFyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gRGVmYXVsdCBuYXZiYXJcbi5uYXZiYXItZGVmYXVsdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRuYXZiYXItZGVmYXVsdC1iZztcbiAgYm9yZGVyLWNvbG9yOiAkbmF2YmFyLWRlZmF1bHQtYm9yZGVyO1xuXG4gIC5uYXZiYXItYnJhbmQge1xuICAgIGNvbG9yOiAkbmF2YmFyLWRlZmF1bHQtYnJhbmQtY29sb3I7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkbmF2YmFyLWRlZmF1bHQtYnJhbmQtaG92ZXItY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2YmFyLWRlZmF1bHQtYnJhbmQtaG92ZXItYmc7XG4gICAgfVxuICB9XG5cbiAgLm5hdmJhci10ZXh0IHtcbiAgICBjb2xvcjogJG5hdmJhci1kZWZhdWx0LWNvbG9yO1xuICB9XG5cbiAgLm5hdmJhci1uYXYge1xuICAgID4gbGkgPiBhIHtcbiAgICAgIGNvbG9yOiAkbmF2YmFyLWRlZmF1bHQtbGluay1jb2xvcjtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJG5hdmJhci1kZWZhdWx0LWxpbmstaG92ZXItY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXZiYXItZGVmYXVsdC1saW5rLWhvdmVyLWJnO1xuICAgICAgfVxuICAgIH1cbiAgICA+IC5hY3RpdmUgPiBhIHtcbiAgICAgICYsXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkbmF2YmFyLWRlZmF1bHQtbGluay1hY3RpdmUtY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXZiYXItZGVmYXVsdC1saW5rLWFjdGl2ZS1iZztcbiAgICAgIH1cbiAgICB9XG4gICAgPiAuZGlzYWJsZWQgPiBhIHtcbiAgICAgICYsXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkbmF2YmFyLWRlZmF1bHQtbGluay1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5hdmJhci1kZWZhdWx0LWxpbmstZGlzYWJsZWQtYmc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm5hdmJhci10b2dnbGUge1xuICAgIGJvcmRlci1jb2xvcjogJG5hdmJhci1kZWZhdWx0LXRvZ2dsZS1ib3JkZXItY29sb3I7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXZiYXItZGVmYXVsdC10b2dnbGUtaG92ZXItYmc7XG4gICAgfVxuICAgIC5pY29uLWJhciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2YmFyLWRlZmF1bHQtdG9nZ2xlLWljb24tYmFyLWJnO1xuICAgIH1cbiAgfVxuXG4gIC5uYXZiYXItY29sbGFwc2UsXG4gIC5uYXZiYXItZm9ybSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkbmF2YmFyLWRlZmF1bHQtYm9yZGVyO1xuICB9XG5cbiAgLy8gRHJvcGRvd24gbWVudSBpdGVtc1xuICAubmF2YmFyLW5hdiB7XG4gICAgLy8gUmVtb3ZlIGJhY2tncm91bmQgY29sb3IgZnJvbSBvcGVuIGRyb3Bkb3duXG4gICAgPiAub3BlbiA+IGEge1xuICAgICAgJixcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5hdmJhci1kZWZhdWx0LWxpbmstYWN0aXZlLWJnO1xuICAgICAgICBjb2xvcjogJG5hdmJhci1kZWZhdWx0LWxpbmstYWN0aXZlLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkZ3JpZC1mbG9hdC1icmVha3BvaW50LW1heCkge1xuICAgICAgLy8gRHJvcGRvd25zIGdldCBjdXN0b20gZGlzcGxheSB3aGVuIGNvbGxhcHNlZFxuICAgICAgLm9wZW4gLmRyb3Bkb3duLW1lbnUge1xuICAgICAgICA+IGxpID4gYSB7XG4gICAgICAgICAgY29sb3I6ICRuYXZiYXItZGVmYXVsdC1saW5rLWNvbG9yO1xuICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogJG5hdmJhci1kZWZhdWx0LWxpbmstaG92ZXItY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2YmFyLWRlZmF1bHQtbGluay1ob3Zlci1iZztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPiAuYWN0aXZlID4gYSB7XG4gICAgICAgICAgJixcbiAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6ICRuYXZiYXItZGVmYXVsdC1saW5rLWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXZiYXItZGVmYXVsdC1saW5rLWFjdGl2ZS1iZztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPiAuZGlzYWJsZWQgPiBhIHtcbiAgICAgICAgICAmLFxuICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogJG5hdmJhci1kZWZhdWx0LWxpbmstZGlzYWJsZWQtY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2YmFyLWRlZmF1bHQtbGluay1kaXNhYmxlZC1iZztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG4gIC8vIExpbmtzIGluIG5hdmJhcnNcbiAgLy9cbiAgLy8gQWRkIGEgY2xhc3MgdG8gZW5zdXJlIGxpbmtzIG91dHNpZGUgdGhlIG5hdmJhciBuYXYgYXJlIGNvbG9yZWQgY29ycmVjdGx5LlxuXG4gIC5uYXZiYXItbGluayB7XG4gICAgY29sb3I6ICRuYXZiYXItZGVmYXVsdC1saW5rLWNvbG9yO1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRuYXZiYXItZGVmYXVsdC1saW5rLWhvdmVyLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5idG4tbGluayB7XG4gICAgY29sb3I6ICRuYXZiYXItZGVmYXVsdC1saW5rLWNvbG9yO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJG5hdmJhci1kZWZhdWx0LWxpbmstaG92ZXItY29sb3I7XG4gICAgfVxuICAgICZbZGlzYWJsZWRdLFxuICAgIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRuYXZiYXItZGVmYXVsdC1saW5rLWRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBJbnZlcnNlIG5hdmJhclxuXG4ubmF2YmFyLWludmVyc2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2YmFyLWludmVyc2UtYmc7XG4gIGJvcmRlci1jb2xvcjogJG5hdmJhci1pbnZlcnNlLWJvcmRlcjtcblxuICAubmF2YmFyLWJyYW5kIHtcbiAgICBjb2xvcjogJG5hdmJhci1pbnZlcnNlLWJyYW5kLWNvbG9yO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJG5hdmJhci1pbnZlcnNlLWJyYW5kLWhvdmVyLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5hdmJhci1pbnZlcnNlLWJyYW5kLWhvdmVyLWJnO1xuICAgIH1cbiAgfVxuXG4gIC5uYXZiYXItdGV4dCB7XG4gICAgY29sb3I6ICRuYXZiYXItaW52ZXJzZS1jb2xvcjtcbiAgfVxuXG4gIC5uYXZiYXItbmF2IHtcbiAgICA+IGxpID4gYSB7XG4gICAgICBjb2xvcjogJG5hdmJhci1pbnZlcnNlLWxpbmstY29sb3I7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRuYXZiYXItaW52ZXJzZS1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2YmFyLWludmVyc2UtbGluay1ob3Zlci1iZztcbiAgICAgIH1cbiAgICB9XG4gICAgPiAuYWN0aXZlID4gYSB7XG4gICAgICAmLFxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJG5hdmJhci1pbnZlcnNlLWxpbmstYWN0aXZlLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2YmFyLWludmVyc2UtbGluay1hY3RpdmUtYmc7XG4gICAgICB9XG4gICAgfVxuICAgID4gLmRpc2FibGVkID4gYSB7XG4gICAgICAmLFxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJG5hdmJhci1pbnZlcnNlLWxpbmstZGlzYWJsZWQtY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXZiYXItaW52ZXJzZS1saW5rLWRpc2FibGVkLWJnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIERhcmtlbiB0aGUgcmVzcG9uc2l2ZSBuYXYgdG9nZ2xlXG4gIC5uYXZiYXItdG9nZ2xlIHtcbiAgICBib3JkZXItY29sb3I6ICRuYXZiYXItaW52ZXJzZS10b2dnbGUtYm9yZGVyLWNvbG9yO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2YmFyLWludmVyc2UtdG9nZ2xlLWhvdmVyLWJnO1xuICAgIH1cbiAgICAuaWNvbi1iYXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5hdmJhci1pbnZlcnNlLXRvZ2dsZS1pY29uLWJhci1iZztcbiAgICB9XG4gIH1cblxuICAubmF2YmFyLWNvbGxhcHNlLFxuICAubmF2YmFyLWZvcm0ge1xuICAgIGJvcmRlci1jb2xvcjogZGFya2VuKCRuYXZiYXItaW52ZXJzZS1iZywgNyUpO1xuICB9XG5cbiAgLy8gRHJvcGRvd25zXG4gIC5uYXZiYXItbmF2IHtcbiAgICA+IC5vcGVuID4gYSB7XG4gICAgICAmLFxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2YmFyLWludmVyc2UtbGluay1hY3RpdmUtYmc7XG4gICAgICAgIGNvbG9yOiAkbmF2YmFyLWludmVyc2UtbGluay1hY3RpdmUtY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRncmlkLWZsb2F0LWJyZWFrcG9pbnQtbWF4KSB7XG4gICAgICAvLyBEcm9wZG93bnMgZ2V0IGN1c3RvbSBkaXNwbGF5XG4gICAgICAub3BlbiAuZHJvcGRvd24tbWVudSB7XG4gICAgICAgID4gLmRyb3Bkb3duLWhlYWRlciB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbmF2YmFyLWludmVyc2UtYm9yZGVyO1xuICAgICAgICB9XG4gICAgICAgIC5kaXZpZGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2YmFyLWludmVyc2UtYm9yZGVyO1xuICAgICAgICB9XG4gICAgICAgID4gbGkgPiBhIHtcbiAgICAgICAgICBjb2xvcjogJG5hdmJhci1pbnZlcnNlLWxpbmstY29sb3I7XG4gICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkbmF2YmFyLWludmVyc2UtbGluay1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXZiYXItaW52ZXJzZS1saW5rLWhvdmVyLWJnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICA+IC5hY3RpdmUgPiBhIHtcbiAgICAgICAgICAmLFxuICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogJG5hdmJhci1pbnZlcnNlLWxpbmstYWN0aXZlLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5hdmJhci1pbnZlcnNlLWxpbmstYWN0aXZlLWJnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICA+IC5kaXNhYmxlZCA+IGEge1xuICAgICAgICAgICYsXG4gICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkbmF2YmFyLWludmVyc2UtbGluay1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXZiYXItaW52ZXJzZS1saW5rLWRpc2FibGVkLWJnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5uYXZiYXItbGluayB7XG4gICAgY29sb3I6ICRuYXZiYXItaW52ZXJzZS1saW5rLWNvbG9yO1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRuYXZiYXItaW52ZXJzZS1saW5rLWhvdmVyLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5idG4tbGluayB7XG4gICAgY29sb3I6ICRuYXZiYXItaW52ZXJzZS1saW5rLWNvbG9yO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJG5hdmJhci1pbnZlcnNlLWxpbmstaG92ZXItY29sb3I7XG4gICAgfVxuICAgICZbZGlzYWJsZWRdLFxuICAgIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRuYXZiYXItaW52ZXJzZS1saW5rLWRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gTmF2YmFyIHZlcnRpY2FsIGFsaWduXG4vL1xuLy8gVmVydGljYWxseSBjZW50ZXIgZWxlbWVudHMgaW4gdGhlIG5hdmJhci5cbi8vIEV4YW1wbGU6IGFuIGVsZW1lbnQgaGFzIGEgaGVpZ2h0IG9mIDMwcHgsIHNvIHdyaXRlIG91dCBgLm5hdmJhci12ZXJ0aWNhbC1hbGlnbigzMHB4KTtgIHRvIGNhbGN1bGF0ZSB0aGUgYXBwcm9wcmlhdGUgdG9wIG1hcmdpbi5cblxuQG1peGluIG5hdmJhci12ZXJ0aWNhbC1hbGlnbigkZWxlbWVudC1oZWlnaHQpIHtcbiAgbWFyZ2luLXRvcDogKCgkbmF2YmFyLWhlaWdodCAtICRlbGVtZW50LWhlaWdodCkgLyAyKTtcbiAgbWFyZ2luLWJvdHRvbTogKCgkbmF2YmFyLWhlaWdodCAtICRlbGVtZW50LWhlaWdodCkgLyAyKTtcbn1cbiIsIi8vXG4vLyBCcmVhZGNydW1ic1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4uYnJlYWRjcnVtYiB7XG4gIHBhZGRpbmc6ICRicmVhZGNydW1iLXBhZGRpbmctdmVydGljYWwgJGJyZWFkY3J1bWItcGFkZGluZy1ob3Jpem9udGFsO1xuICBtYXJnaW4tYm90dG9tOiAkbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRicmVhZGNydW1iLWJnO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1iYXNlO1xuXG4gID4gbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICsgbGk6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiI3skYnJlYWRjcnVtYi1zZXBhcmF0b3J9XFwwMGEwXCI7IC8vIFVuaWNvZGUgc3BhY2UgYWRkZWQgc2luY2UgaW5saW5lLWJsb2NrIG1lYW5zIG5vbi1jb2xsYXBzaW5nIHdoaXRlLXNwYWNlXG4gICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYi1jb2xvcjtcbiAgICB9XG4gIH1cblxuICA+IC5hY3RpdmUge1xuICAgIGNvbG9yOiAkYnJlYWRjcnVtYi1hY3RpdmUtY29sb3I7XG4gIH1cbn1cbiIsIi8vXG4vLyBQYWdpbmF0aW9uIChtdWx0aXBsZSBwYWdlcylcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ucGFnaW5hdGlvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW46ICRsaW5lLWhlaWdodC1jb21wdXRlZCAwO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1iYXNlO1xuXG4gID4gbGkge1xuICAgIGRpc3BsYXk6IGlubGluZTsgLy8gUmVtb3ZlIGxpc3Qtc3R5bGUgYW5kIGJsb2NrLWxldmVsIGRlZmF1bHRzXG4gICAgPiBhLFxuICAgID4gc3BhbiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBmbG9hdDogbGVmdDsgLy8gQ29sbGFwc2Ugd2hpdGUtc3BhY2VcbiAgICAgIHBhZGRpbmc6ICRwYWRkaW5nLWJhc2UtdmVydGljYWwgJHBhZGRpbmctYmFzZS1ob3Jpem9udGFsO1xuICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgY29sb3I6ICRwYWdpbmF0aW9uLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBhZ2luYXRpb24tYmc7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkcGFnaW5hdGlvbi1ib3JkZXI7XG4gICAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgICB9XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICA+IGEsXG4gICAgICA+IHNwYW4ge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKCRib3JkZXItcmFkaXVzLWJhc2UpO1xuICAgICAgfVxuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgPiBhLFxuICAgICAgPiBzcGFuIHtcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJpZ2h0LXJhZGl1cygkYm9yZGVyLXJhZGl1cy1iYXNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICA+IGxpID4gYSxcbiAgPiBsaSA+IHNwYW4ge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICB6LWluZGV4OiAzO1xuICAgICAgY29sb3I6ICRwYWdpbmF0aW9uLWhvdmVyLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBhZ2luYXRpb24taG92ZXItYmc7XG4gICAgICBib3JkZXItY29sb3I6ICRwYWdpbmF0aW9uLWhvdmVyLWJvcmRlcjtcbiAgICB9XG4gIH1cblxuICA+IC5hY3RpdmUgPiBhLFxuICA+IC5hY3RpdmUgPiBzcGFuIHtcbiAgICAmLFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgY29sb3I6ICRwYWdpbmF0aW9uLWFjdGl2ZS1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwYWdpbmF0aW9uLWFjdGl2ZS1iZztcbiAgICAgIGJvcmRlci1jb2xvcjogJHBhZ2luYXRpb24tYWN0aXZlLWJvcmRlcjtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG4gIH1cblxuICA+IC5kaXNhYmxlZCB7XG4gICAgPiBzcGFuLFxuICAgID4gc3Bhbjpob3ZlcixcbiAgICA+IHNwYW46Zm9jdXMsXG4gICAgPiBhLFxuICAgID4gYTpob3ZlcixcbiAgICA+IGE6Zm9jdXMge1xuICAgICAgY29sb3I6ICRwYWdpbmF0aW9uLWRpc2FibGVkLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBhZ2luYXRpb24tZGlzYWJsZWQtYmc7XG4gICAgICBib3JkZXItY29sb3I6ICRwYWdpbmF0aW9uLWRpc2FibGVkLWJvcmRlcjtcbiAgICAgIGN1cnNvcjogJGN1cnNvci1kaXNhYmxlZDtcbiAgICB9XG4gIH1cbn1cblxuLy8gU2l6aW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBMYXJnZVxuLnBhZ2luYXRpb24tbGcge1xuICBAaW5jbHVkZSBwYWdpbmF0aW9uLXNpemUoJHBhZGRpbmctbGFyZ2UtdmVydGljYWwsICRwYWRkaW5nLWxhcmdlLWhvcml6b250YWwsICRmb250LXNpemUtbGFyZ2UsICRsaW5lLWhlaWdodC1sYXJnZSwgJGJvcmRlci1yYWRpdXMtbGFyZ2UpO1xufVxuXG4vLyBTbWFsbFxuLnBhZ2luYXRpb24tc20ge1xuICBAaW5jbHVkZSBwYWdpbmF0aW9uLXNpemUoJHBhZGRpbmctc21hbGwtdmVydGljYWwsICRwYWRkaW5nLXNtYWxsLWhvcml6b250YWwsICRmb250LXNpemUtc21hbGwsICRsaW5lLWhlaWdodC1zbWFsbCwgJGJvcmRlci1yYWRpdXMtc21hbGwpO1xufVxuIiwiLy8gUGFnaW5hdGlvblxuXG5AbWl4aW4gcGFnaW5hdGlvbi1zaXplKCRwYWRkaW5nLXZlcnRpY2FsLCAkcGFkZGluZy1ob3Jpem9udGFsLCAkZm9udC1zaXplLCAkbGluZS1oZWlnaHQsICRib3JkZXItcmFkaXVzKSB7XG4gID4gbGkge1xuICAgID4gYSxcbiAgICA+IHNwYW4ge1xuICAgICAgcGFkZGluZzogJHBhZGRpbmctdmVydGljYWwgJHBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gICAgfVxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgPiBhLFxuICAgICAgPiBzcGFuIHtcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKCRib3JkZXItcmFkaXVzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgID4gYSxcbiAgICAgID4gc3BhbiB7XG4gICAgICAgIEBpbmNsdWRlIGJvcmRlci1yaWdodC1yYWRpdXMoJGJvcmRlci1yYWRpdXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIFBhZ2VyIHBhZ2luYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLnBhZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW46ICRsaW5lLWhlaWdodC1jb21wdXRlZCAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgID4gYSxcbiAgICA+IHNwYW4ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZzogNXB4IDE0cHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFnZXItYmc7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkcGFnZXItYm9yZGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogJHBhZ2VyLWJvcmRlci1yYWRpdXM7XG4gICAgfVxuXG4gICAgPiBhOmhvdmVyLFxuICAgID4gYTpmb2N1cyB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFnZXItaG92ZXItYmc7XG4gICAgfVxuICB9XG5cbiAgLm5leHQge1xuICAgID4gYSxcbiAgICA+IHNwYW4ge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5wcmV2aW91cyB7XG4gICAgPiBhLFxuICAgID4gc3BhbiB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG4gIH1cblxuICAuZGlzYWJsZWQge1xuICAgID4gYSxcbiAgICA+IGE6aG92ZXIsXG4gICAgPiBhOmZvY3VzLFxuICAgID4gc3BhbiB7XG4gICAgICBjb2xvcjogJHBhZ2VyLWRpc2FibGVkLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBhZ2VyLWJnO1xuICAgICAgY3Vyc29yOiAkY3Vyc29yLWRpc2FibGVkO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIExhYmVsc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBwYWRkaW5nOiAuMmVtIC42ZW0gLjNlbTtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICRsYWJlbC1jb2xvcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIGJvcmRlci1yYWRpdXM6IC4yNWVtO1xuXG4gIC8vIFtjb252ZXJ0ZXJdIGV4dHJhY3RlZCBhJiB0byBhLmxhYmVsXG5cbiAgLy8gRW1wdHkgbGFiZWxzIGNvbGxhcHNlIGF1dG9tYXRpY2FsbHkgKG5vdCBhdmFpbGFibGUgaW4gSUU4KVxuICAmOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gUXVpY2sgZml4IGZvciBsYWJlbHMgaW4gYnV0dG9uc1xuICAuYnRuICYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0xcHg7XG4gIH1cbn1cblxuLy8gQWRkIGhvdmVyIGVmZmVjdHMsIGJ1dCBvbmx5IGZvciBsaW5rc1xuYS5sYWJlbCB7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkbGFiZWwtbGluay1ob3Zlci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG5cbi8vIENvbG9yc1xuLy8gQ29udGV4dHVhbCB2YXJpYXRpb25zIChsaW5rZWQgbGFiZWxzIGdldCBkYXJrZXIgb24gOmhvdmVyKVxuXG4ubGFiZWwtZGVmYXVsdCB7XG4gIEBpbmNsdWRlIGxhYmVsLXZhcmlhbnQoJGxhYmVsLWRlZmF1bHQtYmcpO1xufVxuXG4ubGFiZWwtcHJpbWFyeSB7XG4gIEBpbmNsdWRlIGxhYmVsLXZhcmlhbnQoJGxhYmVsLXByaW1hcnktYmcpO1xufVxuXG4ubGFiZWwtc3VjY2VzcyB7XG4gIEBpbmNsdWRlIGxhYmVsLXZhcmlhbnQoJGxhYmVsLXN1Y2Nlc3MtYmcpO1xufVxuXG4ubGFiZWwtaW5mbyB7XG4gIEBpbmNsdWRlIGxhYmVsLXZhcmlhbnQoJGxhYmVsLWluZm8tYmcpO1xufVxuXG4ubGFiZWwtd2FybmluZyB7XG4gIEBpbmNsdWRlIGxhYmVsLXZhcmlhbnQoJGxhYmVsLXdhcm5pbmctYmcpO1xufVxuXG4ubGFiZWwtZGFuZ2VyIHtcbiAgQGluY2x1ZGUgbGFiZWwtdmFyaWFudCgkbGFiZWwtZGFuZ2VyLWJnKTtcbn1cbiIsIi8vIExhYmVsc1xuXG5AbWl4aW4gbGFiZWwtdmFyaWFudCgkY29sb3IpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuXG4gICZbaHJlZl0ge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGNvbG9yLCAxMCUpO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIEJhZGdlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBCYXNlIGNsYXNzXG4uYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi13aWR0aDogMTBweDtcbiAgcGFkZGluZzogM3B4IDdweDtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICBmb250LXdlaWdodDogJGJhZGdlLWZvbnQtd2VpZ2h0O1xuICBjb2xvcjogJGJhZGdlLWNvbG9yO1xuICBsaW5lLWhlaWdodDogJGJhZGdlLWxpbmUtaGVpZ2h0O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS1iZztcbiAgYm9yZGVyLXJhZGl1czogJGJhZGdlLWJvcmRlci1yYWRpdXM7XG5cbiAgLy8gRW1wdHkgYmFkZ2VzIGNvbGxhcHNlIGF1dG9tYXRpY2FsbHkgKG5vdCBhdmFpbGFibGUgaW4gSUU4KVxuICAmOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gUXVpY2sgZml4IGZvciBiYWRnZXMgaW4gYnV0dG9uc1xuICAuYnRuICYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0xcHg7XG4gIH1cblxuICAuYnRuLXhzICYsXG4gIC5idG4tZ3JvdXAteHMgPiAuYnRuICYge1xuICAgIHRvcDogMDtcbiAgICBwYWRkaW5nOiAxcHggNXB4O1xuICB9XG5cbiAgLy8gW2NvbnZlcnRlcl0gZXh0cmFjdGVkIGEmIHRvIGEuYmFkZ2VcblxuICAvLyBBY2NvdW50IGZvciBiYWRnZXMgaW4gbmF2c1xuICAubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSA+ICYsXG4gIC5uYXYtcGlsbHMgPiAuYWN0aXZlID4gYSA+ICYge1xuICAgIGNvbG9yOiAkYmFkZ2UtYWN0aXZlLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS1hY3RpdmUtYmc7XG4gIH1cblxuICAubGlzdC1ncm91cC1pdGVtID4gJiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG5cbiAgLmxpc3QtZ3JvdXAtaXRlbSA+ICYgKyAmIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgfVxuXG4gIC5uYXYtcGlsbHMgPiBsaSA+IGEgPiAmIHtcbiAgICBtYXJnaW4tbGVmdDogM3B4O1xuICB9XG59XG5cbi8vIEhvdmVyIHN0YXRlLCBidXQgb25seSBmb3IgbGlua3NcbmEuYmFkZ2Uge1xuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGJhZGdlLWxpbmstaG92ZXItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuIiwiLy9cbi8vIEp1bWJvdHJvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4uanVtYm90cm9uIHtcbiAgcGFkZGluZy10b3A6ICAgICRqdW1ib3Ryb24tcGFkZGluZztcbiAgcGFkZGluZy1ib3R0b206ICRqdW1ib3Ryb24tcGFkZGluZztcbiAgbWFyZ2luLWJvdHRvbTogJGp1bWJvdHJvbi1wYWRkaW5nO1xuICBjb2xvcjogJGp1bWJvdHJvbi1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGp1bWJvdHJvbi1iZztcblxuICBoMSxcbiAgLmgxIHtcbiAgICBjb2xvcjogJGp1bWJvdHJvbi1oZWFkaW5nLWNvbG9yO1xuICB9XG5cbiAgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogKCRqdW1ib3Ryb24tcGFkZGluZyAvIDIpO1xuICAgIGZvbnQtc2l6ZTogJGp1bWJvdHJvbi1mb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgfVxuXG4gID4gaHIge1xuICAgIGJvcmRlci10b3AtY29sb3I6IGRhcmtlbigkanVtYm90cm9uLWJnLCAxMCUpO1xuICB9XG5cbiAgLmNvbnRhaW5lciAmLFxuICAuY29udGFpbmVyLWZsdWlkICYge1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWxhcmdlOyAvLyBPbmx5IHJvdW5kIGNvcm5lcnMgYXQgaGlnaGVyIHJlc29sdXRpb25zIGlmIGNvbnRhaW5lZCBpbiBhIGNvbnRhaW5lclxuICB9XG5cbiAgLmNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHNjcmVlbi1zbS1taW4pIHtcbiAgICBwYWRkaW5nLXRvcDogICAgKCRqdW1ib3Ryb24tcGFkZGluZyAqIDEuNik7XG4gICAgcGFkZGluZy1ib3R0b206ICgkanVtYm90cm9uLXBhZGRpbmcgKiAxLjYpO1xuXG4gICAgLmNvbnRhaW5lciAmLFxuICAgIC5jb250YWluZXItZmx1aWQgJiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICAoJGp1bWJvdHJvbi1wYWRkaW5nICogMik7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAoJGp1bWJvdHJvbi1wYWRkaW5nICogMik7XG4gICAgfVxuXG4gICAgaDEsXG4gICAgLmgxIHtcbiAgICAgIGZvbnQtc2l6ZTogJGp1bWJvdHJvbi1oZWFkaW5nLWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBUaHVtYm5haWxzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIE1peGluIGFuZCBhZGp1c3QgdGhlIHJlZ3VsYXIgaW1hZ2UgY2xhc3Ncbi50aHVtYm5haWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogJHRodW1ibmFpbC1wYWRkaW5nO1xuICBtYXJnaW4tYm90dG9tOiAkbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYmFzZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHRodW1ibmFpbC1iZztcbiAgYm9yZGVyOiAxcHggc29saWQgJHRodW1ibmFpbC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICR0aHVtYm5haWwtYm9yZGVyLXJhZGl1cztcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbihib3JkZXIgLjJzIGVhc2UtaW4tb3V0KTtcblxuICA+IGltZyxcbiAgYSA+IGltZyB7XG4gICAgQGluY2x1ZGUgaW1nLXJlc3BvbnNpdmU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG5cbiAgLy8gW2NvbnZlcnRlcl0gZXh0cmFjdGVkIGEmOmhvdmVyLCBhJjpmb2N1cywgYSYuYWN0aXZlIHRvIGEudGh1bWJuYWlsOmhvdmVyLCBhLnRodW1ibmFpbDpmb2N1cywgYS50aHVtYm5haWwuYWN0aXZlXG5cbiAgLy8gSW1hZ2UgY2FwdGlvbnNcbiAgLmNhcHRpb24ge1xuICAgIHBhZGRpbmc6ICR0aHVtYm5haWwtY2FwdGlvbi1wYWRkaW5nO1xuICAgIGNvbG9yOiAkdGh1bWJuYWlsLWNhcHRpb24tY29sb3I7XG4gIH1cbn1cblxuLy8gQWRkIGEgaG92ZXIgc3RhdGUgZm9yIGxpbmtlZCB2ZXJzaW9ucyBvbmx5XG5hLnRodW1ibmFpbDpob3ZlcixcbmEudGh1bWJuYWlsOmZvY3VzLFxuYS50aHVtYm5haWwuYWN0aXZlIHtcbiAgYm9yZGVyLWNvbG9yOiAkbGluay1jb2xvcjtcbn1cbiIsIi8vXG4vLyBBbGVydHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFzZSBzdHlsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmFsZXJ0IHtcbiAgcGFkZGluZzogJGFsZXJ0LXBhZGRpbmc7XG4gIG1hcmdpbi1ib3R0b206ICRsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6ICRhbGVydC1ib3JkZXItcmFkaXVzO1xuXG4gIC8vIEhlYWRpbmdzIGZvciBsYXJnZXIgYWxlcnRzXG4gIGg0IHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIC8vIFNwZWNpZmllZCBmb3IgdGhlIGg0IHRvIHByZXZlbnQgY29uZmxpY3RzIG9mIGNoYW5naW5nICRoZWFkaW5ncy1jb2xvclxuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gUHJvdmlkZSBjbGFzcyBmb3IgbGlua3MgdGhhdCBtYXRjaCBhbGVydHNcbiAgLmFsZXJ0LWxpbmsge1xuICAgIGZvbnQtd2VpZ2h0OiAkYWxlcnQtbGluay1mb250LXdlaWdodDtcbiAgfVxuXG4gIC8vIEltcHJvdmUgYWxpZ25tZW50IGFuZCBzcGFjaW5nIG9mIGlubmVyIGNvbnRlbnRcbiAgPiBwLFxuICA+IHVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgPiBwICsgcCB7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xuICB9XG59XG5cbi8vIERpc21pc3NpYmxlIGFsZXJ0c1xuLy9cbi8vIEV4cGFuZCB0aGUgcmlnaHQgcGFkZGluZyBhbmQgYWNjb3VudCBmb3IgdGhlIGNsb3NlIGJ1dHRvbidzIHBvc2l0aW9uaW5nLlxuXG4uYWxlcnQtZGlzbWlzc2FibGUsIC8vIFRoZSBtaXNzcGVsbGVkIC5hbGVydC1kaXNtaXNzYWJsZSB3YXMgZGVwcmVjYXRlZCBpbiAzLjIuMC5cbi5hbGVydC1kaXNtaXNzaWJsZSB7XG4gIHBhZGRpbmctcmlnaHQ6ICgkYWxlcnQtcGFkZGluZyArIDIwKTtcblxuICAvLyBBZGp1c3QgY2xvc2UgbGluayBwb3NpdGlvblxuICAuY2xvc2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0ycHg7XG4gICAgcmlnaHQ6IC0yMXB4O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG59XG5cbi8vIEFsdGVybmF0ZSBzdHlsZXNcbi8vXG4vLyBHZW5lcmF0ZSBjb250ZXh0dWFsIG1vZGlmaWVyIGNsYXNzZXMgZm9yIGNvbG9yaXppbmcgdGhlIGFsZXJ0LlxuXG4uYWxlcnQtc3VjY2VzcyB7XG4gIEBpbmNsdWRlIGFsZXJ0LXZhcmlhbnQoJGFsZXJ0LXN1Y2Nlc3MtYmcsICRhbGVydC1zdWNjZXNzLWJvcmRlciwgJGFsZXJ0LXN1Y2Nlc3MtdGV4dCk7XG59XG5cbi5hbGVydC1pbmZvIHtcbiAgQGluY2x1ZGUgYWxlcnQtdmFyaWFudCgkYWxlcnQtaW5mby1iZywgJGFsZXJ0LWluZm8tYm9yZGVyLCAkYWxlcnQtaW5mby10ZXh0KTtcbn1cblxuLmFsZXJ0LXdhcm5pbmcge1xuICBAaW5jbHVkZSBhbGVydC12YXJpYW50KCRhbGVydC13YXJuaW5nLWJnLCAkYWxlcnQtd2FybmluZy1ib3JkZXIsICRhbGVydC13YXJuaW5nLXRleHQpO1xufVxuXG4uYWxlcnQtZGFuZ2VyIHtcbiAgQGluY2x1ZGUgYWxlcnQtdmFyaWFudCgkYWxlcnQtZGFuZ2VyLWJnLCAkYWxlcnQtZGFuZ2VyLWJvcmRlciwgJGFsZXJ0LWRhbmdlci10ZXh0KTtcbn1cbiIsIi8vIEFsZXJ0c1xuXG5AbWl4aW4gYWxlcnQtdmFyaWFudCgkYmFja2dyb3VuZCwgJGJvcmRlciwgJHRleHQtY29sb3IpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcbiAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuXG4gIGhyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBkYXJrZW4oJGJvcmRlciwgNSUpO1xuICB9XG4gIC5hbGVydC1saW5rIHtcbiAgICBjb2xvcjogZGFya2VuKCR0ZXh0LWNvbG9yLCAxMCUpO1xuICB9XG59XG4iLCIvL1xuLy8gUHJvZ3Jlc3MgYmFyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBCYXIgYW5pbWF0aW9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBXZWJLaXRcbkAtd2Via2l0LWtleWZyYW1lcyBwcm9ncmVzcy1iYXItc3RyaXBlcyB7XG4gIGZyb20gIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogNDBweCAwOyB9XG4gIHRvICAgIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwOyB9XG59XG5cbi8vIFNwZWMgYW5kIElFMTArXG5Aa2V5ZnJhbWVzIHByb2dyZXNzLWJhci1zdHJpcGVzIHtcbiAgZnJvbSAgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0MHB4IDA7IH1cbiAgdG8gICAgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7IH1cbn1cblxuXG4vLyBCYXIgaXRzZWxmXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIE91dGVyIGNvbnRhaW5lclxuLnByb2dyZXNzIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgaGVpZ2h0OiAkbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIG1hcmdpbi1ib3R0b206ICRsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByb2dyZXNzLWJnO1xuICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtYm9yZGVyLXJhZGl1cztcbiAgQGluY2x1ZGUgYm94LXNoYWRvdyhpbnNldCAwIDFweCAycHggcmdiYSgwLDAsMCwuMSkpO1xufVxuXG4vLyBCYXIgb2YgcHJvZ3Jlc3Ncbi5wcm9ncmVzcy1iYXIge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgY29sb3I6ICRwcm9ncmVzcy1iYXItY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByb2dyZXNzLWJhci1iZztcbiAgQGluY2x1ZGUgYm94LXNoYWRvdyhpbnNldCAwIC0xcHggMCByZ2JhKDAsMCwwLC4xNSkpO1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKHdpZHRoIC42cyBlYXNlKTtcbn1cblxuLy8gU3RyaXBlZCBiYXJzXG4vL1xuLy8gYC5wcm9ncmVzcy1zdHJpcGVkIC5wcm9ncmVzcy1iYXJgIGlzIGRlcHJlY2F0ZWQgYXMgb2YgdjMuMi4wIGluIGZhdm9yIG9mIHRoZVxuLy8gYC5wcm9ncmVzcy1iYXItc3RyaXBlZGAgY2xhc3MsIHdoaWNoIHlvdSBqdXN0IGFkZCB0byBhbiBleGlzdGluZ1xuLy8gYC5wcm9ncmVzcy1iYXJgLlxuLnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhcixcbi5wcm9ncmVzcy1iYXItc3RyaXBlZCB7XG4gIEBpbmNsdWRlIGdyYWRpZW50LXN0cmlwZWQ7XG4gIGJhY2tncm91bmQtc2l6ZTogNDBweCA0MHB4O1xufVxuXG4vLyBDYWxsIGFuaW1hdGlvbiBmb3IgdGhlIGFjdGl2ZSBvbmVcbi8vXG4vLyBgLnByb2dyZXNzLmFjdGl2ZSAucHJvZ3Jlc3MtYmFyYCBpcyBkZXByZWNhdGVkIGFzIG9mIHYzLjIuMCBpbiBmYXZvciBvZiB0aGVcbi8vIGAucHJvZ3Jlc3MtYmFyLmFjdGl2ZWAgYXBwcm9hY2guXG4ucHJvZ3Jlc3MuYWN0aXZlIC5wcm9ncmVzcy1iYXIsXG4ucHJvZ3Jlc3MtYmFyLmFjdGl2ZSB7XG4gIEBpbmNsdWRlIGFuaW1hdGlvbihwcm9ncmVzcy1iYXItc3RyaXBlcyAycyBsaW5lYXIgaW5maW5pdGUpO1xufVxuXG5cbi8vIFZhcmlhdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLnByb2dyZXNzLWJhci1zdWNjZXNzIHtcbiAgQGluY2x1ZGUgcHJvZ3Jlc3MtYmFyLXZhcmlhbnQoJHByb2dyZXNzLWJhci1zdWNjZXNzLWJnKTtcbn1cblxuLnByb2dyZXNzLWJhci1pbmZvIHtcbiAgQGluY2x1ZGUgcHJvZ3Jlc3MtYmFyLXZhcmlhbnQoJHByb2dyZXNzLWJhci1pbmZvLWJnKTtcbn1cblxuLnByb2dyZXNzLWJhci13YXJuaW5nIHtcbiAgQGluY2x1ZGUgcHJvZ3Jlc3MtYmFyLXZhcmlhbnQoJHByb2dyZXNzLWJhci13YXJuaW5nLWJnKTtcbn1cblxuLnByb2dyZXNzLWJhci1kYW5nZXIge1xuICBAaW5jbHVkZSBwcm9ncmVzcy1iYXItdmFyaWFudCgkcHJvZ3Jlc3MtYmFyLWRhbmdlci1iZyk7XG59XG4iLCIvLyBHcmFkaWVudHNcblxuXG5cbi8vIEhvcml6b250YWwgZ3JhZGllbnQsIGZyb20gbGVmdCB0byByaWdodFxuLy9cbi8vIENyZWF0ZXMgdHdvIGNvbG9yIHN0b3BzLCBzdGFydCBhbmQgZW5kLCBieSBzcGVjaWZ5aW5nIGEgY29sb3IgYW5kIHBvc2l0aW9uIGZvciBlYWNoIGNvbG9yIHN0b3AuXG4vLyBDb2xvciBzdG9wcyBhcmUgbm90IGF2YWlsYWJsZSBpbiBJRTkgYW5kIGJlbG93LlxuQG1peGluIGdyYWRpZW50LWhvcml6b250YWwoJHN0YXJ0LWNvbG9yOiAjNTU1LCAkZW5kLWNvbG9yOiAjMzMzLCAkc3RhcnQtcGVyY2VudDogMCUsICRlbmQtcGVyY2VudDogMTAwJSkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAkc3RhcnQtY29sb3IgJHN0YXJ0LXBlcmNlbnQsICRlbmQtY29sb3IgJGVuZC1wZXJjZW50KTsgLy8gU2FmYXJpIDUuMS02LCBDaHJvbWUgMTArXG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCAkc3RhcnQtY29sb3IgJHN0YXJ0LXBlcmNlbnQsICRlbmQtY29sb3IgJGVuZC1wZXJjZW50KTsgLy8gT3BlcmEgMTJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkc3RhcnQtY29sb3IgJHN0YXJ0LXBlcmNlbnQsICRlbmQtY29sb3IgJGVuZC1wZXJjZW50KTsgLy8gU3RhbmRhcmQsIElFMTAsIEZpcmVmb3ggMTYrLCBPcGVyYSAxMi4xMCssIFNhZmFyaSA3KywgQ2hyb21lIDI2K1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyN7aWUtaGV4LXN0cigkc3RhcnQtY29sb3IpfScsIGVuZENvbG9yc3RyPScje2llLWhleC1zdHIoJGVuZC1jb2xvcil9JywgR3JhZGllbnRUeXBlPTEpOyAvLyBJRTkgYW5kIGRvd25cbn1cblxuLy8gVmVydGljYWwgZ3JhZGllbnQsIGZyb20gdG9wIHRvIGJvdHRvbVxuLy9cbi8vIENyZWF0ZXMgdHdvIGNvbG9yIHN0b3BzLCBzdGFydCBhbmQgZW5kLCBieSBzcGVjaWZ5aW5nIGEgY29sb3IgYW5kIHBvc2l0aW9uIGZvciBlYWNoIGNvbG9yIHN0b3AuXG4vLyBDb2xvciBzdG9wcyBhcmUgbm90IGF2YWlsYWJsZSBpbiBJRTkgYW5kIGJlbG93LlxuQG1peGluIGdyYWRpZW50LXZlcnRpY2FsKCRzdGFydC1jb2xvcjogIzU1NSwgJGVuZC1jb2xvcjogIzMzMywgJHN0YXJ0LXBlcmNlbnQ6IDAlLCAkZW5kLXBlcmNlbnQ6IDEwMCUpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAkc3RhcnQtY29sb3IgJHN0YXJ0LXBlcmNlbnQsICRlbmQtY29sb3IgJGVuZC1wZXJjZW50KTsgIC8vIFNhZmFyaSA1LjEtNiwgQ2hyb21lIDEwK1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCAkc3RhcnQtY29sb3IgJHN0YXJ0LXBlcmNlbnQsICRlbmQtY29sb3IgJGVuZC1wZXJjZW50KTsgIC8vIE9wZXJhIDEyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICRzdGFydC1jb2xvciAkc3RhcnQtcGVyY2VudCwgJGVuZC1jb2xvciAkZW5kLXBlcmNlbnQpOyAvLyBTdGFuZGFyZCwgSUUxMCwgRmlyZWZveCAxNissIE9wZXJhIDEyLjEwKywgU2FmYXJpIDcrLCBDaHJvbWUgMjYrXG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI3tpZS1oZXgtc3RyKCRzdGFydC1jb2xvcil9JywgZW5kQ29sb3JzdHI9JyN7aWUtaGV4LXN0cigkZW5kLWNvbG9yKX0nLCBHcmFkaWVudFR5cGU9MCk7IC8vIElFOSBhbmQgZG93blxufVxuXG5AbWl4aW4gZ3JhZGllbnQtZGlyZWN0aW9uYWwoJHN0YXJ0LWNvbG9yOiAjNTU1LCAkZW5kLWNvbG9yOiAjMzMzLCAkZGVnOiA0NWRlZykge1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRkZWcsICRzdGFydC1jb2xvciwgJGVuZC1jb2xvcik7IC8vIFNhZmFyaSA1LjEtNiwgQ2hyb21lIDEwK1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoJGRlZywgJHN0YXJ0LWNvbG9yLCAkZW5kLWNvbG9yKTsgLy8gT3BlcmEgMTJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRkZWcsICRzdGFydC1jb2xvciwgJGVuZC1jb2xvcik7IC8vIFN0YW5kYXJkLCBJRTEwLCBGaXJlZm94IDE2KywgT3BlcmEgMTIuMTArLCBTYWZhcmkgNyssIENocm9tZSAyNitcbn1cbkBtaXhpbiBncmFkaWVudC1ob3Jpem9udGFsLXRocmVlLWNvbG9ycygkc3RhcnQtY29sb3I6ICMwMGIzZWUsICRtaWQtY29sb3I6ICM3YTQzYjYsICRjb2xvci1zdG9wOiA1MCUsICRlbmQtY29sb3I6ICNjMzMyNWYpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgJHN0YXJ0LWNvbG9yLCAkbWlkLWNvbG9yICRjb2xvci1zdG9wLCAkZW5kLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsICRzdGFydC1jb2xvciwgJG1pZC1jb2xvciAkY29sb3Itc3RvcCwgJGVuZC1jb2xvcik7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHN0YXJ0LWNvbG9yLCAkbWlkLWNvbG9yICRjb2xvci1zdG9wLCAkZW5kLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI3tpZS1oZXgtc3RyKCRzdGFydC1jb2xvcil9JywgZW5kQ29sb3JzdHI9JyN7aWUtaGV4LXN0cigkZW5kLWNvbG9yKX0nLCBHcmFkaWVudFR5cGU9MSk7IC8vIElFOSBhbmQgZG93biwgZ2V0cyBubyBjb2xvci1zdG9wIGF0IGFsbCBmb3IgcHJvcGVyIGZhbGxiYWNrXG59XG5AbWl4aW4gZ3JhZGllbnQtdmVydGljYWwtdGhyZWUtY29sb3JzKCRzdGFydC1jb2xvcjogIzAwYjNlZSwgJG1pZC1jb2xvcjogIzdhNDNiNiwgJGNvbG9yLXN0b3A6IDUwJSwgJGVuZC1jb2xvcjogI2MzMzI1Zikge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkc3RhcnQtY29sb3IsICRtaWQtY29sb3IgJGNvbG9yLXN0b3AsICRlbmQtY29sb3IpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoJHN0YXJ0LWNvbG9yLCAkbWlkLWNvbG9yICRjb2xvci1zdG9wLCAkZW5kLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRzdGFydC1jb2xvciwgJG1pZC1jb2xvciAkY29sb3Itc3RvcCwgJGVuZC1jb2xvcik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyN7aWUtaGV4LXN0cigkc3RhcnQtY29sb3IpfScsIGVuZENvbG9yc3RyPScje2llLWhleC1zdHIoJGVuZC1jb2xvcil9JywgR3JhZGllbnRUeXBlPTApOyAvLyBJRTkgYW5kIGRvd24sIGdldHMgbm8gY29sb3Itc3RvcCBhdCBhbGwgZm9yIHByb3BlciBmYWxsYmFja1xufVxuQG1peGluIGdyYWRpZW50LXJhZGlhbCgkaW5uZXItY29sb3I6ICM1NTUsICRvdXRlci1jb2xvcjogIzMzMykge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudChjaXJjbGUsICRpbm5lci1jb2xvciwgJG91dGVyLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgJGlubmVyLWNvbG9yLCAkb3V0ZXItY29sb3IpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuQG1peGluIGdyYWRpZW50LXN0cmlwZWQoJGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LC4xNSksICRhbmdsZTogNDVkZWcpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoJGFuZ2xlLCAkY29sb3IgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgJGNvbG9yIDUwJSwgJGNvbG9yIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCgkYW5nbGUsICRjb2xvciAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCAkY29sb3IgNTAlLCAkY29sb3IgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRhbmdsZSwgJGNvbG9yIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsICRjb2xvciA1MCUsICRjb2xvciA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xufVxuIiwiLy8gUHJvZ3Jlc3MgYmFyc1xuXG5AbWl4aW4gcHJvZ3Jlc3MtYmFyLXZhcmlhbnQoJGNvbG9yKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcblxuICAvLyBEZXByZWNhdGVkIHBhcmVudCBjbGFzcyByZXF1aXJlbWVudCBhcyBvZiB2My4yLjBcbiAgLnByb2dyZXNzLXN0cmlwZWQgJiB7XG4gICAgQGluY2x1ZGUgZ3JhZGllbnQtc3RyaXBlZDtcbiAgfVxufVxuIiwiLm1lZGlhIHtcbiAgLy8gUHJvcGVyIHNwYWNpbmcgYmV0d2VlbiBpbnN0YW5jZXMgb2YgLm1lZGlhXG4gIG1hcmdpbi10b3A6IDE1cHg7XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuXG4ubWVkaWEsXG4ubWVkaWEtYm9keSB7XG4gIHpvb206IDE7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5tZWRpYS1ib2R5IHtcbiAgd2lkdGg6IDEwMDAwcHg7XG59XG5cbi5tZWRpYS1vYmplY3Qge1xuICBkaXNwbGF5OiBibG9jaztcblxuICAvLyBGaXggY29sbGFwc2UgaW4gd2Via2l0IGZyb20gbWF4LXdpZHRoOiAxMDAlIGFuZCBkaXNwbGF5OiB0YWJsZS1jZWxsLlxuICAmLmltZy10aHVtYm5haWwge1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxufVxuXG4ubWVkaWEtcmlnaHQsXG4ubWVkaWEgPiAucHVsbC1yaWdodCB7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbn1cblxuLm1lZGlhLWxlZnQsXG4ubWVkaWEgPiAucHVsbC1sZWZ0IHtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbn1cblxuLm1lZGlhLWxlZnQsXG4ubWVkaWEtcmlnaHQsXG4ubWVkaWEtYm9keSB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi5tZWRpYS1taWRkbGUge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubWVkaWEtYm90dG9tIHtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cblxuLy8gUmVzZXQgbWFyZ2lucyBvbiBoZWFkaW5ncyBmb3IgdGlnaHRlciBkZWZhdWx0IHNwYWNpbmdcbi5tZWRpYS1oZWFkaW5nIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4vLyBNZWRpYSBsaXN0IHZhcmlhdGlvblxuLy9cbi8vIFVuZG8gZGVmYXVsdCB1bC9vbCBzdHlsZXNcbi5tZWRpYS1saXN0IHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuIiwiLy9cbi8vIExpc3QgZ3JvdXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEJhc2UgY2xhc3Ncbi8vXG4vLyBFYXNpbHkgdXNhYmxlIG9uIDx1bD4sIDxvbD4sIG9yIDxkaXY+LlxuXG4ubGlzdC1ncm91cCB7XG4gIC8vIE5vIG5lZWQgdG8gc2V0IGxpc3Qtc3R5bGU6IG5vbmU7IHNpbmNlIC5saXN0LWdyb3VwLWl0ZW0gaXMgYmxvY2sgbGV2ZWxcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgcGFkZGluZy1sZWZ0OiAwOyAvLyByZXNldCBwYWRkaW5nIGJlY2F1c2UgdWwgYW5kIG9sXG59XG5cblxuLy8gSW5kaXZpZHVhbCBsaXN0IGl0ZW1zXG4vL1xuLy8gVXNlIG9uIGBsaWBzIG9yIGBkaXZgcyB3aXRoaW4gdGhlIGAubGlzdC1ncm91cGAgcGFyZW50LlxuXG4ubGlzdC1ncm91cC1pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMTBweCAxNXB4O1xuICAvLyBQbGFjZSB0aGUgYm9yZGVyIG9uIHRoZSBsaXN0IGl0ZW1zIGFuZCBuZWdhdGl2ZSBtYXJnaW4gdXAgZm9yIGJldHRlciBzdHlsaW5nXG4gIG1hcmdpbi1ib3R0b206IC0xcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICRsaXN0LWdyb3VwLWJnO1xuICBib3JkZXI6IDFweCBzb2xpZCAkbGlzdC1ncm91cC1ib3JkZXI7XG5cbiAgLy8gUm91bmQgdGhlIGZpcnN0IGFuZCBsYXN0IGl0ZW1zXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKCRsaXN0LWdyb3VwLWJvcmRlci1yYWRpdXMpO1xuICB9XG4gICY6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBAaW5jbHVkZSBib3JkZXItYm90dG9tLXJhZGl1cygkbGlzdC1ncm91cC1ib3JkZXItcmFkaXVzKTtcbiAgfVxufVxuXG5cbi8vIEludGVyYWN0aXZlIGxpc3QgaXRlbXNcbi8vXG4vLyBVc2UgYW5jaG9yIG9yIGJ1dHRvbiBlbGVtZW50cyBpbnN0ZWFkIG9mIGBsaWBzIG9yIGBkaXZgcyB0byBjcmVhdGUgaW50ZXJhY3RpdmUgaXRlbXMuXG4vLyBJbmNsdWRlcyBhbiBleHRyYSBgLmFjdGl2ZWAgbW9kaWZpZXIgY2xhc3MgZm9yIHNob3dpbmcgc2VsZWN0ZWQgaXRlbXMuXG5cbmEubGlzdC1ncm91cC1pdGVtLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIGNvbG9yOiAkbGlzdC1ncm91cC1saW5rLWNvbG9yO1xuXG4gIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gICAgY29sb3I6ICRsaXN0LWdyb3VwLWxpbmstaGVhZGluZy1jb2xvcjtcbiAgfVxuXG4gIC8vIEhvdmVyIHN0YXRlXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogJGxpc3QtZ3JvdXAtbGluay1ob3Zlci1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlzdC1ncm91cC1ob3Zlci1iZztcbiAgfVxufVxuXG5idXR0b24ubGlzdC1ncm91cC1pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5saXN0LWdyb3VwLWl0ZW0ge1xuICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAmLmRpc2FibGVkLFxuICAmLmRpc2FibGVkOmhvdmVyLFxuICAmLmRpc2FibGVkOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlzdC1ncm91cC1kaXNhYmxlZC1iZztcbiAgICBjb2xvcjogJGxpc3QtZ3JvdXAtZGlzYWJsZWQtY29sb3I7XG4gICAgY3Vyc29yOiAkY3Vyc29yLWRpc2FibGVkO1xuXG4gICAgLy8gRm9yY2UgY29sb3IgdG8gaW5oZXJpdCBmb3IgY3VzdG9tIGNvbnRlbnRcbiAgICAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICAgIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCB7XG4gICAgICBjb2xvcjogJGxpc3QtZ3JvdXAtZGlzYWJsZWQtdGV4dC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBBY3RpdmUgY2xhc3Mgb24gaXRlbSBpdHNlbGYsIG5vdCBwYXJlbnRcbiAgJi5hY3RpdmUsXG4gICYuYWN0aXZlOmhvdmVyLFxuICAmLmFjdGl2ZTpmb2N1cyB7XG4gICAgei1pbmRleDogMjsgLy8gUGxhY2UgYWN0aXZlIGl0ZW1zIGFib3ZlIHRoZWlyIHNpYmxpbmdzIGZvciBwcm9wZXIgYm9yZGVyIHN0eWxpbmdcbiAgICBjb2xvcjogJGxpc3QtZ3JvdXAtYWN0aXZlLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRsaXN0LWdyb3VwLWFjdGl2ZS1iZztcbiAgICBib3JkZXItY29sb3I6ICRsaXN0LWdyb3VwLWFjdGl2ZS1ib3JkZXI7XG5cbiAgICAvLyBGb3JjZSBjb2xvciB0byBpbmhlcml0IGZvciBjdXN0b20gY29udGVudFxuICAgIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbiAgICAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcgPiBzbWFsbCxcbiAgICAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcgPiAuc21hbGwge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICAgIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCB7XG4gICAgICBjb2xvcjogJGxpc3QtZ3JvdXAtYWN0aXZlLXRleHQtY29sb3I7XG4gICAgfVxuICB9XG59XG5cblxuLy8gQ29udGV4dHVhbCB2YXJpYW50c1xuLy9cbi8vIEFkZCBtb2RpZmllciBjbGFzc2VzIHRvIGNoYW5nZSB0ZXh0IGFuZCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGluZGl2aWR1YWwgaXRlbXMuXG4vLyBPcmdhbml6YXRpb25hbGx5LCB0aGlzIG11c3QgY29tZSBhZnRlciB0aGUgYDpob3ZlcmAgc3RhdGVzLlxuXG5AaW5jbHVkZSBsaXN0LWdyb3VwLWl0ZW0tdmFyaWFudChzdWNjZXNzLCAkc3RhdGUtc3VjY2Vzcy1iZywgJHN0YXRlLXN1Y2Nlc3MtdGV4dCk7XG5AaW5jbHVkZSBsaXN0LWdyb3VwLWl0ZW0tdmFyaWFudChpbmZvLCAkc3RhdGUtaW5mby1iZywgJHN0YXRlLWluZm8tdGV4dCk7XG5AaW5jbHVkZSBsaXN0LWdyb3VwLWl0ZW0tdmFyaWFudCh3YXJuaW5nLCAkc3RhdGUtd2FybmluZy1iZywgJHN0YXRlLXdhcm5pbmctdGV4dCk7XG5AaW5jbHVkZSBsaXN0LWdyb3VwLWl0ZW0tdmFyaWFudChkYW5nZXIsICRzdGF0ZS1kYW5nZXItYmcsICRzdGF0ZS1kYW5nZXItdGV4dCk7XG5cblxuLy8gQ3VzdG9tIGNvbnRlbnQgb3B0aW9uc1xuLy9cbi8vIEV4dHJhIGNsYXNzZXMgZm9yIGNyZWF0aW5nIHdlbGwtZm9ybWF0dGVkIGNvbnRlbnQgd2l0aGluIGAubGlzdC1ncm91cC1pdGVtYHMuXG5cbi5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi5saXN0LWdyb3VwLWl0ZW0tdGV4dCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG4iLCIvLyBMaXN0IEdyb3Vwc1xuXG5AbWl4aW4gbGlzdC1ncm91cC1pdGVtLXZhcmlhbnQoJHN0YXRlLCAkYmFja2dyb3VuZCwgJGNvbG9yKSB7XG4gIC5saXN0LWdyb3VwLWl0ZW0tI3skc3RhdGV9IHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gICAgLy8gW2NvbnZlcnRlcl0gZXh0cmFjdGVkIGEmLCBidXR0b24mIHRvIGEubGlzdC1ncm91cC1pdGVtLSN7JHN0YXRlfSwgYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS0jeyRzdGF0ZX1cbiAgfVxuXG4gIGEubGlzdC1ncm91cC1pdGVtLSN7JHN0YXRlfSxcbiAgYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS0jeyRzdGF0ZX0ge1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGJhY2tncm91bmQsIDUlKTtcbiAgICB9XG4gICAgJi5hY3RpdmUsXG4gICAgJi5hY3RpdmU6aG92ZXIsXG4gICAgJi5hY3RpdmU6Zm9jdXMge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBQYW5lbHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFzZSBjbGFzc1xuLnBhbmVsIHtcbiAgbWFyZ2luLWJvdHRvbTogJGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFuZWwtYmc7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAkcGFuZWwtYm9yZGVyLXJhZGl1cztcbiAgQGluY2x1ZGUgYm94LXNoYWRvdygwIDFweCAxcHggcmdiYSgwLDAsMCwuMDUpKTtcbn1cblxuLy8gUGFuZWwgY29udGVudHNcbi5wYW5lbC1ib2R5IHtcbiAgcGFkZGluZzogJHBhbmVsLWJvZHktcGFkZGluZztcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG59XG5cbi8vIE9wdGlvbmFsIGhlYWRpbmdcbi5wYW5lbC1oZWFkaW5nIHtcbiAgcGFkZGluZzogJHBhbmVsLWhlYWRpbmctcGFkZGluZztcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cygoJHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKSk7XG5cbiAgPiAuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cbn1cblxuLy8gV2l0aGluIGhlYWRpbmcsIHN0cmlwIGFueSBgaCpgIHRhZyBvZiBpdHMgZGVmYXVsdCBtYXJnaW5zIGZvciBzcGFjaW5nLlxuLnBhbmVsLXRpdGxlIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC1zaXplOiBjZWlsKCgkZm9udC1zaXplLWJhc2UgKiAxLjEyNSkpO1xuICBjb2xvcjogaW5oZXJpdDtcblxuICA+IGEsXG4gID4gc21hbGwsXG4gID4gLnNtYWxsLFxuICA+IHNtYWxsID4gYSxcbiAgPiAuc21hbGwgPiBhIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxufVxuXG4vLyBPcHRpb25hbCBmb290ZXIgKHN0YXlzIGdyYXkgaW4gZXZlcnkgbW9kaWZpZXIgY2xhc3MpXG4ucGFuZWwtZm9vdGVyIHtcbiAgcGFkZGluZzogJHBhbmVsLWZvb3Rlci1wYWRkaW5nO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFuZWwtZm9vdGVyLWJnO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJHBhbmVsLWlubmVyLWJvcmRlcjtcbiAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1yYWRpdXMoKCRwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSkpO1xufVxuXG5cbi8vIExpc3QgZ3JvdXBzIGluIHBhbmVsc1xuLy9cbi8vIEJ5IGRlZmF1bHQsIHNwYWNlIG91dCBsaXN0IGdyb3VwIGNvbnRlbnQgZnJvbSBwYW5lbCBoZWFkaW5ncyB0byBhY2NvdW50IGZvclxuLy8gYW55IGtpbmQgb2YgY3VzdG9tIGNvbnRlbnQgYmV0d2VlbiB0aGUgdHdvLlxuXG4ucGFuZWwge1xuICA+IC5saXN0LWdyb3VwLFxuICA+IC5wYW5lbC1jb2xsYXBzZSA+IC5saXN0LWdyb3VwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgLmxpc3QtZ3JvdXAtaXRlbSB7XG4gICAgICBib3JkZXItd2lkdGg6IDFweCAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICB9XG5cbiAgICAvLyBBZGQgYm9yZGVyIHRvcCByYWRpdXMgZm9yIGZpcnN0IG9uZVxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKCgkcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBZGQgYm9yZGVyIGJvdHRvbSByYWRpdXMgZm9yIGxhc3Qgb25lXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIC5saXN0LWdyb3VwLWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIEBpbmNsdWRlIGJvcmRlci1ib3R0b20tcmFkaXVzKCgkcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5saXN0LWdyb3VwIHtcbiAgICAubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgICAgIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKDApO1xuICAgIH1cbiAgfVxufVxuLy8gQ29sbGFwc2Ugc3BhY2UgYmV0d2VlbiB3aGVuIHRoZXJlJ3Mgbm8gYWRkaXRpb25hbCBjb250ZW50LlxuLnBhbmVsLWhlYWRpbmcgKyAubGlzdC1ncm91cCB7XG4gIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gIH1cbn1cbi5saXN0LWdyb3VwICsgLnBhbmVsLWZvb3RlciB7XG4gIGJvcmRlci10b3Atd2lkdGg6IDA7XG59XG5cbi8vIFRhYmxlcyBpbiBwYW5lbHNcbi8vXG4vLyBQbGFjZSBhIG5vbi1ib3JkZXJlZCBgLnRhYmxlYCB3aXRoaW4gYSBwYW5lbCAobm90IHdpdGhpbiBhIGAucGFuZWwtYm9keWApIGFuZFxuLy8gd2F0Y2ggaXQgZ28gZnVsbCB3aWR0aC5cblxuLnBhbmVsIHtcbiAgPiAudGFibGUsXG4gID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUsXG4gID4gLnBhbmVsLWNvbGxhcHNlID4gLnRhYmxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgY2FwdGlvbiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRwYW5lbC1ib2R5LXBhZGRpbmc7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFuZWwtYm9keS1wYWRkaW5nO1xuICAgIH1cbiAgfVxuICAvLyBBZGQgYm9yZGVyIHRvcCByYWRpdXMgZm9yIGZpcnN0IG9uZVxuICA+IC50YWJsZTpmaXJzdC1jaGlsZCxcbiAgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCB7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoKCRwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSkpO1xuXG4gICAgPiB0aGVhZDpmaXJzdC1jaGlsZCxcbiAgICA+IHRib2R5OmZpcnN0LWNoaWxkIHtcbiAgICAgID4gdHI6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAoJHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKTtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICgkcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpO1xuXG4gICAgICAgIHRkOmZpcnN0LWNoaWxkLFxuICAgICAgICB0aDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogKCRwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSk7XG4gICAgICAgIH1cbiAgICAgICAgdGQ6bGFzdC1jaGlsZCxcbiAgICAgICAgdGg6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICgkcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIEFkZCBib3JkZXIgYm90dG9tIHJhZGl1cyBmb3IgbGFzdCBvbmVcbiAgPiAudGFibGU6bGFzdC1jaGlsZCxcbiAgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQge1xuICAgIEBpbmNsdWRlIGJvcmRlci1ib3R0b20tcmFkaXVzKCgkcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpKTtcblxuICAgID4gdGJvZHk6bGFzdC1jaGlsZCxcbiAgICA+IHRmb290Omxhc3QtY2hpbGQge1xuICAgICAgPiB0cjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogKCRwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSk7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAoJHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKTtcblxuICAgICAgICB0ZDpmaXJzdC1jaGlsZCxcbiAgICAgICAgdGg6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICgkcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpO1xuICAgICAgICB9XG4gICAgICAgIHRkOmxhc3QtY2hpbGQsXG4gICAgICAgIHRoOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAoJHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICA+IC5wYW5lbC1ib2R5ICsgLnRhYmxlLFxuICA+IC5wYW5lbC1ib2R5ICsgLnRhYmxlLXJlc3BvbnNpdmUsXG4gID4gLnRhYmxlICsgLnBhbmVsLWJvZHksXG4gID4gLnRhYmxlLXJlc3BvbnNpdmUgKyAucGFuZWwtYm9keSB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR0YWJsZS1ib3JkZXItY29sb3I7XG4gIH1cbiAgPiAudGFibGUgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRoLFxuICA+IC50YWJsZSA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQge1xuICAgIGJvcmRlci10b3A6IDA7XG4gIH1cbiAgPiAudGFibGUtYm9yZGVyZWQsXG4gID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQge1xuICAgIGJvcmRlcjogMDtcbiAgICA+IHRoZWFkLFxuICAgID4gdGJvZHksXG4gICAgPiB0Zm9vdCB7XG4gICAgICA+IHRyIHtcbiAgICAgICAgPiB0aDpmaXJzdC1jaGlsZCxcbiAgICAgICAgPiB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICAgICAgPiB0aDpsYXN0LWNoaWxkLFxuICAgICAgICA+IHRkOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICA+IHRoZWFkLFxuICAgID4gdGJvZHkge1xuICAgICAgPiB0cjpmaXJzdC1jaGlsZCB7XG4gICAgICAgID4gdGQsXG4gICAgICAgID4gdGgge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgPiB0Ym9keSxcbiAgICA+IHRmb290IHtcbiAgICAgID4gdHI6bGFzdC1jaGlsZCB7XG4gICAgICAgID4gdGQsXG4gICAgICAgID4gdGgge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgPiAudGFibGUtcmVzcG9uc2l2ZSB7XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuXG4vLyBDb2xsYXBzYWJsZSBwYW5lbHMgKGFrYSwgYWNjb3JkaW9uKVxuLy9cbi8vIFdyYXAgYSBzZXJpZXMgb2YgcGFuZWxzIGluIGAucGFuZWwtZ3JvdXBgIHRvIHR1cm4gdGhlbSBpbnRvIGFuIGFjY29yZGlvbiB3aXRoXG4vLyB0aGUgaGVscCBvZiBvdXIgY29sbGFwc2UgSmF2YVNjcmlwdCBwbHVnaW4uXG5cbi5wYW5lbC1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206ICRsaW5lLWhlaWdodC1jb21wdXRlZDtcblxuICAvLyBUaWdodGVuIHVwIG1hcmdpbiBzbyBpdCdzIG9ubHkgYmV0d2VlbiBwYW5lbHNcbiAgLnBhbmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRwYW5lbC1ib3JkZXItcmFkaXVzO1xuXG4gICAgKyAucGFuZWwge1xuICAgICAgbWFyZ2luLXRvcDogNXB4O1xuICAgIH1cbiAgfVxuXG4gIC5wYW5lbC1oZWFkaW5nIHtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuXG4gICAgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSxcbiAgICArIC5wYW5lbC1jb2xsYXBzZSA+IC5saXN0LWdyb3VwIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkcGFuZWwtaW5uZXItYm9yZGVyO1xuICAgIH1cbiAgfVxuXG4gIC5wYW5lbC1mb290ZXIge1xuICAgIGJvcmRlci10b3A6IDA7XG4gICAgKyAucGFuZWwtY29sbGFwc2UgLnBhbmVsLWJvZHkge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRwYW5lbC1pbm5lci1ib3JkZXI7XG4gICAgfVxuICB9XG59XG5cblxuLy8gQ29udGV4dHVhbCB2YXJpYXRpb25zXG4ucGFuZWwtZGVmYXVsdCB7XG4gIEBpbmNsdWRlIHBhbmVsLXZhcmlhbnQoJHBhbmVsLWRlZmF1bHQtYm9yZGVyLCAkcGFuZWwtZGVmYXVsdC10ZXh0LCAkcGFuZWwtZGVmYXVsdC1oZWFkaW5nLWJnLCAkcGFuZWwtZGVmYXVsdC1ib3JkZXIpO1xufVxuLnBhbmVsLXByaW1hcnkge1xuICBAaW5jbHVkZSBwYW5lbC12YXJpYW50KCRwYW5lbC1wcmltYXJ5LWJvcmRlciwgJHBhbmVsLXByaW1hcnktdGV4dCwgJHBhbmVsLXByaW1hcnktaGVhZGluZy1iZywgJHBhbmVsLXByaW1hcnktYm9yZGVyKTtcbn1cbi5wYW5lbC1zdWNjZXNzIHtcbiAgQGluY2x1ZGUgcGFuZWwtdmFyaWFudCgkcGFuZWwtc3VjY2Vzcy1ib3JkZXIsICRwYW5lbC1zdWNjZXNzLXRleHQsICRwYW5lbC1zdWNjZXNzLWhlYWRpbmctYmcsICRwYW5lbC1zdWNjZXNzLWJvcmRlcik7XG59XG4ucGFuZWwtaW5mbyB7XG4gIEBpbmNsdWRlIHBhbmVsLXZhcmlhbnQoJHBhbmVsLWluZm8tYm9yZGVyLCAkcGFuZWwtaW5mby10ZXh0LCAkcGFuZWwtaW5mby1oZWFkaW5nLWJnLCAkcGFuZWwtaW5mby1ib3JkZXIpO1xufVxuLnBhbmVsLXdhcm5pbmcge1xuICBAaW5jbHVkZSBwYW5lbC12YXJpYW50KCRwYW5lbC13YXJuaW5nLWJvcmRlciwgJHBhbmVsLXdhcm5pbmctdGV4dCwgJHBhbmVsLXdhcm5pbmctaGVhZGluZy1iZywgJHBhbmVsLXdhcm5pbmctYm9yZGVyKTtcbn1cbi5wYW5lbC1kYW5nZXIge1xuICBAaW5jbHVkZSBwYW5lbC12YXJpYW50KCRwYW5lbC1kYW5nZXItYm9yZGVyLCAkcGFuZWwtZGFuZ2VyLXRleHQsICRwYW5lbC1kYW5nZXItaGVhZGluZy1iZywgJHBhbmVsLWRhbmdlci1ib3JkZXIpO1xufVxuIiwiLy8gUGFuZWxzXG5cbkBtaXhpbiBwYW5lbC12YXJpYW50KCRib3JkZXIsICRoZWFkaW5nLXRleHQtY29sb3IsICRoZWFkaW5nLWJnLWNvbG9yLCAkaGVhZGluZy1ib3JkZXIpIHtcbiAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyO1xuXG4gICYgPiAucGFuZWwtaGVhZGluZyB7XG4gICAgY29sb3I6ICRoZWFkaW5nLXRleHQtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGhlYWRpbmctYmctY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkaGVhZGluZy1ib3JkZXI7XG5cbiAgICArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgICAgIGJvcmRlci10b3AtY29sb3I6ICRib3JkZXI7XG4gICAgfVxuICAgIC5iYWRnZSB7XG4gICAgICBjb2xvcjogJGhlYWRpbmctYmctY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGluZy10ZXh0LWNvbG9yO1xuICAgIH1cbiAgfVxuICAmID4gLnBhbmVsLWZvb3RlciB7XG4gICAgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkYm9yZGVyO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRW1iZWRzIHJlc3BvbnNpdmVcbi8vXG4vLyBDcmVkaXQ6IE5pY29sYXMgR2FsbGFnaGVyIGFuZCBTVUlUIENTUy5cblxuLmVtYmVkLXJlc3BvbnNpdmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgLmVtYmVkLXJlc3BvbnNpdmUtaXRlbSxcbiAgaWZyYW1lLFxuICBlbWJlZCxcbiAgb2JqZWN0LFxuICB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyOiAwO1xuICB9XG59XG5cbi8vIE1vZGlmaWVyIGNsYXNzIGZvciAxNjo5IGFzcGVjdCByYXRpb1xuLmVtYmVkLXJlc3BvbnNpdmUtMTZieTkge1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xufVxuXG4vLyBNb2RpZmllciBjbGFzcyBmb3IgNDozIGFzcGVjdCByYXRpb1xuLmVtYmVkLXJlc3BvbnNpdmUtNGJ5MyB7XG4gIHBhZGRpbmctYm90dG9tOiA3NSU7XG59XG4iLCIvL1xuLy8gV2VsbHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFzZSBjbGFzc1xuLndlbGwge1xuICBtaW4taGVpZ2h0OiAyMHB4O1xuICBwYWRkaW5nOiAxOXB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2VsbC1iZztcbiAgYm9yZGVyOiAxcHggc29saWQgJHdlbGwtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1iYXNlO1xuICBAaW5jbHVkZSBib3gtc2hhZG93KGluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNSkpO1xuICBibG9ja3F1b3RlIHtcbiAgICBib3JkZXItY29sb3I6ICNkZGQ7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsMCwwLC4xNSk7XG4gIH1cbn1cblxuLy8gU2l6ZXNcbi53ZWxsLWxnIHtcbiAgcGFkZGluZzogMjRweDtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbGFyZ2U7XG59XG4ud2VsbC1zbSB7XG4gIHBhZGRpbmc6IDlweDtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtc21hbGw7XG59XG4iLCIvL1xuLy8gQ2xvc2UgaWNvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLmNsb3NlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6ICgkZm9udC1zaXplLWJhc2UgKiAxLjUpO1xuICBmb250LXdlaWdodDogJGNsb3NlLWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICRjbG9zZS1jb2xvcjtcbiAgdGV4dC1zaGFkb3c6ICRjbG9zZS10ZXh0LXNoYWRvdztcbiAgQGluY2x1ZGUgb3BhY2l0eSguMik7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRjbG9zZS1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIEBpbmNsdWRlIG9wYWNpdHkoLjUpO1xuICB9XG5cbiAgLy8gW2NvbnZlcnRlcl0gZXh0cmFjdGVkIGJ1dHRvbiYgdG8gYnV0dG9uLmNsb3NlXG59XG5cbi8vIEFkZGl0aW9uYWwgcHJvcGVydGllcyBmb3IgYnV0dG9uIHZlcnNpb25cbi8vIGlPUyByZXF1aXJlcyB0aGUgYnV0dG9uIGVsZW1lbnQgaW5zdGVhZCBvZiBhbiBhbmNob3IgdGFnLlxuLy8gSWYgeW91IHdhbnQgdGhlIGFuY2hvciB2ZXJzaW9uLCBpdCByZXF1aXJlcyBgaHJlZj1cIiNcImAuXG4vLyBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvRXZlbnRzL2NsaWNrI1NhZmFyaV9Nb2JpbGVcbmJ1dHRvbi5jbG9zZSB7XG4gIHBhZGRpbmc6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuIiwiLy9cbi8vIE1vZGFsc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gLm1vZGFsLW9wZW4gICAgICAtIGJvZHkgY2xhc3MgZm9yIGtpbGxpbmcgdGhlIHNjcm9sbFxuLy8gLm1vZGFsICAgICAgICAgICAtIGNvbnRhaW5lciB0byBzY3JvbGwgd2l0aGluXG4vLyAubW9kYWwtZGlhbG9nICAgIC0gcG9zaXRpb25pbmcgc2hlbGwgZm9yIHRoZSBhY3R1YWwgbW9kYWxcbi8vIC5tb2RhbC1jb250ZW50ICAgLSBhY3R1YWwgbW9kYWwgdy8gYmcgYW5kIGNvcm5lcnMgYW5kIHNoaXRcblxuLy8gS2lsbCB0aGUgc2Nyb2xsIG9uIHRoZSBib2R5XG4ubW9kYWwtb3BlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vIENvbnRhaW5lciB0aGF0IHRoZSBtb2RhbCBzY3JvbGxzIHdpdGhpblxuLm1vZGFsIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6ICR6aW5kZXgtbW9kYWw7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcblxuICAvLyBQcmV2ZW50IENocm9tZSBvbiBXaW5kb3dzIGZyb20gYWRkaW5nIGEgZm9jdXMgb3V0bGluZS4gRm9yIGRldGFpbHMsIHNlZVxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvcHVsbC8xMDk1MS5cbiAgb3V0bGluZTogMDtcblxuICAvLyBXaGVuIGZhZGluZyBpbiB0aGUgbW9kYWwsIGFuaW1hdGUgaXQgdG8gc2xpZGUgZG93blxuICAmLmZhZGUgLm1vZGFsLWRpYWxvZyB7XG4gICAgQGluY2x1ZGUgdHJhbnNsYXRlKDAsIC0yNSUpO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tdHJhbnNmb3JtKDAuM3MgZWFzZS1vdXQpO1xuICB9XG4gICYuaW4gLm1vZGFsLWRpYWxvZyB7IEBpbmNsdWRlIHRyYW5zbGF0ZSgwLCAwKSB9XG59XG4ubW9kYWwtb3BlbiAubW9kYWwge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi8vIFNoZWxsIGRpdiB0byBwb3NpdGlvbiB0aGUgbW9kYWwgd2l0aCBib3R0b20gcGFkZGluZ1xuLm1vZGFsLWRpYWxvZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbjogMTBweDtcbn1cblxuLy8gQWN0dWFsIG1vZGFsXG4ubW9kYWwtY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJG1vZGFsLWNvbnRlbnQtYmc7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRtb2RhbC1jb250ZW50LWZhbGxiYWNrLWJvcmRlci1jb2xvcjsgLy9vbGQgYnJvd3NlcnMgZmFsbGJhY2sgKGllOCBldGMpXG4gIGJvcmRlcjogMXB4IHNvbGlkICRtb2RhbC1jb250ZW50LWJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbGFyZ2U7XG4gIEBpbmNsdWRlIGJveC1zaGFkb3coMCAzcHggOXB4IHJnYmEoMCwwLDAsLjUpKTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgLy8gUmVtb3ZlIGZvY3VzIG91dGxpbmUgZnJvbSBvcGVuZWQgbW9kYWxcbiAgb3V0bGluZTogMDtcbn1cblxuLy8gTW9kYWwgYmFja2dyb3VuZFxuLm1vZGFsLWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6ICR6aW5kZXgtbW9kYWwtYmFja2dyb3VuZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJG1vZGFsLWJhY2tkcm9wLWJnO1xuICAvLyBGYWRlIGZvciBiYWNrZHJvcFxuICAmLmZhZGUgeyBAaW5jbHVkZSBvcGFjaXR5KDApOyB9XG4gICYuaW4geyBAaW5jbHVkZSBvcGFjaXR5KCRtb2RhbC1iYWNrZHJvcC1vcGFjaXR5KTsgfVxufVxuXG4vLyBNb2RhbCBoZWFkZXJcbi8vIFRvcCBzZWN0aW9uIG9mIHRoZSBtb2RhbCB3LyB0aXRsZSBhbmQgZGlzbWlzc1xuLm1vZGFsLWhlYWRlciB7XG4gIHBhZGRpbmc6ICRtb2RhbC10aXRsZS1wYWRkaW5nO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJG1vZGFsLWhlYWRlci1ib3JkZXItY29sb3I7XG4gIG1pbi1oZWlnaHQ6ICgkbW9kYWwtdGl0bGUtcGFkZGluZyArICRtb2RhbC10aXRsZS1saW5lLWhlaWdodCk7XG59XG4vLyBDbG9zZSBpY29uXG4ubW9kYWwtaGVhZGVyIC5jbG9zZSB7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG5cbi8vIFRpdGxlIHRleHQgd2l0aGluIGhlYWRlclxuLm1vZGFsLXRpdGxlIHtcbiAgbWFyZ2luOiAwO1xuICBsaW5lLWhlaWdodDogJG1vZGFsLXRpdGxlLWxpbmUtaGVpZ2h0O1xufVxuXG4vLyBNb2RhbCBib2R5XG4vLyBXaGVyZSBhbGwgbW9kYWwgY29udGVudCByZXNpZGVzIChzaWJsaW5nIG9mIC5tb2RhbC1oZWFkZXIgYW5kIC5tb2RhbC1mb290ZXIpXG4ubW9kYWwtYm9keSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogJG1vZGFsLWlubmVyLXBhZGRpbmc7XG59XG5cbi8vIEZvb3RlciAoZm9yIGFjdGlvbnMpXG4ubW9kYWwtZm9vdGVyIHtcbiAgcGFkZGluZzogJG1vZGFsLWlubmVyLXBhZGRpbmc7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyAvLyByaWdodCBhbGlnbiBidXR0b25zXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAkbW9kYWwtZm9vdGVyLWJvcmRlci1jb2xvcjtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7IC8vIGNsZWFyIGl0IGluIGNhc2UgZm9sa3MgdXNlIC5wdWxsLSogY2xhc3NlcyBvbiBidXR0b25zXG5cbiAgLy8gUHJvcGVybHkgc3BhY2Ugb3V0IGJ1dHRvbnNcbiAgLmJ0biArIC5idG4ge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgLy8gYWNjb3VudCBmb3IgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB3aGljaCBnZXRzIHRoZSBib3R0b20gbWFyZ2luIGxpa2UgYWxsIG90aGVyIGlucHV0c1xuICB9XG4gIC8vIGJ1dCBvdmVycmlkZSB0aGF0IGZvciBidXR0b24gZ3JvdXBzXG4gIC5idG4tZ3JvdXAgLmJ0biArIC5idG4ge1xuICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICB9XG4gIC8vIGFuZCBvdmVycmlkZSBpdCBmb3IgYmxvY2sgYnV0dG9ucyBhcyB3ZWxsXG4gIC5idG4tYmxvY2sgKyAuYnRuLWJsb2NrIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuXG4vLyBNZWFzdXJlIHNjcm9sbGJhciB3aWR0aCBmb3IgcGFkZGluZyBib2R5IGR1cmluZyBtb2RhbCBzaG93L2hpZGVcbi5tb2RhbC1zY3JvbGxiYXItbWVhc3VyZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtOTk5OXB4O1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBvdmVyZmxvdzogc2Nyb2xsO1xufVxuXG4vLyBTY2FsZSB1cCB0aGUgbW9kYWxcbkBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikge1xuICAvLyBBdXRvbWF0aWNhbGx5IHNldCBtb2RhbCdzIHdpZHRoIGZvciBsYXJnZXIgdmlld3BvcnRzXG4gIC5tb2RhbC1kaWFsb2cge1xuICAgIHdpZHRoOiAkbW9kYWwtbWQ7XG4gICAgbWFyZ2luOiAzMHB4IGF1dG87XG4gIH1cbiAgLm1vZGFsLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coMCA1cHggMTVweCByZ2JhKDAsMCwwLC41KSk7XG4gIH1cblxuICAvLyBNb2RhbCBzaXplc1xuICAubW9kYWwtc20geyB3aWR0aDogJG1vZGFsLXNtOyB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLW1kLW1pbikge1xuICAubW9kYWwtbGcgeyB3aWR0aDogJG1vZGFsLWxnOyB9XG59XG4iLCIvL1xuLy8gVG9vbHRpcHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFzZSBjbGFzc1xuLnRvb2x0aXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6ICR6aW5kZXgtdG9vbHRpcDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIC8vIE91ciBwYXJlbnQgZWxlbWVudCBjYW4gYmUgYXJiaXRyYXJ5IHNpbmNlIHRvb2x0aXBzIGFyZSBieSBkZWZhdWx0IGluc2VydGVkIGFzIGEgc2libGluZyBvZiB0aGVpciB0YXJnZXQgZWxlbWVudC5cbiAgLy8gU28gcmVzZXQgb3VyIGZvbnQgYW5kIHRleHQgcHJvcGVydGllcyB0byBhdm9pZCBpbmhlcml0aW5nIHdlaXJkIHZhbHVlcy5cbiAgQGluY2x1ZGUgcmVzZXQtdGV4dDtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuXG4gIEBpbmNsdWRlIG9wYWNpdHkoMCk7XG5cbiAgJi5pbiAgICAgeyBAaW5jbHVkZSBvcGFjaXR5KCR0b29sdGlwLW9wYWNpdHkpOyB9XG4gICYudG9wICAgIHsgbWFyZ2luLXRvcDogIC0zcHg7IHBhZGRpbmc6ICR0b29sdGlwLWFycm93LXdpZHRoIDA7IH1cbiAgJi5yaWdodCAgeyBtYXJnaW4tbGVmdDogIDNweDsgcGFkZGluZzogMCAkdG9vbHRpcC1hcnJvdy13aWR0aDsgfVxuICAmLmJvdHRvbSB7IG1hcmdpbi10b3A6ICAgM3B4OyBwYWRkaW5nOiAkdG9vbHRpcC1hcnJvdy13aWR0aCAwOyB9XG4gICYubGVmdCAgIHsgbWFyZ2luLWxlZnQ6IC0zcHg7IHBhZGRpbmc6IDAgJHRvb2x0aXAtYXJyb3ctd2lkdGg7IH1cbn1cblxuLy8gV3JhcHBlciBmb3IgdGhlIHRvb2x0aXAgY29udGVudFxuLnRvb2x0aXAtaW5uZXIge1xuICBtYXgtd2lkdGg6ICR0b29sdGlwLW1heC13aWR0aDtcbiAgcGFkZGluZzogM3B4IDhweDtcbiAgY29sb3I6ICR0b29sdGlwLWNvbG9yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICR0b29sdGlwLWJnO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1iYXNlO1xufVxuXG4vLyBBcnJvd3Ncbi50b29sdGlwLWFycm93IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuLy8gTm90ZTogRGVwcmVjYXRlZCAudG9wLWxlZnQsIC50b3AtcmlnaHQsIC5ib3R0b20tbGVmdCwgYW5kIC5ib3R0b20tcmlnaHQgYXMgb2YgdjMuMy4xXG4udG9vbHRpcCB7XG4gICYudG9wIC50b29sdGlwLWFycm93IHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtJHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLXdpZHRoOiAkdG9vbHRpcC1hcnJvdy13aWR0aCAkdG9vbHRpcC1hcnJvdy13aWR0aCAwO1xuICAgIGJvcmRlci10b3AtY29sb3I6ICR0b29sdGlwLWFycm93LWNvbG9yO1xuICB9XG4gICYudG9wLWxlZnQgLnRvb2x0aXAtYXJyb3cge1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogJHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgbWFyZ2luLWJvdHRvbTogLSR0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci13aWR0aDogJHRvb2x0aXAtYXJyb3ctd2lkdGggJHRvb2x0aXAtYXJyb3ctd2lkdGggMDtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAkdG9vbHRpcC1hcnJvdy1jb2xvcjtcbiAgfVxuICAmLnRvcC1yaWdodCAudG9vbHRpcC1hcnJvdyB7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6ICR0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIG1hcmdpbi1ib3R0b206IC0kdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItd2lkdGg6ICR0b29sdGlwLWFycm93LXdpZHRoICR0b29sdGlwLWFycm93LXdpZHRoIDA7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogJHRvb2x0aXAtYXJyb3ctY29sb3I7XG4gIH1cbiAgJi5yaWdodCAudG9vbHRpcC1hcnJvdyB7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogMDtcbiAgICBtYXJnaW4tdG9wOiAtJHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLXdpZHRoOiAkdG9vbHRpcC1hcnJvdy13aWR0aCAkdG9vbHRpcC1hcnJvdy13aWR0aCAkdG9vbHRpcC1hcnJvdy13aWR0aCAwO1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHRvb2x0aXAtYXJyb3ctY29sb3I7XG4gIH1cbiAgJi5sZWZ0IC50b29sdGlwLWFycm93IHtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMDtcbiAgICBtYXJnaW4tdG9wOiAtJHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLXdpZHRoOiAkdG9vbHRpcC1hcnJvdy13aWR0aCAwICR0b29sdGlwLWFycm93LXdpZHRoICR0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkdG9vbHRpcC1hcnJvdy1jb2xvcjtcbiAgfVxuICAmLmJvdHRvbSAudG9vbHRpcC1hcnJvdyB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLSR0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci13aWR0aDogMCAkdG9vbHRpcC1hcnJvdy13aWR0aCAkdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkdG9vbHRpcC1hcnJvdy1jb2xvcjtcbiAgfVxuICAmLmJvdHRvbS1sZWZ0IC50b29sdGlwLWFycm93IHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6ICR0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIG1hcmdpbi10b3A6IC0kdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItd2lkdGg6IDAgJHRvb2x0aXAtYXJyb3ctd2lkdGggJHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHRvb2x0aXAtYXJyb3ctY29sb3I7XG4gIH1cbiAgJi5ib3R0b20tcmlnaHQgLnRvb2x0aXAtYXJyb3cge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAkdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBtYXJnaW4tdG9wOiAtJHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLXdpZHRoOiAwICR0b29sdGlwLWFycm93LXdpZHRoICR0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR0b29sdGlwLWFycm93LWNvbG9yO1xuICB9XG59XG4iLCJAbWl4aW4gcmVzZXQtdGV4dCgpIHtcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1iYXNlO1xuICAvLyBXZSBkZWxpYmVyYXRlbHkgZG8gTk9UIHJlc2V0IGZvbnQtc2l6ZS5cbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBsaW5lLWJyZWFrOiBhdXRvO1xuICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XG4gIHRleHQtYWxpZ246IGxlZnQ7IC8vIEZhbGxiYWNrIGZvciB3aGVyZSBgc3RhcnRgIGlzIG5vdCBzdXBwb3J0ZWRcbiAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gIHdvcmQtc3BhY2luZzogbm9ybWFsO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbn1cbiIsIi8vXG4vLyBQb3BvdmVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4ucG9wb3ZlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAkemluZGV4LXBvcG92ZXI7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1heC13aWR0aDogJHBvcG92ZXItbWF4LXdpZHRoO1xuICBwYWRkaW5nOiAxcHg7XG4gIC8vIE91ciBwYXJlbnQgZWxlbWVudCBjYW4gYmUgYXJiaXRyYXJ5IHNpbmNlIHBvcG92ZXJzIGFyZSBieSBkZWZhdWx0IGluc2VydGVkIGFzIGEgc2libGluZyBvZiB0aGVpciB0YXJnZXQgZWxlbWVudC5cbiAgLy8gU28gcmVzZXQgb3VyIGZvbnQgYW5kIHRleHQgcHJvcGVydGllcyB0byBhdm9pZCBpbmhlcml0aW5nIHdlaXJkIHZhbHVlcy5cbiAgQGluY2x1ZGUgcmVzZXQtdGV4dDtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJHBvcG92ZXItYmc7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRwb3BvdmVyLWZhbGxiYWNrLWJvcmRlci1jb2xvcjtcbiAgYm9yZGVyOiAxcHggc29saWQgJHBvcG92ZXItYm9yZGVyLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1sYXJnZTtcbiAgQGluY2x1ZGUgYm94LXNoYWRvdygwIDVweCAxMHB4IHJnYmEoMCwwLDAsLjIpKTtcblxuICAvLyBPZmZzZXQgdGhlIHBvcG92ZXIgdG8gYWNjb3VudCBmb3IgdGhlIHBvcG92ZXIgYXJyb3dcbiAgJi50b3AgICAgIHsgbWFyZ2luLXRvcDogLSRwb3BvdmVyLWFycm93LXdpZHRoOyB9XG4gICYucmlnaHQgICB7IG1hcmdpbi1sZWZ0OiAkcG9wb3Zlci1hcnJvdy13aWR0aDsgfVxuICAmLmJvdHRvbSAgeyBtYXJnaW4tdG9wOiAkcG9wb3Zlci1hcnJvdy13aWR0aDsgfVxuICAmLmxlZnQgICAgeyBtYXJnaW4tbGVmdDogLSRwb3BvdmVyLWFycm93LXdpZHRoOyB9XG59XG5cbi5wb3BvdmVyLXRpdGxlIHtcbiAgbWFyZ2luOiAwOyAvLyByZXNldCBoZWFkaW5nIG1hcmdpblxuICBwYWRkaW5nOiA4cHggMTRweDtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwb3BvdmVyLXRpdGxlLWJnO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgZGFya2VuKCRwb3BvdmVyLXRpdGxlLWJnLCA1JSk7XG4gIGJvcmRlci1yYWRpdXM6ICgkYm9yZGVyLXJhZGl1cy1sYXJnZSAtIDEpICgkYm9yZGVyLXJhZGl1cy1sYXJnZSAtIDEpIDAgMDtcbn1cblxuLnBvcG92ZXItY29udGVudCB7XG4gIHBhZGRpbmc6IDlweCAxNHB4O1xufVxuXG4vLyBBcnJvd3Ncbi8vXG4vLyAuYXJyb3cgaXMgb3V0ZXIsIC5hcnJvdzphZnRlciBpcyBpbm5lclxuXG4ucG9wb3ZlciA+IC5hcnJvdyB7XG4gICYsXG4gICY6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICB9XG59XG4ucG9wb3ZlciA+IC5hcnJvdyB7XG4gIGJvcmRlci13aWR0aDogJHBvcG92ZXItYXJyb3ctb3V0ZXItd2lkdGg7XG59XG4ucG9wb3ZlciA+IC5hcnJvdzphZnRlciB7XG4gIGJvcmRlci13aWR0aDogJHBvcG92ZXItYXJyb3ctd2lkdGg7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG5cbi5wb3BvdmVyIHtcbiAgJi50b3AgPiAuYXJyb3cge1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLSRwb3BvdmVyLWFycm93LW91dGVyLXdpZHRoO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogJHBvcG92ZXItYXJyb3ctb3V0ZXItZmFsbGJhY2stY29sb3I7IC8vIElFOCBmYWxsYmFja1xuICAgIGJvcmRlci10b3AtY29sb3I6ICRwb3BvdmVyLWFycm93LW91dGVyLWNvbG9yO1xuICAgIGJvdHRvbTogLSRwb3BvdmVyLWFycm93LW91dGVyLXdpZHRoO1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICBib3R0b206IDFweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtJHBvcG92ZXItYXJyb3ctd2lkdGg7XG4gICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHBvcG92ZXItYXJyb3ctY29sb3I7XG4gICAgfVxuICB9XG4gICYucmlnaHQgPiAuYXJyb3cge1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IC0kcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDtcbiAgICBtYXJnaW4tdG9wOiAtJHBvcG92ZXItYXJyb3ctb3V0ZXItd2lkdGg7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkcG9wb3Zlci1hcnJvdy1vdXRlci1mYWxsYmFjay1jb2xvcjsgLy8gSUU4IGZhbGxiYWNrXG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkcG9wb3Zlci1hcnJvdy1vdXRlci1jb2xvcjtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgbGVmdDogMXB4O1xuICAgICAgYm90dG9tOiAtJHBvcG92ZXItYXJyb3ctd2lkdGg7XG4gICAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHBvcG92ZXItYXJyb3ctY29sb3I7XG4gICAgfVxuICB9XG4gICYuYm90dG9tID4gLmFycm93IHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC0kcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRwb3BvdmVyLWFycm93LW91dGVyLWZhbGxiYWNrLWNvbG9yOyAvLyBJRTggZmFsbGJhY2tcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkcG9wb3Zlci1hcnJvdy1vdXRlci1jb2xvcjtcbiAgICB0b3A6IC0kcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgdG9wOiAxcHg7XG4gICAgICBtYXJnaW4tbGVmdDogLSRwb3BvdmVyLWFycm93LXdpZHRoO1xuICAgICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRwb3BvdmVyLWFycm93LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gICYubGVmdCA+IC5hcnJvdyB7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IC0kcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDtcbiAgICBtYXJnaW4tdG9wOiAtJHBvcG92ZXItYXJyb3ctb3V0ZXItd2lkdGg7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkcG9wb3Zlci1hcnJvdy1vdXRlci1mYWxsYmFjay1jb2xvcjsgLy8gSUU4IGZhbGxiYWNrXG4gICAgYm9yZGVyLWxlZnQtY29sb3I6ICRwb3BvdmVyLWFycm93LW91dGVyLWNvbG9yO1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICByaWdodDogMXB4O1xuICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICRwb3BvdmVyLWFycm93LWNvbG9yO1xuICAgICAgYm90dG9tOiAtJHBvcG92ZXItYXJyb3ctd2lkdGg7XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQ2Fyb3VzZWxcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gV3JhcHBlciBmb3IgdGhlIHNsaWRlIGNvbnRhaW5lciBhbmQgaW5kaWNhdG9yc1xuLmNhcm91c2VsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY2Fyb3VzZWwtaW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiAxMDAlO1xuXG4gID4gLml0ZW0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oLjZzIGVhc2UtaW4tb3V0IGxlZnQpO1xuXG4gICAgLy8gQWNjb3VudCBmb3IgamFua2l0dWRlIG9uIGltYWdlc1xuICAgID4gaW1nLFxuICAgID4gYSA+IGltZyB7XG4gICAgICBAaW5jbHVkZSBpbWctcmVzcG9uc2l2ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIH1cblxuICAgIC8vIFdlYktpdCBDU1MzIHRyYW5zZm9ybXMgZm9yIHN1cHBvcnRlZCBkZXZpY2VzXG4gICAgQG1lZGlhIGFsbCBhbmQgKHRyYW5zZm9ybS0zZCksICgtd2Via2l0LXRyYW5zZm9ybS0zZCkge1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi10cmFuc2Zvcm0oMC42cyBlYXNlLWluLW91dCk7XG4gICAgICBAaW5jbHVkZSBiYWNrZmFjZS12aXNpYmlsaXR5KGhpZGRlbik7XG4gICAgICBAaW5jbHVkZSBwZXJzcGVjdGl2ZSgxMDAwcHgpO1xuXG4gICAgICAmLm5leHQsXG4gICAgICAmLmFjdGl2ZS5yaWdodCB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuICAgICAgJi5wcmV2LFxuICAgICAgJi5hY3RpdmUubGVmdCB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgIH1cbiAgICAgICYubmV4dC5sZWZ0LFxuICAgICAgJi5wcmV2LnJpZ2h0LFxuICAgICAgJi5hY3RpdmUge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICA+IC5hY3RpdmUsXG4gID4gLm5leHQsXG4gID4gLnByZXYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgPiAuYWN0aXZlIHtcbiAgICBsZWZ0OiAwO1xuICB9XG5cbiAgPiAubmV4dCxcbiAgPiAucHJldiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gID4gLm5leHQge1xuICAgIGxlZnQ6IDEwMCU7XG4gIH1cbiAgPiAucHJldiB7XG4gICAgbGVmdDogLTEwMCU7XG4gIH1cbiAgPiAubmV4dC5sZWZ0LFxuICA+IC5wcmV2LnJpZ2h0IHtcbiAgICBsZWZ0OiAwO1xuICB9XG5cbiAgPiAuYWN0aXZlLmxlZnQge1xuICAgIGxlZnQ6IC0xMDAlO1xuICB9XG4gID4gLmFjdGl2ZS5yaWdodCB7XG4gICAgbGVmdDogMTAwJTtcbiAgfVxuXG59XG5cbi8vIExlZnQvcmlnaHQgY29udHJvbHMgZm9yIG5hdlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5jYXJvdXNlbC1jb250cm9sIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6ICRjYXJvdXNlbC1jb250cm9sLXdpZHRoO1xuICBAaW5jbHVkZSBvcGFjaXR5KCRjYXJvdXNlbC1jb250cm9sLW9wYWNpdHkpO1xuICBmb250LXNpemU6ICRjYXJvdXNlbC1jb250cm9sLWZvbnQtc2l6ZTtcbiAgY29sb3I6ICRjYXJvdXNlbC1jb250cm9sLWNvbG9yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtc2hhZG93OiAkY2Fyb3VzZWwtdGV4dC1zaGFkb3c7XG4gIC8vIFdlIGNhbid0IGhhdmUgdGhpcyB0cmFuc2l0aW9uIGhlcmUgYmVjYXVzZSBXZWJLaXQgY2FuY2VscyB0aGUgY2Fyb3VzZWxcbiAgLy8gYW5pbWF0aW9uIGlmIHlvdSB0cmlwIHRoaXMgd2hpbGUgaW4gdGhlIG1pZGRsZSBvZiBhbm90aGVyIGFuaW1hdGlvbi5cblxuICAvLyBTZXQgZ3JhZGllbnRzIGZvciBiYWNrZ3JvdW5kc1xuICAmLmxlZnQge1xuICAgIEBpbmNsdWRlIGdyYWRpZW50LWhvcml6b250YWwoJHN0YXJ0LWNvbG9yOiByZ2JhKDAsMCwwLC41KSwgJGVuZC1jb2xvcjogcmdiYSgwLDAsMCwuMDAwMSkpO1xuICB9XG4gICYucmlnaHQge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDA7XG4gICAgQGluY2x1ZGUgZ3JhZGllbnQtaG9yaXpvbnRhbCgkc3RhcnQtY29sb3I6IHJnYmEoMCwwLDAsLjAwMDEpLCAkZW5kLWNvbG9yOiByZ2JhKDAsMCwwLC41KSk7XG4gIH1cblxuICAvLyBIb3Zlci9mb2N1cyBzdGF0ZVxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGNvbG9yOiAkY2Fyb3VzZWwtY29udHJvbC1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgQGluY2x1ZGUgb3BhY2l0eSguOSk7XG4gIH1cblxuICAvLyBUb2dnbGVzXG4gIC5pY29uLXByZXYsXG4gIC5pY29uLW5leHQsXG4gIC5nbHlwaGljb24tY2hldnJvbi1sZWZ0LFxuICAuZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgICB6LWluZGV4OiA1O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuICAuaWNvbi1wcmV2LFxuICAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCB7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgfVxuICAuaWNvbi1uZXh0LFxuICAuZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQge1xuICAgIHJpZ2h0OiA1MCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbiAgfVxuICAuaWNvbi1wcmV2LFxuICAuaWNvbi1uZXh0IHtcbiAgICB3aWR0aDogIDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQtZmFtaWx5OiBzZXJpZjtcbiAgfVxuXG5cbiAgLmljb24tcHJldiB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ1xcMjAzOSc7Ly8gU0lOR0xFIExFRlQtUE9JTlRJTkcgQU5HTEUgUVVPVEFUSU9OIE1BUksgKFUrMjAzOSlcbiAgICB9XG4gIH1cbiAgLmljb24tbmV4dCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ1xcMjAzYSc7Ly8gU0lOR0xFIFJJR0hULVBPSU5USU5HIEFOR0xFIFFVT1RBVElPTiBNQVJLIChVKzIwM0EpXG4gICAgfVxuICB9XG59XG5cbi8vIE9wdGlvbmFsIGluZGljYXRvciBwaXBzXG4vL1xuLy8gQWRkIGFuIHVub3JkZXJlZCBsaXN0IHdpdGggdGhlIGZvbGxvd2luZyBjbGFzcyBhbmQgYWRkIGEgbGlzdCBpdGVtIGZvciBlYWNoXG4vLyBzbGlkZSB5b3VyIGNhcm91c2VsIGhvbGRzLlxuXG4uY2Fyb3VzZWwtaW5kaWNhdG9ycyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxMHB4O1xuICBsZWZ0OiA1MCU7XG4gIHotaW5kZXg6IDE1O1xuICB3aWR0aDogNjAlO1xuICBtYXJnaW4tbGVmdDogLTMwJTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogIDEwcHg7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIG1hcmdpbjogMXB4O1xuICAgIHRleHQtaW5kZW50OiAtOTk5cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNhcm91c2VsLWluZGljYXRvci1ib3JkZXItY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAvLyBJRTgtOSBoYWNrIGZvciBldmVudCBoYW5kbGluZ1xuICAgIC8vXG4gICAgLy8gSW50ZXJuZXQgRXhwbG9yZXIgOC05IGRvZXMgbm90IHN1cHBvcnQgY2xpY2tzIG9uIGVsZW1lbnRzIHdpdGhvdXQgYSBzZXRcbiAgICAvLyBgYmFja2dyb3VuZC1jb2xvcmAuIFdlIGNhbm5vdCB1c2UgYGZpbHRlcmAgc2luY2UgdGhhdCdzIG5vdCB2aWV3ZWQgYXMgYVxuICAgIC8vIGJhY2tncm91bmQgY29sb3IgYnkgdGhlIGJyb3dzZXIuIFRodXMsIGEgaGFjayBpcyBuZWVkZWQuXG4gICAgLy8gU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0V2ZW50cy9jbGljayNJbnRlcm5ldF9FeHBsb3JlclxuICAgIC8vXG4gICAgLy8gRm9yIElFOCwgd2Ugc2V0IHNvbGlkIGJsYWNrIGFzIGl0IGRvZXNuJ3Qgc3VwcG9ydCBgcmdiYSgpYC4gRm9yIElFOSwgd2VcbiAgICAvLyBzZXQgYWxwaGEgdHJhbnNwYXJlbmN5IGZvciB0aGUgYmVzdCByZXN1bHRzIHBvc3NpYmxlLlxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAgXFw5OyAvLyBJRThcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDApOyAvLyBJRTlcbiAgfVxuICAuYWN0aXZlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6ICAxMnB4O1xuICAgIGhlaWdodDogMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2Fyb3VzZWwtaW5kaWNhdG9yLWFjdGl2ZS1iZztcbiAgfVxufVxuXG4vLyBPcHRpb25hbCBjYXB0aW9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEhpZGRlbiBieSBkZWZhdWx0IGZvciBzbWFsbGVyIHZpZXdwb3J0c1xuLmNhcm91c2VsLWNhcHRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDE1JTtcbiAgcmlnaHQ6IDE1JTtcbiAgYm90dG9tOiAyMHB4O1xuICB6LWluZGV4OiAxMDtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICBjb2xvcjogJGNhcm91c2VsLWNhcHRpb24tY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1zaGFkb3c6ICRjYXJvdXNlbC10ZXh0LXNoYWRvdztcbiAgJiAuYnRuIHtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTsgLy8gTm8gc2hhZG93IGZvciBidXR0b24gZWxlbWVudHMgaW4gY2Fyb3VzZWwtY2FwdGlvblxuICB9XG59XG5cblxuLy8gU2NhbGUgdXAgY29udHJvbHMgZm9yIHRhYmxldHMgYW5kIHVwXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikge1xuXG4gIC8vIFNjYWxlIHVwIHRoZSBjb250cm9scyBhIHNtaWRnZVxuICAuY2Fyb3VzZWwtY29udHJvbCB7XG4gICAgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQsXG4gICAgLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0LFxuICAgIC5pY29uLXByZXYsXG4gICAgLmljb24tbmV4dCB7XG4gICAgICB3aWR0aDogMzBweDtcbiAgICAgIGhlaWdodDogMzBweDtcbiAgICAgIG1hcmdpbi10b3A6IC0xNXB4O1xuICAgICAgZm9udC1zaXplOiAzMHB4O1xuICAgIH1cbiAgICAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCxcbiAgICAuaWNvbi1wcmV2IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgICB9XG4gICAgLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0LFxuICAgIC5pY29uLW5leHQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbiAgICB9XG4gIH1cblxuICAvLyBTaG93IGFuZCBsZWZ0IGFsaWduIHRoZSBjYXB0aW9uc1xuICAuY2Fyb3VzZWwtY2FwdGlvbiB7XG4gICAgbGVmdDogMjAlO1xuICAgIHJpZ2h0OiAyMCU7XG4gICAgcGFkZGluZy1ib3R0b206IDMwcHg7XG4gIH1cblxuICAvLyBNb3ZlIHVwIHRoZSBpbmRpY2F0b3JzXG4gIC5jYXJvdXNlbC1pbmRpY2F0b3JzIHtcbiAgICBib3R0b206IDIwcHg7XG4gIH1cbn1cbiIsIi8vXG4vLyBVdGlsaXR5IGNsYXNzZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gRmxvYXRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5jbGVhcmZpeCB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xufVxuLmNlbnRlci1ibG9jayB7XG4gIEBpbmNsdWRlIGNlbnRlci1ibG9jaztcbn1cbi5wdWxsLXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG59XG4ucHVsbC1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbn1cblxuXG4vLyBUb2dnbGluZyBjb250ZW50XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIE5vdGU6IERlcHJlY2F0ZWQgLmhpZGUgaW4gZmF2b3Igb2YgLmhpZGRlbiBvciAuc3Itb25seSAoYXMgYXBwcm9wcmlhdGUpIGluIHYzLjAuMVxuLmhpZGUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4uc2hvdyB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG4uaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnRleHQtaGlkZSB7XG4gIEBpbmNsdWRlIHRleHQtaGlkZTtcbn1cblxuXG4vLyBIaWRlIGZyb20gc2NyZWVucmVhZGVycyBhbmQgYnJvd3NlcnNcbi8vXG4vLyBDcmVkaXQ6IEhUTUw1IEJvaWxlcnBsYXRlXG5cbi5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cblxuLy8gRm9yIEFmZml4IHBsdWdpblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uYWZmaXgge1xuICBwb3NpdGlvbjogZml4ZWQ7XG59XG4iLCIvLyBDZW50ZXItYWxpZ24gYSBibG9jayBsZXZlbCBlbGVtZW50XG5cbkBtaXhpbiBjZW50ZXItYmxvY2soKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuIiwiLy8gQ1NTIGltYWdlIHJlcGxhY2VtZW50XG4vL1xuLy8gSGVhZHMgdXAhIHYzIGxhdW5jaGVkIHdpdGggb25seSBgLmhpZGUtdGV4dCgpYCwgYnV0IHBlciBvdXIgcGF0dGVybiBmb3Jcbi8vIG1peGlucyBiZWluZyByZXVzZWQgYXMgY2xhc3NlcyB3aXRoIHRoZSBzYW1lIG5hbWUsIHRoaXMgZG9lc24ndCBob2xkIHVwLiBBc1xuLy8gb2YgdjMuMC4xIHdlIGhhdmUgYWRkZWQgYC50ZXh0LWhpZGUoKWAgYW5kIGRlcHJlY2F0ZWQgYC5oaWRlLXRleHQoKWAuXG4vL1xuLy8gU291cmNlOiBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9jb21taXQvYWEwMzk2ZWFlNzU3XG5cbi8vIERlcHJlY2F0ZWQgYXMgb2YgdjMuMC4xICh3aWxsIGJlIHJlbW92ZWQgaW4gdjQpXG5AbWl4aW4gaGlkZS10ZXh0KCkge1xuICBmb250OiAwLzAgYTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbn1cblxuLy8gTmV3IG1peGluIHRvIHVzZSBhcyBvZiB2My4wLjFcbkBtaXhpbiB0ZXh0LWhpZGUoKSB7XG4gIEBpbmNsdWRlIGhpZGUtdGV4dDtcbn1cbiIsIi8vXG4vLyBSZXNwb25zaXZlOiBVdGlsaXR5IGNsYXNzZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gSUUxMCBpbiBXaW5kb3dzIChQaG9uZSkgOFxuLy9cbi8vIFN1cHBvcnQgZm9yIHJlc3BvbnNpdmUgdmlld3MgdmlhIG1lZGlhIHF1ZXJpZXMgaXMga2luZCBvZiBib3JrZWQgaW4gSUUxMCwgZm9yXG4vLyBTdXJmYWNlL2Rlc2t0b3AgaW4gc3BsaXQgdmlldyBhbmQgZm9yIFdpbmRvd3MgUGhvbmUgOC4gVGhpcyBwYXJ0aWN1bGFyIGZpeFxuLy8gbXVzdCBiZSBhY2NvbXBhbmllZCBieSBhIHNuaXBwZXQgb2YgSmF2YVNjcmlwdCB0byBzbmlmZiB0aGUgdXNlciBhZ2VudCBhbmRcbi8vIGFwcGx5IHNvbWUgY29uZGl0aW9uYWwgQ1NTIHRvICpvbmx5KiB0aGUgU3VyZmFjZS9kZXNrdG9wIFdpbmRvd3MgOC4gTG9vayBhdFxuLy8gb3VyIEdldHRpbmcgU3RhcnRlZCBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoaXMgYnVnLlxuLy9cbi8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIGZvbGxvd2luZzpcbi8vXG4vLyBJc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMDQ5N1xuLy8gRG9jczogaHR0cDovL2dldGJvb3RzdHJhcC5jb20vZ2V0dGluZy1zdGFydGVkLyNzdXBwb3J0LWllMTAtd2lkdGhcbi8vIFNvdXJjZTogaHR0cDovL3RpbWthZGxlYy5jb20vMjAxMy8wMS93aW5kb3dzLXBob25lLTgtYW5kLWRldmljZS13aWR0aC9cbi8vIFNvdXJjZTogaHR0cDovL3RpbWthZGxlYy5jb20vMjAxMi8xMC9pZTEwLXNuYXAtbW9kZS1hbmQtcmVzcG9uc2l2ZS1kZXNpZ24vXG5cbkBhdC1yb290IHtcbiAgQC1tcy12aWV3cG9ydCB7XG4gICAgd2lkdGg6IGRldmljZS13aWR0aDtcbiAgfVxufVxuXG5cbi8vIFZpc2liaWxpdHkgdXRpbGl0aWVzXG4vLyBOb3RlOiBEZXByZWNhdGVkIC52aXNpYmxlLXhzLCAudmlzaWJsZS1zbSwgLnZpc2libGUtbWQsIGFuZCAudmlzaWJsZS1sZyBhcyBvZiB2My4yLjBcblxuQGluY2x1ZGUgcmVzcG9uc2l2ZS1pbnZpc2liaWxpdHkoJy52aXNpYmxlLXhzJyk7XG5AaW5jbHVkZSByZXNwb25zaXZlLWludmlzaWJpbGl0eSgnLnZpc2libGUtc20nKTtcbkBpbmNsdWRlIHJlc3BvbnNpdmUtaW52aXNpYmlsaXR5KCcudmlzaWJsZS1tZCcpO1xuQGluY2x1ZGUgcmVzcG9uc2l2ZS1pbnZpc2liaWxpdHkoJy52aXNpYmxlLWxnJyk7XG5cbi52aXNpYmxlLXhzLWJsb2NrLFxuLnZpc2libGUteHMtaW5saW5lLFxuLnZpc2libGUteHMtaW5saW5lLWJsb2NrLFxuLnZpc2libGUtc20tYmxvY2ssXG4udmlzaWJsZS1zbS1pbmxpbmUsXG4udmlzaWJsZS1zbS1pbmxpbmUtYmxvY2ssXG4udmlzaWJsZS1tZC1ibG9jayxcbi52aXNpYmxlLW1kLWlubGluZSxcbi52aXNpYmxlLW1kLWlubGluZS1ibG9jayxcbi52aXNpYmxlLWxnLWJsb2NrLFxuLnZpc2libGUtbGctaW5saW5lLFxuLnZpc2libGUtbGctaW5saW5lLWJsb2NrIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogJHNjcmVlbi14cy1tYXgpIHtcbiAgQGluY2x1ZGUgcmVzcG9uc2l2ZS12aXNpYmlsaXR5KCcudmlzaWJsZS14cycpO1xufVxuLnZpc2libGUteHMtYmxvY2sge1xuICBAbWVkaWEgKG1heC13aWR0aDogJHNjcmVlbi14cy1tYXgpIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG4udmlzaWJsZS14cy1pbmxpbmUge1xuICBAbWVkaWEgKG1heC13aWR0aDogJHNjcmVlbi14cy1tYXgpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUteHMtaW5saW5lLWJsb2NrIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6ICRzY3JlZW4teHMtbWF4KSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tc20tbWluKSBhbmQgKG1heC13aWR0aDogJHNjcmVlbi1zbS1tYXgpIHtcbiAgQGluY2x1ZGUgcmVzcG9uc2l2ZS12aXNpYmlsaXR5KCcudmlzaWJsZS1zbScpO1xufVxuLnZpc2libGUtc20tYmxvY2sge1xuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1zbS1taW4pIGFuZCAobWF4LXdpZHRoOiAkc2NyZWVuLXNtLW1heCkge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXNtLWlubGluZSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikgYW5kIChtYXgtd2lkdGg6ICRzY3JlZW4tc20tbWF4KSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXNtLWlubGluZS1ibG9jayB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikgYW5kIChtYXgtd2lkdGg6ICRzY3JlZW4tc20tbWF4KSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbWQtbWluKSBhbmQgKG1heC13aWR0aDogJHNjcmVlbi1tZC1tYXgpIHtcbiAgQGluY2x1ZGUgcmVzcG9uc2l2ZS12aXNpYmlsaXR5KCcudmlzaWJsZS1tZCcpO1xufVxuLnZpc2libGUtbWQtYmxvY2sge1xuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1tZC1taW4pIGFuZCAobWF4LXdpZHRoOiAkc2NyZWVuLW1kLW1heCkge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLW1kLWlubGluZSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLW1kLW1pbikgYW5kIChtYXgtd2lkdGg6ICRzY3JlZW4tbWQtbWF4KSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLW1kLWlubGluZS1ibG9jayB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLW1kLW1pbikgYW5kIChtYXgtd2lkdGg6ICRzY3JlZW4tbWQtbWF4KSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbGctbWluKSB7XG4gIEBpbmNsdWRlIHJlc3BvbnNpdmUtdmlzaWJpbGl0eSgnLnZpc2libGUtbGcnKTtcbn1cbi52aXNpYmxlLWxnLWJsb2NrIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbGctbWluKSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtbGctaW5saW5lIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbGctbWluKSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLWxnLWlubGluZS1ibG9jayB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLWxnLW1pbikge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLXhzLW1heCkge1xuICBAaW5jbHVkZSByZXNwb25zaXZlLWludmlzaWJpbGl0eSgnLmhpZGRlbi14cycpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1zbS1taW4pIGFuZCAobWF4LXdpZHRoOiAkc2NyZWVuLXNtLW1heCkge1xuICBAaW5jbHVkZSByZXNwb25zaXZlLWludmlzaWJpbGl0eSgnLmhpZGRlbi1zbScpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1tZC1taW4pIGFuZCAobWF4LXdpZHRoOiAkc2NyZWVuLW1kLW1heCkge1xuICBAaW5jbHVkZSByZXNwb25zaXZlLWludmlzaWJpbGl0eSgnLmhpZGRlbi1tZCcpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1sZy1taW4pIHtcbiAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1pbnZpc2liaWxpdHkoJy5oaWRkZW4tbGcnKTtcbn1cblxuXG4vLyBQcmludCB1dGlsaXRpZXNcbi8vXG4vLyBNZWRpYSBxdWVyaWVzIGFyZSBwbGFjZWQgb24gdGhlIGluc2lkZSB0byBiZSBtaXhpbi1mcmllbmRseS5cblxuLy8gTm90ZTogRGVwcmVjYXRlZCAudmlzaWJsZS1wcmludCBhcyBvZiB2My4yLjBcblxuQGluY2x1ZGUgcmVzcG9uc2l2ZS1pbnZpc2liaWxpdHkoJy52aXNpYmxlLXByaW50Jyk7XG5cbkBtZWRpYSBwcmludCB7XG4gIEBpbmNsdWRlIHJlc3BvbnNpdmUtdmlzaWJpbGl0eSgnLnZpc2libGUtcHJpbnQnKTtcbn1cbi52aXNpYmxlLXByaW50LWJsb2NrIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gIEBtZWRpYSBwcmludCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtcHJpbnQtaW5saW5lIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gIEBtZWRpYSBwcmludCB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXByaW50LWlubGluZS1ibG9jayB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblxuICBAbWVkaWEgcHJpbnQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBwcmludCB7XG4gIEBpbmNsdWRlIHJlc3BvbnNpdmUtaW52aXNpYmlsaXR5KCcuaGlkZGVuLXByaW50Jyk7XG59XG4iLCIvLyBSZXNwb25zaXZlIHV0aWxpdGllc1xuXG4vL1xuLy8gTW9yZSBlYXNpbHkgaW5jbHVkZSBhbGwgdGhlIHN0YXRlcyBmb3IgcmVzcG9uc2l2ZS11dGlsaXRpZXMubGVzcy5cbi8vIFtjb252ZXJ0ZXJdICRwYXJlbnQgaGFja1xuQG1peGluIHJlc3BvbnNpdmUtdmlzaWJpbGl0eSgkcGFyZW50KSB7XG4gICN7JHBhcmVudH0ge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgdGFibGUjeyRwYXJlbnR9ICB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgdHIjeyRwYXJlbnR9ICAgICB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gIHRoI3skcGFyZW50fSxcbiAgdGQjeyRwYXJlbnR9ICAgICB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxufVxuXG4vLyBbY29udmVydGVyXSAkcGFyZW50IGhhY2tcbkBtaXhpbiByZXNwb25zaXZlLWludmlzaWJpbGl0eSgkcGFyZW50KSB7XG4gICN7JHBhcmVudH0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiLyogXG5UaGUgTUlUIExpY2Vuc2UgKE1JVClcblxuQ29weXJpZ2h0IChjKSAyMDEzLTIwMTUgYm9vdHN0cmFwLXNlbGVjdFxuXG5QZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG5vZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG5pbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG50byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG5jb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbmZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cblRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cblxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG5GSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbkxJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG5PVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuU09GVFdBUkUuICovXG5cbi8vIE1peGluc1xuQG1peGluIGN1cnNvci1kaXNhYmxlZCgpIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLy8gUnVsZXNcbi5ib290c3RyYXAtc2VsZWN0IHtcbiAgLyp3aWR0aDogMjIwcHhcXDk7IElFOCBhbmQgYmVsb3cqL1xuICAvL25vaW5zcGVjdGlvbiBDc3NTaG9ydGhhbmRQcm9wZXJ0eVZhbHVlXG4gIHdpZHRoOiAyMjBweCBcXDA7IC8qSUU5IGFuZCBiZWxvdyovXG5cbiAgLy8gVGhlIHNlbGVjdHBpY2tlciBidXR0b25cbiAgPiAuYnRuIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMjVweDtcbiAgfVxuXG4gIC8vIEVycm9yIGRpc3BsYXlcbiAgLmVycm9yICYgLmJ0biB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLXJlZC1lcnJvcjtcbiAgfVxuXG4gIC8vIEVycm9yIGRpc3BsYXlcbiAgLmNvbnRyb2wtZ3JvdXAuZXJyb3IgJiAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvci1yZWQtZXJyb3I7XG4gIH1cblxuICAmLmZpdC13aWR0aCB7XG4gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuXG4gICY6bm90KFtjbGFzcyo9XCJjb2wtXCJdKTpub3QoW2NsYXNzKj1cImZvcm0tY29udHJvbFwiXSk6bm90KC5pbnB1dC1ncm91cC1idG4pIHtcbiAgICB3aWR0aDogJHdpZHRoLWRlZmF1bHQ7XG4gIH1cblxuICAuYnRuOmZvY3VzIHtcbiAgICBvdXRsaW5lOiB0aGluIGRvdHRlZCAjMzMzMzMzICFpbXBvcnRhbnQ7XG4gICAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIH1cbn1cblxuLmJvb3RzdHJhcC1zZWxlY3QuZm9ybS1jb250cm9sIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiBub25lO1xuXG4gICY6bm90KFtjbGFzcyo9XCJjb2wtXCJdKSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLy8gVGhlIHNlbGVjdHBpY2tlciBjb21wb25lbnRzXG4uYm9vdHN0cmFwLXNlbGVjdC5idG4tZ3JvdXAge1xuICAmOm5vdCguaW5wdXQtZ3JvdXAtYnRuKSxcbiAgJltjbGFzcyo9XCJjb2wtXCJdIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICAvLyBGb3JjZXMgdGhlIHB1bGwgdG8gdGhlIHJpZ2h0LCBpZiBuZWNlc3NhcnlcbiAgJixcbiAgJltjbGFzcyo9XCJjb2wtXCJdLFxuICAucm93LWZsdWlkICZbY2xhc3MqPVwiY29sLVwiXSB7XG4gICAgJi5kcm9wZG93bi1tZW51LXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cblxuICAuZm9ybS1zZWFyY2ggJixcbiAgLmZvcm0taW5saW5lICYsXG4gIC5mb3JtLWhvcml6b250YWwgJixcbiAgLmZvcm0tZ3JvdXAgJiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIC5mb3JtLWdyb3VwLWxnICAmLmZvcm0tY29udHJvbCxcbiAgLmZvcm0tZ3JvdXAtc20gICYuZm9ybS1jb250cm9sIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLy8gU2V0IHRoZSB3aWR0aCBvZiB0aGUgbGl2ZSBzZWFyY2ggKGFuZCBhbnkgb3RoZXIgZm9ybSBjb250cm9sIHdpdGhpbiBhbiBpbmxpbmUgZm9ybSlcbiAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zaWx2aW9tb3JldG8vYm9vdHN0cmFwLXNlbGVjdC9pc3N1ZXMvNjg1XG4gIC5mb3JtLWlubGluZSAmIC5mb3JtLWNvbnRyb2wge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLmlucHV0LWFwcGVuZCAmIHtcbiAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgfVxuXG4gIC5pbnB1dC1wcmVwZW5kICYge1xuICAgIG1hcmdpbi1yaWdodDogLTFweDtcbiAgfVxuXG4gID4gLmRpc2FibGVkIHtcbiAgICBAaW5jbHVkZSBjdXJzb3ItZGlzYWJsZWQ7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAvLyBUaGUgc2VsZWN0cGlja2VyIGJ1dHRvblxuICAuYnRuIHtcbiAgICAuZmlsdGVyLW9wdGlvbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cblxuICAgIC5jYXJldCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogNDBweDtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkYnRuLWRlZmF1bHQtYm9yZGVyO1xuICAgICAgaGVpZ2h0OiAzOHB4O1xuICAgIH1cblxuICAgIC5jYXJldDpiZWZvcmUge1xuICAgICAgY29udGVudDogJ1xcZTg2MSc7XG4gICAgICBmb250LWZhbWlseTogXCJmb250ZWxsb1wiO1xuICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgY29sb3I6ICM2NjY2NjY7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAxMnB4O1xuICAgICAgdG9wOiA5cHg7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmOmhvdmVyIC5jYXJldCB7XG4gICAgICBib3JkZXItY29sb3I6IGRhcmtlbigkYnRuLWRlZmF1bHQtYm9yZGVyLCAxMiUpO1xuICAgIH1cblxuICAgICY6Zm9jdXMgLmNhcmV0IHtcbiAgICAgIGJvcmRlci1jb2xvcjogZGFya2VuKCRidG4tZGVmYXVsdC1ib3JkZXIsIDI1JSk7XG4gICAgfVxuXG4gIH1cblxuICAmW2NsYXNzKj1cImNvbC1cIl0gLmJ0biB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAvLyBUaGUgc2VsZWN0cGlja2VyIGRyb3Bkb3duXG4gIC5kcm9wZG93bi1tZW51IHtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogJHppbmRleC1zZWxlY3QtZHJvcGRvd247XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICYuaW5uZXIge1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICY6bm90KC5kaXNhYmxlZCkgYTpob3ZlciBzbWFsbCxcbiAgICAgICY6bm90KC5kaXNhYmxlZCkgYTpmb2N1cyBzbWFsbCxcbiAgICAgICYuYWN0aXZlOm5vdCguZGlzYWJsZWQpIGEgc21hbGwge1xuICAgICAgICBjb2xvcjogJGNvbG9yLWJsdWUtaG92ZXI7XG4gICAgICAgIGNvbG9yOiBmYWRlKCRjb2xvci1ibHVlLWhvdmVyLCA0MCUpO1xuICAgICAgfVxuXG4gICAgICAmLmRpc2FibGVkIGEge1xuICAgICAgICBAaW5jbHVkZSBjdXJzb3ItZGlzYWJsZWQ7XG4gICAgICB9XG5cbiAgICAgIGEge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJi5vcHQge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIuMjVlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW4uY2hlY2stbWFyayB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICBzcGFuLnRleHQge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBzbWFsbCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC41ZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5vdGlmeSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDVweDtcbiAgICAgIHdpZHRoOiA5NiU7XG4gICAgICBtYXJnaW46IDAgMiU7XG4gICAgICBtaW4taGVpZ2h0OiAyNnB4O1xuICAgICAgcGFkZGluZzogM3B4IDVweDtcbiAgICAgIGJhY2tncm91bmQ6IHJnYigyNDUsIDI0NSwgMjQ1KTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYigyMjcsIDIyNywgMjI3KTtcbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCBmYWRlKHJnYigwLCAwLCAwKSwgNSUpO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBvcGFjaXR5OiAwLjk7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cbiAgfVxuXG4gIC5uby1yZXN1bHRzIHtcbiAgICBwYWRkaW5nOiAzcHg7XG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbiAgICBtYXJnaW46IDAgNXB4O1xuICB9XG5cbiAgJi5maXQtd2lkdGggLmJ0biB7XG4gICAgLmZpbHRlci1vcHRpb24ge1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB9XG5cbiAgICAuY2FyZXQge1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIHRvcDogYXV0bztcbiAgICAgIG1hcmdpbi10b3A6IC0xcHg7XG4gICAgfVxuICB9XG5cbiAgJi5zaG93LXRpY2sgLmRyb3Bkb3duLW1lbnUgbGkge1xuICAgICYuc2VsZWN0ZWQgYSBzcGFuLmNoZWNrLW1hcmsge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcmlnaHQ6IDE1cHg7XG4gICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgfVxuXG4gICAgYSBzcGFuLnRleHQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAzNHB4O1xuICAgIH1cbiAgfVxufVxuXG4uYm9vdHN0cmFwLXNlbGVjdC5zaG93LW1lbnUtYXJyb3cge1xuICAmLm9wZW4gPiAuYnRuIHtcbiAgICB6LWluZGV4OiAkemluZGV4LXNlbGVjdC1kcm9wZG93biArIDE7XG4gIH1cblxuICAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGJvcmRlci1sZWZ0OiA3cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmlnaHQ6IDdweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDdweDtcbiAgICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGNvbG9yLWdyZXktYXJyb3c7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiBmYWRlKCRjb2xvci1ncmV5LWFycm93LCAyMCUpO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAtNHB4O1xuICAgICAgbGVmdDogOXB4O1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yaWdodDogNnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkIHdoaXRlO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAtNHB4O1xuICAgICAgbGVmdDogMTBweDtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJi5kcm9wdXAgLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgdG9wOiAtM3B4O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIGJvcmRlci10b3Atd2lkdGg6IDdweDtcbiAgICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yLWdyZXktYXJyb3c7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiBmYWRlKCRjb2xvci1ncmV5LWFycm93LCAyMCUpO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgdG9wOiAtM3B4O1xuICAgICAgYm9yZGVyLXRvcDogNnB4IHNvbGlkIHdoaXRlO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAmLnB1bGwtcmlnaHQgLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgcmlnaHQ6IDEycHg7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgcmlnaHQ6IDEzcHg7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gICYub3BlbiA+IC5kcm9wZG93bi10b2dnbGUge1xuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG5cbi5ib290c3RyYXAtc2VsZWN0LmJ0bi1ncm91cC5vcGVuIHtcblxuICAgIC5idG4gLmNhcmV0IHtcbiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBkYXJrZW4oJGJ0bi1kZWZhdWx0LWJvcmRlciwgMTIlKTtcbiAgICB9XG5cbiAgICAuYnRuOmhvdmVyIC5jYXJldCB7XG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogZGFya2VuKCRidG4tZGVmYXVsdC1ib3JkZXIsIDI1JSk7XG4gICAgfVxuXG59XG5cbi5icy1zZWFyY2hib3gsXG4uYnMtYWN0aW9uc2JveCB7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG59XG5cbi5icy1hY3Rpb25zYm94IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICYgLmJ0bi1ncm91cCBidXR0b24ge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbn1cblxuLmJzLXNlYXJjaGJveCB7XG4gICYgKyAuYnMtYWN0aW9uc2JveCB7XG4gICAgcGFkZGluZzogMCA4cHggNHB4O1xuICB9XG5cbiAgJiBpbnB1dC5mb3JtLWNvbnRyb2wge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLm1vYmlsZS1kZXZpY2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwO1xufVxuIiwiLyogQm9keSBzcGVjcyAqL1xuXG5ib2R5IHtcbiAgICBjb2xvcjogJHRleHQtY29sb3I7XG4gICAgYmFja2dyb3VuZDogJGJvZHktYmc7XG59XG5cblxuLyogTWVzc2FnZSB3YXJuaW5nIHVzZXJzIHRoYXQgc29tZSBmZWF0dXJlcyBtaWdodCBub3QgYmUgc3VwcG9ydGVkIGluIG9sZCBicm93c2VycyAqL1xuLmJyb3dzZXJ1cGdyYWRlIHtcbiAgbWFyZ2luOiAwLjJlbSAwO1xuICBiYWNrZ3JvdW5kOiAjY2NjO1xuICBjb2xvcjogIzAwMDtcbiAgcGFkZGluZzogMC4yZW0gMDtcbn1cbiIsIi8vIGJvd2VyOnNjc3NcbkBpbXBvcnQgXCJib3dlcl9jb21wb25lbnRzL2NvbXBhc3MtbWl4aW5zL2xpYi9jb21wYXNzL2NzczMvX3VzZXItaW50ZXJmYWNlLnNjc3NcIjtcbi8vIGVuZGJvd2VyXG5cbiAvKiBUb3BiYXIgKi9cblxuLnRvcGJhciB7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6ICMyMjI7XG4gXG4gIC5iYW5uZXItYXJlYSB7XG4gICAgYmFja2dyb3VuZDogIzIyMjtcblxuICAgIGgxIHtcbiAgICAgIG1hcmdpbjogMCAwIDAgLTgwcHg7XG4gICAgICBwYWRkaW5nOiAwIDAgMCA4MHB4O1xuICAgICAgaGVpZ2h0OiA1NXB4O1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCRraW1jaGktbG9nbykgbm8tcmVwZWF0IDI0cHggM3B4O1xuICAgICAgY29sb3I6ICRoaWdobGlnaHRzLWNvbG9yO1xuICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1ib2xkOyBcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBmb250LXNpemU6IDEuNTcxZW07XG4gICAgICBsaW5lLWhlaWdodDogNTVweDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIEBpbmNsdWRlIHVzZXItc2VsZWN0KG5vbmUpO1xuICAgIH1cblxuICB9XG5cbiAgLnRhYi1hcmVhIHtcbiAgICBiYWNrZ3JvdW5kOiAkYnJhbmQtcHJpbWFyeTtcbiAgICBoZWlnaHQ6IDQwcHg7XG5cbiAgICBzcGFuLmhvc3RuYW1lIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYWx0ZXJuYXRlO1xuICAgICAgY29sb3I6ICRoaWdobGlnaHRzLWNvbG9yO1xuICAgICAgZm9udC1zaXplOiAxM3B0O1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDhweCAwO1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gICAgfVxuXG4gICAgdWwubmF2LW1lbnUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDAgMCAwIDI0cHg7XG5cbiAgICAgIGxpIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBAaW5jbHVkZSB1c2VyLXNlbGVjdChub25lKTtcblxuICAgICAgICBhLCAuZGlzYWJsZWQge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYm9sZDtcbiAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgIGNvbG9yOiAkaGlnaGxpZ2h0cy1jb2xvcjtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgZm9udC1zaXplOiAxM3B0O1xuICAgICAgICAgIHBhZGRpbmc6IDhweCA0MHB4O1xuICAgICAgICAgIG1pbi13aWR0aDogMTkwcHg7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAuZGlzYWJsZWQgeyBcbiAgICAgICAgICAgICAgY29sb3I6ICRkaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAuZGlnaXQtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgICAuZGlnaXQtY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICAgICAgICAgIGhlaWdodDogMjJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICM1NTU7XG4gICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjNTU1O1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWJhc2U7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDhweDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLmN1cnJlbnQge1xuXG4gICAgICAgICAgICAuZGlnaXQtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgIH1cblxuICAgICAgICAgICYuY3VycmVudC5ob3N0cyB7IGJhY2tncm91bmQ6ICRob3N0cy1jb2xvcjsgfVxuICAgICAgICAgICYuY3VycmVudC5ndWVzdHMgeyBiYWNrZ3JvdW5kOiAkZ3Vlc3RzLWNvbG9yOyB9XG4gICAgICAgICAgJi5jdXJyZW50LnRlbXBsYXRlcyB7IGJhY2tncm91bmQ6ICR0ZW1wbGF0ZXMtY29sb3I7IH1cbiAgICAgICAgICAmLmN1cnJlbnQuc3RvcmFnZSB7IGJhY2tncm91bmQ6ICRzdG9yYWdlLWNvbG9yOyB9XG4gICAgICAgICAgJi5jdXJyZW50Lm5ldHdvcmtzIHsgYmFja2dyb3VuZDogJG5ldHdvcmtzLWNvbG9yOyB9XG4gICAgICAgICAgJi5jdXJyZW50LmFkbWluaXN0cmF0aW9uIHsgYmFja2dyb3VuZDogJGFkbWluaXN0cmF0aW9uLWNvbG9yOyB9XG5cbiAgICAgIH1cblxuICAgIH1cblxuXG4gIH1cblxuICAucGFuZWwtYWN0aW9ucy1hcmVhIHtcbiAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICB9XG5cbn0iLCJAaW1wb3J0IFwiLi4vc3VwcG9ydFwiO1xuXG4vLyBUaGlzIG1peGluIHByb3ZpZGVzIGJhc2ljIHN1cHBvcnQgZm9yIENTUzMgcHJvcGVydGllcyBhbmRcbi8vIHRoZWlyIGNvcnJlc3BvbmRpbmcgZXhwZXJpbWVudGFsIENTUzIgcHJvcGVydGllcyB3aGVuXG4vLyB0aGUgaW1wbGVtZW50YXRpb25zIGFyZSBpZGVudGljYWwgZXhjZXB0IGZvciB0aGUgcHJvcGVydHlcbi8vIHByZWZpeC5cbkBtaXhpbiBleHBlcmltZW50YWwoJHByb3BlcnR5LCAkdmFsdWUsXG4gICRtb3ogICAgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSxcbiAgJHdlYmtpdCAgIDogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQsXG4gICRvICAgICAgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEsXG4gICRtcyAgICAgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbWljcm9zb2Z0LFxuICAka2h0bWwgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLWtodG1sLFxuICAkb2ZmaWNpYWwgOiB0cnVlXG4pIHtcbiAgQGlmICR3ZWJraXQgIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCAgICB7IC13ZWJraXQtI3skcHJvcGVydHl9IDogJHZhbHVlOyB9XG4gIEBpZiAka2h0bWwgICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1raHRtbCAgICAgeyAgLWtodG1sLSN7JHByb3BlcnR5fSA6ICR2YWx1ZTsgfVxuICBAaWYgJG1veiAgICAgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSAgIHsgICAgLW1vei0jeyRwcm9wZXJ0eX0gOiAkdmFsdWU7IH1cbiAgQGlmICRtcyAgICAgIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1pY3Jvc29mdCB7ICAgICAtbXMtI3skcHJvcGVydHl9IDogJHZhbHVlOyB9XG4gIEBpZiAkbyAgICAgICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1vcGVyYSAgICAgeyAgICAgIC1vLSN7JHByb3BlcnR5fSA6ICR2YWx1ZTsgfVxuICBAaWYgJG9mZmljaWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAgICAgICAjeyRwcm9wZXJ0eX0gOiAkdmFsdWU7IH1cbn1cblxuLy8gU2FtZSBhcyBleHBlcmltZW50YWwoKSwgYnV0IGZvciBjYXNlcyB3aGVuIHRoZSBwcm9wZXJ0eSBpcyB0aGUgc2FtZSBhbmQgdGhlIHZhbHVlIGlzIHZlbmRvcml6ZWRcbkBtaXhpbiBleHBlcmltZW50YWwtdmFsdWUoJHByb3BlcnR5LCAkdmFsdWUsXG4gICRtb3ogICAgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSxcbiAgJHdlYmtpdCAgIDogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQsXG4gICRvICAgICAgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEsXG4gICRtcyAgICAgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbWljcm9zb2Z0LFxuICAka2h0bWwgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLWtodG1sLFxuICAkb2ZmaWNpYWwgOiB0cnVlXG4pIHtcbiAgQGlmICR3ZWJraXQgIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCAgICB7ICN7JHByb3BlcnR5fSA6IC13ZWJraXQtI3skdmFsdWV9OyB9XG4gIEBpZiAka2h0bWwgICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1raHRtbCAgICAgeyAjeyRwcm9wZXJ0eX0gOiAgLWtodG1sLSN7JHZhbHVlfTsgfVxuICBAaWYgJG1veiAgICAgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSAgIHsgI3skcHJvcGVydHl9IDogICAgLW1vei0jeyR2YWx1ZX07IH1cbiAgQGlmICRtcyAgICAgIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1pY3Jvc29mdCB7ICN7JHByb3BlcnR5fSA6ICAgICAtbXMtI3skdmFsdWV9OyB9XG4gIEBpZiAkbyAgICAgICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1vcGVyYSAgICAgeyAjeyRwcm9wZXJ0eX0gOiAgICAgIC1vLSN7JHZhbHVlfTsgfVxuICBAaWYgJG9mZmljaWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgI3skcHJvcGVydHl9IDogICAgICAgICAjeyR2YWx1ZX07IH1cbn1cbiIsIi8vIFVzZXIgSW50ZXJmYWNlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhpcyBmaWxlIGNhbiBiZSBleHBhbmRlZCB0byBoYW5kbGUgYWxsIHRoZSB1c2VyIGludGVyZmFjZSBwcm9wZXJ0aWVzIGFzXG4vLyB0aGV5IGJlY29tZSBhdmFpbGFibGUgaW4gYnJvd3NlcnM6XG4vLyBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAwL1dELWNzczMtdXNlcmludC0yMDAwMDIxNlxuQGltcG9ydCBcInNoYXJlZFwiO1xuXG5cbi8vIFRoaXMgcHJvcGVydHkgY29udHJvbHMgdGhlIHNlbGVjdGlvbiBtb2RlbCBhbmQgZ3JhbnVsYXJpdHkgb2YgYW4gZWxlbWVudC5cbi8vXG4vLyBAcGFyYW0gJHNlbGVjdFxuLy8gICBbIG5vbmUgfCB0ZXh0IHwgdG9nZ2xlIHwgZWxlbWVudCB8IGVsZW1lbnRzIHwgYWxsIHwgaW5oZXJpdCBdXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdCkge1xuICAkc2VsZWN0OiB1bnF1b3RlKCRzZWxlY3QpO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwodXNlci1zZWxlY3QsICRzZWxlY3QsXG4gICAgLW1veiwgLXdlYmtpdCwgbm90KC1vKSwgbm90KC1tcyksIC1raHRtbCwgb2ZmaWNpYWxcbiAgKTtcbn1cbiIsIi5sb2dpbi1hcmVhIHtcbiAgICBtYXJnaW46IDkwcHggYXV0byAwO1xuICAgIHdpZHRoOiAzMDBweDtcblxuICAgIC5idG4tbG9naW4ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7IFxuICAgIH1cblxuICAgIC5jb2wtbWQtMTIsIC5jb2wtbGctMTIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAuYm9vdHN0cmFwLXNlbGVjdCxcbiAgICAuc2VsZWN0cGlja2VyIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1saWdodDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B0O1xuICAgIH1cblxuICAgIC5kcm9wZG93bi10b2dnbGUuc2VsZWN0cGlja2VyIHtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgIH1cblxuICAgIC5mb3JtLWdyb3VwIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICB9XG5cbiAgICAuZm9ybS1ncm91cDpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbn1cbiIsIi5idG4ge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYmFzZTtcbiAgICBmb250LXNpemU6IDEzcHQ7XG59XG5cbi5idG4tbG9naW4ge1xuICBAaW5jbHVkZSBidXR0b24tdmFyaWFudCgkYnRuLWxvZ2luLWNvbG9yLCAkYnRuLWxvZ2luLWJnLCAkYnRuLWxvZ2luLWJvcmRlcik7XG59IiwiLypcbiogUHJvamVjdCBLaW1jaGlcbipcbiogQ29weXJpZ2h0IElCTSwgQ29ycC4gMjAxNVxuKlxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgJ0xpY2Vuc2UnKTtcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbipcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuKlxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuKi9cblxuLmRpYWxvZy1ib3JkZXItZ3JleSB7XG4gICAgYmFja2dyb3VuZC1jbGlwOiBib3JkZXItYm94O1xuICAgIGJvcmRlcjogNnB4IHNvbGlkIHJnYmEoMTcwLDE3MCwxNzAsMC4zKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi5kaWFsb2ctY29udGFpbmVyIHtcbiAgICBib3JkZXI6IDNweCBzb2xpZCAjOTk5OTk5O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuXG4uZGlhbG9nLWNvbnRhaW5lciAuZGlhbG9nLXRpdGxlIHtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgcGFkZGluZzogMjBweCAwIDIwcHggMjBweDtcbiAgICBtYXJnaW46IDA7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZm9udC1zaXplOiAyN3B4O1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbGlnaHQ7XG4gICAgZm9udC13ZWlnaHQ6IDMwMCAhaW1wb3J0YW50O1xufVxuXG4uZGlhbG9nLWNvbnRhaW5lciAuZGlhbG9nLWJvZHkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmRpYWxvZy1jb250YWluZXIgLmRpYWxvZy1mb290ZXIge1xuICAgIGhlaWdodDogNTBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4QUJGO1xufVxuXG4uZGlhbG9nLWNvbnRhaW5lciAuZGlhbG9nLWZvb3RlciAuZGlhbG9nLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHdpZHRoOiA3NXB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmRpYWxvZy1jb250YWluZXIgLmRpYWxvZy1mb290ZXIgLmRpYWxvZy1idXR0b246aG92ZXJ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0VFRUVFRTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59IiwiLypcbiogUHJvamVjdCBLaW1jaGlcbipcbiogQ29weXJpZ2h0IElCTSwgQ29ycC4gMjAxNVxuKlxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgJ0xpY2Vuc2UnKTtcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbipcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuKlxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuKi9cblxuLy9cbi8vIE1vZGFsc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gLm1vZGFsLW9wZW4gICAgICAtIGJvZHkgY2xhc3MgZm9yIGtpbGxpbmcgdGhlIHNjcm9sbFxuLy8gLm1vZGFsICAgICAgICAgICAtIGNvbnRhaW5lciB0byBzY3JvbGwgd2l0aGluXG4vLyAubW9kYWwtZGlhbG9nICAgIC0gcG9zaXRpb25pbmcgc2hlbGwgZm9yIHRoZSBhY3R1YWwgbW9kYWxcbi8vIC5tb2RhbC1jb250ZW50ICAgLSBhY3R1YWwgbW9kYWwgdy8gYmcgYW5kIGNvcm5lcnMgYW5kIHNoaXRcblxuLy8gS2lsbCB0aGUgc2Nyb2xsIG9uIHRoZSBib2R5XG4ubW9kYWwtb3BlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vIENvbnRhaW5lciB0aGF0IHRoZSBtb2RhbCBzY3JvbGxzIHdpdGhpblxuLm1vZGFsIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6ICR6aW5kZXgtbW9kYWw7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcblxuICAvLyBQcmV2ZW50IENocm9tZSBvbiBXaW5kb3dzIGZyb20gYWRkaW5nIGEgZm9jdXMgb3V0bGluZS4gRm9yIGRldGFpbHMsIHNlZVxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvcHVsbC8xMDk1MS5cbiAgb3V0bGluZTogMDtcblxuICAvLyBXaGVuIGZhZGluZyBpbiB0aGUgbW9kYWwsIGFuaW1hdGUgaXQgdG8gc2xpZGUgZG93blxuICAmLmZhZGUgLm1vZGFsLWRpYWxvZyB7XG4gICAgQGluY2x1ZGUgdHJhbnNsYXRlKDAsIC0yNSUpO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tdHJhbnNmb3JtKDAuM3MgZWFzZS1vdXQpO1xuICB9XG4gICYuaW4gLm1vZGFsLWRpYWxvZyB7IEBpbmNsdWRlIHRyYW5zbGF0ZSgwLCAwKSB9XG59XG4ubW9kYWwtb3BlbiAubW9kYWwge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi8vIFNoZWxsIGRpdiB0byBwb3NpdGlvbiB0aGUgbW9kYWwgd2l0aCBib3R0b20gcGFkZGluZ1xuLm1vZGFsLWRpYWxvZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbjogMTBweDtcbiAgYm9yZGVyOiA2cHggc29saWQgJG1vZGFsLWNvbnRlbnQtZmFsbGJhY2stYm9yZGVyLWNvbG9yOyAvL29sZCBicm93c2VycyBmYWxsYmFjayAoaWU4IGV0YylcbiAgYm9yZGVyOiA2cHggc29saWQgJG1vZGFsLWNvbnRlbnQtYm9yZGVyLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7ICBcbn1cblxuLy8gQWN0dWFsIG1vZGFsXG4ubW9kYWwtY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJG1vZGFsLWNvbnRlbnQtYmc7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJvcmRlcjogM3B4IHNvbGlkICM5OTk7ICAgXG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIEBpbmNsdWRlIGJveC1zaGFkb3cobm9uZSAhaW1wb3J0YW50KTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgb3V0bGluZTogMDtcbn1cblxuXG4vLyBNb2RhbCBiYWNrZ3JvdW5kXG4ubW9kYWwtYmFja2Ryb3Age1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogJHppbmRleC1tb2RhbC1iYWNrZ3JvdW5kO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbW9kYWwtYmFja2Ryb3AtYmc7XG4gIC8vIEZhZGUgZm9yIGJhY2tkcm9wXG4gICYuZmFkZSB7IEBpbmNsdWRlIG9wYWNpdHkoMCk7IH1cbiAgJi5pbiB7IEBpbmNsdWRlIG9wYWNpdHkoJG1vZGFsLWJhY2tkcm9wLW9wYWNpdHkpOyB9XG59XG5cbi8vIE1vZGFsIGhlYWRlclxuLy8gVG9wIHNlY3Rpb24gb2YgdGhlIG1vZGFsIHcvIHRpdGxlIGFuZCBkaXNtaXNzXG4ubW9kYWwtaGVhZGVyIHtcbiAgcGFkZGluZzogJG1vZGFsLXRpdGxlLXBhZGRpbmc7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbW9kYWwtaGVhZGVyLWJvcmRlci1jb2xvcjtcbiAgbWluLWhlaWdodDogKCRtb2RhbC10aXRsZS1wYWRkaW5nICsgJG1vZGFsLXRpdGxlLWxpbmUtaGVpZ2h0KTtcbn1cbi8vIENsb3NlIGljb25cbi5tb2RhbC1oZWFkZXIgLmNsb3NlIHtcbiAgbWFyZ2luLXRvcDogLTJweDtcbn1cblxuLy8gVGl0bGUgdGV4dCB3aXRoaW4gaGVhZGVyXG4ubW9kYWwtdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBsaW5lLWhlaWdodDogJG1vZGFsLXRpdGxlLWxpbmUtaGVpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMjdweDtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWxpZ2h0O1xuICAgIGZvbnQtd2VpZ2h0OiAzMDAgIWltcG9ydGFudDtcbn1cblxuLy8gTW9kYWwgYm9keVxuLy8gV2hlcmUgYWxsIG1vZGFsIGNvbnRlbnQgcmVzaWRlcyAoc2libGluZyBvZiAubW9kYWwtaGVhZGVyIGFuZCAubW9kYWwtZm9vdGVyKVxuLm1vZGFsLWJvZHkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6ICRtb2RhbC1pbm5lci1wYWRkaW5nO1xufVxuXG4vLyBGb290ZXIgKGZvciBhY3Rpb25zKVxuLm1vZGFsLWZvb3RlciB7XG4gIHBhZGRpbmc6ICRtb2RhbC1pbm5lci1wYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3A6IDA7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIEBpbmNsdWRlIGNsZWFyZml4OyAvLyBjbGVhciBpdCBpbiBjYXNlIGZvbGtzIHVzZSAucHVsbC0qIGNsYXNzZXMgb24gYnV0dG9uc1xuXG4gIC5idG4ge1xuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgIG1pbi13aWR0aDogNzVweDtcbiAgICB9XG5cbiAgLy8gUHJvcGVybHkgc3BhY2Ugb3V0IGJ1dHRvbnNcbiAgLmJ0biArIC5idG4ge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgLy8gYWNjb3VudCBmb3IgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB3aGljaCBnZXRzIHRoZSBib3R0b20gbWFyZ2luIGxpa2UgYWxsIG90aGVyIGlucHV0c1xuICB9XG4gIC8vIGJ1dCBvdmVycmlkZSB0aGF0IGZvciBidXR0b24gZ3JvdXBzXG4gIC5idG4tZ3JvdXAgLmJ0biArIC5idG4ge1xuICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICB9XG4gIC8vIGFuZCBvdmVycmlkZSBpdCBmb3IgYmxvY2sgYnV0dG9ucyBhcyB3ZWxsXG4gIC5idG4tYmxvY2sgKyAuYnRuLWJsb2NrIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuXG4vLyBNZWFzdXJlIHNjcm9sbGJhciB3aWR0aCBmb3IgcGFkZGluZyBib2R5IGR1cmluZyBtb2RhbCBzaG93L2hpZGVcbi5tb2RhbC1zY3JvbGxiYXItbWVhc3VyZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtOTk5OXB4O1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBvdmVyZmxvdzogc2Nyb2xsO1xufVxuXG4vLyBTY2FsZSB1cCB0aGUgbW9kYWxcbkBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikge1xuICAvLyBBdXRvbWF0aWNhbGx5IHNldCBtb2RhbCdzIHdpZHRoIGZvciBsYXJnZXIgdmlld3BvcnRzXG4gIC5tb2RhbC1kaWFsb2cge1xuICAgIHdpZHRoOiAkbW9kYWwtbWQ7XG4gICAgbWFyZ2luOiAzMHB4IGF1dG87XG4gIH1cbiAgLm1vZGFsLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coMCA1cHggMTVweCByZ2JhKDAsMCwwLC41KSk7XG4gIH1cblxuICAvLyBNb2RhbCBzaXplc1xuICAubW9kYWwtc20geyB3aWR0aDogJG1vZGFsLXNtOyB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLW1kLW1pbikge1xuICAubW9kYWwtbGcgeyB3aWR0aDogJG1vZGFsLWxnOyB9XG59XG5cbi5tb2RhbCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHsgXG4gIC5tb2RhbDpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxufVxuXG4ubW9kYWwtZGlhbG9nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufSIsIi8qXG4qIFByb2plY3QgS2ltY2hpXG4qXG4qIENvcHlyaWdodCBJQk0sIENvcnAuIDIwMTVcbipcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICdMaWNlbnNlJyk7XG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4qXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbipcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLFxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cblxuLy9cbi8vIE1lbnUtRmxhdCBEcm9wLURvd25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIERyb3Bkb3duIGFycm93L2NhcmV0XG5cbi5tZW51LWZsYXQge1xuXG4gICAgLmJ0biB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRraW1jaGktZHJvcGRvd24gIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiAxNjBweDtcbiAgICAgICAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYm9sZDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJ0bjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIHBhZGRpbmc6IDRweCA0NXB4IDVweCAzOHB4O1xuXG4gICAgICAgICYgPiBpIHtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgICAgICB3aWR0aDogMjZweDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDZweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYgPiBpOmJlZm9yZSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLmNhcmV0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGJvcmRlci10b3A6IDA7XG4gICAgYm9yZGVyLXRvcDogMCBcXDk7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogXCJmb250ZWxsb1wiO1xuICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgIHNwZWFrOiBub25lO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAgICAgICAgICAgd2lkdGg6IDEuMmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogLjVlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMmVtO1xuICAgICAgICAgICAgY29udGVudDogJ1xcZTg2MSc7XG4gICAgICB9XG5cbiAgICB9XG5cblxuXG4gICAgLy8gVGhlIGRyb3Bkb3duIHdyYXBwZXIgKGRpdilcbiAgICAmLmRyb3B1cCxcbiAgICAmLmRyb3Bkb3duIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAvLyBQcmV2ZW50IHRoZSBmb2N1cyBvbiB0aGUgZHJvcGRvd24gdG9nZ2xlIHdoZW4gY2xvc2luZyBkcm9wZG93bnNcbiAgICAuZHJvcGRvd24tdG9nZ2xlOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgfVxuXG4gICAgLy8gVGhlIGRyb3Bkb3duIG1lbnUgKHVsKVxuICAgIC5kcm9wZG93bi1tZW51IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMTAwJTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB6LWluZGV4OiAkemluZGV4LWRyb3Bkb3duO1xuICAgICAgZGlzcGxheTogbm9uZTsgLy8gbm9uZSBieSBkZWZhdWx0LCBidXQgYmxvY2sgb24gXCJvcGVuXCIgb2YgdGhlIG1lbnVcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWluLXdpZHRoOiAxNjBweDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IC8vIG92ZXJyaWRlIGRlZmF1bHQgdWxcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICBmb250LXNpemU6ICRmb250LXNpemUtYnRuO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDsgLy8gRW5zdXJlcyBwcm9wZXIgYWxpZ25tZW50IGlmIHBhcmVudCBoYXMgaXQgY2hhbmdlZCAoZS5nLiwgbW9kYWwgZm9vdGVyKVxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1lbnUtZmxhdC1kcm9wZG93bi1iZztcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICBAaW5jbHVkZSBib3gtc2hhZG93KG5vbmUgIWltcG9ydGFudCk7XG4gICAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICAgICAgICAgLy8gQWxpZ25zIHRoZSBkcm9wZG93biBtZW51IHRvIHJpZ2h0XG4gICAgICAgICAgLy9cbiAgICAgICAgICAvLyBEZXByZWNhdGVkIGFzIG9mIDMuMS4wIGluIGZhdm9yIG9mIGAuZHJvcGRvd24tbWVudS1bZGlyXWBcbiAgICAgICAgICAmLnB1bGwtcmlnaHQge1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIERpdmlkZXJzIChiYXNpY2FsbHkgYW4gaHIpIHdpdGhpbiB0aGUgZHJvcGRvd25cbiAgICAgICAgICAuZGl2aWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBuYXYtZGl2aWRlcigkbWVudS1mbGF0LWRyb3Bkb3duLWRpdmlkZXItYmcpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgID4gbGkgPiBhIHtcbiAgICAgICAgICAgICAgLy9ib3JkZXItdG9wOiAxcHggc29saWQgJG1lbnUtZmxhdC1kcm9wZG93bi1kaXZpZGVyLWJnO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRtZW51LWZsYXQtZHJvcGRvd24tYm9yZGVyO1xuICAgICAgICAgICAgQGluY2x1ZGUgYm94LXNoYWRvdyhpbnNldCAwcHggMXB4IDBweCAwcHggJG1lbnUtZmxhdC1kcm9wZG93bi1kaXZpZGVyLWJnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICA+IGxpOmZpcnN0LWNoaWxkID4gYSB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJG1lbnUtZmxhdC1kcm9wZG93bi1iZztcbiAgICAgICAgICAgIEBpbmNsdWRlIGJveC1zaGFkb3cobm9uZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPiBsaS5jcml0aWNhbDpsYXN0LWNoaWxkID4gYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBib3gtc2hhZG93KG5vbmUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIExpbmtzIHdpdGhpbiB0aGUgZHJvcGRvd24gbWVudVxuICAgICAgICAgID4gbGkgPiBhIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogNHB4IDZweDtcbiAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtbWVudS1mbGF0O1xuICAgICAgICAgICAgY29sb3I6ICRtZW51LWZsYXQtdGV4dDtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IC8vIHByZXZlbnQgbGlua3MgZnJvbSByYW5kb21seSBicmVha2luZyBvbnRvIG5ldyBsaW5lc1xuXG4gICAgICAgICAgICAgICAgPiBpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNnB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDI2cHg7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gSG92ZXIvRm9jdXMgc3RhdGVcbiAgICAuZHJvcGRvd24tbWVudSA+IGxpID4gYSB7XG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgY29sb3I6ICRtZW51LWZsYXQtZHJvcGRvd24tbGluay1ob3Zlci1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1lbnUtZmxhdC1kcm9wZG93bi1saW5rLWhvdmVyLWJnO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFjdGl2ZSBzdGF0ZVxuICAgIC5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGEge1xuICAgICAgJixcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRtZW51LWZsYXQtZHJvcGRvd24tbGluay1hY3RpdmUtY29sb3I7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1lbnUtZmxhdC1kcm9wZG93bi1saW5rLWFjdGl2ZS1iZztcbiAgICAgIH1cbiAgICB9XG5cblxuICAgIC5kcm9wZG93bi1tZW51ID4gbGkuY3JpdGljYWwgPiBhIHtcbiAgICAgICAgYmFja2dyb3VuZDogJG1lbnUtZmxhdC1kcm9wZG93bi1jcml0aWNhbC1iZztcbiAgICB9XG5cbiAgICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAgIC8vXG4gICAgLy8gR3JheSBvdXQgdGV4dCBhbmQgZW5zdXJlIHRoZSBob3Zlci9mb2N1cyBzdGF0ZSByZW1haW5zIGdyYXlcblxuICAgIC5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYSB7XG4gICAgICAmLFxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJGRyb3Bkb3duLWxpbmstZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG5cbiAgICAgIC8vIE51a2UgaG92ZXIvZm9jdXMgZWZmZWN0c1xuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyAvLyBSZW1vdmUgQ1NTIGdyYWRpZW50XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWZpbHRlcjtcbiAgICAgICAgY3Vyc29yOiAkY3Vyc29yLWRpc2FibGVkO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE9wZW4gc3RhdGUgZm9yIHRoZSBkcm9wZG93blxuICAgICYub3BlbiB7XG5cbiAgICAgICAgLmJ0biB7XG4gICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgICAgfVxuXG4gICAgICAvLyBTaG93IHRoZSBtZW51XG4gICAgICA+IC5kcm9wZG93bi1tZW51IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIC5jYXJldCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICMzYTM5M2I7XG4gICAgICB9XG5cbiAgICAgIC5jYXJldDpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnXFxlODY0JztcbiAgICAgIH1cblxuICAgICAgLy8gUmVtb3ZlIHRoZSBvdXRsaW5lIHdoZW4gOmZvY3VzIGlzIHRyaWdnZXJlZFxuICAgICAgPiBhIHtcbiAgICAgICAgb3V0bGluZTogMDtcbiAgICAgIH1cbiAgICB9XG5cbn1cblxuLy8gTWVudSBwb3NpdGlvbmluZ1xuLy9cbi8vIEFkZCBleHRyYSBjbGFzcyB0byBgLmRyb3Bkb3duLW1lbnVgIHRvIGZsaXAgdGhlIGFsaWdubWVudCBvZiB0aGUgZHJvcGRvd25cbi8vIG1lbnUgd2l0aCB0aGUgcGFyZW50LlxuLmRyb3Bkb3duLW1lbnUtcmlnaHQge1xuICBsZWZ0OiBhdXRvOyAvLyBSZXNldCB0aGUgZGVmYXVsdCBmcm9tIGAuZHJvcGRvd24tbWVudWBcbiAgcmlnaHQ6IDA7XG59XG4vLyBXaXRoIHYzLCB3ZSBlbmFibGVkIGF1dG8tZmxpcHBpbmcgaWYgeW91IGhhdmUgYSBkcm9wZG93biB3aXRoaW4gYSByaWdodFxuLy8gYWxpZ25lZCBuYXYgY29tcG9uZW50LiBUbyBlbmFibGUgdGhlIHVuZG9pbmcgb2YgdGhhdCwgd2UgcHJvdmlkZSBhbiBvdmVycmlkZVxuLy8gdG8gcmVzdG9yZSB0aGUgZGVmYXVsdCBkcm9wZG93biBtZW51IGFsaWdubWVudC5cbi8vXG4vLyBUaGlzIGlzIG9ubHkgZm9yIGxlZnQtYWxpZ25pbmcgYSBkcm9wZG93biBtZW51IHdpdGhpbiBhIGAubmF2YmFyLXJpZ2h0YCBvclxuLy8gYC5wdWxsLXJpZ2h0YCBuYXYgY29tcG9uZW50LlxuLmRyb3Bkb3duLW1lbnUtbGVmdCB7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiBhdXRvO1xufVxuXG4vLyBEcm9wZG93biBzZWN0aW9uIGhlYWRlcnNcbi5kcm9wZG93bi1oZWFkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogM3B4IDIwcHg7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlO1xuICBjb2xvcjogJGRyb3Bkb3duLWhlYWRlci1jb2xvcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgLy8gYXMgd2l0aCA+IGxpID4gYVxufVxuXG4vLyBCYWNrZHJvcCB0byBjYXRjaCBib2R5IGNsaWNrcyBvbiBtb2JpbGUsIGV0Yy5cbi5kcm9wZG93bi1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAoJHppbmRleC1kcm9wZG93biAtIDEwKTtcbn1cblxuLy8gUmlnaHQgYWxpZ25lZCBkcm9wZG93bnNcbi5wdWxsLXJpZ2h0ID4gLmRyb3Bkb3duLW1lbnUge1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bztcbn1cblxuLy8gQWxsb3cgZm9yIGRyb3Bkb3ducyB0byBnbyBib3R0b20gdXAgKGFrYSwgZHJvcHVwLW1lbnUpXG4vL1xuLy8gSnVzdCBhZGQgLmRyb3B1cCBhZnRlciB0aGUgc3RhbmRhcmQgLmRyb3Bkb3duIGNsYXNzIGFuZCB5b3UncmUgc2V0LCBicm8uXG4vLyBUT0RPOiBhYnN0cmFjdCB0aGlzIHNvIHRoYXQgdGhlIG5hdmJhciBmaXhlZCBzdHlsZXMgYXJlIG5vdCBwbGFjZWQgaGVyZT9cblxuLmRyb3B1cCxcbi5uYXZiYXItZml4ZWQtYm90dG9tIC5kcm9wZG93biB7XG4gIC8vIFJldmVyc2UgdGhlIGNhcmV0XG4gIC5jYXJldCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBib3JkZXItYm90dG9tOiAkY2FyZXQtd2lkdGgtYmFzZSBkYXNoZWQ7XG4gICAgYm9yZGVyLWJvdHRvbTogJGNhcmV0LXdpZHRoLWJhc2Ugc29saWQgXFw5OyAvLyBJRThcbiAgICBjb250ZW50OiBcIlwiO1xuICB9XG4gIC8vIERpZmZlcmVudCBwb3NpdGlvbmluZyBmb3IgYm90dG9tIHVwIG1lbnVcbiAgLmRyb3Bkb3duLW1lbnUge1xuICAgIHRvcDogYXV0bztcbiAgICBib3R0b206IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICB9XG59XG5cblxuLy8gQ29tcG9uZW50IGFsaWdubWVudFxuLy9cbi8vIFJlaXRlcmF0ZSBwZXIgbmF2YmFyLmxlc3MgYW5kIHRoZSBtb2RpZmllZCBjb21wb25lbnQgYWxpZ25tZW50IHRoZXJlLlxuXG5AbWVkaWEgKG1pbi13aWR0aDogJGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAubmF2YmFyLXJpZ2h0IHtcbiAgICAuZHJvcGRvd24tbWVudSB7XG4gICAgICByaWdodDogMDsgbGVmdDogYXV0bztcbiAgICB9XG4gICAgLy8gTmVjZXNzYXJ5IGZvciBvdmVycmlkZXMgb2YgdGhlIGRlZmF1bHQgcmlnaHQgYWxpZ25lZCBtZW51LlxuICAgIC8vIFdpbGwgcmVtb3ZlIGNvbWUgdjQgaW4gYWxsIGxpa2VsaWhvb2QuXG4gICAgLmRyb3Bkb3duLW1lbnUtbGVmdCB7XG4gICAgICBsZWZ0OiAwOyByaWdodDogYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIi5ob3N0cyB7XG5cbiAgICAvKiBCb290c3RyYXAgTW9kYWwqL1xuXG4gICAgLm1vZGFsLWZvb3RlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRob3N0cy1jb2xvcjtcbiAgICB9XG5cbn0iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */
\ No newline at end of file
diff --git a/ui/new-ui-samples/css/menu-flat.css b/ui/new-ui-samples/css/menu-flat.css
new file mode 100644
index 0000000..7621201
--- /dev/null
+++ b/ui/new-ui-samples/css/menu-flat.css
@@ -0,0 +1,179 @@
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+.menu-content {
+    position: relative;
+    height: 35px;
+    width: 170px;
+}
+
+.menu-box {
+    width: 100%;
+    height: 30px;
+    border-radius: 3px 3px 0 3px;
+    cursor: pointer;
+    vertical-align: middle;
+    background: #4E4D4F;
+    color: #EDEDED;
+    float: right;
+    position: relative;
+    padding-bottom: 5px;
+}
+
+.menu-label {
+    position: relative;
+}
+
+.menu-icon-front,
+.list-icon-front {
+    position: relative;
+    font-size: 17px;
+    line-height: 32px;
+    padding-right: 10px;
+    padding-left: 5px;
+    color: #EDEDED;
+}
+
+.menu-icon {
+    position: relative;
+    float: right;
+    line-height: 35px;
+    padding-right: 10px;
+    padding-left: 10px;
+    color: #CFCFCF;
+    font-size: 10px;
+    border-top-right-radius: 3px;
+}
+
+.menu-container {
+    border: 1px solid #999999;
+    width: 100px;
+}
+
+.menu-list {
+    position: absolute;
+    z-index: 3;
+    float: right;
+    width: 100%;
+    top: 35px;
+    padding-left: 0;
+    cursor: pointer;
+    background: #3A393B;
+    margin: 0;
+}
+
+.menu-list li {
+    list-style: none;
+    position: relative;
+    color: #EDEDED;
+    border-top: 1px groove black;
+}
+
+.menu-list li:first-child {
+    border: none;
+}
+
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+.menu-content {
+    position: relative;
+    height: 35px;
+    width: 170px;
+}
+
+.menu-box {
+    width: 100%;
+    height: 30px;
+    border-radius: 3px 3px 0 3px;
+    cursor: pointer;
+    vertical-align: middle;
+    background: #4E4D4F;
+    color: #EDEDED;
+    float: right;
+    position: relative;
+    padding-bottom: 5px;
+}
+
+.menu-label {
+    position: relative;
+}
+
+.menu-icon-front,
+.list-icon-front {
+    position: relative;
+    font-size: 17px;
+    line-height: 32px;
+    padding-right: 10px;
+    padding-left: 5px;
+    color: #EDEDED;
+}
+
+.menu-icon {
+    position: relative;
+    float: right;
+    line-height: 35px;
+    padding-right: 10px;
+    padding-left: 10px;
+    color: #CFCFCF;
+    font-size: 10px;
+    border-top-right-radius: 3px;
+}
+
+.menu-container {
+    border: 1px solid #999999;
+    width: 100px;
+}
+
+.menu-list {
+    position: absolute;
+    z-index: 3;
+    float: right;
+    width: 100%;
+    top: 35px;
+    padding-left: 0;
+    cursor: pointer;
+    background: #3A393B;
+    margin: 0;
+}
+
+.menu-list li {
+    list-style: none;
+    position: relative;
+    color: #EDEDED;
+    border-top: 1px groove black;
+}
+
+.menu-list li:first-child {
+    border: none;
+}
diff --git a/ui/new-ui-samples/css/radio-flat.css b/ui/new-ui-samples/css/radio-flat.css
new file mode 100644
index 0000000..752db90
--- /dev/null
+++ b/ui/new-ui-samples/css/radio-flat.css
@@ -0,0 +1,60 @@
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+ .radio-label {
+    position: relative;
+    cursor: pointer;
+ }
+
+ .radio-content {
+    margin-right: 10px;
+ }
+
+ .inline-radio {
+    display: inline-block;
+ }
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+ .radio-label {
+    position: relative;
+    cursor: pointer;
+ }
+
+ .radio-content {
+    margin-right: 10px;
+ }
+
+ .inline-radio {
+    display: inline-block;
+ }
\ No newline at end of file
diff --git a/ui/new-ui-samples/css/selectmenu-flat.css b/ui/new-ui-samples/css/selectmenu-flat.css
new file mode 100644
index 0000000..fd55b86
--- /dev/null
+++ b/ui/new-ui-samples/css/selectmenu-flat.css
@@ -0,0 +1,177 @@
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+.select-content {
+    position: relative;
+    height: 30px;
+    width: 170px;
+}
+
+.selected-box {
+    width: 75%;
+    height: 30px;
+    border: 1px solid #d8d8d8;
+    border-radius: 3px;
+    cursor: pointer;
+    background: #FFFFFF;
+    float: right;
+}
+
+.select-val {
+    display: none;
+}
+
+.select-label {
+    line-height: 32px;
+    vertical-align: middle;
+    position: relative;
+    margin-left: 20px;
+}
+
+.select-icon {
+    position: relative;
+    float: right;
+    line-height: 30px;
+    vertical-align: middle;
+    padding-right: 10px;
+    padding-left: 10px;
+    color: #555555;
+    font-size: 10px;
+}
+
+.select-icon:hover {
+    background: #FCFCFC;
+}
+
+.selectmenu-opt {
+    background: #FFFFFF;
+}
+
+.selectmenu-list {
+    border: 1px solid #d8d8d8;
+    width: 99%;
+    position: absolute;
+    top: 31px;
+    cursor: pointer;
+    padding: 0;
+    margin: 0;
+}
+
+.selectmenu-list li {
+    list-style: none;
+    position: relative;
+    height: 20px;
+    padding: 5px 0 5px 20px;
+    line-height: 21px;
+    vertical-align: middle;
+    border-bottom: 1px solid #d8d8d8;
+    z-index: 3;
+}
+
+.selectmenu-opt:hover {
+    background: #FCFCFC;
+}
+
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+.select-content {
+    position: relative;
+    height: 30px;
+    width: 170px;
+}
+
+.selected-box {
+    width: 75%;
+    height: 30px;
+    border: 1px solid #d8d8d8;
+    border-radius: 3px;
+    cursor: pointer;
+    background: #FFFFFF;
+    float: right;
+}
+
+.select-val {
+    display: none;
+}
+
+.select-label {
+    line-height: 32px;
+    vertical-align: middle;
+    position: relative;
+    margin-left: 20px;
+}
+
+.select-icon {
+    position: relative;
+    float: right;
+    line-height: 30px;
+    vertical-align: middle;
+    padding-right: 10px;
+    padding-left: 10px;
+    color: #555555;
+    font-size: 10px;
+}
+
+.select-icon:hover {
+    background: #FCFCFC;
+}
+
+.selectmenu-opt {
+    background: #FFFFFF;
+}
+
+.selectmenu-list {
+    border: 1px solid #d8d8d8;
+    width: 99%;
+    position: absolute;
+    top: 31px;
+    cursor: pointer;
+    padding: 0;
+    margin: 0;
+}
+
+.selectmenu-list li {
+    list-style: none;
+    position: relative;
+    height: 20px;
+    padding: 5px 0 5px 20px;
+    line-height: 21px;
+    vertical-align: middle;
+    border-bottom: 1px solid #d8d8d8;
+    z-index: 3;
+}
+
+.selectmenu-opt:hover {
+    background: #FCFCFC;
+}
diff --git a/ui/new-ui-samples/css/textbox-flat.css b/ui/new-ui-samples/css/textbox-flat.css
new file mode 100644
index 0000000..ef13afd
--- /dev/null
+++ b/ui/new-ui-samples/css/textbox-flat.css
@@ -0,0 +1,44 @@
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+ .textbox-container {
+    border: 1px solid #CCC;
+    border-radius: 3px;
+ }
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+ .textbox-container {
+    border: 1px solid #CCC;
+    border-radius: 3px;
+ }
\ No newline at end of file
diff --git a/ui/new-ui-samples/css/vendor.css b/ui/new-ui-samples/css/vendor.css
new file mode 100644
index 0000000..2dcdc22
--- /dev/null
+++ b/ui/new-ui-samples/css/vendor.css
@@ -0,0 +1,1801 @@
+/*!
+ *  Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome
+ *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */
+/* FONT PATH
+ * -------------------------- */
+ at font-face {
+  font-family: 'FontAwesome';
+  src: url('../fonts/fontawesome-webfont.eot?v=4.3.0');
+  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.3.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.3.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.3.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') format('svg');
+  font-weight: normal;
+  font-style: normal;
+}
+.fa {
+  display: inline-block;
+  font: normal normal normal 14px/1 FontAwesome;
+  font-size: inherit;
+  text-rendering: auto;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+  transform: translate(0, 0);
+}
+/* makes the font 33% larger relative to the icon container */
+.fa-lg {
+  font-size: 1.33333333em;
+  line-height: 0.75em;
+  vertical-align: -15%;
+}
+.fa-2x {
+  font-size: 2em;
+}
+.fa-3x {
+  font-size: 3em;
+}
+.fa-4x {
+  font-size: 4em;
+}
+.fa-5x {
+  font-size: 5em;
+}
+.fa-fw {
+  width: 1.28571429em;
+  text-align: center;
+}
+.fa-ul {
+  padding-left: 0;
+  margin-left: 2.14285714em;
+  list-style-type: none;
+}
+.fa-ul > li {
+  position: relative;
+}
+.fa-li {
+  position: absolute;
+  left: -2.14285714em;
+  width: 2.14285714em;
+  top: 0.14285714em;
+  text-align: center;
+}
+.fa-li.fa-lg {
+  left: -1.85714286em;
+}
+.fa-border {
+  padding: .2em .25em .15em;
+  border: solid 0.08em #eeeeee;
+  border-radius: .1em;
+}
+.pull-right {
+  float: right;
+}
+.pull-left {
+  float: left;
+}
+.fa.pull-left {
+  margin-right: .3em;
+}
+.fa.pull-right {
+  margin-left: .3em;
+}
+.fa-spin {
+  -webkit-animation: fa-spin 2s infinite linear;
+  animation: fa-spin 2s infinite linear;
+}
+.fa-pulse {
+  -webkit-animation: fa-spin 1s infinite steps(8);
+  animation: fa-spin 1s infinite steps(8);
+}
+ at -webkit-keyframes fa-spin {
+  0% {
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+  100% {
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+ at keyframes fa-spin {
+  0% {
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+  100% {
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+.fa-rotate-90 {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
+  -webkit-transform: rotate(90deg);
+  -ms-transform: rotate(90deg);
+  transform: rotate(90deg);
+}
+.fa-rotate-180 {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
+  -webkit-transform: rotate(180deg);
+  -ms-transform: rotate(180deg);
+  transform: rotate(180deg);
+}
+.fa-rotate-270 {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
+  -webkit-transform: rotate(270deg);
+  -ms-transform: rotate(270deg);
+  transform: rotate(270deg);
+}
+.fa-flip-horizontal {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
+  -webkit-transform: scale(-1, 1);
+  -ms-transform: scale(-1, 1);
+  transform: scale(-1, 1);
+}
+.fa-flip-vertical {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
+  -webkit-transform: scale(1, -1);
+  -ms-transform: scale(1, -1);
+  transform: scale(1, -1);
+}
+:root .fa-rotate-90,
+:root .fa-rotate-180,
+:root .fa-rotate-270,
+:root .fa-flip-horizontal,
+:root .fa-flip-vertical {
+  filter: none;
+}
+.fa-stack {
+  position: relative;
+  display: inline-block;
+  width: 2em;
+  height: 2em;
+  line-height: 2em;
+  vertical-align: middle;
+}
+.fa-stack-1x,
+.fa-stack-2x {
+  position: absolute;
+  left: 0;
+  width: 100%;
+  text-align: center;
+}
+.fa-stack-1x {
+  line-height: inherit;
+}
+.fa-stack-2x {
+  font-size: 2em;
+}
+.fa-inverse {
+  color: #ffffff;
+}
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+   readers do not read off random characters that represent icons */
+.fa-glass:before {
+  content: "\f000";
+}
+.fa-music:before {
+  content: "\f001";
+}
+.fa-search:before {
+  content: "\f002";
+}
+.fa-envelope-o:before {
+  content: "\f003";
+}
+.fa-heart:before {
+  content: "\f004";
+}
+.fa-star:before {
+  content: "\f005";
+}
+.fa-star-o:before {
+  content: "\f006";
+}
+.fa-user:before {
+  content: "\f007";
+}
+.fa-film:before {
+  content: "\f008";
+}
+.fa-th-large:before {
+  content: "\f009";
+}
+.fa-th:before {
+  content: "\f00a";
+}
+.fa-th-list:before {
+  content: "\f00b";
+}
+.fa-check:before {
+  content: "\f00c";
+}
+.fa-remove:before,
+.fa-close:before,
+.fa-times:before {
+  content: "\f00d";
+}
+.fa-search-plus:before {
+  content: "\f00e";
+}
+.fa-search-minus:before {
+  content: "\f010";
+}
+.fa-power-off:before {
+  content: "\f011";
+}
+.fa-signal:before {
+  content: "\f012";
+}
+.fa-gear:before,
+.fa-cog:before {
+  content: "\f013";
+}
+.fa-trash-o:before {
+  content: "\f014";
+}
+.fa-home:before {
+  content: "\f015";
+}
+.fa-file-o:before {
+  content: "\f016";
+}
+.fa-clock-o:before {
+  content: "\f017";
+}
+.fa-road:before {
+  content: "\f018";
+}
+.fa-download:before {
+  content: "\f019";
+}
+.fa-arrow-circle-o-down:before {
+  content: "\f01a";
+}
+.fa-arrow-circle-o-up:before {
+  content: "\f01b";
+}
+.fa-inbox:before {
+  content: "\f01c";
+}
+.fa-play-circle-o:before {
+  content: "\f01d";
+}
+.fa-rotate-right:before,
+.fa-repeat:before {
+  content: "\f01e";
+}
+.fa-refresh:before {
+  content: "\f021";
+}
+.fa-list-alt:before {
+  content: "\f022";
+}
+.fa-lock:before {
+  content: "\f023";
+}
+.fa-flag:before {
+  content: "\f024";
+}
+.fa-headphones:before {
+  content: "\f025";
+}
+.fa-volume-off:before {
+  content: "\f026";
+}
+.fa-volume-down:before {
+  content: "\f027";
+}
+.fa-volume-up:before {
+  content: "\f028";
+}
+.fa-qrcode:before {
+  content: "\f029";
+}
+.fa-barcode:before {
+  content: "\f02a";
+}
+.fa-tag:before {
+  content: "\f02b";
+}
+.fa-tags:before {
+  content: "\f02c";
+}
+.fa-book:before {
+  content: "\f02d";
+}
+.fa-bookmark:before {
+  content: "\f02e";
+}
+.fa-print:before {
+  content: "\f02f";
+}
+.fa-camera:before {
+  content: "\f030";
+}
+.fa-font:before {
+  content: "\f031";
+}
+.fa-bold:before {
+  content: "\f032";
+}
+.fa-italic:before {
+  content: "\f033";
+}
+.fa-text-height:before {
+  content: "\f034";
+}
+.fa-text-width:before {
+  content: "\f035";
+}
+.fa-align-left:before {
+  content: "\f036";
+}
+.fa-align-center:before {
+  content: "\f037";
+}
+.fa-align-right:before {
+  content: "\f038";
+}
+.fa-align-justify:before {
+  content: "\f039";
+}
+.fa-list:before {
+  content: "\f03a";
+}
+.fa-dedent:before,
+.fa-outdent:before {
+  content: "\f03b";
+}
+.fa-indent:before {
+  content: "\f03c";
+}
+.fa-video-camera:before {
+  content: "\f03d";
+}
+.fa-photo:before,
+.fa-image:before,
+.fa-picture-o:before {
+  content: "\f03e";
+}
+.fa-pencil:before {
+  content: "\f040";
+}
+.fa-map-marker:before {
+  content: "\f041";
+}
+.fa-adjust:before {
+  content: "\f042";
+}
+.fa-tint:before {
+  content: "\f043";
+}
+.fa-edit:before,
+.fa-pencil-square-o:before {
+  content: "\f044";
+}
+.fa-share-square-o:before {
+  content: "\f045";
+}
+.fa-check-square-o:before {
+  content: "\f046";
+}
+.fa-arrows:before {
+  content: "\f047";
+}
+.fa-step-backward:before {
+  content: "\f048";
+}
+.fa-fast-backward:before {
+  content: "\f049";
+}
+.fa-backward:before {
+  content: "\f04a";
+}
+.fa-play:before {
+  content: "\f04b";
+}
+.fa-pause:before {
+  content: "\f04c";
+}
+.fa-stop:before {
+  content: "\f04d";
+}
+.fa-forward:before {
+  content: "\f04e";
+}
+.fa-fast-forward:before {
+  content: "\f050";
+}
+.fa-step-forward:before {
+  content: "\f051";
+}
+.fa-eject:before {
+  content: "\f052";
+}
+.fa-chevron-left:before {
+  content: "\f053";
+}
+.fa-chevron-right:before {
+  content: "\f054";
+}
+.fa-plus-circle:before {
+  content: "\f055";
+}
+.fa-minus-circle:before {
+  content: "\f056";
+}
+.fa-times-circle:before {
+  content: "\f057";
+}
+.fa-check-circle:before {
+  content: "\f058";
+}
+.fa-question-circle:before {
+  content: "\f059";
+}
+.fa-info-circle:before {
+  content: "\f05a";
+}
+.fa-crosshairs:before {
+  content: "\f05b";
+}
+.fa-times-circle-o:before {
+  content: "\f05c";
+}
+.fa-check-circle-o:before {
+  content: "\f05d";
+}
+.fa-ban:before {
+  content: "\f05e";
+}
+.fa-arrow-left:before {
+  content: "\f060";
+}
+.fa-arrow-right:before {
+  content: "\f061";
+}
+.fa-arrow-up:before {
+  content: "\f062";
+}
+.fa-arrow-down:before {
+  content: "\f063";
+}
+.fa-mail-forward:before,
+.fa-share:before {
+  content: "\f064";
+}
+.fa-expand:before {
+  content: "\f065";
+}
+.fa-compress:before {
+  content: "\f066";
+}
+.fa-plus:before {
+  content: "\f067";
+}
+.fa-minus:before {
+  content: "\f068";
+}
+.fa-asterisk:before {
+  content: "\f069";
+}
+.fa-exclamation-circle:before {
+  content: "\f06a";
+}
+.fa-gift:before {
+  content: "\f06b";
+}
+.fa-leaf:before {
+  content: "\f06c";
+}
+.fa-fire:before {
+  content: "\f06d";
+}
+.fa-eye:before {
+  content: "\f06e";
+}
+.fa-eye-slash:before {
+  content: "\f070";
+}
+.fa-warning:before,
+.fa-exclamation-triangle:before {
+  content: "\f071";
+}
+.fa-plane:before {
+  content: "\f072";
+}
+.fa-calendar:before {
+  content: "\f073";
+}
+.fa-random:before {
+  content: "\f074";
+}
+.fa-comment:before {
+  content: "\f075";
+}
+.fa-magnet:before {
+  content: "\f076";
+}
+.fa-chevron-up:before {
+  content: "\f077";
+}
+.fa-chevron-down:before {
+  content: "\f078";
+}
+.fa-retweet:before {
+  content: "\f079";
+}
+.fa-shopping-cart:before {
+  content: "\f07a";
+}
+.fa-folder:before {
+  content: "\f07b";
+}
+.fa-folder-open:before {
+  content: "\f07c";
+}
+.fa-arrows-v:before {
+  content: "\f07d";
+}
+.fa-arrows-h:before {
+  content: "\f07e";
+}
+.fa-bar-chart-o:before,
+.fa-bar-chart:before {
+  content: "\f080";
+}
+.fa-twitter-square:before {
+  content: "\f081";
+}
+.fa-facebook-square:before {
+  content: "\f082";
+}
+.fa-camera-retro:before {
+  content: "\f083";
+}
+.fa-key:before {
+  content: "\f084";
+}
+.fa-gears:before,
+.fa-cogs:before {
+  content: "\f085";
+}
+.fa-comments:before {
+  content: "\f086";
+}
+.fa-thumbs-o-up:before {
+  content: "\f087";
+}
+.fa-thumbs-o-down:before {
+  content: "\f088";
+}
+.fa-star-half:before {
+  content: "\f089";
+}
+.fa-heart-o:before {
+  content: "\f08a";
+}
+.fa-sign-out:before {
+  content: "\f08b";
+}
+.fa-linkedin-square:before {
+  content: "\f08c";
+}
+.fa-thumb-tack:before {
+  content: "\f08d";
+}
+.fa-external-link:before {
+  content: "\f08e";
+}
+.fa-sign-in:before {
+  content: "\f090";
+}
+.fa-trophy:before {
+  content: "\f091";
+}
+.fa-github-square:before {
+  content: "\f092";
+}
+.fa-upload:before {
+  content: "\f093";
+}
+.fa-lemon-o:before {
+  content: "\f094";
+}
+.fa-phone:before {
+  content: "\f095";
+}
+.fa-square-o:before {
+  content: "\f096";
+}
+.fa-bookmark-o:before {
+  content: "\f097";
+}
+.fa-phone-square:before {
+  content: "\f098";
+}
+.fa-twitter:before {
+  content: "\f099";
+}
+.fa-facebook-f:before,
+.fa-facebook:before {
+  content: "\f09a";
+}
+.fa-github:before {
+  content: "\f09b";
+}
+.fa-unlock:before {
+  content: "\f09c";
+}
+.fa-credit-card:before {
+  content: "\f09d";
+}
+.fa-rss:before {
+  content: "\f09e";
+}
+.fa-hdd-o:before {
+  content: "\f0a0";
+}
+.fa-bullhorn:before {
+  content: "\f0a1";
+}
+.fa-bell:before {
+  content: "\f0f3";
+}
+.fa-certificate:before {
+  content: "\f0a3";
+}
+.fa-hand-o-right:before {
+  content: "\f0a4";
+}
+.fa-hand-o-left:before {
+  content: "\f0a5";
+}
+.fa-hand-o-up:before {
+  content: "\f0a6";
+}
+.fa-hand-o-down:before {
+  content: "\f0a7";
+}
+.fa-arrow-circle-left:before {
+  content: "\f0a8";
+}
+.fa-arrow-circle-right:before {
+  content: "\f0a9";
+}
+.fa-arrow-circle-up:before {
+  content: "\f0aa";
+}
+.fa-arrow-circle-down:before {
+  content: "\f0ab";
+}
+.fa-globe:before {
+  content: "\f0ac";
+}
+.fa-wrench:before {
+  content: "\f0ad";
+}
+.fa-tasks:before {
+  content: "\f0ae";
+}
+.fa-filter:before {
+  content: "\f0b0";
+}
+.fa-briefcase:before {
+  content: "\f0b1";
+}
+.fa-arrows-alt:before {
+  content: "\f0b2";
+}
+.fa-group:before,
+.fa-users:before {
+  content: "\f0c0";
+}
+.fa-chain:before,
+.fa-link:before {
+  content: "\f0c1";
+}
+.fa-cloud:before {
+  content: "\f0c2";
+}
+.fa-flask:before {
+  content: "\f0c3";
+}
+.fa-cut:before,
+.fa-scissors:before {
+  content: "\f0c4";
+}
+.fa-copy:before,
+.fa-files-o:before {
+  content: "\f0c5";
+}
+.fa-paperclip:before {
+  content: "\f0c6";
+}
+.fa-save:before,
+.fa-floppy-o:before {
+  content: "\f0c7";
+}
+.fa-square:before {
+  content: "\f0c8";
+}
+.fa-navicon:before,
+.fa-reorder:before,
+.fa-bars:before {
+  content: "\f0c9";
+}
+.fa-list-ul:before {
+  content: "\f0ca";
+}
+.fa-list-ol:before {
+  content: "\f0cb";
+}
+.fa-strikethrough:before {
+  content: "\f0cc";
+}
+.fa-underline:before {
+  content: "\f0cd";
+}
+.fa-table:before {
+  content: "\f0ce";
+}
+.fa-magic:before {
+  content: "\f0d0";
+}
+.fa-truck:before {
+  content: "\f0d1";
+}
+.fa-pinterest:before {
+  content: "\f0d2";
+}
+.fa-pinterest-square:before {
+  content: "\f0d3";
+}
+.fa-google-plus-square:before {
+  content: "\f0d4";
+}
+.fa-google-plus:before {
+  content: "\f0d5";
+}
+.fa-money:before {
+  content: "\f0d6";
+}
+.fa-caret-down:before {
+  content: "\f0d7";
+}
+.fa-caret-up:before {
+  content: "\f0d8";
+}
+.fa-caret-left:before {
+  content: "\f0d9";
+}
+.fa-caret-right:before {
+  content: "\f0da";
+}
+.fa-columns:before {
+  content: "\f0db";
+}
+.fa-unsorted:before,
+.fa-sort:before {
+  content: "\f0dc";
+}
+.fa-sort-down:before,
+.fa-sort-desc:before {
+  content: "\f0dd";
+}
+.fa-sort-up:before,
+.fa-sort-asc:before {
+  content: "\f0de";
+}
+.fa-envelope:before {
+  content: "\f0e0";
+}
+.fa-linkedin:before {
+  content: "\f0e1";
+}
+.fa-rotate-left:before,
+.fa-undo:before {
+  content: "\f0e2";
+}
+.fa-legal:before,
+.fa-gavel:before {
+  content: "\f0e3";
+}
+.fa-dashboard:before,
+.fa-tachometer:before {
+  content: "\f0e4";
+}
+.fa-comment-o:before {
+  content: "\f0e5";
+}
+.fa-comments-o:before {
+  content: "\f0e6";
+}
+.fa-flash:before,
+.fa-bolt:before {
+  content: "\f0e7";
+}
+.fa-sitemap:before {
+  content: "\f0e8";
+}
+.fa-umbrella:before {
+  content: "\f0e9";
+}
+.fa-paste:before,
+.fa-clipboard:before {
+  content: "\f0ea";
+}
+.fa-lightbulb-o:before {
+  content: "\f0eb";
+}
+.fa-exchange:before {
+  content: "\f0ec";
+}
+.fa-cloud-download:before {
+  content: "\f0ed";
+}
+.fa-cloud-upload:before {
+  content: "\f0ee";
+}
+.fa-user-md:before {
+  content: "\f0f0";
+}
+.fa-stethoscope:before {
+  content: "\f0f1";
+}
+.fa-suitcase:before {
+  content: "\f0f2";
+}
+.fa-bell-o:before {
+  content: "\f0a2";
+}
+.fa-coffee:before {
+  content: "\f0f4";
+}
+.fa-cutlery:before {
+  content: "\f0f5";
+}
+.fa-file-text-o:before {
+  content: "\f0f6";
+}
+.fa-building-o:before {
+  content: "\f0f7";
+}
+.fa-hospital-o:before {
+  content: "\f0f8";
+}
+.fa-ambulance:before {
+  content: "\f0f9";
+}
+.fa-medkit:before {
+  content: "\f0fa";
+}
+.fa-fighter-jet:before {
+  content: "\f0fb";
+}
+.fa-beer:before {
+  content: "\f0fc";
+}
+.fa-h-square:before {
+  content: "\f0fd";
+}
+.fa-plus-square:before {
+  content: "\f0fe";
+}
+.fa-angle-double-left:before {
+  content: "\f100";
+}
+.fa-angle-double-right:before {
+  content: "\f101";
+}
+.fa-angle-double-up:before {
+  content: "\f102";
+}
+.fa-angle-double-down:before {
+  content: "\f103";
+}
+.fa-angle-left:before {
+  content: "\f104";
+}
+.fa-angle-right:before {
+  content: "\f105";
+}
+.fa-angle-up:before {
+  content: "\f106";
+}
+.fa-angle-down:before {
+  content: "\f107";
+}
+.fa-desktop:before {
+  content: "\f108";
+}
+.fa-laptop:before {
+  content: "\f109";
+}
+.fa-tablet:before {
+  content: "\f10a";
+}
+.fa-mobile-phone:before,
+.fa-mobile:before {
+  content: "\f10b";
+}
+.fa-circle-o:before {
+  content: "\f10c";
+}
+.fa-quote-left:before {
+  content: "\f10d";
+}
+.fa-quote-right:before {
+  content: "\f10e";
+}
+.fa-spinner:before {
+  content: "\f110";
+}
+.fa-circle:before {
+  content: "\f111";
+}
+.fa-mail-reply:before,
+.fa-reply:before {
+  content: "\f112";
+}
+.fa-github-alt:before {
+  content: "\f113";
+}
+.fa-folder-o:before {
+  content: "\f114";
+}
+.fa-folder-open-o:before {
+  content: "\f115";
+}
+.fa-smile-o:before {
+  content: "\f118";
+}
+.fa-frown-o:before {
+  content: "\f119";
+}
+.fa-meh-o:before {
+  content: "\f11a";
+}
+.fa-gamepad:before {
+  content: "\f11b";
+}
+.fa-keyboard-o:before {
+  content: "\f11c";
+}
+.fa-flag-o:before {
+  content: "\f11d";
+}
+.fa-flag-checkered:before {
+  content: "\f11e";
+}
+.fa-terminal:before {
+  content: "\f120";
+}
+.fa-code:before {
+  content: "\f121";
+}
+.fa-mail-reply-all:before,
+.fa-reply-all:before {
+  content: "\f122";
+}
+.fa-star-half-empty:before,
+.fa-star-half-full:before,
+.fa-star-half-o:before {
+  content: "\f123";
+}
+.fa-location-arrow:before {
+  content: "\f124";
+}
+.fa-crop:before {
+  content: "\f125";
+}
+.fa-code-fork:before {
+  content: "\f126";
+}
+.fa-unlink:before,
+.fa-chain-broken:before {
+  content: "\f127";
+}
+.fa-question:before {
+  content: "\f128";
+}
+.fa-info:before {
+  content: "\f129";
+}
+.fa-exclamation:before {
+  content: "\f12a";
+}
+.fa-superscript:before {
+  content: "\f12b";
+}
+.fa-subscript:before {
+  content: "\f12c";
+}
+.fa-eraser:before {
+  content: "\f12d";
+}
+.fa-puzzle-piece:before {
+  content: "\f12e";
+}
+.fa-microphone:before {
+  content: "\f130";
+}
+.fa-microphone-slash:before {
+  content: "\f131";
+}
+.fa-shield:before {
+  content: "\f132";
+}
+.fa-calendar-o:before {
+  content: "\f133";
+}
+.fa-fire-extinguisher:before {
+  content: "\f134";
+}
+.fa-rocket:before {
+  content: "\f135";
+}
+.fa-maxcdn:before {
+  content: "\f136";
+}
+.fa-chevron-circle-left:before {
+  content: "\f137";
+}
+.fa-chevron-circle-right:before {
+  content: "\f138";
+}
+.fa-chevron-circle-up:before {
+  content: "\f139";
+}
+.fa-chevron-circle-down:before {
+  content: "\f13a";
+}
+.fa-html5:before {
+  content: "\f13b";
+}
+.fa-css3:before {
+  content: "\f13c";
+}
+.fa-anchor:before {
+  content: "\f13d";
+}
+.fa-unlock-alt:before {
+  content: "\f13e";
+}
+.fa-bullseye:before {
+  content: "\f140";
+}
+.fa-ellipsis-h:before {
+  content: "\f141";
+}
+.fa-ellipsis-v:before {
+  content: "\f142";
+}
+.fa-rss-square:before {
+  content: "\f143";
+}
+.fa-play-circle:before {
+  content: "\f144";
+}
+.fa-ticket:before {
+  content: "\f145";
+}
+.fa-minus-square:before {
+  content: "\f146";
+}
+.fa-minus-square-o:before {
+  content: "\f147";
+}
+.fa-level-up:before {
+  content: "\f148";
+}
+.fa-level-down:before {
+  content: "\f149";
+}
+.fa-check-square:before {
+  content: "\f14a";
+}
+.fa-pencil-square:before {
+  content: "\f14b";
+}
+.fa-external-link-square:before {
+  content: "\f14c";
+}
+.fa-share-square:before {
+  content: "\f14d";
+}
+.fa-compass:before {
+  content: "\f14e";
+}
+.fa-toggle-down:before,
+.fa-caret-square-o-down:before {
+  content: "\f150";
+}
+.fa-toggle-up:before,
+.fa-caret-square-o-up:before {
+  content: "\f151";
+}
+.fa-toggle-right:before,
+.fa-caret-square-o-right:before {
+  content: "\f152";
+}
+.fa-euro:before,
+.fa-eur:before {
+  content: "\f153";
+}
+.fa-gbp:before {
+  content: "\f154";
+}
+.fa-dollar:before,
+.fa-usd:before {
+  content: "\f155";
+}
+.fa-rupee:before,
+.fa-inr:before {
+  content: "\f156";
+}
+.fa-cny:before,
+.fa-rmb:before,
+.fa-yen:before,
+.fa-jpy:before {
+  content: "\f157";
+}
+.fa-ruble:before,
+.fa-rouble:before,
+.fa-rub:before {
+  content: "\f158";
+}
+.fa-won:before,
+.fa-krw:before {
+  content: "\f159";
+}
+.fa-bitcoin:before,
+.fa-btc:before {
+  content: "\f15a";
+}
+.fa-file:before {
+  content: "\f15b";
+}
+.fa-file-text:before {
+  content: "\f15c";
+}
+.fa-sort-alpha-asc:before {
+  content: "\f15d";
+}
+.fa-sort-alpha-desc:before {
+  content: "\f15e";
+}
+.fa-sort-amount-asc:before {
+  content: "\f160";
+}
+.fa-sort-amount-desc:before {
+  content: "\f161";
+}
+.fa-sort-numeric-asc:before {
+  content: "\f162";
+}
+.fa-sort-numeric-desc:before {
+  content: "\f163";
+}
+.fa-thumbs-up:before {
+  content: "\f164";
+}
+.fa-thumbs-down:before {
+  content: "\f165";
+}
+.fa-youtube-square:before {
+  content: "\f166";
+}
+.fa-youtube:before {
+  content: "\f167";
+}
+.fa-xing:before {
+  content: "\f168";
+}
+.fa-xing-square:before {
+  content: "\f169";
+}
+.fa-youtube-play:before {
+  content: "\f16a";
+}
+.fa-dropbox:before {
+  content: "\f16b";
+}
+.fa-stack-overflow:before {
+  content: "\f16c";
+}
+.fa-instagram:before {
+  content: "\f16d";
+}
+.fa-flickr:before {
+  content: "\f16e";
+}
+.fa-adn:before {
+  content: "\f170";
+}
+.fa-bitbucket:before {
+  content: "\f171";
+}
+.fa-bitbucket-square:before {
+  content: "\f172";
+}
+.fa-tumblr:before {
+  content: "\f173";
+}
+.fa-tumblr-square:before {
+  content: "\f174";
+}
+.fa-long-arrow-down:before {
+  content: "\f175";
+}
+.fa-long-arrow-up:before {
+  content: "\f176";
+}
+.fa-long-arrow-left:before {
+  content: "\f177";
+}
+.fa-long-arrow-right:before {
+  content: "\f178";
+}
+.fa-apple:before {
+  content: "\f179";
+}
+.fa-windows:before {
+  content: "\f17a";
+}
+.fa-android:before {
+  content: "\f17b";
+}
+.fa-linux:before {
+  content: "\f17c";
+}
+.fa-dribbble:before {
+  content: "\f17d";
+}
+.fa-skype:before {
+  content: "\f17e";
+}
+.fa-foursquare:before {
+  content: "\f180";
+}
+.fa-trello:before {
+  content: "\f181";
+}
+.fa-female:before {
+  content: "\f182";
+}
+.fa-male:before {
+  content: "\f183";
+}
+.fa-gittip:before,
+.fa-gratipay:before {
+  content: "\f184";
+}
+.fa-sun-o:before {
+  content: "\f185";
+}
+.fa-moon-o:before {
+  content: "\f186";
+}
+.fa-archive:before {
+  content: "\f187";
+}
+.fa-bug:before {
+  content: "\f188";
+}
+.fa-vk:before {
+  content: "\f189";
+}
+.fa-weibo:before {
+  content: "\f18a";
+}
+.fa-renren:before {
+  content: "\f18b";
+}
+.fa-pagelines:before {
+  content: "\f18c";
+}
+.fa-stack-exchange:before {
+  content: "\f18d";
+}
+.fa-arrow-circle-o-right:before {
+  content: "\f18e";
+}
+.fa-arrow-circle-o-left:before {
+  content: "\f190";
+}
+.fa-toggle-left:before,
+.fa-caret-square-o-left:before {
+  content: "\f191";
+}
+.fa-dot-circle-o:before {
+  content: "\f192";
+}
+.fa-wheelchair:before {
+  content: "\f193";
+}
+.fa-vimeo-square:before {
+  content: "\f194";
+}
+.fa-turkish-lira:before,
+.fa-try:before {
+  content: "\f195";
+}
+.fa-plus-square-o:before {
+  content: "\f196";
+}
+.fa-space-shuttle:before {
+  content: "\f197";
+}
+.fa-slack:before {
+  content: "\f198";
+}
+.fa-envelope-square:before {
+  content: "\f199";
+}
+.fa-wordpress:before {
+  content: "\f19a";
+}
+.fa-openid:before {
+  content: "\f19b";
+}
+.fa-institution:before,
+.fa-bank:before,
+.fa-university:before {
+  content: "\f19c";
+}
+.fa-mortar-board:before,
+.fa-graduation-cap:before {
+  content: "\f19d";
+}
+.fa-yahoo:before {
+  content: "\f19e";
+}
+.fa-google:before {
+  content: "\f1a0";
+}
+.fa-reddit:before {
+  content: "\f1a1";
+}
+.fa-reddit-square:before {
+  content: "\f1a2";
+}
+.fa-stumbleupon-circle:before {
+  content: "\f1a3";
+}
+.fa-stumbleupon:before {
+  content: "\f1a4";
+}
+.fa-delicious:before {
+  content: "\f1a5";
+}
+.fa-digg:before {
+  content: "\f1a6";
+}
+.fa-pied-piper:before {
+  content: "\f1a7";
+}
+.fa-pied-piper-alt:before {
+  content: "\f1a8";
+}
+.fa-drupal:before {
+  content: "\f1a9";
+}
+.fa-joomla:before {
+  content: "\f1aa";
+}
+.fa-language:before {
+  content: "\f1ab";
+}
+.fa-fax:before {
+  content: "\f1ac";
+}
+.fa-building:before {
+  content: "\f1ad";
+}
+.fa-child:before {
+  content: "\f1ae";
+}
+.fa-paw:before {
+  content: "\f1b0";
+}
+.fa-spoon:before {
+  content: "\f1b1";
+}
+.fa-cube:before {
+  content: "\f1b2";
+}
+.fa-cubes:before {
+  content: "\f1b3";
+}
+.fa-behance:before {
+  content: "\f1b4";
+}
+.fa-behance-square:before {
+  content: "\f1b5";
+}
+.fa-steam:before {
+  content: "\f1b6";
+}
+.fa-steam-square:before {
+  content: "\f1b7";
+}
+.fa-recycle:before {
+  content: "\f1b8";
+}
+.fa-automobile:before,
+.fa-car:before {
+  content: "\f1b9";
+}
+.fa-cab:before,
+.fa-taxi:before {
+  content: "\f1ba";
+}
+.fa-tree:before {
+  content: "\f1bb";
+}
+.fa-spotify:before {
+  content: "\f1bc";
+}
+.fa-deviantart:before {
+  content: "\f1bd";
+}
+.fa-soundcloud:before {
+  content: "\f1be";
+}
+.fa-database:before {
+  content: "\f1c0";
+}
+.fa-file-pdf-o:before {
+  content: "\f1c1";
+}
+.fa-file-word-o:before {
+  content: "\f1c2";
+}
+.fa-file-excel-o:before {
+  content: "\f1c3";
+}
+.fa-file-powerpoint-o:before {
+  content: "\f1c4";
+}
+.fa-file-photo-o:before,
+.fa-file-picture-o:before,
+.fa-file-image-o:before {
+  content: "\f1c5";
+}
+.fa-file-zip-o:before,
+.fa-file-archive-o:before {
+  content: "\f1c6";
+}
+.fa-file-sound-o:before,
+.fa-file-audio-o:before {
+  content: "\f1c7";
+}
+.fa-file-movie-o:before,
+.fa-file-video-o:before {
+  content: "\f1c8";
+}
+.fa-file-code-o:before {
+  content: "\f1c9";
+}
+.fa-vine:before {
+  content: "\f1ca";
+}
+.fa-codepen:before {
+  content: "\f1cb";
+}
+.fa-jsfiddle:before {
+  content: "\f1cc";
+}
+.fa-life-bouy:before,
+.fa-life-buoy:before,
+.fa-life-saver:before,
+.fa-support:before,
+.fa-life-ring:before {
+  content: "\f1cd";
+}
+.fa-circle-o-notch:before {
+  content: "\f1ce";
+}
+.fa-ra:before,
+.fa-rebel:before {
+  content: "\f1d0";
+}
+.fa-ge:before,
+.fa-empire:before {
+  content: "\f1d1";
+}
+.fa-git-square:before {
+  content: "\f1d2";
+}
+.fa-git:before {
+  content: "\f1d3";
+}
+.fa-hacker-news:before {
+  content: "\f1d4";
+}
+.fa-tencent-weibo:before {
+  content: "\f1d5";
+}
+.fa-qq:before {
+  content: "\f1d6";
+}
+.fa-wechat:before,
+.fa-weixin:before {
+  content: "\f1d7";
+}
+.fa-send:before,
+.fa-paper-plane:before {
+  content: "\f1d8";
+}
+.fa-send-o:before,
+.fa-paper-plane-o:before {
+  content: "\f1d9";
+}
+.fa-history:before {
+  content: "\f1da";
+}
+.fa-genderless:before,
+.fa-circle-thin:before {
+  content: "\f1db";
+}
+.fa-header:before {
+  content: "\f1dc";
+}
+.fa-paragraph:before {
+  content: "\f1dd";
+}
+.fa-sliders:before {
+  content: "\f1de";
+}
+.fa-share-alt:before {
+  content: "\f1e0";
+}
+.fa-share-alt-square:before {
+  content: "\f1e1";
+}
+.fa-bomb:before {
+  content: "\f1e2";
+}
+.fa-soccer-ball-o:before,
+.fa-futbol-o:before {
+  content: "\f1e3";
+}
+.fa-tty:before {
+  content: "\f1e4";
+}
+.fa-binoculars:before {
+  content: "\f1e5";
+}
+.fa-plug:before {
+  content: "\f1e6";
+}
+.fa-slideshare:before {
+  content: "\f1e7";
+}
+.fa-twitch:before {
+  content: "\f1e8";
+}
+.fa-yelp:before {
+  content: "\f1e9";
+}
+.fa-newspaper-o:before {
+  content: "\f1ea";
+}
+.fa-wifi:before {
+  content: "\f1eb";
+}
+.fa-calculator:before {
+  content: "\f1ec";
+}
+.fa-paypal:before {
+  content: "\f1ed";
+}
+.fa-google-wallet:before {
+  content: "\f1ee";
+}
+.fa-cc-visa:before {
+  content: "\f1f0";
+}
+.fa-cc-mastercard:before {
+  content: "\f1f1";
+}
+.fa-cc-discover:before {
+  content: "\f1f2";
+}
+.fa-cc-amex:before {
+  content: "\f1f3";
+}
+.fa-cc-paypal:before {
+  content: "\f1f4";
+}
+.fa-cc-stripe:before {
+  content: "\f1f5";
+}
+.fa-bell-slash:before {
+  content: "\f1f6";
+}
+.fa-bell-slash-o:before {
+  content: "\f1f7";
+}
+.fa-trash:before {
+  content: "\f1f8";
+}
+.fa-copyright:before {
+  content: "\f1f9";
+}
+.fa-at:before {
+  content: "\f1fa";
+}
+.fa-eyedropper:before {
+  content: "\f1fb";
+}
+.fa-paint-brush:before {
+  content: "\f1fc";
+}
+.fa-birthday-cake:before {
+  content: "\f1fd";
+}
+.fa-area-chart:before {
+  content: "\f1fe";
+}
+.fa-pie-chart:before {
+  content: "\f200";
+}
+.fa-line-chart:before {
+  content: "\f201";
+}
+.fa-lastfm:before {
+  content: "\f202";
+}
+.fa-lastfm-square:before {
+  content: "\f203";
+}
+.fa-toggle-off:before {
+  content: "\f204";
+}
+.fa-toggle-on:before {
+  content: "\f205";
+}
+.fa-bicycle:before {
+  content: "\f206";
+}
+.fa-bus:before {
+  content: "\f207";
+}
+.fa-ioxhost:before {
+  content: "\f208";
+}
+.fa-angellist:before {
+  content: "\f209";
+}
+.fa-cc:before {
+  content: "\f20a";
+}
+.fa-shekel:before,
+.fa-sheqel:before,
+.fa-ils:before {
+  content: "\f20b";
+}
+.fa-meanpath:before {
+  content: "\f20c";
+}
+.fa-buysellads:before {
+  content: "\f20d";
+}
+.fa-connectdevelop:before {
+  content: "\f20e";
+}
+.fa-dashcube:before {
+  content: "\f210";
+}
+.fa-forumbee:before {
+  content: "\f211";
+}
+.fa-leanpub:before {
+  content: "\f212";
+}
+.fa-sellsy:before {
+  content: "\f213";
+}
+.fa-shirtsinbulk:before {
+  content: "\f214";
+}
+.fa-simplybuilt:before {
+  content: "\f215";
+}
+.fa-skyatlas:before {
+  content: "\f216";
+}
+.fa-cart-plus:before {
+  content: "\f217";
+}
+.fa-cart-arrow-down:before {
+  content: "\f218";
+}
+.fa-diamond:before {
+  content: "\f219";
+}
+.fa-ship:before {
+  content: "\f21a";
+}
+.fa-user-secret:before {
+  content: "\f21b";
+}
+.fa-motorcycle:before {
+  content: "\f21c";
+}
+.fa-street-view:before {
+  content: "\f21d";
+}
+.fa-heartbeat:before {
+  content: "\f21e";
+}
+.fa-venus:before {
+  content: "\f221";
+}
+.fa-mars:before {
+  content: "\f222";
+}
+.fa-mercury:before {
+  content: "\f223";
+}
+.fa-transgender:before {
+  content: "\f224";
+}
+.fa-transgender-alt:before {
+  content: "\f225";
+}
+.fa-venus-double:before {
+  content: "\f226";
+}
+.fa-mars-double:before {
+  content: "\f227";
+}
+.fa-venus-mars:before {
+  content: "\f228";
+}
+.fa-mars-stroke:before {
+  content: "\f229";
+}
+.fa-mars-stroke-v:before {
+  content: "\f22a";
+}
+.fa-mars-stroke-h:before {
+  content: "\f22b";
+}
+.fa-neuter:before {
+  content: "\f22c";
+}
+.fa-facebook-official:before {
+  content: "\f230";
+}
+.fa-pinterest-p:before {
+  content: "\f231";
+}
+.fa-whatsapp:before {
+  content: "\f232";
+}
+.fa-server:before {
+  content: "\f233";
+}
+.fa-user-plus:before {
+  content: "\f234";
+}
+.fa-user-times:before {
+  content: "\f235";
+}
+.fa-hotel:before,
+.fa-bed:before {
+  content: "\f236";
+}
+.fa-viacoin:before {
+  content: "\f237";
+}
+.fa-train:before {
+  content: "\f238";
+}
+.fa-subway:before {
+  content: "\f239";
+}
+.fa-medium:before {
+  content: "\f23a";
+}
diff --git a/ui/new-ui-samples/favicon-16x16.png b/ui/new-ui-samples/favicon-16x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..16085801d05bf8a5e7aeee24f6ed40f778352ff0
GIT binary patch
literal 1301
zcmb7CeN at tC6n-H~#X0q8nUR5l{b*?Z5D<l|6iE>=Gc&bxnxd_=+(O&>*wJijbEnl7
z_BB&$ZnZq()M^{9lYLlfsW}!V8cHA}5`G|Z0EzwlYk%#J-E-dioO{oG?s?C1pRbdX
z;@mN-FaQ8|ZhUMCf}V at dWeJi=As*Wia4L-EM+4Au#%&>YDN^I};#2ql99auM`AGn*
zNUQt}0HrVhx*PzQ7Xk1ssgZ2k0025MIWd)k49K^%tJ4QwP=1};A)HLxKTN-C%0Bu6
z7Ef#(nM*5uNx3y15NS*#j<{q+<T)Gwykh)mY#`YBxYF>3*_t4Sg9RNLc}o4xd?yGl
zmV+HT&-Ah#^~)W{9k_$7mxkFmK`*YT<tJU7pGp-eu?G(rT8-&Y_giFF+e{YJsc)J|
zYM#u5{?J0I`BSE{IyJja#jbnJmb2T{sRPO#-SvR=D(ZoD`=BbVzn|Ugz$IBoX=dgg
zV`9;4rch3ms5U-VZhfkOKb^<(%!F-LO7;T3)S7!@?!zOaj7}A+Z*)VaG(tRuW6$8?
z^!S+BzyuSVVM-`AW*$BVu&){23i|zC@|8JvFpgtsa4dBILrdJGA;hl{^edU2BjJ+S
zTEcuQ!Pd3TJ{V!`Nnb7Kh6IY>z2jm|tBiK-ZxCd<NwnO9>@OniLn;1(9+F^`wqF}o
zA~UxTY|rTSk(32l-b%s!Ai)rIpJsir%+!QzTmMeMv&*vy0vTnmj&@*-TGr#X?|ikK
zeXB3h_K3V7jarZ<d*uEeTBwUE(Napfutkjx6LB|ZxQ;fG<sLlWOb_bUuls8XQ8jd6
zI=I&WG999q3`Ej9mbBZ(Z0NBblFh8snyGIsRK*-!Jr9pru8py7OvScYw at R#8(8EdS
z`4m}iAsZ|qdJ9!+`B@*+Y>pRCZ-egZpl1e1Zd|K16O9WEI`(w~8_6|_nA+EiH>y>#
zC-}o8rK!=xb~qdbhGX at JpE`soNsHe6-+}UU0m+Z6mbrwdC-_j5j{?sd9JVI+N^^Y#
z=i`ja#ttt~e_<KGpj?@OPKBGDd7m at U#H&ZJ-oU$NB4f8r89<&GB7HDC9gZ8bW$o69
z at n|gZd`B3XS()vzrPSF2wTk3~as^J+Elxi7G$#{_q5?$o7kwVQGgNzurndxS6>fCR
z=_ztr;<coCXZ+&-QG0lCu at 9^Eej9 at n&O$Dq<2>q&@g^}`udcs_w5;6N=+u?cyc{HG
z6nfsC&7k0r8;`snyNh+yc}3b;@WYQ%RH5%q#$k`Gp=J2GO6l;E!TwEnm=r-2xsf{j
zSFG{!TkikR8|&Nu^hrlY9scY^qKn8gA&JZ9`4)6_J?rW7LSeqrXvTegswh6oFNmsm
z<xS^;$;~(NZ`>6BQvLn18A1M}4!g=vefjdP%wcr}8uQlwO4h6Qs-o^5w|k4q(LLS}
zzc#G8BAQbwpYz*CE$pqO9#$MHtv~tr#24SJ2+fcbS*ofVX}8PK^2Wi{yW0=gzdU^^
zyjV7{6!T`{;E<%)_I~A+_OdBT>}=bB;<)W}1q}cXuKKsY?CXdMK|)TtFh5r)VCH=y
zKmdfn6nY5E2%*5Klt?BGX42_oIE)Fy8tbJ+Yy3+nKA8Ve!Ds(XxNtpS3LyY4Cn;7O
HlXK!9%tbg#

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/favicon-194x194.png b/ui/new-ui-samples/favicon-194x194.png
new file mode 100644
index 0000000000000000000000000000000000000000..5a53d0fd8f71375c866fcbfa1b8f1ae4c86f0bba
GIT binary patch
literal 21106
zcma%ig;OLx4=9Hmi?g`P;_h}FaKPg3b~uO2;qLD4?#|)v?(XjH?!4dk-aqiBlXlup
zI!T%|nY0a+mlZ>T$AgD}fIyNE2P^*9_Wln5-~X%ecL-VjYoJX8WdtE0YN8R|^<n<&
zlNgFC%0NK4Q9?lY1VBK%{x{@v3<2TD3;}Vf2LbUT1p)&5Z$_)a&;KUA8%T+PA-?`s
zayp9R{~LjIkdP69-GYTjr{;poWz2(sP;im}3o5&;UUWFO6R5d<eR*ZE)wMMpmubcQ
z(YmZ<coJo^t~G1yxhJoOV4(;=B?(2}PQKzA;flP55gO)#RuYl`5K7m4dkS)I`qLs&
zOONe%(%8XkKY90NI6A2#(P%W*s`lu0|08XsqwQ%jl_&dd-k#_<FPyRU|F?2+8wTrk
zgLgB#xqR1jAGaPlJ6k*>H_iBL4JBp384}EWZ>koi6&$U$4h}9G(+_IzQf}A!CibTt
z*%`-DR|ZsjFcJayQSaD6TmqE#Pp)P*%4eCyjQp!24|98NTQ>@oCf>kQb2Pu5C5n?_
zPcw^s%4#VEt+WWFe?)|uOAfYuQO)}k=o^WQPG~yv;O2v61o1hAQm!J7SJ=l@*w}%{
z%~bF0yw%ve$xzx7eVh<|Xh<TqXbnj~<=L#!y at lCq`%kOLDv#r^E6TfQKL5Qc0h_$G
z#euqhgdl)(*M9JG{fXPF at sya0MkULGKVw-JIG<WE64em{4AIvp3M~akIw0hx4;aCo
zEpXjiJ}%0oHeb%u?a<F_TOO$EzRLnM5xvO-eP3es9NhFgH5Z%5SK7*F^vZ8_2?{?m
z#mGNxlz<)!MYRK|i{FrbvkaBf%9f3<LGWa471W-<()PFnJ2!=!gdA}IFMoW(LT8&Q
zpQTn#c1S9JiEDdQgyZ84AhDO_GK%H{6hy#+BMYFueiI`A5n23q4XJB0gu3dV0ryw_
za-CZQo7FXo$4A$?U1oW08v|^=*k`b>fA3uGc|~j!jQVz81#WLu4sW8tfgnK`U##&Y
z?pxL8*y1<3j~chxQa5}GesYfk&nc4ivIE-f$7(hNFZy3+u6x(fRIP7ofpU;f5Z<*{
z3U<R49V+1J0!-AJmL~0=Gs#U-H|+_4C!#0x1Zv3&S40D1Ft?gE`^Es$Z)K`5{O0B$
zdyf8r5;|qFZxs1{nnhT##N~=TR4!Y+#S9*-K_Q>CX2_od+d(SM0}uS(y-36<$665G
z at xj?h#(A=2jtVjyVGANP+}NS5;^2&?dTT7a-MsI9IGpCjWSZsCxoLTE>erQexn}B+
z0jbIFM_^~G;yqWffVSutAP6t at 1snfFOvWX#wRuUz at wal{fMe|)w_4<CkexA^k at G;o
z1&?3M8XUh`q$c!MFBP2GYJag|srmg<$Y<9X(`(n69QU3uf!7GWv+LFpfgM&#Y1t!K
zVZE5~l;xPKrbF5&t7H;$flr=GdmbsooQc*EY|v*;`8_6On%xpQHj=V}6QLYYE2>&3
zL#tTfXGW0G-$M~y{I^EHRmyR2C;D|es8?I;3zf~j>{hYv+N7I~-OkYw7mmH`k5NfX
zjtuljXpB at KGDzKw4!T at 2faO1V$qg~rX(7D{BYYYQzUN8lbV<Fof99werr7TmiQ>uK
zElZ<Ep%n+0w?ZkTh95)Fc7#0s5i8A2EA;>sem8xAj^T}AVPP}<CJabdSP3|#Rp{V-
z-Y?qzm~Hmfi{#$WGp;-l_;?B>f}Fyc!UwI}?te|+`mctVWC0$NLASIEB}I%yri@`T
z+ at c(8F>GW!w1tAAL4E*80}|3EJXRFNYaXDGU;q}sRUD;^^4`;%!+95$=QUCvw&(Ll
z`(Y at P0F|e<eYZgb39z9v#3d^9BJk9V_Og(Yz=zq#yo&@0-Y*<9c>q at X5t5^bmMf1`
zNg{e8NLN9{rZ=z58G4$ZcljOtEfPG#r;vX&(g|}HO!W4Uc<%WoN987dj+%uHZvMEo
z`8%(+Il at Q$JhPLNjWNSjBFb at 8E6Ah}VGrER8`nPleaIR~uuA}1fiRPTk;J62_*VCu
zHX<HiHrq=j<FN|X{;;S#JpAf7pF|+eWU-0Oba;B<ZOA@*<c<F|o#LWN-{9HtoJ at P!
z01zXa4W5Pq#i87eBdFffSnOiN?>dS?0(+F1VZf}A%ES7FWhwCmIbbJgR8F9nb4Y7;
zj-AT<+EaBPGyC<0oZS8Nvi12RxcMZ8sb=VY4;RnVff&d`JmXwC=qYPaB6_j1)nfVR
zj2vmVw+y$7G5=>X#|kLeGfr(47_&QvRXU}TUyxcZwv&X~>+UhzuEhZ#&dBRre19|Y
zAxo+r6Lc?KDzz8mlUdlz<wr;jYFJNHaqA6B?UaESp%8i_So%yo2%w%4VNULv42{h^
ziV6^N6R#4|pq3z2aG>ht`dD5TQOLgu31sHHc+*We*1xS^uG}d0hC1gs!&pSz<Y1WH
zY$9!!pg6T(?QYQ&g^c_GX`C0fy=pB#cV3F+4+t~+$0q~Lnh2L14K3WC%PmbHNCs9E
z0w7dRQ>Au2Xgpo*c*+^|iz?VZ at Sg~%_jhQ{IP)5jUd-seD6LqOHhaLmbSJ+Pz^J93
z0t<{f4#}wjvl0nq{l5yT$!?{X$3rIGZS}<3M5k6tKHcZ%yjQk)zwG7`Y(D$ID9OeB
z)-nN0^sPRH(cWBH9Dn!AN!o=eHv3wB$ew{Uh1mzqs$N6RLcYl(zm0B}qUCTi at uLkF
z1{^}k07tx<Vqo|5eo!_jj(B0IH*MkK6tNk-5^;peVb9$W+|VS7i$3-kgjKONk at z~O
z_awZJ>uPB|jiv232Gpz2%w=#h#v>Cd=D$D0tpQscn6Jj)*nm9qO=(|DghcOdcPIjP
z{jF_PMxP4;>BstYD(8*h=GW<|TCuC#`8?lz7+yIrilZi(1xp!+a-QX(YVy>xvhnAr
zURiGiUr2cYbySRJ6YCCw(KoJuGRhC>YV)q-og0@~x5!ofSg?&f*gI#ph<3HehGm#8
zS-X=_T#JZ~Tw!z!9SQ+Pu>M?F6p$R-W5$1Nf3jVmR7m^ZDFZ`KCVUN at eF@{idP$t}
zqgH?6=;`PFGu34KtI4}@9_*BA4!Y;JDU3PyM?-scUg3cbrN71H{UzX%eI3$J`N-N8
zhV-&pCe62cmyZMnWq$18?}-|N$+zObOd>4u5&pV8PtCfk(tgr7uQPnpX%`XjJs0pY
z-!F-rI&W={snd!wBHp at CQMV;Wa;u--0w*v7V=P1`E58NlVA{iAM0s-j<G0K9ZwwRb
zQ*P1xaVe_F2h!JI*^M?XYjwVdH=B=PFiK{nK@)jzWq9XghQ^TawF${9Ee)(^0M=>P
zzINSh*W+2Sx#fW)3Gw^4JEA*{TWzN-vCIjmT6m**R_r-s{SB|;{5&)>_OZ~<D3CYR
zu|}XHq%xqI1EbD%v4pcC1F`lx#IaFNT<{ikb;3jp?i-v at _85f(jS>Y_a6ME!j9@{?
zT!^%S<CP=dhl!<*ZC91|UNEH_z{+<+kt1x6KTG{%?St7p-rPg4wERe>{GCX^RaGZl
zgU4O7nza&8Cr!-QNtG+z0O&C!C4CNvITXuA^9U=`5(1=)24&T|P1RpqPPKl>21}cz
z7Z0~VzZm-SXzKVWkOziKh{#yrvsfh?&zzjw8zccWpxX~Tof7h7Y0Hvu3gm2a7e_9o
zBWuSQ=vso|YUwcLIi#U>K|-rPy8XQG<~>n5(06>{2!CnySW^M5d3Oa|?d}}m+eOJW
zGbDW1v8a(&guEGz2TpCOtxA3c!H_-2AUS2D%_hVcmtv%*vxkF<&5}$oexz$$b5V{A
zw=Qjd>brZqG^{OTJH9bc;s>=RlMq9{*!#ECS1#NAO@;9bT-Q#`bguXK0MFFc$NXZ>
z#;;jHwAnnW>zp$7%$91c_auLCm0COUqWkChxq`|n5j(`B9B!CUu86#F%&y at 4UUv2`
z#_`DOZ(gt>tP^kOc6~5kQM(avP$Tb0K8f%C<ku`^%<26Uw<8smaLl at k<(c5&ooVep
zkEl9lOxYRQEeBjr)95}g{m(eciS*yf#GU8!+11Bk_Sv<>Qdk7v_OmpM<U|A at 9!Uj@
zu#7!`{bT&asWiwDYHby_otPhth`JbXex(Ob!*+Ws-R$u=g|G9f`Sfb(qoMt`SAn~H
zO^Lz6lvV-f&W0fYzyE}F$E5~!cub+oc7BgdMCVH?TdoZGySDQ+GJSk&nsemC2HqHB
zPyU{^1`P_c+Q3f8y#}ak<YM}BYlSGq<gk`w4aFqUEwtP0c*ap}Q-p?}3P2|z+PHx#
z9}s_9>2B73GJ5^oBL^B4#UDQnoO}8q*8kJFwJ<;8l?cufd%25pmi#=*Zd at NmPD7GZ
z0JFMNh37Umer(_RUb4oi%ab=}K)9k#{thJ2y3*2LsJ{qV|HE)PKQL4t{`9>S>@tXb
z_L?$Vw-p=GsrVO)*0z|5SaJ$(+6)~7hnNoFP$fEsiC9Oj6>Ci6`*>O}4I<}(t5rq-
zb}&5OQ%x=`J|c}b^i_Fm%sn3LYEUWVFQQ9bM258!_e#S@@+E5qO4UZ5=dJm7+HKBE
zd61-$1iWtsyf+B5-?3uWwR2B=@5Ie}i6Dk-_Lzp9(2@=F`>FN50V$bU7HGtoPA!Ph
zf0)WrZgT~tZvW^y{`mrf&R0=e!!d(h-O>DT{jbL9xY0D)7hN}RS2ku{DYjI!MN-+3
z&IxBQv3LQ9G90W at WuFcMX;up9YVpTxDG8PSzmUtJL{!w}XV at F#-zwX34e`ccXo!yc
zAA+*B%_yNO at 8c|6JY6Pb3hvc57ZEq7iWDUbEn_M*b~~|pB}+e5^$v_-0-uKGQIRw%
zy6NNLCsma5!nms1D>GS;NXGO*(JIr8gw at jk{*}EN3vZ2oDC0Qk$F?eZO{7BmuPHO$
z{iNL|AnR7ijFYT|;i?lX!9`B^4cB$|K&=GJ9ho9X3KuCmkkM&03Jh-Cdk03}KP9!V
zTAN6n=V87sf~<xmmbHas$G5CfV|{({hUgO8k`&X!7q~<^3-_?m`eS5}gFL0TfUZ??
zHUjD0;r?mtp&M@;iU-R)BHTA6*tAk9EcSTBz%&fYGjoNtf9a*ES at 2Y=vAl44s-qTE
z#!wBSy4oUb;AP;t-ElI{?qgH+{xU+eVx*jWD7fK*!5n`~D>c<;J#1VS;fZ>nruDk0
z at -<)@q>ezWX$1;UO-IDyEEC;Ay{DTiW>QxY at bD4-=jvuwZM-!HW2p*$=QnYS`!%l`
z%!*~A2A257lq(b%H9p0lOm)JIJ<qySrbxgBN4+c0CZx}mFbPGL-fW-V!&*8MCDDBT
zW8i2cG;WB%&L)#es*4)wsTTqz&;iw-x-G#ZJG!B+S_`#Dgm2yHS?$Sk{*hadB1;=7
z%`6v-6ceV6RXZ`Sh3^?b{nD<Wk1XLI2LJ|c at cP9a2FR@Ce~mQoaYp1BT)EorT1e>j
zF&Dqx3iW6}jW{^h7oo;Ivjo3LR)krnPFv?)vP>8F8?Yu503sflw!BW(DSlt4zf;pN
z{#lMgxr$sH+9<JIkq3iGj(QD`SF2iO5i?#`7U-3vYtQHkgd8*#k5}G%1*24=wZQ;E
zO9)lAIVGLyVEj~QYRy<T`QzNcr+TI6DmUe|I*UW^sgRgmI`Ds#dX!5-Lba&%d$uJ;
z{r=luu~hN)T<Cr`aB)8L?c^J1xCiozwXTCrq~k|Hc%6K%;L8-E#W#GUHE4EUg<4Fb
z7>aP-7 at eH0YMO5LzM;T^*s#_->Rjo{Vd|vV{Nawj>ei+viru3-AdnR#^nd0!N3WM$
z?rdyj*wv9l<`WZg+!~3pDe&X2I-knTv|(uZzjVRePNRsfeqWK+p2nPR{j@~8jXnxS
z9EnAu!#*e~>8!`q1+%<F*f*wJgkOMZKF<gtG$xh=PF)?zPGui&E3*FPOmkj9xy#||
z;&SK|rkLdT7x-SZIvI}?Uis)RoeF6m<Vub%>`%zY5`8%cd><-IZ74*VALP^Hh1qQM
zoR(qwbBO7GmI-`$NZxQ7yMTvK5501#II|+-zXn*_Kt_t7FEcEZVWnvpF|Cb%^$D{n
zjU=wfx}B|+%&!bS!!afNElUz6ubp3MKTB8QvjC^3_fLe?*nj=R**We!>fz)gK7NYu
zH^EdWhpw_&QRkPFI>)Q}8x at KT&!P&Yy~Y&u#9<jn`>m7iRz+_lAQVgUJkQkBH0;FS
zPp)6`dw6^K7jZP`zD6MhaQW^35OhqUgtqLj9)jG_=}Q9CO3%O|5=Hzie^j at 9aiUvD
zKg#UC<uhTinHbaoBY)R2TGszQ1k<bFH-SNJjdCA at ztG}Vz(Y!JpB~26FJx?*3 at 4V!
z384 at MlU(UUhjl4#eTEThl?W^1c(GrD%qr~$;=T|p<dmBh at ngU3mVUXb<O!`^3d{pm
z>t)97goW3KV5S5r)KxET>yy#Ly7x*imMjvNwPa}-EIp}L&tEw&Jh}#zaZ~&tib*B<
zqV)G?h4nPUEHGmGLhJLQ8z$^|*FIZmcj&OZWzxJEpSAl=)b*VRRu8(_^TAKan#&Ym
zhx1plTNd-2yjnveDFzkLVj{7om}_cu6^{iRhW|Eh!t(u}dTOJ#c);%kw!VJRo~i~^
zq8%D^fHNN at 2hdvQo<i07IZ}&xFYzq|Y#-kKB7_--tWrW4&R}DUOMLCxDRYU1B;jfu
zps&aCH#1}t$IPl!!|D%7g%esdd=GNl%feJMN)r=z3aMxwjWo~Z-V|h|iGl^2NS6G$
zu^=N{z}lec#_3I;JD=T#Y*(^-MKfAXi*XN46P{BONiwcoBXARX2Oww>r&a5hn*_T{
zpWG<|AD;Mf9Kti67Y8VMfh4M=UoCC+8EE;ldmpr#V1_TMCeRr!I`gQnh~8s{Quh{>
z`OP{vES)jwA6=2vXX2RUU}!)uf{oVP7XzDDWHs9UQrXQwnVaxwFfo_ZtVq*&yA}S?
zu%%CFX<?V4dX_X58FI@)Og4^FpnemS*JfCG_MQ6=UNW%7hTq(k>OL^qn*?<e|GF4%
zmKrn at 1j4cl4j|><Kf&|095K%-(~jv@!8+S7*Nrrv-_*og^1 at yEekuMPHq~*3E9<WF
z67Zjx69DxrGGJurOjW#rKyXf`;*6I_ung)b!v?ws4jGbR0CN(aQ+mi-QOM`)oEy1|
z1WMO~v(xFrR?QYEd*#7v#Zd{?2(BK7U>0<T{PY!cZ=?ieY)aE^nYNpaNmX-%BZBM}
z0r2A|sRr@&rr|$DcG`^QKqyt(7s(ZB6xV<iC=Cck`$EZLO=$H_s1WWaEw&e5 at a_I~
z{L|HJr!@*C7m!^@y4YuY3`<XC9yGi(p{ir(nv!FMqt(KzeS$^EhLBt)`b8x6kqj#p
zjJ at IUXm9u7{)~$=E8hQ=r9UUAO6xJO^QkrS$1i|S^*4+D6BkvVy8mkfS;UX()}d@#
z_21312*R3naDvkyGk=5ACcEMYKfuDZF2sU+X7iU?HtSuKgF{G%O}0lk2NeU*TH_uQ
zInA9Bh2M3 at L8Lfo45l!nc=R`x8E at Ed?eS`(V6k}u=ft at X@S}b1b)uA52D$CwVQS=I
zt7)4W&2O=kcqZ>b(jO_zi@)|*E4IZkXk|PxS at zz__%Lity>7c+HS(3iFk<IM*tdFF
z?-#r~soWBEf$x5sp?VEeh(yaHkCccxER2XlXgGd$>5vkm<l;Y@$>z^=^o at f`gIP2|
zRBMgLz}NdtsKXF2)P=ek??4lwOcnIVXdvCi{K-0Rg3pIC_*25Ktxt=NzICr<Et`Gp
z9(i(ainT&)W at -S-vty{pQd%OV=2i{eGhAw1$Cl>|J7eZN|Ef$sXvzKEGpGakJy(M~
zhp?DZcPL}y?lFla$%fGE&tXMG*f3JrP1ln72X<k;zdxJJOLpkxDJP3-D2ZeN9|w?2
zrvD*nrBHQak#MyXBk3&vf_~QgGA8xo`?Iu#%fm%OmWI<aq0I)x2E;4olmBwwzlW6s
z85+1bDj*#ExVkNzFoMop+Sr(lc3(p at IXM@OQ;{AMM~yJ^2}{NAI1Lx-RsPn;T2i1!
z-Y%mZ<7ZEOsr%NCMLbKH?0#~e5ou_QL~68k48gMl<KKy^-$mG4A~dmdKprNq^?~>`
z*DpOaL)I53srtcNEmGnTG4Qt?X#;Y!t!~PqR*z)p|B$T^KIpvQ-s5)sb?O?Odrkzj
zpSGu}B*dfP0`f%;<blYnaPFzYzXP&nwW;dmwevwz<IUROf9EF`9~bq+UMAYyS16^r
zca@=+t8)f+A{?~Md)GFxuQMwjkuStid7aVRk!uLHVSy(+z}n$IL=26x5~%c^!}K3(
zGe#dzAgc%>*P|;Lhb1RE%ik`v$n`L6d^-@)TWmOWsOf&F2f!wvZR?M!B_hlF$4z1n
zoHVzKDXQ05XF$9vXrHaiZyqLcSdFKF>u5CQ4=0us?H%SH(h0vmNyvU4OV`-MHA`(`
z0`4{LoND)e{q==vzpw<g;+u{rC>emamAEi7>uLq2`otKMigmJFW+#N^I}G2NHATGa
z_Q-TKHYCNkyK1is!x_s`>cP}btP1ntro+jp32O~TlcD2`fI~V2W6c76#Oh$*t4MPE
z%OA#{Yv(1rTl_PGrv_+-Xy`rNez0kN<eJ*P#)^#fBLzZ9QV9pZ1^}s9=y9R!UioAC
z$LS&0zn|uLymJHOL;Dm$jZL!foY0&}1BhY6c7hP);OKbPNJvYXV<xD|#B$ExV`9Cl
zp_ek)@dWY7fM3j8tO)7jI1_OfWxUJZ_Uyt~)k=vcu%_p&IqpvK*0z{uHjWLrx(haL
zZJQg?f)_sx#<gm(EJJFGd=oC`SmUG{(Y32F`jW!`w!|MR)ZJ_7h+s2eNNa*B2s at MO
zkiX<?o;iZ7g3M)n40vQ~>SvC^Ej*-R(v>ZoDfP+!GcyMCjYvi(^#2et>P{h5t=h51
zZ6LL at jG7#RAP^QxLg?#|n_G3#Tj;g^Zi-;91xrXl`{==$nOX~3!WiUdA`FfNUcTrQ
z29>#Yx4g#HEUs2rO%EXJ$Dxx_-1Om(zeDxB4?gl|t6t_C{^5fX^~G1&g9TGIpyY&0
zgh<Fh_u0=2Ug5(Rpg_+yh*0O!12il{DT2C5hC7}Y&28e1se1lL+-d1u2=CV5N5hGW
zl<I=fs4$40);YIf@&XLruoG+V^&zwNyaVgHVYlJ_=Qto{r^zLP)gBg&H_Z>_Fe8gF
z at s}ZA(2ONul1N(H$HT4+f@@wcV12RQ4MPz<x)<u at jJ3?&HS~~&5q-_5Kd2oEI2@^g
zSs^S6qRgCHdW3N042g-Ai9a95P^xe)hAjDkL#(Vb+Ut~*d_X at 6f|lcpvt*{OTUndR
z1>{WCMfUhwS2p+Mx0#{;_-y2&VY%<{pZ3boo%md=wXZ%F at d`Q75BM(os_+UnOHsrY
zLrPZBnWPhefkr8yHpH7Nm}KtNo02B<n0t5=Fb`cv7d?2KiT!(Z%s_ at ebcrifuiKYl
z!_PUR&BSsN`uEw&=D>GVSxEdcI&aV_gitSqtvta6O*5n_YIoB(4q5J=;>xL7 at VZaB
zA)pS>j-vlvG#cg<l7)0jrD0v3XUbXm);uG%x9r8uD~xZscB6KPJq~HM+~SXum1Dih
z-ec$7#Vs at 1<+6v+*C`dh$JcT<4b*st-Ce+ at zl0pLk8y3*(9+iXHtAdYL79&LREkED
z>u3^6m6GEbMAY(#R&6^;OrT*9i&v;El at NJU3jh{M3<}n8yzjWUqYIlt at Oa&p`QL99
z)V!$C-zur$5U~VTZW}AWS9$g}uMz$(p2yMsk;7RVUDvDW(tqi_Is$|lF<Q)KY9*0F
zwaMC18ZKr851;<x9(Jm2dJ*h|6sXp!w%+=GPkOpM58GxPzX=QQLV(b5XInY`bpKQW
zVujej|HbPC5zMhef?@#VlTlz2Wb)Cb5NAK`2}z|=zgB7G5>QDKi3PJOcf|65SKU`)
zL$7v8#AEyJq4wt0h7bq>5&55y>GKWm(UkiN1+ASBptHEdiH5lZ59#V};uT}#uP+`H
zLCzK~-@{=PWX=EbU7G9GzPdRXq`fP~1f;&3H)xO((X7@<43C?(f%$zI+^OLs1Q&Du
z4ZuvSw8uN<V{gv)J;P+PzCyl#oo2}o?oBoHHqB3U1fAEJ!u%21d!BcfdCR)YawP0P
z+<d8k%&1K+zF$}PMB<_9bdJ_>A>P6-2nwI*F7qCpH`=+hFBJ*|!VQonycW$?!YShY
z^dQ-|)~u_dr7y;;wJ*2QrQ#^<ms{<{sf{4OQG>O~0J>VW_1y>8^YrVV>UzwI#7ZSf
z4)p9|O^2J`Iae|$(@%r2?cAK=;|<hb5qn=G>!w6DG!E>#R*85M2X-2CXDtT|SVKhI
zlZ!-8YSxk$Q{!Vg#@X95OZ-nCYgQo;*MaHY$uM=gKMf4JWUbBz^+YJr>#>B;0xdJ`
zu%}4fbiW|##Vyh4z%NVza{9kbY4VePHN;}{Gt*aM(W4wV-3sa0=U#L2xc#-miGA})
z-+VjSe@)kA-`k)Xpp*5F)aCa154L$umaIhr5PXm(hNd;YB8^Angv5hy4^oxT1ZJ~e
zXF at ysv7z0zZXrCcyt>D6gjyh<wIXaZMhD{n41H*Qn%|_tjklq&JR0Gf%9JF25ol;=
zQqcn0fI3W(&)In`N|R}KBW!NPUeAJn>YF>>Y{aQa3x`cHA8&nRY?%xFO&Z{XArdl{
zgL&hix{|M>Xmjzvuwy>rMp<*s5R=PI-D}-b$No@>C at kj?=erW#;3i4+Z}wNVYGMM<
zJ9np7nNx!`oR<;79O^8nYY!Y3s!`=o@;mYY5)MH_U-ejZ)_;l#?g{+|532;~(1+Ei
zf3zmtVFi^CF0CzIr-Enp#deLVy>2JBXs&UA`kSt5J7#8)zA#bG+Cc)^p+~&CW`1XC
zdDOa=HhPu6a1aa5d<sFYeJqP#;LxBX at 0Vs1hnc5r2hyg^Cmv*h?G793LNf0wPYeFx
zA-s;c&im<1Y}?D}Cg<14|4ZhLue at BKaeKESf6&cao-}FFc!MSxov<Q0ITrOu3^wV^
zI7)gf>G$wkNOBn5-z3++OpCG+CiZ#rT3ftkMR*%fc#H5pZp65sWP&7E<@3KfM4z*N
zy$<>DO4z<3SO<|+ at qi{Y&l8%dK$~QFP9<SknBre7c~@hyZaU*vr0qv+ydE>Kx_6q$
zt4EdOC(BG7HlO|Uk at F*@9ZJTN{QCh%#?EJqjggy60s#KTtfji&1lep;&J4L`41Jp4
zL-i$w(@?fOS855z*f1rkE2dk<_JFdn;<4fh>L`nwt3wS6?sbLwqst4tTsrj|X!?_`
z$>`U3b9LFfpVZslYN3zvc|Si2g3$It6bRCiy(T=~vPf2B9dytjB at lWUWb>!EG~Nuw
z<ZiFKu2LMH-7YX>1wOtE?~25taS1oBar=q}8aAWTR#b*I?t8RZAzF|7ho?{suDx@<
zen(YPej)7q4z<-B8>N!ui$_)@Q;TJ%lR5)|4Z(Z6!6YoAl!Sn=RJ~OH>rdv{R{{Oz
z2SeK*zXe>6#Dgy40Jv~|qU^}3>&1{ee17Tq+zOyZOWRG*@6Xi(hEYu!5jpnRJNG|>
zXT(IGF>`mHhQW*;T_;1#KU%X==aAdy1|FtL?NKOBjx*-DoIe1^kUpDr#CoGzxku!e
zNg+&V%|#bHqj)qLxr8?A04pX%h5doi9O1^Z;__wmSo916a=wOWDVvM?X-WJEI^71P
zst+ at YUZSfuL^+V-*_Kx5B+9ch{A~8bYasM6xzHj!>wfw}(ijaNB at Jmj0NM;F?pLC%
zHuqX=aME#`bm+W2=G`bv*!)3(O_Ik~xp*Cc8b=x<!_ at j<*mnEk%!1sv#S1tYTKT?d
zJXlP=OJZdyLJKxhBn^ux`K~E!XXbMlCum4A8W!im`asKJQ>u+As`*7{NzkHmsxZra
zv4T4-ClPS`p}Qk6v^h3pp at s;a-!h^6%I@~b!2l17quNLWw4>!?BrZ`{3PO)f@}YU5
zNxTmQ at i|Rlqhuc+Ef2_cUwacm%fo&m9vGsrY2#_g%)}wGtXL9 at Y@3IK+q2HILShue
z(1(t+>+$OuezOR~^37gVe_c8`osg>kM}!xi&4Zhz$dQJNyl;4O5Uc4xPD!j_l(Xzz
z at 45c!%DW~gKl83V at fn&Iw*sU+1 at 9~Ob)AK{03T4KKRfQ*T-@$EF1{56vz+Xu1G*+<
z2BZ;g_cTeOY2+maN-)@%(u at Kn`{B4tQ&(2FowH=k#$7jdb!%P_U<LNhHYkCI8P2#I
zuO)L^#0p=Yf{*l^%jQ&T<_DRRqe-~%oJLp9F}Wn*BB2Rroev-H>t&G!^wh`L5pC_l
z at C*M(-^v|e<(*6b at 34ftOc(WSJZs!O^szYZ*c>bU{)`FT5^u<?FyJay^ur2U=c(2A
z6)t$D{WSH!@Mj?y$1vYb6Bg$&$h_svZgK0hyNR=AO_$oaMs<V&EM`waz&AMDLUKPX
zFf&yhp6N44N9 at CYjo*Ut%rkgcMqV9*Kb;88SJ#eaLW6mGcUnSwr2mad36<Z#SE&;7
z6k=j*YIVnA!Rjj~D1Qcm2a}xXFj-A^>R*wJuahm$f0JKL0ty at TH4K;pX)5CxknQU1
z1nhEI=^k;6PJC(3!tFjRX4icFT9s+JnlU5|<KYSJ at vG(v$I^Yn9a15GN^#QM<CTvr
z2t0*$kALA?!ME<E3a`D3f-^%z`xM+=73MKlF|TNJRTL6oGHGU9Ne7*L|Bg5{S(l54
z<psOk6{q6z9ceTFKh{#czaT0TMb8A=P at WrbEu>fr_7odC^n0p%8&+A8R(T|1k};g(
zhDbAT2&fufv)fkcOwQ&@+5c_Ugq5z53l)8u(jV&&Y*lJPDTl;rpDv0|o1LqFHpC&C
zim0HW9u_VBIM03(NKijT|3GY8mbkXiALXf{;P48v#ZK(8!Gv1%pv1lYPP%`<B4k46
z#5{tKVG<_ at JOT-EFQru~^=_MXRPeTEy1?VcRe~VXl at eqtglHds-Mr)t-(z)AU^^D7
zkhUZ$#KMEZeih`sy}#VLKk?*TEr)t}X`hp;W8k!Lkqp`e;EyjGsr*w|O#+DIOn6{f
z(v3{(GsVc1z~`kZ4=4M}#)|G4t}gLv!M at _QS-+JR^JlVB{91ppv#8C<5vJZcQI4cN
zYKcpXZ`qAd0fWH~PV^5QZD>0${wKt)IA7cqFWNyIhmv|c7Zh+8iI$tIin*=Uq!?(V
zRQ^W1DMmpivXDo$!*zcH3O@<(@h&!irPml>)Y~pja?FRKR#JCNRfXWydFtLHWddo}
z=XT{9c#hHtA?a`FE80#k?|xQ6D*_zC7dk)7Ei(q=B_Qpd%oxAjVj$w%&||BX8GUDK
znaPm&zEsY~=biKM!M0J68lm0fS@<nW7F5uk&jVA3tnz6i<^R~WchLPj746)D#leO^
zV<^v7Ct4)yc;nHNAm9msk42v-L+uQSUnZOTh+~rsZBZ^f;94_bQgR+9TjPzE2QLeA
z0AazQd$ClpVqID-1A_j~+2DyMuOulTH&(r>4~V+JKa>Pm+A at lx#wt5aFP|9Pl4%r1
z{5}!|Yd}_5puo{d$Rjr}fW{JCglfowAk0_PnUdU$(a$h0E<DTeaZ>Q6vgPi|ikX1_
zEnYxgP>&{OC#SW6EAXb4SYXv6dts*2v^5p{nUjNW^rR`WI^fhjs5eUI33610Nax)%
zdP$)kmXBx}wEzsLGQVUssY*iAKw73c$Y&6siHgaZ^1c7Haxdsr5)Z)2s!7_h8EbD_
z at YQ{|fmFWmv!apIT2FeksgE<j0$89~R7$rY++;hayi!TQ_4(8gt*u6N at 8yj&Vwz3Y
zAh;pNI?<J*j!B!}Xsm9nVNawE95NByCM-3|fDljOD?+WMrF%QNO>@fwJ<<m_NmmQ1
z;Rni17R*f&8BMODuzd$lRe#=#gEsJBr^NOf|03kBM2)Ey2tN21T0v-0?j9g~(lrW+
zh4NJtMZVT>{@`>!=EV+^J#imBTWvJQNF&JhTA$yI4BA+3ME_AJ)LCGFZ$6vk+i;$q
zn`epnLXpHYQLRsCQ9n3D*6N~@J1jU+EfTk(x{AdKr5rAa^+twS<q8d?x+_$0H=8nJ
zvhIhycuT;(PY8P^I4y`kbRT5o^lJ#V!Qp!5h5c|5F)R0?uz+11-7*LiHC=yLvHo at 8
ziWrRQyx32t$;-dMuey*gUmB^fLQ?T;NkfQOy at J+;UZ7Ckh6`o+o*cN=o>NTTEAu;u
z3YX)(0X0q8DaRV+u~AwNVJ%n4$1XvQLUM<knj+LE6kV*|Uy7?O<$d}7#lKeMMabWB
zMiwUX47s+cjJ(7vX!6O50CzRpw*Rtw+FWMk`64?!owItvVvQ20iQOJNQDMNh6y)QL
zu}@2;UPH)RXhf|OZ2MWj&>@|vDqJinQbh!F7rB<iIO~=9V`i!{JQMN4->tFVg at _rZ
zu at PL0*X{|=Ap!5-dMdH1=o!bos<dmW|Fw%Pa^vT^*4bFxdabNzdAFq@*~(w|AUt*p
zlk1PT;JdZ>$=he9rHQO{m-5F?#)Qazy5sJ#(mC0Ze{0*gZ&>c6A)t at h_}kuYxmFDw
z?|QK+F89Jy(~Y)t{|SKta$IXT`R3zaZ%vaABB*4LI{G=5p4pnsd?{rlSIAn4=7$E4
zbm at Jmc=PbspRk;}3{hC_$n4A6*5!>H5};?29rfUNS>;+NLneJ at sPmqm#UA#RGKGI2
zZeDG4|CAr#BzddPn8=WC=`EoKGwACZv~C0DkEylH>L`TDU$@h#aB)p#4MxlSp^=1?
zdBbgAR(ZtQ*t|fHD-5Bb9DN;dkavEqSWC8A%SMaTSAiwZAGOW15K9cr#@)_SGZa;P
z#a{{4$i7?Gdil1 at YI^58p|b+vh%;e1?&!o#xFd=NTTjGF<@AsJ$w;;N#|mQZnW?Jq
z%uq|k3I!u}8;(uQ2H<korfvf|wS<y!VbZKW=sPJ|O9w?%#(bkT_K{g=%<pR=&bm0q
z^=-b&H|Uov;H)1Y*MJ-QdtD at zAPpw8G@DrrikEyp221dEH at T|47-QP)?VicfW9qTk
z(!eB`Q>t9$VjEH}Heh-(##Ah$P`a~RG&5YqQU#Niq$Zv2!9*h9e5&}oXQZeZ>6>>=
zPe<lvo*&}CfU3O;0$on!rxE$^_s+v11I#)SylN3c{rdrn5BR9pd<yiB=hkHnfL{u^
zk;Vk>V0>;wqKY9jW?!>8_gM3MII?4 at rQa(1JjMp+T4Ok%65$gfy)(+x#VJqr3N`i$
zU%w&-u&7U^uKG at TrNLoGzwabiLooEaZO2E5mYGl8WyN8|J at y|oNt=sK4va>Y!q9Ty
z=*Zj(q=-3Zf>uX at qjg`>R>QPE49(J at CCpmpF3sF`iMPcaPgWx=FVbU7QGgXIMv(nc
zmu$MPrG)XHYXoHAk|2Bxx4O$rN at N!6)&)a2zrzq%pq<g_JL|<C=>#!g(CQU7+pB6P
z$r=e*&`*et#(U@))9Sm%30juq*QzzB;<Mi!Lb%kmhXJM&>X94s!E_AfeXq~_SEp)=
z6*cet?;+$>zdk)#X79)RlUsB?xM1(&s!*>8?VnmkxT0j#PllGuNoVz$94wbmgr_sj
zJvvoy<69`5rlQvtfKBwqO6_y`*{@Xuoe`2~mSi$fA6?o at Sk$ykor0UodGlYD!z|eS
z7!^ur^@RZ-(|ra$TXMuK3h*4dCi(|Xn at f@@ga2SDJH;Upx~k0>t};@i6ZCZB3yeiM
zI5&^zKx#|K{``}9Rl4`M(OGh9XMrgTE83pQ*P%mS7v_nsnmr!gtGuVNEIfzYKf*cx
zha`>uN=uJ)wD(2{Qf3nK?&DiuIn}F%(~Tu+jw{l(3yuq__+a$O?8VB=;8)(e{|i>E
zs`kE3DtmPdCJ75dXhYnZl~Ki?{Ix7;=am1pA0CtD at tb$Hel|-pO&vC3UvwQ3t>o;p
z>>q_|c)0(<1^GnCo$C3)&BA7~<jQw`Dldl<u)riXJ-_{ifpyJ*$Ij$HB-46L^HF&^
zw*BXqM*GHA_UjES>s8T_ZD<RDOGT?{_UUGEqJ)=4TsN(MXX{#EU<?Bpg0H1`&_UAc
z*6WNa9eY#9@)>Sr at NfGb+=|X^hYT>>u8q+76_Qq3ED5T3-Rlq`mPb(3PqJ9ni at XS`
zY0f+q5C%3(FHJt@{bb*x_uKn}AwKtg{*v^%sf({6kDl)y!{5onw^Y}2svU%}rffvM
zqn{8!2CKhhy&o?=C(D%-Yf~jIng62CuM;#6>@{d;$0UAHODe%!Z)&l%gp#jM+rJi8
z9%e?{+_h#c^lnpideHjeBNQa3J%14b=x!mmp*<EWP9^d%d{-t37gMbjB>gI8qsTyU
zIKk=gkBdDHdu!U2931^hdOcv|U~I-k2H3lEi@}%O=j(W>RI@(bM_wUF(j6TFY)CrZ
zM{e4rbLetQWa$<pBUS&2TGob55{5^iQMg#Qarg0J;~plI{K_k>G;4Dm*Y9(m&zDv@
zb9FkTU;W8)f)kP7rM&eEya~nC+&vgE<IYX9P~oo>IU0X4qEnQI7=-NyiW0EMnu8U|
z7Jta at y85+q!JXjaYHitXw<OEWtGnn6la|>d^yYWF*1Kq5LCkb*G<_)MK4rj8hp=26
zpjB^a>ebWJBwo3h9AL#Hq(diD6whX$E*Pf8`sBSZTUOq~qS>}Qic}8LB>&WI%HkvH
z+BU-AA`tJiA<u>{D2Jlqr}CeI+nGQgH^J{v9oB29l*buE4vyz0^PMl1 at NZ=gVdod0
z76`5Pnv8gj7-S*ta`hAKLqPX_ot3&VoEAuj6={(O;6vR^kNCT)gAmIkQ2SwI+J5`Z
zGT^QMMkb=|CZKjub8}St8s4BFDHbHqh>+?o4w>{^QK*kt7v8&ljP2#L`;QYv*Y0Uf
zXG(UB?VtuhCn`rcYoFJ5vG`{t)f&0 at b%Bf2%}W<5WUeGM?P;u0!-~Of1VFR+5|6z;
zSUiu+Z-r_uroEBMoL%<4&br!4&A<ie{ZT+%rA0W=eSkZw`-=Ys0PDW(2m7D0O}r`M
z{p)xH1u$t=Qxsqc)krxB2C<_A7rvOMkW&fkR5fyI#>Mx%kqR|aN7R2-JoIm)|LZ&^
zFY-26n9~`P-S~O at KMHq)AV-`bN2vHlB(vjlm~;I9l*LWu`&x;`{Tk5PC#PM=lLp<(
zFA?FbhQ}X^+w3Swh;L;C)%YgAPvp1R(YIHV{#|`hU*8stbWu;h>n*20$k+_|)&!-s
zC at bKNi~qIrr~NDP$s0Y^n>8L^0=I!(>a0Fs^n5D`fQ!2dJzU_!b*G;Q_}b$_^gK?B
zXVQvYubXw#?eL6BJTl^KalLAb^SKJGII<Lb?@BbyC3A}Up- at O^4~{6KYYLuf^g;}A
z1J}`J6wy$^nffILxr9*(_7eePy{&>~YzW!jnis~n1T59QKJ?oRxZ87Vdu|7sQ*b9H
z-U+Y2DTEkUhnahnHH2<~KbGCGf42&E)xC at f3v#cZxiisHNmSgC$F=t7HG4!WjnpP1
z`I4ZrtH=0^xUqHU?jG~*t~W8`S9IKm5x%}njX2pwd%s`+W=!cKba2E4jGrx_yb7xE
zS>b?om^5{mLaB7Kk3 at f*grpgg;W at 12?U7DbbE^2bLmz?rOm5m!x<9LTI{VB?OLfh^
z4^6r+dLA3B4Ra-0gtAh at r!fo*^hR)T71eon5O>~AKbDI_L at v>Pqf(QI_EI<apxcIp
zwr=dsci~Jo>HnF3Xw|QXU#lmV*3@>hV_<s=qp%6&Z0N-Jp3W=nmnS!c`(M_9#}KiF
zW}J^U?@{6Jzlf3vhxvJhsj-<s?h$iV-U-ddgAP)>Ur?t%#oI86Xl&qU7!;+ at fNkJ_
zuWRzI4d>B!N8yo>uLWHukH^eo0|bvhF9z&+T!aUP-MS(9a)iw(f6Csq?PI>2I7FS5
zX)#Q7Jh-9V3dN$5#G_%>u#F^jOcu#lBTn~{M)|xBhHZlR-KT<HY226Rr>eXLJ>4dq
zS2JBV|7i>%v1Y4XqAPe8=YJN3JnM;7#>SEk?#SEX0t;jS#ougkNtK~Y4~3Y2re4f|
z8n8kmW0!G47##DqFdMR;mQJ5876jZ~sLg_iJq^B&TGN at RJse*Q=4av?pUJk- at mMBA
z3XPrvakJ0U2MO_sf(4eZQe$(&#B_dQN=dux{^W>jElLU0$aXg>el$zA;^F&h$7i0U
zVfhF*bla)|Q}LX#k?jrxcl!S at Pze_JmF*CeG>+))-enY#uazth{uqwY{E=tC)j#<m
zo={%A=ti{SuJ^cYx+>ZAcC-Ns<b~4J?!-}W6B-Q$KL?0PFNK_I at GKg>_ig{^oEM1C
z4Yrp5JgwN0zNZji$TRt(YeXq$bOG8=wHf~nc<3r&X)KuRwt#l73Kr>(u-u3uEh?cQ
z)tyr<FalU{S=693?`u?C;AJASY^4V*npHA4imO;l3ELg49u8V~T+_*ZmY=~EFSx_*
z`SP5g2>dk3yZW#W&x=U`#8S&bE7wu>BKoU6${v)xupJD_AUH)=@=_H5da{l_u=<|B
z_XG+iry3k?lk)dI;(05wDrAn}vKEJ7V?1D=SyBnnwK`G$HF?2eSv?Ed*dF#FTtFm<
zUMbccw7{EYcGfvl-=LXu0*5s&Wb at nGW9Pnu%bEZmp6hdC1pPyrlCQJTfCV&*?e|d#
zf7F&DZa9*qR74b+a%8i}Z>*cbp({$<vh;kH%<qnQ($dcu4^a8()FZXs9v$7gz%{Y`
z?*6uXMAae9t8~oQ7xU3GF;G7x%`&FCTx$HHJdk&BItojIA}UUls at g4x)sc1RFF;93
zz+%2b-}fCx)GshrFDa}VV^1ow#3`SnjTglR1q`ji?oyP47HWiyywKiFeDAhX?~8kT
zR;u*SSd%-_mDDe at tlRm}^!JQbG`g&bvx)z`pe1=7ZJG|euLC56#AoxE15DD-N09g$
z(CyNzkXhuWys&9vxR-0z9C&ov`s5~E6z2ajXa3%(A at UD+A2t-Uh_v~XswQ)Pmva9+
z9{JBmuT`IUL0YGjcBlpLo4f>_oe8>%)_!3m?w_Z@{i30+LS6R9Ss%LRiCidLEP(L&
zwF$zKuWQZWs?BsIq*5DL9I1PMJkQfn^)(#yKuG*I*tD9jKLx}r62MQ+j#!S11p@{O
zO8f6B_Miz4W*nP#qZAhicQaS3_VeLb)E6*WuQ#b}WnlUnrgLh09W^NxInHS`!6vyN
zr<^r=tE4dWo}bDt=8?$OHYd+8WhJ-Y$hmu;fK)wpisE1P(5upp$F?XbvjCVCFSq5S
zW79+wQl7eAtHy2DS<#==X{uZ9#@eq~{hC{CjFCLD>kjeE5VNS{gBX~}+yykJLCVX=
z;H3ra`qs-`6;B1jL at no|Y3EKC)fV#I#n8)Z>kv04kMj&c*RQUJ3yR)%MTWRXSrt%A
ze4njdM{>Sf at p0H0W5#-6Hzg*pF=z}HnnW8(F0KKe>NQPg_&A-m{pjm43}yxY4-?g&
zZvtS7c=#5n5gsi)-~6QCYpu`EY^U+7 at +s@=7Y2$ub4!^Lm14)4WsYo*eJN^jIWh2M
z8e>y1JWl at tZ@%$;#JiWsT$Z01C<?;e%Q-%S55uYjDBx=Gh7?^hDHLcYPih`?ob at VM
zY`s!1&a|+#EvaT}y63Y}*lYTJMNR*P8LbTpWC+Ri`>`=3QoB9;N!0mrtbx7}Xq6`w
zz}Sdi_ZX%A*e!19+c%+}(jqZp1tmza6(v@`zN0Eqt&H6I7`vlkjfM~?VMFiC;)*%|
z-wT;-ml4vRm-?C?7oQ^^iYmQY2th(HZ`$mdSCM(lZ&_#a-|r6XbE4-}vVSCmFrnuz
zKv%OQ#8lYn0t4cG%r2Nd at Gr#TR=G;XIx5OslecLKA?!7nVpOE%^ZF5q?srgF1tv`n
zW&`zBI{DheZ!0-$7DHC_TnjRXn|hZuSE at NS8Sx=*LGUEKggpC<<w&J+)3qhGKhWWa
z>6a0ab^Oz4YYMx|fbN2s^?jX)OCbQ3S8alBcHME6 at tbJYeTs_E=oZ^a>cZL(ms-1Z
zUR#}tL+JE?(k^~<27HGSb8K>Xojp6G;|sh{@t-*DHLV0S{@TaE$rPcO&a;17xFXhe
z$SqZo|6vI20pcd!VD}$Dwb}N5V<Rywa(8~ZiYkGtfqexPIRy$|zqJ3v;lXQz9BO1d
z&PLc!8+4=|=v8zm;wq(7sY1pK0j|(3XgoRe&KgBrv<5vwjb8&`XN&Tb47G)UfW7iD
zUBR#WgqYD#Jsb2`4NVRE7={T;u{gRFr+Q}wdV~>waq+nMtb;#%Cd-xNy}e?=`XqMr
z_^D(v-Z?Ih&_!Wrp^`D;!G%?4^;OZ~bBQO1GH20zc3EFV(z3Sg3<RB)-1t(Z51Mr6
zJ7Qu<Hl1&>?(f?Fmj5it+dv0#f#2ZTp<?$MLhzeu;cg>W>dWvj1NX*2!z(idFFS^x
zq%VuLU75#gZ7SzjV0D)*%96J4<)SD%JAY|=Yl`ehn01wl(oj>;z?SOml?_GS<KqHh
z_xuiLvprhTzgZlL3mfrBJ1o9v&^I!R`#-;`17xz>!#ABT*2>u|{tc|L)XsdG=X^~c
z?oE9z*<gQKOyH7?!)G;-+EtY`BST^|3Yt-4gMI80WmPy>1p{KY>N|(Yp5!Jkc&Ipl
zSetd<j29CAkRga)&_~qy?)j$1EHO^0iNspLal=?zGb3aFQWm8TDD<LU4;n61oU at 2>
zF}-GqxUYhuqWbUdngd&hkE?cG7SV9WkopXK2maFbu`wY}!TV{`yZ<DTlDj}{Cksh4
z{~^Qy`HMEl?o&tArjtg9&8*PlRE10Co?(;rzh_NYo1H|;21$_w!scCa+l~PDUGnIa
zeg7 at N$1LOiVf#G>EyiU!;~_l)C?{6K9Yunzxz6KPvLvL)^#<K9uyY-h*k%(hID=xR
znK>y7g at 7E%nUt at pVSoI{>n+trz?BlZ==&ZLjyHAhx4lJDB}+j~nI`L{K00|75hQ<(
zZp#0z<9o?DlCU at 1k-;F&LZ;rkqi){6wN$Y}<fwG>(B|+peFnh;FK;z^H3l_@|Fj=h
zq!Zn!e7hQqUGmG at O2zp8_c~_c#@p9<uGPk~qDRNt at be$DY_fQgL<P2F#nj0qo(<2J
z(fDK`hk4z^vv!04a0lQh#Oty+$!cYiF4;Mxpan{x9{u@^bUEJ)ZSlq7)*6lV<Ud6{
zTkIVKA4eloEeHG5{aqb4_9{gDU3M5pk_=C)5vR7(4pA%lbEQas*XI{Xj}EOdTg8b*
zRneA!@xb-r8rHpxx_7h|D}W?uf<>Jm?%FFNxins({7hwMC)PbZTkA1nqHxQ_fyEfh
z`|PI2f3LM2ch3q$P$K)osmQeHbn>7jxTF%GKq0I_OTRp-N~fLw!!;8tJ`51-VaT&X
zF&C50HQ94#98+h@{x?nnvXVWysVuEv<t$H at RQ^;PM|>EMlmIlC9fNoJyki at UXw&{D
zTU#y&>eB>f<WO~eIp5X*;1ng-YXQVEufX{k6n}N>>v>W;rrSFA^{A#sPidBm$A-Os
zfVJ-kFbQF9`!D^XLRQ)=#j$nC$QCXoX67{&{$=+GkHR6QB{z?M!`L;n_TQ(hfNEW)
z9WDzH7ljvYuh!pLIc388#Gb92RvAA7rrw*)|5M3%MZ>{&Yg`#IqZ=i<(M264I$_j7
zUc%_Y=#ePV64A@(ZFE8iL6m4=v?!SoB at B{ywGeHTXfaWOXrFJLt8;NK&ei|wS!>_y
zz4m`S&;F at m(Ik)K0SN$A`(>9}S#7iPU%34S`?&zk(jO5QsSm$QD*FArzNjqnU&Xt$
zHb}SR1OQa^UK#5nV%mlOk%sf~ba@}PKP!<x{rl#vGhcN|`PTNVw9nH5c4^iX<_CYQ
zGWFcqHltgdIfrC_s5lnAi+czW0 at V)JLf{VMbKSKP^Pzp}@g>25V^SUM6ExX+mXa4&
zhP(Ge`4sDyC<#n#`ywMk(es9r|6oL0R)-B<+sur}Bi|paKaRh}Ku)VHvn<0RB}{vd
zy5=DtKd0~PNoOXV$O4AZPj<QLlgP`bYPiqk{((UJT{#(FfG=x|B)ym~Y^_c8&rYbN
zj?(#Y${9Xm`DH=@$K7B*q6FA2T7{0)tqd4|*kZ}`D=AAB6kVkl;O83Kwu%ye^Vt^O
zAs4$$Tgu_d!E>Y$W{pajDEwRhP__CQNwz*ezS>PJtzE#>W?_px3$G!nrsGqbj0kHJ
zghectby^|>$z?_ at gyxwD&xO7bid)1#b^H<<jc+{MvCV*IP%BDs1Y7<HnY)Z7F|TY$
zpddU#=?Zf-X7Z#$qgI)LT1{TQGr}5SRx1tjB|@Oy-#?voetz&#mR2N8X{=P1?@Gfm
zfOjp59|djf&*Bv$CB3B?a~i%myKIOhFYu2(;VWY2L(LDp{M^4SJXZX{!kCJm>nK~K
zDH_;dHy=Av#zyH=bKO26bkDZA2(i^#U2E`)9`C;&pW}*7Wx%45>VR}yKq5sbOZta$
z8;sEQT5rBIuY(~+UP?P{BC3vV@!7 at 7!d(}(Pukj_?MuHqz{Pj-6)v%>uDpzNkgQnU
zpgg6d at 2=x#oCh%mIP%r?y1c1^Ful|Lsgyzu&KF+nhv6ghy20YOGR>aqr{-;9r1mQu
z^=K#i9aNfJ&YhjrI893m&@byYugilMp&B1R>z#uYkeFNam+HeCf%JGfQk9^~a!<zY
zOn<1|a6;F&Hqaw#)NX+!I{<2)6GIbU6E*QzhRrhJCM{D|nD$pt&8J4)kfVfVahl2N
z=fHEX1pp0|U?+-^dYUP<rY?`37AUJ*jMphlg5J(lzyGLJ)d=ot&w5gQ;f08~OqmWk
z8w>rTCg4d-8 at jEHvcshIhv5>U0~p<(|Gc#0gJCS<p7hr2vrhJ{DSjaEOCq)2yT?<6
zF5vTupI$81`-b`YTittg19*t-A~*6NKY!ls==09zGWaUu_|X}qzjMLHpJ--!$?Hz{
zc>5LOtc8B3XyY-M3^nq|8X3tn-`Avy2lD8F<S7o_3t!7*a=;q3ygFHhO>2F?Ecye*
z>2kYww(pDN#iv}pzV>5-muCLAKRwF-`9ai+bT!yza_`p5U3C7Ee>|S7B~36e9lyxq
z>{o8%2TA1LieK0Biwbjo4?!V=d3_9Qw|Y3kmw)z%SP}izgh7nM0 at 4Z;P6}D{yWe(P
zxP87nlQLQ_2*1ba8kd81CVg?f0$V2-2y+K6T)2B<Ms(y#pOBb8h&e7himM-+G2`==
z!cr9t^6Lf!HFoUcigG=f{v`Uwn-tAf&1aOf^|$ZWi93K+Ta|OTylfZ_xPtzjdN3{d
zbRJE at 4wA^gGM_W$8oI5Mk^*SB^~vb90{DSgPChp5?ndtDw3>XtI7y`c0Sl8lt^}N&
z0Ibn^9sk9yR(XB7N<GAg7t>1FYtt6=^!GBAEVEdqt5{;qx?{eYT*ph<(m9%{SI-Af
z65;)J4*q-s1j|VZF;dHHHTCKyyW-`5{_JjQaB`ooKptwsvvKj+VR0`vU0=jjnN at R$
zH-6Wq{sn*c?G+68f%Nfpd6fQFs$-FS!%7apS6MSEN7v{+F$0F=IYAMUPFnz08z=!<
z^ijS1Bw%;%YK)diy{m-vrr5YTQdsDp{0qHFp4m11F<x^|fm8wQsWwp!UeR{8&w6$%
z_LwlcLqo*BZcAfciD>SzLB_0f>{1yn*YlKptM)jrLQoFbYJiJ;%W1cC+<(Phqmx$h
zv3t=n(qM0wAvi%L#I5`GqvHFTx-8qND7TaTkseVMb)CG7h&nY+>Ny=Jt$8qZ-Z$H_
zgYemvJp5Aqe=17>&OIX*y=U(&m?CwgDW_tG3HRP_*Sq!oo8}=U=lhcwwgJnHveWRa
z(Cqi1jBm^cQr{PyJR>*(yYh0nuNqW2sJis37~tyff`{A+BG<_tmp_IkW}V2->gY at 1
zvZ$^QYt$@nolC~MQ|Bp)@0QVRh9qUHVWV*5T+f{f*!e*KxWN5H01z`#8QqSvcHqYQ
zbR1S$nEZN9q`3;r%1?{=tOFo%A|Dh>C7{Dhspm9LT8FX?;Z#ms?8)5IVilefcyG_F
z%WZzG*X7%50NJU9msPDM_(Ar)DaIw4mJQ$AVu&&r`WTLH(q!m}wLION&K?swd3CYl
zk(0@)NCuRXB%WiHjEC59Qw5r;L0ywO_60WHqt#&_x)lpKY?MT(EP(jUTkox43@|a|
z0y26jf`}2RT<QorsMCddCPKc*GQ1%3J;|@VuaWZHAbwTLbKW$s_PhMJ#_&P9EI4sP
z*a1zqZy*C5;WJGKZ$XERRC_{x%tJ`m^0%pBo34XRNG<gFK*B_P=2Ohw)xecBkLIIK
z+#jAeK5Q%4fY|O37#=LHE_7fWG30|iQm_2hF`K=Zi#}PUygCE7)Wy_yZ4V(gz80}i
z9_Y{vDUxY0vin1v%1|GcFDl;A7<4gX(9&rxV at 9W0TT`VXkMh9SO`YK-QF*Jc_9l`B
zj4Iwh5?CBSSxYvzHix28!9Ez-{^h*>el56@$^u+-(DMx-YH#Fh`skWe&b6>&rG=*Q
z-rFtxyYWIp#!J5wtP-lnqkxUCtu at U-$)9iBCUu{*_E%YDXaM0atulz2I*(#JhB3^Y
z6B&|{>~Izu%By~nmf*Xgof6rbqCY9uUtyi`bZKW3izL&(2}wWaw>N3>g1GUGgt=q>
zbc)QtX%EjlsP-TDNsPB3mJNTFrnBNl8a+^GybfQBKn%?E28EH2k)Z8P1g+i6R%209
zM5oNex#v7#qR);uNnpJ0N6&67|62kAK>`v~+-k)d16kmvY(uMUU`4i}sPYBp^X^Fj
zON*Rj=d`&?s?%i<mMIK^(gZp|tvd!2nvN)Uel5F19<?O#*v_ZHwE!dvZOd0$48Mjt
zia%Nx(cB#HV=Vb}f!sr4?1pB{7K)=2>8jFXL1u*-qg+*C%bO}K>v9{@c2|wTq$ewT
zzTSeD8e at Uv1(NFi+j3nG^I>I+M<fXr7Nz6M)~exM!)&?99cVfkOEe^d5fS=egU;qf
zDGVC+wcE+PJ?Xoz)U|DQuky>LtMVis#C!%^8&%oYLZTq}bf2h)kkaeuE}o)x>5Qdu
zGJ;hMG+)Yz+p;}B>QudJJx>&`&|P=B{b|_z*7r?!79WfF`wynuv_otlw0%Ofn{vfh
ziP%5^QoE3~R*$g0JV`q|lelq=hsqZ#%zPR6c9eo#O|`d$_3`C4<sBE{y;DsEqIQII
ztTdd+hBJv${U>~1bbmJVB=Z&&?u8;VGAZrn%U1^_^-;cEg3eO<CXntWY&{Bf8ku at L
zHQdrlULH5vFNST$p?^U+Qa;*WeHaO*=sbq62Sqd!GNwoovy at l}MpN$Mw#Ee~=a3Jf
zDoD~@(K_Uh!^E}&2<lc_P4U;yo6;)5pf;i-B*}Zzc8jt0JEi4TG9u1%Sbho*t!kx~
zfZnpNa_*}=MvcXCUVNf0_eg~60!SXp;AT}%xYHUP4xb=d2ZxAljzi>9K-2qmqPL#)
z{&0uqtctc$zK|he67QM*mS-uIMwFvDSCmzNrl%}Jccv=qabmVBE%KKp2HwhPN)q8G
z(W>hjES_rx!PI-BO?3P at 5fkIxd`}K5)UB)w=gcl2tsL(O!lbynS9&0W>f5I!FKoVZ
z(RGI|rHDBHR1-H=;a at oab*U8GCvtXfzVCRQpU-u{ox at Bp0k$=9bx#HE!1$T}hE~%Y
zm^Je1v(`k2oG4h3KeLF*X-;z9#(&j{!abol6E!mEr%znSXE*k73JOT<YN=EWI4;8G
zC~w>Kw at J+mqWpA3?O(gKR{S(v&l;We(~1#$D=ubUrV;-|Sj&JyE|lxkk{H4sd_AuI
z{2rLO-Nnp#<(>vjWUq*QZw;@A2-EH*TMFaf5w#V`X|XTxtW`O)vs6UJ4K>7XGc~l2
zke8NEf>xgW4YYEy*W_pznl}XW9VvfD>~hwzl5+v<rAETIZ|jTBsI29^M*N+c&T9kX
z+mb^NnYV=44U-_+iD5r#E?Tf7&&RHh8`!xfNQKjy)p(4qog?!elW(i&Jd_?d6}|b6
z*ZpoQ{8!C$n1=8P@;PH5v<6c&;V3c?IyEzJlCt#ROdUQ<7GA&o)nllc#D!-t3^v**
zf^p159UAOudl^O!$MmjWTzuY41(?!(<CF7wC-@;(|InL0FhLtKN;8)F7Z$=C`=k9H
z at 3--dlnrdCEwaxN<I6RBvXhGy-ZT9!WvnvwNG-2Ko)hV{vTmZ0N^}hVz_I4`afisI
z+f-P646dyOzj_vBi6}MWKzNZg`(>2 at Q7qH05i)z9TPVErTv=w1+4=;XljJWA!~H8f
zdl-$@Ivq1v%%HP^xJI29;WEsz8&~A{g-YvPlq&a&CCS~`Ne!LX1j~Vwtx2nl4U>u2
zrrGmDRlPArR{`&L8ISQ$Pm4G8PAj at 5A6tQgFy2M?GA=5A755=N36jFJZ>2NJdx%mM
z1pgKy4xyqye5xu?0V!fsfE)naPZ&B#McPT~*pHu_O%Xst#vWUR0ng_yJC?Bn7g$o_
zvA&Xh4lg;SPxB(AkG`@Cz`ZqNG2 at xQAwMovU0eiI>`aVI4LOZ7w-x_28u9x~y4RIV
zZ(tmI6VDf8b!fk(^H at +J*RsG+g0jqCVvr9Q%7-U&Cz&+e(n5QK%l250t5YGeiA|u~
zw2vWp9&9ks+E9?*$*Y1zAv>N?$7 at S2m1dvjzivttX*7NL1;JcsA@>ez*LrNE7}#~L
z5;>QJDzg9dmQdh`(mdoo6pnP?`h#p2g0WEhT2q<|So1E1K&#&D#tl1&1~A at i`z)Ce
zs9T2Ij0w>AVNsjECk*aIQE9*@S|yNKrhfy~alo3paGYq8kZ9Y{r$VM5-jHmnG1 at Px
zMX@@k#Xt}5pgS8%upCdsmo_Gt9XFMQCz=r}V86+)vF9w+ta<oqf(g9VzIqlH+h9iy
z5d*&gzqtX}MD^RH$;&6UMl)fMF5u6=OkuVXB#(fQb#gmmf3Enb=iI6+XdCvcd$slE
zNKfJSlv at fY`elleO|A*~&<!erP at z4=XZcV;<sXV#!`KJWONj^4e)Kb_oaw_P08vd4
zXYRCe*8VZ^_IR;~lWpu#8)o`qxLxvPq^P)6Pk6cXK09G4U&4K`1lo}v5ma2C-Ump3
zmsR#M*LF;^Uif<u0G}M-lE$_qM|kq!)dzfb_miu`6abM-0C&jl*ySrT#`m*mJSxTd
zU3y0Hfq$kN6Xr40Hw{RjAru4XkrzcTA~=whQIQido4lacMyO4e-oPbii73$?sg1;r
z!4LNM{W9YpeEe+MfQa1I(~RZLuVh8KP4|?R&){SQpGYxM&$xJ%*35W1<%rSRdU|?_
zbCMeCzLTgW`a4V7Y!O}iDK}$$i%El-jMwC){qMy~ugS)~(+gqJKq1^At7Er^j3 at Qh
z)*H(mrx4=q53W_6(x>I at l+Jik{u?*wo#{|LhNoe#5Et$u at NT|U__4y at nDC#(CF4M=
zXP_JS2<bAflqxq3i++a6mR2=9&jMXvp#YZC%l at PX_+}#2>s2n@`TxKf{&Y55y{3Ge
z{HSrh8?Jc+WfTh3wGMQ33UpI(@prp<NMxZhcO{{Uk}^<)jIxS6RORknaj2{c6uR-Z
h(ENW1ynS6g-Cz9Qg8a99`!@m-xb8nX4KQTPe*mJ>;28h_

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/favicon-32x32.png b/ui/new-ui-samples/favicon-32x32.png
new file mode 100644
index 0000000000000000000000000000000000000000..c6e103f554d36acc5f1e1e217664b5b49ff0bff7
GIT binary patch
literal 2165
zcmZ{lc|6mPAICqg*@!lg$T2yZL~~_WSjd%rZbph+lPgy?Hs(kyIVxAq<Vs5W$;~j6
zqeA2eCEw)AB4G&o>d)UFzsLLWe!m`%=j-wO`<-lc#YBKloDTp10W(u0o5O_vT`=hI
zhDJti90s=!#u5Vn)HMD*cb>nchpCMv07NPP0675wb`KGG5dgxG0I=)^06IAUAbKmm
z*&2OVfNofr7y<0RQ`}bZ at R0C^nOPe1&hYXbLuf&ssFWNMf|(J<&Z(<A%P+;%UZjWZ
z$0ThLrgcYhr*emHPuhSI6_5H(a at OH6Vg^YL1~6faOcEbV8p^1|Z1DHqEr*&~i6;mf
z^Z3g at gS`TqL*OLv(!Jx0p*WxNv?kU-+X9t!EgC7DC+LpvjtQad5AL$JzWCLIlG(Mm
zv*pZ%8cv|B3!%7Y`Vc$yEGB>d16TE9f^_*tek!R&Yx9wk>o|`YT8lNR=^Hu|P`xqc
zk+mtgp|UeAe6})L{Ld(|o6tdUW?`UjOBb at +^vQLnFC-xR;~TpBFgDGnpIy#B_F4{6
zntF-k794=<(G0e at TR`(tH6nt$YZ;3>c9gWtiPz2P&%dlWL*h at 9I`aB-o}nXI?%KNr
z0H?@P#3coJ_XT=y*gHriw>(F2zm;8q*rjjgnNLLTz9=0rG>`5tp#je)tr2iRnP3P_
zUP!u1EB{;|#aUNMdoA<Fhpi#HVF>>9T6pb2LWqV~thvf~KGDV&e1=@&(9`=RdQP^B
zJ&E7o86Bo&r^*cl@%7d8lO_v4fv(naRB1l(6T1xJv!8yE+4MyF<4n0ds$SAcq9lX4
zq|v-7)ScL>Y}MH8cRY$$e5bJIg=a${mH2pTK0%tgW^JjFg`N1!t#U`Nz?ZVI4Y$zL
z<(D}Mu}VyjWqEMJxn%SWsY^0|FD(dF+jXxx2>qy{F2F=1yF54d{FLlxp;Kt}Y~mj|
zQp)G_cGH4sf|1OQz%=e!SN#14rGNO%=w*FoZH7Db2UN}3F<VEvMX*`1MSD2SAka^1
z_2j3uw+x9{`s`FXoFn!OAPx*GP8I5I|4fx#z`&_-It8x_<zu6{O0&6aRwvgO6Tt20
zJ$XD;6v>lzem!=<wuMbJ?i_-!4}|pm??>}Hbqu)x`rxeZOyvuPfBf>^*uC2QA!U$m
zl^~@l$gH|3E0ODJ!-y(wQxA2N6xVcy4f3FdT+V7aq`yflKglpVcl~_5JOqG~O|;N~
z2|dSz*KKdMI`>+?J(A(u>rnW63l`?OFL72)(*5f7gss|~#k#m3G25S>*ZeH99~`_z
z>jT)Nd5i1Pzw5_hX1MG at r5)VEjrR5%na#2?7_Wkftko(C+J0pNS+OUk at qJkop3X1u
zpxf(mHR5>CW~}k(`r1+UZnh6j4w;O1yb#XZT-_m>M2~YRA~E4#JKY{=yVON=PL16U
zoFHX#R&RxaT!a}`{NO6O8 at E5ouG5%_C4MaPDfIadcE61!a*$=m3v&B@#c at -h$Or!2
zI~@`P8y};Wsi7|218hX_coe{CETN7%^$$z(2vBCBWyoi6cFa_vMb3glrGvWk&FOu`
z1liWkJwuO~UM9$cmdHm at zjP8<u>jCI`bZoqK!wkdLm-MViQ?Beb>|R6#K}|a3PV9~
zJaJ-HV*d1rG~aRb?@j;>V8CfmPYzEu2~p%9 at l$5&mMQW8fH$D#Y6vjg3>|tfkQe<e
z`Ep9~_=WXCHPIK#T_yIUu%1cU(!JCl=l#7Z at Yp-k7>dM$)FjW%Y{klZH><D3c at BKf
zNgcUuNA;6TetZm`3*{}ZmEcjgkZFta#7B(#j`tU4veF=5TZ1BG#du%Qo0KzFt4zH2
zKXNUB5Tg(i0W+`Uxv*?u<KJHqg~Uzscb&dYY46qhKSl at mc@7BB-^^9DHq|bJq^qYg
zyu{YS<wg3oj73|O7+fs_ap0Fo80ixuEO<I>l%~lAQxue6&;hILzI)tY63lKZGSDY~
zqty{SKCd3c{$e&nDcL5WZdltZEYIY<$U^0_Ue2-t^>_mc`0Cndx|C6(1G)wAcI3mS
zno?kxy_vdHvC+1Cz+C9SE}8bvQ^)FYQVFy{@raexh{mwxVZ+v^(J7H^RREvtw(Xf}
ze~0th-SQ|&is$}HKW66FxfLF=5nyZ(us{6^?>3H|ICujMm!1m7K3cR*q0EMy at kNp+
z-LZE$HuUtlg-fh#v`)>PEUWeyYaLBd*AJ3MqazUS?cSe~c!y$A(k}aL(TNN_?@DZo
zpQSY6+{2cro|q2_%RSb at xWwb9@gpu5_YJmw0#JZbPOnr_Rl#LE03DHj${kT*8AYAR
zYhS5uEO{?crZLDr`L0X1KI>Y0%YyAy!-erjZ!8tEo<2?Dbl`T}#w_6KSW+{46YHt~
ziUSR9^6``!k}3q}&N^J#;FMmAYp7mX!*?|Pp2W7V<%SL1KhXe!Dcs~DEC06yGPO2n
zdOSeR%Y>QT#Ze73&2Z3#lBUViJ$lx?9y}*NoS>X#D3(&*qCMK$GOouD%RiBjQ>oDz
z1s{~8c%OH(jW}9aXf2+~hg?=(bfxk_8CD;84U3FRBVo_Li7d=WBraNrZ;%rg_&EP-
ztSbrHi579gLT_-wtV&UC{Cf;<Vj3Ugx;8V&gBQgu7n(8#k8|fqJ2JJbedE4m(W=g3
zOOT7SKS(4iIAgex0v?-pny#Kz4RCA!(Dsj{y54K;wdan1iVcgkQ*yv+`$nbly0J>-
zFSoyT>znWM+C<)TCd9XR9sXtcFk`1MPxmk{9gh&N!vNHfs+!73EoD`tovOBu22w{;
oQwgc2gGA2n=Gy*`5D?_)>rMFoLUx7B>Y)Ib8DBAadC at KIU&r6-m;e9(

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/favicon-96x96.png b/ui/new-ui-samples/favicon-96x96.png
new file mode 100644
index 0000000000000000000000000000000000000000..f1c1f2c3f10bdbd7dfe0bd66396a06310997a3cd
GIT binary patch
literal 8147
zcmZ`;RZtwjvRx#&ECdfOK@!|8*y3(Mf@^ShUkDI_FN6@>f<u7d9^Bns7hhn3#ksj3
z?^V5zSJN}6y1P#GRG+H(nEtAvCXb6nfdv2na1|9mTK~}OzZ(PX-?{z6N9Z4*+DfTP
z0RS}#*pKF~{`s_)3R<cFfd5+nAT$C1xc?UlJpcf_xB!47GXOy32LM3on%SZ$_Ah~E
zp)3yqy!?0NwiiSGMbJGJRb|mP(6L^#2x8`O<O2ZI3yL5q9pB~Ctbn#GSuaGV!<bkA
z%wvQYIYRj_6D<&f76 at vSD~zcmEz?c%e at Elg9$47mQh&Nqrt7fMm}>a0I{)bwTuH(n
z;{!q>0BV3kk?BGifwY*-nVBOUV!RIRAz}eJnXam%nCSeSfo~sntzfp<PY+{;ymdBX
zV!z+C*8GoMtYD<aD}}h9_)&H~o~{Nh<0IZ5p)iwPhe4z at Ptp%@e1 at m?&i3X$2~@Rk
z_C~UIoWvgPe@@$GCEcvD)=M7VH`Ao?wX5X59jKY_)UiB~p at M*Jywg1#WQR}T at 9R5r
zYZ~@8U;Lgu;eSSQ)pcbhB%Un<vg(p=7WZXbpA9DAbYe6~A3!Bo7>2YhWYC<|Cl}GN
zBm<w!=gPx<yR<FVn$R4Y0Pgx#&eNv7CBnb*mhCSo{x2%56f(W}@gxL#15B1C$(6DO
z@!AaoKfjB-1UUMhHp>RlayDOHcV3D+>R&2#=}MDf)R0Z<A2WaM`SO8OP>+h~pu~?_
zV8Rl7yE?+TxVPGCY}{Qr5cox{oTfT~<Mq{!l*2d60|o_LCR#!u5rJz`m8u8{&P?q@
zn^<ee=XIYj(-VdEa+1tZu<im+;K9g#Or(sMTSfo2>m-V67U#I5(GdoLtB=E{hB%H6
zB^|w{+v_*M&@l<##s}H((~GQ^MW)9SE$k+*p)|}InvpDs?DY)yEa`xuM9sQ<g&;<~
zh#`>zj)IQHKpz*UqBTS<AVSSUxgm31-1gZ#rv)(&tGVj;5i`%qz!$^qu~4Our at d?~
zc`vi4z&Dx<wAVEzu!zV75 at CbUxnAjUxyh4xCAEIt;`w?p(kvbf>7^fgT7JpWiuW#k
zg<84u9S_g&;eqUdgw!omV-_<nQc2SQfaE4?1dsv|Xo?BZr9 at 2PWjhU__?VEQ*^W-A
zgC0v<Qot6PiMR6L4hkUvX&;f46tNgB3EQu)O>A_iZ5X~dzC=c{M&#~WWUo!P|E3!f
znM&?%410{Xhn(W3)ot*bhWKN<9&?jwE+0tFJ|m(uLY&$0G<%VButD|5{-|zJlw52G
zOImsiq||62Ae}Wo!J)DTJzMTAVr<^8(^TV;lZm=?`gD$}Ot18(?|fO0V7GA>iULwz
zDE+o<Xo;_m7)w=j^Vmf5qsPb|_YQt#@WM$?LMuEhceL}!L3C_}gZ$N6+ioYzUs@^q
z&T_&RTKjMy1 at WEnv|E{80sT-*AJs at CG@>XXgO1}(#f*SpfR6FMUK2B%Y64$APK9WD
zx&eu$N*v34f<iz at -15v=B~q?*3XGrQ$c}prX=<j_9j}z5>q(WPY1jrDMky8%o2*;*
zX&AYLhlT79p>5jr0%U)VT$v}CR$Hy~dBm71w3C;ev;s0~`Q_{rAR=S&1|4qWk9`6H
zj{pG8N;%tqiw_`3u4uv}UfEEn-NgF6{nY5IcmryPF!-wtPRUjAO+Qz|%)<LK@|E6N
zx;Bpk6*EEuXn{L-&O<C-fAGd^h8(tPSM_W4)mq?H2)9qarsJynN;!C54aZQ1QL7oL
z+9)hQR|POIHpm!@w at +1D&*}lG<&_&h{RHYs-RZ%vy|RTNZw5J-!=*Tp0;@zqm~Rch
zAP;mx^20Kmc=aYa?n<K!bRwDeU~-F(28KL?<h8mVx99i^Ni+$J7${<pGH0|~gA`BR
zoQR#GVi?-?oKHZbCWUxE7nGnLkQ=7OW{)7P;uOf#;tlmH&ND*YwCt1J9U#%!0kieh
z?a&6OiJ0cVK8mUIrB1naNZPjT7By9IGPjo<0uwXQ#IyhvzvLCznh#n at zl#HTb&#B(
zW1P?%DpG<96cs9-Pwa^-P6do4JW_ at Sp>wVKyBf^ibJNYXQXS5d7<|<*2!qCICReHs
z at 1*#ps8KK!ao5(%g(eVRcUQ08SG?>W9GhTwMSdyf(I(-w at ANg0d;w*(n3JWeyjASy
zqRaqFwjB`=^@#zao5-cu2>ABw^(k7Vf9PdJv7sWJ8dm!9n}wn+-TwmDu at dKg95wU3
zihuTZN|*_szX#90#RQz`il#a?39I$D$<&fqQxrhtSVlB!>-B_h63kw>*ZoS`ub?nA
zvpFy{5AO~9@(aIx2-|HoabLVSqdRi|1-E0t&M_6uE2G2 at W>xuc%8V`jwKZ4d?std+
zW4%IWT?Iyr-m_>0VxOKq*NIJm_=8&=mHb~ifYj)S4q2&fOg4hl(5r2+vnE?3N`%fA
z$~OC_CBrPM$~bHLDnVtvFr!6M+m~4}Xo0ieY40^UkZ?z;G$&P2841-evYPLN;yj1U
z``gYjDmi{cJRnlO=bmb#=fc+Jl4rowY`48`Z<uhfgt-?xCHs}<UVVfQ>P%U<&xNRE
zJNGuLco1rn+l6iVln;=hQdb%DH!$fu+DGUt(!ikpR!r??zNytX{FdpggA&?d$Q at vu
zE+-<-5ppe%V^V*PI*Kb#Vmn+{alb$u^PILL!8L(+r*&3$FQ4G^?acy*@7WXo-wCBl
zQru7WivhHqAaPPU=2`k9@(UcRbJWuCMj3u>l7Zd^U{7P=65Cj|95U$CcJ3b5-z at Vj
z;WcI)TgOb+npQIn98^n^#V0*%Sx)s}n{-|T^fKmHq4a?7ps(1Q$YbWI`crW+4sNjA
zy<m#{;NGw5cvOVBRqN^@{WkB$9uW1citZI9JPc1<r;OGVFJPt1?o$3OkZs{29r;yi
zvbry<dxYKRN5I|qK-4dlP})~0ad)@`#w9%Ifu(_+wxde!&dDBd at 4Bn?e6rhYzwwEt
z=RI}bQ&E!l-C=lHGPtH}gE_J>-;{>k&&u9;-<m+HS~69!O?t_8 at X`KmSh+J>+Omo;
z0J{j2k<Vh7`@%Q3BaeJ6Dq%8}Q&A096Il{WZK_Kk6(D%lri=(4;T!?UhN=JX8l0!!
zyI~uc5H{<s>wt`W{IK1h<}y%Uek?jld<F0BNn7?DZf|A3*Xusf-LS>;_&goRk_$tT
zSQ*?<(E5;4G^038KSLi-_h+?jrSh at lXQxvj{K;p*QlhTv_A2FEz?y`XP@~Y43FlgR
zl=g>9+(q#!h1&#;N#|bi#t5Q8=>Gd at 0!*)gQIN>QD2-|Ft~~h9T27GIRrUQ_z%hxK
zt>;IIw$Iw!_f(jayY}CV7t#4sbMa#$b3!-v)|Ief_uS_ at rTI=rf2SI0JTT*_=Jih8
z6mg!SN>M4R`)}tN_uNKDCc at g#$;2OjF}vJ#;{FgJWsIR!1g$6uKCZmE-gO%m>zEb`
zQYs=_;|qp*hQNw(|EXgio!*ZspzQMqJF_}Ybe|a=sYZ2LO}-RjuD*pIKCi34QON_O
zds9%O`IW>x>1fl!3E_VzZgbR at lh3o_O`qh<v3jP)f5z$66LdoC6{~-?KnRi?bhn+@
zk{En)cb=TOQZN(S$9VCD2V$?ZNogw4r0}+>2->A1ejRa4Al=sYq;R{>vR6aXn2p2y
zT3!wLFi?gIu^fLn=amwA?AKF6AlA?rNZ%vV-3p->yq`sbe?4JHGSDheKW>^OllLP_
z)ulJDulLgR)4Mz0Tv`9VAO^EM at tM2NYKdZXN?uZy`-#}la~W;X`eLcVi*XDzjT5sL
zHd{$36a9(VMgnEzG>E8?P%|bH^NthRCL98h$D?dj{r(dyWBA+$JG<*fsd}0ECg`kx
zJ07(3vQr*X^y$a+pA?t(f$s*`Z!MGSvx^Olbbi(Nu_lCQGj`wwdQK&n@~ow}geR$U
zA_E1n4hv|Y08FujE{DQ?%;j7T+(|SA)g(j7n0!OgL?M-Vhf4Mwgj+{B at 89oN8d3eF
z3$RIX6+e?nV`fvO2DOk%vPYHSG2S|_4*lw}K!@?HeY%BAfwfEtx_%Cmh^w%K-#IL{
z1b441>vCqLj$-CfrlU1Ld~%tgK7UDI5ia_lUaUtD0`Fm_(-VW%f;9`w%PYE22-a`d
zk|0l4E+edj5X7{ra??5?vCX{^GS$W_v_%dpRN0wO_j?@KKa`hsI>-G!a?um=Sa!JY
z+dA21MIh-3{enUBeGt=-v at q{;2orb~nVz5#nG+jP+q9<rm>YMihnaE>4fKJc>bu^I
zS&8rx3o}h4{z{&jF-7l`$6aEPcJfR%UW`w?51h4i37PM^n%gJpu|zy;H;ii$h*Jgb
z)CgvaudO- at _II{mtZgn*3X|--1_{ePNTCy*>J?6T$!noFY?j6sFN>&O61;gQ5vSA|
zeA(z at 6dE+%fySWB_(6NJ6Nk^lXi`vPGK#Rg$mNi)?oYMkWz-GD^s!*<Un;1R1A!nl
zf)#X?=$PffACb`VP(QHI1h=D9FU26`{3|DUL>cALF)Pf06NZO5U9C_lX at N2ooEa>(
za6u#xu<{`>>JwBkFYA6tJ#(pjY|^T_(OAkfTei>_Zx9-BKCIwGJ54(+FGa(DUplp*
zr*K*%wafdaAFj1Kg{d8c!Yh1p>e8y5@&aie?H{kE7N0u^nN#vaD}2yDOGgA`JXB!L
zySG8gSLsJW8L$lX{t(zGia&b&nDWiSZLANvK2+Bq5Fq&{;==Z=v=k at NRf<9u7|9+-
zV^Tgb8ekw|WtZ%Q1Gy=p5B{Ee9C9&K at GGOv7+mvWgsK{Ww9d-^%srZ$7fu@#!*`!(
z0mMYf4Wi|*z!k_2K4cI0RP%Y=dM9mtxXXb?G(y}Q2|nJDX+RlGXu^Cj)E;e9ef6iT
zRscnlUK2~_>I<8DWV73B&N|<k(J3KLW;0>>SLN<6U5#zpmHPgejOe`QCeB54NT5B*
zO@^$M`40>nKM+j|*}z=0(6Nf2DE>clhfy!YZ$UN*(Yg7l7=}djm+04I`w>PN&Q;#z
z_onTHDPtHpm!tkJ;f>v*@x at hu_P#*wXfQ}z%Hl#VqJumur{nDFD-7M%Y=#56wYg%&
z*-vS~1APRP#8SFn2{n at X<V3C(rY2y(vZih?XCoV`b2Yut+F_ at x_o1k{(ZC*ZdjH5-
zte+c!S7HYQ7f706 at _d##DF+K<X+&&DAWh7Y1G5y1DNlG^`PQ4zL7{V1^*?Qy?<M=$
zbxYrqu_zEE8cs3GimgCSUf--hH5W30x%rDf<0T#yjsh^V&f0SVXwKN%m4Qi8Np?%u
z_bKL^WA6eEuLO5ip|9iCTb?Ade<M$^wW?W2#`tCuZ84em11wEH-7F%f#Lk#|LLjj8
z6L<fwA+I^2E9o6m!SOxIcFW$6DbfzKukd3$UO?X)_3XYA-$h32YPM~z5y at 97&*~N8
zX4sHCxH!CejT}29a&y%qPt{pOFXr>LG26?LK^o?xOJC7gTV$&CaaWMoMAc7(BUW|!
zY3ek>NgB1ctk=E>3l&}5<eP5<o^!^GC|y_d+UVP6^n%B{B>A{lRl=>LUeS5gCim4f
zN*B?FEYqC at QhM4svi6eTsfV1QmB5yj;NF%#f(!Al?iNCxA^p!#zXX!diQpe9^blvB
z%dyl~V(}R3Bc4^LTy0#9OJ|*TZ#T)?tnkCyt&?933hchob+%g|Hm9X#I;yE0sXF`y
zw-Jv7NPc6l*n4%H`N+>;dmO_xwQbGQJ-y~ax5<+m!E}=`5yF2p`rg&Dd%k+*4V{|1
ztg#>;H)lzN at cU6}irMG;UgkyuGx!~+C1+Kaf~n86liW`$B*+62l3p*v5rG?f?TW{%
zL(|8qProt>jNeJ_S);pBtlaoPjPMe4c?f at yM&6@&Zn~iYT!(V~ind6}N at wc8l`G`!
ztt*VVCb>F&s at agSc-4<;g7U4 at YUs?mo{m)P^dF`Ou-l0cXAahwGDNe?oTw5?q1QRW
z#5I4zI7Ncz8a_ at QW0x38ygKrlbqF0-H|fxvdhS`jm^u9QIW4bs<6O$@v at l5|Vd*FU
z4qitc(~8REf!q*_?JM~yegpSYNIfGt&V3|!I}uZK491#uC?U0K)QejhRED{%kL3HD
zEG{2ZV;BBJuaIskYOG#rZ at hDz#_Jv0g+ at RlipSgiMh5rAcy4-;9YtO|dA=r(@8Qw7
zUdl0St*?a%aU)M-5+L)Za0x=5Eu1$_806tLYQ8Vkrk+=;dm}<VceP<2E{5KZ&4Qfe
zIjw<91?vz2F7Tz7V81xh(#1()qjzt1`K^X*AULHqZO><*s>7kcDVPumFrWPrcr<Nm
zu>4}T+o}9Vo{*}xc$mP?$8aC40W8sm1Y=cF;XiMM`8z#F)~L>mLGcP2i*SAGx?r79
zp<9G#L(C+iHnq2zHpyitSe6(cnKMX>yA5*T-M_-Lezuu4uHI%G?6%pAZeY2DpKSyP
zMVEjZ<u8n=9E%meeVBF%m{gPNTU#e93A<2|&~T~DByFc@(1NQImj`SXY|es4144M#
zGS7g2E-x%8nha7s##<qlYnvYB{|XBcID+Q40vDBo&z#Ol=A>0dYQAq(Ml>q58El_k
z3cv~xed6da4w(PvmHX_INNS-MqLf87K8d7*w$8%l4w-M$E2;cV;pq9Zb_cZKZf|*G
zgqLa1Oz|&=a@`Mj*S+|e+hMjdW2fHco>a5<c_nU^(I+&>FsjU<*dagb+6ASG)2nv-
zAun2&>)wURvFOItc01ph-!|S3zsA-TO)oNEe(T at g&@?zdGNDu(bf^ZcP>HWV6RP?Z
zYUpIDG5DSv`n!_&(Td*U=A*^XM*K+Br_YO1%!p42xSYr3IAq{Hvff{Bd4?tAILGG@
z<(M?%5a4-3r}ZtX^>@_oZ9TRQ{C(li5{vuomC6aI at Fi4n*`s?(%_VeAkA(-89(>F#
zk*_>j0XOvt1`Bv!IH5T~xK46bi9z3qt~wk0yI^w%8JaU-L!4Rq-oF at h=F53kZa)R2
zM+W9?mrb$4ux<G7LrlJx&i$AgK)hHCd3rqkxIGac0g%L8#_3zSu{5FW)MFqz&DZg%
z;k=dK at MtNU1+y~b=r!A3eh4oKI!fg{^}e2=il>>7co4DS%5f7Iui(BF<-gz1fh-SQ
zliAK%=6;mKKucyJFFv*8bBbt4Ft{8Kl53ehr{N!&UmNnM!?>v8?>QF8Y=RN2o+m-o
z1QCG1vvuoD%KR`G5w0-fJj<Fe^oPMcY at wQa{m%xXxT1<mZ9Hi65#kFV6MD$p;^w%6
zy$alW7_Wd_+#l)-O(j!PW+MH22F&VnQ4 at ZOvvciK?A|eft27?p`aFAizl`GE*%2z-
z4-yyWA2spP4r^dYM{8}io%LTE={OvW7s*H<i?)M#;3wbi(w3 at sT?9<2Z2QD-j<AE!
z%Um^5egpsA`VWQNyVjHfHN&)n3TnjyMENiZuRV$bjONn at k6_5Hc6IuPdFCyMU}v;J
zz&q;^Q);X`>2_1JZ!Lh>B0QI9{<~#yiQ{wIiTm#HkFQju{O`~2s<$iW66|m*^4Rp$
z--L^P?OqzbwV|6AHUy!Cv(aIIae$A1;v60`9 at xv&4Q{$;xa>mwlazoL<h0D!JQ83u
zK2+)0iJ#5#Ka6Mpj_b|#IU`Xc5l9tK($Nn@>1UOcP+$;hcy{;-p=O9Idt-B9=9oTN
z9LX5S`pRPPa7JhptpUr=TYC*;2}t`bjs!?fNzC2|m9j=T?8fG6Sm2<>u at ICh(e(<;
zzQ6r at q^F`7*V at SL?Y1SuiG1<X_KrdKpHeA6qPe5TX|{c9vw1-c2d)b3x(&ZHjPuxI
z>V8=)b|(cLtV%n)aJPyN#ZxLfU-z&dirdB+oHvkxE#D%8SGN9rZPt-~xXrhBT6yHd
zb+^&facYNxBQ)53bwfrqR*U=nR7wF+#_iM*AJo0E&aw0iq*KUAtX7p<1uLmc)e>Pe
zcknG!-&*gDFqu^$52(x5`LSTvcX#}#w8W?Ku7jK48;ONZ3}tXM4F`P)asCN8cF|EN
zajK%?urmhFJcT-+{3mr9B)nGZ*N%!nYwDqO>`M~l0N*^{JOv_<bty)5zi$+aDOS)H
zWXA`0qj9&x&3XMruQ9s7Wj%J@^Y^M&$3T|fbg}8pDP at uAc~|M&Ut&snj+b0bwF<)y
z&$Ws9 at Zz#Qe7kVR!6m=rt&PBY3`t%Y)hLDM1yGQvCKgr^8(99-3&GZpl>9h>isv#~
znqx`T`p~3X at ZOZGNk%u at b%KQ#abh_mvxC0>@q>K+V at FIIF8n)@`U&;(9`neL5R4S3
zccZ&jns*y?gV-_BO#Nlo>Tf$mJhfeIJ=ox!>3=B~vq(07m(MfAg$lx9gnOz)h8pG3
zIlw%Tq&7n*_r#O3C3U^x5>}eR)DZt|PWc&J^bgG#$}ozsX(Dsj)Yc6w;%CQPmhBf7
z(}{GNn666s4-GG!o88u%y_t)xYr6`#nZJ_szI1{0F}R0O at 5)x*9{Rk7EYPl&YYTa=
zvLfL%TRF*|ef}vm%llOXWSlq8UPGV50wjV3zwwgC#a&W=4etT%zGH0NP0_XViQLT?
zrafH#f&$2FZs;>JHQQ_X7*dxGHKSyEy0|l$A$`5e at +BCzc1ZcolV~ZKdMEV31!}$O
z_S&;w2)I>A;g^nq{@Ltfv_dRoRZZg$)cfrqIxlm^#&7E;ela1P4Lt8`WF%>ha^s!!
zFI`hCbF6hz1gRWbYn%)^#gpDSDVo+N%?g(&1Oc3HT@<N488pDNvI9 at 2bDXIA#jD#w
z+BVFqP?z+;l;DS8HXcUJRB2aqFOJ%iH08Wiv5=MBg^6lEZuG<VXBjnH!b`XM(V0Z_
z6j;&x7zENK*?YO|pyikwHsVT)oXqyUeZ8}Kghq?UUeC(d6bEr`K+fjLH(n2iU;18L
zjgqP3i(~)h0+sQ|0!X-KsS>)G&Ca9OKXZ1MN4S89?AIiTB?_t+(r=^Po90Ge`1zzC
zm;?A5n(GtRp5=yX9&V?^Grq^1!zhH<ylIGm7P_5i at +i^Hs;s3q0P=nETC<_SudO0k
zk2@)ZFcE)yk<C(qF3MVj+Ch2r2t>eL#TyfkMc)<lg%KR1#}P9u>zBed){`gV)%4)W
zly|S(x+|)1_-5#4N;p8!ImCBvvB24>IuG3y|DoxEF04TMB-zw+Xkp!}Jp*R at +G(&X
ze6ePCSF2{U=*>c0bvk#z(dxu3hQ`{3VQoTUVB$2JV1#Z0W_nwxTz9x7$7GPr2x<*d
zV(7qGWYl`;-fR4uQhhg+Qjl}ZU9;oo5HBZQj}Zou^NIEL*kwu<!6h0cvvhCcIPY($
zZ`&-38qDcGPh4NQmnku%wanKAI#oYCz&XE5^y*j?qXIR>gqt={DroOMprZ3r%I14L
z$)|O1&RNPxBd+|52_5obfHJrgvl?d(S)^#HwHHop<6v;M=gI5Ql6n`>%_(@ap~SBF
z3Ny&0G6~pH=mURPTAmo5*Pbsg=qry>vSMap_90UCCns^Hc;f_rhMEc&A)m~K9>wd8
zM>*aOy)+O&^N)tG(Tb!7&f~oVe_zL_TO}=lYK~H!<%*QNw47i~X2dFGcxwO;8g4|w
zr-2Wd1vnBUcU)U0H`>;k7`hz^Xj0)i6D3LOr5$U=a_zAaf}^o1u{t)xDKtD2q(2(^
zYxk(~Y+HZNaD48=zS;i$ZUM<C;=)lWMBI7pS&~lgLzaCt5q05xvkyl|u0Q{hJ+5)*
zXfMlfD`tN%r_)1#;hi*=UDYB2(`Hil`zBDy$^G)O at MZmGZ2tN?ny_#)-*ECt{}-t}
zHXq-fU~TwrAuBOJGJkWdEvzI&@rDq-kXV$nxiX3p-I4k at M1N(Z0fVmpo(oXn!3o5M
z?yPRKB^i9F*5^8pKv?NUn~%n7#me!MojV`Hrq|n_dkdJ_?v2zEMH3;WrMJx594juX
zumEkf=M+rW0oDLy*G1yvk0`LW4~W6%w<)g`c)sQGNCgKn-a$|gyatImna*kd>SCDo
zHYKy{yvr62XgwP$``FpPNo}S$F&8aT2H`tv&OK9`apvLu{)88X&v;xhuYW>#S*#LD
z{jtrAI?DKd6NC52)T-@~WBe;)2!S)Rg*&a3O_Eh8ZHq3dBx7DI9S`^%_}7V65TIw-
z0j8}aj>0>gY%dgu#jmsZjNh?0o@{c{gvRDGn<4M{seSM0g8L(wypw1zh!;`kAUDqz
z(uAn8d;0xN at P_)P;97y_S{l){M4B3oIVx{WB88^Oswo#b7A+P%9E9P(>V)#8;iH(E
zifzCJP5Jk&aj7z+k}!x at K5sT3R&Av-bE;YT3h4G*KTe0SK#kyd&d)1|9l>Ue>teBU
zwVZ<dgsy{)OPgm$LdP-N+0!oE`*}N|%de5$vOjy$?$S~7Lsi&oe|VVF`&@TXVdmh?
ze)JfTg}sPQyG~=}504~{PA^w6)?#gFH^R{jmT^7~yL)9PVZfGz2E}ZHEMC(6-n(Tp
zRqF7 at _p8^tJuYDY at xbQ}>s^oxcKktX4IeX}^l$y&`5(IKOWA$C`umT7iz9E>7UTZc
zHk=<rx&_wos&5~e{!P7^JZ1Ggt;{{GMJ(N|{{eu9i<_UFOOTzLONU!ngpW&vpZ^^f
mj|dmn{(ZXk{~<WJSlQY5{r`ltVmjDA0zgq#4OAs<2L2C=CGsNx

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/favicon.ico b/ui/new-ui-samples/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..cb3a3dc2f9c9ce0e5d3e14f0adab89c28c729ce0
GIT binary patch
literal 15086
zcmeHO30PBC+78mXO<TJ-wrXqG!cEvi*mt=svWSWsTC~_2chuI}=`vNP&eNGrXa2F%
zTD!XM3sgaiS_KzeKtMKuge5EqBtS^WzJBxFX!wDmg at W_X{Lkch&hwpf?)RPZo^#K3
z-|vJ*v!U72o_&^v(vG(32^!6hMx)u;-A^CI{N0%6<@F%VpwVJ}OQSJS2Opuu{d^QO
z8tVO;AKA3qmTcbh9ND<r_EGkdD}=rD4zWbRBUWl!ox_X at r*V`%DLI%%N{<wvTo+mY
z-GC_CuMrcw?h;p3jZDyWxSDlRSE;VUeW$LK^K4|t;V($l37DbDl+BT4#0-R?;|4KN
zevio2w6a9HPR<{d^_)a?i|;y}z$-LZu-`ta>*yD=^jYd9`U_tTWKZRFlrW}rm9d!8
zQa1}mS*fRuw8+iU2LI|Wo=B3P+POe??(|Z{**<N^SvFymWTj_N>&DRSw>Gkuo>(_^
z!a#MziVw!b$&YVlX2BS*T-^lUOtlTAcaQ6sDp|#r2-f>#6uiT+`*O{1Mh#?7@^(%Q
zEY5avy>9q2wA`3CyWHq~h5M3A4VS?et>MV-rF&3A<B>ndQ!2X0ErTGT-fURPGc76L
zzLMI&Wg1%7`ZV6#=xzT<V|?g%TI1?_#~@CwHPyUv&&a&Zec7p=OY9S_a(n+wbjH;E
zKKEXDSQ$>oRWA^^y6*xjP2%Jl(;};033r;MKl6hcS6=X|jj-nTmX5o-$2gu*C$MfA
zwggm}f>H|fKkK90{!M$Y_}1_G-nD2nWgAQvjt{1bEPd>6-!d-TsWoVZqsXCmxxM50
z{terUgPS$^Aq{&o0?GqOdRKHTUH)dIUB{w$hwg6{d8riX at v6MvEml0&+s+!lz~Qm)
zhBY_xXNsY4R^#<|y+jTPcIq$ZIBKLz*?QPK(`fi;nf}!KuPL9l+Vq!KL+fT&&27C=
zvY`1dnPkc6Bsz>;z|{G at 9;8WGm#Bz;dvW)~{x-eS7fGH?>AaR_Z_jTW+dKbZaR3?(
z8fY}Z-)Xewn;37U(Yi3NL`S3Tc at T0Hn2&j_7$_b27#dB7aVn2mXY4RUV4&6~%a2-k
z{-6KIvM<Jw<vRz}$Ajq#(K%vN`*mV`X94ka=PklAeh0E6dEeNQqJ0Z-ExkatA38 at 0
z_a&3nU-em!2C{otp7<wXoFtb>Y|kflNsEZf@=D@{f=^^C8;HNCn~7+(h_I}GR(rB#
zZy+f?ASPu;fs`KuQhcxr^VUSyefP8ZXtjBmY`Z`_f$RQuY_nQkL4dNJ08J|ax=sQN
z-2 at nwgu<X8_G=}CowW>X_Zw8bQR<Trr9A~ChUl)N;<(m>kyf3-%J!?cUlkGp+^;|*
zBtYNE0;9qm>-Izp?*AJko;kX9pO>g|$+rFeh at qA2MhyB)h%skDqW%obm1P`%ReTC(
z#^8UrXW7Y0iF#Edwz-39vnv?nK5|W)|C#O at -#^MLeg2@}`R><>1NhoDzmH8h6GwT}
z9UDc~eV0bI?yrhcp3uh|vtT})ho$-p;@1>sJqKSqjfQ=1+gV6_*i}Y!E9#jBRg)`U
z-ONr^w}kh!qqAW8D77%qzPp<JmbA##i7KBg`N9Uz15=~h53P^uJ|UTB{1MVjm&|GE
zoMl6)pVAfQ5o6nL5FyeMR+6m3#j&%{#j;-aFQ at ai%lOXQtUl|e_x0^IF_J?YXDKrc
zsiuptM3eJ=f4j$>j;{ZHVuIwzjk)@>Fi&@O!%*rg=Q`T9tn+=j`OV;fyKnhM{Irqj
zow@$y=Z8`Tr5oFN at S}KDhAL6}L&RWhd0a<k`wGv0$k&JRS~o{3i{JLCKL4ik?=#Y;
zxE)P at VZe9ru(G3C_NGO59L|YRoqUGUalfb?>v>r>ft{lr at Vt1JYezP6Srv+vz93Ey
zfa<sXuNS}L=bP~XG2}Ibs*kMMl|nXr8&AcFA2eQWS9B*ig@(e=Tlzo6-qQE!&wTEb
zplYsDZO2MB$kzlw#Tu8&%j at WFl<lwikwrUf$h)7}#oqgPwBu3jc;~a4Gj4Z`5Xd(}
z+&!atc7<`XwcPXEiO=5PPPu^RCFoqmftGbXrn0pztF6z6E1gcNorxc{LeDZIgbM)X
z)texdZ#uB(uEFv?uW~2PzQdiSY2ms+`)Ur<t>=i#*1P}ew)e;DbV^Mp&TH#ArACOs
z`d`KRU+0-VvFhPjb4NMX9>iRCkgoOx!3IA`<wo{M)<2bbUd!{x_9qI=u#|67Ew3_K
z#>I8+OE!hvS9Vu&9iW5j30+u!{d!Jg`9 at F6nr6i~9O-mglgP@`slsbaFsI%ODP at K;
z%Zl|qYt}99)H!8b`%VeAU%b-GRI}FYZw0 at bX8Wo8y(d2NF0{;@Ut2$8pK=o8tmcAi
zG4_1}zI(o at YR(<Kckl9Yxi3CZ%%#URaEVU^D_E;4RykSDu}A$X!uR-;PVcQdlsF?(
zJ&BQ}`JR=pH*;#t5M5)cNUk&vYCpakE*g6!L~!U_0DsO<>ZEiTUw2Pn>`}~NWT?+N
z=jpmUN{!V4)uzuPN{!U9bWp!LK`m~DK`m|Pe0W3NJFx!ojC~4E#t-TU=c_tjw*tcy
z-+cXmYu>}a-12XlT@=t_`q7)0f7qk!k!Smdl`)+BJm30-g at Mh+8~y_0c at FRW9n4#O
z at CVUbp2slYIX8gbG!DP9V#6Ip?~+X6!dRB at si9&y at 52kd86fB`4HiOvK!fa at PxZEw
z-W9~xE`^plv3&0cx?~f6hdG2y6Isr=E-&A+37^*fQUtyI(`dU+<t$bgEb^1;(;_-Q
z`qO&NkoJ%)@2cNk at vAE;4Q_#|uvWMm-eSBI#1|d*Dc!S&Q}psHlRKWALGRubPge>e
z=^dG2^tN3Qbn*TeJh>$~s11u;46r851Ru;d!Uu~r<?k#~Od4t*oa0o#QyAE2u8kCf
zAg&#165Aj at t^v-G)jMJNDVumZB|XkwnVV>@f|>SeNODlY0zwDN*d|y%9pJ-x0H1Kp
z at P{|FH#aX<4EgKpq*wXmEB<v?E2j%VkR$=&qE2W?l|X({eL?2*N(+}U!(L&R?4bW{
zzN1l^;%tO8FC(_w2%D1(@ZqaE^S0MDbswZD=MA;(R{b;Vdp?(f`FAR33ZY at K1j-i)
z;nGb0w|fJNd%kUw?A2ptJE;Taxu`ZT at l}8OMwsdtH at f@Vl?k%7>yo>i*DvfG(z(T2
zw^g1EsbbtsYW_z}O55$i1x;U_pUJbcKI<=&rZ?Ek4Q{iI<unbe&i>^V&1$l(Tp)V7
zU|wTSyZh_>C#Iq2rvMn!2u2$L7- at p7M%u=$=5XUy0CP{!ZiTHffaXSkYu5m-P+>d9
zseti6bpcE;gPCr|GJCA(+Hmt|S~%EJVcS;NE(f^TQz=jz0#c;3Gz>jF#fa_vSm=L$
z|Is}_o_K#0dF~Hm$WtE-Y5(}YZZygNW)$*4VaQ8-jhsLZax<S}+J~&(HKOa%K<#YJ
zA#B9C#B<17d34?;Vvs*d>MA8jSvlb at s~{$#FQCs^VxTg}raiMs(S8xxc^E955+z0Z
z1n6s6LJA)3Zy2b&!RCoC5zdHxD{>$=kZ)`2Dz<P?y6$R1h5T0=a#2O924a`0iHOB8
zexP!Z19={?<|7YxAG_lCeNL<c)1rM+eE!-%cEin+<PqVByAp8&`b?m^3c0g70+6o*
zP1}7gN#BKhmJEX&IW#$O2>B&e|9Y|C-N=r^?IhxkQX!wFIcee3C{B&ai<TU0oFUvF
z(BE!2Y2+H8LF^ZBYykRe9^htzR?Gywl!Y7^a&RgZm^2u4EHE2TYFYS<S*#JU{Cn3;
zwjHoX{0*c6c}VpM3-%~OCPbM|Lo|jN-6tVYeB^kt at JJsHvv(OojU#q99P45VyQ+a{
z;SF`|h+XD_e5D6sXM?`W3)|y~@50j}we83!N~pjt(26<ep}YUX`Dz;_-1}FQKz1F$
zHsCuj{9xe};~^Vn>9b+J{D-cEof+X)o8e0299?jpw&EBEbqo61+9}?ViMZV`_+UE%
z3~Hf&1M-i#@(Q0bvT~mb at +#kQRinRL*BOAEsQ+$N6Q}2UAiDP3m&n?0k0A$apyqG1
zE(79BS&#(hV1fBOEHNNAsXY7F;o`R1BTxMla<*B>Q-ezIV7zxyK0`OqN;r+$wt)32
zL6C#&ZqWFS8zE12+z1 at obvJO5vOX|O+ZOmg>So`X?rN_jYk8C;YrcLS*P1lsb&n&L
zER9oVz${}nq`(D8Ghc>f+Vh2}($jr-q~7*Jjd$E60y=IHccdkRNnXtaMIB48;JX$o
zYCQ(@ZCcA$w*-%pS9ndA-f{h~^EUHmW11B19Ua|vU~Ww35kZ1F6Bd|qAPo?|?t)}#
zceaPMoRN@{s{|e2MVhpTwMka)nk=huoif;Rk;k2ep=S*Bx5G9pnjt;bovh7*CFY;t
zHT?zk5=Hi}<|q1>|G3kU!o6c+MF;jI$xcCv={zhpoY$l%vj)Y7JZ@}*EkCwlcUZjm
zaMx^HgOZKsI+B&A*@LwmjNa|#^ij3zIAiZ^@Ec#bDSS-Zhp8iaUWws-^9;U&E7Uwd
z|4d<G_sL<;-)qY!jS{SIVYIFFT_N5W`fc;3u$=NuetB2la{uw%2FK4b)2Gfol|FgM
z9LU4^D_Xe!^BDPYh*h2Z_+dJO%`fHBUu@(OTcj)4waRrNrtY_+LHIio?r!!|=5BI5
za`sKfIf$KgGX158&db5pW!1xbBU_^+2Zea|qK{w7<C5-4^bb7covVA&s{1He$erd|
z#dXR--q at sG=?~rMA<(iZ1gbU%))l|wo09(?r^jFQsB(t-jO2awF)8?Ndn8=6j7_J#
z%2BK=O{`m<?kM}F{<`0F{lSo{x~SNzx`%!<;Qa`<3a-PgrWLNxjs6bR>Og2*%Z7q<
zqCS5k>#?l~WXWg0A<O=;fvnouvo1SlsN<MFYTMik48W;0K?w5nQFxal?v7zV?)5Tv
z(ksZBU#>%cMf*xGP$G8e+5jkD!&2m~o|Zb){v3)vS-fL3S+b*N&N5D^e}g=0HZxZT
z9*Et)0f4MCLsFFqkZaDHU23rKRMtAOS3GZveD~jw?}lddcXX`uhA#B?pw9(L*SZ|J
zy4vn%`={0RaY)8VHH&dtBV=9EgBM~BLjOn{`Y0CEnqV>C)ch*nWZ%19?0cVU+{q#w
zJJ8B?wcu}E>kIsJwzf3gZNT@{+kT|u*#Dl+S(<j2>w4fI{xHO!g!ohIOpwMm at lvad
zQ+wBm*tg@@hZ?Sv#oyDpk^`c2U#QvO-B!B6{b%1Iy=@;y9DNj%owGHSZiwFx at smg{
zB_sYc#Qz4*^y9)i`krq*^btOd*soAyr;h84{vr?PTIB<6=&P*V=+j=Yk=<uKdmMQC
zm+6$Lo{0Tl;*R4d2=T`v{`n1NSjIO2`ncZht&ek-j($EtDc24JTqa1lULap}-`9%x
z<>+$@?ydi?h-3eIqHna->xLe}&_9-l_^GkKw8GH%dYPe*4-oNB!B9itZ{o5*#${X9
zP7%)C>h)gy(hVMV{|d~#>%h7Dp7SLga7v62jlR7(jb at lvX*A)u*|zS6rq9_WpF7$1
z7Wd^H)c9${{+A<u8IFI!8V{&g=lbWHo7p}3JA4X$kt6Ai<JZI)M^qk+Yz^P}wgLRG
z?-L%3o#ax(53{c82J|_hpL#0#YY(8WT+zmL1JMdM6>k;uVCfpdau0^WvD3R~(&yfV
zGrsV@^U(e8*Wm4K!#J#ZiE%=mMfE)k{knm*W=O>TpI2kbpL5sX+*`MQ{3dtmQ|NDv
zz&V^&%XKCzS2*<eVkzBY{*`a;^C?}`-)^MRIOge$Gn%8sMXj0g%X;ITfKZ;<G^4_J
zepZRWbvX6h3~Qoa4yiBC4&ZTzQ%-+d^l6S`e6Mg|98{(u{vyUtI$+{?!K>0_^yist
zLn at 40A`1;K_O}~qx+ql0y&cjF=lpovhHCpLeZ<d1{O>UiDKoI|a~XNMEaq*)F3%F<
z8@?q*C%+5YVUN{A?qyGw1PPC#?-;VYtIzFmE9u!g9))eN&lpElw%GS$7&+Q;jGwfl
z8Ala8>&0Npc$6OcnkN<q2#YX4HoK<duzOj^qxApXp5=J+><avwYD)rzkn39qr`c5p
zGTHY=^gPG*Zn5$9Xnun2Cmhkfr}{FBUH!^+zlNG396v>Y&2Yu9UY+e-z2+0=`~k-%
z`oLcZrngKR%zFr=H;+Sq{mf8%(avxu(dkI0 at Uv)^&?nVXGGgsG?pgj!u5azN!oVh=
z{Psmb&2Z6|-+qc+nSRWx{Ac%Ag6P5*F?<q67yCuhI|pnd)i!)SA(Y<wSM;x|qU|~$
zk?4Rq9_=ufBd%K%BpERd)cvX5HWz*PpWg})SnyYbh at dFA3GxE!H0S+!mri<@f3(M=
zIP6Q;!k+KbaJpo5G`*`nj;{DDiY|>uoR0WjeoKWAy2t_VA|yr9r5Q1FnQo at N5*9Eu
z at VcKC(xWx7K0yiVle$mf-GCAMPQ^O|Gx6Snss#I<y0^fKXoH%_HYka}cM-&cBR*xF
zyS<Cw+2>m_n(AA`{#+tmbvBW%2E?ewI~7fMm!S+pDaIS4?WCFnJ0;9@(!r}PMp*7^
zhPPq>wk`zNo at Rs(mue~yf6v}el{uW>Nw13Munm`~cTkP^>!`aAvF%VFkG}snAzX{8
zhcn?-ic_H#Db{)t?3En62T_UlApqkLZ>NAb`)){ZP{14~4WzIPcrU>Os{+mNW;EW5
zm<#ad*YR$|N+WDZ(-h#{h at S6BYnj858SKghd49F3sxT4MMTwy?p&gp%bU at RB4ya!w
zf#Nw$a50wmLq>RI&wG!ymxU$Rt4iiN7-7DH8G{KHGK`Swir*m|Gpr3Y!{&H^E%VXQ
zz03 at st}(&(6<X7KOBGv&gLNR=Lms8$ayZpr-^P#8DpCaXGbPYGzXOD+ozU`HCsd{g
z;c`6xYR2 at 6KAcvfgW7qngW;Qbj>h)+P6k-SG{9?~M&Je*VO^vFHYFP1-T69rf3XHW
zSgMjD_8o68mOu1=Ap>C>Y+j~U#guGLRc2mjt+^rr?~W{xKx1k<@Rx|;)?5Mn7+3xI
zZoi+OPZR7Fqmvv}ezTpGzn|x-I`b+=b$3~iTChA^)v`RQo4-6(mb)UM>ytIJyF%6`
zOD%I~u$YFbcf_l7%Gu!RuM6WFmHhc_z+a5>IHd)0XV(^=nNj8bOXVfAyT+vW$|o%i
zRye#CCMT9gbWK|v(ed<xaPf$(`M-qWY-rUu#6P!sUhA>yMXi_bENuE)UUHqwFWLRO
zJugUVe6n((Xzb-g{zLbve>cqk#WQj}aR0^-_1`Ay*GJ+dB}-ZxPD$AW8J&`Owz3J7
z+-4&iW05qgeAm{JHgB=WE4YtRY5ZO5Cz~InEfV!C(iT92`NjzVt$(M{v~)DYT|^d+
zcb<?j5Lo5b`{}&i67?+Ue$t2xDbjYJrQgRP3rC5UsRUI0tq*Wn?o46YD)GV<P|s1`
zq~sM7*itetY>N#g1=DEv<%IiEHfEdUxok|HMQX=rE&W3^gwhB41Bt?t?koQZl_DPK

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/fonts/fontawesome-webfont.eot b/ui/new-ui-samples/fonts/fontawesome-webfont.eot
new file mode 100644
index 0000000000000000000000000000000000000000..33b2bb80055cc480e797de704925acaba4ba7d7d
GIT binary patch
literal 60767
zcmZ^KRZt~7(B;J)F79w~9o+Te?(XjH&fxCu?l25GxVsF4ySuv$FtFcl?ZaQSwVg^%
z=TxUFPpR~&#OMkD at VNv4ApdL7fd6R_fFuaOf1JGX|78ES{~!H-3{trm=l{C at 18@M6
z04IPWz#Sk0 at B&x>-2R(6{D%MlDnRu=v;uel>;WbK*Z&wwfaZUU>whse|7Q&dzyV+a
zu>aRt03ZO{e<Le^^S?Oi|4&ZP|C12_5LJ`<e|8K7QJ at aEbOBs?00!u>exJqtnMc<t
z6-QJ!k|Y6mXBU+THRNvRZ{q?1qlt7npNM#e>t)u at 3*s3?X{FA#mos?(EHiB~!|8 at P
zHSlRJs7(;#_>C{=bF-qE5ypoWCp8a4ibb~`lhZnsG|vfL7aUvoGS2-d*~C|XaoBvh
z)O~O54lz6Cpp#=U3+W8~m1Jh8i50Z0*3oy3VuiZ5`2+1iW8vld^?2b-5vInw2r)>+
zBk&gt4J at ryU{&4p#$YBDZMdxcBDJsA;7G>@f)+)zgBLlWL5hewQPFC~yxlnbk9*X(
zX6Nyk%u$KnC?+U9G(y2iD+SyylAV&6#ewy1sMOvYn8_<ECmd9*Xw@>8i!Kynzg}H0
z4auYFzNM=OCc=Iv&<dnDmNT6Q59-raSv+NRwZadIBcalCVYJ7uxTLRXkol;h6B`0h
zJ|qOYEI%e#V9tI1Jb67rH2Xn4Z`%ZKWaL9&4iU!qCrRTl$pECqsG8DFRm3EQnT#HS
zb2gR)t15k~rGoi!!^F+5Q0q at N&8)ev?1jtTAvj;|RCsD6hQxx%@(;@_YKnEuU|OCq
zxDZSeRs5A%(oSzUU42zVi(z8QMoq8!yoJKG_hz}Ro`vPEWh=Ko+y7?p!}I77lZJty
zh)Hvqx!BBK%|EzeTRKyrZs_X6!d-2X_V{!U$XO?8T2he&UOJ&FX<$^CGnU&1c#hNP
zAVh2aa5lEMTiG3nC@|4&za{zy1_jN1kpEjxLuXsTh6!P?t{85lC85SJ!+Ce}LL?%l
z1vF;vS`Ug_mD`0?C3_u}`#Mk&ShmePUokUtc2i*%*QN)|=jUD95k)6dCw3==@7{qB
z$7;Y>ODQ{g6!7A7$%nE6ugJnWBI<~x at AL14_)b-BR2^5j5xS%Z>r!+poCp`hi4>|d
z9sS!BL~)07L%H$A45}!FIeVD8mA>Iv+YDVss|8qla at 15boMWkFNfWfDcu~V;BRW}Q
zHbxiK4 at ii6{-TFM8V8~H(`(W90xoPe(J*~^m at 1@uv-sR;GZ;fq0&I9AMxQ?Vj%|y)
znW!EhuS6QM8RtXJPl!X8!v_!0WPYQz2Kb3pN!J}xCaK2iqm;({?@bivA!C at 15rM+7
z&G)j>oszdf at qGAJ>EM)Noqiu=aHZvQ`s%T<l8epbe2(c55(MWCo- at W~@=EWd1Z#Z_
z0M{EOGry+<{-mIx2)I-9OH#PzYd!1LQth+1)G<}af!tC8{UFFA8P-wo+GnQRSYCu$
z?2*kNQj6LNhs{||Tvet&Ig(wzE^g1+8~&EEQ<-57d%$^085^l*bgrnsgfa(>AQzCI
z^t-&7(S%JstVz3stdszdF*a}FnFVMn+jW8TWR%lwK!uh-pLG at 1-6E)abeJaJKBS-)
zo)b#7F_1DGpAWCn8AB+pkf45{br3o&6pprbhCJ7vMUq;vFqGXt!r|5P&xe}~Ab8v`
z{flS%lJlHITsGT`+OO>I@)EiKE2yK$&O{)(z?Sm+<7CQ~JEy!94B#r=rfZL)7-<#T
zdZ<OK&Q3L{TpfoEuyLtmiEYuk)O(AvZmJ&`Oi*PhV%?fAUj!*{venf%-!qX-R+{;#
z9B9#<1Y`l)gLaTgbz^ZO;;$$nqWf9Emn@}_ at Gx&uQV3cVqc{MI;7=_HxPzcraI)cE
zZTt){>RO4^2)@5yT?)5!`*JS2U~bZ0<`U{OtdT!}rzCDXUY|PH<6d~oBIdw at k*ys*
zCd-VfTJkXJm!Zl#%AcV}BvG^-S>jkKVz1S*!!X9UyyjtV*o|Te8+`#P&68*9&;eh>
zV61v>QV;fMXYCAaE~+B4q7E=E3TUEs;p78<htc#TCulS+L*qNHGqeJ<$$Xq`O6#0c
zjgf3GYpZV*1bDyoD9Emw0T##nnrcw at J{zU62TA&=VS55LkDMr-fk#agb(xn$FH1{C
zr=o^a5o$Bg{O*P}-mugx>YVYUDE(*1*Q|etMpC*bEv$<arHzaHZh0}cdb}6_`lC~j
z6hj#6%qbDblS-_qLIE#D<|ukAXW#s1v0su6c$Gf<dEwc%Y+U(f=KiC7S_wqstoZCB
z=CNcCA<2doC=^qHXHLPk?nXxf8J*w1dIGTpVmWWd{%5Hu8SP!r=hL7L?)+&}k;kMl
zAdq<@N@>T^WtPR)u&3=mnqXpc1Z>uUM%F_cf?AUM%{Un{jTEyS{Tuyf>|lssBMH8r
z(lKw^ft~6)I_&ZCDnm8bs{JBH+MlTj1WC!4P(GR0_%ISZ)JIF_`Q;hPK37yom=XN4
zaH=;q{au8;lPsuw1q8EJ)iOd`zX(pJ_IHkw72{x^g<`7Ob}ZUfcsjYQG at R$rq)kZv
zpqwOr<?(PPXJktVcQ9>u at H+~VJ)V<XD$FBuBiV2;=RZn>2?V_+5^~E2XfJqi$dPYc
z!u6};1!o7$;YRm~I8N9)8EVGJ8seK2T&Zo0`gwfpFh_7HQ1*(<%h7W%^Jc2Vr$&`v
zLcMdy#71nJVjuBXLQV1?z45kUb3p*RDk$a*;$ZZ`U%oYltOpF3a(<!Qa;)Q(!Ax{Q
zj%jLqVFO=o!woRm=R+X0;^XS54s5ND8pb%?xq|wA0UWgZ at CYQfk}kR$dK=+Hiys-(
z*4OP}?E%pry+-T~V9XB~Z>Xp<^+`YwE#TC#TLVlES?7)-kVN6kxX~Q{^V~e;AGN-I
zsVK!c&bzlPgMWREEQrJ5g$^2RkIh+uUk2dW%W%`X#tn-GewEs`E=hzpO~m;weWc#F
zfKaIO!K7Gix2T6*jgEq;FbY+P3W);*e;{1~&F}@Vmm?0w!zHwl)l=Gd)KHj)o}^y|
zn&V3(`0<MiJX`fZ`euX>{7>$K>N#7qT;YtclZ86!!>NoNqXV?Wgu6)kVg+j1SzNq6
zs39?@@wJ)mkzROo7H?tuo8}==6J5%5$-l|@Ct at 9Nf8lWZcBl!@61%|TNN_REs&R;0
z1t+Vo4j#}gVJ?RUdgt9xij}OY2cXs&#wqfIv7^gXp;`wwEh#OLSE>wg>R5lDY$?R%
zx~X*^1LM%D*JirmpBuDvaUVxo8T8=!UR&e|WHJNB3i}}RiddkV_^q6*Wj!zy2}L#!
z`@WtPC?>_fy{9v0Ef)W~Vcay?_404FPO;Z$jl*0&tZk*~G-m;qBA01OxK#n)NGpSC
zkXJXbl9ZcUCz$<ZjbV}_Xvk7Asu)EPTuOZ>4i}$d*3ALQ<nw(We>4?sOb)7cn@`N0
z7(MEWHX%`mg~RN_j*Bcg5!!DV$V%zz2Sq*Mq7{arbD^ZBQvQ&}P*TwD{*8}lYoYMp
z9Ay%^y*sH%S6R#?j9C>K_B<J!oZeAj>B~FnTux>wAXJAP1Uz6R=ohF(Vuulg2Z3R-
z{oL}A_KKvz-O*-+bUw+c#U}?GooWRi4S9nLI_TL at V#>{T9+!Wgu-r~!-(F{obENUu
z#@~d&be*nF^H_{cS?jt~NMAu#uY)%J*J5>nnkuie6+&ztH$f7}jo5N%rscJjC_yLD
z%Pf{zbPBF1Am0^wjVE;_P7JkfMEe6Y20BKHUJ_8fAZ-}D at k5YtG8vIApZhAxulthJ
zazt($#?^JJ4Y-shRpkKsJ4=jlEobY`VCSYO&J)iVL0WZ}er!qFlU~vZhI?A-I<>ui
z0<JzzF(EFB)uf2%Jau%=n|Y>*3g@=)u7Ee${zBrcXc4U9j*>EHMb0Ll;-ay-Fk)b@
z5F=x;?*@S)xdR_=NzpBKRlgpNp>uU at tu7ny1KLL6L|AG5^BwM94L?Uy2n`G7G;~l_
z=p at JiHvp%2WAq22q*PJ&VJ<l*Ls<+8e*e(KeOC%}lV+;GyON9NnsB>@@$mAx3UIw0
zwwm8%==0ikJf||)kPI<qa(IpQGVmusG^~iV*)QW<yKIt67DC+jdg+qxY;kR-AZxxi
zSPfdGwm^H5nzA1@=i^uYQNwn1V@<r=BE2#80U&yajYXiF2PE9I*J>{7r7p~r4P?;Y
zi?Cwwuwx(FD*;-p5VKK0{wjZUh<~o0W*?rhQhG|$&9vloUm!(lH^RU0nVgUaaG%YA
z{QF5K^88O2Rw-L8hAx*-1yDQ0d3ehRULceHR8Jf_>Gwk8?SAcZk#T5}Z|H8pP;T2n
z5Cz at +$n3+liVJn;Wmj5&#%JwybF5(yEOZRi$jWVl2+a7C&msDxeoB^9DFGXS1*y=K
zxK#dRa>b-%sl5t?mtjL6qL}wxHMWn9YcCA^4rfA1S4O*jP+%l3+yf|K)`~B&mdyzj
zAM>5dsp;Aq?-FH%{y`UaWY<OD`!%l<D)Mk`L at G<utvgIdEu+uFUe&91kr)}!USDQO
zVqotc#~nCmnW^i1GUqHr496nRMZ;G#AesUi3kej(*D-#1y;&Lyi!>j3de&E{guy&U
zSq(Qgn7z11aCUJ~*Nin6D*O$ZLnx#wwdKN^>p%=c9iBjbNgY!)UCd1z7vhM5;VNjN
zI_b!HJFB#nszk0ebH)~HiJz~v5FV{GY4>@qybr6tzaeTFM^Q64fhn0Kz1B)NkYpMy
zYQn2Dv at l?a2F-7UStSNdO<}OEp`jdaPJq at tljHo-YTb>79%Y4ddpW2-0Rs(KU>CO4
ziNk|G9esRy+&^K!<>a4=Ung1~FFR1{-axStIjGGrK(UWlEW^x`pXcJ9^vYz<vxNxp
zj<^$1%SvBKExA8i8abmT>Q|>ihW at Kis253o+|;8(8#b9DX8JZcx`lL8+=vF(Q)T0F
zp{F^5L`84~pHJ})N47<MKZXN0oIf<yf`pT9z)6Iq4ws}3$xIZI&k-o%zCxAhz%vb`
z;~N{SsdxR<O@>Z~Jk;aF=1()Pd$^YTb~EdhOB7_46wXveC;4(#$g-4GmjE3f^jCfY
z>R0)#1}pL2ZaA;cO%mr_s;`6MyWb#4*X3e~ubnHeo8rkyhbWzvgbe#&nYY7R9Y+ne
zfk-t+qDXRnQ5IhHoAqAE8i at c;hy(Jf_BJr9;`?MM9^IbvBOMq$N2$TWMAfj!&Pqe-
zi6yA#2)e*Mh4iNg#Mr&&DpzrGk_8d`A->sV2ZQ_30U7(7foAz#ND|L~r9v)BeiZaa
zfbmbor-~yOg&uxskH-sxWZWA1M}oInpSVVD+9FMm#ZG|dsDMJ!WvB$<L+3T*vF~FY
zLG$s9xEBUK>#BB^?9UWc>n|@l)J}16{3SLj0K<MfCrZX(Lhgw7(^IE*>_pu-g}pSQ
zv at mNGLqy413Co_SI=psLkVgP)8(ri4`RnzZOR%M-`Ao7xf);&55$B+YBeLOq@=-l3
z4=OtsgmuauO|KCwOZZV!jC)sHx^k|dcVrZj*;%h%lQLBTM5 at Ij2i)d2F;bnn=2(p1
zAy+i>=!1<TAwZW<@dzEc85GCUbG(#pQ76>pJ4J~g>m6EfLmKc17;47GyqZ99>M;{J
zRsK2ilwk+YVHF#S8lY^%#7+^8VY2I3_uBOECog37U7kjQh>HQy?ABBywy4+#C#~kD
z4zkNSHA5Wq8}Hunr!^|>oiX9a at BlwL<`wh;m2fw?xyTktD&o%!)#GGj(oM1p11Ntg
zj?T;B9<5!m>OkZc?l$mk?xdM at C3@HZ-M<JC!Fm3ote5&t67gMEj)?*LebaXrv@)~c
zRBDPg{J8huc*afLDU3)z(l)Q5r~kfnR3u`wD1(mb3qn~;@?bsBGGeDKh=Q*!Wx>e3
znfzI3Om6^+j={VwJuGO2TeZCCe%wqKCF-T(K79Lfi_8Mi?k=SE!mAi2N4-<;Se%PR
zl2g`8<RMeeBR6!%Z~vWfe^Mm*O#TpA2*7Uh&&Fdy&cm_iOIUORCaR9SQhQqRSs~?#
zRB7|LQwAI8s-~ukSygniN0ZUo<ngY6-&NiKS%7C6T6;@2<rn#a^zGSc+*ZB4MIH}k
zU5ZrXir9+KtV$S4JIRqe7n1KOIDsYZ*whR8>0j97gXi!k1M<#6hP2XOw>MgYL3^X<
z4e?wH8rjgRA{n#Qm8-3ZdrQ(N^q^;57^~VLI1{Nu19}I9bSFe+$WTMpoiv;BO1w+z
zsLSX|XjNp7em;#&frJ_`B8ZtjB%Jn_Y$V_Kih$Rnp@)PH`u#VEq~DaXs0|vdwHryu
zJyQ|qP5eP|GO6^i1Ayqpd;7A>@LbLB^6xorxyxI1l}^9$*K;JOaoaaJR!Jf)LI**y
zw^)48gHJEY_K;J*2cDLH5zEOfZ0VV+hs;j|<IXdA081&#0ly at k*2(3WLEleNarQ}K
zQ7~{vTg^`2#78Qr4|aZkq#22Z at Bf5ELQ=OLG_y}0kWWmyxO=O(QRjR7YNzS-`xgE$
z>){@=1CszKzT-IHgY$RS;2W2A2Vj^YtSX5n*x at 0El@ZRO)NK>(02e{V$r6NH-bF4w
z`F;=?7`!X%0oEq^N%qq38Rhg>A`yI!*+?WI#j_AT9()GWwfkcnQPQ*{pM7<D7BB1m
zf(Vk~Q5#hFHOZqfgzg2xyK83L12w`Rv{ZQP^)WW00?8#x3*a<OOo1VA<b?vP(za$E
zdVQpS9^nui8|Y2b;P@=F$E8eZKteonLlw3>Q<JyAag{AGDAUlQQe?@_N-0dCRpS_|
zrPV7=ds7WX7+?ra1k5si4bSrZUtoGq1N?i_xJJ<v%#z?Z=2LJIbEISaY$<kCnMB5|
z&S2b-`=?T=@a$`@@ccVY`s((iP87PIq7~0Ods;(yTtpkyEEc|47Q7kUf_cF>20(RI
z$pl%24%+3A2^xb%`8w<BE)Ss%-_pX1jOC>#0k={7&;B0F{#jV at _8y(mB5_Dz{Dk;z
zes^!qB<Q%^i>wHy0tvMtHqaKcd`29#570MgvEB<e$jvd=1`*@`Mecnb#BY{CeDU$K
zcWC at I<$Sr(qn!#Xf3%;c#pML=Yyr8tOaXqkfO19xOZ~zQYOYn?<fOgmdAjPGYTUYs
zo+%m1k8t;4ZB`iGUyEGI#dQWIg)#l*agOegV6KkQ&F(yF-|-lVaF_IEM at ZEmGR3}`
zgOX~3aN&>!#mSrwTB`VpdOXzt4}_;zvRL;KvK-Fd%i&Wc<?3)d<o0+c<x)D01FgNQ
z`n=j}yRLGN`u?*Z<smu_WfpxMbTAM6_2pQqBl(Y7vCB*oJ)if7XFwL$R-qT+X~Pe`
z;1HaiOCY&5nQ?*Q0V7xU!4Ds)6^V6k>fRw=lD`Iaa=LV}4A$k!dYa3$iWM*Fk7dV`
zyvX*GU>Z)&2yF9JP^F8ZbQGro!n)bF&_!Cr%HDI>3YI=&3 at 3^cq9O2u$R$c?@(HE9
zEaVzTG#pLPV5YOn&$37IAT$$aqauD at aunA7zcKoFFk_HdXf#b+JTpc(Y+LjnfX&&2
z9A-GdIM;hr7uvMxNO_j%@qQ{X8KPy=L at M-+4*lW!Vk;?yo92Du>XN&MbEp!$HZKEc
z%+9H$Cj77rU4B2xzxgKKPTm?d{Sa=oA0ok?TL}yG$}=H-83ba9K|;3!_4{4*bJspg
z!OBT)nrNt|&1M><PTKXsx^|w4j2Pm at j1>a7v)c|M@~dU+u7Xs)+L>I`{S~=^NO$N}
zV7T9rGi;Xfw49A^2u}W(ZN{SfUy7^FUI4ss_HL8J>3CX*@{R1aZU?Xc+TKk!I?7FH
zgFVaa%FuHysBI5ynCk5vz=R7wrHB>(4b_s_M`4!AT1A*DOORnSV<D|ri}^$w at pn`&
zib}8Bw<sh?n4v`h3FoYk1aVd<C4ryB<e(T<9XMoCQq-nhLaq&D-P>XouK?i0hLw6~
zmGkPJu%(HjDEc=nfYoZk3!=DZM?@;AyR*3^lD`^+wnY4m9vt;^9U!6;2Yvv%f+K|#
zmz*lNiv<D_!A_bgzEz3m0xsjtm2QBI_9EgoYg|p!GK#Fl5c?6}n-w_x)?O)mgrNAl
zOdSnbEz}3_u$A at a7e=@x#%=hzX`?F+ at u+5H<I=P!kC2svm{x5zi}w=MuZbATf=IYo
zPvj2(D6uZF8k12;sP^t^mGpg@`@od-Oc6~t+>A at wWEP0<m-s`hlUW{d%oUx<2 at YVz
z(qeOFx{R>TbQv!EN6KsmIvCM98IkrMNZ=?#`6yORnv3ngp*4t5=Y<M(<!xYh?e0(G
zRa;oxlrU9>41&!99|fug<S1~`B+&oJg*s;X`Jc`6w2Pi7lbv-DPGjG1X%(7ey%_Ud
zmv}6gCdo!+l_n$?-NtVTezGBdDWqdI2dNz at KiI)~1tM&=)wt3<k*rQ^o^K+M-xtDV
z>1T7`ZKvP*!&#fXs)Vas{<(g0H{IMl|H09$oB;(2>p;xiR7t!e3dDsQG;vabjjz_H
zaU+9-q;)K7!4)Q#(DWmaG4uvo-J5~)U5ft-EXx$c&z8S6Sj6z+X+LZrwN#-l)|~JI
zgB1Q`#aG0sNmz_a5?B7=4mh~qkqtW(pj~d?h{LLk4uL6~`G-!=PShanfq{pLoaR11
zv;0ek*e{npgo7D at IsX?)F>>p+cZ91bQ)p)#TRR*Tp4iH~x4*rEf0CVFMK41;CdJ;1
z37yeoPjB@;MVKmH=r3S^Hiq{6{-vDhX_4sm at CJCsc6$}d5s{@?I*t$uX at g)MYsZ+Y
zgjAecF8{SmU<LM-65chwy3gk4K2lzX1opAMhas87S5R20l!D3c(as$xyoh!pF%Hl3
zTTJ%3zr<0qxCSI4UUTJ_-QPX6clzMbk50*g#il2&cqo^+*E#awUGj!tGVjQcEOn1$
zsrE%Vja-2Vcz3U0Bj$Pj!Dif`c0R0cjkjn?YFFZ_8`w=^X47^p9$+PdzOaG{STqvC
zc%aDRXl-t6LE at kC0wCmwYJ$2TYO^?0St5k{WgDLWJJk2|C`{Nn{;8x;sr8o6q>@!5
zFeoAHPys`G7XU2`jpIWHfuS;(`1Qy#^84-~zb@?CAS+t1bk?yq%>w at P_)n0Vo_Yxe
z!9(K_%MfMd9ton at Ve*>tOXUJXliCv5I4n2HNd*+=kK5U0PQSkR9~QV&V{j3^$)U`7
z6yAkHRJ*)E$1LdM(6x9BL9OU4?8 at YPw!5$#rZqOQ=|ZG{0(BSx8?+5BaTS;_mMM33
zh)ERJE`wnJoS_Km at +$4{d5Kx<S3$bH=_=n$c5&2VI1`OQ*r$fK&%|21>TN2P(;sLk
zxJ8kMARy(szN%V1o(OD2F{9XxI($%28lY|bU3u=g^=iz~i at z%DsDwZJ88L?`T2P~t
zgd17|=Kf-6zm>r3pX0At5ak_jrtTzN2Et at 5D(0_e6*YrQM+DkYVkvPTD^?GDv#Ioo
zhRKh;<5ubIgt9<Qh#2@@RM^7?sxQd%mES=?jQtT6va1n<hcNv?9NC^$&GY<TZ5<>)
ztu`jz-fr|;v)DNg at sgV{HU5n?Yla*RW!X1Of|5Xz7`W?8et*6m%tX>Tvw-`&HFn?y
zR`gjkud1|-E-A0{JH2$X0p27jW!YICBSn#^5!>WzjKm&aXLM$`tQ;4S2F>R*TtX4i
zFi}<Ns`)bp)3QJw>a&B*Z$filKvl^n9W}Z(YQJR6ER~O)Lo!P*qu9SFFnH6QUxSar
zSZDHJxZzY2LqmNyIZRbwk-<xir}n6a7=K9 at G{Y|szjs~gijo*De1|c_+~0o`cL<+C
zWPtv6BP`ZNXSNg}MWRUTS24UUtg(tKO~^GR!EtC8RJ17*m9I|))ljpTRJ5rxquvFj
z4P<fgqFT;LY<v0cHlw7&W$ZMSVK at yBFK};h7z4OZ$=<xJ!K&;W^uyzk#8*Pfz0jS6
zS0c_&4v&X}XMr&+;Ga4)ZL!IfhH)G!c2vKt`ap6Jc$vZmja+);k85PMxpAfArI`r3
z8Nxpu4q+8UHrDicOcfu0$0TLqiB<YqD&!TCMpoDr3O^wYh&)lD>gk33Z0Z|DR*RUw
zs>F^a3YfX9uIg1&ByNndF_o}b<%B(wvZ#zV@;<?-M;8<G^Nk1p>5nVLPZJl_=y&@Y
z<V!U<Fl9tEkGznE;o^MC?L4BS4E=lKa31{ZLA2U{9Jc!qNLMU>VG(Tnf_CR{dPu#z
zKq6R->NlFYly^nYo6?~AZ at P?>TS~vh at ZjB-8^N at 1FhpqM>gf3e?Ih{Y_-Xv`NxfIK
zJT;X4LOb7LB!u%vPyRs2L*5Fwn!60g*wEI?(uTf81GgNm(w-NyL};t<?PtH2d1QQ_
z%M|}6K at Gov^XX&UvSN0ah)zCJCw`<F!+Aq*c}CPeo=VOWk4~}A+CBkKv9eZK7AMX6
zQClC?5IPZg5ymC}zk7O)MYPr>1~K5ri(Kui%+$Hth at ex_Bzn;n`4ZnLRLZ8P9&sw7
zh*H|v$`ub~={ki?$H`ziD>6wzUX2TLS~-DWlxIS at XZzbx^AB(aAZY&APt3VE?HIKy
zVWyr5Q>yfS>z90p?)Rb0!ohxIAapjMp~s?*E83AI<PyQWBY_1k+KOaHt`w&g9&l~3
z2&qtAEK2ihCMd+~IDzZAm7P9-3ehPqsHtu0dXx-xe=^EV3B`$qKUSBquNj9Zt{6cb
z_Fhkptk>4=MG9)>y9o}B-w5-?--y?{AepYBPZ?lQnQRx1TY}p==Jc$%+pI0IlWB0I
z8MfHS<~31?uW&V1k{1+<>&lt!ByRM?8C78;tz6=Jv{#(sjohmdSwJp^<g^-_4wA){
zkW;MB^sGY(=NV2Bz3uDq?8K&vxJt8MC^~aBCjZ at KgQz4P3JJtCVQ~6n9 at 4<W8YG-J
zMnTS%@E-_czVrcU%A`~)KPnUIVok36Kca&WRF5({f-KmP@(<HxQ4uAA8Zh+;?Uj>r
zzfjD%@R4mDm2PomY}KQ#%DE2Wli at cq9_7=psCQM9<sb(QJ~2&NiM18tWe-7NOd<7!
z9Mt=!t?UetSgezFISL%&WndqA-?81Mf`MY-<Nmj#$RsvY_h1=M>P;O+>`$oulpa#%
z5|VVH<e at CJtMtnx0&qx*$kJ}`m;y0GlsCr})?q3NGwxHIr!TaauedY<Ktb=F;che$
zRN4x`#E?^h1zQJC-}M0 at NFG>w1xA%}hD`Sgy8*g%Oauc|XZU6kwf>XX49~13_?iON
zabjH!4`C5>v$_Q~Vo2H?J<k4q=BToQ=Jc74E(TuN_90 at bO{VoWy*Y8HSPNQdf5UUH
z*wzkwmXHo`Je26}A_;9ANhFMj)7#fgIINWXS4FL+Qn(PBQ-r3`cX-Ks at -1a?;(mi7
z=riN6KhA?-&wgzpT{?J!q7Nd=O5L0qYw4h+4tI5MeQaEs`jY%1C#(6vy6l~Pc!>#{
z`E%Hn4MXfh?&&lW1Kv$F;M501;>m)wb>lJ=U*aOl{!cymD=anno|Z0s`c<|$K|To&
z4HAW7VBg(LC(U;|O*Sx5IWu=(Z^><dthr2lm%e at l4o`dC5s`Kd{7?O=+f^^-hs|2W
zI?{@Jxg7Z*w9p6NVh@%RhAYN|8yZ0LT4G?v4I6HQ89ZTLE?2Yb?h<VQ4gs<IPJJJu
zz^qlhNR(eoD;Dp8lQftB<)VE?*b3|)k07L2x+Siv0jET*nXyF0zPFRFuLlst!AG at a
ztQ^7)LJa?l*yNHS1l{!$kVv<;5Qr=Be&5G4rsyBh<IVjSgeu^N1%&B94KuyopeWUS
zO{0u{P+-)2Vd29Hi;b07Fj0eMM4Xa!6y(dmCN}qVS9aeD^lX~rG;nMTWk&KqgW?~K
zlA9)55aNL$;HjsltH!LANK$WHH)V^VtAU?hBX>w{rlKrkS>mco7LZELWsMX<V1>$O
zY$WJq=t8XTAJPKJv{wjq6o1iFLr2LEbPrO|yyAe6Im7f_yQGoF3e2Gd-|lGWon)^z
zjSKL&UcOyKGR3OR28!-&9%OD}GbFiGQ3(sA5KnQ|T9YD`7&_`+(DR0I#I87JfoEL7
z{g*1t2J7%f&`&tm2_by+AUYXIBC2ynRkz;Adk!;`$!WBv8Ugd+=%2Lcrw^R72_YB)
z%cL+Y64Rc&viMqRW3iCp7e!@m9j7IzBH{5l?RZTmUef48F&)ltd#mbYKN<k0y6bo^
z>Tmm_F^;9pwQ%3X6*bXpnGRHC)gO79#r5q3jF;Qd_9=$=EwZwD`h_N6DVHKbe{!j9
z#so)@2FW63M~2gF9T7MGtIGiEQeTJ9J=8?-A$r9^oeoWbJ5I+tdcWHHt6MH#N<xzn
zN<)!3hqSVT6!7uGF8Q*5b)!)Th8 at krFiZH7F))pD)3}D%dTD)8AH-Bo(W5dyAJNT)
z5)ZQu;z;<4FXB=!C6#E*V*xuc{|4|kNa*rYf=)0pd37GG at Konxuw;Rvd)%o$f$W;#
z?26xz1=$_r2`W1L8oW-b$J6kKx0vg-RTn*iZ?NaoW;5`=1f-MjY-zs-$dp6*v_m^%
zW0R8(m`|O at IImezuNTxDh&vP=lI_FCMOBEPQZW-*u$>S|({T8}j-+lYdqMAt$UAoZ
za(o&{08ULef;i>HXhcBN>|%)iHLc=Vk54(%-^Q3ZtrTl|#dOZU7Q)Q8*&84MR%ao9
zW<2!MO8l7eXvFV(cGeNfE`*{2_}P`YLu??Z_SGDCcT|>{tO%=79ES=iw1ab9_8rJS
z`N=4qATW%j7qNb8KW1A-r5F=n&kAElM$SRO{HQ1o9y}~fh8`sgr_QQ|a_qNorO+a{
zMtdXRpjlH(8`2ajg%B4_pXWmI68VtJ^vK}SE%+^Tk+q7mVA0C4tIN<S)xvJ94Wsot
zhy;ljfG8`*hBiURC=kg92hS)bn#AZ2^<$DF#iD at 2Hd{*HV+aK5K$i58w<jr>$)36)
zPvED16qa||G8Lqf6``cKG)9fBppZf@;*fOR9 at w51BwwrxFIMBwTv=F$)~L`*T+9J#
zMiq;9SxLr7<4iy}QGq8F4n3Z3q}Q>^S;SFjLY2>V!u!jO|FLx(9+-usB>D1%i~F?=
zYgXUx at xT|oFS5WF5M`+(Qg;E2Bwmh&vp)fh1E=K1{(O1(7 at 5>`i*~5X$D0g<vk7kE
zdDv#RI%_ahiu_I5=O+D1qo>L(h~6?H9(TlOL89`tc$AirQO04wH=rt=+-ogOLyJZg
zQYQ7i5bDLhY}WbV?7}E9^y;w|_JbrP{+3<`=@0u({pG5kUjqK9T+wlibiX6sUl&ox
z{&mOLoj;<$6&=KOVsoVVO9zr5hMyMOfX%yZ|M>X}%PydwA)TnC at +o~A<MH(9NsiMA
z3d4bTYeT&i;|wfG8&m5zHEO4AQx-u2*f!2cflo>Yau5A_m~etP#)m}(a^_h0OH*1%
z6w%Nj>^!3`gHQrDD;)nWL7U5gMH2qC&aQXqEDE0K4;^wVbqCEs8Hm3dyzzc__|s-#
zBinFNK^)%(+GW?g at tmjnS3Q4<EaF+P?FZzAnLbfHVmo3YsnF`NJ%oI}P*07 at ElXp$
z$BkyH9u}8Ke-bG=wNybP#jh4pt#*xv)7CD{t5*bT!%uQOqz|m3GBJ(Ara5w)&hK#z
zRu4y);}70b5jOib#WQu=&MSAta^1;tp=$qrXfsuzU5AV<%s$RbYLu~Rj-|^MQfe8l
z8N4kE*vgS&M?Gn%tunP|#*^{jFE_myOL9)JwvPP;)09P%oyDvA=Ayh=eMx(E8p3Lc
zKw23%R-e4Mk)^8Yb3_~7I%4g{M1~Jj5j0UXxpCAnUt(4IuP<8Zzgy&YFM_hHW{b)5
z>7<~H;$FsOl5w6}R}3wKcI;h`ZYclct#*V6kU1-&$N3xcuB<FDjkOJKh8o%f_JLO^
zm1R?J4EUZdWcja#P2b(6jqPyJ{vU^(+n!T7Bui7BKn&CNT&zTFPU(AukoucY(vX}N
zSZWaTH%nBytl;iAsm=LxemqsF;c6}420&ohv{d^p)_q}U9S70X8%ubFQ<h>7OdfaK
z1|~V)E7U`Uzrm2tWt&4<B|?ID5!rQ}Bjk)9_>_5Y2;s_nBOj;h>{2ZM+ub_pdWRt*
zn8hbai2^;d$W-XDL3);Dqv7xy)qE|3Y5wsbPG9%p+^)Nv`1=Zfu+EQ<soU4>DLsG$
zuv$_ZnKTAwJ%E(xbUq2PT|;?OSbm{G0QzIzXvM|n3tof>=6k}&6H!!W?V&{Epf1f%
zEt`AyC`$}eX*=HJDr8pb;5e%@;<C`)+GI&=-moMAKI4de>6v6;?OUSBFcFRr;4kwn
zlLLh*IIo&>DN047291hE_*030 at xCbqvPU$YwS17E+6E#g%1KuBE5ARC{?C-o at fuwl
zk80TWZi7NbxT38rAMmy*^&tYbRu%N>gFl1 at 2e$i|rZ+rv+1W`L&WD9*o!_T7hGoBC
zMG)FlD$u&_lIS;wO-g4Igso%hTE4>oT7wZmK(<~5@}~-LJ7!r#t}z|mII2RR(Vd;X
z)fcBvipXX}SC}YMp6;BS8Xc}QVu~^tKgd`OV^sDU|6^m#Y-lIxmMm{LB*$*VuZ(*I
z)~`ELpbB?0`ZupxLDDL7T08q`cETwof;wgdDh-F&&k$kCC&LsrQj=drVDMp+gwj=z
zSDE!DdiKO@;;^+YV$d{ViAf>fMPF?iBIA~#l+$7Ha at 9~ambDVj`YcHz5(D){c93Le
z)5t2&dHd+Ze}1HAbN-M6RV`GK<THQ=LB-R+QN<1S<}^|`{k4W<?npkkA=vtG@~H8m
zc|(G8zYv?;@n0~<RE&k^I#R?qukoypVR at XkrQ)9Xe2bS%DOa7<GP?0pL{hJJYdwp%
zMf-85>{ghmZoi9)%a$S;_3v8868q6Vj*?b(NWWp(*2h}_)nz~rwFXfhfcC2J8f(!i
zS9ld`237-B^*rBwu>g5L7Q)n<K41_HqtsYUiNe~+fn!38jAwb{hTKAE#VE)I^o4Cu
z%baznwO1 at gWPqFox6gorRQ4mfuruT7)|_jl$=Gyvg37z~dM8l?%y#L at 0VThu%F- at I
zzkzlN$T-sX(k at s{cBZc^3p6te_qT>5Ri%B2vn3<e7w3qSg&eh-zs1jM!pBHF4(3{&
zz_7lJ((w8j^(+$zQ#n|4P}ZMN1tnj_z^EkeKNz`q|I;fTfs;InH at _CHj=kKVbJ|F<
z!1OPpl5dy5<J?tOQ8xn;ssJRBX&NOZ^Sck{l;)6h6Nlh}xQPP-L at 7&qHXFB&1iSgm
zJ?-ApYf}K$@?F>9s37ENHhyWPi0;4=M-Y?&FaxFU&qqMYl?QgLZwxb8=8<n#;QIw4
zW66~I5EC;u5ig53>41cpFFMHPD}P7|u>ol;lT{*1oB=_aPLV$O1^QQMH`=sto-#>H
znIiq337b$E21i#^TI+WM2~6{IX%;jHB!L=9UzG-B6noeCy6qTdUUJ~vn>cP-Cs#$b
ztY<;~f+JT+O61G9?rC9z>5hpc+j7PM9YPWU1h_kf+ibZd)H%B-e<d@)528doun+cU
zjQ*|>EdDsic+6k-p8S4XZu6JM8u&XzB?pp$D=U9fDh32Acs4OBJemgEdC<CND at fdp
zm}FT-B1f~=3R>v$-B`G4_4|{qPciL)gjkl<ig9Rll3)?Xm7{-ldt8d2o0A}v`rxtv
z$o-~Ohs#l<l|;E;3Si=O%!?nCHvylKhMIY4(*m*?u8>0PRwU!xZr~SkVEtuNkZ`Rw
zBNya1A8v7*Lyl=O>5nFiAv*O}>o5Je1j5f~3KH2=<`gms{}8e)k at YS}%m<wBB1hMr
zNAcXD#NA|0TQ4Rka8sybzh#vQDyb+2#_K}yY~nE>q8>Hz7nSUMqX;gN=PjuN>p8x!
zUCL}1qzyH(bRxnMu3j0JYYya*aqPqS(9xQRc~}~8<Ua)8B at GxS^<jj%+kMwowd>;+
zkeoL at n<<S-v8M_~D4?Bo__Y at 6Wz^4avWu`CBRoN2#c$+};d&p-F8N&DVo+4IbVBwU
z9AdUGbe7CtJMrW;VM&FyU0ZLdEvmFiI&8S}W7Nh_;Fh)$FTgSlpVo&)HYB5L*@Y|q
z_fZ?;PyCKige4Vbay>nr_b?b|?oVP4VzfrW%(Pw&p;lDC2D!DiCEVgrSJyPSTAGAU
zDXYfGna+*(Xh6+Od0^QUXB=##et#IL9kUdMRk_+(C&qp=_RdnnPzv)d)v9O+TM6|6
z!TFgq!TOS-^Sm>(<stN()qcwm0hZF_wZ|=lHjN;;piTU$v)?JZVbpBrWi6Blm3dPq
zcz^{b8-pTE1H?ZX250UNm4BZe;Oriu&ue?wlb~@T#~Fm1mSNjF(LQU+&HRO+tUN<_
zt=|(|o6BL!OGU#tOko<>qnb7=lX%HSWpRtq48LZ`q_RDhbr>ZEARz^A`H9icBVT}r
znCFPX at Uop4#F10wSmqo~Vgl;?H#zwT1mFPvZdJA}Bp9_ at P#hVSS?p!@)eKQ^h9}xD
zdW>+^$Rk(C_uPBoPd9Ou((4h+Kivt3<Z=)#YkaGZ3oF%81K3QhHFYiX-C^8ZDvKWc
zQJ4lf=1X$(Srv#JtW(r5>u_htDt*@HC?zF<=1pd(0cTe89Bb0X`_n}6Sa&ZNFX=g(
zhgqV)EY;Bv96Ht|@tKwDVA?9oQY<C(9Ux`~w+Z<|S5`Is>)+v-QAI1$QK~QG*(&wM
zt(_~};}?^W+NH9B at kbok6k;n|_^Tg|f?}_%NHX-CxWznsf|S^b&b(T+KqDw!<fNz)
zPM%F>nc)lcukdBj`JYO42gj*iZDndPlFSuP){bKOoU_Pb)@|wt4TK+cF_pCtNw~Qz
zkh}`RjbaB1(AZJ5!GHi}J#v(f(Yv0*RUry22HL<Kgu`Lt^g6FPr2&k8fb`R(pSrEK
z0vh)j?p<X0K|b9yjuMJ8&0H7>E~|)%Fr_FeFrHY|ROC6cLyfn5pj}^YL>M^qFZ}R_
zRVIi at zS>6>l=cdBB^9vwbg*R$0lvm^b1_nyH(8-~>%XjjA=5Z9C;ekO4R6?SR0KJ!
z3NaA&tVB2T`9Fdnxj!tR#+6PnL=oV{dEVSK|BU_$KUIr&4rW1|uY#-?)ufy>^irON
z>2r$e6D(B(VDfG6-S|9-(XZWdqDiY*rbI at u2Sni?t6fJ18`vV#kgd%mbqeo~?%hA9
z<s at 2n{u$_*(Hr-oJV<Kj)kGmZv|NRiMPNea8Unua1v%QqSf+YYtW}XDg7K!I{Y;~|
zGvT>(>G17XE- at +nlMt$0un=AK^!q}arRoTtS348m^tn+|A|s8xRHCPcMKH<|lz2P}
z7F|zk&@8BFr8Z59Le;%_8Na8435uPT14{7 at rA+5p^5mM6b)&00 at 2mEUcU3SGG}EQf
zCKX&PZoBZ0`0quHG;$KdIN`GXRq~%ciM at jeq^XJ{1wmXia+y%zm8b=9t2jajoa4ay
zWa9q(-{xliizqF!Yb<2>xH{v;`j>G7Q6F5yJgS*2g&Mvr{13>#-l3PE#C~6xAI&~&
z6YCC2o$Pe=lz%20+dSlDnc~EG(K4Hd;ybsbgXXPP%AolnN~F9YE9;Vant?@Ptq)>=
z;W(wNQ(ewICncSr(iq8dTntI=(Y*uXRXz>oIMt-kWwBosf3}q)RvW<<WJxT5IcIw$
z8-!%?-u}k1p48K5^hgL{$<R!z=wd#y*6z`s4>=C;+i$)@{Ro?nQzCHI23d4z5q)8Y
zBP$RWGo?EJ)+E4p=Mk`KA_bH%6ngdV74+%mp_b#5Bf272^L!lgtY;+{Xe|iDETmqn
zkE!Q2lZ>#Zth*8xlnm8x*oLy!AihFbIM`!E{r_~mtJ9v0!d^i4c1hK~GI=B&*0ExV
zUL3!C#2L;Wr$!XbpzgsB^|@9!O=ktcMfGPZ#Q$Df3~=b7-7hAusZ6O#(Jjz~B|9Nv
zEUE-i9#)Y at LJJCFzB(#0(ZUn5qdDn{vAO09;jw=x(_o+B(09`Dboe9)cexfFh$V3p
z8g~>uvq7Z2X<#VKaIM=ix at Ajopn!UPw|`{ca?GZ#%ZT?IfBCp;NB3RcTBh-TDG?70
zLLh{XHAM4u4I=brHBlRdw_-SP;$6bt&*Wx?4^b`aSXa7cjVjTOXNl%UWj~yujVCHb
zItLiea)r7rh=$3-q^Hi7!DWyCfwyiUhr3R38C$2!W#3Ik+gU4T4(WzKq!Z6OL<EDT
z>@|QTvT0EC`cr{UEp`)d{^V%Uum at p;z1wJ0Q8ZcSsnO($az$v&RtW+s6rroUNq%QY
zq$HQbaGi`e{~DI7_24!ihGu<O`ZG*SLl!n1((O8Mp?{$}Ds!(j18cSAtvf_%P8xBB
z1{PRi{{<3 at HdKR>I?<Zuf48Ct!lN}1Ob14CGS7|KnZo-{)3mphVx4eBD#KrES;aj+
z856}Wm52EON<=}k51|PDvoL!%e0_3%0Q2fal+&%(o}y#V7EgNj*4kaKJZ#=^-?g!m
z1&ZPb`i=8NJJtN-Ao02x4syGn$Gd+FscOVSiv2PDzO(ulb1=w-y-NV{3P&2AHU6g<
z>uV4}?+3cn5!nb=zYG1MqaXei6<dxuRK6a>dp5h@^wBR$w$&4kwy>isev|UHX`v!)
zNJAct at bNO{eM#1BXN-ti?S`)NY~P65*W<Vz3Ak(tIHSR7`+X=#I~=2k`w93Lqo&x6
zH at xR$o3-NxQnJu6in)@u#8OYp6Na91?zQ#X=tn#v<&azbu-go%z8^dKpIU at qwzU#7
z<;xj`M3MNVf^X!QF}a^`u~jv74*4J_PB+y`&f%88=X(*t89{-(ug4reIva5b8ao(e
z6L0eMv at xioQTKJKCz<(ycIFs4@#=d#7)dhHuJlGG?rjudmky4Nu~8kt$t20pbHT3z
zxp)hm!FoS?><?LEe`310&H3wVwfF&X+P_Iw&x=5c at 5}=T1{^gqtzinDe%{D<*4Z5{
zklc6+s at -P}ex0M-VG{bUbU#>~0u1vYe%?_g?*<9PJi at TUY}z<Yy at 0aQV1!<}e~Ib>
zzi~=8FJ69<ZLMEDg4^W7I6~d5xolwL`QynprO{Mj5`s~KF~bHirEvz6<C4pe0!A&k
zujvpbK$zL^Ldamc1wQ0yz3D+z-;?~4<w6y2j2&|=t6a%ebSSMch>#g-DTD-%i;C%0
zH=5tuK99qOk24HWds6Gvqo>)3IN at haZUuuOb9Pg8@7P}PZ1%K1w`noWS-cRuT2B7y
z5Cy88t4c=RO*XQO^g7FI<|485GiYplp*Lv}^}j_^q!0Ax<^+DkeW{Ys at KjBVdGd-p
z<mdB5`6}+-1Doyg5eo>!$LT<e0 at dByq2A{jMQ}#ha4|S}ZJ!3W4K3{dec22$s7aq3
z&q0rZn9!3v=^q{JoONL at ien6M&iIEzV;ni4VCX{4nEqse at S5FIO5vZ5DQaFW5<fvq
z{-fd@`kUA>_W_9^6jHq^Hk8uqZ`sQ!XZZkCw<(d}13p<1Xf}?Hca?Rh0arV_Sp?pM
zi*Dc8EO-#w$6K*<JAydVGl`UGN{kGISXs&}(36~;dyg?%t*_mMy4bgw)bDSoP9dbK
zkwG&PWl+qb2b2Q+?FR-6GVO|$*-%zMD<Vbw7^N1;C<ry3#K#R2JtC5x*wKipJc^}%
z#cp;qk)HYbhC{>;sn^>S29+^o9jO7$?WrH*&T7@{4apa@(q7a}P8p|)hxDrD4<IJ{
zH7r5|pOu(1)g`##ucCwZV;z+>k?l(*Md;f=1~}0#+(U4K&a=DgT<r$FDO)3SE9zra
zk*{T at 5Q>L)O5vfe$p>8;mbC05No3yq_F1a+QSEk2p(xc%TMtAZUcIV(<WOZ&$b(P~
z?*QmQXxf3!VopdaOVj$TIw{v=A~TSzs8LYXRc|g}HD-EAh0^*{ltC>ut<&Vhkq3%J
z5=rUt74|atvrzz9;#3A0DIt4;mm&DWq6t!=PUDbc;YS}E(s5p{PPE9n(BG9i`O^jF
z6>l}=H+1<U4b^oj2TQ$!{^xyy(hB)%Rd`uO3026N8e8KoVnF3MhaSTw|A5wgNZShG
zjr!JP;MwmPa at hxe%3td(YpsZVcCsT?jG#@tM{P{juZnGrpA*AlM&Bwsyg0T6G2E)v
z7yLT1bzsP%Lh#fxV%nj>?{!+<f}Ar6uAyfus;PG9ReBo6Sp at kf24Ex)^_(ljqM)xD
z*>&G;VTo at uWi?dG=fj?dWf-O<NnAXckFE}rri39W&~G$>CE}F8BPj>|&t#e-1oa=3
z7~9^4RI7Z07kYE^r4GV+WT!;R#*V|FLq)Ffa;+<{N>PsDKQ(RdYc#32v8xAg^eTq{
zH<O9j(;Kdaw{_AD)?icUkbuA{z8rK at 0fi%Jf2v<$@;j_iWDHptTC~$Q`mAr_g|y>;
z=QxLTI7qt#&CM*+EIMru;f(pQds(?WQRkXpU at +)JrRqPN>P at oC;+0?&*@8=!&Sr$+
zK%`FJk3Hh2ly&$LgXRUk-k+2hZvjbM7aT*k2H7@)nTFVfyp97urrKQ#i=34N6@=1L
z#ELNCiD<Sq$FJSE=><hK9`Gg4zlklrr|x_p8smo-%Obcl8 at Dr4^H+eyq^g<@;zk(C
z+%OB!VixiJXYnouQ$1LJK+kIbStn+7v1vdp0F86pvuDTKMWECM*97O|O$$K~li#@)
zS%oA|LI07#BYHK34#fZz?Pg-Y0S+&hdG0FMrJx1tIP?Z^|6E#&@j%8taq$05ktw$n
z^T_G)P6GDyf_<NR>7`Z6?|GQ))e&203nwtoUdmxmw1y}VIsYs~ba@)bZDb$vT>H^N
zd$xOfHX<P*j!L2Gn^+?6W|a)m;9$Mu`3sIgE~UzoyU7>*a>X{08W<~Cwq~cGDcVoW
z?0-T1a<f*K9YZ`p-FL{<QdUePWWgFiv=mI!aNk2f7SEM2`xM$phA=U$f at PJ5*)Z44
zhyM=$6fTAnzX|nCh89Qf9(nCT5yl?Tjxh^vTB7`1$ux1}^79Fr0%9AAQk7^oYf5W(
z2PHST_)}d5Cfua$bEVk|k?i?dCnu9oS5g~3CI=^@uITX}otnCIkbA3lWz65Y7ha1C
zZ#^rTdsMM=-P?BxRUMq^@nXtxDpSJ|^wceqsuXgVesLoS{q=F?T*b6EaWTM0hYYK9
z^)met?_CRg47}XArsf_v|NY at yr@WFkaH%pDZk9te)HTRG>xN|({VcACJhkqk#G#_r
zxph<V+)q$d`xr$qKbtvzF5~=9&tWEhO1z_0A}l+jH;NF4)v<lXP*sKL-tbnO;5e+8
z{&u=mmosFQ&mqiyGhostDkYisYJJ{^SCv@&6>WikMT$!zuHaKFK@`u<22sX7#{8?K
zj5{~Ldk&|ACGU7NGsQCfmip at K-;i_z-cGKb?b?=~4&s!VyB#7+n}v>!ws-b6KQ!&3
z>O1df>Im4_aKH(tT=mtax^6M7TG<1U8V;`Mk&ECcRB at 55zpZ~kK%mtUK%7(KDhf>@
zQrFRs%DQd2X22C`oRaO(Q*kaVtY;OWQyR4%0M5NR^>gl&TB$=w;hz)0uvPr~#XIEn
zv_KdtbSLr2#EYE(dygZO%Z-X|_X}7yTUOo+-y=o|v~VptnH^jo6wh%sZfBR2Ml*_b
zn4A4y04YG$zaXYFL<i^Ycsv%e(^7aky(;KgF<CdtV;6WgsZ^L?A8!?Cj?3tC at 0V*n
z9(^I&S`P}f-Z2GJMj at jd*iEs7Of1AECuInD$*Sjrv5bI+FAmPr^!!*^t|d7_aO+Dn
zDK-Vqefuk-{0|c%wsh3T8SOBxsg^GkfLuZl^zrF)tDT at 8Fu+mjGlr-1vRBh#!6xLX
zi*^f(92^L)Z#6AnMqL=(cruP5(Tcg~(~ab>HL#>q0yJ$@&Ri=Al50TGR!<Sw&|LBs
z8zU5YnKe_br|Ba at Y6R*mci^;ewngXdQs#h5j3q at 6;V?~1YA|2rlP?YutwE6=h8iL)
zJ3K71sLjyb{mE&j3>DVFeTo?{FGTQ1M3#xZblbkW#-cLcR1jP~ak at w?T%O;NvDBJd
z2TkA%)l(|G?#q=4+cBuo=?Z@~bAbQ%aI$fE#$oz4tWU|2oJ4LW$8V^|2U<b%xp?Bl
zOk3CwR5}^fAvyFgV;C|Qh#x~E;zp4K@%<0 at 5?&am($GGt$ZZH}D)|9W;>txhZoVN2
zyzH-hL4^h$3r~b*u|FnIt(D+Fk$uqQz$oiievtrPGG)uQV%K-QT327Ndx^!OvLj1D
z^^dOOq1kCu{!zdnH=A+atEeYCJ;d1dNc>^~0Pn>jSM}AG;4O$0;4%l0Rg4B&`HG=z
zpsp?3W+;KD0~94diRsET&dt&p46~RDOEZ(9W(APWFdxiON4GzG#{F2E_GxD{gy51b
zFmkPwzM at ee1s$q2os=2tjCi$V(W5o|knZIf27wJ>lda9Wq<T{zx>+Y~ko)h`*6c-r
z#t0o;)H-fCz-4CRvHZd9pZc>y(1^$ZXv`tG2H4lVnRf(&K{s>^W5IwLN=_0e>To8a
zh5lp7X9;#Uj*x68c#r_AEC=?((51OT3Eo&h5!FsYGZ$0JAHUpmd~Y}tceaTT724gy
z2y1gbf|h1kf9g&N&}C~LBU+%cKUOw*f(j&3XTqGhMuEAYrHG$<az#>IUjCB5l8Jn0
zy|aJ;JCsNQ>gP-;-)kaXB?rAkEGG!m+N_oZu=I7}h=*M-SYo1fiN}C^Ns#I25j^7m
zhI9#61}_3yQQXgGqO&Pv60o;jDO9Vx>au$hLQ8)^AEhrEDY;Io`F;Vk=MLGYVy8nF
z`4n3z5wG$Nv&WXabRbyiDvBAzS#s^D+K2`3u>jwTuuJ$;)z$u9!0>gPtQq^f at M_I_
z?3D^TAv9>4x#$$OGG85>2}Xw0ul`sNOc?<BfuYWW$UI%CvsHAGN&bqDL))AjRPZ|J
zE65eb$p-z~j8bobi`UyNb+=d>u#mCc6mW5AbNEa<)4P{P6Vtbo{jOcYm|WlD3B>HX
z at _;J^FwrPR)+w}4oVSMZaP#RgvXaVR-u=-+B0r*bE5darWh4VNN!7HfT at 8~(VWFz7
zO8&9oh+EEPTXd5d0CS+&+7#;#nKvs;GnrLV{$8lBNjzkhMzhibtZrwIL{CxT9IFLl
zn?7?XNc(#&Tt{WPctUrTQ-PrF7x0q=;5>C+M#+?0i+=t9oy`F?LP at 1(lOYgN at aUPT
zyA>r at Fo>dosXzvb`WvHscsGElv!sQ^DFy-><AhT1tA-C#%(pn$(?-yNwNT5Q;WKJM
z-w_lO`yrL_%no3~B#{SmN2kCwK+l2WZHc3TUu}5~-T*qn&XaDPbe^Fn9i|da5S=V^
z!tg3H)$_y_W3XgK9>i$fPXt6T5CW1X4rns6E0T3f6U2r#&3v*jqQMl40SWwFAboRC
zECeU9Scw4V8Y=X%_JofRmL`oi(ZnfvDrym}IU at _SMk3x-@}x(_1PblMu#6^)b*gv;
z3yBIGfd at b!y#t>_7;~IuNUNWI at Ewveg#8=_a`}z2vyRdgt*)#22WTs2PVcT5ieiGd
z5Sk0f6bG?)wr|ggvs8&e$daU>1`<$UVMoEc99z6VUI{qq8D*6eidFzM!{QeYa2<+4
zzSL1c{~BQE0j}Z!1XkxGu=9n=pf>x3+S#&pWICDPM1ZKfho9X&52Y(Nv7da}pX4?U
zU9y&0Dv-`%b8$B&CJm7**HD^SOn;5+f#|ge0AOS-2oQ|p5Ed0kzLVhLpyhZ6_w0z(
zfC=NZRTPwf(A9`h3fLuC6Qe2<1(X({J{bfut>m8IW()*VZv>MK+khujDf^2#?C}xo
zab7w|d^8CL!<nI_+mM1h4&y8)?g80X-(Eo$qCX9u{maRrT}r<wHt*;7!ZtZN+0*wd
z$j%D4uwmPgYT#y24v>!62p{jc7(=6rGe at 6L)sz%jAe9Cct)z<JBT!O=-t$6ev8eWa
zsN?J+pV0>%X6WZ*OZg#N^sM$N1xUUCJ}G4qB)mZJzki?SqM4G6`KM8Z%8$22hI<wJ
zT~cGHObok{$xAQtrZBp6jx-1b0_aN~<I;jgqAb41rHrL(DJzBt=t1_trR>QiVP{%R
z4L5g6_(ryhvlL5yXvMsg^YKY)LWGO@=@BiGnOj_hnxH+~7uBMHy5!yYW<_uTH1GeW
zmVV&cjeJ0m>lA|8zs<nQC(?#=;u)era(%W6{9KK0WXyL1$AX1D1cWy9HiFSAECRy*
z0{7bOg`PQ)Oxk2%Sf9W3{HrDn*AF$>FrXl%_5{WHDoGtDaw{XMmOwL?b`hWL#&e5b
zppz53?aG-a*`Jq>Vj*ahsj1i8O0(4i at _{D`1E)AKETH{FtO+zCLUh>#3WT)&P(Ew?
zEGr!835zHs$X8Xa&O8atpD(W`eGOBNUI<QRnMxeQ9+`E2b|DSO7&aEzAotma$6(1U
zO{U59AQ-m?eBh_q4VL-=YGlj`wX591?i+qYWC8q?CXS7G9r2bz1ghqcWdjv7<cBwn
z!BS`Ee1zaPWRUV~;pxH62;=(z%Rg)nwFC1jh8CbPB}WH-N`uK_BfR)==bN59t==sJ
zUm(%KK`<17lAlOeJTnyIWn08`<$0y{Pz=E4CK;e2a6My3BtzDcnGl51K^=jO_b62X
zMMgTAhU|#u_((G&E`E5BU>BBSd|uwZeTyEY%n|K%pP&3GOf?je#lm~sxk?I8f9A?B
zza{XB_u5v|Rg8E6kL2CCuGdUv_dy;&*icnjdQnVpG_x#m?XZISU6}kScwK)rb4-ID
z<vwVsUW6fV$~zepypx)QMIuD|Rb{<AtSqK3)~&Ek<ae50pNKeenVlOO2C3Y%K4S5p
zY at _CYvev>8JVET$gA-t9mcKp<-?S)rVERb(G2z2AUr8B)TApJ26qLIT0Q~s$jeZu1
z2LPSIg9hI4Ju!5o(`Kd;gm3AgZJvn|aiO0J+v?h_Hd9 at vn`tSKX at pIP#@Gj0;}iPm
zeD#N}T;ieeeeh|XZ4HEXDqBKNQRqO55T8wQZ5}<-`9eJluR{(1$RLW`!n7Q<cjjl-
z+s!79wVv)`F^YYRET-D(K+{Id-xwyMtJ1%TWSw9X>$(znO~E(JiX?TBHg-6$5dJ2R
zy9ps#$E2WBwpPWnyhT_-Dc=Hoe6@>9veVow3&dDIA!@|p3;@M{_P+>?+B5~$9z6q2
zd!Rtzz+>)>{p3I=9}ZdH5ugCwts1av95)~!1Rv$qzMMT^FBo|7%w<I3zHC$v7t5BG
zL9%gB%$Y`!Vyg`UNXfvAT1fhlSgdyO;7>?cEKo*xR)|8ZHlTfl-5`MiLaPejphP>U
zA{vV!ki{Pk2XpJ)Q`f`A%r?U61gU_dOo28}y9Q=9PVd;L)eM#BVWgr|76y2m!ig3m
zwli}c8TdYHn&n5}k+Ar=EkUP-?dHoMcx*c(5%Y4|iUjENSHWX_JSVdX at NvG?!9T-L
zvV7j!=@X(vEL$a0kSFxhof%BRQwzI!QC-O07_k_f`Jr25m;Wt^bW$0PowCe`TprIW
z=8zyncwCYK0&7-Pj8Z6Sl|X6f3<~2(w3w#K<Mm}MEFdUVg^7W`1dxcV1Xz{xKgeRj
zjv(vd(co9y2e!+Y1y8q;01i&vkAr2xap^5CI*Zy^BN?s>eT^}rFkBF<Ef)oGT=WgR
zZa`{WWEu;yZJXjxZh`^l%;HPjKi7{iYA(Cuk9UD<<RJTm7}qZFlx1ecp-+-s*D_QE
z;OIhKQGjR*o6%2HP^b>rq1=bDECTu7ek2DLP$Y~5z{)XVfDjaD%-q`&z^hO-)%nX>
zqXG;v7-*=U9u%a?;C{7x+xaXBC~wGQX8+Xi07^CwB?(uk^kfjjB83-K$I$=vsy378
zLK6<b4NJ$-Plz`l5P)n^wv%`<3%42ATOL}mqhL3ScwdUW_#E%ls*00sW?KI5 at Ofzs
zZLfztw4rQ68V`g)aogt+PSexhH;J`bV=jc+jVKLC0(`9%%R;9(i0Y~3SW7Fqxp<KT
z0f_TfI|)G0##|~;8 at kedeNX{BgLbMN%k`}hk>hV449R22K{H~Z#&~#%4B!F=Si?u|
zUr670duU{57H8^;X>q1KTzRfTfnJ+20fwKzQpg1yMilq3#LY`&m5!CgP$&*jl2Y%0
z1_s;+Y8(7dSF!!aZXhgdh&3Bnn-kcY^aL8BRZ=j1btKlt#Lro)4EL+1J<;4WuV0sC
zw- at -GZ1g8=>FTb*Dk!J=zy{an6b~6<?G7ZefB{`+33lXq6-)JIf7el&14UZPO$HLd
z@@%Fki+Ox@;}O8I9Fl?eY>Q9n-Iqi}`%)hqTzbPMFsw=oaS}J8;?8Cb3eRqW#-W46
z1Z`}JW}2j|S!tOivVjw|FE>XIgVC*!pkbs&;+mdOG4$h{rl8nEX35|s2=SsT4??SC
zFGyj2zyaLMwlD;e!fnII4BZ6-qJc1#kQ$f`!e+yz>A9ugV5F(=g2zXWrp9bVU17qA
zWpmNNBcs$P>xd`^*1Sz_Y&!$R)V+yd2nkSBw$5kcXocw}x~3wPK>0V-X;b0M1K6H(
zM?P?F!8>UHjqyhYDrOoSZE<3Yqp`GV0UNPMp=)A^s&@*$mfa|})$v);9 at 3*CG2gDY
zNGl%7(FiVnMHdaI7X}-B(8O9EiIyST9B+3h<H3{T!Q4kim+r$)ku`Edr=VYA8Z(Jm
z6I?dzX4D|ruy_iDIe~+ign93qp_cT*xGz~8z)fw365?mNT*)zu%;}Nihum!!a(x2;
zJeW1V#vx&dpnOc|hG&>a)c-eMd>ocO36z0TAfQ4a9M1RP9Idjo)L?5t6Fqk)0d??;
zwsa0gK)!Xft_PeC2JQ`lRFt%vINcwJvyXqkLJJUxQ{72~%*0v<w0t2 at CY)0xE0D-}
z+uHSum6~LDYTOo?5HQM0TK69 at KoCO+?VSXq0~2A$h3;E~oFo)^k+}PwdVTCGVfNlF
zA}~8c1+Lc|Jc6l|t#Lo{9~--V76wXq!<8KDgdS>S2sWJ}!*m2ZNMl-|TNA>6_QQ~d
z at i?jZV>O{A+8C1w$rmm!={_!}!w#2Q3l4z~e^=2VSWh}- at CpeiD8l2}&+6tv43fsL
z_70AY490m#_8<nRq4_LFC at PxRJL;^tMxOSRvv)KXeo~-q&BQOFIg1lB)%B5(-F6Zv
z4F8TeqGO+9yQU99Q6(F68-6GzP+<gS9yBp~9i~~*&ykraf45O4Lm6TvESBDP<;xf`
z+(|iGW*~Ee3D-Yhwhk<Q4eN!j%Y?wb3V^;7yue?9{&J+dPgog+1T-T8cwh=(<r%bD
z2gI}Dx5&JLDHpjEBbJ{ow71Z3x+gQOq8}Z?sV at pbE)D=-q75R$??w|8zvxF_p$ju_
zy$773FBAQW*fV?iI>a<P(TeQ&QA{tn at bg506uuz*Jf{Qu^LG_b789NEjlo)Axy)RK
z?~Ex-i4K*So*1!bP-B`i$PIY_P9f~BHj{Gr#oS}Z1p-awXB2<+Kb3~A%t((G9?Wxb
ziDZ=Vw-^!Q6aqqImL{_F)-{|a3V?~C*j%Y|=>=#6itvlq>g~j7d=SMECO`p<Z~>iQ
zPB((%$OAGGhhD;5L>3Ztgpex|<3L8N5M!1~Yp@{2L;I8u>Z7h=U-?{#zwqv-^<)Pm
zrELw!M?9Ay8w&^CidWHA at Dou+AfK~52xNWkfc_*w(j|r`QJ#^z{g5*h%JV#t-=ozs
zb{${gXMT*r-|dDVVCKc9+E+7Ospp>rADaEilpE4WCi^)e6Ptl!7>WLn&7ztQHn#EL
zJlc-}rq7?D9f{0MqM{M9%PJ!sjfYoagN|H)D+Jgrg4Avy9hK(>fI3c7U_TT`YZ$@O
z<iXzo!Nh=ud`#ivfMxLyiVf7hRbW~KiVkG~mOo1E5Bk}Ooe4dME33tkL(kSFzBTiG
zU@!BsECqKSXe*RYkiG?#F`5g>aEM+lVqQ)!UhGgPnP}5;Igsccs$BYNwht%GjD-z_
zyGu*7=RT at 1U&<igW(b~UwSB at e9Tzl6VJ!s&lmXOZdGO+snrigPdsN_^(Pne#Hu_)@
zYAM8WhQdF*isG75?zTzptCWUwu*`x at z62X_?8OVq4h$GnRwr??d<#VcQizFEFAeZg
z>tzs$<O-R%%0UL6 at seE<Y0Y67P#e|ox5Q~2G$eBSrr97vF=?NHNCMuS`tO)2AvE0=
zY9~9+i~wb!OS2CU27(0s{Rc4*9?zya1%@glFmPLv-yq;L1xlU0q7|J(zM(Z#AmtSx
zqEq+~JsRn2p5{Lo^ylK8#|5iR^3Ejm=b=&>K+Zs%&zf2(R-O-E*fJ1>1SlF*yO8An
zE&aoCaX&Pk)h8p@>>QIruI&Da&I2%OW;tdn)QZOeuX|8Tj#Gqlk%b^lb3Ee$xRqXo
z!Iq08^1~#a_60#t7183(e;4g_5Fj1AeuCQ+;L|{;{C?W~TrA_<8qKkZ&Zqq3C1Co!
zWa;}cicw}h7-WRK^t|3H3vcfwvF>ColviM>z_A3j5`4EM5(#PnUpV(oG*_sYaU}YH
z*Ij9D^@LM~hQB-Q5eALa-w`v!DagW3vn|5-Oaq7sgB+0(+zm+Wj$O%BVU2TanuEBK
zmmSc5jbk;&23z>^c<P0S5Sx7VGVB8aMM}v4-6?Ne2jZmb$q<yD>WN5KDwb|>7IEZ1
zg{Y1tnYVD>>a0jJpzY>`L?R3VvDqsb$hL64)m^vSZ(nd5{$SH06i`p#$h~lm023?A
z at GKK#4-gCyN7Rj?W?S%^Kn*6wZeO-u5eYZ96!8C<K^yV|ZuR`fY+|@L4v0lYJO~ac
z{vZ^X5Ogc4j~}zyp$32&ui-H8D#OW at qL{ooI#wZ^7=tV at +rcwiPF#ix`&vFYtk^kD
zbP&{@IEKkcm-sWg4K)8bfD8qIK}n_PwG(VrG@{b93xA}goh8tzZ#WoWjZr5p1LDn}
z5f&#CCrRN)%Je4L;$r9sGygLc`9VRu+2nZ0afE?iH%6xxZTrO~J`z$|<x+aEz!I1T
z7m5JmG)txs{(uUghZ+E6l&L-F+OHUFX=;>Dc4XC+of2_@=9jD<@(=HjpF4G|&W!NA
zFdr|IEfI?k<+;Mqp)>~T8LMF5hp45kfm`y0x}unjQkwRD(!{gTlw6r0NaI6(dA$h8
z3-%x*3MhHF5T~_W4r#jDFwo{%(&l6_s5-Pzs6&K^%~zT>Fvl98gNRzbaf#0JRKMuR
zRO2;`3WuR2FB4P*q}*CMUMCLlDKgC%>X~Q`6c<lSzK3Mt)fkI`|1{+04W`Z869tAv
ziNh$a*xhm~2FoBPPMu}oP>(!`V(U_{1^hWiq)mb*ktzS~dVn^GN2Vo6xl29CeVDkx
zc1d%ax;AX(KWH2`%oh?Q+joPIRkTxti$dKefs_)(2rL`zWs{wm(rlm{UB|egDE7>x
z*xxjfk=^0oZXLVmG15O_u4`(0n_mT^=!<n)@qyYNnmXjxZQ^#zv0g^O0?eL*^=ijT
z*$A8aR!3y4ajk&M{DI0CjuEJ6YR=~NxNg7Kt0dB6SehN((Lg}Z*Na~35>c{Zr6Eo}
zgc(X*aV{8-Nk~HQcT%-EMHj~4pww#F*Gwl4%_>>MrkE%2Yrf{AD|YWarQ4n&7`Nqx
zY*Hyy7C%2fkfBaWCO)Fh<a4OKjroYoPI9SdP^7|93d2$Eg%yHGxCztY#ncrgFk6st
zQ_PW10kB+%gG at NuIjv$V>({p8KzEyoUowyKfzL5QhCo7SJ_U~w?m>9RHu1cym}F<r
z(96cW<c7 at w#|24D8Vw|{%MvgqVR9f8w9Y5QiX~Tr%MVF%xR?wRQx6_1TKUka`p2Rn
zaxQqYGPXQOUJ$on^94_<0shb)HbV<#Rw2e1TR8-p=pz;@%2CK*t+I=WFoTFbJRT?R
ztw=%{fc+4ivQ9}?-X2S43$+Zd_ujIPS`06P-b>S^A-^_^97zATT>c6)zhU3s!Q$R8
zuRgHX$E|?V>ie_dz)9cg{{vWi_)`u$Iaj1!4RXWq^8MjBL`I}x7_L~F_<{!QA5 at dt
z(vX78F48hR`?G`INEnb$7;}|G_zeJbj`r%B(HOi);|Fqj at Pg=0mVKv))pqfJtztO_
z_ym|dm^^M_N8HjJ8R1OfPvo9i*$)>eLx3@?$2!O3atwI~r^sv7aU37L6J`2^kP$=@
zEGl($jLeyJjXWS=`T)Azea;1?GF@}>5hRq6AtX19oJ2~QQpr%j6N27+iUlL9F3$>8
z=^LW1|I#L*mBPToM~SnJavDPFyg&|MXLE)bV^Y|g8zMQKm7Tkl-wMn`_sfv715$}{
z`3LoLrnW8u;lWsC7^qe*|Fb`gn#zu=RER5-aPJhDtQ{lsNj}Eg+4XDOY+=c^p$-Vh
zO8u2f$6)gXL2c0(T?1>Mp&_jDvIxLn%Av2}9ko(sxhg+J<l;C%7uA(F`GbQ)$s;g~
zfDqyBXdSzW_|IhOqhjm5<mNaT1h00LaiT_pgOS$K0r<b9xm_T~9+@=XvL?h(1)Rw@
zaksn}i#n&rzyWMYl)gW700?8f#ZUF!;}T8fzW`KAuZZi$VA_4$V>2OcDDP}Z7SHXv
z&(>J1SEkC89x9;Vw1xjv3K}qBE*oh)x0?}gZUdn*!vx_B%1l+-^lJrAR0X&;Bb88~
z8xhB at u<7X9feO`|EW5K#`n9wf5IH;Ke02tgdFg*fM8~Ixx~f>ro)v{K=`zeyQPC`F
zko~P8jSrysI|(BWoAIqL?X+phB%v2^P^D2tw0g`d3f&<*@|NnsZW&`0?-c~#i^G=v
zT?PdKC8g!>m8et74C`U?@?DwH0Yx&(pJ+#D$CPT&imriKbZIi(IoTjiQRK<>$Z&50
z(rap at aa@(FeewAQgEha at Q;v?ap(&RlO0tQiGhKs*92_tSP0xY=u;BF~_8Zr=z-E2L
z2=pncgHi-~n%#G3463R0r;N?G*GfZy7tDd0N5WuhBU~yxFQhjqI`t|Y%aUiLVC^*`
zEO(I)Ruosq09$<#uDe7L5+!)ha2b^YjbTuUDs=eYQ-wxV1wl`#isT2%eL2sCo+>cD
zfgQ1c0IAazC`oZd7YrUXcXjfH_p*5hV<+_FA^)@)A1L2As2b9r1na;edF=RnRMt_b
z5-i@`c$rBj#a&CpNGD=2lhwqnh+Huf2d#gRaOP9+x0v&|Ht!pNT7bM(<?2`&KZd}k
z)*2{WtdJHe1c`a{5GE`j3<_kOsqN*`&F$>LtdR@~)YsPu)WVApfDkoKFl~;$@)m9A
zm`^UH9Plb_+%JY_<n>N0`l|5SZw=AUoa9Suj(YW|If2ojNfy at 0@}$z3-yM^QXpM at X
zP$rC4uoJ;nTO8)!01?X86;=Mq$h46$4I7xdlUA_dfG4uUYgM!hv+FNBqu`B8dYvkS
z at z_)%@YP<dNd;!GJd{?<OLQ2iBro*)q|CN`1h)Q#^|FC5C1_oP$1sn)LJx7MhA#9X
zG5wDZLhL?uFo%}`=X~W;s+p5QH~9%C2HTP>WvpJXdpOxjtuhd39)`<1azWdNuTZ%`
zn~(IbjM*7v&)#3LU?>?WSLg18ly);AU)#KrbR(h$iR_-pXgABFf50z7y6?ib>xPuk
zG9ZUC`!dZYmt_i3heJjput>drUbY4UIJMUs@?d|=Tm#zJm{X&aaF7ICd2mPaG}j;$
z5wNdo at lbH?Toc%fLV)RFft+$Moz>*!1Y#8yqcYqTg^f^#XJ+hQW3g;0%+z!mx0V^@
z^$+n)NRJ&qiUX2AAa_W)1y5h2=vbg)aZ$Av(SD_~5I_w0Ny4o(QZ1w8<?>^IH9 at P4
zFyawYLbJ7kDahg%F&zy|l!5 at kF{nq)GF1uYebk|sq+G5c065?8U7?{Qv&n&1@<5O$
z_{j}%waYJJp<%pujAnUAJ9r2s>(TfGwIt!v;8Yn<w!*qh?9}IsH4fNWAuI*$6|#1F
zro?IsHS`mZM!>hXj&$HY61**nwQCc?fK77ZYJeZv5j;ee^GEI^xi10FDpkG|-U9=p
zMDFbcXb&nBlrCyLbeBu274yTgh|&}j7M8%afNBiGiCZ~ZmQ^F<Ej3Bdn8|A*qCpBm
zsd*mgB>$_+#0@(n2>LoqvH>BSMfDHlUse4Q4pD#oRd1 at hlat}_yMga4Vic$th7!TB
zq$nkB(L{Sy^Or&R8m8W!Q*vAx)iX0DN+TFTA*<*E0{Xn^Nk-_DWEWiS6Qqx{*sg*i
z5a{eN)vR}gbjBMl(RU(dE?c}&W~Pb<gFh75h{mw}g*HX=>_})3W9(GYt<3<o<@pv5
z9eU&?)l?ZhWhX9PW8Z>2P*Fs3I0+FYhwp@*V8D_aS(d(|;wex?mM>-{IEmOkh_tcT
zk2FA2VGZLU*SvHhj!5B0d9%e`yZ}@<@Nnw`nAkHiO0*FJ#couZFSRsJPE;e21Vu8}
z`!1yD;27(`qJW);p(HMWNFT>cJ7s at ME?Ra*v-|WYcpuGffgB$pF#r_)2`3KWC23<e
z;+jZEjNm9Ra|R7-(p(|VwYc8K2L;6qvoMjUl|%?oTN=1qwGknIWg2NMO-Z;q(yh$j
z0GH=W5KxD)rzMG|hXZeN^_B<%&RdW}ulUI(>PD*Rn<$0G?^gU40gfzNW9%^nj1{7t
zY5&Wtss_wb;^#>CqIqK-sfJ3aX3mw3Sc>wS?juJ>Y;V^z^niO{C-Yco$i6#6fUKhO
z2-79ZEpF`Xjm<4M{gGtDXToenI)|<G33h|i-k0g!kp+0 at HUpe`m~~NCy}IZqg*#^`
zH4B?!d$f15Z}#YkA}J%=7g$|j>d^ORQl&H-Pz|T65uwU250}bS=W0l~H+AcWgbIIo
zW?UBK21Jz=WG|YI<{)N|M=6;ktn{;rG5ktc+EzI^Y3`kV<J3?Uz1^uH;je!(Jm9by
zjd=KmEZfGti}Ijd@&r+;KFbG?Ru9NYe(~z at GFsi0A#T0P+%nbE!5F44pDw7!;*@-2
zphiL=VTh+hQr~PLD2~w&e9kElU&NpN#E}IjHXv6c^Rj_nc8iMx#FN(2<aj`MXiFe-
zY%#^LLsQn!KA7NIN|8UC16U`xKUy&ZqFUx30%p>>8FKnjSp}+u#HGm(MVG$RE{~MS
zaf~>=%#Q}T_Mbu$t^Gl?L=+IrhmwSxQ3*_}Odyz~%&Da6QW8DeXL-LpTp$zz-Z`cW
zWlLSPfUc&AX2ZH9PF7$bAiT<e18*FlQ{zJ4h*CX#Ey5T&pw34IS<9e1F8Sx(04q6}
zdJDDgB=t-ugnFg$M|`anGx#7UGCBLkO!Y#T6k`(N2c%S48a}0TJP|p7ZoudSXSaNK
zq4DT?D_6VAJRG4lbGBfnu1^|~3S5X%Nwz3FhL70rwhcZir}meF%*<9$Toew<?^^Et
z`^c`oWk4epm9Udfk{0Wl#0R#Tc1IK41FNS at T&@MfCV+x*;v*f34xm_$%@@j57Jej-
zdWm894S=7zQnMhmNFW-)Q!#wgavPRN<QPXzwB9!b-<{J{#IX`#<P)_%_yIkrj%Zv#
zoQZ4-GVTW-pdW5=31IRZXuE{l`iH35b+=QoSYHfso`ItS+_5GmG9}20rrk~gb+c3S
zqY?=VCUfJ?<&qNrkjX`h?Q=-vS%JGcv|q){T`d*~kLYF%c at b6Xx<C=2YZAU*y`&8v
zj)96Q$#s6L>O|*dD0Lw~Ks1-V{7wdVULnaH1&9iv876_)Yj`XdgE)U#>`WGGs?Qd_
zO3}yiOqxgyqM>nZNWbbO;&XV^(g=58Gf5jFq&L37h~OV=3sDnB!01rxE;R6pP--f&
za3AAi0=dF$yxBM`RppiV)?O;jU?+`q5g(6Cs}u}L4RA9t>q;$XNw5_W at A0S#MTUBV
zz32=@v+0f9cz?r&j4|29!0wX4XEpiz2E<6J1%t$iG%8^@86|)WZ`pF6@^u$b7}SmN
z;7U__f$w0kr*qPts5XgBe~lmEktA#zCEITH%h*DnkODyz+i;D85ur3s1`xa|y>pKc
ztEYJCyuQ3BS>U9~^Z|z3r!igIAxNT)Gf5D93gBZ%QYA8zgYZ*t|DrH{jZ+(o1NBJ^
z#UV;}U%NR*>zE=N2?;jD1XM at esshO!KG7d8>n?pQSU6iFu46NxRaA+&ldb?ykDsjo
zfUMI-D}!Z)U7sTxc#!%@M8^r(F8mcdDU?z$_)~ceBX~q$EZf&f0G2QPgn6wt#)94{
z69z}gg<nqla8G7rOI51SN=idaqY4u~s8VxJ=>WCrq5oP1u)SUA#$)#^<%gSG%sjJ(
zo+wNuT0)aUG$cw`fq+k#l^R<81fG-x0mPH|L+MUOo)a6daig?|RnqJ;E!|cWq at g?{
z#Wef4)7^mcn~n4V@!_raE-Kxxyq%sl_W|+D8~X at IaiA74K6E0p9w9xJ4mO1U4#|Ab
z{=Awl7-(=tNT3rUrRzQ%DuFK{cPZkdKpLvYLuDGiNHbKSCh{1O1;wfT^S_Q?kOzU#
zE<h`i;Q;lb4B!wR6WZCVwKeNt2>eAvcp2 at jWDa;y1-y|2VI%NB&k!h4dxc|^G?XOM
z>BDc`(T0i)-Jvv#c{oax!^#P3T_ at rG6JD4SFXHxrc*oR1{~~6t5N;tBv0EV3fgIdc
zxY^iQ1(1lPkjGJ!#8IhWpgLmRgY`yClndz5POQrgTN-d=%6~=21GY5r_ePlXzC(t%
z`DAGp1<0NGvFNLfyoQ56KaK1k#RQ{AM2&uTfpX+<^nijXPUw(ENz?MfLzQ#rtg at 9L
zfF_Im6Pw${yaz1thK(KwrupuBwZfU2*{u*+aTMqUVrO$p1LY5=;`0>ossUZXbpyrp
zr2qdrW1eYx%FJ`o*K-Q!hNI8S*tGfL)PNk~GMVAEX-B<)LPR-$%~RGr77*&Va7bhb
z=Cu){LleCZ0&2#@t<mx*zOG2tD_c#~1MhkPTrhzc_ at QQMv1q(t*HWpo8XRb+6fvUF
z+ssw*mj8dp1QSp43oTH!2vrVgxbg+4z?<0CN=LjQ9K#c<T1TP10izg!K_b+#62*ro
zQa*&T#nXzPN!hZ#fZhDFSdWf8U+qHqZ|c*%SH+ftn3*QbKu`i_hqSKe25~?b<){_e
zOI*eB9IL-NG3W7kk`s^MSdgc|Cb?>Qwr&~u!SEZz3>MzAn5!wR0X-zte^!k8e*JW9
zf)r+EZ{<IIc&3EG=t58*3e3VacHCJmCWC9%sc?)uL=_}&1o4sSlY>n4#4%eS?yk-D
zFCa?Ws(0hzH at Bx(YgaV~8}pzrD5RV4;Jyz}bSw*`u;@bvub1)?bGig*o&k&~;U(Gt
z(`vzkE|>LYuBKL_w3GH6*7Uj-Z}VRe-0+uX)Q~pkSm&2OOq|UVZI3zE$89v at K(wfm
zM%L8n5B<$hi<J#126;Au(Tlm8Lf7zu$~S#&jsyYvm~!8wp2l(tz73sl_*wIY<X?-P
z%I``zhMHQcJQ+&w6&JhU1)t9vTH0|4rF0bbK*OPdd5O|*F#*Ymf__8W#({Jk(%0~{
zG$=2bMb%PYp|-d~&ou|{u3loqwto83q{}=Jb`hCGUOO%zQwZXf9!s}v*;`<NK7rIy
z0tBOBHXC;@a_ykALIe<WSkqP{TAKKL+_7O0=QV)>XW4<jNN at YfcforfBWp4K6`Hh8
zX0p3aO<ZRBiZiGO@}vDp>-<1sU3#aB92MF{Mra(XXD1T=0~h=X^M8&I**G^?^pq6j
zQOGlB9IovHX>N~t at kC!I*DhmSg$c49#8Wl at 4bgk#*TAGe#}ye%vG}#7;f{6(@5}|t
zD at XA^c`{X*2oerV1M&<BDA=>SW-t~B(GF272JwKZpi_9kN~0GAiJ-Ue&$b~Krlc|W
z7Q$t<v8 at y*ie(yQ8iuqT>+K+$5+yiP#7rbiGzDU(8}rbCdYa4>9MXQlT_!`kdo>O^
zeSbh9-BnE?rkb|;ScaL?`nbIeNB|ju>~jZ%t%=&~{n25jvf;T%soc{p=CYl4M-(z5
z0~XcSmap=Q9D2sQLx3&d)Lff1txYuQ-EH<b?#>dbwq!u#(D&^>1gkgQ#r9_l6=^57
z at F6Fp5GOHI6>CrXQn04kMLTGSX1ezig<*`?*aU~)a-n~u>Z|rB655l6qj?{#8igSN
z_zsi?aak5wIZUHUVj<KhY~kV|s1%SGc+%2f0S*Ek0SKu4NG1gaoGjyrEOz%8OP9l3
zgCEX!^@d;~#hlpDS=@>t1a%C#tY%(bT$L0P2)16K!Bw=>bKM2|F1T9`H(cVz!NL?H
ztQypc+ at uQ4%Pvr1XwWcl=_Udq;o)W<a3(DqaE~MtXr3E9Ypjv)o}TaoR50O6)9LRC
zZs(M+u1FgBuUv<R7MRk9T4<{19PcQZK>umeO*D6r$f|KE`=2yIKR^-zlg30m80hMf
z9pk|y0;{+SknnHu;3c5pe;DyiiynF$9SD+>9S6*#kV4*=wLKGu0+qB92R_F&E4V6c
zebCA+q}inmI0UU9!1a4J0TQXq%*HfneJy=Cj{|ksO;9`AIg~tz+`vCWLU$g}HAp~d
zR70i(V`aFRb(k^@!vIfx#-V~sM3SrRK{zS~+tvTgOZk-k1jET9DOK7PSYoQ<(E0~=
zX8_`oSU#XZPo_*7=7|1n4yt`??Z;$EX7yOW13(--j^4p7uDzELm<52Bi#14tL=H%b
zjx`4wogw9Lqs>Pd0?1iUScMq7^;<}xPzB)7lPaaDavC7NXx=S*4#WyEzFb?uU at bIT
z*T;P<00;`=L|mtM)%2nN0&jSLv5S`q0z>Plkkl$wL#Ut<40mY?9G7y=1H>f_{MrZk
z6>|^x+)xN$mVa<~(jdM13t_*51L^Gz#2bRTYIm8U;=ky^8x2YDa-nUb6DFZgAPA2`
zIb6{g(W~$SPl=%vz1;eYj0VlYv(#W72iProq~e}yC?$Q5>zpY?T_~ELaGbcU0E)mf
z$lGn9g)AZm8ePDW;^@`u@#7&+Ah=rH?m`-B%_!L?NX90Touzp0zA=#}*Z>0<1$JKt
zzKh{~IOYn81ppLk)dMd`%zVmEkhBjXy5mSt$c)1D+%*=0hIF?J$>aeQS#fK8>nm?}
zw<G+G$T+2Hso_oEBM at T<Eee4dN{Z`(|9PDYASp<Z6~7=7oI%T4sL(_RW%iDqfSlM+
zIpZ^waYAjkAM%(Cqr&c%DSn1F^>K7ryqR?^=cj`byYQFIfgKMLEN>;f)u6OTLO91l
zVySfy?{K5R+`b<UN2^VuzstIO2AK;8P)r at Br(u7R1jX9GMJME%$`)?=M*)!YVJzFe
zeeYYK#14CM#(K*Lm5-f;G=nVB9ZSt|;n{0NrHu!ttDq*eCgjNq1k at zUTpOO(tuzGF
z-AD|SONeqyrjo*$Nuw%qa9Liop(>Ve+l1#*J`EaOh;1iQh?M^fm;zR1$0?A^ETwe^
zFwxa|$V%*>?%ZS2#0=o%|04BV6PV&O?C}<g&1k1-8Y8IZt?Lpg%zXYK1-asD0pOUZ
z+pbVU!@y=WS?(;ZysXM;ez2nn=lzs{BKH233=G0VD?_8q7DorERCGC+hMT|{0U=^k
zX#y~)vk-I;WPTns%i<{tQ|w=}H!>*!CuMb<T|jnn%w{tlROLtow+ at tKoZD61TapaS
z9;PMTM%xNw?Ktm9neC`9M*6`UZCCfGK2d9MD`5(M5kzu+CQ8m%Lu3xV$Ag^AlK@~5
zw`t^t2-%?lqt_}}#6r0rB=MtxwzMG+F4gyp9uq8?$n5M|N*q*-j?iQ|77!)c{t4&p
zi%<+02DN1yBMr~%Pbk)GBLybpYmZ<nDhHUHIo=5<$N}eg6=^TPZyd2nNX^Rw%#(b?
zuFejVN{{3>=n`I%N2KGJsVTe^wql|?Wly+ugnY at 1w2x3$Q)VQG)t!M&6k%VOzuruf
zAmSnqCvRoS-E}P!j*-5wm+EtLq6|?SGm2ZJTL#}JtUQ9vz!nX-;SOj3v(#U6P}%SN
z=2;~~f;Y1L)8I=th42j#!5?Z#d?NT9Hb)8193>GD7KT2Bw&S?blgqM?iH!xwG<!ld
z-0UugkBQmGl8sF$*yX|=Wwnk6?)BA#G?E!0=Y~LI2zgB-m~W~0%~i%u6*-P$b7&wG
z*b3<)Mz8ETstn+TEJVEVyMc~AsFH?OtP=)n(luQI)&T3u3hh|%=4gyCdq~6u$o<~Q
zwA#M|S21x1xbeMAQECvbH0h-TqAg(|p~Ar_-#30QWhV)be#*xo#vD}Cc-ngtE(>Sy
zqYrSP5ioAxxUgXHR!|ZX{FdsYn&uG5?CxI7m`rY(`iLvdCa{4}`OX^2J&N+J{y#7r
z41m|_wak6xa>Msd5-J~A-rSU5eogtkSo=6+ at OuH`96qBr(|bU~^Hh at _!p*5Nb6nT7
z5S-IrIWqrOFRQZ9Qb&4NDrY++J{~QMl;vk_rV~5?4=B&sdSodr4YQYZxW*P>+b><&
zd0=7_O$rP|_cQLHi6AUc!ld`2JLS+xcUZVJW-bAZo2uA0f~<*?PkUvbsVGUSX-0UE
zNB;r9oR1fQSX+Z{iPwv($N;cL5dk2VcHBX#QXsvZktiXq32xf at SB{-+>Y|?X)b2R6
zt%<rvB&R^-6H`wcR&rOZyQ`RT2%lI8sgseQi208zdE2CATIgs4BQl3y5Us(7bonBe
zp`+qEce3nh=?jj-2Ei&}pwn1)5K>H_XIx^>kRjKSw+6HbM|weua!@2m$<0ab*I0$6
z{J02#G#oO1hR`FsLYMRK>YD$JaV&m4XeochIT(JF$L5H1UH)_c!15ZdBG?Ea(qY1?
zOOhHtM)zJ${;M>HeGmvbNkVFbvr8aSQq}d7>iVAl%jC*^^4mR0MA2h;b^`#8P56^R
z856p5A(ToXE-T_bfbBd-AU*WBD8lIswtBK4b>NL6I*<=&{e>)6m%Bt06XUjU3aK2h
znoKHr#tM at 1(XjL(R2fXl7nAVr7M&u%$@t0N;Y^+Eg at h2*aq&``h0%dX5ic#d&}IVE
zHn_C<j+zzL=;_g>HZ<?W%cPE(UAgHigi7|CYeM#)ySJ`&SZah|#B|fW1~Y4_?SPHH
z&*>B^A6@`+n`o2J4hs1t5thSM=GxJ0|H6 at TKyL@C3rgEoJ5U60b}z#`T!f$xHE1(f
zxN)YDygtR4zjJ2ZzNUuH*h>jXn@%$6*+9*UwY6$g+h*>xkbqJ(Fm*5y`~4(Rh`}{b
zl`<0g7_5G!MDSQbo7!_{lz-qQ2Lez)61Hu9*|l<yli&oWD=@}Q%&=uo;MWN6XznDu
z^Uhn7>YnFlPQygP3Wow5onO5&&z0Z-QQ!Bzi9#h3X_X&4*oKyTXu!<5UGEqv$6lP9
zodEy_=!nLdWK2UnyDl)dIunYft>*M-Hm01R81m`OL12+hS5N~*qI5BriHAQ$;j(7M
zc@}tusKcq}`AbKE2o-WrVDo`rzn)2sP>`THvCXu{+cjG?M8qbQ%L06sK4s5hM0*IT
z0rTQHwAu(p;9zX(F7$FNMvD*pK);kC8L{Bl at vW0!EOmy^iv7e99-+aDJ%A5eF}u_7
zS0UB7^>a^ZjrMM1m6pI at 0F#z>8N>B#?Ni>kj?iSms`oDEDRVG|jDxEo&<y)!AHoC3
zNTvgayvYEUUPu at S60uw2Ke-IQ^|=1}S1oK{H at -UIOI5x?ad*PjT<#YuOD>7MH36ZF
zULcNr+Sy2u1Yj1X0YF(T=N5e*?95 at y6Y%K3Y=YO_!KSNzu at g&WSU(!OXWQYp at q3?$
z+kj~F2up25HYAXyNQq at 46bQ+j^KQ(;M^^PBYj4C#s$P8%Vio`dof*;e%tjbg7jqN^
zK_uydjuZQ!in!jCs at n9CsohG%`$JNIcuoL}V~u<jSOd~2OBnWh69V~m?FLDaQXa5E
z^B!pc;m>T7A|r7TDROId*f6lQ{PNB7eKQXs0-KrWv2N#EwWF3- at D5I9CvSu>-NATk
z>htu2KR(40vJymyQ^3QH!S<g0t`h>pwAQ%<^bjI&y8Q=q{{}{KgO>zUxr;0k at bNmw
zK0{JS1A2TsFZ41jX#iM`j!$|ZK=($e74cpvN*KB1HtJss{Pa0R6!4)Z9s at H<3yu-1
z56J>c<YN9ukH_APNJc$w*Iri=*AX`D2yVFyS|aRh5`cfW`$|yQ0gz!e3&EW?QRER_
z3n at n>8fz~*UCPD<{6K~Y0Y~|TY)DylfhgeQn)_L7lX5Fu1SjFAHQ8fRQ(g`Gp at nnj
z)2)!HjFc9{$HM_V!m#_cm}6Vw0f3oSKBDofP&p!C6v&{H3e0!!BC8!HO0rwY2t|j|
zbm|03TVymTCX6ddJN&_S1NGm at _}jNZz|CUh1`I!SV6i5NlM9zY{T!nzjW3eHCKAl=
zpU#|vUIPCPk;mUO`y=G0N6V-bm7dwVhC}xs(?a&VC%zPuQc(qwcMCZyDgbJS3kNbV
z(N;MHUjx1{i4>4!YDAmFg at 4U7<tqJLQf~v0_nPpwU*hUQ(?CT2TtKtBG;-iduop9#
zh;F9jzm`n0J*MsZrtppf-A+X)s%@QawCp|dhjCoyA48_64*Jx#Tn59x6^$9XT8Q!|
zSh<EIYSSc-<5kW1c^ikJaSc{2SCraF{Qy}z<7}W)gwzZHB7%2TVf3m9FZbRjNV;M_
zkr%LRu at eQ!<*=L~BrJ$A+e^933pf<I6c0w3`seAt3`2x06LH2bmfQziO|Xyu<O;~~
zOHWyz>$`&k0dZ+j8pVequ!6(W+vb}Zms2i+4 at q-Ha!3o#i}MY>Gr&y6%rEov!#ZeC
zF0K)nGqMTDgCR)30eV0m7dM4Wj6evq(hK0f-GM^)QhB?N1IgGL&_dmNa0v at d@GoM)
z$RCU8f(=iKanOnPg|W~A=pT4MfN2hM_NCJa915tiMNEhpX@#P`l>2Y`Xl2=Ke=(go
z4h&eQ*KWcGKsEqCk+<N+xdQGS-c91bgb--WE*uID at x%l<>Z$`t7*>h_f(%OL8kzx^
z$v(9nsOIp6jr6}jH%+K1eyiX^Et at A$9YfA~@MO@?A>PTU>~c7N(vo+%5hOyW#j`K!
ztSix2p6Vks8>+h}gUuhddBB>yD>X<9>4y5rT}ZA2QV)?~gUJpe)8x?Ze{JA_gOz;#
z0kQDrs%D4+k}ECmf`cc2U<^{cv5N+O^^^*M8sZi$C19TfT3}5mnB$+!LM4_~R`%!2
zI8a49bz+zeyI9;y{BHD``3VV}XCZj{6IN*xxpL);c=eQ)U~P+W;1hmvfZI>h%rHg7
zfpvfp#7>;ZFkKkLeq3QZiZ#|>`54CCw?m0`qh>GP>p!tu2^}7<CwXBxNQ<#T8#Kz@
zyxm|`nL3eCwF}TDKG#k*P&68NE<CeW+ZB<262S2v>Yzz-<O=nQw^eCXW6Oq6BD{Q3
zU^G8OJuZn(jnXLfd(b4O9Kp!$B2#F;`LZ2$wk%!PK%Ev;y at W#q<$?-kzww7;vNZJ)
zt!^Q_32{Aw8BJu`r5=jh6}K0_Th}Y&#4y9f>-QLIagdSDPz@#KSib=7U|7d+4`jf4
z*(1zo*7%v`GIby5%0Xxej7HqJi`Pf~_uDB<uq9eBjGkt2X(3~aP+GzZuxA_e3gf{F
zZe7X2nqk!6xFvaROYUpN!=y{UO6<UL0v`-A<Tvuy6-g|jo;(w at tkFkGBpX{wp;-L^
zq?P(j2ucBk|4;3FsEgeC4 at 0=$Cf{~lVS#gEyGU`k?ZR-WyelsCAqwM2rTz^tXmK)f
z`pU%fSj6S(w61P{bL^8 at kp6?)v)t__Gq8yp<ZxCdhne9}4(Cjb&pqKh(C>f at amoo%
zc3Qqx6VDfUD^OH+c at W4RY0H%kRc=H(H$Z>wO(SJ|;zCy2!E0;{tD(3fEh^k)&gMa|
z_;;`50kGGk1rIEDh)J2Hkt8kxawHAXMcmpL0%{kcY71Q=GmPkSBqYzy#8*8zT1#je
zpjU(*MNC}8?6EB^eRaTeBpM3Z)@+UhGK=y9NMHead;8q-&5(D{Mm3>$zb`=Hu)!c_
zzo%_VGbq3N$laUILVvD9Co*hsaA`Et>?_mHqiKkZWWg0nf2L^;29G9^U)`Jrq{&{?
z$9ynk>7~{xsw2{~_3h$(i*mIcDuR;dMTF)jbO<M-IuOmTLxe6H!PJ(sm%>Cwtd(eI
zK=I9 at 8yrxT>oodg!Ig*DvC6Y6eG9Ekr+F^>Hda(rr5i$30jOCguv{X{oFb_JA$CVi
zQ<Fe<Iu*%ula>As^3?eT3k=>)5T at 2dx2G%VcbgwfCY}WQ&_Ewn8Yakzgsb1w{}=-j
z2-OeAs0$kNkAD#F+RnNBS!Kg^FHIW0*xg)RhzSjVd-x|bsigzlKja`;zMh=YBqlNt
zP<@H<c)Kq!X^p7T74zoG at Y4sh*>=MIbES2B`&mth#<UyBp*DdKH83FQJB$*=c>U#Y
z+<0*V1qFbnv{smr_O-o%mn7|oF!v~jT9mC~j9?sZGRmzcWz)tp-($52CLW?~<vzpG
zAYP=yEbDneW!vln0|+#_5L<$iQ`55~rR<wRk&6wBPd{%Pf`r%ubl7+u8>na<fuDuq
zr>nw+jeXmM5EdHiJXL_%l&~21HXGaEdP2UU*<|tR-P77J!(FG>_VC}9A6t-yQCMI=
z-P{PoM~VXYz*ro;$Ew44R=03;jpB5jxE<<|z|8a8B1vXDu;j>ZOx5E{LnJg4BP$c`
z!A9cITg5bnnOnhf%^AYyZwGN}KN=?Gfno~-vgUc-meoDxi%YePrpCAWkP{SIPH-`3
zxp*(UKkP2g;>G}9vcJ6}D!U~;A7h+vE?;x!-EoLLSqs^2gP&k0{tDKcYG(!m``}nz
zd(Z|4)hha;qS2qKlrA(-J*pn?KPbH&w)5eIYG6&*Er}TyE4o6wxLx5RD*$eyAlfC(
z2Ifh`$SD<=iq7O~7>3q#A<K at +3HNJ=XAh!Sv$_&n0;wz$joA{FKz1zfJ)33G21>dr
zn27>8*bIFEq~0{AL<-mp4a{x?8IV+U3dKgTelG$GZk(6k9O(38W4g0I-&c at jr7cKK
ztcrwGEyKr0*G++<ezYR{ISY}phyJEqpdu)TVdxAT{rHW%6jVT;6|W^Nc`_-M9$Lhv
zQ*30F9lh_g^C8S4Y<!we#sujwuc<HPe66j at Qg1P|AT43<I`<&3j{#obD7p_Z2O`C1
z3V6h{hougYK(0pAwPPa-js*zX0Rrhl7m)ZkWpp%p#?#xq;=1sc2n%i;R>?WzhfY*X
zR@(qKK*+zlwsVw+5|%{U=Ri<NW{iMS$2*Akse(VM9*K-<u1}D-hdx0vuUQ2yPkk0v
ze9vzhumNAEAqg#sN8h0$RDw~6=u6yBEe`hYdkcbzG_XB<yq*p=xpWQk1YkLeNTB|n
z8ZnL1(#-x??3u4L4T<`-!?{-2r&9*`F_dX>$Ap7>)$_V*CjY!K!4^wz at B(RpBv2tu
zRard)HA>_!ftbea at 6fMH#DjUV_qAA2<h#p<OpFF>sPvRml>>o56dK23Q1XkY6Ta`~
zZQObYH}r}?F<6X->8?%BR4_}%RRH&kWJ43gFFTw*xvdC5cN7+pvf<dS5}BEO-$Wwt
zEjDVQD-ZSPnPz at b6dcMhEv(kVT(iUREi(7Qj*6SuhZ0OC at j*^IGvngAfg^_cUS#_E
z3gWbEsGt;5l?G9PCS)9ifoFhS-Kbkw8Jr;x%#;zfY!7s|!YdXL7iORz#y8E$3r6hm
zg!Sot3nwY3z=v1}#@7rfq-=^hU!u^!JBu8Bh0mNwyqF-FZE+Esv|+y&F57UuHXsZ+
z$1_oa{Jzm!qBl~79nE2LNZR!Zed=LxFnsmyCka at +YIkZZ3rH0p9W&s3!lyz%K-Yv^
z^B3OjHtZX>T5uIo?7uJZPFLjjV at fhb!APaTfyL7?CK}r^S>UE}P~Br_2F%JW7<b5I
z+VV@@na!?vh at 1$hp at BV=g7cLHeGw7Ni%~xBv@%fEbP|~1Vk$+P1D)0i`jIqA$?8|L
z)Txl9KuT;yKVRFp<<g&FYAO_{-YFZSgl{q*wk;h at 7Z~t4s!m7&XDz#Gs-z_B<IVC<
zTV6!1 at bUrdt+oFTft4P`Wlp|~AGOgb at Vzv>TE#*GDwt6lD#kV-%jOZ87RO`&>G}RS
zLT*m)rPAnA*Y#4Zs9ya-j{-NaiYPp4 at aWPR+!BK;iwiR*-9#Z1BtIZ at 8)L)90bk^5
z$s3-E`{ih}BI`{=Bi$P#mI#Ot#8<txUp?`X^9=jl3+QCd^*$)`7?Nd#?NN^^%gRKm
z`kP0Gr>$1DVj|IzkVqC_34?)mDlv at +^N!=h91<pU6R}4a75;`LW)<#xm?Cb#%PedC
zIN)rLMy=}`4Zxf8ELkSFMhcxD*R7cG$-9FWGO7GC at xJmD54)r^+DjhF4kU-TFs6>c
zY~cs-f8%Cdx at x_AK*tsk4`7 at Egh+kD3=yfq&>;#f{DM9ix`GG#z2NO9tVAjmokl?>
z*UqR=H2b-u at uUeVKez#V7d%1QzO3p+NE9THszMP?1j%0|78?gJyIBc`^Kl*ut&30R
zsj!ir_a#-nrwni}eH{(sKHN?w`2DCvMD(P<54zzb*xC$%YMaVd^&nimdySf<LZDjS
zxHf^dDNo6heOXyw3SY_c at mN~~C@<8;5kr;PURMDoKug$4=Bc14uUyBNe?kDXj`kb7
zXQpbu`Om`qjCE6NCM5v4yZ{jW2-^qnCD{y7r9oO_=gmPBlkk{^EsKc^70jGOryUNZ
zIA$!#Y%_a^)?rpdh1^Bmd}7~@tq;wOC*1Ith<km(ZP*L}0G<=SD<z%yWwCHVR0$|3
z&BUOcoEh(Z6Lr at H=p=M|mr9q5tlNOZIHAo4n}*SO1roMvzw88tuebGb1xBww(NDDG
zhvX{M(N0C0Of!Wt7{%}~zjriZ_WEuCnW#C(;%#p}L`nF>Sep43DdbRJBL_H5utX!S
zDR+_{Xxq4b1)F+yN!IM`%j?^H)3+oL2)PM3Ln^y(&PYgonn{orShhJH37C12jN4F*
zNRP*)5NP1&OvBttKw}oWpaE%-%=rR3Df01reCliyN9BW at HKw9-l(#bAIn>zqaiIvv
zcntR1uS0-|*Xn{^%meeA(KA57at0Ptt+03*U4fBx5Xy0-+zhtW#JnY2iD;Zb-i5UQ
zI+3J18aMT^mEl<0Chq*47+hAEP99DHIdmT=&SOw)H-5poQT>jckXohqAen+}XGJDS
zAhf)MZEv_57HL~CDrbWWp^sX+SrTAnHW3{tQiK_c(_>)Fg_-HdY;+3Pv1l>Ip&}<C
zRoTfLk3NAHL5lbYcLE)UBmz%7&tE43BU7A^j?ogP5R*>|G!ppm0U_GSCoVlAERn_%
zxedkb>Ioyl+#-F-uP1|<8;mSmzt}o<5fOxOg<rOV2e;fixv0I705R0&)-G8Edu+&j
zc23&bd6d+bbd4!)oNj_mN%#yY at 9I~qWR)0vDWEmp_2Re<6h(cqkHY3#Glg1LOKml3
zSp=$XHY0fi`~@+vl at ciqHC|E<X&8hyh6W2jX{TuA8v9NnuYcqw$=EL3NG`QOzD#R)
zF>j1A0Nc-X*|)sOI?;XUVFMrYENBWIBqu!~6SV&0Gk0Up!n#q1LQo0lY*s3d0VhHU
zLU!w#VI?CEVp%91bRc&JYt~u^R^R_ZR8w9mes2W+rkCpyhW`f#LbIStDLmls70NP}
z{pkOXpT+^SquWLEuR%WaboNIQLH0{WcP#kBqfZH5Jn2cK-IQmLj@@)$C9g`8l7>on
zO+krr;ted((UZYYYE8=S$fs#>SaPq4EnxLTLZ#I#>EPxF;)5{ANKk<tRhJd*W}(a?
zY7h(_iIl*>U4*D?!&s<Ol40`H=Tz1r2bs7Lt1T{Gt(Hx?_2<`A`V1JvB8;lX#&acv
z)^pGGhOwB-a6IU<-B=jY?TQsZs+DyUo*G6*&u9mgtSc;`65-Mlc*!nk?M~4=$XGHZ
zW6&YsDnO*e9lK7QSgm-WLih*-*};I*aaWo$6+XYo1y-lmwe^RywsIrm!;*OKX;gi_
zPkA@@9A2a!LPv29+7u*9RPm%g(JT_?o++eWh#3^#*el)dGy!j#`G=u}M{3#=CF&i4
ze-xF<6hgw>bj+2BbxrAM6j9bstR?U?v+zL_P0)|HVW`lN-%q%R23m;wH{eaSKpw(G
z0nu=FVxFTcyw(5hH#ht$-~gvRDUaAUbk-Lh6P1$*rao}?j?BZ%=+HeHkTG7cNFwoY
zGA)~mEY0>k5on=Ya~x6Q%pX`VbRXNOiL_6S*P(e#3X6My=9E3N2<tUZ at 5ca2Yv&{X
zTrXWefec>T&dE&9-dYkH(35K!?Yl6D0X}2H#<U>->TLZUz)H03o?@P2oJH>ec6;Vw
z$RrFKm$AF`DvGLM7^=csJu!ZVYa6cwH1}vxVX=y}JeKIZO3SBL|J1ezx$P8yfB_oB
z;So`UgmruKDW+q=b=|z&y4r9JY~?`%-`2sp$#-rM0j3=zPkr(ji&QWo$23|q&#M)%
z7}r#T1)H7#z}E9q%rC(R7#?XwW1e7k2Hh?W0DRDfH~h@}NEQO&GV-pj$x-7bpdaWr
zEevrKmPJ+TKaPOEQ7 at p85M*A<hBB!_np3gR6Am{`e!!80=x_&5416P`8z_{<st1eu
zn=)(^A3!JK%D1Okxu36Dk>{u_y=MX=YX^~S)<d?n%k9g52hFmT@@REj+QalVSVHT2
z at u}oXE0d75{uqwHC4Wc~NH6ea71F3aBlKXOfvX)1Wj(9Ag2wF#S94E$tuZHtVoE(j
z4S>NiP+Gp6SYAD;7*1ztzkDIvk^5AWQD9$Wp}eq!26}d}69y!OJ`3sxT_RZn2kb~0
zYu7krflx at xtFly;frA`o#M`KmO<EABUM{jnvnhZjn6#|r_Sw`Z<^otB!!r^HxDhIJ
zv3q?5de at HnEpo5jy$Oci+&0U{%W>`nIQkqLJADEa=gGqa8)1l4stea~2C``(sk+Fa
z#+W0OUi6l~$|`eEXQuaRRMY>5tD#U{$Ofs!OxgewpigU~$HPgSjs52&5CaMMQqy5b
zC!H1`b#2i6U={k<+nsJD`~=Ul$Q0KUV*Lr?gYOJYe4Z>&F;_E9aiUEN&o3I;)EV{{
zK<O!2FMM2J1^qdUjOd^ri-|@=F>rX3&0v*8PeNkyQOydldkwBAnz%&ks8m0Av;YQd
z(A-+t_>b^~7K&`X at n`~3w$7V;S`q>xd<Bq)*zst1ZkS6Bz*=Q;=9H3kO}0^Kv!78C
zO3X(ayoLRuuL(%r-kXLy2DM=u-OtA)3DX+515zC`&xB$H8ij$ZzXeYM2iq=zGkESK
z0Stux^+`=ZiN6Qz3&GZh=Sv~`KNLSYH{%%0tU!tN&{pHb^1=Kjypv02d%4TP0j)`e
zRAU+J#3j=yjTeMUY4FP_vq0HX_;LU>Db@?X&e?*H<lZ<bZ8tRIR~$(Uw#YM1!}MTx
z6EBp|O0daD4GKj>X8am<h>jRuRR9G-YBr{$;^~c8x@|BjQMa}*eK9T$AXvnMjb~=g
zZiAP<B}rJho~!IfJbb#K0BOrk$SpOLmuQg`U_{!%@G6I`z|@jSJ&7Y1(;<WX=(sv?
zcz- at ev4_8M?FnS0;(8V9kn9VI>Dk+jM~evz^GR`@%r at QuL^W*u0|4c0mp$Y}{Khn)
zUZEu%?oFsHSu+s=c`j($K)evWxk365_^t|dIW)0Cz&ElW(PLy*D;jZ7^dF3L1o}Q&
zT)d*NRnU~IO17y+o>K2yGk}wW(8~bc5**SciNnUdcH<r2*qhV&MT2@{2BwF$gSb7(
z*1AfIasI!WS(m^r^ITze2fWII0TnYr13vR7<p2?(iTu(e;jRd8y%6C(wfqC(Ji_2|
z-38|G1I97lwP~w0Ht<<LTUvX_GsByo4FiBl7BzTMm)K5Yx_~d^Lq3pbAXQpn+ at OZ2
z at muQ$Web>coaJKeu3JK2tktOV2&H_tuwO{+ksWrgi6Ssg`YFDxke1Xfd}Bf2k+Dj-
z<eX6hxS0ilPK0=yw}#_$TZW6jm4iWjD>wlpy$P%^0Y%QH1suf>peca|P$U$q0z5+1
z;Fq1U{lezCNVJ|vCSNWlLav>0lCc7>A%Y$z7c4tSY7s%o=+<bgO6RZ`Sb{e at c`aHU
zi)#>KpuTxsM+?W$3&3VJFeq$>R-5O~V*xpYR4kH-D7Z;y)okEfzpo?iQT5bYEC3?h
z at JNv@*qu=O1WxT?;!@X-Y$qFp3Jl4axH9C at eTm8t_vj$%A}rgCKpG>2>^ikwL_fgT
zq&w?GGS;>*N$NxRL9uUW*fdhwG(L9bB$*E+5kI|B-f(Q3x)Ys&Vj&BgQLF+bs^j67
zqi%<{AIjWAMmYAJUc_os7^_s$JBi2H1}ueV1q8L(A&QOdaiy$@bj$!nGgb&c0JDPe
zFj*)JfZH+G9Cjg(s at uhp>T~5jbLk_x0CaTO*0GZxPM@*)n3KFh<o_GQ3347eN%j<m
zC!)rQSZgvDePx%%_0;`3N6_4`?w$?cemj-|CU>r4sMEbih^ma at CQc)P0n>L)VD>>>
z>2B)0u~b6hi5JfTxekXx^*r<-GUCK4as%`B&cY!n*R!1D&GrUq(lY at LZ&QdyAifaG
zh(yLqVM at m{YX#<Y^6(0<L4q at MN9hUP9_>aBqdCTgrY+3l$f6P*ci`5<)s>20dLMeA
zY{;+*G!giSzj<0^$@=oQ58_xN51(u}!^gT^dU?Pm2mED)SwV#Z^LQM($L=8rbkjCZ
z%o4w$ygU*Tg#c@~tfp;MiXEp4XX`PsQo{oS&2GeyIi(5z`YKj9FPx3&!c~f|OO6o;
ztW5`ln8&lc2kHL55ss|`{2Q1v&`aVG0xA4^=DlYgUB1n+&%&9VQ^I85Ea0-SwE&<F
ze|PH~Z=Y)v&!hkC`GUCf!QDuLS4Lxgg=DLorjya-gIU*u4dDcTsY8zxhg>?-_5A`v
zUB#gbA$uYOk(|zC7}Jo<I&ALj=Eu+`9Nv1Udyvmoi6}!JFne^yIt)+F1gzGUk~52&
zPBLZnGs(s;bFP<dCWWFZ%P>?QWQlRMYl(WHD1lK}GO>s;(w9_N!gO5Az8(h7lZzJQ
zj=V1zIUCHC at Z1dYOTwP`TJXQYNXel?&VH#UAEqk#nazCsN{!KBm}l{wO6L&ZCH(S!
z5UP4G8MC1t*@_d2UN<PKqXjL_dA(!5sA1O>6f>|gVo{q`%FGa!G?PEPHEd6d%^vFq
zi#Xj8#w9#cXq2EBj3vi9lxR`{c}Jv8wYie6yk#2oQ>I~1li$Tj!kgvEI#@C$dZ{xo
zDiL}JE{M!#hs50Ov6PPuv_{7QSnHtm096u!9O6p^4HE^Hi(&Xiu>*qP<uDK|lJX=B
zHJ_y{GF^fW at Z(WNGVZ)6Pf-nt+usQel4p+J;{$vNm6KmV)ikAX3{xGsl141^H1*uF
ze*U7O1ulO94WJ7Dpz}=XdS(PAxf at Fc*q9{{4fmhN>b^8einN48pUln8`zh0-{f}GK
z=sj1gV=5D?eZ2^eN>bITGZ2~S(cdz?fSq~2n=@Zh5#B#N=o$vA?SNA1`_(}Nw=+QY
zYe|}EVgEY?NlvvC?|0L3nFe`6!m2u2KhmW~)S+W^>3)^3|NNp&%pu5}OsKN$Vk+E!
zo-3-J#ZV_nbr70ZcteBgieU7c+Z&=R6k%2KG$n;y4 at PfK12l^QFzfkCPvs at q)0(bI
z^R2-gbGTA{KZk7yz#RD~uujpO at hi*gv52IU!fIB{5H-uH4G#9(YgPQo#&oT0lLW9O
zMPeq~#9 at Y%P<X8 at b}JgmnfgS9L}xM=4ACX9lIlb)+pA*TZz*)Dqj=H6#=?-c=Njgy
ztF0oFXzZEAT@}sBXA$&e^6R3bI{!j+*B1m=0f38prXr-Vhc-R7E?KK*5h2CkH5jXL
z%g&@XEa2U0MdGK27`O#PwjPd7!&D#7P?=5`;XebSMQm}sLy&}iMkp_1GDiggJaQqr
zzd-5<I=uw!itAa9<WcZ^Mq;B-$g}|796d(hJ3v^hhBhz%yRpMmvQe=?N$`OJ2)9O1
zqGsr7PyJlr75=3vTL2Atqs@}q3JL&QSssM(a0-Ag)tQda9yu+6&cqx1;<L83hACir
zas+t(g5hP>U+ip~Es=@T^T1V^2*Dms;Bxe~?}n2*9Wc;y at BE;C!Zo%rzeQ`tI5PXI
zwFCq&c+f?J_W;fCA;RteXI9PW)EWSE9?EU|O7qJjdq{%{Kt;z14FXJJta3Xz43ij&
zO;#T?)IbD(@~i}o?*kogt$2u{4mzjof1%8oBuD|O3C2jQC8WI)>c_37w>g3rz9l`5
z?Ehi8uk+S|HXoz5i|juWotilMvCJub!APpSwr(n6K07Ed82Sb~7&T-#IWG{m-l30B
ziNN&J)J%cl>JiSj9H45!vEVYCmMZePtk{WIKfGeB^amUO>P280=Y{UO6axdkXw}m>
zZu^65o%>z1wJ!=|m<Fmn0O)doiFt!U7;gB$IFB}h3mqL{9RLp592HnY%<YZ1;tLu|
zCJ6-qNJnDZ({v)Xk~#ua2IuoJ0ghS~bCoocJj8Un{&MfTtA6V0$2DI5>5}Hr8o%$&
zzT!G+VG(s(NfpV~RRfL2|L=l9J`?3+aDc<H at 2Ur_6smyXYg~|RwPF-AhB2!LI_Jms
zuntk;coY^!j5Jq(=lU#i26RX~S6hgXsf^U35ch^=NXrj6T!4zyqlq+Pg`p1y!W!OH
z0cmuh5<fICbtEKAFC`wXB!C9pei{^Er(RuK7OItxyz&Rcowr`q`|xYgFQYW6q|*Ad
zbOX5qhEP?2)*-+Jpcg at rrwSRI@99GK-{8o?9nr!8-5g(JJ>U?CV9G7KP>dV3Cc(A1
zOjNyhO#nv(Y_NO!Hbln6@=jM*;3o?Fx5YQ!)L(2an#de+11(wO1aI>46DZS+6}kv7
zkhr*VDa at k})&ufPexQ>o^51EpKX~3|l$U|=!~us1NLC``1HSMB98ItH3}jIh5pwZH
zhp0~;p&>Tmgl;8_AJ{U>%m^cea)$$hPV77yXM<h|XE|xtLKHt}7qGj4D$|rc4L5Qm
zmmn>8Nd}Y(<xE!%$C*mtzEr at tbhnQ(M=JfJX_a(L)QY(r!VyJOGA&ifiIsO&=dw_w
z#=bFE63;#e8VDH<$gvogj88OgC>$ceVX+>!=6QzDKdJ+=po2dSmOp*>?LyqvU*=Z?
z)wnoyPvO*H$Fv=ouonJYhSn)cQ0=FWEntqEIgt-CZeT|YUv9MwlN+^1yvS6qALBjX
z?`EQx#}+Hn1*;=5H7k(&Twt+nTmp1tb*xe%ek5FQWSquu3z at OTgbl?U94U!E=0moZ
z+l3q~*p15e>#A(?M*(5jC%5rzduwYzF%?b+byNDg6e^_Hl|Y^q7)<o<m0d-xouA4E
zd^I&g3(T7&)dNq$gI|E`@JyV;rp1hYjnm*O8Xte49VhRQlKAz^0h>w##cXeV3h{&@
zLzIBvY?h2LvQ|=kcB+Cnv>$D%)74JBlKtr*-OyNiStsje97^V3y9rR7^{1*CU`2of
z))T>whPJO5B*fskkwo%LKu$hL6{<VJb1cf3>IOn=GYEET9w!yu+qj1^cY#88ph&M{
z{{DFgDBzqZJq!j5_(7AO>-btFI<!P^l=!PxR4CV5p}51%eazw)qn5~YBcP!NMIA;U
z-hr6!Us%Il-_*?}4|0?OQ$2W{u<LfaMrF|7*hoq<No%ZqUD_h&MUnBg+>d)A`UDAA
zG>F;|Af5U{0VRl1RIUUKPtjoze+TW9I#o2)&GW&+s#2*M%P#0x0ip7mCizSwjYGlR
zf=+$v at l}@2&>oEXv5$)4<Se2^Ph=R>sy0yMg7D>Uu{Bd8wi{v at YfI7FSUI+o$Vw2s
zbEVr(Z(~@%6+)Q3f at t8uFkZkaOH8Vwpm`icRWRXpV<I0=TUy8l%4wUW>;nZdF{Ir@
z7KzGiU|}4W*6{*Z$VfS*8|5<g7BZ5N`IE49CkT^j)H=)bE$M2LRSX8x>4f_=5bHTd
z#da1WXbu`5p#6IPeu_!ZU>r))wP>hG6BC*oQiKl36JCKKym;6}$nDtUlb!+i0X7DU
z(=_vZxJ4V~doZSHIk|FH(g099C^44~&a-F#rV6mlHX;o>1HpxE6SV*16yq7;qLv at g
zDPSUFc*##*n41B=_y^!A!%iaE7869iGRInt at 0&SjVyjDOPJ?U7-7pKf<1;g9GiRMJ
zTH)nqW6D9>qn>fpHga=!_StsVQz6sWiy!?$e`O##EKd{ah#cmy2$kZSOftftGinS1
zC*%U9fGOIhuTZI{q#fhfP>_<8Efrb>AQ7ZUZ~2d0NaU}3!iv4H6)Fjg!VBMsnluEm
zss7qnW;X&6db_0{CX!dvpUW>3NO(2_f>*)bCfQubxjZC^ih=s4Bb12?WzGXa_S5re
zEt4rA at tQ(N%6!!<p|Va8tpXfmOUdcBStr6%nAO)Sm%$|#J1xZfc6?7q-nc$@?B2r)
zcfzBPMW{9iOozb;D9adT#ulj$3`A}cnp6u4AR7QKGD2Imq2AC1pokjNmT at BiP#=CI
znAhlZ>VEKwdJL at 9hcHA*vM;>qP&~(d**`I2cw{blAuNq0d30i4GX>;%w*Nfr^n(zB
z3X(PCbrlGXExt93-4iFlvxwlr65|7)p3fl=lC6Y+8D|UYwtV at h-eJ_qUmq$OIxcmy
zke#I?1#-xWP|4#is<imaL4CpNi&8)w2T?mmv{tJDW2*=5GPGOxBs9VOm6xyfdp2U@
z!Z|O!-hbob%!G}=?=4A^F6mwrkG3R|fm%imF at t&lPtJ=zSGnCB5R;Nw-BF;*h>lz1
zKH3QP$y;y%$F!_<>PZ%w%Ak2u%J$*cG+2&mo`Ev?Jnn5onH{4^QPM}a+odHpr6oXq
zDXZXghHYp)$74+wv)P9TdEdTKF`G22B+%usdKj7zWg?HgWZ4)e-8nBbk&&SCAkm%~
zQ(tz_cJ@%De~F0?_7*G`116Q1p)&X)+e3g&%DV0JW^480(^XZ8 at 96Jyo&fb>gD_Sk
zA)&f-^H%A5>?kK6+FF0r6$(e;(jp6{<W_``J9eQ*2Y at 2-x?M?csCq?^%^`FBlfIQ&
z$jB>y{<OnD$r!u!pBr5ItcW<kdp!A|V1;$hWS~xY=^iOtH&SG<y~87(8?ffd%nc=`
zu|%c};r`&X06P)tqgz8p#gOLta7cEe4F-7V(S$0=Z2a&X&zUXcc2fhL6LgZvnv&>i
z1(iA`!PIe@!1CasBH-ayxiKt#@Ba#w!{0BU_B!2wxD6&cJQbk3AFvOsd?+!Kn-?KF
z9T|eDf+Ofn#A|?FTW>W?k9!>p545p_W?!lmLGz&G3Kp-I+zpMY935H^`x^$Qk)uLo
z at wDH=X_Eb3pjXHoku&9v;o0H+5IpUHn_`-yb#9vjp=a5a8{?q2h4IVtTkYr*l9Uln
z8d$z~9&yLnH<aj$z@#WXye-?v3)d>i+T?<GhKDRkOYLsxsl<QJeS|@g<$?^6`VtTY
z${K&dXV4lCpkQ25eqfcQHzZ>1o|Le1I6}@OV{M(yJcFtkA8}0VC^1sAz_tBxC1*My
z9tcPSPM0Nj<l!7F%mQfi5vkP}TkMcK=u!j7tQyi})3F4zat_7p!cZ3Zz;o7*bPAyL
zoInNkO%JOwN-b9tG)m2l=`eu-pmD0r>7`ZR5B&3<hiz0<ohr-rtt9F0T?hRHXw|U6
zV${MXMR3-`Q6(!~N+l4tKgF;@9<C at fYrEhYj$~uK2SX#8KMvqq^@qp`xuqF0^!A(*
z(&4p1n5JYZm6WS3L?Nyo;&@8`J!TJpf*82T0M|t3h!wL=;U7)=#Z;fROIm3JD`^YB
zmqmkLZ>^RdqjoGBMK-uTEVeQ_7d`D6*;NCs3hop2*}#7L at Giz{QA!GMu^5ZQkpPqH
zWI<z#O+pi(pQBa!5{APVmV|t4VpybzZ8wdl0IdGc at G{lao3riruFAAVt*Im(Scq*<
zC=!iF0HG$yJeTvMU9>$-#1fW9Myjz!mDzFn3Kk={-V#^)Zu*6NSEv(o!#c^>!=woH
z)PSdIGQ-BxQxe*p!)l9G at Tiq;!=gL*r_mh%eV7E0PPDxV1N!g}EI^Ch1MEt2m4-A!
z*p=-#?1eSN6vf0oPYD`#9i!!efA~KFJ4LQA1H=V}O^Re6n9MyK3D=mW24{#3_BRc2
z4DzE>K;~tb2o(d2mjuS|THN>DNt)D$G~0j~SIEA_jez8we#dd5&MgzAOJ<YQ{CL|K
zYpEP>Lg+kK*`Lq*pFcKtYzi!M`W81}i^g#*1aJqC3vSQ;rl}*32&jn8ICAz<1JxeU
zQ>5bz>9KYl1Ws^(H1t#mpHrluM7j0^Hn=t~CE3h;Hs76N(La&L`Q=9hC at e?Ls#wWS
z^;X#A%b94q-zdNqMbQMnx$ULF=LyDnvR;YPjo;GNFhcov2^5NKaL~}@Y+GRG8IC6!
zIV%hCfX6jDMkSSYl^X35jgXSx+VpXjI*^+#3Fd38xxlXF0db<1!x4O}N&tq}KpPZ7
z38TxFV4Ium)8sjrwk?V-q)=dxNRA;9y8aBsP-oT_bX-FcJYA)tXbWV<<tnW_EE)~`
z(6LI_gx!9xD=RR7)VV9+pHM+MvWOs(1{tpzh8q%?1Sh69P;Qa17Cb^8$9x at yNkUVU
zxv3Vjkz<+M<CL4EgM$2lIG|pt$2EzY<!>tr8FpeQ0}$wz9LlkjcXAqg at C(5*%D36d
z_ZG%MW|h7LV@%MZSadjO8VJ7Co+;(`*@g+@<^7w_I5$WxYf$5qwxS1ohoTM0kGY at Y
z#77>W?jQy0j&#1_78sa;r(44R at oNCD%pv#;&S*hLfoo8~;2W+eLYOU)ZHE*)m>x*m
zm1gHa3BNtu?2^HFcrZeHBS=~Uu*#&cYbmD`BH)3a&qv54)do;jTwN{c7q~c;j$3;W
z4drjzH5f9Sd%2hvt?%(6O at Ly96{Ou1Qj#Kym94^D)mKF!N96HgzuVm*f1*mMPdYFV
zGT at Qd(qVmb+e;|{9c4Djac_s0E~2jhub36d)XPER+`=MThnkForWMROlJQEaWXQaO
zXKq%$BHiSP*0)5;qduKoi7{FxeztnoH@=%ns?xpr9aV at o0Tb)Psrs^u4GP*ad0+;m
zS$}_kIuQm7>vuwtdxhveqH)OZJ4)UMe?<aM3i7={mFQBdtr at 8U+Q$d at W}SjEl`|Fd
z4I&guu8>=e27W}DoY=Hal#zapy!t{@b{M{WfP}@8h5A8!5>N~e?>YiyJ{_<vr7Wz{
zZ)RH4WB2uSdmN;Wa$JqfF3x;+)*neLk}Xve$%I?XEH?ZD+9@<D at DwMOeG7Do<-PF8
zc0TPA!VAU#gB#-FK?pH|19N@?>oMe6%TxEGX#RnaJDLd~x(yD?JI9dg=@J><!Sk3?
zBhd}e1rQcY<Z?m{$O0>QW1DRm!-W%wwsvne$ik>kp%nqZ&H at R!nd04!2P;t8P^^Y%
zTOFxV9q5i|0LOKJGH^hns>CCvhy12=hb7nsZZQFNtswvg5QhcQ&^zK16s}E;q5jw-
z_a(OGGhwOK)?_rBh1Q+x%>8mlJCR&-h`3YQm-ZEXZE79$O?+_)JFIx-T+!L)0HS&k
z6CQg)p<nK1Lz(m_;W7nGbAllV9TB#%BN4j at upP;Gx50)w+?O_Gs3>!sNg`!9F9`r>
zfnsl6Jp}yKtP&MDd$mnmR{22Kg*>uPj|J}YBh*7-G23uZTIU%!PHhn}6&r!Iz69Gl
z$uDI$YBMhKB?C_~xz4^dI%H@^J#dfx0>eO171X4?Y+i<aQAA1No at zBj?8LSxe=2B}
zs3Js+wy08s!&K6Y!#JER%rr+xYJo5iqi+-Z at _^tknG(2r`ccw*6mr{^xfPo*20%@A
zS^5p#Tu3~}7aDx7+c>*JGj2?d;A?m*_sMj3FuaPQV>r(1>+b$c<ioX-Y77v?3<|y|
zIQNgy`yLfAw#}Xfh_{FOg8&!GEoenYQg%WaiGKMx4^pe2Bkp-epX$Uwd&DOwt|RZD
zqcHX$$&C^{O0Im5x#bB^CP*_a79*2j7)IR3#zsNrkha7$l0kHoy1-lUbzpU_JG(4m
z45N}h4jJw}<Me*ghk{9WkR6A9g^s6Ip+wZvS5;Mxqi$rVg)yhTH-?f)hNB~St(~-k
zhM2Fh<9ux5nYWI4Z&3nk!k{UC0Gi8b9H1ud_f|@m)XHvJtYLS^)~qU4Zh);jb0V^=
zBuQ0W$=Hb85K;9pdHc7$s~|cHsUuql;&5aL?MZ*7UC6qb!bbr at em2vmb9{=ADb;>P
zx8fs6c|X5V@~<-j_oVaNoKF(cYw}Mz3|x#@2&xM^Yto<@GHiU`cY{gdusMaC^96JR
zRtL5{A{Yx>#>yT<mMoYOMHy*fGR1A}bqbFxb@<Zrwhy?lVai;^nRvByYScQQrC0a|
z)gx?#W#QGZf_T1b(9^B2;##h{!$c0=S=2gw7&Zm3Bnu=$2<G5IG$N&@0ub0&1^5dD
zVBYss0tR89XKc^(!U+SGSl|MrAP%swFDN<{k>_@^Dd#gOx|-PsRsd8m{v)Q~!+Zf8
z1A+c{TUm=%h!D6iXXQtaqrf{w*m$w43la}*v0-!2mwqXEsw~%#dH)GiA$R2-Xy7tH
z&`o!pkwTQIO;6n$N{~RN%<79l9Xg7V?j{n7T?xtux8SK79ko|9LsKUT&`5A2Wpw#~
zZBFQ&Q`>!RFI7Hcm?mZgXVi#!bXqf9Rgi;SAEJQrw3rQs at ll~=0<!s=oVxG%=756c
z<q3~}G_uM!T9E7=wMtca5Yc%CR<Jr}!7hcg?z8H at wJ_y52Nh_Tm6Y@DhR?IJrMtCm
zCrcr*J at a6UGneqpEx=#`#aOcX8(agSU>szt1F5yOP2gTna&!`;HqkL$APAYwa6lS!
z?W^m=zJ8q^>L(LG9ad0HGjx#y?~1SrLqQRSkvG?vX<961V9xd88!-i!V^N3`4%*^c
zHc}mM!Q_aXMl3Lg4ZyS%bUz7|qoj?;_wTTw>=zenPQyCt@$?dl(A0^Yn=C2M0v%s9
zE9429#({t1R^nt4;0%<Q$c3W+7jZT{c8R7lKjK%MfCfmg7QRPUKfi at rn2YiR0s%ef
zT%vjCVLMmo9*{0BYCt?$zj2Z+OQoV7l-i+1avqrOF8CFIsS1ZObQ9EjF!LtQ0RWFC
zRgd^*#(b3N4ExDQi#B<p<8E#iCUb{IH5emp>)5@>Us{lE>$uTU38oOm;DsYLo<ydM
zMDy6z5ljPWkC|-Pl;=)Ti7Ii|p_vsD>;x$4BFA5xFyl at --$yH&UKCb~LyhOC^%As#
z^KoVyspMrwX3KDd<2IBoILeKPMx#7BiS!^qvzvBy at gL!pdLM|_efyOl+rT)9|ADZh
ztPUvIx&fEoy}-CZSU2uIP#mYt{D(~h9g1002Fi-s#Q+$FpjIYHvqp`REejJ#ZCR1X
zHkeg^1ZWj41Cg$rjYdSd(<C%cTDQJEu*7wyJrUkDR(Dgkzb-%oT%r~+6wT0KEa80y
zjoo$vSa@}lxHg!>bjc(-3jHSehV+?VlO6911Q!H*@ghm!FMEmK`(0i-DJnmq;GZ${
z*stx6cD4hpno&>nr!3D~Vr;j*PWVCjW?oM>%rkGU1YdcLB5}`W4rgMYC65Ip;b}dh
zjr^!h#xhD at qEM}i9qYR8i6xx=PFy!o^_7fHsFgsB7NgcxKqzs;{xf8s(j>&yGC2{K
zUU>x03Dij&;~Cxr;;fRmUd!5I$hYz=V`th3v;mJ>IUZSxM4=^!gVx9fmI+}<lmKCV
zN-GS*0r)E-Fi?MoIsiP%1Wyoatk^}_z=@H!n5+eMHi*3fE(w`XQx at 7vTSpeOl)WyP
zQdsOUOd^wgp|(q^0>xc}HV>OI+~@`bHWZbBWO5^QGV+0+nan$nkQ615X%pDl!F=Qg
z_&;36M<P~3EUzJ!8x;llM=cqGx<dS`-McIOI&I4h;V^nZY59bDMJy>1P+{*h at g~V%
zdnu<CsTz(e6tO2juw?7SACoc>UFoY{8krt=w22BN818v48cWmJYMe(~pv5P$>{gxd
zIzcnX5|e|M6|@njez}DrDt!|YrYW^bNk}GfBCtX91%u0a0nO`HM at k0X+X=`T*mfL4
z!?Yl1J?m<-*SZ-bbPUu48Pxe5885B{npYUCd}qvGx5+Xi>(w?c$^wQ8nNxG9=>PC1
zj~p)2LL6|UQw5(Yst9+)E!?@=!`n0 at I%euQK0_BpJ(BS2>2}v2<>(&s0tRe>s|=l&
zIm8|F7olwh4S`{wfSVMP88fZx-Fr)&aU48ES_0)5CWiIPCX2SH7hc>C`Z^-20!ry@
zM3ku_-C61gU2_McbFz`dH>eO5b(tOcC6N!_10{JMsN?T|Ufn`%NW%MIZY)Qy!^Ykw
z;MBX1t{S96SbZO1J>u+e)g;&h67B)_*X%>ZR|3ihNvQr#G$rRXoh}FqWEU)O%{)`t
z1`?Pcu8?^`XlV$^Fey~%deDtZbo(AeB0>lfRfAQ!yfS*DR6}#CrFIDe&O{Tn0c-+R
zvg$9ZE}hQ=UqqFJnjE8h1&z*o6Gm#<8nz1;Vi*)NN5WWa_MXJ+oYrX9E&V*pp;ecY
zQQgk at 7;Jv*x^2cyQ4bM?lANP;9?wLY*{2i{ZcKg=h+j#Uk}EtfC?b44RVsBb(=SjU
zZ#oD~rlzgZk-HGO!^IR1Vi|f2(BD_<klT7t9^KyeZM(gV&1PMdW!L_m=IKvbAm!MR
z5aJbTWM`bHs>`x?Gc{_To_cfnP^g}RKdl<kfCbp{`+f`XGp#%x<noc+q;m!+;kSzb
z5+Js`(z-cX9Yr9AGM=Ey0Fmdq3wyh25z!t_K&Po*3FkK=qf5QzWcnfuEtLNvY`H<(
zgWbd?y=O{>rhF&QQNSvQdK1%nu06k!T<wZxHhPKK94u8;kE85dv%W<-wfY^ltjMh!
z>moA+^nl9X-I+3mXqK3BfMnbb00aSCu$X?fJ0=e at 4BkeSNo={Oy#e-IB9tc`)dk22
zkw<9*AyY5RB?Jb;gsFwqQIQ(O>E8`4Wxh-f3L48l2(IGyJL_MJF)wYTKikMyKBv+4
zJkHIqW~rpNO1{VeqG7?o7R`3Sxtrhu=6HpuS9>Q7q$MK;AF}UaX3~~Fd|K||uyFcS
z?YveqPC at Zxwv69XS2M{TYo$xcIlmB$lOJM&+ at TWO81lN0hiv4rC~uWWvYd;Uc_d%L
zMzMzH{cOCX at evbd8}1?7ibcio&PZ+$Fdh8$>h<!F&d_2nS*$884Aa+h;5?JaTO*UW
z&t!t1NNQRU>?VdaDgCj9_FygzvSDg9;ss%9qLL<4b~Wd?G3h(t;M36gSiTAQ5{5;3
z4~pIK17R{q$-R%{Hx0fQ`L-r8?4W at X%!ZM<q{n4G7|rA-aD~Rp`T#Gq`|4_h at Ty``
z!lUTO#m`4I;wP}F7^6#C>Ix8D1I&(Z?t#nJNjfJys;}HdLY$+(g7cK+qDe03aTj?j
z6w1dW0Z^&)t8g5HaA3AX^IOU99qrewk1iGjSGn1Bu~))q_6~gkO&AL;3Xg$uKMA-`
zDtTv4IpFNowOV2LPtGk|-M$)E7!Dq=$rbSwrlq)(UZ70JxggrZCYBs8{k>(ZwwrbY
zJ(At7$u-Obp}6weA%Yo5RQW^DN{{|j1~#|;dE3)Xv<9(MC(X3~udmmjLl**F<W_3#
zI^S*wU7=ea|7ue4(9q1XLI5iiV0qzzeLg at Avcf-2Y$zbs80n+Y2;zztikU<(bu*Xr
z)6fDQcms+P6*LIKFogH@&j&#om{)z=JSpb%!?3AQAwDdyQL{??qq!&Q#ROID+P^f&
z7ZWIjwd^K(WZ+P^cX8mv(LT&;$%Iu{WdX<tsyXOE9kx;}<=J8_XL%4ol8<rPe90l&
z`opr!O at S?^LkooW`dxVjiP7vuF?(RpP)L+(%ugyviC7$0+X$J2^T{ZNBLF6_9!;eO
z%NWnx<uMk0FK}$59s>+Pw}g*jkTEuozw<mVA=^M6Jv#xq{;DTXMn==y*$~^TFr;}e
ztPAFK5RQhu#j()QSqaCu0NGk-?_eMC>@KCK1zj-8BC58EphF)>^6}b7Msam~W5y5O
zo=_3gF<Nk1$kDkHbwf4UN<asA at i^cj1w6XXTWCC_CMp;yDDI at DG5TzBaX@0pq2i#C
zO{!mzQveT$7>f;6#tDNa+~_WtI<y$CvY}>ll`Al(7(3tVDThvHWY=uZq#)l-a6^Wv
z*M@#}{42_2f~K0CZ_iX8iuXIllPmMbcMtjdJP&ms0?`rN=J(l>$zU?7x+*nx=3}q$
zo^u#Eqe_i|)fE_B$rC*bSs2_E$rMxUoG!+Hn!$L5r?(06Df_ at Unxa}5rO?Aj at w5jL
zcL3yr$573bF4>$n5g%kG)&B?|RsqK0bk)l`n at 1u7KHj{A2L#0mC~|8&!AclNxRk8q
zV#zY?kIkU at KvbKvX4GR&;KFXaFQ*|4*@*--yaM9FCTvC%0U&#57(5Xs)5e))Tc1~o
z6*+Ye;0e*{)}0|vK$!fuK)xj`Uy#K`q{^AB>7Y!!e50dC-6d;TezL3i>VFizvMl3-
zP6G~|9cw`q2HKW2FDrrN^ok}-U1|}r!b+C{D_YnVoZg2)==xa(=%VsNXc4?>>f$)f
zT;#^xc_%oqdUm$;3K-}0FH*x*b}N9sh$%XdJ!d8?>l$tT0ZSw&Z6;9u&kEVa at N3Rc
zX-i^!5D?4o2|84~OSRAj$S<&Ql8egc!%%j}4++_fHfs3E6OkxxFQBzl`yU8V8Awff
z7=~}Xu+Y;Nv3za^XA+oF{gpeWnlT*_G$<+4Fmgc<BBfp_QAp`bxk#!79Z<3Ge44XY
zVm<3%JL=#Pkx?1_C}QK#lqX5?WMk>qSI30kylQku`;7?sagDU)>_Ns}fqe*50klk-
z@%C1wLedd{YU at lW#S?ncb9-0eGlbg`TTR+-ID*}cnN1{B33g&g>WWNxBJR9p7pn}Q
z_tqV+u=f>J(>@_`>yiD-G9sJg9ME}<>m0JOt<5AxnJ`q}&r<7cn{RS{4Z2#pkrdm;
zeyVk&w+{@riolQ-bznu1CBqk!C>SnQJ3r0iF=CDf7kG9VBhy3NG_Ai$keO8Op%L at j
z!TZ%jfF<_ID0W`%u{e0%rB<29{M#gv5&m`PId_IIZ6JEIQ!p+mC8 at FjBSCwQ0#W$`
znPQyb`>Ya0b3LsQbOQ6>Q9vQ4osv{@C#a`jQ!${QK4JYeaZuH5=_-uTOkuo6k&BSn
zBf*%5hry!A#1=)JrWJZ~_jY_Y?bx=r50D1y6<$ptO)r?qNaz!y+>dGJ at c=ul!o5_F
zBBlCjJ+N7o_7u;cuwh_TmC-IB8MVV(aFT^m#y$8Yewn>HL<9PF(@@SNG9E*<LK>_*
zqd(SFLlPu8T!}X>4)WwVU=)3Cm8G0ma*$%Jgjw7%;yxz-l14=0VUv^H0Qko%h`$^S
z&@8Rwb&jKh6zw2;v-ff at KnFLog_HJc&1ZN!z|HN8<1I8Xu?a&eYHCqzyZPgY>J0&B
zQALjIIyRCaz{fGr#8K9IAE_oc<`7UAAig9l>b=14#CMUJEZ%TDfE1xMC+1|;n-Sp1
zz3_-!d#5SY0QE;oFwGtlwR#O|^GS${VFa7(m2<XPHdN<`=4TT3ZupI)d#%5l`c=Fv
zAsA*?MAr<r!6>2JClfBE4y!G}(YB0ocm}Prn7VR!`CA2VEdyhnTVS_$vgj0e_gu4y
z5+b-)hW&HLC}CcDU${=?1J0C9K)B{38kV7bjiQIEsxRck<0c_1O!3t`L~u1LaH01;
z;ndK^ir(1s>XT*kYU<t|EKZPXSrCU3LO_((eEKcrP1#8GK|$OMLfRR~+vHzq2RuMU
z(NqPD!Js@|#_ALzIn(}XC<L7Fspi{pCWbUH+$ER<t5q?I+I=a+y}N-S=^9-;q;v-o
zm3}!BkP8%l)85ySCDfqAfk at Kf&WX?qOC~6qw1Q&Ce6^AJaf#?ISKZ$r)n<@Dre?>n
zd78_M!~*EpxmU1YL&DJYt8e51F!o;JRj6Yf38rZlBpookT-KH#UEMYKf>{Nnlm#TO
zWxm9)ZwJX>QN}_!n`A5XiGW8c`1(2NMF at aF!UGL!ZxLmg)*1kOP4eyipKnBb^e3=z
zBA4`33%V@!m-*70@{u*W3A5r)h<huN<AvrcfO#K;*+T$-6laYJCBtU36x8-v&2jb7
z*pSa1Cnx$|jTb|oFSHnxw&IP!Q|^2<&@`EMSUVe%b at 2DBm+P`mzT#+QiS`D_`2}0*
z({gh}-t1u#si+Fp9q_-1fSOadLHVwtypQsggYhmrb$&_fgC3-onYSpyvz$f7upcA1
zIcqf{IaCDvTK6Lck5Rg?V5!_lX0?K2b3olqL~v7tcWQzn1I=MqeV&`>DEH?B4?boH
z28RfoCq#vRZA0y<!<n(b9VwHqoYVOCI5$03-%JR{)px^8IRXjm1GEs++~2XrJ09Zz
z<L*>S$GG8RdESR9j%c}@f(=lS5eP<pBpJIR1_h!q7P`RYe~u2gnWq3In at qi@5>2h!
zpj^&AK*)f1a7RI4D>cD1o{V62+N=Qx2u94PLgQ%emsWfy3b=s)^hQx(goHqZ7Up~1
zSE at ggjF;yec|N6nCnrSn_n=1yQzu-TkdNSqL#&2F?Iwu8PlBo50(BxjPAx at M#Yhfq
zuI4S699a}h3J7t1^TL)0p`W#;GNGw at r_f(Kt_&|AIy|A{>KsX-pVpS*(DEu`<;Q5-
zlUH#*R)Auh1W`ZxGLXMSQ34nJGmunL3VvF8l*D3#d6C;RjfPTyOz%p*FAlulIlS72
zCa6wVGhKi6qOBYXhd)PXk^Shkb at t}{JbgQ|R0k;HPlSR13&y$^%>RFVqWFj*$SGo|
zGw5r;xfPmec#x1#wN)t0yhC7lFC&T;#8KupX7dw^@y70_p}`T5j{`J~!@{`rnzY9Y
zpE!=<y<(g&0J4Vxb=07rm8?0}4{He99E>TU9AsV!Jh)m~>^x*mFIsTFE301-e>*hM
zHbgN68Z;8TTHG>Tt;>3OK{Eu?bPI-d4q4HpNp=a9tFD4c&=H{-2K71#1A$)3knCdA
zWO4q%yU&;ILDieG4nXQ6QCXQBY|H#8I&r{=i3$E4#PlAV1JSj38=!!#gzeSCMIU7e
z&Q68EC`Dp>FEy3j%?LmXE;Z17!c87aAwaAR5DP$!ZODY;ZJJ`bbr+ZwuozS at 0^dlm
zSt?Azh$y+Clule9xdvQR1y)X&yU0YSSHN1p;zddAtg-rhaKoc5PC2!;-n??@1Ho={
z;)3WRXWU4zbsdrX@(5942GmDZhlwP1=f?<hE1JrmjpmFblYA*Co7DRB6B%*CF^~Zf
zTVfZHx+gFgB}xD_gkwrdEQ1?iiiBSdM?aVtqGh{|hTE4I8kt-e{M$X$BN}biDuLRq
zuLTX)_&<%vBvh0LPi!cb{F<JVh^;Id at WAah48fh%cy^JVx64&7v4W>VPG#U-F*gZ4
zgFU?BoX!PdTB76xKGKJziI7kM7W=Xnsnje(C6fO-Nj8y=I|!)3`a~(mQOYG(tu+XJ
z$&b<G2!|>g)T|}a#{r8*mUKCk!2Dtk(CH_1yD|Y`SOq^k2%?7iC$EHSB at Qy}&a<Nf
zMYLwha7r18j$GMYvz6-+#7L%41G%YFUDp;0*>YxO?*0R1_XDM2em=hIJznrQDqnGw
z(r394 at k)H#;I}C<tUdIL6#;pwN<-a at eG=B_H_uyNXtT<UwJRbVN|taXWL+(yFZHIb
zM8ODDvDZN$P9}bF?}5l=iAqZBuzh|cEeMGNc~K)66ZkLJos4o!{!+#^0#Z7B!LDwo
zTu{jfu{Bqe!L<|v0fT;JkT<1`^e^js#X at I>CRWv#d!yA%B1U|K&r-gpSklZ)n2(RP
zO2B2CT{7 at qKwgx43bENGP$E8YW{mw#QYi5tJT*#t0Jp_2j~Q8n2QUx7aAbGe25{KO
zqvL!gUA%s5Xkc1saZ7zO2n9tc!X%JxlT!f|2}CtR66-lew#;}0q>+TB7^R=<I+dad
zQI%`6Mm&ZsYBW(uP{qDQTOEjGe8MNc)G-78bO`x5c|1XdS1kwvL6RHWhcUnD5>s1=
zv%T(c^~RDg&@<SSSY<F42rA)DIrwB0>Z|BVg2Wlt`kp<d>%xCVUeqParof)XxFb*1
zi0I(><->p=5mb~wmL`f7sc<|F#6(BWXTvlXKsb|Ypd_w=V%+K90M~^K0c^zA;f;Tc
zKz3=D30avHzcXw*=kzU at rY{NCB7zyNbG_=?I)r+7fVu_r5f|ENgaO+z4xkU5VJ7J6
z!F_Q^VU<jEE*4qENxks4VpBvTVziSAlY5SXR_jiTKYFu6ggcJ|X>GE1iiQSI4)`|*
zBk<<#A6ked64W66nI5@{Bt&d{`xTlwTLF0k*+RgpNP@~+)HHbj6`5%wyC`aCr87$^
z!GM&dWPn7vJA at Jgc&0`&WAH&qmHQ_#!@YZ$xU<QQMBb1Xn1DF#z#AQ+kq~Zir1sU0
zE7kB*i2uorafolMo at x;Q&>}wL?T_zmS)zA5!0bHY=pR{vhJawD)e<|VJ-%)G7?0R5
z3G0}djg}2iG=e#hw27yB)rJL5Oi8S@|FP~6Ei9kFa3BZfQy>!|6x&Jxv&ybDF-Rd0
z$kEiH6)w6#i!|Q1(6waz7xv>7s8!+wL=qh6nosUgwyHT8fhP-L$Q}nM<dRsGp;!c7
z2ExjNY`Bj&U2!5RxD5esERfRx`Z^#6e4kS7FSkWeU)K^N4^$=>iIZtV6oX5^<@khj
zx-rWaViKfsT$=cpMj9pJ5YV{daqN`SKHq(j=@q2Ni#Ui3wjzUIIHr=2q|A6J<1k`>
z!V1cE3YzHGvwEtasWjMHH|snQh31P1jV^H at qa-&XDf39mMq>izO-?Tr=DxQih_NGi
zhe-+!{d^c$EhFY$3L_6r+ZL4`PD!bSDw0?ygm`hwQz#uHu0fP at NH{>P=H`%(m6H>P
z>@mgGH&|dav1!M*Xkq)Ya)Q7#AOP{A_>&K#S)i-nS2WP?f5`%0+$XNb_QC2wJE{hx
zimn1f${MNcs2VUyCf;HPR%la79CH^1Gc%2~HWEb1Y%(N2YNA2_wL!lqM`fHviqdrE
zZZe5xER128x1dwF7aIt&euPUGuMeereQkOc1 at C8MNMpJoG6_LS-S@h}G*1tr#2}Jc
zR+8kKWyJWr?lqF$93v0`VOoeyF at i7n3?0s3NtmQlZioEk9yNxvUiMv(zZ5|wyxhPB
z;hj<^TT at f2j4C`M at PvtLw09K{%HK*ItFAUXcxG(9BU!)$C}^MBtOf^sT}zLRN8>vw
z;Q|5S5uK}N7qmR5bpmR{ErvTfyJG14{)W%(&(K?-v1cr8eW5L0!^kc)DK>>v^k(x8
z8u!<n7Y&DU77;_bDT&*An+<0T4(v2{A_mjLbvGlwy>ayPWRV(Yvk7YLz*@mW;4;GT
zOc4>(flI*NCpBi5d9i?~&)kflV2!B$5TmBtHW6^vp{7uOjzD(!c;9GJRzyNYW?_`|
z^brSKTJs_7^BhlV at O$6%1_s)y*THuOX!<;V>_RqK(HH5#;W7=o4bB`#v^<}Rd&6lV
zIRbuJ$W1)S4lm5$gJF~#2jUEr_<eQ<%U?Jc`?n0QV4A$li1l at BVw58h=4Vbh=Qm`l
zI)|K&K=#wKYXxm_ABxKQn-L-Q)6NYx5)N{)ml9!3a9<{@2u!8SjZ7JRXvIqcT4X`7
z2e?A{&0UUgc?TmP_6Wl(fVro9xDl2qyiXn~_wg9Qvux0!|GA5DU68r^+VY}>D2WKN
zi6GxP49?^6gw$gymaDQ}BQa at CHi~2}(tsP-1t5rQB$leEHB{s!0!z>WPVW+MT(S!T
zfhhpACle%YGij!MYtyKp!orw+FA3XXHyr>lB0Pwn_V`>jIewVvDfA!(mrXI;Rv!l7
zfk}c?W<Xrb$L7%WanB=)gPWR at Q38sBnhfx}<-K!yth_Es8<d)c&y|G1A+%u6TvLQW
zPc&Oxmc%%yZ&iS{VYq;Lg=BmilLd|0qU`l0f3PRce`#%gW*etP+TOcc#PJdFFnu`(
z8KM<d5b~t7h!&Jvf7&qf44o%p6X}yFTmxNko9~UcrZ|Zj>_}!!EBjkR^35KTRKIy3
zS5D at 3>AY=+P{JIUQPP)XW-gi}T~GLUNF)yVL>n2RTo!V=NxWsqykJA8@>e?9f9x0n
z%Y3Arcv3&3;k%PAYt*f_0?1gk5~d|$;M)iq`H42(8AMkWNBl`^mc()lrah)I6u7Iu
zWW5sn5y*j^x7HFV=-VWmSJH(lugEem^j1g*5U|jui<tzN{D=vI=k2xQYBGBf32rn~
zN+Qkj`qLEA0bOJLN9r%?Div*G>kXy5f=-3!L5J+?*~eq at Mz##WNjOSMWqAOh{p<31
zVS;vAONVr;19~kgi^PJo3bzn1K_)7dHzpyWS?~u*nI`8B$ktFPO{kY$;8Z1CcrZFO
z1UE`X&$+c83h382W_)#vWN~P>ai2jd^{(=1BS??t-Y?@8Onm}ClRXN8AALbBeO?F)
zon-W+0xfUO^4mZl0Vngn?JBu1`u4x19NMf;1=9z}%4K~~(2sT^yyOv;BO4X9nCjB0
z_-S=7TP4fqpJ7ro-sU{EE4fHTa->|4I&>^SqQc6Kb;0~AugA4=sSai#Tm_8>&vDOF
zqdvO^SQD_UB*YcP#zN+S05g(|Tplwk%aL|$h>E}R%8J&rPPnvLj#xVyJ~+2(JoEwt
z)WHY`+XoQ=Ze&4GBHwDk+Y$vi%k<Y*Sl_+9$2!L<0cw4wUEHD(#4_S9 at I#E7a{&`*
z8b=P0 at OXy~jQ)P7QzRFKo}dEP$PEKp;y*_%gPFL=PG3}v+YE^NltX=cXHMeGFm(i8
z4vlO!aRyvHp<K`O4$cmY4{`N)07!Z)`z&;-ygv00H8a>|0JBLbXd6|&@52vSz_v^g
z-MrCFJN3$gDd4CaaGx|lPXpyN7#yvndx}o2EZX#}j7E)7p0~W;dJX?fs>q^T@<ndK
zslGF+f2f({3_2T3GZ_$!t)JwS^wE!FmD#5zvFNw(=f=dMRbx=(K`e=(Fsf4C82SYh
zHlxwPO|-P4s{RH at E@6m at +fYVAg12x=s}$*K_}#GYDkPzOwj3x-`EtD|5{J2*@{3>^
zY)S}*O9v?Fy`w{nsR>W1!&!oP%m at K#nCrobdM|J6yu2Z&m@!yfp$T9M8otz1L#N5L
zm-BjDY!Y?6BZz*Fg;pC$oS;w&JGbEKl?P*^`Mq>*z7~sYUo<&fU<Ra(n2;`YE~JL?
zahGN+g3+B}KR{@GZ4#L-fHJ_bpKf4iLn&QgnBPGlfa87}<=Z%OLR`@I!m+b~dnKOV
zwQ!I|JH;CRfA9G+d569URvbM^k2 at EaJWssSJygGQ3RZ<o`1-c|=EPFMe#Srq at fa{x
zQmGdJcT~teuGx*Tg1W_!<9)4wW&u*_aDqx{U6s?@NyULQ%s=T=o4GI2PmB9&(&)-}
zx*1uQ`U^B|vaOcZ5>zq at dI3)&+hb<CA07?Q<>=gV>O!t<gEA87 at 0U>J$W^=fWAyd)
z^0Kd+!H-f9Q(RRA(%zsTwRhsJXG3z6KS8F=PR^!aMSJ7BB8-AvH_8D-#SKA at v$m5K
zsYDU{3^A0PH#dp2@;8h4Vr^g`hv(imZ3Ef>cn%|dk&GY|KyW^^KByn9>7b)VcIKqt
zYpD-Kp!E0&>hJ`WIko~v1<5m}0O26tBe*fs at z4_PVCb7;Ie|#F<p|vX5e(xZBi$&B
zdZcQrM;gYDGeBAhsx_N$oiO)Tza$G&i(%$Cg3sye6oVQ#yON at CLs)IcRm2wn<b+4V
z$cGp_&2}D7qEL#SIyS@=6k7Xra^$?dq={{nh>4xUUtFON_ygaVJfJQXOq4^1n&ZkJ
znpv#Ztck!}9Oazq|6rgi;C?OnK&Mh?DJF#E at sI89U9b@d?OX1g$1>+L1-=K0dt2iP
zx4bGCER<z$)EHX#mc{9fz!q_}w3dnt`3dd|+}XO#0D4VVqz*HBXrZ;%3Pqot%UMcT
z!7CdX(O03!TAhM4?~e{N28_Od?r~LST}$OmwVM6;X)!zS_9Du-Xn at AIt#aHfy)J{y
zqIEGrDU at Z?_6*%bi-8FQwb6<&r2!6nIx_IORka&%EBU_S_`_lfHYB~*#K?8YQYc1r
zkJ1i5G4?Dj8$imv+tHyQqr<xYqcq&&N7k*j6r6PPwp&Tcq0eN7$xU1nTbD>cjRWLB
zBWN1R*pPwm-r-=NM$_cfYl1aFb{6tfGD7HFNVcUn?DKna_#!ab-<dt8ic!88a%_pT
zqhNU^O)P5)A9v-<hD~b#9QWvx- at uB%-WaQ46Rz1dqAkz)eAn^aT|u2G3o=0I{`}BL
zGmR+GO|b!e21F;LC5<rLNK_=-1z2RC6t={h`9>t8I*xA&yDgj99#tVZT)Z|8P>7y>
z-fJ%PGfV}XRJ7{!mkqmmG=~o;td<61d2My9KOn=~T}J1(5Y&90X9zabU!Kh44aZoz
zzR?IzDRCYtq*!Qxu{@^{Ni0LRJ!Q)yYhbti&YfI7IefT->T{)cLbl=CE%1*6%fvv?
zl7HV?hqKxG?6BqlbS?7o-uhXR8J)z%>6X{Sx=a&mUktyLLez8O1)C6{$=QOG-GZw%
zUHQv1Gk&0V{RD6Tp*#PZB=VGyp=C!=p~=}Rdyc#q%=DK1MRZ;8rng|%=)Kpj0PEN0
zQ*W(^Et at HZ5M!UJ8pz)|qOr$3swo<2!4d)ILna;*f|$OcaQ^@YKBcGNVc2vix^&^b
z1!61^;ykfkqX)yQO+BFGv|w}-ufJdZod6pD1hheP1EJwPR|}>&YID9n*i&ep_09Ij
zdf+HD>wJaD at 9Bj%ePq@;3Mne95lr6Q0q;?D6a;Fug4F<Xnek=So+QJIScsDX%6-t5
z1Y>IOkOID7#8U4dN^t3U+0-l;!tPDD;G`L2$&SB3!yZiFulw~;P(ZH2Spf#PY6?s<
z0JxZtL)Ma4f#%85D!#3k>-DqBQ2wCD%yYnsnCdp5Vs=N1GjXmpzP+O|>yU^P%7#!A
zGc^Hbw6lIFka)HIDiOIX8y+n6?yTUz at Wz&t5(9t^{7UU+6Kw+ba9<RR<Yxp&b8FfX
z89+#WUwT$mm5&ug0TNy5Y at qzOq#1;VC9AM1tq4Ew#mk@?eipelj%u>4{;>hmoIiz)
zch?`(D$lbq%qFcRVL(7iI7vYVfjk0 at mc)Ss)7z-)Fgp0(Vsz-i2_>kng>=DEfCp%`
z0_%>j6yv<RIKgdSuDpi_J`(WeRS76aibNgoFhxq?%F$9ko$VX2bX9w!0bmuu{=mC-
zkvBD6;GBJbHj*tjbK*g)5GI5QaV}}KKdHZz7){$Qxo|ZkTF+_<%FL>iC;v7uNM33n
z({ivXbJ20h$3(;6kVyAkpE#Ve95(FTE=eg;laLh8A97d>mni%AOE)2z*Eth;_55ix
z{;k3U0eM0`K*+=cv<YeZ-0P4OT}#MSD}$AV0AI^o5#S#g3bTBGg&sJVOvr~ea^TGY
z at c@Z~*=x-9<27oBfOA$O80bK<1@{18V<+0(=p|V2lO#2jkV)xPy$WLB6g5S{$DaNz
zM$H5k&4D`_7B1qOUu4?IA2X03EaWUX<nNm at OX=4M`lE28OF_^>wr^&NQ7*rG8A0MQ
ziAZ|7^1JG#xcBPBIdU$CzUJtup=6#`i9NLBN{vMnA=b8lADbRuu8%P&t3;s<NQULT
z1c)oZ{7LIHO$dvQ6eG00PEFn;j$xfPvz{^6ntP7ha9XZ#8#|fH2wag*<WVhKrY>Nd
z#K|JC=BXt3Vk!LlQIYQgxz!q$x>(J3`YF2L{~!nPX~%^@h=%MGsMu2<0lkq~qgrxQ
z=D^BGtlinuA7w3wt**ryWG*5>i=-47pf4bx%?<n<#u`mbQ<nxPeq0fIdUpFiSr{5&
zw9+7($<f=0;n#JUDRUOIHN7#$z_*|c5*vsQ|BYZ4*)ZU!9Xm7p?=fk8o1{&Wg8iTI
zn8?|kb_IX+MZZx6LKsz1B;Bj06q?)gtPFLXPv}ku5nys+0rsBRO6z)sYR4cQB^wFT
zuDfEah*pA35hhq63)+3^V6XK}9cC?U>~c0R(nnF23!Etwb6ht8S#ys|?lbby3ux|*
z93eo2axTU!eV`60pjEj*=Ok(q`r)Ya0<^5JB)%1&vA}h{`jIO_QMj{#LKoV*tcr!a
z4|a~V-u~gzcan9TV|C*e<gN5TJgt1`bt+_zIu5<ivzfH$9laijN}Z8>9Qb!Lf+`zO
zrY~L<%g>)KBY-(*Lkf0KzA*S3SS=yb at GYTlFnAu~P_zrnUswA5KCCF(^pwA0djx+1
zksLgMJDwgs7k4=hg^PTivIylvqxuey<gQxIE)e?GA87a*O7!Hz!=Ru_8ktzmhv-bs
zj<<E3fzDTedlNO)v~!?AbN=*RN@$z$f&JRbxA2q9oMHmD at f-nk&k-NRrcIxhzk)2p
zgAcF9<P@#m=Px}Z6es=QcoocQ#1is5n)s at GSKTt&mx%kXYL|lUPj0BB7fWPcwY<4H
z-p(ktdC4%VBmyd(|34h97TxGjiCxS6$}LF?&v+OH{Cog3d$WDV`lLw`2mvq+=m&O1
zwL;l<eDhmxzR%*O$(AvY8b2EMj+0H_{eED;dbQN~G3mkDe!L>sjgBd;lllTb!Nr0i
za)nhw?$&$*-Unl2<%#$()dtLLBZQ3pX(|J~B9k&<NmG8L;4R<>c$*C^3AvRlwFp|E
ze)Jz2+YT#Z_w_M}k(XC7T!lUb-<7nDy6AP!3Ian|)(hG1CwJ{!(Q!o^>wcgWdW^_W
zTpZST&6OyQPSiFoq)c?1-S~8dyNUueY`g+D!qIvlv8Wx8Sf<*+8MDXm?D7kP^i=GT
z=PAQ<izR`|-j+^Uusb}^c)6P#4I;;u!EJ6jqQs2g4arWFrX3KB%Q<xdZG8 at jJPQi0
zUHo};ll{h18FjU~TX(@@a)0#Xj#c#0IFq+vz at 3rXoCx6PE&WW^%K~nmrUR5M%9JQ~
z`1ioEku>#*tZ1^rH~AAEf=qKA_o5`=eIZS at s*fApD54=J6M;U=8X|{*{m79eN?1_*
zMqJ+NZX<jQ=I8IXRXAh<_eOf}uyx$>_$9_BYe)Dmw(|ZP84n%W`mm)^is(jFe at Ysj
zuPi2UWrVOX5+Yc$U=TwdzR60K$rdqY3BD~>d}0(u^OVU8gO+@%{spwdCl>bY_%&J|
ztd6oho={KZ@}!L%ldJ2&&)G#_WPfU|E|&+U6`&IdRotD^(6PsppBX~f+LCaWQzS$Y
zF at OOpE98d$JPri!x>w3$MmC}|ZvoiY7_&+H&D2TsQo)AG at mSb@nz~f+ at b>&lmoMky
z(5kFW2BqgGp3{2!dK%%I1=BZq`hQjiB(PyKP~1L0`QUZ}u_e{3?}6?!!MDVj6G?=@
z`TmJo5h?}_f7(=Y;QvG;%z3FsgK at mVBbxw;+B;;F7uos=(IN~NQG7-pKt=4V+8cnx
zhdt%O(8#k>0+>sH*a at lQ>9L6oZY+NpVcBvWS$dx{KxdN?1Eng!^&H%BI1(lXDL`cT
zAY9MLf+4H7>wK3z?wOv!^1P-8dZeFW at 6l{kc at 1}mKJvQ#Tz>jI*a;U?LPm{+(4=Bc
z&?qo7VawSop0g_{)Pt6^KuAb-mMRU6D2m#&iRHEdrok2TSyESSsfhX`^@}S?c+FEW
zWu=yI%W;i6u>`wnKh!Ib7TPwC3vKX*@DIQb+v3m$D;GJF29&sBOn*YqckQ at nNBMaq
z*cM at kY@jCyijpkn<W`J?B;Al=Mu7-eaA*;^tw`y at GwLXSLDmh7=uVg`qCz00Ib;w+
z^4M*<cj(|p=nwT_g8MgcPKVjpXdD1mHNMeEaIzn^TK at V04%J})D>2V9GRiN)JSyG$
z&%o44o`GWlv0;&nESFG$qWLg8XJ<65<65n1eP&?Amy!ZOnR{QnsSZ^jXbw at kJ_PTS
zG#Lv)Gwr#NaUIA!;3lrpqa1eCm8<EeQVEk?+0QNA^3GyY_B}JWztQy}<TiiOk+ml!
z$w}bhSuf}sGD|c4(0~uuS>ZwA)>&GM_tTHh_3MirSn6E~^DHjZ?Zd!?IIFoBGV~a^
za>f$B!^t&6!17-QkK;4NI8QT(1;Zbf7dwR__r at CvYqlLlz46WkmI*6i5+WIBGH#RH
zUNLe9xjZ)jG4iQl?Ou9|<YF at 7-ERRVlEJ}e7ECYuE;g{Xgl2Z?DANjrLSnkSP#3z)
zm5B~mq-5;vwF3nn&`;?3g*tGz%}@W?{1UQe0~CD1*w?;)<nN%uDZrpPrgDb=U>rUl
zXCk{85&-H4V!i9EpcEqey2pv|@5{_FjfBhWlstsOC1V68=u!}1CR5}-T}oA*(kC9Z
ziw50g&z43`hzhZ2^o`48NoqZ<EIC3Tlm at gWAsQ3KzXjL7)2fV3#U}7-2ypDo&Ziiz
z%mu&VcXew5aya0?sYwjar9YM&_DjsuV92gaCZedRt$++UteymfubgAalN7yR_C7gS
zHNTjWK#9NEAmFhXAn+a!2}~KRFVGn?4g>SN<nkauG6dF?E~KmbWj&~<+JuNTw?|4L
z)J5W at l%s$*^N7O<&1UrmgWO)0R}9X^%)PGZZ;dsa2|d8RE6XG)FfsG{oe4o6LmwGo
z99$tH6H<&&q>*s2?mUd*Oh`}I-Mk}J?xheMV*o;nn8O&59Z;!Jgj_O&7!cVzurCs{
zRU|;QVwXCq()Q*3wQPfW#EnW3#1!Zhe}jFIh@<dM_jkjC{U$S3qQ^mI*^8 at 5odq(0
z;GxMPvM<KcTCbQ!m1=}g>utKO0q%6XSicA%+Dez@&{dJspEgcF%(GWxJ)Cx?2vbt>
zPks{tii@<X)7&8Oje^dMl;y5TK#bD}58jz$KS~47HFiIXaxc`d0?-8T-_{Hl12a|@
zR#ho5?pbT9>3tMyjx2}giUfg#m?d2Ny at P@vL5E`_$jfTZjoGoPFGh!NlDG6fEP~>7
zI5$9yEqe`0eSsXAm1KK#m;y}m)5iWnAHJaY38cI;r;m6UL5d7WszW3-7f=IMgr1 at I
zR{*CDjwcTc^N++P<Tsso91UK1b-L>D)u at Wlp^BYo at Cjp14Km3lDZYExSOfj*^*LQ$
zI<IjCuIPFkN&H_?iCpeLfz1d|{8exw9<d&2Y7qp)`cT6>uWaVl?8u*YArMGS+oULf
zi>5}2K9n*iq)nA&b at gpa7BvAm@KM2SZLvRJ#QTaPa?M0&SN-9rk=Srwljw0!pYXAv
zu6I^2dIRlWJ=l<zHx-UA?x9D=f1$OJFB=O8d0)c<m}!y^r2H|t*cdQ?H1<S4Dyr9O
z=^8M%U7c+R2R-sYk7I?gl30`W)d*WnJ<|z^dtj{3$0g`(YG6p{`Tjw+om4SG)W-Bt
z<bVi`ye``>*yoew^G3D_Q4Zp{QXL`PkHQFq3V{hlOFJ~u`@&G0Q!IL-%bXNMie|JR
zreGA(O*&2mU-4 at _QII4=`i;Utu!gSkBF&Wm?5VPGWm6R}vR5E_$X9R;=;QiSW6;-?
z!u;O{x(a?;x^~nbjSrO^DefnI;Hc_&EGHmcg!XXzAbBz0qR<9Ho+=pgpIjV664M9G
zobpc~9W((iRBPT)UH{rJESF>G89mf5$#F at seB)i?Icw6|N^Y~LbH5uXWtX~(AaQ#V
zMu at CP(P7#h%fEPI7vR)@MQP_q>xk9N&QQGsX1L>)2mj4|jK~=*3*=qk^<cM5gu}hw
zd5?V}Mx<d5Xf*G`zd=Kq5dHos&b#T{C!J!stqIevNR}akHoQ2*0jD01k_nb)AhD0J
zZLp`l3t*9=5-esl)ucd$n*}}un8e^kqmdL0Xl4E&L|P>i6YdEpwgsC4S2z7F2)CF4
zQF}dl#CvAMiI;^kw3t*1wroCR=L(7wzDq-Xk#06|(Q9m*=1Mxw2DaeEQ0~Y at QqE)e
zS|pdJ0AZ7kMDpJhT^nw4VDLO)A`%?!oTi|%$_)5{)y$w*aw^e9>vsAHqi2rA45y>%
z?D=*o>2@&0%J at V^baMk>Py$9<4mAnsffMr}PRCi80EsoL)52O}T-2=F1>WTluchM!
zHk_>(5Swt)Z>02Q&RB_RyCK*$kgUo$*-pC&I_p1ElS(j2j3E*bjh3q;<wua$APnzd
zIv12$wT2o{8a6YS4eVmNwWUTh63t&-)Kz*S$3O?j+k#?Coq<D1cA#1LHCD}Rl5=Kg
z75S}$5Y$74hR}rhbJg}-XJxP<EJL3oG#t{>n4!jYdm;_xZkdy*V9qCU4=zA^l3Atj
zWP!^ZU$HUV45gjXPEg7y1>$n3w8ySXCOpwKdW0ZA$T~E@#(#r(fsLhY6*iK)WUsHj
zO7GMoqMdlFQAq%)lvhCnNEmP<2}XiSSZXr>-tU0iAc4MAT>-J51C!{xPejE!1D@<u
zhadVE8!7_^<<VTN?^*0t3xGO;K~=4q2Iq~5rR}g9e?P+j5lXzrGmn2LJuNUH&E)_N
zLVQ0>;?2cjxG=700FTaS78SS9j%45r#;gF^5y}BYH4*@3yq$o%r33-ChYt*n0vyMG
zvrq(o<5ZL{{L!92jaoh#9shEZo3Khh?XA-H*tc~mSD>Q00HeKEE+$jW{ynEKwGkR9
z@^6d8=y7NrNNK4<fvn~vhOQtodvI{URwiq%gm`L@&*1-L?1||;fEzNtkehV5Eg)Vk
z6$S}-K`ESsfF%K=WGS};3&Bd`INLde>dy2tWhk~yVqc~pnVq`F^_L72uWQR8C5%LI
zQ%~=w>YDSQ8zd(Xl+js5z_e4awi2#r$M8bJhGKr0 at R{2**<*2wa~k&xv<<;mN&ShO
zGJY!BaeI2U?6jsNYJ8IKC6ons7GvBkEdU>OF7;?3U3z`1TBYbw;<`(tOwW+pnS%#3
z$LopEiR*w$WG|MOThxV}i1?_46&Mj47c?jO7wHpzP)}vvtjhcm>^T*E)jR?Nw_VJH
z(hyf&8z9CwR@|p!%gwhWkz_rR+lGfiIR&)phPlmsr)V9-;umGc1K39zvfxO6QPga>
z03Ql7m=%%3;@<I?;W5SovX8HDlxR8ZXU7eW{qz5O=K<*~tbAw4)F<jr;mG*6j-IG}
z at 711?s-Jw|J~e);0zV6F$s=7fj=|oiJn5LcYp(IY$rS&crK~mT3f-ajIAnJjm@!~r
zvNUcm?3Z#jmBehUPEB^%r|$L;VLt-~2D3l<oXK()%~E}}s~JsvG~u<>M=}+>oZW-B
zW7r*f;Gfacn-<D#<{d9>uIX+FxaKgJYJm)wDDM0%H3FZy!IXV46_!}K!3z{KRynX7
z8P%iL`n8lvs8|?0kI3bLIi5 at d3CX5dMj1=lZAr8atH3Uzgp*A5YVnA&WveVSRe_F+
zKBu`{E5o8(9}y_j1tTEv;<7PG?zVX5+Z(9%hbbM9cR2Hb$s=HtEJcW;j<_D)6#)T4
zfLP?iNe$dH2-HJ54VYa+XpAcx*kQoQk&Hta#taSgFbG+$IOgd9G;INp!w?1yi{LHr
zree(s>|1cNk#QoT3b0gxLt>7_Op7=c?kkK}z^tKJ1Sk at OBX~}zmN6va5X4*wLlPuN
zkuU^j6Kp&n`oj>0_zgrEfIsl#!&C=h4RRVNF#upN!a<IMJcbhw at HG%<u;T&FgFOdt
z4e}dAA!tdEjbUg)LIgVr9uT-Kutva{VGaVC3OEpS7E~*6Q=qY+kRX5{{K3`&F$0AM
zY!7rEI5coj!1n=z0%!>!I6#*J at CSei3=Y&51QrYwFdP^^pke?7K(&F~03raL06GD^
z0j>h)0YU*A0Sy3v0AB$=0M-E40cZgm0e1s-0cir_03iWv0W=2e1~>&C2C!rRp>L5(
zTWCN~w3r0IMuFNZvJHR=ARK^l`#1D{G5?pwKS_MA^54V%0DKehr}RFC`2XTB_<sB5
zf0g^s**z at wJIKCS<c|paIr2Z!zg&FZ^Rvv4G5Dj>?==0w^)u1m5PYii at 6f)6_5Ydu
zv+NIZ_(Rt}Q++LT5!n8!J4x!>sE&v_3*cXat{Zq5;17w;B6$epw}$Rg`0nFJg5D-L
zYvw<P?hg2k;Jce{8#u+_%X1rq>@(goc5TeJjM($AJAZxZHZN}RzBc<i=I(j3_WGND
zY}aI)!r5;Ao8#<+-wSHK*6o|xy66e3)_}cPb?neVqF+JQnq4y5xN at Ck7|Fkp<05`j
zyqXy?a;0Sx%D<bxDn4sWggI5Rn$ESGt235&i9l3302K<BJuwV1Fx>P0=_>ZI6WVGU
zO#Nk-YqZTa3{!84P0K~GsI#32<+_AsXU43wILwZS(8n%S9)lP!Dg$$e2$$9$E?^Nj
zql4do#<itb;pZITQ?vU-Hk7{2#(q!JP)EC%!4yy*HfY2j*hQJDEnP205i$CT8yKnr
z&R|?b4Ju$VT#pVUE04I)G3kZCHzxHgK^rMf835sQD#SEl1wh{DcFD;!kJ+Tp0CB~x
zxe%Q`fRK~jADo1}$>+a8qEP(bD2)DpP|$dp<`TZ#bY6^~7Xv_Lle)77^OsVhMOm(@
z??8O8kA%}ZWpR&2v!7qFSw at TF6d*=9YT^Rtk(n8p=CQWvt1Om=n&5uP;Gi<FE_H<?
z&C$A?6ps6+s_UO{EDkXn{D_Ak1~u9YFheG%s=1s51P_}~9O%ke-#DHVJ4L~%?k>T6
zMRvbm39kbp*KB`qoVg12w52Z)T}`X41P>D|q_%K#zuhwb+BpEogY0E)KnSy#@+(m5
z20 at LG@LUEvk`I|OIUV^^0_YtG9AElBS!Dsh%k^P9r0moJ25Lkm-gh#ig<tV7v`Iy3
zd3t5#XoACmt8255R4kxa9X7c*Yyxs%&d;f^>wBDhAOj0!EF&8MxV^-m1U1MEd?H7}
zL;r;tfFIT|ei3-Z at gyM=!%Ba7Pa626JRAA`V<2D<{RLRT at 0o=bE)XF)nFtUL67`2L
z{?_Q<qIOyU1qoDWGBN{TMf}`X{{rBu(@o7pf>z_`Yy2t+I)?9&z#z__Q%L3pnhN}U
z_rN#WU)kD59D4whbSYERHY01jM7id50EuI1ctl?<_IT=Y5vP>(sNN<OW;PZ?!Nq6@
zvOa;RF_j-T8_?!VN7D)6C$HRYyy%MdoXQ-5GPHrjR&KE1*3wu?hPm|833)bez2l at 5
zn#k&Ja#2PDT%IYU%XmZ^tc(1NraoDT$|lx-%3O7|2<xN|g9l}S at f4Tj#-G&n0xR at J
zDFPWb0VoDdx}Z}=_2FI}9?T-}I$M|lYDEp7004}1PGewDY0zW|0bPTcX4 at j<r)zOB
zGhQRFDe>kB&U5&F&^kBhm5y{o!y!F+4wdxXoy;!4$W`?_nL(+bK_QDAMUV1O0AwZ|
z6j)s}9YEZbY-C^Y)9Ej`aS&~{sXCG2SS3ce$EY;Yv-c8TlrD$C85ATlLZpGP_YWfi
z`RQ?z1 at zIfa{yqfsUDMEPpwuX%XHdO+ASb3EPi1fBPocvfgsC0xa^CG2SWBPWQ&GS
zpCXPti8b>WkYbf#Vg%A?&_UwUsUQE_t4GX?7QqUpKJ2Iw#%)Q4Ft(`9Ja&Yk{C at 38
z@%T`)#wWy(kKfEH;ZBQ(m*Iq&L=<)4D7tNO{SsA4Fp4D?(Ex6nQS&f3TK|atgj`fE
z2|OX0(&(ZqxJd~IANX&dvX?U14_<~h2(lP6k^H8ep;2HW6<hT1imONo5oB|bMG at a`
z#Lgj^XVeQ4Za~Fx&wUn%^o(Y8F)`=C6v*v@(L?R;IJbtvVC>oPo?U%v{M>|{sU~;p
zLTv$OTx3H^4zNUn4wUfo>j{CEvTC at C+cw+cW*ABH6u@!M2EdBL?1GbL_#e;7YDBas
zic?MTazk(khXSyPeDom_I~wkLv?Wr8<%egEfM!*M9^kl$><s)t${rCVYPkMa4qe||
zaAZ;PGdOrl))@{&=KbYE^I_b&+v)sO*eakJEuTMFdpO<K3}0qTT$6pt=)oXQa7<`0
z3_qg{T_Koqnwja~buX?Qflt$5%BYN=^^C-mWBQo9UT&W#8;ZEqwbH1S6!8FNcIqK8
z*i?p1+RXp~v^+u8&?5jcT%(1Pg;y;gHk;}^NHf1<u9G+;RphtcS7_pek#oQ}0{{Zx
z7Ygy8>zsVzaP}S!gc<n-P#@Z2g|MGNh9)SgEqV&*jY&(jl)!io3?{XUWCF*zqR2#M
zwNJvP10mPwk#w|Zh_;<u1R_v-Ya<4zuI%S1-um1;5?J%v2Mb`Sk%ysYQ##5zjE<cO
z4dKs})hcFTZWs<zYmk&M?a<jUHD0x({2o#<c3HuZ=)?HCV}Zf6XA!arG9FXtQMn9g
zfCyh&yo=7IX5U at AwDJzSHiJa1%@u$hYyrYm at H_y6L2%G_&t4iufUzFVBYlxQD}Ykc
z!mp1gBy5IHfURLXDAgNIT6p!=47JD&W at rkWvM{Q-MRMxwAR2}N0xit7%lU$V%7a}Y
zwFM;t1gG5()^>D3;Czy#58RTm?`p)RTS8I<-sC3+*n{A)P*rU!@Npj`e{x9xsif2v
zTW`{q3p<R6f~aRR%^dc#!D3~xyW!cgN6^V&b~8CFKvj at q-ali}5n-{gT&CV4p2=D}
z9g^m_X6KZ*%p=CslDP})s;)w%aJMb8L^m*`a$#Z?Ki1>^?A!Mk60Q{(FLt(&TVe9z
z0-!PiOV02JcNeq?AbJaI+B9xC;LB=}Ho0vH(@;Qe0zq~-8ckOa!(u at Wou`p_TR|QT
z38H`lJE$G{q1egUX@&v$x7wNLWD#j*!D58GLv^bT+jpdKBrK#SsQsWK(+RO40VA^w
z0nA7MN1Y1Fc#5JkwD5TtHG1t;lo=i)U+kFG?1Jh11h9382!marrRE2eZh;JGh`wNO
zQA_~n?%97HOKLA^#oG(5*bgSllS%rOc(S%Yj00cYR;!D9G_90{pfq7D4I*$k?byOV
zR|epi%oIJ{ou`5zS!-_dnxOa{uNv)(luMo^5TCOItq}2}sxCztLEzBGS)Mf6dzaw<
z!GweAgvFYJu&mH(Vl9HJBV%=Jz~~i%nDGIF9ncTET-AQ=fv{L11&K_<cvtPj0KcSJ
zqHGrQcbxIF-!%7A9gu^H_1}qa$)EsV25=Zlwv;ml`17G-=5A8~V at Cyp78UF`SCFAx
z5v?-bmG+t539aexV#>;ei!iht(!De;ym|y7ksL|^5Ko~B-vSh80++s?unD}bZaYa@
zPH4M$&fw;xEGN3_H1vHW><%-+dg7dfW)F8$bB+h7sThoOtteO(v{&-+iK}r$%G))#
z*Nhx^!ZMj1VeG?EkWg+0CYQSX1t96fV9^3c+9C393LU&CHsFCa1q99$`zTMsEWwLc
zxsw1|A?k8-m8HCrk6;K7dhNDJN3R9iws%6vTq_}PtR2CZ8TG;ltZ4<jHrnMp8#XOc
zmJK*YX~mYy4EVnTS1tvpiqxTi4NA<Nfuts_IIP*;p$5w0Y{80vN-srDhr7*1GK?Wm
zpc7{Vxs4*qJPbv)k!=J@$XqyN2<nGsklwVJyGU<ZOx>I}sU+^s8`P3F5QxrypG1-{
zGlr^7$Wsy(lo=xfC~BpKfg<2z4OEeEF@~x{Pi7O#CvqMJy+f+}=CB_$&IuEslB at s#
J000000038FvZ??8

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/fonts/fontawesome-webfont.svg b/ui/new-ui-samples/fonts/fontawesome-webfont.svg
new file mode 100644
index 0000000..1ee89d4
--- /dev/null
+++ b/ui/new-ui-samples/fonts/fontawesome-webfont.svg
@@ -0,0 +1,565 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
+<metadata></metadata>
+<defs>
+<font id="fontawesomeregular" horiz-adv-x="1536" >
+<font-face units-per-em="1792" ascent="1536" descent="-256" />
+<missing-glyph horiz-adv-x="448" />
+<glyph unicode=" "  horiz-adv-x="448" />
+<glyph unicode="&#x09;" horiz-adv-x="448" />
+<glyph unicode="&#xa0;" horiz-adv-x="448" />
+<glyph unicode="&#xa8;" horiz-adv-x="1792" />
+<glyph unicode="&#xa9;" horiz-adv-x="1792" />
+<glyph unicode="&#xae;" horiz-adv-x="1792" />
+<glyph unicode="&#xb4;" horiz-adv-x="1792" />
+<glyph unicode="&#xc6;" horiz-adv-x="1792" />
+<glyph unicode="&#xd8;" horiz-adv-x="1792" />
+<glyph unicode="&#x2000;" horiz-adv-x="768" />
+<glyph unicode="&#x2001;" horiz-adv-x="1537" />
+<glyph unicode="&#x2002;" horiz-adv-x="768" />
+<glyph unicode="&#x2003;" horiz-adv-x="1537" />
+<glyph unicode="&#x2004;" horiz-adv-x="512" />
+<glyph unicode="&#x2005;" horiz-adv-x="384" />
+<glyph unicode="&#x2006;" horiz-adv-x="256" />
+<glyph unicode="&#x2007;" horiz-adv-x="256" />
+<glyph unicode="&#x2008;" horiz-adv-x="192" />
+<glyph unicode="&#x2009;" horiz-adv-x="307" />
+<glyph unicode="&#x200a;" horiz-adv-x="85" />
+<glyph unicode="&#x202f;" horiz-adv-x="307" />
+<glyph unicode="&#x205f;" horiz-adv-x="384" />
+<glyph unicode="&#x2122;" horiz-adv-x="1792" />
+<glyph unicode="&#x221e;" horiz-adv-x="1792" />
+<glyph unicode="&#x2260;" horiz-adv-x="1792" />
+<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
+<glyph unicode="&#xf000;" horiz-adv-x="1792" d="M1699 1350q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5z" />
+<glyph unicode="&#xf001;" d="M1536 1312v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89 t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf002;" horiz-adv-x="1664" d="M1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5 t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
+<glyph unicode="&#xf003;" horiz-adv-x="1792" d="M1664 32v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1664 1083v11v13.5t-0.5 13 t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317q54 43 100.5 115.5t46.5 131.5z M1792 1120v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf004;" horiz-adv-x="1792" d="M896 -128q-26 0 -44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600 q-18 -18 -44 -18z" />
+<glyph unicode="&#xf005;" horiz-adv-x="1664" d="M1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455 l502 -73q56 -9 56 -46z" />
+<glyph unicode="&#xf006;" horiz-adv-x="1664" d="M1137 532l306 297l-422 62l-189 382l-189 -382l-422 -62l306 -297l-73 -421l378 199l377 -199zM1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500 l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46z" />
+<glyph unicode="&#xf007;" horiz-adv-x="1408" d="M1408 131q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81 t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
+<glyph unicode="&#xf008;" horiz-adv-x="1920" d="M384 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 320v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 704v128q0 26 -19 45t-45 19h-128 q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 -64v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM384 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45 t45 -19h128q26 0 45 19t19 45zM1792 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 704v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1792 320v128 q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 704v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19 t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1920 1248v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf009;" horiz-adv-x="1664" d="M768 512v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM768 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 512v-384q0 -52 -38 -90t-90 -38 h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf00a;" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 288v-192q0 -40 -28 -68t-68 -28h-320 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf00b;" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-960 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h960q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf00c;" horiz-adv-x="1792" d="M1671 970q0 -40 -28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68z" />
+<glyph unicode="&#xf00d;" horiz-adv-x="1408" d="M1298 214q0 -40 -28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68t28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68 t-28 -68l-294 -294l294 -294q28 -28 28 -68z" />
+<glyph unicode="&#xf00e;" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224 q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5 t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
+<glyph unicode="&#xf010;" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5z M1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z " />
+<glyph unicode="&#xf011;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5 t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343zM896 1408v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90v640q0 52 38 90t90 38t90 -38t38 -90z" />
+<glyph unicode="&#xf012;" horiz-adv-x="1792" d="M256 96v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 224v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 480v-576q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1408 864v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1376v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1472q0 14 9 23t23 9h192q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf013;" d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1536 749v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108q-44 -23 -91 -38 q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5t-8 23.5v222q0 12 8 23t19 13 l186 28q14 46 39 92q-40 57 -107 138q-10 12 -10 24q0 10 9 23q26 36 98.5 107.5t94.5 71.5q13 0 26 -10l138 -107q44 23 91 38q16 136 29 186q7 28 36 28h222q14 0 24.5 -8.5t11.5 -21.5l28 -184q49 -16 90 -37l142 107q9 9 24 9q13 0 25 -10q129 -119 165 -170q7 -8 7 -22 q0 -12 -8 -23q-15 -21 -51 -66.5t-54 -70.5q26 -50 41 -98l183 -28q13 -2 21 -12.5t8 -23.5z" />
+<glyph unicode="&#xf014;" horiz-adv-x="1408" d="M512 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM768 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1024 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1152 76v948h-896v-948q0 -22 7 -40.5t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832 q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf015;" horiz-adv-x="1664" d="M1408 544v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6zM1631 613l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5t11 21.5 l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5z" />
+<glyph unicode="&#xf016;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z " />
+<glyph unicode="&#xf017;" d="M896 992v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf018;" horiz-adv-x="1920" d="M1111 540v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20zM1870 73q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256 q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t26 -33l417 -1044q26 -62 26 -116z" />
+<glyph unicode="&#xf019;" horiz-adv-x="1664" d="M1280 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 416v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h465l135 -136 q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68zM1339 985q17 -41 -14 -70l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q42 0 59 -39z" />
+<glyph unicode="&#xf01a;" d="M1120 608q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273 t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf01b;" d="M1118 660q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198 t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf01c;" d="M1023 576h316q-1 3 -2.5 8t-2.5 8l-212 496h-708l-212 -496q-1 -2 -2.5 -8t-2.5 -8h316l95 -192h320zM1536 546v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552 q25 -61 25 -123z" />
+<glyph unicode="&#xf01d;" d="M1184 640q0 -37 -32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf01e;" d="M1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q14 0 25 -9 l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59z" />
+<glyph unicode="&#xf021;" d="M1511 480q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129q-19 -19 -45 -19t-45 19t-19 45v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117 q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5zM1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 22.5v7q65 268 270 434.5t480 166.5 q146 0 284 -55.5t245 -156.5l130 129q19 19 45 19t45 -19t19 -45z" />
+<glyph unicode="&#xf022;" horiz-adv-x="1792" d="M384 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M384 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1536 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5z M1536 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5zM1536 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5 t9.5 -22.5zM1664 160v832q0 13 -9.5 22.5t-22.5 9.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 1248v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47 t47 -113z" />
+<glyph unicode="&#xf023;" horiz-adv-x="1152" d="M320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192zM1152 672v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf024;" horiz-adv-x="1792" d="M320 1280q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48 t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf025;" horiz-adv-x="1664" d="M1664 650q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78 t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32q-88 0 -156.5 53.5t-90.5 136.5l-185 33l-20 49q-60 148 -60 314q0 151 67 291t179 242.5 t266 163.5t320 61t320 -61t266 -163.5t179 -242.5t67 -291z" />
+<glyph unicode="&#xf026;" horiz-adv-x="768" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45z" />
+<glyph unicode="&#xf027;" horiz-adv-x="1152" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142z" />
+<glyph unicode="&#xf028;" horiz-adv-x="1664" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142zM1408 640q0 -153 -85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45q0 39 39 59q56 29 76 44q74 54 115.5 135.5t41.5 173.5t-41.5 173.5 t-115.5 135.5q-20 15 -76 44q-39 20 -39 59q0 26 19 45t45 19q13 0 26 -5q140 -59 225 -188.5t85 -282.5zM1664 640q0 -230 -127 -422.5t-338 -283.5q-13 -5 -26 -5q-26 0 -45 19t-19 45q0 36 39 59q7 4 22.5 10.5t22.5 10.5q46 25 82 51q123 91 192 227t69 289t-69 289 t-192 227q-36 26 -82 51q-7 4 -22.5 10.5t-22.5 10.5q-39 23 -39 59q0 26 19 45t45 19q13 0 26 -5q211 -91 338 -283.5t127 -422.5z" />
+<glyph unicode="&#xf029;" horiz-adv-x="1408" d="M384 384v-128h-128v128h128zM384 1152v-128h-128v128h128zM1152 1152v-128h-128v128h128zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM896 896h384v384h-384v-384zM640 640v-640h-640v640h640zM1152 128v-128h-128v128h128zM1408 128v-128h-128v128h128z M1408 640v-384h-384v128h-128v-384h-128v640h384v-128h128v128h128zM640 1408v-640h-640v640h640zM1408 1408v-640h-640v640h640z" />
+<glyph unicode="&#xf02a;" horiz-adv-x="1792" d="M63 0h-63v1408h63v-1408zM126 1h-32v1407h32v-1407zM220 1h-31v1407h31v-1407zM377 1h-31v1407h31v-1407zM534 1h-62v1407h62v-1407zM660 1h-31v1407h31v-1407zM723 1h-31v1407h31v-1407zM786 1h-31v1407h31v-1407zM943 1h-63v1407h63v-1407zM1100 1h-63v1407h63v-1407z M1226 1h-63v1407h63v-1407zM1352 1h-63v1407h63v-1407zM1446 1h-63v1407h63v-1407zM1635 1h-94v1407h94v-1407zM1698 1h-32v1407h32v-1407zM1792 0h-63v1408h63v-1408z" />
+<glyph unicode="&#xf02b;" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91z" />
+<glyph unicode="&#xf02c;" horiz-adv-x="1920" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91zM1899 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5h224q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91z" />
+<glyph unicode="&#xf02d;" horiz-adv-x="1664" d="M1639 1058q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23 q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 9h761q74 0 114 -56t18 -130l-274 -906 q-36 -119 -71.5 -153.5t-128.5 -34.5h-869q-27 0 -38 -15q-11 -16 -1 -43q24 -70 144 -70h923q29 0 56 15.5t35 41.5l300 987q7 22 5 57q38 -15 59 -43zM575 1056q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5 t-16.5 -22.5zM492 800q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5z" />
+<glyph unicode="&#xf02e;" horiz-adv-x="1280" d="M1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
+<glyph unicode="&#xf02f;" horiz-adv-x="1664" d="M384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1536 576q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 576v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68 v160h-224q-13 0 -22.5 9.5t-9.5 22.5v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5z" />
+<glyph unicode="&#xf030;" horiz-adv-x="1920" d="M960 864q119 0 203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5t84.5 203.5t203.5 84.5zM1664 1280q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181v896q0 106 75 181t181 75h224l51 136 q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224zM960 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+<glyph unicode="&#xf031;" horiz-adv-x="1664" d="M725 977l-170 -450q33 0 136.5 -2t160.5 -2q19 0 57 2q-87 253 -184 452zM0 -128l2 79q23 7 56 12.5t57 10.5t49.5 14.5t44.5 29t31 50.5l237 616l280 724h75h53q8 -14 11 -21l205 -480q33 -78 106 -257.5t114 -274.5q15 -34 58 -144.5t72 -168.5q20 -45 35 -57 q19 -15 88 -29.5t84 -20.5q6 -38 6 -57q0 -4 -0.5 -13t-0.5 -13q-63 0 -190 8t-191 8q-76 0 -215 -7t-178 -8q0 43 4 78l131 28q1 0 12.5 2.5t15.5 3.5t14.5 4.5t15 6.5t11 8t9 11t2.5 14q0 16 -31 96.5t-72 177.5t-42 100l-450 2q-26 -58 -76.5 -195.5t-50.5 -162.5 q0 -22 14 -37.5t43.5 -24.5t48.5 -13.5t57 -8.5t41 -4q1 -19 1 -58q0 -9 -2 -27q-58 0 -174.5 10t-174.5 10q-8 0 -26.5 -4t-21.5 -4q-80 -14 -188 -14z" />
+<glyph unicode="&#xf032;" horiz-adv-x="1408" d="M555 15q74 -32 140 -32q376 0 376 335q0 114 -41 180q-27 44 -61.5 74t-67.5 46.5t-80.5 25t-84 10.5t-94.5 2q-73 0 -101 -10q0 -53 -0.5 -159t-0.5 -158q0 -8 -1 -67.5t-0.5 -96.5t4.5 -83.5t12 -66.5zM541 761q42 -7 109 -7q82 0 143 13t110 44.5t74.5 89.5t25.5 142 q0 70 -29 122.5t-79 82t-108 43.5t-124 14q-50 0 -130 -13q0 -50 4 -151t4 -152q0 -27 -0.5 -80t-0.5 -79q0 -46 1 -69zM0 -128l2 94q15 4 85 16t106 27q7 12 12.5 27t8.5 33.5t5.5 32.5t3 37.5t0.5 34v35.5v30q0 982 -22 1025q-4 8 -22 14.5t-44.5 11t-49.5 7t-48.5 4.5 t-30.5 3l-4 83q98 2 340 11.5t373 9.5q23 0 68.5 -0.5t67.5 -0.5q70 0 136.5 -13t128.5 -42t108 -71t74 -104.5t28 -137.5q0 -52 -16.5 -95.5t-39 -72t-64.5 -57.5t-73 -45t-84 -40q154 -35 256.5 -134t102.5 -248q0 -100 -35 -179.5t-93.5 -130.5t-138 -85.5t-163.5 -48.5 t-176 -14q-44 0 -132 3t-132 3q-106 0 -307 -11t-231 -12z" />
+<glyph unicode="&#xf033;" horiz-adv-x="1024" d="M0 -126l17 85q6 2 81.5 21.5t111.5 37.5q28 35 41 101q1 7 62 289t114 543.5t52 296.5v25q-24 13 -54.5 18.5t-69.5 8t-58 5.5l19 103q33 -2 120 -6.5t149.5 -7t120.5 -2.5q48 0 98.5 2.5t121 7t98.5 6.5q-5 -39 -19 -89q-30 -10 -101.5 -28.5t-108.5 -33.5 q-8 -19 -14 -42.5t-9 -40t-7.5 -45.5t-6.5 -42q-27 -148 -87.5 -419.5t-77.5 -355.5q-2 -9 -13 -58t-20 -90t-16 -83.5t-6 -57.5l1 -18q17 -4 185 -31q-3 -44 -16 -99q-11 0 -32.5 -1.5t-32.5 -1.5q-29 0 -87 10t-86 10q-138 2 -206 2q-51 0 -143 -9t-121 -11z" />
+<glyph unicode="&#xf034;" horiz-adv-x="1792" d="M1744 128q33 0 42 -18.5t-11 -44.5l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5t42 18.5h80v1024h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80zM81 1407l54 -27q12 -5 211 -5q44 0 132 2 t132 2q36 0 107.5 -0.5t107.5 -0.5h293q6 0 21 -0.5t20.5 0t16 3t17.5 9t15 17.5l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 48t-14.5 73.5t-7.5 35.5q-6 8 -12 12.5t-15.5 6t-13 2.5t-18 0.5t-16.5 -0.5 q-17 0 -66.5 0.5t-74.5 0.5t-64 -2t-71 -6q-9 -81 -8 -136q0 -94 2 -388t2 -455q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27 q19 42 19 383q0 101 -3 303t-3 303v117q0 2 0.5 15.5t0.5 25t-1 25.5t-3 24t-5 14q-11 12 -162 12q-33 0 -93 -12t-80 -26q-19 -13 -34 -72.5t-31.5 -111t-42.5 -53.5q-42 26 -56 44v383z" />
+<glyph unicode="&#xf035;" d="M81 1407l54 -27q12 -5 211 -5q44 0 132 2t132 2q70 0 246.5 1t304.5 0.5t247 -4.5q33 -1 56 31l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 47.5t-15 73.5t-7 36q-10 13 -27 19q-5 2 -66 2q-30 0 -93 1t-103 1 t-94 -2t-96 -7q-9 -81 -8 -136l1 -152v52q0 -55 1 -154t1.5 -180t0.5 -153q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27 q7 16 11.5 74t6 145.5t1.5 155t-0.5 153.5t-0.5 89q0 7 -2.5 21.5t-2.5 22.5q0 7 0.5 44t1 73t0 76.5t-3 67.5t-6.5 32q-11 12 -162 12q-41 0 -163 -13.5t-138 -24.5q-19 -12 -34 -71.5t-31.5 -111.5t-42.5 -54q-42 26 -56 44v383zM1310 125q12 0 42 -19.5t57.5 -41.5 t59.5 -49t36 -30q26 -21 26 -49t-26 -49q-4 -3 -36 -30t-59.5 -49t-57.5 -41.5t-42 -19.5q-13 0 -20.5 10.5t-10 28.5t-2.5 33.5t1.5 33t1.5 19.5h-1024q0 -2 1.5 -19.5t1.5 -33t-2.5 -33.5t-10 -28.5t-20.5 -10.5q-12 0 -42 19.5t-57.5 41.5t-59.5 49t-36 30q-26 21 -26 49 t26 49q4 3 36 30t59.5 49t57.5 41.5t42 19.5q13 0 20.5 -10.5t10 -28.5t2.5 -33.5t-1.5 -33t-1.5 -19.5h1024q0 2 -1.5 19.5t-1.5 33t2.5 33.5t10 28.5t20.5 10.5z" />
+<glyph unicode="&#xf036;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf037;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h896q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45t-45 -19 h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf038;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf039;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf03a;" horiz-adv-x="1792" d="M256 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM256 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5 t9.5 -22.5zM256 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344 q13 0 22.5 -9.5t9.5 -22.5zM256 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192 q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5z" />
+<glyph unicode="&#xf03b;" horiz-adv-x="1792" d="M384 992v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23t9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
+<glyph unicode="&#xf03c;" horiz-adv-x="1792" d="M352 704q0 -14 -9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
+<glyph unicode="&#xf03d;" horiz-adv-x="1792" d="M1792 1184v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5 q39 -17 39 -59z" />
+<glyph unicode="&#xf03e;" horiz-adv-x="1920" d="M640 960q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 576v-448h-1408v192l320 320l160 -160l512 512zM1760 1280h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216 q0 13 -9.5 22.5t-22.5 9.5zM1920 1248v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf040;" d="M363 0l91 91l-235 235l-91 -91v-107h128v-128h107zM886 928q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17zM832 1120l416 -416l-832 -832h-416v416zM1515 1024q0 -53 -37 -90l-166 -166l-416 416l166 165q36 38 90 38 q53 0 91 -38l235 -234q37 -39 37 -91z" />
+<glyph unicode="&#xf041;" horiz-adv-x="1024" d="M768 896q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1024 896q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179q0 212 150 362t362 150t362 -150t150 -362z" />
+<glyph unicode="&#xf042;" d="M768 96v1088q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf043;" horiz-adv-x="1024" d="M512 384q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 512q0 -212 -150 -362t-362 -150t-362 150t-150 362 q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275z" />
+<glyph unicode="&#xf044;" horiz-adv-x="1792" d="M888 352l116 116l-152 152l-116 -116v-56h96v-96h56zM1328 1072q-16 16 -33 -1l-350 -350q-17 -17 -1 -33t33 1l350 350q17 17 1 33zM1408 478v-190q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29zM1312 1216l288 -288l-672 -672h-288v288zM1756 1084l-92 -92 l-288 288l92 92q28 28 68 28t68 -28l152 -152q28 -28 28 -68t-28 -68z" />
+<glyph unicode="&#xf045;" horiz-adv-x="1664" d="M1408 547v-259q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h255v0q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832 q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29zM1645 1043l-384 -384q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34q-8 -2 -12 -2q-16 0 -26 13q-10 14 -21 31t-39.5 68.5t-49.5 99.5 t-38.5 114t-17.5 122q0 49 3.5 91t14 90t28 88t47 81.5t68.5 74t94.5 61.5t124.5 48.5t159.5 30.5t196.5 11h160v192q0 42 39 59q13 5 25 5q26 0 45 -19l384 -384q19 -19 19 -45t-19 -45z" />
+<glyph unicode="&#xf046;" horiz-adv-x="1664" d="M1408 606v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832 q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3q20 -8 20 -29zM1639 1095l-814 -814q-24 -24 -57 -24t-57 24l-430 430q-24 24 -24 57t24 57l110 110q24 24 57 24t57 -24l263 -263l647 647q24 24 57 24t57 -24l110 -110 q24 -24 24 -57t-24 -57z" />
+<glyph unicode="&#xf047;" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45 t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
+<glyph unicode="&#xf048;" horiz-adv-x="1024" d="M979 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19z" />
+<glyph unicode="&#xf049;" horiz-adv-x="1792" d="M1747 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19l710 710 q19 19 32 13t13 -32v-710q4 11 13 19z" />
+<glyph unicode="&#xf04a;" horiz-adv-x="1664" d="M1619 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-8 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45t19 45l710 710q19 19 32 13t13 -32v-710q5 11 13 19z" />
+<glyph unicode="&#xf04b;" horiz-adv-x="1408" d="M1384 609l-1328 -738q-23 -13 -39.5 -3t-16.5 36v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31z" />
+<glyph unicode="&#xf04c;" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45zM640 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf04d;" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf04e;" horiz-adv-x="1664" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
+<glyph unicode="&#xf050;" horiz-adv-x="1792" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19l-710 -710 q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
+<glyph unicode="&#xf051;" horiz-adv-x="1024" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19z" />
+<glyph unicode="&#xf052;" horiz-adv-x="1538" d="M14 557l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13t13 32zM1473 0h-1408q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19z" />
+<glyph unicode="&#xf053;" horiz-adv-x="1280" d="M1171 1235l-531 -531l531 -531q19 -19 19 -45t-19 -45l-166 -166q-19 -19 -45 -19t-45 19l-742 742q-19 19 -19 45t19 45l742 742q19 19 45 19t45 -19l166 -166q19 -19 19 -45t-19 -45z" />
+<glyph unicode="&#xf054;" horiz-adv-x="1280" d="M1107 659l-742 -742q-19 -19 -45 -19t-45 19l-166 166q-19 19 -19 45t19 45l531 531l-531 531q-19 19 -19 45t19 45l166 166q19 19 45 19t45 -19l742 -742q19 -19 19 -45t-19 -45z" />
+<glyph unicode="&#xf055;" d="M1216 576v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5 t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf056;" d="M1216 576v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 t103 -385.5z" />
+<glyph unicode="&#xf057;" d="M1149 414q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45q0 -27 19 -46l90 -90q19 -19 46 -19 q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19l90 90q19 19 19 46zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf058;" d="M1284 802q0 28 -18 46l-91 90q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf059;" d="M896 160v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1152 832q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26t37.5 -59 q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf05a;" d="M1024 160v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23zM896 1056v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23 t23 -9h192q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf05b;" d="M1197 512h-109q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109 q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5zM1536 704v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v143 q-161 37 -278.5 154.5t-154.5 278.5h-143q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h143q37 161 154.5 278.5t278.5 154.5v143q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-143q161 -37 278.5 -154.5t154.5 -278.5h143q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf05c;" d="M1097 457l-146 -146q-10 -10 -23 -10t-23 10l-137 137l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23 l-137 -137l137 -137q10 -10 10 -23t-10 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5 t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf05d;" d="M1171 723l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45t19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198 t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf05e;" d="M1312 643q0 161 -87 295l-754 -753q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5zM313 344l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199t-73 -274q0 -162 89 -299zM1536 643q0 -157 -61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61 t-245 164t-163.5 246t-61 300t61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5z" />
+<glyph unicode="&#xf060;" d="M1536 640v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5 t32.5 -90.5z" />
+<glyph unicode="&#xf061;" d="M1472 576q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90z" />
+<glyph unicode="&#xf062;" horiz-adv-x="1664" d="M1611 565q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75q-38 38 -38 90q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651 q37 -39 37 -91z" />
+<glyph unicode="&#xf063;" horiz-adv-x="1664" d="M1611 704q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91z" />
+<glyph unicode="&#xf064;" horiz-adv-x="1792" d="M1792 896q0 -26 -19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22 t-13.5 30t-10.5 24q-127 285 -127 451q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45z" />
+<glyph unicode="&#xf065;" d="M755 480q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23zM1536 1344v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332 q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf066;" d="M768 576v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45zM1523 1248q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45 t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23z" />
+<glyph unicode="&#xf067;" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf068;" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf069;" horiz-adv-x="1664" d="M1482 486q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5t59.5 77.5l266 154l-266 154 q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5l-266 -154z" />
+<glyph unicode="&#xf06a;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM896 161v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190q0 -13 10 -23t23 -10h192 q13 0 22 9.5t9 23.5zM894 505l18 621q0 12 -10 18q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5z" />
+<glyph unicode="&#xf06b;" d="M928 180v56v468v192h-320v-192v-468v-56q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5zM472 1024h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68t28 -68t68 -28zM1160 1120q0 40 -28 68t-68 28q-43 0 -69 -31l-125 -161h194q40 0 68 28t28 68zM1536 864v-320 q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 77 168 77q93 0 158.5 -65.5t65.5 -158.5 t-65.5 -158.5t-158.5 -65.5h440q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf06c;" horiz-adv-x="1792" d="M1280 832q0 26 -19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45q0 -26 19 -45t45 -19q24 0 45 19q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45zM1792 1030q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268 q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-30 0 -51 11t-31 24t-27 42q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 38t-16 44q-9 51 -9 104q0 115 43.5 220t119 184.5 t170.5 139t204 95.5q55 18 145 25.5t179.5 9t178.5 6t163.5 24t113.5 56.5l29.5 29.5t29.5 28t27 20t36.5 16t43.5 4.5q39 0 70.5 -46t47.5 -112t24 -124t8 -96z" />
+<glyph unicode="&#xf06d;" horiz-adv-x="1408" d="M1408 -160v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1152 896q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1 q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100t113.5 -122.5t72.5 -150.5t27.5 -184z" />
+<glyph unicode="&#xf06e;" horiz-adv-x="1792" d="M1664 576q-152 236 -381 353q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5 t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1792 576q0 -34 -20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69t20 69q140 229 376.5 368t499.5 139t499.5 -139t376.5 -368q20 -35 20 -69z" />
+<glyph unicode="&#xf070;" horiz-adv-x="1792" d="M555 201l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353q167 -258 427 -375zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1307 1151q0 -7 -1 -9 q-105 -188 -315 -566t-316 -567l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87q-143 65 -263.5 173t-208.5 245q-20 31 -20 69t20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 18 -6t31 -15.5t33 -18.5t31.5 -18.5t19.5 -11.5 q16 -10 16 -27zM1344 704q0 -139 -79 -253.5t-209 -164.5l280 502q8 -45 8 -84zM1792 576q0 -35 -20 -69q-39 -64 -109 -145q-150 -172 -347.5 -267t-419.5 -95l74 132q212 18 392.5 137t301.5 307q-115 179 -282 294l63 112q95 -64 182.5 -153t144.5 -184q20 -34 20 -69z " />
+<glyph unicode="&#xf071;" horiz-adv-x="1792" d="M1024 161v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5zM1022 535l18 459q0 12 -10 19q-13 11 -24 11h-220q-11 0 -24 -11q-10 -7 -10 -21l17 -457q0 -10 10 -16.5t24 -6.5h185 q14 0 23.5 6.5t10.5 16.5zM1008 1469l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126l768 1408q17 31 47 49t65 18t65 -18t47 -49z" />
+<glyph unicode="&#xf072;" horiz-adv-x="1408" d="M1376 1376q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23q-1 13 9 25l96 97q9 9 23 9 q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12z" />
+<glyph unicode="&#xf073;" horiz-adv-x="1664" d="M128 -128h288v288h-288v-288zM480 -128h320v288h-320v-288zM128 224h288v320h-288v-320zM480 224h320v320h-320v-320zM128 608h288v288h-288v-288zM864 -128h320v288h-320v-288zM480 608h320v288h-320v-288zM1248 -128h288v288h-288v-288zM864 224h320v320h-320v-320z M512 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1248 224h288v320h-288v-320zM864 608h320v288h-320v-288zM1248 608h288v288h-288v-288zM1280 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64 q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47 h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf074;" horiz-adv-x="1792" d="M666 1055q-60 -92 -137 -273q-22 45 -37 72.5t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q250 0 410 -225zM1792 256q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192q-32 0 -85 -0.5t-81 -1t-73 1 t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1792 1152q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5 v192h-256q-48 0 -87 -15t-69 -45t-51 -61.5t-45 -77.5q-32 -62 -78 -171q-29 -66 -49.5 -111t-54 -105t-64 -100t-74 -83t-90 -68.5t-106.5 -42t-128 -16.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q48 0 87 15t69 45t51 61.5t45 77.5q32 62 78 171q29 66 49.5 111 t54 105t64 100t74 83t90 68.5t106.5 42t128 16.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
+<glyph unicode="&#xf075;" horiz-adv-x="1792" d="M1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281 q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5z" />
+<glyph unicode="&#xf076;" d="M1536 704v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5t-98.5 362v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384 q26 0 45 -19t19 -45zM512 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45zM1536 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf077;" horiz-adv-x="1792" d="M1683 205l-166 -165q-19 -19 -45 -19t-45 19l-531 531l-531 -531q-19 -19 -45 -19t-45 19l-166 165q-19 19 -19 45.5t19 45.5l742 741q19 19 45 19t45 -19l742 -741q19 -19 19 -45.5t-19 -45.5z" />
+<glyph unicode="&#xf078;" horiz-adv-x="1792" d="M1683 728l-742 -741q-19 -19 -45 -19t-45 19l-742 741q-19 19 -19 45.5t19 45.5l166 165q19 19 45 19t45 -19l531 -531l531 531q19 19 45 19t45 -19l166 -165q19 -19 19 -45.5t-19 -45.5z" />
+<glyph unicode="&#xf079;" horiz-adv-x="1920" d="M1280 32q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -11 7 -21 zM1920 448q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5 -8t3 -11.5t1 -11.5v-13v-11v-160v-416h192q26 0 45 -19t19 -45z " />
+<glyph unicode="&#xf07a;" horiz-adv-x="1664" d="M640 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1536 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1664 1088v-512q0 -24 -16.5 -42.5t-40.5 -21.5l-1044 -122q13 -60 13 -70q0 -16 -24 -64h920q26 0 45 -19t19 -45 t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 11 8 31.5t16 36t21.5 40t15.5 29.5l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t19.5 -15.5t13 -24.5t8 -26t5.5 -29.5t4.5 -26h1201q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf07b;" horiz-adv-x="1664" d="M1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
+<glyph unicode="&#xf07c;" horiz-adv-x="1920" d="M1879 584q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43zM1536 928v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5 t-0.5 12.5v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158z" />
+<glyph unicode="&#xf07d;" horiz-adv-x="768" d="M704 1216q0 -26 -19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45z" />
+<glyph unicode="&#xf07e;" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
+<glyph unicode="&#xf080;" horiz-adv-x="2048" d="M640 640v-512h-256v512h256zM1024 1152v-1024h-256v1024h256zM2048 0v-128h-2048v1536h128v-1408h1920zM1408 896v-768h-256v768h256zM1792 1280v-1152h-256v1152h256z" />
+<glyph unicode="&#xf081;" d="M1280 926q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4 q21 -63 74.5 -104t121.5 -42q-116 -90 -261 -90q-26 0 -50 3q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5 t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf082;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-188v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-532q-119 0 -203.5 84.5t-84.5 203.5v960 q0 119 84.5 203.5t203.5 84.5h960z" />
+<glyph unicode="&#xf083;" horiz-adv-x="1792" d="M928 704q0 14 -9 23t-23 9q-66 0 -113 -47t-47 -113q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9t9 23zM1152 574q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM128 0h1536v128h-1536v-128zM1280 574q0 159 -112.5 271.5 t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM256 1216h384v128h-384v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM1792 1280v-1280q0 -53 -37.5 -90.5t-90.5 -37.5h-1536q-53 0 -90.5 37.5t-37.5 90.5v1280 q0 53 37.5 90.5t90.5 37.5h1536q53 0 90.5 -37.5t37.5 -90.5z" />
+<glyph unicode="&#xf084;" horiz-adv-x="1792" d="M832 1024q0 80 -56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136t56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56t56 136zM1683 320q0 -17 -49 -66t-66 -49q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26 l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189 -131 -365l355 -355l96 96q-3 3 -26 24.5t-40 38.5t-33 36.5 t-16 28.5q0 17 49 66t66 49q13 0 23 -10q6 -6 46 -44.5t82 -79.5t86.5 -86t73 -78t28.5 -41z" />
+<glyph unicode="&#xf085;" horiz-adv-x="1920" d="M896 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1664 128q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1152q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1280 731v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -10 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90q-37 -19 -77 -31q-11 -108 -23 -155q-7 -24 -30 -24h-186q-11 0 -20 7.5t-10 17.5 l-23 153q-34 10 -75 31l-118 -89q-7 -7 -20 -7q-11 0 -21 8q-144 133 -144 160q0 9 7 19q10 14 41 53t47 61q-23 44 -35 82l-152 24q-10 1 -17 9.5t-7 19.5v185q0 10 7 19.5t16 10.5l155 24q11 35 32 76q-34 48 -90 115q-7 11 -7 20q0 12 7 20q22 30 82 89t79 59q11 0 21 -7 l115 -90q34 18 77 32q11 108 23 154q7 24 30 24h186q11 0 20 -7.5t10 -17.5l23 -153q34 -10 75 -31l118 89q8 7 20 7q11 0 21 -8q144 -133 144 -160q0 -9 -7 -19q-12 -16 -42 -54t-45 -60q23 -48 34 -82l152 -23q10 -2 17 -10.5t7 -19.5zM1920 198v-140q0 -16 -149 -31 q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20 t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31zM1920 1222v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68 q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70 q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31z" />
+<glyph unicode="&#xf086;" horiz-adv-x="1792" d="M1408 768q0 -139 -94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224 q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257zM1792 512q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7 q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230z" />
+<glyph unicode="&#xf087;" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 768q0 51 -39 89.5t-89 38.5h-352q0 58 48 159.5t48 160.5q0 98 -32 145t-128 47q-26 -26 -38 -85t-30.5 -125.5t-59.5 -109.5q-22 -23 -77 -91q-4 -5 -23 -30t-31.5 -41t-34.5 -42.5 t-40 -44t-38.5 -35.5t-40 -27t-35.5 -9h-32v-640h32q13 0 31.5 -3t33 -6.5t38 -11t35 -11.5t35.5 -12.5t29 -10.5q211 -73 342 -73h121q192 0 192 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5q32 1 53.5 47t21.5 81zM1536 769 q0 -89 -49 -163q9 -33 9 -69q0 -77 -38 -144q3 -21 3 -43q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5h-36h-93q-96 0 -189.5 22.5t-216.5 65.5q-116 40 -138 40h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h274q36 24 137 155q58 75 107 128 q24 25 35.5 85.5t30.5 126.5t62 108q39 37 90 37q84 0 151 -32.5t102 -101.5t35 -186q0 -93 -48 -192h176q104 0 180 -76t76 -179z" />
+<glyph unicode="&#xf088;" d="M256 1088q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 512q0 35 -21.5 81t-53.5 47q15 17 25 47.5t10 55.5q0 69 -53 119q18 32 18 69t-17.5 73.5t-47.5 52.5q5 30 5 56q0 85 -49 126t-136 41h-128q-131 0 -342 -73q-5 -2 -29 -10.5 t-35.5 -12.5t-35 -11.5t-38 -11t-33 -6.5t-31.5 -3h-32v-640h32q16 0 35.5 -9t40 -27t38.5 -35.5t40 -44t34.5 -42.5t31.5 -41t23 -30q55 -68 77 -91q41 -43 59.5 -109.5t30.5 -125.5t38 -85q96 0 128 47t32 145q0 59 -48 160.5t-48 159.5h352q50 0 89 38.5t39 89.5z M1536 511q0 -103 -76 -179t-180 -76h-176q48 -99 48 -192q0 -118 -35 -186q-35 -69 -102 -101.5t-151 -32.5q-51 0 -90 37q-34 33 -54 82t-25.5 90.5t-17.5 84.5t-31 64q-48 50 -107 127q-101 131 -137 155h-274q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5 h288q22 0 138 40q128 44 223 66t200 22h112q140 0 226.5 -79t85.5 -216v-5q60 -77 60 -178q0 -22 -3 -43q38 -67 38 -144q0 -36 -9 -69q49 -74 49 -163z" />
+<glyph unicode="&#xf089;" horiz-adv-x="896" d="M832 1504v-1339l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41z" />
+<glyph unicode="&#xf08a;" horiz-adv-x="1792" d="M1664 940q0 81 -21.5 143t-55 98.5t-81.5 59.5t-94 31t-98 8t-112 -25.5t-110.5 -64t-86.5 -72t-60 -61.5q-18 -22 -49 -22t-49 22q-24 28 -60 61.5t-86.5 72t-110.5 64t-112 25.5t-98 -8t-94 -31t-81.5 -59.5t-55 -98.5t-21.5 -143q0 -168 187 -355l581 -560l580 559 q188 188 188 356zM1792 940q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5 q224 0 351 -124t127 -344z" />
+<glyph unicode="&#xf08b;" horiz-adv-x="1664" d="M640 96q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h320q13 0 22.5 -9.5t9.5 -22.5q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-66 0 -113 -47t-47 -113v-704 q0 -66 47 -113t113 -47h288h11h13t11.5 -1t11.5 -3t8 -5.5t7 -9t2 -13.5zM1568 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45z" />
+<glyph unicode="&#xf08c;" d="M237 122h231v694h-231v-694zM483 1030q-1 52 -36 86t-93 34t-94.5 -34t-36.5 -86q0 -51 35.5 -85.5t92.5 -34.5h1q59 0 95 34.5t36 85.5zM1068 122h231v398q0 154 -73 233t-193 79q-136 0 -209 -117h2v101h-231q3 -66 0 -694h231v388q0 38 7 56q15 35 45 59.5t74 24.5 q116 0 116 -157v-371zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf08d;" horiz-adv-x="1152" d="M480 672v448q0 14 -9 23t-23 9t-23 -9t-9 -23v-448q0 -14 9 -23t23 -9t23 9t9 23zM1152 320q0 -26 -19 -45t-45 -19h-429l-51 -483q-2 -12 -10.5 -20.5t-20.5 -8.5h-1q-27 0 -32 27l-76 485h-404q-26 0 -45 19t-19 45q0 123 78.5 221.5t177.5 98.5v512q-52 0 -90 38 t-38 90t38 90t90 38h640q52 0 90 -38t38 -90t-38 -90t-90 -38v-512q99 0 177.5 -98.5t78.5 -221.5z" />
+<glyph unicode="&#xf08e;" horiz-adv-x="1792" d="M1408 608v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1792 1472v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf090;" d="M1184 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45zM1536 992v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5 q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf091;" horiz-adv-x="1664" d="M458 653q-74 162 -74 371h-256v-96q0 -78 94.5 -162t235.5 -113zM1536 928v96h-256q0 -209 -74 -371q141 29 235.5 113t94.5 162zM1664 1056v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91 t97.5 -37q75 0 133.5 -45.5t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 44.5t-173 97.5t-112 130t-41.5 143v128q0 40 28 68t68 28h288v96 q0 66 47 113t113 47h576q66 0 113 -47t47 -113v-96h288q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf092;" d="M394 184q-8 -9 -20 3q-13 11 -4 19q8 9 20 -3q12 -11 4 -19zM352 245q9 -12 0 -19q-8 -6 -17 7t0 18q9 7 17 -6zM291 305q-5 -7 -13 -2q-10 5 -7 12q3 5 13 2q10 -5 7 -12zM322 271q-6 -7 -16 3q-9 11 -2 16q6 6 16 -3q9 -11 2 -16zM451 159q-4 -12 -19 -6q-17 4 -13 15 t19 7q16 -5 13 -16zM514 154q0 -11 -16 -11q-17 -2 -17 11q0 11 16 11q17 2 17 -11zM572 164q2 -10 -14 -14t-18 8t14 15q16 2 18 -9zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-224q-16 0 -24.5 1t-19.5 5t-16 14.5t-5 27.5v239q0 97 -52 142q57 6 102.5 18t94 39 t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103 q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -103t0.5 -68q0 -22 -11 -33.5t-22 -13t-33 -1.5 h-224q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf093;" horiz-adv-x="1664" d="M1280 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 288v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h427q21 -56 70.5 -92 t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68zM1339 936q-17 -40 -59 -40h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40q-17 39 14 69l448 448q18 19 45 19t45 -19l448 -448q31 -30 14 -69z" />
+<glyph unicode="&#xf094;" d="M1407 710q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5 q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275zM1535 712q0 -165 -70 -327.5t-196 -288t-281 -180.5q-124 -44 -326 -44 q-57 0 -170 14.5t-169 14.5q-24 0 -72.5 -14.5t-73.5 -14.5q-73 0 -123.5 55.5t-50.5 128.5q0 24 11 68t11 67q0 40 -12.5 120.5t-12.5 121.5q0 111 18 217.5t54.5 209.5t100.5 194t150 156q78 59 232 120q194 78 316 78q60 0 175.5 -24t173.5 -24q19 0 57 5t58 5 q81 0 118 -50.5t37 -134.5q0 -23 -5 -68t-5 -68q0 -10 1 -18.5t3 -17t4 -13.5t6.5 -16t6.5 -17q16 -40 25 -118.5t9 -136.5z" />
+<glyph unicode="&#xf095;" horiz-adv-x="1408" d="M1408 296q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -52.5 3.5t-57.5 12.5t-47.5 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-128 79 -264.5 215.5t-215.5 264.5q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47.5t-12.5 57.5t-3.5 52.5 q0 92 51 186q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5 -20.5t14 -24t11.5 -19q76 -137 174 -235t235 -174 q2 -1 19 -11.5t24 -14t20.5 -8.5t22.5 -5q18 0 46 28.5t53 62t55 62t50 28.5q14 0 28.5 -7t35.5 -21.5t25 -17.5q25 -15 53.5 -31t63.5 -35t54 -30q70 -35 76 -53q3 -7 3 -21z" />
+<glyph unicode="&#xf096;" horiz-adv-x="1408" d="M1120 1280h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf097;" horiz-adv-x="1280" d="M1152 1280h-1024v-1242l423 406l89 85l89 -85l423 -406v1242zM1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289 q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
+<glyph unicode="&#xf098;" d="M1280 343q0 11 -2 16q-3 8 -38.5 29.5t-88.5 49.5l-53 29q-5 3 -19 13t-25 15t-21 5q-18 0 -47 -32.5t-57 -65.5t-44 -33q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170.5 126.5t-126.5 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5t-3.5 16.5q0 13 20.5 33.5t45 38.5 t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216.5 -320.5t320.5 -216.5q6 -2 30 -11t33 -12.5 t29.5 -10t33 -9t30.5 -5t34 -2.5q57 0 130.5 34t94.5 80q22 53 22 101zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf099;" horiz-adv-x="1664" d="M1620 1128q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41 q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50z" />
+<glyph unicode="&#xf09a;" horiz-adv-x="1024" d="M959 1524v-264h-157q-86 0 -116 -36t-30 -108v-189h293l-39 -296h-254v-759h-306v759h-255v296h255v218q0 186 104 288.5t277 102.5q147 0 228 -12z" />
+<glyph unicode="&#xf09b;" d="M1536 640q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -39.5 7t-12.5 30v211q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5 q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23 q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -89t0.5 -54q0 -18 -13 -30t-40 -7q-232 77 -378.5 277.5t-146.5 451.5q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf09c;" horiz-adv-x="1664" d="M1664 960v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5 t316.5 -131.5t131.5 -316.5z" />
+<glyph unicode="&#xf09d;" horiz-adv-x="1920" d="M1760 1408q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600zM160 1280q-13 0 -22.5 -9.5t-9.5 -22.5v-224h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600zM1760 0q13 0 22.5 9.5t9.5 22.5v608h-1664v-608 q0 -13 9.5 -22.5t22.5 -9.5h1600zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" />
+<glyph unicode="&#xf09e;" horiz-adv-x="1408" d="M384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 69q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5t-391.5 184.5q-25 2 -41.5 20t-16.5 43v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5 t259 -181.5q114 -113 181.5 -259t80.5 -306zM1408 67q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102q-25 1 -42.5 19.5t-17.5 43.5v143q0 28 20 46q18 18 44 18h3q262 -13 501.5 -120t425.5 -294 q187 -186 294 -425.5t120 -501.5z" />
+<glyph unicode="&#xf0a0;" d="M1040 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1296 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1408 160v320q0 13 -9.5 22.5t-22.5 9.5 h-1216q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5zM178 640h1180l-157 482q-4 13 -16 21.5t-26 8.5h-782q-14 0 -26 -8.5t-16 -21.5zM1536 480v-320q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v320q0 25 16 75 l197 606q17 53 63 86t101 33h782q55 0 101 -33t63 -86l197 -606q16 -50 16 -75z" />
+<glyph unicode="&#xf0a1;" horiz-adv-x="1792" d="M1664 896q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5v-384q0 -52 -38 -90t-90 -38q-417 347 -812 380q-58 -19 -91 -66t-31 -100.5t40 -92.5q-20 -33 -23 -65.5t6 -58t33.5 -55t48 -50t61.5 -50.5q-29 -58 -111.5 -83t-168.5 -11.5t-132 55.5q-7 23 -29.5 87.5 t-32 94.5t-23 89t-15 101t3.5 98.5t22 110.5h-122q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h480q435 0 896 384q52 0 90 -38t38 -90v-384zM1536 292v954q-394 -302 -768 -343v-270q377 -42 768 -341z" />
+<glyph unicode="&#xf0a2;" horiz-adv-x="1792" d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM246 128h1300q-266 300 -266 832q0 51 -24 105t-69 103t-121.5 80.5t-169.5 31.5t-169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -532 -266 -832z M1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5 t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" />
+<glyph unicode="&#xf0a3;" d="M1376 640l138 -135q30 -28 20 -70q-12 -41 -52 -51l-188 -48l53 -186q12 -41 -19 -70q-29 -31 -70 -19l-186 53l-48 -188q-10 -40 -51 -52q-12 -2 -19 -2q-31 0 -51 22l-135 138l-135 -138q-28 -30 -70 -20q-41 11 -51 52l-48 188l-186 -53q-41 -12 -70 19q-31 29 -19 70 l53 186l-188 48q-40 10 -52 51q-10 42 20 70l138 135l-138 135q-30 28 -20 70q12 41 52 51l188 48l-53 186q-12 41 19 70q29 31 70 19l186 -53l48 188q10 41 51 51q41 12 70 -19l135 -139l135 139q29 30 70 19q41 -10 51 -51l48 -188l186 53q41 12 70 -19q31 -29 19 -70 l-53 -186l188 -48q40 -10 52 -51q10 -42 -20 -70z" />
+<glyph unicode="&#xf0a4;" horiz-adv-x="1792" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 768q0 51 -39 89.5t-89 38.5h-576q0 20 15 48.5t33 55t33 68t15 84.5q0 67 -44.5 97.5t-115.5 30.5q-24 0 -90 -139q-24 -44 -37 -65q-40 -64 -112 -145q-71 -81 -101 -106 q-69 -57 -140 -57h-32v-640h32q72 0 167 -32t193.5 -64t179.5 -32q189 0 189 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5h331q52 0 90 38t38 90zM1792 769q0 -105 -75.5 -181t-180.5 -76h-169q-4 -62 -37 -119q3 -21 3 -43 q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5q-133 0 -322 69q-164 59 -223 59h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h288q10 0 21.5 4.5t23.5 14t22.5 18t24 22.5t20.5 21.5t19 21.5t14 17q65 74 100 129q13 21 33 62t37 72t40.5 63t55 49.5 t69.5 17.5q125 0 206.5 -67t81.5 -189q0 -68 -22 -128h374q104 0 180 -76t76 -179z" />
+<glyph unicode="&#xf0a5;" horiz-adv-x="1792" d="M1376 128h32v640h-32q-35 0 -67.5 12t-62.5 37t-50 46t-49 54q-2 3 -3.5 4.5t-4 4.5t-4.5 5q-72 81 -112 145q-14 22 -38 68q-1 3 -10.5 22.5t-18.5 36t-20 35.5t-21.5 30.5t-18.5 11.5q-71 0 -115.5 -30.5t-44.5 -97.5q0 -43 15 -84.5t33 -68t33 -55t15 -48.5h-576 q-50 0 -89 -38.5t-39 -89.5q0 -52 38 -90t90 -38h331q-15 -17 -25 -47.5t-10 -55.5q0 -69 53 -119q-18 -32 -18 -69t17.5 -73.5t47.5 -52.5q-4 -24 -4 -56q0 -85 48.5 -126t135.5 -41q84 0 183 32t194 64t167 32zM1664 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45 t45 -19t45 19t19 45zM1792 768v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-288q-59 0 -223 -59q-190 -69 -317 -69q-142 0 -230 77.5t-87 217.5l1 5q-61 76 -61 178q0 22 3 43q-33 57 -37 119h-169q-105 0 -180.5 76t-75.5 181q0 103 76 179t180 76h374q-22 60 -22 128 q0 122 81.5 189t206.5 67q38 0 69.5 -17.5t55 -49.5t40.5 -63t37 -72t33 -62q35 -55 100 -129q2 -3 14 -17t19 -21.5t20.5 -21.5t24 -22.5t22.5 -18t23.5 -14t21.5 -4.5h288q53 0 90.5 -37.5t37.5 -90.5z" />
+<glyph unicode="&#xf0a6;" d="M1280 -64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 700q0 189 -167 189q-26 0 -56 -5q-16 30 -52.5 47.5t-73.5 17.5t-69 -18q-50 53 -119 53q-25 0 -55.5 -10t-47.5 -25v331q0 52 -38 90t-90 38q-51 0 -89.5 -39t-38.5 -89v-576 q-20 0 -48.5 15t-55 33t-68 33t-84.5 15q-67 0 -97.5 -44.5t-30.5 -115.5q0 -24 139 -90q44 -24 65 -37q64 -40 145 -112q81 -71 106 -101q57 -69 57 -140v-32h640v32q0 72 32 167t64 193.5t32 179.5zM1536 705q0 -133 -69 -322q-59 -164 -59 -223v-288q0 -53 -37.5 -90.5 t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5v288q0 10 -4.5 21.5t-14 23.5t-18 22.5t-22.5 24t-21.5 20.5t-21.5 19t-17 14q-74 65 -129 100q-21 13 -62 33t-72 37t-63 40.5t-49.5 55t-17.5 69.5q0 125 67 206.5t189 81.5q68 0 128 -22v374q0 104 76 180t179 76 q105 0 181 -75.5t76 -180.5v-169q62 -4 119 -37q21 3 43 3q101 0 178 -60q139 1 219.5 -85t80.5 -227z" />
+<glyph unicode="&#xf0a7;" d="M1408 576q0 84 -32 183t-64 194t-32 167v32h-640v-32q0 -35 -12 -67.5t-37 -62.5t-46 -50t-54 -49q-9 -8 -14 -12q-81 -72 -145 -112q-22 -14 -68 -38q-3 -1 -22.5 -10.5t-36 -18.5t-35.5 -20t-30.5 -21.5t-11.5 -18.5q0 -71 30.5 -115.5t97.5 -44.5q43 0 84.5 15t68 33 t55 33t48.5 15v-576q0 -50 38.5 -89t89.5 -39q52 0 90 38t38 90v331q46 -35 103 -35q69 0 119 53q32 -18 69 -18t73.5 17.5t52.5 47.5q24 -4 56 -4q85 0 126 48.5t41 135.5zM1280 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 580 q0 -142 -77.5 -230t-217.5 -87l-5 1q-76 -61 -178 -61q-22 0 -43 3q-54 -30 -119 -37v-169q0 -105 -76 -180.5t-181 -75.5q-103 0 -179 76t-76 180v374q-54 -22 -128 -22q-121 0 -188.5 81.5t-67.5 206.5q0 38 17.5 69.5t49.5 55t63 40.5t72 37t62 33q55 35 129 100 q3 2 17 14t21.5 19t21.5 20.5t22.5 24t18 22.5t14 23.5t4.5 21.5v288q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-288q0 -59 59 -223q69 -190 69 -317z" />
+<glyph unicode="&#xf0a8;" d="M1280 576v128q0 26 -19 45t-45 19h-502l189 189q19 19 19 45t-19 45l-91 91q-18 18 -45 18t-45 -18l-362 -362l-91 -91q-18 -18 -18 -45t18 -45l91 -91l362 -362q18 -18 45 -18t45 18l91 91q18 18 18 45t-18 45l-189 189h502q26 0 45 19t19 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf0a9;" d="M1285 640q0 27 -18 45l-91 91l-362 362q-18 18 -45 18t-45 -18l-91 -91q-18 -18 -18 -45t18 -45l189 -189h-502q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h502l-189 -189q-19 -19 -19 -45t19 -45l91 -91q18 -18 45 -18t45 18l362 362l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf0aa;" d="M1284 641q0 27 -18 45l-362 362l-91 91q-18 18 -45 18t-45 -18l-91 -91l-362 -362q-18 -18 -18 -45t18 -45l91 -91q18 -18 45 -18t45 18l189 189v-502q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v502l189 -189q19 -19 45 -19t45 19l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf0ab;" d="M1284 639q0 27 -18 45l-91 91q-18 18 -45 18t-45 -18l-189 -189v502q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-502l-189 189q-19 19 -45 19t-45 -19l-91 -91q-18 -18 -18 -45t18 -45l362 -362l91 -91q18 -18 45 -18t45 18l91 91l362 362q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf0ac;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1042 887q-2 -1 -9.5 -9.5t-13.5 -9.5q2 0 4.5 5t5 11t3.5 7q6 7 22 15q14 6 52 12q34 8 51 -11 q-2 2 9.5 13t14.5 12q3 2 15 4.5t15 7.5l2 22q-12 -1 -17.5 7t-6.5 21q0 -2 -6 -8q0 7 -4.5 8t-11.5 -1t-9 -1q-10 3 -15 7.5t-8 16.5t-4 15q-2 5 -9.5 10.5t-9.5 10.5q-1 2 -2.5 5.5t-3 6.5t-4 5.5t-5.5 2.5t-7 -5t-7.5 -10t-4.5 -5q-3 2 -6 1.5t-4.5 -1t-4.5 -3t-5 -3.5 q-3 -2 -8.5 -3t-8.5 -2q15 5 -1 11q-10 4 -16 3q9 4 7.5 12t-8.5 14h5q-1 4 -8.5 8.5t-17.5 8.5t-13 6q-8 5 -34 9.5t-33 0.5q-5 -6 -4.5 -10.5t4 -14t3.5 -12.5q1 -6 -5.5 -13t-6.5 -12q0 -7 14 -15.5t10 -21.5q-3 -8 -16 -16t-16 -12q-5 -8 -1.5 -18.5t10.5 -16.5 q2 -2 1.5 -4t-3.5 -4.5t-5.5 -4t-6.5 -3.5l-3 -2q-11 -5 -20.5 6t-13.5 26q-7 25 -16 30q-23 8 -29 -1q-5 13 -41 26q-25 9 -58 4q6 1 0 15q-7 15 -19 12q3 6 4 17.5t1 13.5q3 13 12 23q1 1 7 8.5t9.5 13.5t0.5 6q35 -4 50 11q5 5 11.5 17t10.5 17q9 6 14 5.5t14.5 -5.5 t14.5 -5q14 -1 15.5 11t-7.5 20q12 -1 3 17q-5 7 -8 9q-12 4 -27 -5q-8 -4 2 -8q-1 1 -9.5 -10.5t-16.5 -17.5t-16 5q-1 1 -5.5 13.5t-9.5 13.5q-8 0 -16 -15q3 8 -11 15t-24 8q19 12 -8 27q-7 4 -20.5 5t-19.5 -4q-5 -7 -5.5 -11.5t5 -8t10.5 -5.5t11.5 -4t8.5 -3 q14 -10 8 -14q-2 -1 -8.5 -3.5t-11.5 -4.5t-6 -4q-3 -4 0 -14t-2 -14q-5 5 -9 17.5t-7 16.5q7 -9 -25 -6l-10 1q-4 0 -16 -2t-20.5 -1t-13.5 8q-4 8 0 20q1 4 4 2q-4 3 -11 9.5t-10 8.5q-46 -15 -94 -41q6 -1 12 1q5 2 13 6.5t10 5.5q34 14 42 7l5 5q14 -16 20 -25 q-7 4 -30 1q-20 -6 -22 -12q7 -12 5 -18q-4 3 -11.5 10t-14.5 11t-15 5q-16 0 -22 -1q-146 -80 -235 -222q7 -7 12 -8q4 -1 5 -9t2.5 -11t11.5 3q9 -8 3 -19q1 1 44 -27q19 -17 21 -21q3 -11 -10 -18q-1 2 -9 9t-9 4q-3 -5 0.5 -18.5t10.5 -12.5q-7 0 -9.5 -16t-2.5 -35.5 t-1 -23.5l2 -1q-3 -12 5.5 -34.5t21.5 -19.5q-13 -3 20 -43q6 -8 8 -9q3 -2 12 -7.5t15 -10t10 -10.5q4 -5 10 -22.5t14 -23.5q-2 -6 9.5 -20t10.5 -23q-1 0 -2.5 -1t-2.5 -1q3 -7 15.5 -14t15.5 -13q1 -3 2 -10t3 -11t8 -2q2 20 -24 62q-15 25 -17 29q-3 5 -5.5 15.5 t-4.5 14.5q2 0 6 -1.5t8.5 -3.5t7.5 -4t2 -3q-3 -7 2 -17.5t12 -18.5t17 -19t12 -13q6 -6 14 -19.5t0 -13.5q9 0 20 -10t17 -20q5 -8 8 -26t5 -24q2 -7 8.5 -13.5t12.5 -9.5l16 -8t13 -7q5 -2 18.5 -10.5t21.5 -11.5q10 -4 16 -4t14.5 2.5t13.5 3.5q15 2 29 -15t21 -21 q36 -19 55 -11q-2 -1 0.5 -7.5t8 -15.5t9 -14.5t5.5 -8.5q5 -6 18 -15t18 -15q6 4 7 9q-3 -8 7 -20t18 -10q14 3 14 32q-31 -15 -49 18q0 1 -2.5 5.5t-4 8.5t-2.5 8.5t0 7.5t5 3q9 0 10 3.5t-2 12.5t-4 13q-1 8 -11 20t-12 15q-5 -9 -16 -8t-16 9q0 -1 -1.5 -5.5t-1.5 -6.5 q-13 0 -15 1q1 3 2.5 17.5t3.5 22.5q1 4 5.5 12t7.5 14.5t4 12.5t-4.5 9.5t-17.5 2.5q-19 -1 -26 -20q-1 -3 -3 -10.5t-5 -11.5t-9 -7q-7 -3 -24 -2t-24 5q-13 8 -22.5 29t-9.5 37q0 10 2.5 26.5t3 25t-5.5 24.5q3 2 9 9.5t10 10.5q2 1 4.5 1.5t4.5 0t4 1.5t3 6q-1 1 -4 3 q-3 3 -4 3q7 -3 28.5 1.5t27.5 -1.5q15 -11 22 2q0 1 -2.5 9.5t-0.5 13.5q5 -27 29 -9q3 -3 15.5 -5t17.5 -5q3 -2 7 -5.5t5.5 -4.5t5 0.5t8.5 6.5q10 -14 12 -24q11 -40 19 -44q7 -3 11 -2t4.5 9.5t0 14t-1.5 12.5l-1 8v18l-1 8q-15 3 -18.5 12t1.5 18.5t15 18.5q1 1 8 3.5 t15.5 6.5t12.5 8q21 19 15 35q7 0 11 9q-1 0 -5 3t-7.5 5t-4.5 2q9 5 2 16q5 3 7.5 11t7.5 10q9 -12 21 -2q7 8 1 16q5 7 20.5 10.5t18.5 9.5q7 -2 8 2t1 12t3 12q4 5 15 9t13 5l17 11q3 4 0 4q18 -2 31 11q10 11 -6 20q3 6 -3 9.5t-15 5.5q3 1 11.5 0.5t10.5 1.5 q15 10 -7 16q-17 5 -43 -12zM879 10q206 36 351 189q-3 3 -12.5 4.5t-12.5 3.5q-18 7 -24 8q1 7 -2.5 13t-8 9t-12.5 8t-11 7q-2 2 -7 6t-7 5.5t-7.5 4.5t-8.5 2t-10 -1l-3 -1q-3 -1 -5.5 -2.5t-5.5 -3t-4 -3t0 -2.5q-21 17 -36 22q-5 1 -11 5.5t-10.5 7t-10 1.5t-11.5 -7 q-5 -5 -6 -15t-2 -13q-7 5 0 17.5t2 18.5q-3 6 -10.5 4.5t-12 -4.5t-11.5 -8.5t-9 -6.5t-8.5 -5.5t-8.5 -7.5q-3 -4 -6 -12t-5 -11q-2 4 -11.5 6.5t-9.5 5.5q2 -10 4 -35t5 -38q7 -31 -12 -48q-27 -25 -29 -40q-4 -22 12 -26q0 -7 -8 -20.5t-7 -21.5q0 -6 2 -16z" />
+<glyph unicode="&#xf0ad;" horiz-adv-x="1664" d="M384 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1028 484l-682 -682q-37 -37 -90 -37q-52 0 -91 37l-106 108q-38 36 -38 90q0 53 38 91l681 681q39 -98 114.5 -173.5t173.5 -114.5zM1662 919q0 -39 -23 -106q-47 -134 -164.5 -217.5 t-258.5 -83.5q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q58 0 121.5 -16.5t107.5 -46.5q16 -11 16 -28t-16 -28l-293 -169v-224l193 -107q5 3 79 48.5t135.5 81t70.5 35.5q15 0 23.5 -10t8.5 -25z" />
+<glyph unicode="&#xf0ae;" horiz-adv-x="1792" d="M1024 128h640v128h-640v-128zM640 640h1024v128h-1024v-128zM1280 1152h384v128h-384v-128zM1792 320v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 832v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19 t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0b0;" horiz-adv-x="1408" d="M1403 1241q17 -41 -14 -70l-493 -493v-742q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-256 256q-19 19 -19 45v486l-493 493q-31 29 -14 70q17 39 59 39h1280q42 0 59 -39z" />
+<glyph unicode="&#xf0b1;" horiz-adv-x="1792" d="M640 1280h512v128h-512v-128zM1792 640v-480q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v480h672v-160q0 -26 19 -45t45 -19h320q26 0 45 19t19 45v160h672zM1024 640v-128h-256v128h256zM1792 1120v-384h-1792v384q0 66 47 113t113 47h352v160q0 40 28 68 t68 28h576q40 0 68 -28t28 -68v-160h352q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf0b2;" d="M1283 995l-355 -355l355 -355l144 144q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l144 144l-355 355l-355 -355l144 -144q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l144 -144 l355 355l-355 355l-144 -144q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v448q0 26 19 45t45 19h448q42 0 59 -40q17 -39 -14 -69l-144 -144l355 -355l355 355l-144 144q-31 30 -14 69q17 40 59 40h448q26 0 45 -19t19 -45v-448q0 -42 -39 -59q-13 -5 -25 -5q-26 0 -45 19z " />
+<glyph unicode="&#xf0c0;" horiz-adv-x="1920" d="M593 640q-162 -5 -265 -128h-134q-82 0 -138 40.5t-56 118.5q0 353 124 353q6 0 43.5 -21t97.5 -42.5t119 -21.5q67 0 133 23q-5 -37 -5 -66q0 -139 81 -256zM1664 3q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5 t43 97.5t62 81t85.5 53.5t111.5 20q10 0 43 -21.5t73 -48t107 -48t135 -21.5t135 21.5t107 48t73 48t43 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM640 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75 t75 -181zM1344 896q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5zM1920 671q0 -78 -56 -118.5t-138 -40.5h-134q-103 123 -265 128q81 117 81 256q0 29 -5 66q66 -23 133 -23q59 0 119 21.5t97.5 42.5 t43.5 21q124 0 124 -353zM1792 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181z" />
+<glyph unicode="&#xf0c1;" horiz-adv-x="1664" d="M1456 320q0 40 -28 68l-208 208q-28 28 -68 28q-42 0 -72 -32q3 -3 19 -18.5t21.5 -21.5t15 -19t13 -25.5t3.5 -27.5q0 -40 -28 -68t-68 -28q-15 0 -27.5 3.5t-25.5 13t-19 15t-21.5 21.5t-18.5 19q-33 -31 -33 -73q0 -40 28 -68l206 -207q27 -27 68 -27q40 0 68 26 l147 146q28 28 28 67zM753 1025q0 40 -28 68l-206 207q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l208 -208q27 -27 68 -27q42 0 72 31q-3 3 -19 18.5t-21.5 21.5t-15 19t-13 25.5t-3.5 27.5q0 40 28 68t68 28q15 0 27.5 -3.5t25.5 -13t19 -15 t21.5 -21.5t18.5 -19q33 31 33 73zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-206 207q-83 83 -83 203q0 123 88 209l-88 88q-86 -88 -208 -88q-120 0 -204 84l-208 208q-84 84 -84 204t85 203l147 146q83 83 203 83q121 0 204 -85l206 -207 q83 -83 83 -203q0 -123 -88 -209l88 -88q86 88 208 88q120 0 204 -84l208 -208q84 -84 84 -204z" />
+<glyph unicode="&#xf0c2;" horiz-adv-x="1920" d="M1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5q0 132 71 241.5t187 163.5q-2 28 -2 43q0 212 150 362t362 150q158 0 286.5 -88t187.5 -230q70 62 166 62q106 0 181 -75t75 -181q0 -75 -41 -138q129 -30 213 -134.5t84 -239.5z " />
+<glyph unicode="&#xf0c3;" horiz-adv-x="1664" d="M1527 88q56 -89 21.5 -152.5t-140.5 -63.5h-1152q-106 0 -140.5 63.5t21.5 152.5l503 793v399h-64q-26 0 -45 19t-19 45t19 45t45 19h512q26 0 45 -19t19 -45t-19 -45t-45 -19h-64v-399zM748 813l-272 -429h712l-272 429l-20 31v37v399h-128v-399v-37z" />
+<glyph unicode="&#xf0c4;" horiz-adv-x="1792" d="M960 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1260 576l507 -398q28 -20 25 -56q-5 -35 -35 -51l-128 -64q-13 -7 -29 -7q-17 0 -31 8l-690 387l-110 -66q-8 -4 -12 -5q14 -49 10 -97q-7 -77 -56 -147.5t-132 -123.5q-132 -84 -277 -84 q-136 0 -222 78q-90 84 -79 207q7 76 56 147t131 124q132 84 278 84q83 0 151 -31q9 13 22 22l122 73l-122 73q-13 9 -22 22q-68 -31 -151 -31q-146 0 -278 84q-82 53 -131 124t-56 147q-5 59 15.5 113t63.5 93q85 79 222 79q145 0 277 -84q83 -52 132 -123t56 -148 q4 -48 -10 -97q4 -1 12 -5l110 -66l690 387q14 8 31 8q16 0 29 -7l128 -64q30 -16 35 -51q3 -36 -25 -56zM579 836q46 42 21 108t-106 117q-92 59 -192 59q-74 0 -113 -36q-46 -42 -21 -108t106 -117q92 -59 192 -59q74 0 113 36zM494 91q81 51 106 117t-21 108 q-39 36 -113 36q-100 0 -192 -59q-81 -51 -106 -117t21 -108q39 -36 113 -36q100 0 192 59zM672 704l96 -58v11q0 36 33 56l14 8l-79 47l-26 -26q-3 -3 -10 -11t-12 -12q-2 -2 -4 -3.5t-3 -2.5zM896 480l96 -32l736 576l-128 64l-768 -431v-113l-160 -96l9 -8q2 -2 7 -6 q4 -4 11 -12t11 -12l26 -26zM1600 64l128 64l-520 408l-177 -138q-2 -3 -13 -7z" />
+<glyph unicode="&#xf0c5;" horiz-adv-x="1792" d="M1696 1152q40 0 68 -28t28 -68v-1216q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v288h-544q-40 0 -68 28t-28 68v672q0 40 20 88t48 76l408 408q28 28 76 48t88 20h416q40 0 68 -28t28 -68v-328q68 40 128 40h416zM1152 939l-299 -299h299v299zM512 1323l-299 -299 h299v299zM708 676l316 316v416h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h512v256q0 40 20 88t48 76zM1664 -128v1152h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h896z" />
+<glyph unicode="&#xf0c6;" horiz-adv-x="1408" d="M1404 151q0 -117 -79 -196t-196 -79q-135 0 -235 100l-777 776q-113 115 -113 271q0 159 110 270t269 111q158 0 273 -113l605 -606q10 -10 10 -22q0 -16 -30.5 -46.5t-46.5 -30.5q-13 0 -23 10l-606 607q-79 77 -181 77q-106 0 -179 -75t-73 -181q0 -105 76 -181 l776 -777q63 -63 145 -63q64 0 106 42t42 106q0 82 -63 145l-581 581q-26 24 -60 24q-29 0 -48 -19t-19 -48q0 -32 25 -59l410 -410q10 -10 10 -22q0 -16 -31 -47t-47 -31q-12 0 -22 10l-410 410q-63 61 -63 149q0 82 57 139t139 57q88 0 149 -63l581 -581q100 -98 100 -235 z" />
+<glyph unicode="&#xf0c7;" d="M384 0h768v384h-768v-384zM1280 0h128v896q0 14 -10 38.5t-20 34.5l-281 281q-10 10 -34 20t-39 10v-416q0 -40 -28 -68t-68 -28h-576q-40 0 -68 28t-28 68v416h-128v-1280h128v416q0 40 28 68t68 28h832q40 0 68 -28t28 -68v-416zM896 928v320q0 13 -9.5 22.5t-22.5 9.5 h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5zM1536 896v-928q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h928q40 0 88 -20t76 -48l280 -280q28 -28 48 -76t20 -88z" />
+<glyph unicode="&#xf0c8;" d="M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf0c9;" d="M1536 192v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 704v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 1216v-128q0 -26 -19 -45 t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0ca;" horiz-adv-x="1792" d="M384 128q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 640q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1152q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z M1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
+<glyph unicode="&#xf0cb;" horiz-adv-x="1792" d="M381 -84q0 -80 -54.5 -126t-135.5 -46q-106 0 -172 66l57 88q49 -45 106 -45q29 0 50.5 14.5t21.5 42.5q0 64 -105 56l-26 56q8 10 32.5 43.5t42.5 54t37 38.5v1q-16 0 -48.5 -1t-48.5 -1v-53h-106v152h333v-88l-95 -115q51 -12 81 -49t30 -88zM383 543v-159h-362 q-6 36 -6 54q0 51 23.5 93t56.5 68t66 47.5t56.5 43.5t23.5 45q0 25 -14.5 38.5t-39.5 13.5q-46 0 -81 -58l-85 59q24 51 71.5 79.5t105.5 28.5q73 0 123 -41.5t50 -112.5q0 -50 -34 -91.5t-75 -64.5t-75.5 -50.5t-35.5 -52.5h127v60h105zM1792 224v-192q0 -13 -9.5 -22.5 t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1123v-99h-335v99h107q0 41 0.5 122t0.5 121v12h-2q-8 -17 -50 -54l-71 76l136 127h106v-404h108zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5 t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
+<glyph unicode="&#xf0cc;" horiz-adv-x="1792" d="M1760 640q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h1728zM483 704q-28 35 -51 80q-48 97 -48 188q0 181 134 309q133 127 393 127q50 0 167 -19q66 -12 177 -48q10 -38 21 -118q14 -123 14 -183q0 -18 -5 -45l-12 -3l-84 6 l-14 2q-50 149 -103 205q-88 91 -210 91q-114 0 -182 -59q-67 -58 -67 -146q0 -73 66 -140t279 -129q69 -20 173 -66q58 -28 95 -52h-743zM990 448h411q7 -39 7 -92q0 -111 -41 -212q-23 -55 -71 -104q-37 -35 -109 -81q-80 -48 -153 -66q-80 -21 -203 -21q-114 0 -195 23 l-140 40q-57 16 -72 28q-8 8 -8 22v13q0 108 -2 156q-1 30 0 68l2 37v44l102 2q15 -34 30 -71t22.5 -56t12.5 -27q35 -57 80 -94q43 -36 105 -57q59 -22 132 -22q64 0 139 27q77 26 122 86q47 61 47 129q0 84 -81 157q-34 29 -137 71z" />
+<glyph unicode="&#xf0cd;" d="M48 1313q-37 2 -45 4l-3 88q13 1 40 1q60 0 112 -4q132 -7 166 -7q86 0 168 3q116 4 146 5q56 0 86 2l-1 -14l2 -64v-9q-60 -9 -124 -9q-60 0 -79 -25q-13 -14 -13 -132q0 -13 0.5 -32.5t0.5 -25.5l1 -229l14 -280q6 -124 51 -202q35 -59 96 -92q88 -47 177 -47 q104 0 191 28q56 18 99 51q48 36 65 64q36 56 53 114q21 73 21 229q0 79 -3.5 128t-11 122.5t-13.5 159.5l-4 59q-5 67 -24 88q-34 35 -77 34l-100 -2l-14 3l2 86h84l205 -10q76 -3 196 10l18 -2q6 -38 6 -51q0 -7 -4 -31q-45 -12 -84 -13q-73 -11 -79 -17q-15 -15 -15 -41 q0 -7 1.5 -27t1.5 -31q8 -19 22 -396q6 -195 -15 -304q-15 -76 -41 -122q-38 -65 -112 -123q-75 -57 -182 -89q-109 -33 -255 -33q-167 0 -284 46q-119 47 -179 122q-61 76 -83 195q-16 80 -16 237v333q0 188 -17 213q-25 36 -147 39zM1536 -96v64q0 14 -9 23t-23 9h-1472 q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h1472q14 0 23 9t9 23z" />
+<glyph unicode="&#xf0ce;" horiz-adv-x="1664" d="M512 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23 v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 160v192 q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192 q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1664 1248v-1088q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1344q66 0 113 -47t47 -113 z" />
+<glyph unicode="&#xf0d0;" horiz-adv-x="1664" d="M1190 955l293 293l-107 107l-293 -293zM1637 1248q0 -27 -18 -45l-1286 -1286q-18 -18 -45 -18t-45 18l-198 198q-18 18 -18 45t18 45l1286 1286q18 18 45 18t45 -18l198 -198q18 -18 18 -45zM286 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM636 1276 l196 -60l-196 -60l-60 -196l-60 196l-196 60l196 60l60 196zM1566 798l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM926 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98z" />
+<glyph unicode="&#xf0d1;" horiz-adv-x="1792" d="M640 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM1536 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1792 1216v-1024q0 -15 -4 -26.5t-13.5 -18.5 t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5 18.5t-4 26.5q0 26 19 45t45 19v320q0 8 -0.5 35t0 38 t2.5 34.5t6.5 37t14 30.5t22.5 30l198 198q19 19 50.5 32t58.5 13h160v192q0 26 19 45t45 19h1024q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0d2;" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134 q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5q8 35 26.5 93.5t30 103t11.5 75.5q0 50 -27 83t-77 33 q-62 0 -105 -57t-43 -142q0 -73 25 -122l-99 -418q-17 -70 -13 -177q-206 91 -333 281t-127 423q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf0d3;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5q-104 0 -194.5 -28.5t-153 -76.5 t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118q-60 0 -97 43.5t-23 103.5q8 34 26.5 92.5 t29.5 102t11 74.5q0 49 -26.5 81.5t-75.5 32.5q-61 0 -103.5 -56.5t-42.5 -139.5q0 -72 24 -121l-98 -414q-24 -100 -7 -254h-183q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960z" />
+<glyph unicode="&#xf0d4;" d="M829 318q0 -76 -58.5 -112.5t-139.5 -36.5q-41 0 -80.5 9.5t-75.5 28.5t-58 53t-22 78q0 46 25 80t65.5 51.5t82 25t84.5 7.5q20 0 31 -2q2 -1 23 -16.5t26 -19t23 -18t24.5 -22t19 -22.5t17 -26t9 -26.5t4.5 -31.5zM755 863q0 -60 -33 -99.5t-92 -39.5q-53 0 -93 42.5 t-57.5 96.5t-17.5 106q0 61 32 104t92 43q53 0 93.5 -45t58 -101t17.5 -107zM861 1120l88 64h-265q-85 0 -161 -32t-127.5 -98t-51.5 -153q0 -93 64.5 -154.5t158.5 -61.5q22 0 43 3q-13 -29 -13 -54q0 -44 40 -94q-175 -12 -257 -63q-47 -29 -75.5 -73t-28.5 -95 q0 -43 18.5 -77.5t48.5 -56.5t69 -37t77.5 -21t76.5 -6q60 0 120.5 15.5t113.5 46t86 82.5t33 117q0 49 -20 89.5t-49 66.5t-58 47.5t-49 44t-20 44.5t15.5 42.5t37.5 39.5t44 42t37.5 59.5t15.5 82.5q0 60 -22.5 99.5t-72.5 90.5h83zM1152 672h128v64h-128v128h-64v-128 h-128v-64h128v-160h64v160zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf0d5;" horiz-adv-x="1664" d="M735 740q0 -36 32 -70.5t77.5 -68t90.5 -73.5t77 -104t32 -142q0 -90 -48 -173q-72 -122 -211 -179.5t-298 -57.5q-132 0 -246.5 41.5t-171.5 137.5q-37 60 -37 131q0 81 44.5 150t118.5 115q131 82 404 100q-32 42 -47.5 74t-15.5 73q0 36 21 85q-46 -4 -68 -4 q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q77 66 182.5 98t217.5 32h418l-138 -88h-131q74 -63 112 -133t38 -160q0 -72 -24.5 -129.5t-59 -93t-69.5 -65t-59.5 -61.5t-24.5 -66zM589 836q38 0 78 16.5t66 43.5q53 57 53 159q0 58 -17 125t-48.5 129.5 t-84.5 103.5t-117 41q-42 0 -82.5 -19.5t-65.5 -52.5q-47 -59 -47 -160q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26zM591 -37q58 0 111.5 13t99 39t73 73t27.5 109q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -48 2 q-53 0 -105 -7t-107.5 -25t-97 -46t-68.5 -74.5t-27 -105.5q0 -70 35 -123.5t91.5 -83t119 -44t127.5 -14.5zM1401 839h213v-108h-213v-219h-105v219h-212v108h212v217h105v-217z" />
+<glyph unicode="&#xf0d6;" horiz-adv-x="1920" d="M768 384h384v96h-128v448h-114l-148 -137l77 -80q42 37 55 57h2v-288h-128v-96zM1280 640q0 -70 -21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142t21 142t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142zM1792 384 v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512q106 0 181 -75t75 -181h1152q0 106 75 181t181 75zM1920 1216v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45v1152q0 26 19 45t45 19h1792q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0d7;" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0d8;" horiz-adv-x="1024" d="M1024 320q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
+<glyph unicode="&#xf0d9;" horiz-adv-x="640" d="M640 1088v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45t19 45l448 448q19 19 45 19t45 -19t19 -45z" />
+<glyph unicode="&#xf0da;" horiz-adv-x="640" d="M576 640q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45z" />
+<glyph unicode="&#xf0db;" horiz-adv-x="1664" d="M160 0h608v1152h-640v-1120q0 -13 9.5 -22.5t22.5 -9.5zM1536 32v1120h-640v-1152h608q13 0 22.5 9.5t9.5 22.5zM1664 1248v-1216q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1344q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf0dc;" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45zM1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
+<glyph unicode="&#xf0dd;" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0de;" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
+<glyph unicode="&#xf0e0;" horiz-adv-x="1792" d="M1792 826v-794q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v794q44 -49 101 -87q362 -246 497 -345q57 -42 92.5 -65.5t94.5 -48t110 -24.5h1h1q51 0 110 24.5t94.5 48t92.5 65.5q170 123 498 345q57 39 100 87zM1792 1120q0 -79 -49 -151t-122 -123 q-376 -261 -468 -325q-10 -7 -42.5 -30.5t-54 -38t-52 -32.5t-57.5 -27t-50 -9h-1h-1q-23 0 -50 9t-57.5 27t-52 32.5t-54 38t-42.5 30.5q-91 64 -262 182.5t-205 142.5q-62 42 -117 115.5t-55 136.5q0 78 41.5 130t118.5 52h1472q65 0 112.5 -47t47.5 -113z" />
+<glyph unicode="&#xf0e1;" d="M349 911v-991h-330v991h330zM370 1217q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5zM1536 488v-568h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329 q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5z" />
+<glyph unicode="&#xf0e2;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298z" />
+<glyph unicode="&#xf0e3;" horiz-adv-x="1792" d="M1771 0q0 -53 -37 -90l-107 -108q-39 -37 -91 -37q-53 0 -90 37l-363 364q-38 36 -38 90q0 53 43 96l-256 256l-126 -126q-14 -14 -34 -14t-34 14q2 -2 12.5 -12t12.5 -13t10 -11.5t10 -13.5t6 -13.5t5.5 -16.5t1.5 -18q0 -38 -28 -68q-3 -3 -16.5 -18t-19 -20.5 t-18.5 -16.5t-22 -15.5t-22 -9t-26 -4.5q-40 0 -68 28l-408 408q-28 28 -28 68q0 13 4.5 26t9 22t15.5 22t16.5 18.5t20.5 19t18 16.5q30 28 68 28q10 0 18 -1.5t16.5 -5.5t13.5 -6t13.5 -10t11.5 -10t13 -12.5t12 -12.5q-14 14 -14 34t14 34l348 348q14 14 34 14t34 -14 q-2 2 -12.5 12t-12.5 13t-10 11.5t-10 13.5t-6 13.5t-5.5 16.5t-1.5 18q0 38 28 68q3 3 16.5 18t19 20.5t18.5 16.5t22 15.5t22 9t26 4.5q40 0 68 -28l408 -408q28 -28 28 -68q0 -13 -4.5 -26t-9 -22t-15.5 -22t-16.5 -18.5t-20.5 -19t-18 -16.5q-30 -28 -68 -28 q-10 0 -18 1.5t-16.5 5.5t-13.5 6t-13.5 10t-11.5 10t-13 12.5t-12 12.5q14 -14 14 -34t-14 -34l-126 -126l256 -256q43 43 96 43q52 0 91 -37l363 -363q37 -39 37 -91z" />
+<glyph unicode="&#xf0e4;" horiz-adv-x="1792" d="M384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM576 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1004 351l101 382q6 26 -7.5 48.5t-38.5 29.5 t-48 -6.5t-30 -39.5l-101 -382q-60 -5 -107 -43.5t-63 -98.5q-20 -77 20 -146t117 -89t146 20t89 117q16 60 -6 117t-72 91zM1664 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 1024q0 53 -37.5 90.5 t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1472 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 384q0 -261 -141 -483q-19 -29 -54 -29h-1402q-35 0 -54 29 q-141 221 -141 483q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+<glyph unicode="&#xf0e5;" horiz-adv-x="1792" d="M896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640 q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 174 120 321.5 t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" />
+<glyph unicode="&#xf0e6;" horiz-adv-x="1792" d="M704 1152q-153 0 -286 -52t-211.5 -141t-78.5 -191q0 -82 53 -158t149 -132l97 -56l-35 -84q34 20 62 39l44 31l53 -10q78 -14 153 -14q153 0 286 52t211.5 141t78.5 191t-78.5 191t-211.5 141t-286 52zM704 1280q191 0 353.5 -68.5t256.5 -186.5t94 -257t-94 -257 t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224q0 139 94 257t256.5 186.5 t353.5 68.5zM1526 111q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129 q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5z" />
+<glyph unicode="&#xf0e7;" horiz-adv-x="896" d="M885 970q18 -20 7 -44l-540 -1157q-13 -25 -42 -25q-4 0 -14 2q-17 5 -25.5 19t-4.5 30l197 808l-406 -101q-4 -1 -12 -1q-18 0 -31 11q-18 15 -13 39l201 825q4 14 16 23t28 9h328q19 0 32 -12.5t13 -29.5q0 -8 -5 -18l-171 -463l396 98q8 2 12 2q19 0 34 -15z" />
+<glyph unicode="&#xf0e8;" horiz-adv-x="1792" d="M1792 288v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192q0 52 38 90t90 38h512v192h-96q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-96v-192h512q52 0 90 -38t38 -90v-192h96q40 0 68 -28t28 -68 z" />
+<glyph unicode="&#xf0e9;" horiz-adv-x="1664" d="M896 708v-580q0 -104 -76 -180t-180 -76t-180 76t-76 180q0 26 19 45t45 19t45 -19t19 -45q0 -50 39 -89t89 -39t89 39t39 89v580q33 11 64 11t64 -11zM1664 681q0 -13 -9.5 -22.5t-22.5 -9.5q-11 0 -23 10q-49 46 -93 69t-102 23q-68 0 -128 -37t-103 -97 q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -28 -17q-18 0 -29 17q-4 6 -14.5 24t-17.5 28q-43 60 -102.5 97t-127.5 37t-127.5 -37t-102.5 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -29 -17q-17 0 -28 17q-4 6 -14.5 24t-17.5 28q-43 60 -103 97t-128 37q-58 0 -102 -23t-93 -69 q-12 -10 -23 -10q-13 0 -22.5 9.5t-9.5 22.5q0 5 1 7q45 183 172.5 319.5t298 204.5t360.5 68q140 0 274.5 -40t246.5 -113.5t194.5 -187t115.5 -251.5q1 -2 1 -7zM896 1408v-98q-42 2 -64 2t-64 -2v98q0 26 19 45t45 19t45 -19t19 -45z" />
+<glyph unicode="&#xf0ea;" horiz-adv-x="1792" d="M768 -128h896v640h-416q-40 0 -68 28t-28 68v416h-384v-1152zM1024 1312v64q0 13 -9.5 22.5t-22.5 9.5h-704q-13 0 -22.5 -9.5t-9.5 -22.5v-64q0 -13 9.5 -22.5t22.5 -9.5h704q13 0 22.5 9.5t9.5 22.5zM1280 640h299l-299 299v-299zM1792 512v-672q0 -40 -28 -68t-68 -28 h-960q-40 0 -68 28t-28 68v160h-544q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1088q40 0 68 -28t28 -68v-328q21 -13 36 -28l408 -408q28 -28 48 -76t20 -88z" />
+<glyph unicode="&#xf0eb;" horiz-adv-x="1024" d="M736 960q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5q0 46 -54 71t-106 25q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5q50 0 99.5 -16t87 -54t37.5 -90zM896 960q0 72 -34.5 134t-90 101.5t-123 62t-136.5 22.5t-136.5 -22.5t-123 -62t-90 -101.5t-34.5 -134 q0 -101 68 -180q10 -11 30.5 -33t30.5 -33q128 -153 141 -298h228q13 145 141 298q10 11 30.5 33t30.5 33q68 79 68 180zM1024 960q0 -155 -103 -268q-45 -49 -74.5 -87t-59.5 -95.5t-34 -107.5q47 -28 47 -82q0 -37 -25 -64q25 -27 25 -64q0 -52 -45 -81q13 -23 13 -47 q0 -46 -31.5 -71t-77.5 -25q-20 -44 -60 -70t-87 -26t-87 26t-60 70q-46 0 -77.5 25t-31.5 71q0 24 13 47q-45 29 -45 81q0 37 25 64q-25 27 -25 64q0 54 47 82q-4 50 -34 107.5t-59.5 95.5t-74.5 87q-103 113 -103 268q0 99 44.5 184.5t117 142t164 89t186.5 32.5 t186.5 -32.5t164 -89t117 -142t44.5 -184.5z" />
+<glyph unicode="&#xf0ec;" horiz-adv-x="1792" d="M1792 352v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5q-12 0 -24 10l-319 320q-9 9 -9 22q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h1376q13 0 22.5 -9.5t9.5 -22.5zM1792 896q0 -14 -9 -23l-320 -320q-9 -9 -23 -9 q-13 0 -22.5 9.5t-9.5 22.5v192h-1376q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1376v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
+<glyph unicode="&#xf0ed;" horiz-adv-x="1920" d="M1280 608q0 14 -9 23t-23 9h-224v352q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-352h-224q-13 0 -22.5 -9.5t-9.5 -22.5q0 -14 9 -23l352 -352q9 -9 23 -9t23 9l351 351q10 12 10 24zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
+<glyph unicode="&#xf0ee;" horiz-adv-x="1920" d="M1280 672q0 14 -9 23l-352 352q-9 9 -23 9t-23 -9l-351 -351q-10 -12 -10 -24q0 -14 9 -23t23 -9h224v-352q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v352h224q13 0 22.5 9.5t9.5 22.5zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
+<glyph unicode="&#xf0f0;" horiz-adv-x="1408" d="M384 192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 68 5.5 131t24 138t47.5 132.5t81 103t120 60.5q-22 -52 -22 -120v-203q-58 -20 -93 -70t-35 -111q0 -80 56 -136t136 -56 t136 56t56 136q0 61 -35.5 111t-92.5 70v203q0 62 25 93q132 -104 295 -104t295 104q25 -31 25 -93v-64q-106 0 -181 -75t-75 -181v-89q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 52 38 90t90 38t90 -38t38 -90v-89q-32 -29 -32 -71q0 -40 28 -68 t68 -28t68 28t28 68q0 42 -32 71v89q0 68 -34.5 127.5t-93.5 93.5q0 10 0.5 42.5t0 48t-2.5 41.5t-7 47t-13 40q68 -15 120 -60.5t81 -103t47.5 -132.5t24 -138t5.5 -131zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5 t271.5 -112.5t112.5 -271.5z" />
+<glyph unicode="&#xf0f1;" horiz-adv-x="1408" d="M1280 832q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 832q0 -62 -35.5 -111t-92.5 -70v-395q0 -159 -131.5 -271.5t-316.5 -112.5t-316.5 112.5t-131.5 271.5v132q-164 20 -274 128t-110 252v512q0 26 19 45t45 19q6 0 16 -2q17 30 47 48 t65 18q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5q-33 0 -64 18v-402q0 -106 94 -181t226 -75t226 75t94 181v402q-31 -18 -64 -18q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5q35 0 65 -18t47 -48q10 2 16 2q26 0 45 -19t19 -45v-512q0 -144 -110 -252 t-274 -128v-132q0 -106 94 -181t226 -75t226 75t94 181v395q-57 21 -92.5 70t-35.5 111q0 80 56 136t136 56t136 -56t56 -136z" />
+<glyph unicode="&#xf0f2;" horiz-adv-x="1792" d="M640 1152h512v128h-512v-128zM288 1152v-1280h-64q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h64zM1408 1152v-1280h-1024v1280h128v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h128zM1792 928v-832q0 -92 -66 -158t-158 -66h-64v1280h64q92 0 158 -66 t66 -158z" />
+<glyph unicode="&#xf0f3;" horiz-adv-x="1792" d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5 t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" />
+<glyph unicode="&#xf0f4;" horiz-adv-x="1920" d="M1664 896q0 80 -56 136t-136 56h-64v-384h64q80 0 136 56t56 136zM0 128h1792q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM1856 896q0 -159 -112.5 -271.5t-271.5 -112.5h-64v-32q0 -92 -66 -158t-158 -66h-704q-92 0 -158 66t-66 158v736q0 26 19 45 t45 19h1152q159 0 271.5 -112.5t112.5 -271.5z" />
+<glyph unicode="&#xf0f5;" horiz-adv-x="1408" d="M640 1472v-640q0 -61 -35.5 -111t-92.5 -70v-779q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v779q-57 20 -92.5 70t-35.5 111v640q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45 t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45zM1408 1472v-1600q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v512h-224q-13 0 -22.5 9.5t-9.5 22.5v800q0 132 94 226t226 94h256q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0f6;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M384 736q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64zM1120 512q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704zM1120 256q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704 q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704z" />
+<glyph unicode="&#xf0f7;" horiz-adv-x="1408" d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 -128h384v1536h-1152v-1536h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM1408 1472v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0f8;" horiz-adv-x="1408" d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 -128h384v1152h-256v-32q0 -40 -28 -68t-68 -28h-448q-40 0 -68 28t-28 68v32h-256v-1152h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM896 1056v320q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-96h-128v96q0 13 -9.5 22.5 t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v96h128v-96q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1408 1088v-1280q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1280q0 26 19 45t45 19h320 v288q0 40 28 68t68 28h448q40 0 68 -28t28 -68v-288h320q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0f9;" horiz-adv-x="1920" d="M640 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM256 640h384v256h-158q-14 -2 -22 -9l-195 -195q-7 -12 -9 -22v-30zM1536 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1664 800v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM1920 1344v-1152 q0 -26 -19 -45t-45 -19h-192q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-128q-26 0 -45 19t-19 45t19 45t45 19v416q0 26 13 58t32 51l198 198q19 19 51 32t58 13h160v320q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0fa;" horiz-adv-x="1792" d="M1280 416v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM640 1152h512v128h-512v-128zM256 1152v-1280h-32 q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h32zM1440 1152v-1280h-1088v1280h160v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h160zM1792 928v-832q0 -92 -66 -158t-158 -66h-32v1280h32q92 0 158 -66t66 -158z" />
+<glyph unicode="&#xf0fb;" horiz-adv-x="1920" d="M1920 576q-1 -32 -288 -96l-352 -32l-224 -64h-64l-293 -352h69q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-96h-160h-64v32h64v416h-160l-192 -224h-96l-32 32v192h32v32h128v8l-192 24v128l192 24v8h-128v32h-32v192l32 32h96l192 -224h160v416h-64v32h64h160h96 q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-69l293 -352h64l224 -64l352 -32q261 -58 287 -93z" />
+<glyph unicode="&#xf0fc;" horiz-adv-x="1664" d="M640 640v384h-256v-256q0 -53 37.5 -90.5t90.5 -37.5h128zM1664 192v-192h-1152v192l128 192h-128q-159 0 -271.5 112.5t-112.5 271.5v320l-64 64l32 128h480l32 128h960l32 -192l-64 -32v-800z" />
+<glyph unicode="&#xf0fd;" d="M1280 192v896q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-512v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-896q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h512v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf0fe;" d="M1280 576v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf100;" horiz-adv-x="1024" d="M627 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23zM1011 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23z" />
+<glyph unicode="&#xf101;" horiz-adv-x="1024" d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM979 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23 l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+<glyph unicode="&#xf102;" horiz-adv-x="1152" d="M1075 224q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM1075 608q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393 q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+<glyph unicode="&#xf103;" horiz-adv-x="1152" d="M1075 672q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23zM1075 1056q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
+<glyph unicode="&#xf104;" horiz-adv-x="640" d="M627 992q0 -13 -10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
+<glyph unicode="&#xf105;" horiz-adv-x="640" d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+<glyph unicode="&#xf106;" horiz-adv-x="1152" d="M1075 352q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+<glyph unicode="&#xf107;" horiz-adv-x="1152" d="M1075 800q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
+<glyph unicode="&#xf108;" horiz-adv-x="1920" d="M1792 544v832q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1376v-1088q0 -66 -47 -113t-113 -47h-544q0 -37 16 -77.5t32 -71t16 -43.5q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19 t-19 45q0 14 16 44t32 70t16 78h-544q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf109;" horiz-adv-x="1920" d="M416 256q-66 0 -113 47t-47 113v704q0 66 47 113t113 47h1088q66 0 113 -47t47 -113v-704q0 -66 -47 -113t-113 -47h-1088zM384 1120v-704q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5z M1760 192h160v-96q0 -40 -47 -68t-113 -28h-1600q-66 0 -113 28t-47 68v96h160h1600zM1040 96q16 0 16 16t-16 16h-160q-16 0 -16 -16t16 -16h160z" />
+<glyph unicode="&#xf10a;" horiz-adv-x="1152" d="M640 128q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1024 288v960q0 13 -9.5 22.5t-22.5 9.5h-832q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h832q13 0 22.5 9.5t9.5 22.5zM1152 1248v-1088q0 -66 -47 -113t-113 -47h-832 q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h832q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf10b;" horiz-adv-x="768" d="M464 128q0 33 -23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5t56.5 23.5t23.5 56.5zM672 288v704q0 13 -9.5 22.5t-22.5 9.5h-512q-13 0 -22.5 -9.5t-9.5 -22.5v-704q0 -13 9.5 -22.5t22.5 -9.5h512q13 0 22.5 9.5t9.5 22.5zM480 1136 q0 16 -16 16h-160q-16 0 -16 -16t16 -16h160q16 0 16 16zM768 1152v-1024q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v1024q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf10c;" d="M768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103 t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf10d;" horiz-adv-x="1664" d="M768 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z M1664 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z" />
+<glyph unicode="&#xf10e;" horiz-adv-x="1664" d="M768 1216v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136zM1664 1216 v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136z" />
+<glyph unicode="&#xf110;" horiz-adv-x="1792" d="M526 142q0 -53 -37.5 -90.5t-90.5 -37.5q-52 0 -90 38t-38 90q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 -64q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM320 640q0 -53 -37.5 -90.5t-90.5 -37.5 t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1522 142q0 -52 -38 -90t-90 -38q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM558 1138q0 -66 -47 -113t-113 -47t-113 47t-47 113t47 113t113 47t113 -47t47 -113z M1728 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1088 1344q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1618 1138q0 -93 -66 -158.5t-158 -65.5q-93 0 -158.5 65.5t-65.5 158.5 q0 92 65.5 158t158.5 66q92 0 158 -66t66 -158z" />
+<glyph unicode="&#xf111;" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf112;" horiz-adv-x="1792" d="M1792 416q0 -166 -127 -451q-3 -7 -10.5 -24t-13.5 -30t-13 -22q-12 -17 -28 -17q-15 0 -23.5 10t-8.5 25q0 9 2.5 26.5t2.5 23.5q5 68 5 123q0 101 -17.5 181t-48.5 138.5t-80 101t-105.5 69.5t-133 42.5t-154 21.5t-175.5 6h-224v-256q0 -26 -19 -45t-45 -19t-45 19 l-512 512q-19 19 -19 45t19 45l512 512q19 19 45 19t45 -19t19 -45v-256h224q713 0 875 -403q53 -134 53 -333z" />
+<glyph unicode="&#xf113;" horiz-adv-x="1664" d="M640 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1280 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1440 320 q0 120 -69 204t-187 84q-41 0 -195 -21q-71 -11 -157 -11t-157 11q-152 21 -195 21q-118 0 -187 -84t-69 -204q0 -88 32 -153.5t81 -103t122 -60t140 -29.5t149 -7h168q82 0 149 7t140 29.5t122 60t81 103t32 153.5zM1664 496q0 -207 -61 -331q-38 -77 -105.5 -133t-141 -86 t-170 -47.5t-171.5 -22t-167 -4.5q-78 0 -142 3t-147.5 12.5t-152.5 30t-137 51.5t-121 81t-86 115q-62 123 -62 331q0 237 136 396q-27 82 -27 170q0 116 51 218q108 0 190 -39.5t189 -123.5q147 35 309 35q148 0 280 -32q105 82 187 121t189 39q51 -102 51 -218 q0 -87 -27 -168q136 -160 136 -398z" />
+<glyph unicode="&#xf114;" horiz-adv-x="1664" d="M1536 224v704q0 40 -28 68t-68 28h-704q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-960q0 -40 28 -68t68 -28h1216q40 0 68 28t28 68zM1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320 q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
+<glyph unicode="&#xf115;" horiz-adv-x="1920" d="M1781 605q0 35 -53 35h-1088q-40 0 -85.5 -21.5t-71.5 -52.5l-294 -363q-18 -24 -18 -40q0 -35 53 -35h1088q40 0 86 22t71 53l294 363q18 22 18 39zM640 768h768v160q0 40 -28 68t-68 28h-576q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68 v-853l256 315q44 53 116 87.5t140 34.5zM1909 605q0 -62 -46 -120l-295 -363q-43 -53 -116 -87.5t-140 -34.5h-1088q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h192q54 0 99 -24.5t67 -70.5q15 -32 15 -68z " />
+<glyph unicode="&#xf116;" horiz-adv-x="1792" />
+<glyph unicode="&#xf117;" horiz-adv-x="1792" />
+<glyph unicode="&#xf118;" d="M1134 461q-37 -121 -138 -195t-228 -74t-228 74t-138 195q-8 25 4 48.5t38 31.5q25 8 48.5 -4t31.5 -38q25 -80 92.5 -129.5t151.5 -49.5t151.5 49.5t92.5 129.5q8 26 32 38t49 4t37 -31.5t4 -48.5zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5 t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf119;" d="M1134 307q8 -25 -4 -48.5t-37 -31.5t-49 4t-32 38q-25 80 -92.5 129.5t-151.5 49.5t-151.5 -49.5t-92.5 -129.5q-8 -26 -31.5 -38t-48.5 -4q-26 8 -38 31.5t-4 48.5q37 121 138 195t228 74t228 -74t138 -195zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204 t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf11a;" d="M1152 448q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h640q26 0 45 -19t19 -45zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf11b;" horiz-adv-x="1920" d="M832 448v128q0 14 -9 23t-23 9h-192v192q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-192h-192q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h192v-192q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v192h192q14 0 23 9t9 23zM1408 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1920 512q0 -212 -150 -362t-362 -150q-192 0 -338 128h-220q-146 -128 -338 -128q-212 0 -362 150 t-150 362t150 362t362 150h896q212 0 362 -150t150 -362z" />
+<glyph unicode="&#xf11c;" horiz-adv-x="1920" d="M384 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM512 624v-96q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h224q16 0 16 -16zM384 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 368v-96q0 -16 -16 -16 h-864q-16 0 -16 16v96q0 16 16 16h864q16 0 16 -16zM768 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM640 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1024 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16 h96q16 0 16 -16zM896 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1280 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1152 880v-96 q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 880v-352q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h112v240q0 16 16 16h96q16 0 16 -16zM1792 128v896h-1664v-896 h1664zM1920 1024v-896q0 -53 -37.5 -90.5t-90.5 -37.5h-1664q-53 0 -90.5 37.5t-37.5 90.5v896q0 53 37.5 90.5t90.5 37.5h1664q53 0 90.5 -37.5t37.5 -90.5z" />
+<glyph unicode="&#xf11d;" horiz-adv-x="1792" d="M1664 491v616q-169 -91 -306 -91q-82 0 -145 32q-100 49 -184 76.5t-178 27.5q-173 0 -403 -127v-599q245 113 433 113q55 0 103.5 -7.5t98 -26t77 -31t82.5 -39.5l28 -14q44 -22 101 -22q120 0 293 92zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9 h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102 q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
+<glyph unicode="&#xf11e;" horiz-adv-x="1792" d="M832 536v192q-181 -16 -384 -117v-185q205 96 384 110zM832 954v197q-172 -8 -384 -126v-189q215 111 384 118zM1664 491v184q-235 -116 -384 -71v224q-20 6 -39 15q-5 3 -33 17t-34.5 17t-31.5 15t-34.5 15.5t-32.5 13t-36 12.5t-35 8.5t-39.5 7.5t-39.5 4t-44 2 q-23 0 -49 -3v-222h19q102 0 192.5 -29t197.5 -82q19 -9 39 -15v-188q42 -17 91 -17q120 0 293 92zM1664 918v189q-169 -91 -306 -91q-45 0 -78 8v-196q148 -42 384 90zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266 q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8 q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
+<glyph unicode="&#xf120;" horiz-adv-x="1664" d="M585 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23zM1664 96v-64q0 -14 -9 -23t-23 -9h-960q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h960q14 0 23 -9 t9 -23z" />
+<glyph unicode="&#xf121;" horiz-adv-x="1920" d="M617 137l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23zM1208 1204l-373 -1291q-4 -13 -15.5 -19.5t-23.5 -2.5l-62 17q-13 4 -19.5 15.5t-2.5 24.5 l373 1291q4 13 15.5 19.5t23.5 2.5l62 -17q13 -4 19.5 -15.5t2.5 -24.5zM1865 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23z" />
+<glyph unicode="&#xf122;" horiz-adv-x="1792" d="M640 454v-70q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-69l-397 -398q-19 -19 -19 -45t19 -45zM1792 416q0 -58 -17 -133.5t-38.5 -138t-48 -125t-40.5 -90.5l-20 -40q-8 -17 -28 -17q-6 0 -9 1 q-25 8 -23 34q43 400 -106 565q-64 71 -170.5 110.5t-267.5 52.5v-251q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-262q411 -28 599 -221q169 -173 169 -509z" />
+<glyph unicode="&#xf123;" horiz-adv-x="1664" d="M1186 579l257 250l-356 52l-66 10l-30 60l-159 322v-963l59 -31l318 -168l-60 355l-12 66zM1638 841l-363 -354l86 -500q5 -33 -6 -51.5t-34 -18.5q-17 0 -40 12l-449 236l-449 -236q-23 -12 -40 -12q-23 0 -34 18.5t-6 51.5l86 500l-364 354q-32 32 -23 59.5t54 34.5 l502 73l225 455q20 41 49 41q28 0 49 -41l225 -455l502 -73q45 -7 54 -34.5t-24 -59.5z" />
+<glyph unicode="&#xf124;" horiz-adv-x="1408" d="M1401 1187l-640 -1280q-17 -35 -57 -35q-5 0 -15 2q-22 5 -35.5 22.5t-13.5 39.5v576h-576q-22 0 -39.5 13.5t-22.5 35.5t4 42t29 30l1280 640q13 7 29 7q27 0 45 -19q15 -14 18.5 -34.5t-6.5 -39.5z" />
+<glyph unicode="&#xf125;" horiz-adv-x="1664" d="M557 256h595v595zM512 301l595 595h-595v-595zM1664 224v-192q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v224h-864q-14 0 -23 9t-9 23v864h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224v224q0 14 9 23t23 9h192q14 0 23 -9t9 -23 v-224h851l246 247q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-247 -246v-851h224q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf126;" horiz-adv-x="1024" d="M288 64q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM288 1216q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM928 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1024 1088q0 -52 -26 -96.5t-70 -69.5 q-2 -287 -226 -414q-68 -38 -203 -81q-128 -40 -169.5 -71t-41.5 -100v-26q44 -25 70 -69.5t26 -96.5q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 52 26 96.5t70 69.5v820q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136q0 -52 -26 -96.5t-70 -69.5v-497 q54 26 154 57q55 17 87.5 29.5t70.5 31t59 39.5t40.5 51t28 69.5t8.5 91.5q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136z" />
+<glyph unicode="&#xf127;" horiz-adv-x="1664" d="M439 265l-256 -256q-10 -9 -23 -9q-12 0 -23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23zM608 224v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM384 448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23t9 23t23 9h320 q14 0 23 -9t9 -23zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-334 335q-21 21 -42 56l239 18l273 -274q27 -27 68 -27.5t68 26.5l147 146q28 28 28 67q0 40 -28 68l-274 275l18 239q35 -21 56 -42l336 -336q84 -86 84 -204zM1031 1044l-239 -18 l-273 274q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l274 -274l-18 -240q-35 21 -56 42l-336 336q-84 86 -84 204q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l334 -335q21 -21 42 -56zM1664 960q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9 t-9 23t9 23t23 9h320q14 0 23 -9t9 -23zM1120 1504v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM1527 1353l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" />
+<glyph unicode="&#xf128;" horiz-adv-x="1024" d="M704 280v-240q0 -16 -12 -28t-28 -12h-240q-16 0 -28 12t-12 28v240q0 16 12 28t28 12h240q16 0 28 -12t12 -28zM1020 880q0 -54 -15.5 -101t-35 -76.5t-55 -59.5t-57.5 -43.5t-61 -35.5q-41 -23 -68.5 -65t-27.5 -67q0 -17 -12 -32.5t-28 -15.5h-240q-15 0 -25.5 18.5 t-10.5 37.5v45q0 83 65 156.5t143 108.5q59 27 84 56t25 76q0 42 -46.5 74t-107.5 32q-65 0 -108 -29q-35 -25 -107 -115q-13 -16 -31 -16q-12 0 -25 8l-164 125q-13 10 -15.5 25t5.5 28q160 266 464 266q80 0 161 -31t146 -83t106 -127.5t41 -158.5z" />
+<glyph unicode="&#xf129;" horiz-adv-x="640" d="M640 192v-128q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64v384h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-576h64q26 0 45 -19t19 -45zM512 1344v-192q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v192 q0 26 19 45t45 19h256q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf12a;" horiz-adv-x="640" d="M512 288v-224q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v224q0 26 19 45t45 19h256q26 0 45 -19t19 -45zM542 1344l-28 -768q-1 -26 -20.5 -45t-45.5 -19h-256q-26 0 -45.5 19t-20.5 45l-28 768q-1 26 17.5 45t44.5 19h320q26 0 44.5 -19t17.5 -45z" />
+<glyph unicode="&#xf12b;" d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109zM1534 846v-206h-514l-3 27 q-4 28 -4 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q83 65 188 65q110 0 178 -59.5t68 -158.5q0 -56 -24.5 -103t-62 -76.5t-81.5 -58.5t-82 -50.5t-65.5 -51.5t-30.5 -63h232v80 h126z" />
+<glyph unicode="&#xf12c;" d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109zM1536 -50v-206h-514l-4 27 q-3 45 -3 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q80 65 188 65q110 0 178 -59.5t68 -158.5q0 -66 -34.5 -118.5t-84 -86t-99.5 -62.5t-87 -63t-41 -73h232v80h126z" />
+<glyph unicode="&#xf12d;" horiz-adv-x="1920" d="M896 128l336 384h-768l-336 -384h768zM1909 1205q15 -34 9.5 -71.5t-30.5 -65.5l-896 -1024q-38 -44 -96 -44h-768q-38 0 -69.5 20.5t-47.5 54.5q-15 34 -9.5 71.5t30.5 65.5l896 1024q38 44 96 44h768q38 0 69.5 -20.5t47.5 -54.5z" />
+<glyph unicode="&#xf12e;" horiz-adv-x="1664" d="M1664 438q0 -81 -44.5 -135t-123.5 -54q-41 0 -77.5 17.5t-59 38t-56.5 38t-71 17.5q-110 0 -110 -124q0 -39 16 -115t15 -115v-5q-22 0 -33 -1q-34 -3 -97.5 -11.5t-115.5 -13.5t-98 -5q-61 0 -103 26.5t-42 83.5q0 37 17.5 71t38 56.5t38 59t17.5 77.5q0 79 -54 123.5 t-135 44.5q-84 0 -143 -45.5t-59 -127.5q0 -43 15 -83t33.5 -64.5t33.5 -53t15 -50.5q0 -45 -46 -89q-37 -35 -117 -35q-95 0 -245 24q-9 2 -27.5 4t-27.5 4l-13 2q-1 0 -3 1q-2 0 -2 1v1024q2 -1 17.5 -3.5t34 -5t21.5 -3.5q150 -24 245 -24q80 0 117 35q46 44 46 89 q0 22 -15 50.5t-33.5 53t-33.5 64.5t-15 83q0 82 59 127.5t144 45.5q80 0 134 -44.5t54 -123.5q0 -41 -17.5 -77.5t-38 -59t-38 -56.5t-17.5 -71q0 -57 42 -83.5t103 -26.5q64 0 180 15t163 17v-2q-1 -2 -3.5 -17.5t-5 -34t-3.5 -21.5q-24 -150 -24 -245q0 -80 35 -117 q44 -46 89 -46q22 0 50.5 15t53 33.5t64.5 33.5t83 15q82 0 127.5 -59t45.5 -143z" />
+<glyph unicode="&#xf130;" horiz-adv-x="1152" d="M1152 832v-128q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-217 24 -364.5 187.5t-147.5 384.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -185 131.5 -316.5t316.5 -131.5 t316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45zM896 1216v-512q0 -132 -94 -226t-226 -94t-226 94t-94 226v512q0 132 94 226t226 94t226 -94t94 -226z" />
+<glyph unicode="&#xf131;" horiz-adv-x="1408" d="M271 591l-101 -101q-42 103 -42 214v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -53 15 -113zM1385 1193l-361 -361v-128q0 -132 -94 -226t-226 -94q-55 0 -109 19l-96 -96q97 -51 205 -51q185 0 316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128 q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-125 13 -235 81l-254 -254q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 23l1234 1234q10 10 23 10t23 -10l82 -82q10 -10 10 -23 t-10 -23zM1005 1325l-621 -621v512q0 132 94 226t226 94q102 0 184.5 -59t116.5 -152z" />
+<glyph unicode="&#xf132;" horiz-adv-x="1280" d="M1088 576v640h-448v-1137q119 63 213 137q235 184 235 360zM1280 1344v-768q0 -86 -33.5 -170.5t-83 -150t-118 -127.5t-126.5 -103t-121 -77.5t-89.5 -49.5t-42.5 -20q-12 -6 -26 -6t-26 6q-16 7 -42.5 20t-89.5 49.5t-121 77.5t-126.5 103t-118 127.5t-83 150 t-33.5 170.5v768q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf133;" horiz-adv-x="1664" d="M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280 q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf134;" horiz-adv-x="1408" d="M512 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 1376v-320q0 -16 -12 -25q-8 -7 -20 -7q-4 0 -7 1l-448 96q-11 2 -18 11t-7 20h-256v-102q111 -23 183.5 -111t72.5 -203v-800q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v800 q0 106 62.5 190.5t161.5 114.5v111h-32q-59 0 -115 -23.5t-91.5 -53t-66 -66.5t-40.5 -53.5t-14 -24.5q-17 -35 -57 -35q-16 0 -29 7q-23 12 -31.5 37t3.5 49q5 10 14.5 26t37.5 53.5t60.5 70t85 67t108.5 52.5q-25 42 -25 86q0 66 47 113t113 47t113 -47t47 -113 q0 -33 -14 -64h302q0 11 7 20t18 11l448 96q3 1 7 1q12 0 20 -7q12 -9 12 -25z" />
+<glyph unicode="&#xf135;" horiz-adv-x="1664" d="M1440 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1664 1376q0 -249 -75.5 -430.5t-253.5 -360.5q-81 -80 -195 -176l-20 -379q-2 -16 -16 -26l-384 -224q-7 -4 -16 -4q-12 0 -23 9l-64 64q-13 14 -8 32l85 276l-281 281l-276 -85q-3 -1 -9 -1 q-14 0 -23 9l-64 64q-17 19 -5 39l224 384q10 14 26 16l379 20q96 114 176 195q188 187 358 258t431 71q14 0 24 -9.5t10 -22.5z" />
+<glyph unicode="&#xf136;" horiz-adv-x="1792" d="M1745 763l-164 -763h-334l178 832q13 56 -15 88q-27 33 -83 33h-169l-204 -953h-334l204 953h-286l-204 -953h-334l204 953l-153 327h1276q101 0 189.5 -40.5t147.5 -113.5q60 -73 81 -168.5t0 -194.5z" />
+<glyph unicode="&#xf137;" d="M909 141l102 102q19 19 19 45t-19 45l-307 307l307 307q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf138;" d="M717 141l454 454q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l307 -307l-307 -307q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf139;" d="M1165 397l102 102q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l307 307l307 -307q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf13a;" d="M813 237l454 454q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-307 -307l-307 307q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf13b;" horiz-adv-x="1408" d="M1130 939l16 175h-884l47 -534h612l-22 -228l-197 -53l-196 53l-13 140h-175l22 -278l362 -100h4v1l359 99l50 544h-644l-15 181h674zM0 1408h1408l-128 -1438l-578 -162l-574 162z" />
+<glyph unicode="&#xf13c;" horiz-adv-x="1792" d="M275 1408h1505l-266 -1333l-804 -267l-698 267l71 356h297l-29 -147l422 -161l486 161l68 339h-1208l58 297h1209l38 191h-1208z" />
+<glyph unicode="&#xf13d;" horiz-adv-x="1792" d="M960 1280q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1792 352v-352q0 -22 -20 -30q-8 -2 -12 -2q-13 0 -23 9l-93 93q-119 -143 -318.5 -226.5t-429.5 -83.5t-429.5 83.5t-318.5 226.5l-93 -93q-9 -9 -23 -9q-4 0 -12 2q-20 8 -20 30v352 q0 14 9 23t23 9h352q22 0 30 -20q8 -19 -7 -35l-100 -100q67 -91 189.5 -153.5t271.5 -82.5v647h-192q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h192v163q-58 34 -93 92.5t-35 128.5q0 106 75 181t181 75t181 -75t75 -181q0 -70 -35 -128.5t-93 -92.5v-163h192q26 0 45 -19 t19 -45v-128q0 -26 -19 -45t-45 -19h-192v-647q149 20 271.5 82.5t189.5 153.5l-100 100q-15 16 -7 35q8 20 30 20h352q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf13e;" horiz-adv-x="1152" d="M1056 768q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v320q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45q0 106 -75 181t-181 75t-181 -75t-75 -181 v-320h736z" />
+<glyph unicode="&#xf140;" d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM1152 640q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1280 640q0 -212 -150 -362t-362 -150t-362 150 t-150 362t150 362t362 150t362 -150t150 -362zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf141;" horiz-adv-x="1408" d="M384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM896 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM1408 800v-192q0 -40 -28 -68t-68 -28h-192 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf142;" horiz-adv-x="384" d="M384 288v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 1312v-192q0 -40 -28 -68t-68 -28h-192 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf143;" d="M512 256q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM863 162q-13 232 -177 396t-396 177q-14 1 -24 -9t-10 -23v-128q0 -13 8.5 -22t21.5 -10q154 -11 264 -121t121 -264q1 -13 10 -21.5t22 -8.5h128q13 0 23 10 t9 24zM1247 161q-5 154 -56 297.5t-139.5 260t-205 205t-260 139.5t-297.5 56q-14 1 -23 -9q-10 -10 -10 -23v-128q0 -13 9 -22t22 -10q204 -7 378 -111.5t278.5 -278.5t111.5 -378q1 -13 10 -22t22 -9h128q13 0 23 10q11 9 9 23zM1536 1120v-960q0 -119 -84.5 -203.5 t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf144;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1152 585q32 18 32 55t-32 55l-544 320q-31 19 -64 1q-32 -19 -32 -56v-640q0 -37 32 -56 q16 -8 32 -8q17 0 32 9z" />
+<glyph unicode="&#xf145;" horiz-adv-x="1792" d="M1024 1084l316 -316l-572 -572l-316 316zM813 105l618 618q19 19 19 45t-19 45l-362 362q-18 18 -45 18t-45 -18l-618 -618q-19 -19 -19 -45t19 -45l362 -362q18 -18 45 -18t45 18zM1702 742l-907 -908q-37 -37 -90.5 -37t-90.5 37l-126 126q56 56 56 136t-56 136 t-136 56t-136 -56l-125 126q-37 37 -37 90.5t37 90.5l907 906q37 37 90.5 37t90.5 -37l125 -125q-56 -56 -56 -136t56 -136t136 -56t136 56l126 -125q37 -37 37 -90.5t-37 -90.5z" />
+<glyph unicode="&#xf146;" d="M1280 576v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h896q26 0 45 19t19 45zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z" />
+<glyph unicode="&#xf147;" horiz-adv-x="1408" d="M1152 736v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h832q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5 t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf148;" horiz-adv-x="1024" d="M1018 933q-18 -37 -58 -37h-192v-864q0 -14 -9 -23t-23 -9h-704q-21 0 -29 18q-8 20 4 35l160 192q9 11 25 11h320v640h-192q-40 0 -58 37q-17 37 9 68l320 384q18 22 49 22t49 -22l320 -384q27 -32 9 -68z" />
+<glyph unicode="&#xf149;" horiz-adv-x="1024" d="M32 1280h704q13 0 22.5 -9.5t9.5 -23.5v-863h192q40 0 58 -37t-9 -69l-320 -384q-18 -22 -49 -22t-49 22l-320 384q-26 31 -9 69q18 37 58 37h192v640h-320q-14 0 -25 11l-160 192q-13 14 -4 34q9 19 29 19z" />
+<glyph unicode="&#xf14a;" d="M685 237l614 614q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-467 -467l-211 211q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l358 -358q19 -19 45 -19t45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5 t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf14b;" d="M404 428l152 -152l-52 -52h-56v96h-96v56zM818 818q14 -13 -3 -30l-291 -291q-17 -17 -30 -3q-14 13 3 30l291 291q17 17 30 3zM544 128l544 544l-288 288l-544 -544v-288h288zM1152 736l92 92q28 28 28 68t-28 68l-152 152q-28 28 -68 28t-68 -28l-92 -92zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf14c;" d="M1280 608v480q0 26 -19 45t-45 19h-480q-42 0 -59 -39q-17 -41 14 -70l144 -144l-534 -534q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l534 534l144 -144q18 -19 45 -19q12 0 25 5q39 17 39 59zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf14d;" d="M1005 435l352 352q19 19 19 45t-19 45l-352 352q-30 31 -69 14q-40 -17 -40 -59v-160q-119 0 -216 -19.5t-162.5 -51t-114 -79t-76.5 -95.5t-44.5 -109t-21.5 -111.5t-5 -110.5q0 -181 167 -404q10 -12 25 -12q7 0 13 3q22 9 19 33q-44 354 62 473q46 52 130 75.5 t224 23.5v-160q0 -42 40 -59q12 -5 24 -5q26 0 45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf14e;" d="M640 448l256 128l-256 128v-256zM1024 1039v-542l-512 -256v542zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf150;" d="M1145 861q18 -35 -5 -66l-320 -448q-19 -27 -52 -27t-52 27l-320 448q-23 31 -5 66q17 35 57 35h640q40 0 57 -35zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf151;" d="M1145 419q-17 -35 -57 -35h-640q-40 0 -57 35q-18 35 5 66l320 448q19 27 52 27t52 -27l320 -448q23 -31 5 -66zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf152;" d="M1088 640q0 -33 -27 -52l-448 -320q-31 -23 -66 -5q-35 17 -35 57v640q0 40 35 57q35 18 66 -5l448 -320q27 -19 27 -52zM1280 160v960q0 14 -9 23t-23 9h-960q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h960q14 0 23 9t9 23zM1536 1120v-960q0 -119 -84.5 -203.5 t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf153;" horiz-adv-x="1024" d="M976 229l35 -159q3 -12 -3 -22.5t-17 -14.5l-5 -1q-4 -2 -10.5 -3.5t-16 -4.5t-21.5 -5.5t-25.5 -5t-30 -5t-33.5 -4.5t-36.5 -3t-38.5 -1q-234 0 -409 130.5t-238 351.5h-95q-13 0 -22.5 9.5t-9.5 22.5v113q0 13 9.5 22.5t22.5 9.5h66q-2 57 1 105h-67q-14 0 -23 9 t-9 23v114q0 14 9 23t23 9h98q67 210 243.5 338t400.5 128q102 0 194 -23q11 -3 20 -15q6 -11 3 -24l-43 -159q-3 -13 -14 -19.5t-24 -2.5l-4 1q-4 1 -11.5 2.5l-17.5 3.5t-22.5 3.5t-26 3t-29 2.5t-29.5 1q-126 0 -226 -64t-150 -176h468q16 0 25 -12q10 -12 7 -26 l-24 -114q-5 -26 -32 -26h-488q-3 -37 0 -105h459q15 0 25 -12q9 -12 6 -27l-24 -112q-2 -11 -11 -18.5t-20 -7.5h-387q48 -117 149.5 -185.5t228.5 -68.5q18 0 36 1.5t33.5 3.5t29.5 4.5t24.5 5t18.5 4.5l12 3l5 2q13 5 26 -2q12 -7 15 -21z" />
+<glyph unicode="&#xf154;" horiz-adv-x="1024" d="M1020 399v-367q0 -14 -9 -23t-23 -9h-956q-14 0 -23 9t-9 23v150q0 13 9.5 22.5t22.5 9.5h97v383h-95q-14 0 -23 9.5t-9 22.5v131q0 14 9 23t23 9h95v223q0 171 123.5 282t314.5 111q185 0 335 -125q9 -8 10 -20.5t-7 -22.5l-103 -127q-9 -11 -22 -12q-13 -2 -23 7 q-5 5 -26 19t-69 32t-93 18q-85 0 -137 -47t-52 -123v-215h305q13 0 22.5 -9t9.5 -23v-131q0 -13 -9.5 -22.5t-22.5 -9.5h-305v-379h414v181q0 13 9 22.5t23 9.5h162q14 0 23 -9.5t9 -22.5z" />
+<glyph unicode="&#xf155;" horiz-adv-x="1024" d="M978 351q0 -153 -99.5 -263.5t-258.5 -136.5v-175q0 -14 -9 -23t-23 -9h-135q-13 0 -22.5 9.5t-9.5 22.5v175q-66 9 -127.5 31t-101.5 44.5t-74 48t-46.5 37.5t-17.5 18q-17 21 -2 41l103 135q7 10 23 12q15 2 24 -9l2 -2q113 -99 243 -125q37 -8 74 -8q81 0 142.5 43 t61.5 122q0 28 -15 53t-33.5 42t-58.5 37.5t-66 32t-80 32.5q-39 16 -61.5 25t-61.5 26.5t-62.5 31t-56.5 35.5t-53.5 42.5t-43.5 49t-35.5 58t-21 66.5t-8.5 78q0 138 98 242t255 134v180q0 13 9.5 22.5t22.5 9.5h135q14 0 23 -9t9 -23v-176q57 -6 110.5 -23t87 -33.5 t63.5 -37.5t39 -29t15 -14q17 -18 5 -38l-81 -146q-8 -15 -23 -16q-14 -3 -27 7q-3 3 -14.5 12t-39 26.5t-58.5 32t-74.5 26t-85.5 11.5q-95 0 -155 -43t-60 -111q0 -26 8.5 -48t29.5 -41.5t39.5 -33t56 -31t60.5 -27t70 -27.5q53 -20 81 -31.5t76 -35t75.5 -42.5t62 -50 t53 -63.5t31.5 -76.5t13 -94z" />
+<glyph unicode="&#xf156;" horiz-adv-x="898" d="M898 1066v-102q0 -14 -9 -23t-23 -9h-168q-23 -144 -129 -234t-276 -110q167 -178 459 -536q14 -16 4 -34q-8 -18 -29 -18h-195q-16 0 -25 12q-306 367 -498 571q-9 9 -9 22v127q0 13 9.5 22.5t22.5 9.5h112q132 0 212.5 43t102.5 125h-427q-14 0 -23 9t-9 23v102 q0 14 9 23t23 9h413q-57 113 -268 113h-145q-13 0 -22.5 9.5t-9.5 22.5v133q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-233q47 -61 64 -144h171q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf157;" horiz-adv-x="1027" d="M603 0h-172q-13 0 -22.5 9t-9.5 23v330h-288q-13 0 -22.5 9t-9.5 23v103q0 13 9.5 22.5t22.5 9.5h288v85h-288q-13 0 -22.5 9t-9.5 23v104q0 13 9.5 22.5t22.5 9.5h214l-321 578q-8 16 0 32q10 16 28 16h194q19 0 29 -18l215 -425q19 -38 56 -125q10 24 30.5 68t27.5 61 l191 420q8 19 29 19h191q17 0 27 -16q9 -14 1 -31l-313 -579h215q13 0 22.5 -9.5t9.5 -22.5v-104q0 -14 -9.5 -23t-22.5 -9h-290v-85h290q13 0 22.5 -9.5t9.5 -22.5v-103q0 -14 -9.5 -23t-22.5 -9h-290v-330q0 -13 -9.5 -22.5t-22.5 -9.5z" />
+<glyph unicode="&#xf158;" horiz-adv-x="1280" d="M1043 971q0 100 -65 162t-171 62h-320v-448h320q106 0 171 62t65 162zM1280 971q0 -193 -126.5 -315t-326.5 -122h-340v-118h505q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-505v-192q0 -14 -9.5 -23t-22.5 -9h-167q-14 0 -23 9t-9 23v192h-224q-14 0 -23 9t-9 23v128 q0 14 9 23t23 9h224v118h-224q-14 0 -23 9t-9 23v149q0 13 9 22.5t23 9.5h224v629q0 14 9 23t23 9h539q200 0 326.5 -122t126.5 -315z" />
+<glyph unicode="&#xf159;" horiz-adv-x="1792" d="M514 341l81 299h-159l75 -300q1 -1 1 -3t1 -3q0 1 0.5 3.5t0.5 3.5zM630 768l35 128h-292l32 -128h225zM822 768h139l-35 128h-70zM1271 340l78 300h-162l81 -299q0 -1 0.5 -3.5t1.5 -3.5q0 1 0.5 3t0.5 3zM1382 768l33 128h-297l34 -128h230zM1792 736v-64q0 -14 -9 -23 t-23 -9h-213l-164 -616q-7 -24 -31 -24h-159q-24 0 -31 24l-166 616h-209l-167 -616q-7 -24 -31 -24h-159q-11 0 -19.5 7t-10.5 17l-160 616h-208q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h175l-33 128h-142q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h109l-89 344q-5 15 5 28 q10 12 26 12h137q26 0 31 -24l90 -360h359l97 360q7 24 31 24h126q24 0 31 -24l98 -360h365l93 360q5 24 31 24h137q16 0 26 -12q10 -13 5 -28l-91 -344h111q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-145l-34 -128h179q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf15a;" horiz-adv-x="1280" d="M1167 896q18 -182 -131 -258q117 -28 175 -103t45 -214q-7 -71 -32.5 -125t-64.5 -89t-97 -58.5t-121.5 -34.5t-145.5 -15v-255h-154v251q-80 0 -122 1v-252h-154v255q-18 0 -54 0.5t-55 0.5h-200l31 183h111q50 0 58 51v402h16q-6 1 -16 1v287q-13 68 -89 68h-111v164 l212 -1q64 0 97 1v252h154v-247q82 2 122 2v245h154v-252q79 -7 140 -22.5t113 -45t82.5 -78t36.5 -114.5zM952 351q0 36 -15 64t-37 46t-57.5 30.5t-65.5 18.5t-74 9t-69 3t-64.5 -1t-47.5 -1v-338q8 0 37 -0.5t48 -0.5t53 1.5t58.5 4t57 8.5t55.5 14t47.5 21t39.5 30 t24.5 40t9.5 51zM881 827q0 33 -12.5 58.5t-30.5 42t-48 28t-55 16.5t-61.5 8t-58 2.5t-54 -1t-39.5 -0.5v-307q5 0 34.5 -0.5t46.5 0t50 2t55 5.5t51.5 11t48.5 18.5t37 27t27 38.5t9 51z" />
+<glyph unicode="&#xf15b;" d="M1024 1024v472q22 -14 36 -28l408 -408q14 -14 28 -36h-472zM896 992q0 -40 28 -68t68 -28h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544z" />
+<glyph unicode="&#xf15c;" d="M1468 1060q14 -14 28 -36h-472v472q22 -14 36 -28zM992 896h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544q0 -40 28 -68t68 -28zM1152 160v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704 q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23z" />
+<glyph unicode="&#xf15d;" horiz-adv-x="1664" d="M1191 1128h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1572 -23 v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -11v-2l14 2q9 2 30 2h248v119h121zM1661 874v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162 l230 -662h70z" />
+<glyph unicode="&#xf15e;" horiz-adv-x="1664" d="M1191 104h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1661 -150 v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162l230 -662h70zM1572 1001v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -10v-3l14 3q9 1 30 1h248 v119h121z" />
+<glyph unicode="&#xf160;" horiz-adv-x="1792" d="M736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1792 -32v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832 q14 0 23 -9t9 -23zM1600 480v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1408 992v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1216 1504v-192q0 -14 -9 -23t-23 -9h-256 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf161;" horiz-adv-x="1792" d="M1216 -32v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192 q14 0 23 -9t9 -23zM1408 480v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1600 992v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1792 1504v-192q0 -14 -9 -23t-23 -9h-832 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf162;" d="M1346 223q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23 zM1486 165q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5 t82 -252.5zM1456 882v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165z" />
+<glyph unicode="&#xf163;" d="M1346 1247q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9 t9 -23zM1456 -142v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165zM1486 1189q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13 q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5z" />
+<glyph unicode="&#xf164;" horiz-adv-x="1664" d="M256 192q0 26 -19 45t-45 19q-27 0 -45.5 -19t-18.5 -45q0 -27 18.5 -45.5t45.5 -18.5q26 0 45 18.5t19 45.5zM416 704v-640q0 -26 -19 -45t-45 -19h-288q-26 0 -45 19t-19 45v640q0 26 19 45t45 19h288q26 0 45 -19t19 -45zM1600 704q0 -86 -55 -149q15 -44 15 -76 q3 -76 -43 -137q17 -56 0 -117q-15 -57 -54 -94q9 -112 -49 -181q-64 -76 -197 -78h-36h-76h-17q-66 0 -144 15.5t-121.5 29t-120.5 39.5q-123 43 -158 44q-26 1 -45 19.5t-19 44.5v641q0 25 18 43.5t43 20.5q24 2 76 59t101 121q68 87 101 120q18 18 31 48t17.5 48.5 t13.5 60.5q7 39 12.5 61t19.5 52t34 50q19 19 45 19q46 0 82.5 -10.5t60 -26t40 -40.5t24 -45t12 -50t5 -45t0.5 -39q0 -38 -9.5 -76t-19 -60t-27.5 -56q-3 -6 -10 -18t-11 -22t-8 -24h277q78 0 135 -57t57 -135z" />
+<glyph unicode="&#xf165;" horiz-adv-x="1664" d="M256 960q0 -26 -19 -45t-45 -19q-27 0 -45.5 19t-18.5 45q0 27 18.5 45.5t45.5 18.5q26 0 45 -18.5t19 -45.5zM416 448v640q0 26 -19 45t-45 19h-288q-26 0 -45 -19t-19 -45v-640q0 -26 19 -45t45 -19h288q26 0 45 19t19 45zM1545 597q55 -61 55 -149q-1 -78 -57.5 -135 t-134.5 -57h-277q4 -14 8 -24t11 -22t10 -18q18 -37 27 -57t19 -58.5t10 -76.5q0 -24 -0.5 -39t-5 -45t-12 -50t-24 -45t-40 -40.5t-60 -26t-82.5 -10.5q-26 0 -45 19q-20 20 -34 50t-19.5 52t-12.5 61q-9 42 -13.5 60.5t-17.5 48.5t-31 48q-33 33 -101 120q-49 64 -101 121 t-76 59q-25 2 -43 20.5t-18 43.5v641q0 26 19 44.5t45 19.5q35 1 158 44q77 26 120.5 39.5t121.5 29t144 15.5h17h76h36q133 -2 197 -78q58 -69 49 -181q39 -37 54 -94q17 -61 0 -117q46 -61 43 -137q0 -32 -15 -76z" />
+<glyph unicode="&#xf166;" d="M919 233v157q0 50 -29 50q-17 0 -33 -16v-224q16 -16 33 -16q29 0 29 49zM1103 355h66v34q0 51 -33 51t-33 -51v-34zM532 621v-70h-80v-423h-74v423h-78v70h232zM733 495v-367h-67v40q-39 -45 -76 -45q-33 0 -42 28q-6 16 -6 54v290h66v-270q0 -24 1 -26q1 -15 15 -15 q20 0 42 31v280h67zM985 384v-146q0 -52 -7 -73q-12 -42 -53 -42q-35 0 -68 41v-36h-67v493h67v-161q32 40 68 40q41 0 53 -42q7 -21 7 -74zM1236 255v-9q0 -29 -2 -43q-3 -22 -15 -40q-27 -40 -80 -40q-52 0 -81 38q-21 27 -21 86v129q0 59 20 86q29 38 80 38t78 -38 q21 -28 21 -86v-76h-133v-65q0 -51 34 -51q24 0 30 26q0 1 0.5 7t0.5 16.5v21.5h68zM785 1079v-156q0 -51 -32 -51t-32 51v156q0 52 32 52t32 -52zM1318 366q0 177 -19 260q-10 44 -43 73.5t-76 34.5q-136 15 -412 15q-275 0 -411 -15q-44 -5 -76.5 -34.5t-42.5 -73.5 q-20 -87 -20 -260q0 -176 20 -260q10 -43 42.5 -73t75.5 -35q137 -15 412 -15t412 15q43 5 75.5 35t42.5 73q20 84 20 260zM563 1017l90 296h-75l-51 -195l-53 195h-78l24 -69t23 -69q35 -103 46 -158v-201h74v201zM852 936v130q0 58 -21 87q-29 38 -78 38q-51 0 -78 -38 q-21 -29 -21 -87v-130q0 -58 21 -87q27 -38 78 -38q49 0 78 38q21 27 21 87zM1033 816h67v370h-67v-283q-22 -31 -42 -31q-15 0 -16 16q-1 2 -1 26v272h-67v-293q0 -37 6 -55q11 -27 43 -27q36 0 77 45v-40zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf167;" d="M971 292v-211q0 -67 -39 -67q-23 0 -45 22v301q22 22 45 22q39 0 39 -67zM1309 291v-46h-90v46q0 68 45 68t45 -68zM343 509h107v94h-312v-94h105v-569h100v569zM631 -60h89v494h-89v-378q-30 -42 -57 -42q-18 0 -21 21q-1 3 -1 35v364h-89v-391q0 -49 8 -73 q12 -37 58 -37q48 0 102 61v-54zM1060 88v197q0 73 -9 99q-17 56 -71 56q-50 0 -93 -54v217h-89v-663h89v48q45 -55 93 -55q54 0 71 55q9 27 9 100zM1398 98v13h-91q0 -51 -2 -61q-7 -36 -40 -36q-46 0 -46 69v87h179v103q0 79 -27 116q-39 51 -106 51q-68 0 -107 -51 q-28 -37 -28 -116v-173q0 -79 29 -116q39 -51 108 -51q72 0 108 53q18 27 21 54q2 9 2 58zM790 1011v210q0 69 -43 69t-43 -69v-210q0 -70 43 -70t43 70zM1509 260q0 -234 -26 -350q-14 -59 -58 -99t-102 -46q-184 -21 -555 -21t-555 21q-58 6 -102.5 46t-57.5 99 q-26 112 -26 350q0 234 26 350q14 59 58 99t103 47q183 20 554 20t555 -20q58 -7 102.5 -47t57.5 -99q26 -112 26 -350zM511 1536h102l-121 -399v-271h-100v271q-14 74 -61 212q-37 103 -65 187h106l71 -263zM881 1203v-175q0 -81 -28 -118q-37 -51 -106 -51q-67 0 -105 51 q-28 38 -28 118v175q0 80 28 117q38 51 105 51q69 0 106 -51q28 -37 28 -117zM1216 1365v-499h-91v55q-53 -62 -103 -62q-46 0 -59 37q-8 24 -8 75v394h91v-367q0 -33 1 -35q3 -22 21 -22q27 0 57 43v381h91z" />
+<glyph unicode="&#xf168;" horiz-adv-x="1408" d="M597 869q-10 -18 -257 -456q-27 -46 -65 -46h-239q-21 0 -31 17t0 36l253 448q1 0 0 1l-161 279q-12 22 -1 37q9 15 32 15h239q40 0 66 -45zM1403 1511q11 -16 0 -37l-528 -934v-1l336 -615q11 -20 1 -37q-10 -15 -32 -15h-239q-42 0 -66 45l-339 622q18 32 531 942 q25 45 64 45h241q22 0 31 -15z" />
+<glyph unicode="&#xf169;" d="M685 771q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29l125 -216v-1l-196 -346q-9 -14 0 -28q8 -13 24 -13h185q31 0 50 36zM1309 1268q-7 12 -24 12h-187q-30 0 -49 -35l-411 -729q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1 l409 723q8 16 0 28zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf16a;" horiz-adv-x="1792" d="M1280 640q0 37 -30 54l-512 320q-31 20 -65 2q-33 -18 -33 -56v-640q0 -38 33 -56q16 -8 31 -8q20 0 34 10l512 320q30 17 30 54zM1792 640q0 -96 -1 -150t-8.5 -136.5t-22.5 -147.5q-16 -73 -69 -123t-124 -58q-222 -25 -671 -25t-671 25q-71 8 -124.5 58t-69.5 123 q-14 65 -21.5 147.5t-8.5 136.5t-1 150t1 150t8.5 136.5t22.5 147.5q16 73 69 123t124 58q222 25 671 25t671 -25q71 -8 124.5 -58t69.5 -123q14 -65 21.5 -147.5t8.5 -136.5t1 -150z" />
+<glyph unicode="&#xf16b;" horiz-adv-x="1792" d="M402 829l494 -305l-342 -285l-490 319zM1388 274v-108l-490 -293v-1l-1 1l-1 -1v1l-489 293v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284zM554 1418l342 -285l-494 -304l-338 270zM1390 829l338 -271l-489 -319l-343 285zM1239 1418l489 -319l-338 -270l-494 304z" />
+<glyph unicode="&#xf16c;" horiz-adv-x="1408" d="M928 135v-151l-707 -1v151zM1169 481v-701l-1 -35v-1h-1132l-35 1h-1v736h121v-618h928v618h120zM241 393l704 -65l-13 -150l-705 65zM309 709l683 -183l-39 -146l-683 183zM472 1058l609 -360l-77 -130l-609 360zM832 1389l398 -585l-124 -85l-399 584zM1285 1536 l121 -697l-149 -26l-121 697z" />
+<glyph unicode="&#xf16d;" d="M1362 110v648h-135q20 -63 20 -131q0 -126 -64 -232.5t-174 -168.5t-240 -62q-197 0 -337 135.5t-140 327.5q0 68 20 131h-141v-648q0 -26 17.5 -43.5t43.5 -17.5h1069q25 0 43 17.5t18 43.5zM1078 643q0 124 -90.5 211.5t-218.5 87.5q-127 0 -217.5 -87.5t-90.5 -211.5 t90.5 -211.5t217.5 -87.5q128 0 218.5 87.5t90.5 211.5zM1362 1003v165q0 28 -20 48.5t-49 20.5h-174q-29 0 -49 -20.5t-20 -48.5v-165q0 -29 20 -49t49 -20h174q29 0 49 20t20 49zM1536 1211v-1142q0 -81 -58 -139t-139 -58h-1142q-81 0 -139 58t-58 139v1142q0 81 58 139 t139 58h1142q81 0 139 -58t58 -139z" />
+<glyph unicode="&#xf16e;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM698 640q0 88 -62 150t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150zM1262 640q0 88 -62 150 t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150z" />
+<glyph unicode="&#xf170;" d="M768 914l201 -306h-402zM1133 384h94l-459 691l-459 -691h94l104 160h522zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf171;" horiz-adv-x="1408" d="M815 677q8 -63 -50.5 -101t-111.5 -6q-39 17 -53.5 58t-0.5 82t52 58q36 18 72.5 12t64 -35.5t27.5 -67.5zM926 698q-14 107 -113 164t-197 13q-63 -28 -100.5 -88.5t-34.5 -129.5q4 -91 77.5 -155t165.5 -56q91 8 152 84t50 168zM1165 1240q-20 27 -56 44.5t-58 22 t-71 12.5q-291 47 -566 -2q-43 -7 -66 -12t-55 -22t-50 -43q30 -28 76 -45.5t73.5 -22t87.5 -11.5q228 -29 448 -1q63 8 89.5 12t72.5 21.5t75 46.5zM1222 205q-8 -26 -15.5 -76.5t-14 -84t-28.5 -70t-58 -56.5q-86 -48 -189.5 -71.5t-202 -22t-201.5 18.5q-46 8 -81.5 18 t-76.5 27t-73 43.5t-52 61.5q-25 96 -57 292l6 16l18 9q223 -148 506.5 -148t507.5 148q21 -6 24 -23t-5 -45t-8 -37zM1403 1166q-26 -167 -111 -655q-5 -30 -27 -56t-43.5 -40t-54.5 -31q-252 -126 -610 -88q-248 27 -394 139q-15 12 -25.5 26.5t-17 35t-9 34t-6 39.5 t-5.5 35q-9 50 -26.5 150t-28 161.5t-23.5 147.5t-22 158q3 26 17.5 48.5t31.5 37.5t45 30t46 22.5t48 18.5q125 46 313 64q379 37 676 -50q155 -46 215 -122q16 -20 16.5 -51t-5.5 -54z" />
+<glyph unicode="&#xf172;" d="M848 666q0 43 -41 66t-77 1q-43 -20 -42.5 -72.5t43.5 -70.5q39 -23 81 4t36 72zM928 682q8 -66 -36 -121t-110 -61t-119 40t-56 113q-2 49 25.5 93t72.5 64q70 31 141.5 -10t81.5 -118zM1100 1073q-20 -21 -53.5 -34t-53 -16t-63.5 -8q-155 -20 -324 0q-44 6 -63 9.5 t-52.5 16t-54.5 32.5q13 19 36 31t40 15.5t47 8.5q198 35 408 1q33 -5 51 -8.5t43 -16t39 -31.5zM1142 327q0 7 5.5 26.5t3 32t-17.5 16.5q-161 -106 -365 -106t-366 106l-12 -6l-5 -12q26 -154 41 -210q47 -81 204 -108q249 -46 428 53q34 19 49 51.5t22.5 85.5t12.5 71z M1272 1020q9 53 -8 75q-43 55 -155 88q-216 63 -487 36q-132 -12 -226 -46q-38 -15 -59.5 -25t-47 -34t-29.5 -54q8 -68 19 -138t29 -171t24 -137q1 -5 5 -31t7 -36t12 -27t22 -28q105 -80 284 -100q259 -28 440 63q24 13 39.5 23t31 29t19.5 40q48 267 80 473zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf173;" horiz-adv-x="1024" d="M944 207l80 -237q-23 -35 -111 -66t-177 -32q-104 -2 -190.5 26t-142.5 74t-95 106t-55.5 120t-16.5 118v544h-168v215q72 26 129 69.5t91 90t58 102t34 99t15 88.5q1 5 4.5 8.5t7.5 3.5h244v-424h333v-252h-334v-518q0 -30 6.5 -56t22.5 -52.5t49.5 -41.5t81.5 -14 q78 2 134 29z" />
+<glyph unicode="&#xf174;" d="M1136 75l-62 183q-44 -22 -103 -22q-36 -1 -62 10.5t-38.5 31.5t-17.5 40.5t-5 43.5v398h257v194h-256v326h-188q-8 0 -9 -10q-5 -44 -17.5 -87t-39 -95t-77 -95t-118.5 -68v-165h130v-418q0 -57 21.5 -115t65 -111t121 -85.5t176.5 -30.5q69 1 136.5 25t85.5 50z M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf175;" horiz-adv-x="768" d="M765 237q8 -19 -5 -35l-350 -384q-10 -10 -23 -10q-14 0 -24 10l-355 384q-13 16 -5 35q9 19 29 19h224v1248q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1248h224q21 0 29 -19z" />
+<glyph unicode="&#xf176;" horiz-adv-x="768" d="M765 1043q-9 -19 -29 -19h-224v-1248q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1248h-224q-21 0 -29 19t5 35l350 384q10 10 23 10q14 0 24 -10l355 -384q13 -16 5 -35z" />
+<glyph unicode="&#xf177;" horiz-adv-x="1792" d="M1792 736v-192q0 -14 -9 -23t-23 -9h-1248v-224q0 -21 -19 -29t-35 5l-384 350q-10 10 -10 23q0 14 10 24l384 354q16 14 35 6q19 -9 19 -29v-224h1248q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf178;" horiz-adv-x="1792" d="M1728 643q0 -14 -10 -24l-384 -354q-16 -14 -35 -6q-19 9 -19 29v224h-1248q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h1248v224q0 21 19 29t35 -5l384 -350q10 -10 10 -23z" />
+<glyph unicode="&#xf179;" horiz-adv-x="1408" d="M1393 321q-39 -125 -123 -250q-129 -196 -257 -196q-49 0 -140 32q-86 32 -151 32q-61 0 -142 -33q-81 -34 -132 -34q-152 0 -301 259q-147 261 -147 503q0 228 113 374q112 144 284 144q72 0 177 -30q104 -30 138 -30q45 0 143 34q102 34 173 34q119 0 213 -65 q52 -36 104 -100q-79 -67 -114 -118q-65 -94 -65 -207q0 -124 69 -223t158 -126zM1017 1494q0 -61 -29 -136q-30 -75 -93 -138q-54 -54 -108 -72q-37 -11 -104 -17q3 149 78 257q74 107 250 148q1 -3 2.5 -11t2.5 -11q0 -4 0.5 -10t0.5 -10z" />
+<glyph unicode="&#xf17a;" horiz-adv-x="1664" d="M682 530v-651l-682 94v557h682zM682 1273v-659h-682v565zM1664 530v-786l-907 125v661h907zM1664 1408v-794h-907v669z" />
+<glyph unicode="&#xf17b;" horiz-adv-x="1408" d="M493 1053q16 0 27.5 11.5t11.5 27.5t-11.5 27.5t-27.5 11.5t-27 -11.5t-11 -27.5t11 -27.5t27 -11.5zM915 1053q16 0 27 11.5t11 27.5t-11 27.5t-27 11.5t-27.5 -11.5t-11.5 -27.5t11.5 -27.5t27.5 -11.5zM103 869q42 0 72 -30t30 -72v-430q0 -43 -29.5 -73t-72.5 -30 t-73 30t-30 73v430q0 42 30 72t73 30zM1163 850v-666q0 -46 -32 -78t-77 -32h-75v-227q0 -43 -30 -73t-73 -30t-73 30t-30 73v227h-138v-227q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73l-1 227h-74q-46 0 -78 32t-32 78v666h918zM931 1255q107 -55 171 -153.5t64 -215.5 h-925q0 117 64 215.5t172 153.5l-71 131q-7 13 5 20q13 6 20 -6l72 -132q95 42 201 42t201 -42l72 132q7 12 20 6q12 -7 5 -20zM1408 767v-430q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73v430q0 43 30 72.5t72 29.5q43 0 73 -29.5t30 -72.5z" />
+<glyph unicode="&#xf17c;" d="M663 1125q-11 -1 -15.5 -10.5t-8.5 -9.5q-5 -1 -5 5q0 12 19 15h10zM750 1111q-4 -1 -11.5 6.5t-17.5 4.5q24 11 32 -2q3 -6 -3 -9zM399 684q-4 1 -6 -3t-4.5 -12.5t-5.5 -13.5t-10 -13q-7 -10 -1 -12q4 -1 12.5 7t12.5 18q1 3 2 7t2 6t1.5 4.5t0.5 4v3t-1 2.5t-3 2z M1254 325q0 18 -55 42q4 15 7.5 27.5t5 26t3 21.5t0.5 22.5t-1 19.5t-3.5 22t-4 20.5t-5 25t-5.5 26.5q-10 48 -47 103t-72 75q24 -20 57 -83q87 -162 54 -278q-11 -40 -50 -42q-31 -4 -38.5 18.5t-8 83.5t-11.5 107q-9 39 -19.5 69t-19.5 45.5t-15.5 24.5t-13 15t-7.5 7 q-14 62 -31 103t-29.5 56t-23.5 33t-15 40q-4 21 6 53.5t4.5 49.5t-44.5 25q-15 3 -44.5 18t-35.5 16q-8 1 -11 26t8 51t36 27q37 3 51 -30t4 -58q-11 -19 -2 -26.5t30 -0.5q13 4 13 36v37q-5 30 -13.5 50t-21 30.5t-23.5 15t-27 7.5q-107 -8 -89 -134q0 -15 -1 -15 q-9 9 -29.5 10.5t-33 -0.5t-15.5 5q1 57 -16 90t-45 34q-27 1 -41.5 -27.5t-16.5 -59.5q-1 -15 3.5 -37t13 -37.5t15.5 -13.5q10 3 16 14q4 9 -7 8q-7 0 -15.5 14.5t-9.5 33.5q-1 22 9 37t34 14q17 0 27 -21t9.5 -39t-1.5 -22q-22 -15 -31 -29q-8 -12 -27.5 -23.5 t-20.5 -12.5q-13 -14 -15.5 -27t7.5 -18q14 -8 25 -19.5t16 -19t18.5 -13t35.5 -6.5q47 -2 102 15q2 1 23 7t34.5 10.5t29.5 13t21 17.5q9 14 20 8q5 -3 6.5 -8.5t-3 -12t-16.5 -9.5q-20 -6 -56.5 -21.5t-45.5 -19.5q-44 -19 -70 -23q-25 -5 -79 2q-10 2 -9 -2t17 -19 q25 -23 67 -22q17 1 36 7t36 14t33.5 17.5t30 17t24.5 12t17.5 2.5t8.5 -11q0 -2 -1 -4.5t-4 -5t-6 -4.5t-8.5 -5t-9 -4.5t-10 -5t-9.5 -4.5q-28 -14 -67.5 -44t-66.5 -43t-49 -1q-21 11 -63 73q-22 31 -25 22q-1 -3 -1 -10q0 -25 -15 -56.5t-29.5 -55.5t-21 -58t11.5 -63 q-23 -6 -62.5 -90t-47.5 -141q-2 -18 -1.5 -69t-5.5 -59q-8 -24 -29 -3q-32 31 -36 94q-2 28 4 56q4 19 -1 18l-4 -5q-36 -65 10 -166q5 -12 25 -28t24 -20q20 -23 104 -90.5t93 -76.5q16 -15 17.5 -38t-14 -43t-45.5 -23q8 -15 29 -44.5t28 -54t7 -70.5q46 24 7 92 q-4 8 -10.5 16t-9.5 12t-2 6q3 5 13 9.5t20 -2.5q46 -52 166 -36q133 15 177 87q23 38 34 30q12 -6 10 -52q-1 -25 -23 -92q-9 -23 -6 -37.5t24 -15.5q3 19 14.5 77t13.5 90q2 21 -6.5 73.5t-7.5 97t23 70.5q15 18 51 18q1 37 34.5 53t72.5 10.5t60 -22.5zM626 1152 q3 17 -2.5 30t-11.5 15q-9 2 -9 -7q2 -5 5 -6q10 0 7 -15q-3 -20 8 -20q3 0 3 3zM1045 955q-2 8 -6.5 11.5t-13 5t-14.5 5.5q-5 3 -9.5 8t-7 8t-5.5 6.5t-4 4t-4 -1.5q-14 -16 7 -43.5t39 -31.5q9 -1 14.5 8t3.5 20zM867 1168q0 11 -5 19.5t-11 12.5t-9 3q-14 -1 -7 -7l4 -2 q14 -4 18 -31q0 -3 8 2zM921 1401q0 2 -2.5 5t-9 7t-9.5 6q-15 15 -24 15q-9 -1 -11.5 -7.5t-1 -13t-0.5 -12.5q-1 -4 -6 -10.5t-6 -9t3 -8.5q4 -3 8 0t11 9t15 9q1 1 9 1t15 2t9 7zM1486 60q20 -12 31 -24.5t12 -24t-2.5 -22.5t-15.5 -22t-23.5 -19.5t-30 -18.5 t-31.5 -16.5t-32 -15.5t-27 -13q-38 -19 -85.5 -56t-75.5 -64q-17 -16 -68 -19.5t-89 14.5q-18 9 -29.5 23.5t-16.5 25.5t-22 19.5t-47 9.5q-44 1 -130 1q-19 0 -57 -1.5t-58 -2.5q-44 -1 -79.5 -15t-53.5 -30t-43.5 -28.5t-53.5 -11.5q-29 1 -111 31t-146 43q-19 4 -51 9.5 t-50 9t-39.5 9.5t-33.5 14.5t-17 19.5q-10 23 7 66.5t18 54.5q1 16 -4 40t-10 42.5t-4.5 36.5t10.5 27q14 12 57 14t60 12q30 18 42 35t12 51q21 -73 -32 -106q-32 -20 -83 -15q-34 3 -43 -10q-13 -15 5 -57q2 -6 8 -18t8.5 -18t4.5 -17t1 -22q0 -15 -17 -49t-14 -48 q3 -17 37 -26q20 -6 84.5 -18.5t99.5 -20.5q24 -6 74 -22t82.5 -23t55.5 -4q43 6 64.5 28t23 48t-7.5 58.5t-19 52t-20 36.5q-121 190 -169 242q-68 74 -113 40q-11 -9 -15 15q-3 16 -2 38q1 29 10 52t24 47t22 42q8 21 26.5 72t29.5 78t30 61t39 54q110 143 124 195 q-12 112 -16 310q-2 90 24 151.5t106 104.5q39 21 104 21q53 1 106 -13.5t89 -41.5q57 -42 91.5 -121.5t29.5 -147.5q-5 -95 30 -214q34 -113 133 -218q55 -59 99.5 -163t59.5 -191q8 -49 5 -84.5t-12 -55.5t-20 -22q-10 -2 -23.5 -19t-27 -35.5t-40.5 -33.5t-61 -14 q-18 1 -31.5 5t-22.5 13.5t-13.5 15.5t-11.5 20.5t-9 19.5q-22 37 -41 30t-28 -49t7 -97q20 -70 1 -195q-10 -65 18 -100.5t73 -33t85 35.5q59 49 89.5 66.5t103.5 42.5q53 18 77 36.5t18.5 34.5t-25 28.5t-51.5 23.5q-33 11 -49.5 48t-15 72.5t15.5 47.5q1 -31 8 -56.5 t14.5 -40.5t20.5 -28.5t21 -19t21.5 -13t16.5 -9.5z" />
+<glyph unicode="&#xf17d;" d="M1024 36q-42 241 -140 498h-2l-2 -1q-16 -6 -43 -16.5t-101 -49t-137 -82t-131 -114.5t-103 -148l-15 11q184 -150 418 -150q132 0 256 52zM839 643q-21 49 -53 111q-311 -93 -673 -93q-1 -7 -1 -21q0 -124 44 -236.5t124 -201.5q50 89 123.5 166.5t142.5 124.5t130.5 81 t99.5 48l37 13q4 1 13 3.5t13 4.5zM732 855q-120 213 -244 378q-138 -65 -234 -186t-128 -272q302 0 606 80zM1416 536q-210 60 -409 29q87 -239 128 -469q111 75 185 189.5t96 250.5zM611 1277q-1 0 -2 -1q1 1 2 1zM1201 1132q-185 164 -433 164q-76 0 -155 -19 q131 -170 246 -382q69 26 130 60.5t96.5 61.5t65.5 57t37.5 40.5zM1424 647q-3 232 -149 410l-1 -1q-9 -12 -19 -24.5t-43.5 -44.5t-71 -60.5t-100 -65t-131.5 -64.5q25 -53 44 -95q2 -6 6.5 -17.5t7.5 -16.5q36 5 74.5 7t73.5 2t69 -1.5t64 -4t56.5 -5.5t48 -6.5t36.5 -6 t25 -4.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf17e;" d="M1173 473q0 50 -19.5 91.5t-48.5 68.5t-73 49t-82.5 34t-87.5 23l-104 24q-30 7 -44 10.5t-35 11.5t-30 16t-16.5 21t-7.5 30q0 77 144 77q43 0 77 -12t54 -28.5t38 -33.5t40 -29t48 -12q47 0 75.5 32t28.5 77q0 55 -56 99.5t-142 67.5t-182 23q-68 0 -132 -15.5 t-119.5 -47t-89 -87t-33.5 -128.5q0 -61 19 -106.5t56 -75.5t80 -48.5t103 -32.5l146 -36q90 -22 112 -36q32 -20 32 -60q0 -39 -40 -64.5t-105 -25.5q-51 0 -91.5 16t-65 38.5t-45.5 45t-46 38.5t-54 16q-50 0 -75.5 -30t-25.5 -75q0 -92 122 -157.5t291 -65.5 q73 0 140 18.5t122.5 53.5t88.5 93.5t33 131.5zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5q-130 0 -234 80q-77 -16 -150 -16q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5q0 73 16 150q-80 104 -80 234q0 159 112.5 271.5t271.5 112.5q130 0 234 -80 q77 16 150 16q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -73 -16 -150q80 -104 80 -234z" />
+<glyph unicode="&#xf180;" horiz-adv-x="1280" d="M1000 1102l37 194q5 23 -9 40t-35 17h-712q-23 0 -38.5 -17t-15.5 -37v-1101q0 -7 6 -1l291 352q23 26 38 33.5t48 7.5h239q22 0 37 14.5t18 29.5q24 130 37 191q4 21 -11.5 40t-36.5 19h-294q-29 0 -48 19t-19 48v42q0 29 19 47.5t48 18.5h346q18 0 35 13.5t20 29.5z M1227 1324q-15 -73 -53.5 -266.5t-69.5 -350t-35 -173.5q-6 -22 -9 -32.5t-14 -32.5t-24.5 -33t-38.5 -21t-58 -10h-271q-13 0 -22 -10q-8 -9 -426 -494q-22 -25 -58.5 -28.5t-48.5 5.5q-55 22 -55 98v1410q0 55 38 102.5t120 47.5h888q95 0 127 -53t10 -159zM1227 1324 l-158 -790q4 17 35 173.5t69.5 350t53.5 266.5z" />
+<glyph unicode="&#xf181;" d="M704 192v1024q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-1024q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1376 576v640q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-640q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408 q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf182;" horiz-adv-x="1280" d="M1280 480q0 -40 -28 -68t-68 -28q-51 0 -80 43l-227 341h-45v-132l247 -411q9 -15 9 -33q0 -26 -19 -45t-45 -19h-192v-272q0 -46 -33 -79t-79 -33h-160q-46 0 -79 33t-33 79v272h-192q-26 0 -45 19t-19 45q0 18 9 33l247 411v132h-45l-227 -341q-29 -43 -80 -43 q-40 0 -68 28t-28 68q0 29 16 53l256 384q73 107 176 107h384q103 0 176 -107l256 -384q16 -24 16 -53zM864 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
+<glyph unicode="&#xf183;" horiz-adv-x="1024" d="M1024 832v-416q0 -40 -28 -68t-68 -28t-68 28t-28 68v352h-64v-912q0 -46 -33 -79t-79 -33t-79 33t-33 79v464h-64v-464q0 -46 -33 -79t-79 -33t-79 33t-33 79v912h-64v-352q0 -40 -28 -68t-68 -28t-68 28t-28 68v416q0 80 56 136t136 56h640q80 0 136 -56t56 -136z M736 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
+<glyph unicode="&#xf184;" d="M773 234l350 473q16 22 24.5 59t-6 85t-61.5 79q-40 26 -83 25.5t-73.5 -17.5t-54.5 -45q-36 -40 -96 -40q-59 0 -95 40q-24 28 -54.5 45t-73.5 17.5t-84 -25.5q-46 -31 -60.5 -79t-6 -85t24.5 -59zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf185;" horiz-adv-x="1792" d="M1472 640q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5zM1748 363q-4 -15 -20 -20l-292 -96v-306q0 -16 -13 -26q-15 -10 -29 -4 l-292 94l-180 -248q-10 -13 -26 -13t-26 13l-180 248l-292 -94q-14 -6 -29 4q-13 10 -13 26v306l-292 96q-16 5 -20 20q-5 17 4 29l180 248l-180 248q-9 13 -4 29q4 15 20 20l292 96v306q0 16 13 26q15 10 29 4l292 -94l180 248q9 12 26 12t26 -12l180 -248l292 94 q14 6 29 -4q13 -10 13 -26v-306l292 -96q16 -5 20 -20q5 -16 -4 -29l-180 -248l180 -248q9 -12 4 -29z" />
+<glyph unicode="&#xf186;" d="M1262 233q-54 -9 -110 -9q-182 0 -337 90t-245 245t-90 337q0 192 104 357q-201 -60 -328.5 -229t-127.5 -384q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51q144 0 273.5 61.5t220.5 171.5zM1465 318q-94 -203 -283.5 -324.5t-413.5 -121.5q-156 0 -298 61 t-245 164t-164 245t-61 298q0 153 57.5 292.5t156 241.5t235.5 164.5t290 68.5q44 2 61 -39q18 -41 -15 -72q-86 -78 -131.5 -181.5t-45.5 -218.5q0 -148 73 -273t198 -198t273 -73q118 0 228 51q41 18 72 -13q14 -14 17.5 -34t-4.5 -38z" />
+<glyph unicode="&#xf187;" horiz-adv-x="1792" d="M1088 704q0 26 -19 45t-45 19h-256q-26 0 -45 -19t-19 -45t19 -45t45 -19h256q26 0 45 19t19 45zM1664 896v-960q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v960q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1728 1344v-256q0 -26 -19 -45t-45 -19h-1536 q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1536q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf188;" horiz-adv-x="1664" d="M1632 576q0 -26 -19 -45t-45 -19h-224q0 -171 -67 -290l208 -209q19 -19 19 -45t-19 -45q-18 -19 -45 -19t-45 19l-198 197q-5 -5 -15 -13t-42 -28.5t-65 -36.5t-82 -29t-97 -13v896h-128v-896q-51 0 -101.5 13.5t-87 33t-66 39t-43.5 32.5l-15 14l-183 -207 q-20 -21 -48 -21q-24 0 -43 16q-19 18 -20.5 44.5t15.5 46.5l202 227q-58 114 -58 274h-224q-26 0 -45 19t-19 45t19 45t45 19h224v294l-173 173q-19 19 -19 45t19 45t45 19t45 -19l173 -173h844l173 173q19 19 45 19t45 -19t19 -45t-19 -45l-173 -173v-294h224q26 0 45 -19 t19 -45zM1152 1152h-640q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5z" />
+<glyph unicode="&#xf189;" horiz-adv-x="1920" d="M1917 1016q23 -64 -150 -294q-24 -32 -65 -85q-78 -100 -90 -131q-17 -41 14 -81q17 -21 81 -82h1l1 -1l1 -1l2 -2q141 -131 191 -221q3 -5 6.5 -12.5t7 -26.5t-0.5 -34t-25 -27.5t-59 -12.5l-256 -4q-24 -5 -56 5t-52 22l-20 12q-30 21 -70 64t-68.5 77.5t-61 58 t-56.5 15.5q-3 -1 -8 -3.5t-17 -14.5t-21.5 -29.5t-17 -52t-6.5 -77.5q0 -15 -3.5 -27.5t-7.5 -18.5l-4 -5q-18 -19 -53 -22h-115q-71 -4 -146 16.5t-131.5 53t-103 66t-70.5 57.5l-25 24q-10 10 -27.5 30t-71.5 91t-106 151t-122.5 211t-130.5 272q-6 16 -6 27t3 16l4 6 q15 19 57 19l274 2q12 -2 23 -6.5t16 -8.5l5 -3q16 -11 24 -32q20 -50 46 -103.5t41 -81.5l16 -29q29 -60 56 -104t48.5 -68.5t41.5 -38.5t34 -14t27 5q2 1 5 5t12 22t13.5 47t9.5 81t0 125q-2 40 -9 73t-14 46l-6 12q-25 34 -85 43q-13 2 5 24q17 19 38 30q53 26 239 24 q82 -1 135 -13q20 -5 33.5 -13.5t20.5 -24t10.5 -32t3.5 -45.5t-1 -55t-2.5 -70.5t-1.5 -82.5q0 -11 -1 -42t-0.5 -48t3.5 -40.5t11.5 -39t22.5 -24.5q8 -2 17 -4t26 11t38 34.5t52 67t68 107.5q60 104 107 225q4 10 10 17.5t11 10.5l4 3l5 2.5t13 3t20 0.5l288 2 q39 5 64 -2.5t31 -16.5z" />
+<glyph unicode="&#xf18a;" horiz-adv-x="1792" d="M675 252q21 34 11 69t-45 50q-34 14 -73 1t-60 -46q-22 -34 -13 -68.5t43 -50.5t74.5 -2.5t62.5 47.5zM769 373q8 13 3.5 26.5t-17.5 18.5q-14 5 -28.5 -0.5t-21.5 -18.5q-17 -31 13 -45q14 -5 29 0.5t22 18.5zM943 266q-45 -102 -158 -150t-224 -12 q-107 34 -147.5 126.5t6.5 187.5q47 93 151.5 139t210.5 19q111 -29 158.5 -119.5t2.5 -190.5zM1255 426q-9 96 -89 170t-208.5 109t-274.5 21q-223 -23 -369.5 -141.5t-132.5 -264.5q9 -96 89 -170t208.5 -109t274.5 -21q223 23 369.5 141.5t132.5 264.5zM1563 422 q0 -68 -37 -139.5t-109 -137t-168.5 -117.5t-226 -83t-270.5 -31t-275 33.5t-240.5 93t-171.5 151t-65 199.5q0 115 69.5 245t197.5 258q169 169 341.5 236t246.5 -7q65 -64 20 -209q-4 -14 -1 -20t10 -7t14.5 0.5t13.5 3.5l6 2q139 59 246 59t153 -61q45 -63 0 -178 q-2 -13 -4.5 -20t4.5 -12.5t12 -7.5t17 -6q57 -18 103 -47t80 -81.5t34 -116.5zM1489 1046q42 -47 54.5 -108.5t-6.5 -117.5q-8 -23 -29.5 -34t-44.5 -4q-23 8 -34 29.5t-4 44.5q20 63 -24 111t-107 35q-24 -5 -45 8t-25 37q-5 24 8 44.5t37 25.5q60 13 119 -5.5t101 -65.5z M1670 1209q87 -96 112.5 -222.5t-13.5 -241.5q-9 -27 -34 -40t-52 -4t-40 34t-5 52q28 82 10 172t-80 158q-62 69 -148 95.5t-173 8.5q-28 -6 -52 9.5t-30 43.5t9.5 51.5t43.5 29.5q123 26 244 -11.5t208 -134.5z" />
+<glyph unicode="&#xf18b;" d="M1133 -34q-171 -94 -368 -94q-196 0 -367 94q138 87 235.5 211t131.5 268q35 -144 132.5 -268t235.5 -211zM638 1394v-485q0 -252 -126.5 -459.5t-330.5 -306.5q-181 215 -181 495q0 187 83.5 349.5t229.5 269.5t325 137zM1536 638q0 -280 -181 -495 q-204 99 -330.5 306.5t-126.5 459.5v485q179 -30 325 -137t229.5 -269.5t83.5 -349.5z" />
+<glyph unicode="&#xf18c;" horiz-adv-x="1408" d="M1402 433q-32 -80 -76 -138t-91 -88.5t-99 -46.5t-101.5 -14.5t-96.5 8.5t-86.5 22t-69.5 27.5t-46 22.5l-17 10q-113 -228 -289.5 -359.5t-384.5 -132.5q-19 0 -32 13t-13 32t13 31.5t32 12.5q173 1 322.5 107.5t251.5 294.5q-36 -14 -72 -23t-83 -13t-91 2.5t-93 28.5 t-92 59t-84.5 100t-74.5 146q114 47 214 57t167.5 -7.5t124.5 -56.5t88.5 -77t56.5 -82q53 131 79 291q-7 -1 -18 -2.5t-46.5 -2.5t-69.5 0.5t-81.5 10t-88.5 23t-84 42.5t-75 65t-54.5 94.5t-28.5 127.5q70 28 133.5 36.5t112.5 -1t92 -30t73.5 -50t56 -61t42 -63t27.5 -56 t16 -39.5l4 -16q12 122 12 195q-8 6 -21.5 16t-49 44.5t-63.5 71.5t-54 93t-33 112.5t12 127t70 138.5q73 -25 127.5 -61.5t84.5 -76.5t48 -85t20.5 -89t-0.5 -85.5t-13 -76.5t-19 -62t-17 -42l-7 -15q1 -5 1 -50.5t-1 -71.5q3 7 10 18.5t30.5 43t50.5 58t71 55.5t91.5 44.5 t112 14.5t132.5 -24q-2 -78 -21.5 -141.5t-50 -104.5t-69.5 -71.5t-81.5 -45.5t-84.5 -24t-80 -9.5t-67.5 1t-46.5 4.5l-17 3q-23 -147 -73 -283q6 7 18 18.5t49.5 41t77.5 52.5t99.5 42t117.5 20t129 -23.5t137 -77.5z" />
+<glyph unicode="&#xf18d;" horiz-adv-x="1280" d="M1259 283v-66q0 -85 -57.5 -144.5t-138.5 -59.5h-57l-260 -269v269h-529q-81 0 -138.5 59.5t-57.5 144.5v66h1238zM1259 609v-255h-1238v255h1238zM1259 937v-255h-1238v255h1238zM1259 1077v-67h-1238v67q0 84 57.5 143.5t138.5 59.5h846q81 0 138.5 -59.5t57.5 -143.5z " />
+<glyph unicode="&#xf18e;" d="M1152 640q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf190;" d="M1152 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-192q0 -14 -9 -23t-23 -9q-12 0 -24 10l-319 319q-9 9 -9 23t9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h352q13 0 22.5 -9.5t9.5 -22.5zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf191;" d="M1024 960v-640q0 -26 -19 -45t-45 -19q-20 0 -37 12l-448 320q-27 19 -27 52t27 52l448 320q17 12 37 12q26 0 45 -19t19 -45zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5z M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf192;" d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5 t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf193;" horiz-adv-x="1664" d="M1023 349l102 -204q-58 -179 -210 -290t-339 -111q-156 0 -288.5 77.5t-210 210t-77.5 288.5q0 181 104.5 330t274.5 211l17 -131q-122 -54 -195 -165.5t-73 -244.5q0 -185 131.5 -316.5t316.5 -131.5q126 0 232.5 65t165 175.5t49.5 236.5zM1571 249l58 -114l-256 -128 q-13 -7 -29 -7q-40 0 -57 35l-239 477h-472q-24 0 -42.5 16.5t-21.5 40.5l-96 779q-2 16 6 42q14 51 57 82.5t97 31.5q66 0 113 -47t47 -113q0 -69 -52 -117.5t-120 -41.5l37 -289h423v-128h-407l16 -128h455q40 0 57 -35l228 -455z" />
+<glyph unicode="&#xf194;" d="M1254 899q16 85 -21 132q-52 65 -187 45q-17 -3 -41 -12.5t-57.5 -30.5t-64.5 -48.5t-59.5 -70t-44.5 -91.5q80 7 113.5 -16t26.5 -99q-5 -52 -52 -143q-43 -78 -71 -99q-44 -32 -87 14q-23 24 -37.5 64.5t-19 73t-10 84t-8.5 71.5q-23 129 -34 164q-12 37 -35.5 69 t-50.5 40q-57 16 -127 -25q-54 -32 -136.5 -106t-122.5 -102v-7q16 -8 25.5 -26t21.5 -20q21 -3 54.5 8.5t58 10.5t41.5 -30q11 -18 18.5 -38.5t15 -48t12.5 -40.5q17 -46 53 -187q36 -146 57 -197q42 -99 103 -125q43 -12 85 -1.5t76 31.5q131 77 250 237 q104 139 172.5 292.5t82.5 226.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf195;" horiz-adv-x="1152" d="M1152 704q0 -191 -94.5 -353t-256.5 -256.5t-353 -94.5h-160q-14 0 -23 9t-9 23v611l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v93l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v250q0 14 9 23t23 9h160 q14 0 23 -9t9 -23v-181l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-93l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-487q188 13 318 151t130 328q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf196;" horiz-adv-x="1408" d="M1152 736v-64q0 -14 -9 -23t-23 -9h-352v-352q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v352h-352q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h352v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-352h352q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832 q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf197;" horiz-adv-x="2176" d="M620 416q-110 -64 -268 -64h-128v64h-64q-13 0 -22.5 23.5t-9.5 56.5q0 24 7 49q-58 2 -96.5 10.5t-38.5 20.5t38.5 20.5t96.5 10.5q-7 25 -7 49q0 33 9.5 56.5t22.5 23.5h64v64h128q158 0 268 -64h1113q42 -7 106.5 -18t80.5 -14q89 -15 150 -40.5t83.5 -47.5t22.5 -40 t-22.5 -40t-83.5 -47.5t-150 -40.5q-16 -3 -80.5 -14t-106.5 -18h-1113zM1739 668q53 -36 53 -92t-53 -92l81 -30q68 48 68 122t-68 122zM625 400h1015q-217 -38 -456 -80q-57 0 -113 -24t-83 -48l-28 -24l-288 -288q-26 -26 -70.5 -45t-89.5 -19h-96l-93 464h29 q157 0 273 64zM352 816h-29l93 464h96q46 0 90 -19t70 -45l288 -288q4 -4 11 -10.5t30.5 -23t48.5 -29t61.5 -23t72.5 -10.5l456 -80h-1015q-116 64 -273 64z" />
+<glyph unicode="&#xf198;" horiz-adv-x="1664" d="M1519 760q62 0 103.5 -40.5t41.5 -101.5q0 -97 -93 -130l-172 -59l56 -167q7 -21 7 -47q0 -59 -42 -102t-101 -43q-47 0 -85.5 27t-53.5 72l-55 165l-310 -106l55 -164q8 -24 8 -47q0 -59 -42 -102t-102 -43q-47 0 -85 27t-53 72l-55 163l-153 -53q-29 -9 -50 -9 q-61 0 -101.5 40t-40.5 101q0 47 27.5 85t71.5 53l156 53l-105 313l-156 -54q-26 -8 -48 -8q-60 0 -101 40.5t-41 100.5q0 47 27.5 85t71.5 53l157 53l-53 159q-8 24 -8 47q0 60 42 102.5t102 42.5q47 0 85 -27t53 -72l54 -160l310 105l-54 160q-8 24 -8 47q0 59 42.5 102 t101.5 43q47 0 85.5 -27.5t53.5 -71.5l53 -161l162 55q21 6 43 6q60 0 102.5 -39.5t42.5 -98.5q0 -45 -30 -81.5t-74 -51.5l-157 -54l105 -316l164 56q24 8 46 8zM725 498l310 105l-105 315l-310 -107z" />
+<glyph unicode="&#xf199;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM1280 352v436q-31 -35 -64 -55q-34 -22 -132.5 -85t-151.5 -99q-98 -69 -164 -69v0v0q-66 0 -164 69 q-46 32 -141.5 92.5t-142.5 92.5q-12 8 -33 27t-31 27v-436q0 -40 28 -68t68 -28h832q40 0 68 28t28 68zM1280 925q0 41 -27.5 70t-68.5 29h-832q-40 0 -68 -28t-28 -68q0 -37 30.5 -76.5t67.5 -64.5q47 -32 137.5 -89t129.5 -83q3 -2 17 -11.5t21 -14t21 -13t23.5 -13 t21.5 -9.5t22.5 -7.5t20.5 -2.5t20.5 2.5t22.5 7.5t21.5 9.5t23.5 13t21 13t21 14t17 11.5l267 174q35 23 66.5 62.5t31.5 73.5z" />
+<glyph unicode="&#xf19a;" horiz-adv-x="1792" d="M127 640q0 163 67 313l367 -1005q-196 95 -315 281t-119 411zM1415 679q0 -19 -2.5 -38.5t-10 -49.5t-11.5 -44t-17.5 -59t-17.5 -58l-76 -256l-278 826q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-75 1 -202 10q-12 1 -20.5 -5t-11.5 -15t-1.5 -18.5t9 -16.5 t19.5 -8l80 -8l120 -328l-168 -504l-280 832q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-7 0 -23 0.5t-26 0.5q105 160 274.5 253.5t367.5 93.5q147 0 280.5 -53t238.5 -149h-10q-55 0 -92 -40.5t-37 -95.5q0 -12 2 -24t4 -21.5t8 -23t9 -21t12 -22.5t12.5 -21 t14.5 -24t14 -23q63 -107 63 -212zM909 573l237 -647q1 -6 5 -11q-126 -44 -255 -44q-112 0 -217 32zM1570 1009q95 -174 95 -369q0 -209 -104 -385.5t-279 -278.5l235 678q59 169 59 276q0 42 -6 79zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286 t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 -215q173 0 331.5 68t273 182.5t182.5 273t68 331.5t-68 331.5t-182.5 273t-273 182.5t-331.5 68t-331.5 -68t-273 -182.5t-182.5 -273t-68 -331.5t68 -331.5t182.5 -273 t273 -182.5t331.5 -68z" />
+<glyph unicode="&#xf19b;" horiz-adv-x="1792" d="M1086 1536v-1536l-272 -128q-228 20 -414 102t-293 208.5t-107 272.5q0 140 100.5 263.5t275 205.5t391.5 108v-172q-217 -38 -356.5 -150t-139.5 -255q0 -152 154.5 -267t388.5 -145v1360zM1755 954l37 -390l-525 114l147 83q-119 70 -280 99v172q277 -33 481 -157z" />
+<glyph unicode="&#xf19c;" horiz-adv-x="2048" d="M960 1536l960 -384v-128h-128q0 -26 -20.5 -45t-48.5 -19h-1526q-28 0 -48.5 19t-20.5 45h-128v128zM256 896h256v-768h128v768h256v-768h128v768h256v-768h128v768h256v-768h59q28 0 48.5 -19t20.5 -45v-64h-1664v64q0 26 20.5 45t48.5 19h59v768zM1851 -64 q28 0 48.5 -19t20.5 -45v-128h-1920v128q0 26 20.5 45t48.5 19h1782z" />
+<glyph unicode="&#xf19d;" horiz-adv-x="2304" d="M1774 700l18 -316q4 -69 -82 -128t-235 -93.5t-323 -34.5t-323 34.5t-235 93.5t-82 128l18 316l574 -181q22 -7 48 -7t48 7zM2304 1024q0 -23 -22 -31l-1120 -352q-4 -1 -10 -1t-10 1l-652 206q-43 -34 -71 -111.5t-34 -178.5q63 -36 63 -109q0 -69 -58 -107l58 -433 q2 -14 -8 -25q-9 -11 -24 -11h-192q-15 0 -24 11q-10 11 -8 25l58 433q-58 38 -58 107q0 73 65 111q11 207 98 330l-333 104q-22 8 -22 31t22 31l1120 352q4 1 10 1t10 -1l1120 -352q22 -8 22 -31z" />
+<glyph unicode="&#xf19e;" d="M859 579l13 -707q-62 11 -105 11q-41 0 -105 -11l13 707q-40 69 -168.5 295.5t-216.5 374.5t-181 287q58 -15 108 -15q43 0 111 15q63 -111 133.5 -229.5t167 -276.5t138.5 -227q37 61 109.5 177.5t117.5 190t105 176t107 189.5q54 -14 107 -14q56 0 114 14v0 q-28 -39 -60 -88.5t-49.5 -78.5t-56.5 -96t-49 -84q-146 -248 -353 -610z" />
+<glyph unicode="&#xf1a0;" horiz-adv-x="1280" d="M981 197q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -49 2q-53 0 -104.5 -7t-107 -25t-97 -46t-68.5 -74.5t-27 -105.5q0 -56 23.5 -102t61 -75.5t87 -50t100 -29t101.5 -8.5q58 0 111.5 13t99 39t73 73t27.5 109zM864 1055 q0 59 -17 125.5t-48 129t-84 103.5t-117 41q-42 0 -82.5 -19.5t-66.5 -52.5q-46 -59 -46 -160q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26q37 0 77.5 16.5t65.5 43.5q53 56 53 159zM752 1536h417l-137 -88h-132q75 -63 113 -133t38 -160q0 -72 -24.5 -129.5 t-59.5 -93t-69.5 -65t-59 -61.5t-24.5 -66q0 -36 32 -70.5t77 -68t90.5 -73.5t77.5 -104t32 -142q0 -91 -49 -173q-71 -122 -209.5 -179.5t-298.5 -57.5q-132 0 -246.5 41.5t-172.5 137.5q-36 59 -36 131q0 81 44.5 150t118.5 115q131 82 404 100q-32 41 -47.5 73.5 t-15.5 73.5q0 40 21 85q-46 -4 -68 -4q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q76 66 182 98t218 32z" />
+<glyph unicode="&#xf1a1;" horiz-adv-x="2304" d="M1509 107q0 -14 -12 -29q-52 -59 -147.5 -83t-196.5 -24q-252 0 -346 107q-12 15 -12 29q0 17 12 29.5t29 12.5q15 0 30 -12q58 -49 125.5 -66t159.5 -17t160 17t127 66q15 12 30 12q17 0 29 -12.5t12 -29.5zM978 498q0 -61 -43 -104t-104 -43q-60 0 -104.5 43.5 t-44.5 103.5q0 61 44 105t105 44t104 -44t43 -105zM1622 498q0 -61 -43 -104t-104 -43q-60 0 -104.5 43.5t-44.5 103.5q0 61 44 105t105 44t104 -44t43 -105zM415 793q-39 27 -88 27q-66 0 -113 -47t-47 -113q0 -72 54 -121q53 141 194 254zM2020 382q0 222 -249 387 q-128 85 -291.5 126.5t-331.5 41.5t-331.5 -41.5t-292.5 -126.5q-249 -165 -249 -387t249 -387q129 -85 292.5 -126.5t331.5 -41.5t331.5 41.5t291.5 126.5q249 165 249 387zM2137 660q0 66 -47 113t-113 47q-50 0 -93 -30q140 -114 192 -256q61 48 61 126zM1993 1335 q0 49 -34.5 83.5t-82.5 34.5q-49 0 -83.5 -34.5t-34.5 -83.5q0 -48 34.5 -82.5t83.5 -34.5q48 0 82.5 34.5t34.5 82.5zM2220 660q0 -65 -33 -122t-89 -90q5 -35 5 -66q0 -139 -79 -255.5t-208 -201.5q-140 -92 -313.5 -136.5t-354.5 -44.5t-355 44.5t-314 136.5 q-129 85 -208 201.5t-79 255.5q0 36 6 71q-53 33 -83.5 88.5t-30.5 118.5q0 100 71 171.5t172 71.5q91 0 159 -60q265 170 638 177l144 456q10 29 40 29q24 0 384 -90q24 55 74 88t110 33q82 0 141 -59t59 -142t-59 -141.5t-141 -58.5q-83 0 -141.5 58.5t-59.5 140.5 l-339 80l-125 -395q349 -15 603 -179q71 63 163 63q101 0 172 -71.5t71 -171.5z" />
+<glyph unicode="&#xf1a2;" d="M950 393q7 7 17.5 7t17.5 -7t7 -18t-7 -18q-65 -64 -208 -64h-1h-1q-143 0 -207 64q-8 7 -8 18t8 18q7 7 17.5 7t17.5 -7q49 -51 172 -51h1h1q122 0 173 51zM671 613q0 -37 -26 -64t-63 -27t-63 27t-26 64t26 63t63 26t63 -26t26 -63zM1214 1049q-29 0 -50 21t-21 50 q0 30 21 51t50 21q30 0 51 -21t21 -51q0 -29 -21 -50t-51 -21zM1216 1408q132 0 226 -94t94 -227v-894q0 -133 -94 -227t-226 -94h-896q-132 0 -226 94t-94 227v894q0 133 94 227t226 94h896zM1321 596q35 14 57 45.5t22 70.5q0 51 -36 87.5t-87 36.5q-60 0 -98 -48 q-151 107 -375 115l83 265l206 -49q1 -50 36.5 -85t84.5 -35q50 0 86 35.5t36 85.5t-36 86t-86 36q-36 0 -66 -20.5t-45 -53.5l-227 54q-9 2 -17.5 -2.5t-11.5 -14.5l-95 -302q-224 -4 -381 -113q-36 43 -93 43q-51 0 -87 -36.5t-36 -87.5q0 -37 19.5 -67.5t52.5 -45.5 q-7 -25 -7 -54q0 -98 74 -181.5t201.5 -132t278.5 -48.5q150 0 277.5 48.5t201.5 132t74 181.5q0 27 -6 54zM971 702q37 0 63 -26t26 -63t-26 -64t-63 -27t-63 27t-26 64t26 63t63 26z" />
+<glyph unicode="&#xf1a3;" d="M866 697l90 27v62q0 79 -58 135t-138 56t-138 -55.5t-58 -134.5v-283q0 -20 -14 -33.5t-33 -13.5t-32.5 13.5t-13.5 33.5v120h-151v-122q0 -82 57.5 -139t139.5 -57q81 0 138.5 56.5t57.5 136.5v280q0 19 13.5 33t33.5 14q19 0 32.5 -14t13.5 -33v-54zM1199 502v122h-150 v-126q0 -20 -13.5 -33.5t-33.5 -13.5q-19 0 -32.5 14t-13.5 33v123l-90 -26l-60 28v-123q0 -80 58 -137t139 -57t138.5 57t57.5 139zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103 t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf1a4;" horiz-adv-x="1920" d="M1062 824v118q0 42 -30 72t-72 30t-72 -30t-30 -72v-612q0 -175 -126 -299t-303 -124q-178 0 -303.5 125.5t-125.5 303.5v266h328v-262q0 -43 30 -72.5t72 -29.5t72 29.5t30 72.5v620q0 171 126.5 292t301.5 121q176 0 302 -122t126 -294v-136l-195 -58zM1592 602h328 v-266q0 -178 -125.5 -303.5t-303.5 -125.5q-177 0 -303 124.5t-126 300.5v268l131 -61l195 58v-270q0 -42 30 -71.5t72 -29.5t72 29.5t30 71.5v275z" />
+<glyph unicode="&#xf1a5;" d="M1472 160v480h-704v704h-480q-93 0 -158.5 -65.5t-65.5 -158.5v-480h704v-704h480q93 0 158.5 65.5t65.5 158.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z" />
+<glyph unicode="&#xf1a6;" horiz-adv-x="2048" d="M328 1254h204v-983h-532v697h328v286zM328 435v369h-123v-369h123zM614 968v-697h205v697h-205zM614 1254v-204h205v204h-205zM901 968h533v-942h-533v163h328v82h-328v697zM1229 435v369h-123v-369h123zM1516 968h532v-942h-532v163h327v82h-327v697zM1843 435v369h-123 v-369h123z" />
+<glyph unicode="&#xf1a7;" d="M1046 516q0 -64 -38 -109t-91 -45q-43 0 -70 15v277q28 17 70 17q53 0 91 -45.5t38 -109.5zM703 944q0 -64 -38 -109.5t-91 -45.5q-43 0 -70 15v277q28 17 70 17q53 0 91 -45t38 -109zM1265 513q0 134 -88 229t-213 95q-20 0 -39 -3q-23 -78 -78 -136q-87 -95 -211 -101 v-636l211 41v206q51 -19 117 -19q125 0 213 95t88 229zM922 940q0 134 -88.5 229t-213.5 95q-74 0 -141 -36h-186v-840l211 41v206q55 -19 116 -19q125 0 213.5 95t88.5 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960 q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf1a8;" horiz-adv-x="2038" d="M1222 607q75 3 143.5 -20.5t118 -58.5t101 -94.5t84 -108t75.5 -120.5q33 -56 78.5 -109t75.5 -80.5t99 -88.5q-48 -30 -108.5 -57.5t-138.5 -59t-114 -47.5q-44 37 -74 115t-43.5 164.5t-33 180.5t-42.5 168.5t-72.5 123t-122.5 48.5l-10 -2l-6 -4q4 -5 13 -14 q6 -5 28 -23.5t25.5 -22t19 -18t18 -20.5t11.5 -21t10.5 -27.5t4.5 -31t4 -40.5l1 -33q1 -26 -2.5 -57.5t-7.5 -52t-12.5 -58.5t-11.5 -53q-35 1 -101 -9.5t-98 -10.5q-39 0 -72 10q-2 16 -2 47q0 74 3 96q2 13 31.5 41.5t57 59t26.5 51.5q-24 2 -43 -24 q-36 -53 -111.5 -99.5t-136.5 -46.5q-25 0 -75.5 63t-106.5 139.5t-84 96.5q-6 4 -27 30q-482 -112 -513 -112q-16 0 -28 11t-12 27q0 15 8.5 26.5t22.5 14.5l486 106q-8 14 -8 25t5.5 17.5t16 11.5t20 7t23 4.5t18.5 4.5q4 1 15.5 7.5t17.5 6.5q15 0 28 -16t20 -33 q163 37 172 37q17 0 29.5 -11t12.5 -28q0 -15 -8.5 -26t-23.5 -14l-182 -40l-1 -16q-1 -26 81.5 -117.5t104.5 -91.5q47 0 119 80t72 129q0 36 -23.5 53t-51 18.5t-51 11.5t-23.5 34q0 16 10 34l-68 19q43 44 43 117q0 26 -5 58q82 16 144 16q44 0 71.5 -1.5t48.5 -8.5 t31 -13.5t20.5 -24.5t15.5 -33.5t17 -47.5t24 -60l50 25q-3 -40 -23 -60t-42.5 -21t-40 -6.5t-16.5 -20.5zM1282 842q-5 5 -13.5 15.5t-12 14.5t-10.5 11.5t-10 10.5l-8 8t-8.5 7.5t-8 5t-8.5 4.5q-7 3 -14.5 5t-20.5 2.5t-22 0.5h-32.5h-37.5q-126 0 -217 -43 q16 30 36 46.5t54 29.5t65.5 36t46 36.5t50 55t43.5 50.5q12 -9 28 -31.5t32 -36.5t38 -13l12 1v-76l22 -1q247 95 371 190q28 21 50 39t42.5 37.5t33 31t29.5 34t24 31t24.5 37t23 38t27 47.5t29.5 53l7 9q-2 -53 -43 -139q-79 -165 -205 -264t-306 -142q-14 -3 -42 -7.5 t-50 -9.5t-39 -14q3 -19 24.5 -46t21.5 -34q0 -11 -26 -30zM1061 -79q39 26 131.5 47.5t146.5 21.5q9 0 22.5 -15.5t28 -42.5t26 -50t24 -51t14.5 -33q-121 -45 -244 -45q-61 0 -125 11zM822 568l48 12l109 -177l-73 -48zM1323 51q3 -15 3 -16q0 -7 -17.5 -14.5t-46 -13 t-54 -9.5t-53.5 -7.5t-32 -4.5l-7 43q21 2 60.5 8.5t72 10t60.5 3.5h14zM866 679l-96 -20l-6 17q10 1 32.5 7t34.5 6q19 0 35 -10zM1061 45h31l10 -83l-41 -12v95zM1950 1535v1v-1zM1950 1535l-1 -5l-2 -2l1 3zM1950 1535l1 1z" />
+<glyph unicode="&#xf1a9;" d="M1167 -50q-5 19 -24 5q-30 -22 -87 -39t-131 -17q-129 0 -193 49q-5 4 -13 4q-11 0 -26 -12q-7 -6 -7.5 -16t7.5 -20q34 -32 87.5 -46t102.5 -12.5t99 4.5q41 4 84.5 20.5t65 30t28.5 20.5q12 12 7 29zM1128 65q-19 47 -39 61q-23 15 -76 15q-47 0 -71 -10 q-29 -12 -78 -56q-26 -24 -12 -44q9 -8 17.5 -4.5t31.5 23.5q3 2 10.5 8.5t10.5 8.5t10 7t11.5 7t12.5 5t15 4.5t16.5 2.5t20.5 1q27 0 44.5 -7.5t23 -14.5t13.5 -22q10 -17 12.5 -20t12.5 1q23 12 14 34zM1483 346q0 22 -5 44.5t-16.5 45t-34 36.5t-52.5 14 q-33 0 -97 -41.5t-129 -83.5t-101 -42q-27 -1 -63.5 19t-76 49t-83.5 58t-100 49t-111 19q-115 -1 -197 -78.5t-84 -178.5q-2 -112 74 -164q29 -20 62.5 -28.5t103.5 -8.5q57 0 132 32.5t134 71t120 70.5t93 31q26 -1 65 -31.5t71.5 -67t68 -67.5t55.5 -32q35 -3 58.5 14 t55.5 63q28 41 42.5 101t14.5 106zM1536 506q0 -164 -62 -304.5t-166 -236t-242.5 -149.5t-290.5 -54t-293 57.5t-247.5 157t-170.5 241.5t-64 302q0 89 19.5 172.5t49 145.5t70.5 118.5t78.5 94t78.5 69.5t64.5 46.5t42.5 24.5q14 8 51 26.5t54.5 28.5t48 30t60.5 44 q36 28 58 72.5t30 125.5q129 -155 186 -193q44 -29 130 -68t129 -66q21 -13 39 -25t60.5 -46.5t76 -70.5t75 -95t69 -122t47 -148.5t19.5 -177.5z" />
+<glyph unicode="&#xf1aa;" d="M1070 463l-160 -160l-151 -152l-30 -30q-65 -64 -151.5 -87t-171.5 -2q-16 -70 -72 -115t-129 -45q-85 0 -145 60.5t-60 145.5q0 72 44.5 128t113.5 72q-22 86 1 173t88 152l12 12l151 -152l-11 -11q-37 -37 -37 -89t37 -90q37 -37 89 -37t89 37l30 30l151 152l161 160z M729 1145l12 -12l-152 -152l-12 12q-37 37 -89 37t-89 -37t-37 -89.5t37 -89.5l29 -29l152 -152l160 -160l-151 -152l-161 160l-151 152l-30 30q-68 67 -90 159.5t5 179.5q-70 15 -115 71t-45 129q0 85 60 145.5t145 60.5q76 0 133.5 -49t69.5 -123q84 20 169.5 -3.5 t149.5 -87.5zM1536 78q0 -85 -60 -145.5t-145 -60.5q-74 0 -131 47t-71 118q-86 -28 -179.5 -6t-161.5 90l-11 12l151 152l12 -12q37 -37 89 -37t89 37t37 89t-37 89l-30 30l-152 152l-160 160l152 152l160 -160l152 -152l29 -30q64 -64 87.5 -150.5t2.5 -171.5 q76 -11 126.5 -68.5t50.5 -134.5zM1534 1202q0 -77 -51 -135t-127 -69q26 -85 3 -176.5t-90 -158.5l-12 -12l-151 152l12 12q37 37 37 89t-37 89t-89 37t-89 -37l-30 -30l-152 -152l-160 -160l-152 152l161 160l152 152l29 30q67 67 159 89.5t178 -3.5q11 75 68.5 126 t135.5 51q85 0 145 -60.5t60 -145.5z" />
+<glyph unicode="&#xf1ab;" d="M654 458q-1 -3 -12.5 0.5t-31.5 11.5l-20 9q-44 20 -87 49q-7 5 -41 31.5t-38 28.5q-67 -103 -134 -181q-81 -95 -105 -110q-4 -2 -19.5 -4t-18.5 0q6 4 82 92q21 24 85.5 115t78.5 118q17 30 51 98.5t36 77.5q-8 1 -110 -33q-8 -2 -27.5 -7.5t-34.5 -9.5t-17 -5 q-2 -2 -2 -10.5t-1 -9.5q-5 -10 -31 -15q-23 -7 -47 0q-18 4 -28 21q-4 6 -5 23q6 2 24.5 5t29.5 6q58 16 105 32q100 35 102 35q10 2 43 19.5t44 21.5q9 3 21.5 8t14.5 5.5t6 -0.5q2 -12 -1 -33q0 -2 -12.5 -27t-26.5 -53.5t-17 -33.5q-25 -50 -77 -131l64 -28 q12 -6 74.5 -32t67.5 -28q4 -1 10.5 -25.5t4.5 -30.5zM449 944q3 -15 -4 -28q-12 -23 -50 -38q-30 -12 -60 -12q-26 3 -49 26q-14 15 -18 41l1 3q3 -3 19.5 -5t26.5 0t58 16q36 12 55 14q17 0 21 -17zM1147 815l63 -227l-139 42zM39 15l694 232v1032l-694 -233v-1031z M1280 332l102 -31l-181 657l-100 31l-216 -536l102 -31l45 110l211 -65zM777 1294l573 -184v380zM1088 -29l158 -13l-54 -160l-40 66q-130 -83 -276 -108q-58 -12 -91 -12h-84q-79 0 -199.5 39t-183.5 85q-8 7 -8 16q0 8 5 13.5t13 5.5q4 0 18 -7.5t30.5 -16.5t20.5 -11 q73 -37 159.5 -61.5t157.5 -24.5q95 0 167 14.5t157 50.5q15 7 30.5 15.5t34 19t28.5 16.5zM1536 1050v-1079l-774 246q-14 -6 -375 -127.5t-368 -121.5q-13 0 -18 13q0 1 -1 3v1078q3 9 4 10q5 6 20 11q106 35 149 50v384l558 -198q2 0 160.5 55t316 108.5t161.5 53.5 q20 0 20 -21v-418z" />
+<glyph unicode="&#xf1ac;" horiz-adv-x="1792" d="M288 1152q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-128q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h128zM1664 989q58 -34 93 -93t35 -128v-768q0 -106 -75 -181t-181 -75h-864q-66 0 -113 47t-47 113v1536q0 40 28 68t68 28h672q40 0 88 -20t76 -48 l152 -152q28 -28 48 -76t20 -88v-163zM928 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 512v128q0 14 -9 23 t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128 q14 0 23 9t9 23zM1184 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 256v128q0 14 -9 23t-23 9h-128 q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1536 896v256h-160q-40 0 -68 28t-28 68v160h-640v-512h896z" />
+<glyph unicode="&#xf1ad;" d="M1344 1536q26 0 45 -19t19 -45v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280zM512 1248v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 992v-64q0 -14 9 -23t23 -9h64q14 0 23 9 t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 736v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 480v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 160v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64 q14 0 23 9t9 23zM384 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 -96v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9 t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM896 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 928v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 160v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64 q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9 t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23z" />
+<glyph unicode="&#xf1ae;" horiz-adv-x="1280" d="M1188 988l-292 -292v-824q0 -46 -33 -79t-79 -33t-79 33t-33 79v384h-64v-384q0 -46 -33 -79t-79 -33t-79 33t-33 79v824l-292 292q-28 28 -28 68t28 68t68 28t68 -28l228 -228h368l228 228q28 28 68 28t68 -28t28 -68t-28 -68zM864 1152q0 -93 -65.5 -158.5 t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
+<glyph unicode="&#xf1b0;" horiz-adv-x="1664" d="M780 1064q0 -60 -19 -113.5t-63 -92.5t-105 -39q-76 0 -138 57.5t-92 135.5t-30 151q0 60 19 113.5t63 92.5t105 39q77 0 138.5 -57.5t91.5 -135t30 -151.5zM438 581q0 -80 -42 -139t-119 -59q-76 0 -141.5 55.5t-100.5 133.5t-35 152q0 80 42 139.5t119 59.5 q76 0 141.5 -55.5t100.5 -134t35 -152.5zM832 608q118 0 255 -97.5t229 -237t92 -254.5q0 -46 -17 -76.5t-48.5 -45t-64.5 -20t-76 -5.5q-68 0 -187.5 45t-182.5 45q-66 0 -192.5 -44.5t-200.5 -44.5q-183 0 -183 146q0 86 56 191.5t139.5 192.5t187.5 146t193 59zM1071 819 q-61 0 -105 39t-63 92.5t-19 113.5q0 74 30 151.5t91.5 135t138.5 57.5q61 0 105 -39t63 -92.5t19 -113.5q0 -73 -30 -151t-92 -135.5t-138 -57.5zM1503 923q77 0 119 -59.5t42 -139.5q0 -74 -35 -152t-100.5 -133.5t-141.5 -55.5q-77 0 -119 59t-42 139q0 74 35 152.5 t100.5 134t141.5 55.5z" />
+<glyph unicode="&#xf1b1;" horiz-adv-x="768" d="M704 1008q0 -145 -57 -243.5t-152 -135.5l45 -821q2 -26 -16 -45t-44 -19h-192q-26 0 -44 19t-16 45l45 821q-95 37 -152 135.5t-57 243.5q0 128 42.5 249.5t117.5 200t160 78.5t160 -78.5t117.5 -200t42.5 -249.5z" />
+<glyph unicode="&#xf1b2;" horiz-adv-x="1792" d="M896 -93l640 349v636l-640 -233v-752zM832 772l698 254l-698 254l-698 -254zM1664 1024v-768q0 -35 -18 -65t-49 -47l-704 -384q-28 -16 -61 -16t-61 16l-704 384q-31 17 -49 47t-18 65v768q0 40 23 73t61 47l704 256q22 8 44 8t44 -8l704 -256q38 -14 61 -47t23 -73z " />
+<glyph unicode="&#xf1b3;" horiz-adv-x="2304" d="M640 -96l384 192v314l-384 -164v-342zM576 358l404 173l-404 173l-404 -173zM1664 -96l384 192v314l-384 -164v-342zM1600 358l404 173l-404 173l-404 -173zM1152 651l384 165v266l-384 -164v-267zM1088 1030l441 189l-441 189l-441 -189zM2176 512v-416q0 -36 -19 -67 t-52 -47l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-5 2 -7 4q-2 -2 -7 -4l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-33 16 -52 47t-19 67v416q0 38 21.5 70t56.5 48l434 186v400q0 38 21.5 70t56.5 48l448 192q23 10 50 10t50 -10l448 -192q35 -16 56.5 -48t21.5 -70 v-400l434 -186q36 -16 57 -48t21 -70z" />
+<glyph unicode="&#xf1b4;" horiz-adv-x="2048" d="M1848 1197h-511v-124h511v124zM1596 771q-90 0 -146 -52.5t-62 -142.5h408q-18 195 -200 195zM1612 186q63 0 122 32t76 87h221q-100 -307 -427 -307q-214 0 -340.5 132t-126.5 347q0 208 130.5 345.5t336.5 137.5q138 0 240.5 -68t153 -179t50.5 -248q0 -17 -2 -47h-658 q0 -111 57.5 -171.5t166.5 -60.5zM277 236h296q205 0 205 167q0 180 -199 180h-302v-347zM277 773h281q78 0 123.5 36.5t45.5 113.5q0 144 -190 144h-260v-294zM0 1282h594q87 0 155 -14t126.5 -47.5t90 -96.5t31.5 -154q0 -181 -172 -263q114 -32 172 -115t58 -204 q0 -75 -24.5 -136.5t-66 -103.5t-98.5 -71t-121 -42t-134 -13h-611v1260z" />
+<glyph unicode="&#xf1b5;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM499 1041h-371v-787h382q117 0 197 57.5t80 170.5q0 158 -143 200q107 52 107 164q0 57 -19.5 96.5 t-56.5 60.5t-79 29.5t-97 8.5zM477 723h-176v184h163q119 0 119 -90q0 -94 -106 -94zM486 388h-185v217h189q124 0 124 -113q0 -104 -128 -104zM1136 356q-68 0 -104 38t-36 107h411q1 10 1 30q0 132 -74.5 220.5t-203.5 88.5q-128 0 -210 -86t-82 -216q0 -135 79 -217 t213 -82q205 0 267 191h-138q-11 -34 -47.5 -54t-75.5 -20zM1126 722q113 0 124 -122h-254q4 56 39 89t91 33zM964 988h319v-77h-319v77z" />
+<glyph unicode="&#xf1b6;" horiz-adv-x="1792" d="M1582 954q0 -101 -71.5 -172.5t-172.5 -71.5t-172.5 71.5t-71.5 172.5t71.5 172.5t172.5 71.5t172.5 -71.5t71.5 -172.5zM812 212q0 104 -73 177t-177 73q-27 0 -54 -6l104 -42q77 -31 109.5 -106.5t1.5 -151.5q-31 -77 -107 -109t-152 -1q-21 8 -62 24.5t-61 24.5 q32 -60 91 -96.5t130 -36.5q104 0 177 73t73 177zM1642 953q0 126 -89.5 215.5t-215.5 89.5q-127 0 -216.5 -89.5t-89.5 -215.5q0 -127 89.5 -216t216.5 -89q126 0 215.5 89t89.5 216zM1792 953q0 -189 -133.5 -322t-321.5 -133l-437 -319q-12 -129 -109 -218t-229 -89 q-121 0 -214 76t-118 192l-230 92v429l389 -157q79 48 173 48q13 0 35 -2l284 407q2 187 135.5 319t320.5 132q188 0 321.5 -133.5t133.5 -321.5z" />
+<glyph unicode="&#xf1b7;" d="M1242 889q0 80 -57 136.5t-137 56.5t-136.5 -57t-56.5 -136q0 -80 56.5 -136.5t136.5 -56.5t137 56.5t57 136.5zM632 301q0 -83 -58 -140.5t-140 -57.5q-56 0 -103 29t-72 77q52 -20 98 -40q60 -24 120 1.5t85 86.5q24 60 -1.5 120t-86.5 84l-82 33q22 5 42 5 q82 0 140 -57.5t58 -140.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v153l172 -69q20 -92 93.5 -152t168.5 -60q104 0 181 70t87 173l345 252q150 0 255.5 105.5t105.5 254.5q0 150 -105.5 255.5t-255.5 105.5 q-148 0 -253 -104.5t-107 -252.5l-225 -322q-9 1 -28 1q-75 0 -137 -37l-297 119v468q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5zM1289 887q0 -100 -71 -170.5t-171 -70.5t-170.5 70.5t-70.5 170.5t70.5 171t170.5 71q101 0 171.5 -70.5t70.5 -171.5z " />
+<glyph unicode="&#xf1b8;" horiz-adv-x="1792" d="M836 367l-15 -368l-2 -22l-420 29q-36 3 -67 31.5t-47 65.5q-11 27 -14.5 55t4 65t12 55t21.5 64t19 53q78 -12 509 -28zM449 953l180 -379l-147 92q-63 -72 -111.5 -144.5t-72.5 -125t-39.5 -94.5t-18.5 -63l-4 -21l-190 357q-17 26 -18 56t6 47l8 18q35 63 114 188 l-140 86zM1680 436l-188 -359q-12 -29 -36.5 -46.5t-43.5 -20.5l-18 -4q-71 -7 -219 -12l8 -164l-230 367l211 362l7 -173q170 -16 283 -5t170 33zM895 1360q-47 -63 -265 -435l-317 187l-19 12l225 356q20 31 60 45t80 10q24 -2 48.5 -12t42 -21t41.5 -33t36 -34.5 t36 -39.5t32 -35zM1550 1053l212 -363q18 -37 12.5 -76t-27.5 -74q-13 -20 -33 -37t-38 -28t-48.5 -22t-47 -16t-51.5 -14t-46 -12q-34 72 -265 436l313 195zM1407 1279l142 83l-220 -373l-419 20l151 86q-34 89 -75 166t-75.5 123.5t-64.5 80t-47 46.5l-17 13l405 -1 q31 3 58 -10.5t39 -28.5l11 -15q39 -61 112 -190z" />
+<glyph unicode="&#xf1b9;" horiz-adv-x="2048" d="M480 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM516 768h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5zM1888 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM2048 544v-384 q0 -14 -9 -23t-23 -9h-96v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-1024v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5t179 63.5h768q98 0 179 -63.5t104 -157.5 l105 -419h28q93 0 158.5 -65.5t65.5 -158.5z" />
+<glyph unicode="&#xf1ba;" horiz-adv-x="2048" d="M1824 640q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-96v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-1024v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5 t179 63.5h128v224q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-224h128q98 0 179 -63.5t104 -157.5l105 -419h28zM320 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM516 640h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5z M1728 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47z" />
+<glyph unicode="&#xf1bb;" d="M1504 64q0 -26 -19 -45t-45 -19h-462q1 -17 6 -87.5t5 -108.5q0 -25 -18 -42.5t-43 -17.5h-320q-25 0 -43 17.5t-18 42.5q0 38 5 108.5t6 87.5h-462q-26 0 -45 19t-19 45t19 45l402 403h-229q-26 0 -45 19t-19 45t19 45l402 403h-197q-26 0 -45 19t-19 45t19 45l384 384 q19 19 45 19t45 -19l384 -384q19 -19 19 -45t-19 -45t-45 -19h-197l402 -403q19 -19 19 -45t-19 -45t-45 -19h-229l402 -403q19 -19 19 -45z" />
+<glyph unicode="&#xf1bc;" d="M1127 326q0 32 -30 51q-193 115 -447 115q-133 0 -287 -34q-42 -9 -42 -52q0 -20 13.5 -34.5t35.5 -14.5q5 0 37 8q132 27 243 27q226 0 397 -103q19 -11 33 -11q19 0 33 13.5t14 34.5zM1223 541q0 40 -35 61q-237 141 -548 141q-153 0 -303 -42q-48 -13 -48 -64 q0 -25 17.5 -42.5t42.5 -17.5q7 0 37 8q122 33 251 33q279 0 488 -124q24 -13 38 -13q25 0 42.5 17.5t17.5 42.5zM1331 789q0 47 -40 70q-126 73 -293 110.5t-343 37.5q-204 0 -364 -47q-23 -7 -38.5 -25.5t-15.5 -48.5q0 -31 20.5 -52t51.5 -21q11 0 40 8q133 37 307 37 q159 0 309.5 -34t253.5 -95q21 -12 40 -12q29 0 50.5 20.5t21.5 51.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf1bd;" horiz-adv-x="1024" d="M1024 1233l-303 -582l24 -31h279v-415h-507l-44 -30l-142 -273l-30 -30h-301v303l303 583l-24 30h-279v415h507l44 30l142 273l30 30h301v-303z" />
+<glyph unicode="&#xf1be;" horiz-adv-x="2304" d="M784 164l16 241l-16 523q-1 10 -7.5 17t-16.5 7q-9 0 -16 -7t-7 -17l-14 -523l14 -241q1 -10 7.5 -16.5t15.5 -6.5q22 0 24 23zM1080 193l11 211l-12 586q0 16 -13 24q-8 5 -16 5t-16 -5q-13 -8 -13 -24l-1 -6l-10 -579q0 -1 11 -236v-1q0 -10 6 -17q9 -11 23 -11 q11 0 20 9q9 7 9 20zM35 533l20 -128l-20 -126q-2 -9 -9 -9t-9 9l-17 126l17 128q2 9 9 9t9 -9zM121 612l26 -207l-26 -203q-2 -9 -10 -9q-9 0 -9 10l-23 202l23 207q0 9 9 9q8 0 10 -9zM401 159zM213 650l25 -245l-25 -237q0 -11 -11 -11q-10 0 -12 11l-21 237l21 245 q2 12 12 12q11 0 11 -12zM307 657l23 -252l-23 -244q-2 -13 -14 -13q-13 0 -13 13l-21 244l21 252q0 13 13 13q12 0 14 -13zM401 639l21 -234l-21 -246q-2 -16 -16 -16q-6 0 -10.5 4.5t-4.5 11.5l-20 246l20 234q0 6 4.5 10.5t10.5 4.5q14 0 16 -15zM784 164zM495 785 l21 -380l-21 -246q0 -7 -5 -12.5t-12 -5.5q-16 0 -18 18l-18 246l18 380q2 18 18 18q7 0 12 -5.5t5 -12.5zM589 871l19 -468l-19 -244q0 -8 -5.5 -13.5t-13.5 -5.5q-18 0 -20 19l-16 244l16 468q2 19 20 19q8 0 13.5 -5.5t5.5 -13.5zM687 911l18 -506l-18 -242 q-2 -21 -22 -21q-19 0 -21 21l-16 242l16 506q0 9 6.5 15.5t14.5 6.5q9 0 15 -6.5t7 -15.5zM1079 169v0v0zM881 915l15 -510l-15 -239q0 -10 -7.5 -17.5t-17.5 -7.5t-17 7t-8 18l-14 239l14 510q0 11 7.5 18t17.5 7t17.5 -7t7.5 -18zM980 896l14 -492l-14 -236q0 -11 -8 -19 t-19 -8t-19 8t-9 19l-12 236l12 492q1 12 9 20t19 8t18.5 -8t8.5 -20zM1192 404l-14 -231v0q0 -13 -9 -22t-22 -9t-22 9t-10 22l-6 114l-6 117l12 636v3q2 15 12 24q9 7 20 7q8 0 15 -5q14 -8 16 -26zM2304 423q0 -117 -83 -199.5t-200 -82.5h-786q-13 2 -22 11t-9 22v899 q0 23 28 33q85 34 181 34q195 0 338 -131.5t160 -323.5q53 22 110 22q117 0 200 -83t83 -201z" />
+<glyph unicode="&#xf1c0;" d="M768 768q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 0q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127 t443 -43zM768 384q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 1536q208 0 385 -34.5t280 -93.5t103 -128v-128q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5 t-103 128v128q0 69 103 128t280 93.5t385 34.5z" />
+<glyph unicode="&#xf1c1;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M894 465q33 -26 84 -56q59 7 117 7q147 0 177 -49q16 -22 2 -52q0 -1 -1 -2l-2 -2v-1q-6 -38 -71 -38q-48 0 -115 20t-130 53q-221 -24 -392 -83q-153 -262 -242 -262q-15 0 -28 7l-24 12q-1 1 -6 5q-10 10 -6 36q9 40 56 91.5t132 96.5q14 9 23 -6q2 -2 2 -4q52 85 107 197 q68 136 104 262q-24 82 -30.5 159.5t6.5 127.5q11 40 42 40h21h1q23 0 35 -15q18 -21 9 -68q-2 -6 -4 -8q1 -3 1 -8v-30q-2 -123 -14 -192q55 -164 146 -238zM318 54q52 24 137 158q-51 -40 -87.5 -84t-49.5 -74zM716 974q-15 -42 -2 -132q1 7 7 44q0 3 7 43q1 4 4 8 q-1 1 -1 2t-0.5 1.5t-0.5 1.5q-1 22 -13 36q0 -1 -1 -2v-2zM592 313q135 54 284 81q-2 1 -13 9.5t-16 13.5q-76 67 -127 176q-27 -86 -83 -197q-30 -56 -45 -83zM1238 329q-24 24 -140 24q76 -28 124 -28q14 0 18 1q0 1 -2 3z" />
+<glyph unicode="&#xf1c2;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M233 768v-107h70l164 -661h159l128 485q7 20 10 46q2 16 2 24h4l3 -24q1 -3 3.5 -20t5.5 -26l128 -485h159l164 661h70v107h-300v-107h90l-99 -438q-5 -20 -7 -46l-2 -21h-4l-3 21q-1 5 -4 21t-5 25l-144 545h-114l-144 -545q-2 -9 -4.5 -24.5t-3.5 -21.5l-4 -21h-4l-2 21 q-2 26 -7 46l-99 438h90v107h-300z" />
+<glyph unicode="&#xf1c3;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M429 106v-106h281v106h-75l103 161q5 7 10 16.5t7.5 13.5t3.5 4h2q1 -4 5 -10q2 -4 4.5 -7.5t6 -8t6.5 -8.5l107 -161h-76v-106h291v106h-68l-192 273l195 282h67v107h-279v-107h74l-103 -159q-4 -7 -10 -16.5t-9 -13.5l-2 -3h-2q-1 4 -5 10q-6 11 -17 23l-106 159h76v107 h-290v-107h68l189 -272l-194 -283h-68z" />
+<glyph unicode="&#xf1c4;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M416 106v-106h327v106h-93v167h137q76 0 118 15q67 23 106.5 87t39.5 146q0 81 -37 141t-100 87q-48 19 -130 19h-368v-107h92v-555h-92zM769 386h-119v268h120q52 0 83 -18q56 -33 56 -115q0 -89 -62 -120q-31 -15 -78 -15z" />
+<glyph unicode="&#xf1c5;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M1280 320v-320h-1024v192l192 192l128 -128l384 384zM448 512q-80 0 -136 56t-56 136t56 136t136 56t136 -56t56 -136t-56 -136t-136 -56z" />
+<glyph unicode="&#xf1c6;" d="M640 1152v128h-128v-128h128zM768 1024v128h-128v-128h128zM640 896v128h-128v-128h128zM768 768v128h-128v-128h128zM1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400 v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-128v-128h-128v128h-512v-1536h1280zM781 593l107 -349q8 -27 8 -52q0 -83 -72.5 -137.5t-183.5 -54.5t-183.5 54.5t-72.5 137.5q0 25 8 52q21 63 120 396v128h128v-128h79 q22 0 39 -13t23 -34zM640 128q53 0 90.5 19t37.5 45t-37.5 45t-90.5 19t-90.5 -19t-37.5 -45t37.5 -45t90.5 -19z" />
+<glyph unicode="&#xf1c7;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M620 686q20 -8 20 -30v-544q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-166 167h-131q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h131l166 167q16 15 35 7zM1037 -3q31 0 50 24q129 159 129 363t-129 363q-16 21 -43 24t-47 -14q-21 -17 -23.5 -43.5t14.5 -47.5 q100 -123 100 -282t-100 -282q-17 -21 -14.5 -47.5t23.5 -42.5q18 -15 40 -15zM826 145q27 0 47 20q87 93 87 219t-87 219q-18 19 -45 20t-46 -17t-20 -44.5t18 -46.5q52 -57 52 -131t-52 -131q-19 -20 -18 -46.5t20 -44.5q20 -17 44 -17z" />
+<glyph unicode="&#xf1c8;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M768 768q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-384q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h384zM1260 766q20 -8 20 -30v-576q0 -22 -20 -30q-8 -2 -12 -2q-14 0 -23 9l-265 266v90l265 266q9 9 23 9q4 0 12 -2z" />
+<glyph unicode="&#xf1c9;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M480 768q8 11 21 12.5t24 -6.5l51 -38q11 -8 12.5 -21t-6.5 -24l-182 -243l182 -243q8 -11 6.5 -24t-12.5 -21l-51 -38q-11 -8 -24 -6.5t-21 12.5l-226 301q-14 19 0 38zM1282 467q14 -19 0 -38l-226 -301q-8 -11 -21 -12.5t-24 6.5l-51 38q-11 8 -12.5 21t6.5 24l182 243 l-182 243q-8 11 -6.5 24t12.5 21l51 38q11 8 24 6.5t21 -12.5zM662 6q-13 2 -20.5 13t-5.5 24l138 831q2 13 13 20.5t24 5.5l63 -10q13 -2 20.5 -13t5.5 -24l-138 -831q-2 -13 -13 -20.5t-24 -5.5z" />
+<glyph unicode="&#xf1ca;" d="M1497 709v-198q-101 -23 -198 -23q-65 -136 -165.5 -271t-181.5 -215.5t-128 -106.5q-80 -45 -162 3q-28 17 -60.5 43.5t-85 83.5t-102.5 128.5t-107.5 184t-105.5 244t-91.5 314.5t-70.5 390h283q26 -218 70 -398.5t104.5 -317t121.5 -235.5t140 -195q169 169 287 406 q-142 72 -223 220t-81 333q0 192 104 314.5t284 122.5q178 0 273 -105.5t95 -297.5q0 -159 -58 -286q-7 -1 -19.5 -3t-46 -2t-63 6t-62 25.5t-50.5 51.5q31 103 31 184q0 87 -29 132t-79 45q-53 0 -85 -49.5t-32 -140.5q0 -186 105 -293.5t267 -107.5q62 0 121 14z" />
+<glyph unicode="&#xf1cb;" horiz-adv-x="1792" d="M216 367l603 -402v359l-334 223zM154 511l193 129l-193 129v-258zM973 -35l603 402l-269 180l-334 -223v-359zM896 458l272 182l-272 182l-272 -182zM485 733l334 223v359l-603 -402zM1445 640l193 -129v258zM1307 733l269 180l-603 402v-359zM1792 913v-546 q0 -41 -34 -64l-819 -546q-21 -13 -43 -13t-43 13l-819 546q-34 23 -34 64v546q0 41 34 64l819 546q21 13 43 13t43 -13l819 -546q34 -23 34 -64z" />
+<glyph unicode="&#xf1cc;" horiz-adv-x="2048" d="M1800 764q111 -46 179.5 -145.5t68.5 -221.5q0 -164 -118 -280.5t-285 -116.5q-4 0 -11.5 0.5t-10.5 0.5h-1209h-1h-2h-5q-170 10 -288 125.5t-118 280.5q0 110 55 203t147 147q-12 39 -12 82q0 115 82 196t199 81q95 0 172 -58q75 154 222.5 248t326.5 94 q166 0 306 -80.5t221.5 -218.5t81.5 -301q0 -6 -0.5 -18t-0.5 -18zM468 498q0 -122 84 -193t208 -71q137 0 240 99q-16 20 -47.5 56.5t-43.5 50.5q-67 -65 -144 -65q-55 0 -93.5 33.5t-38.5 87.5q0 53 38.5 87t91.5 34q44 0 84.5 -21t73 -55t65 -75t69 -82t77 -75t97 -55 t121.5 -21q121 0 204.5 71.5t83.5 190.5q0 121 -84 192t-207 71q-143 0 -241 -97q14 -16 29.5 -34t34.5 -40t29 -34q66 64 142 64q52 0 92 -33t40 -84q0 -57 -37 -91.5t-94 -34.5q-43 0 -82.5 21t-72 55t-65.5 75t-69.5 82t-77.5 75t-96.5 55t-118.5 21q-122 0 -207 -70.5 t-85 -189.5z" />
+<glyph unicode="&#xf1cd;" horiz-adv-x="1792" d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 1408q-190 0 -361 -90l194 -194q82 28 167 28t167 -28l194 194q-171 90 -361 90zM218 279l194 194 q-28 82 -28 167t28 167l-194 194q-90 -171 -90 -361t90 -361zM896 -128q190 0 361 90l-194 194q-82 -28 -167 -28t-167 28l-194 -194q171 -90 361 -90zM896 256q159 0 271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5 t271.5 -112.5zM1380 473l194 -194q90 171 90 361t-90 361l-194 -194q28 -82 28 -167t-28 -167z" />
+<glyph unicode="&#xf1ce;" horiz-adv-x="1792" d="M1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348q0 222 101 414.5t276.5 317t390.5 155.5v-260q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 q0 230 -145.5 406t-366.5 221v260q215 -31 390.5 -155.5t276.5 -317t101 -414.5z" />
+<glyph unicode="&#xf1d0;" horiz-adv-x="1792" d="M19 662q8 217 116 406t305 318h5q0 -1 -1 -3q-8 -8 -28 -33.5t-52 -76.5t-60 -110.5t-44.5 -135.5t-14 -150.5t39 -157.5t108.5 -154q50 -50 102 -69.5t90.5 -11.5t69.5 23.5t47 32.5l16 16q39 51 53 116.5t6.5 122.5t-21 107t-26.5 80l-14 29q-10 25 -30.5 49.5t-43 41 t-43.5 29.5t-35 19l-13 6l104 115q39 -17 78 -52t59 -61l19 -27q1 48 -18.5 103.5t-40.5 87.5l-20 31l161 183l160 -181q-33 -46 -52.5 -102.5t-22.5 -90.5l-4 -33q22 37 61.5 72.5t67.5 52.5l28 17l103 -115q-44 -14 -85 -50t-60 -65l-19 -29q-31 -56 -48 -133.5t-7 -170 t57 -156.5q33 -45 77.5 -60.5t85 -5.5t76 26.5t57.5 33.5l21 16q60 53 96.5 115t48.5 121.5t10 121.5t-18 118t-37 107.5t-45.5 93t-45 72t-34.5 47.5l-13 17q-14 13 -7 13l10 -3q40 -29 62.5 -46t62 -50t64 -58t58.5 -65t55.5 -77t45.5 -88t38 -103t23.5 -117t10.5 -136 q3 -259 -108 -465t-312 -321t-456 -115q-185 0 -351 74t-283.5 198t-184 293t-60.5 353z" />
+<glyph unicode="&#xf1d1;" horiz-adv-x="1792" d="M874 -102v-66q-208 6 -385 109.5t-283 275.5l58 34q29 -49 73 -99l65 57q148 -168 368 -212l-17 -86q65 -12 121 -13zM276 428l-83 -28q22 -60 49 -112l-57 -33q-98 180 -98 385t98 385l57 -33q-30 -56 -49 -112l82 -28q-35 -100 -35 -212q0 -109 36 -212zM1528 251 l58 -34q-106 -172 -283 -275.5t-385 -109.5v66q56 1 121 13l-17 86q220 44 368 212l65 -57q44 50 73 99zM1377 805l-233 -80q14 -42 14 -85t-14 -85l232 -80q-31 -92 -98 -169l-185 162q-57 -67 -147 -85l48 -241q-52 -10 -98 -10t-98 10l48 241q-90 18 -147 85l-185 -162 q-67 77 -98 169l232 80q-14 42 -14 85t14 85l-233 80q33 93 99 169l185 -162q59 68 147 86l-48 240q44 10 98 10t98 -10l-48 -240q88 -18 147 -86l185 162q66 -76 99 -169zM874 1448v-66q-65 -2 -121 -13l17 -86q-220 -42 -368 -211l-65 56q-38 -42 -73 -98l-57 33 q106 172 282 275.5t385 109.5zM1705 640q0 -205 -98 -385l-57 33q27 52 49 112l-83 28q36 103 36 212q0 112 -35 212l82 28q-19 56 -49 112l57 33q98 -180 98 -385zM1585 1063l-57 -33q-35 56 -73 98l-65 -56q-148 169 -368 211l17 86q-56 11 -121 13v66q209 -6 385 -109.5 t282 -275.5zM1748 640q0 173 -67.5 331t-181.5 272t-272 181.5t-331 67.5t-331 -67.5t-272 -181.5t-181.5 -272t-67.5 -331t67.5 -331t181.5 -272t272 -181.5t331 -67.5t331 67.5t272 181.5t181.5 272t67.5 331zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71 t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+<glyph unicode="&#xf1d2;" d="M582 228q0 -66 -93 -66q-107 0 -107 63q0 64 98 64q102 0 102 -61zM546 694q0 -85 -74 -85q-77 0 -77 84q0 90 77 90q36 0 55 -25.5t19 -63.5zM712 769v125q-78 -29 -135 -29q-50 29 -110 29q-86 0 -145 -57t-59 -143q0 -50 29.5 -102t73.5 -67v-3q-38 -17 -38 -85 q0 -53 41 -77v-3q-113 -37 -113 -139q0 -45 20 -78.5t54 -51t72 -25.5t81 -8q224 0 224 188q0 67 -48 99t-126 46q-27 5 -51.5 20.5t-24.5 39.5q0 44 49 52q77 15 122 70t45 134q0 24 -10 52q37 9 49 13zM771 350h137q-2 27 -2 82v387q0 46 2 69h-137q3 -23 3 -71v-392 q0 -50 -3 -75zM1280 366v121q-30 -21 -68 -21q-53 0 -53 82v225h52q9 0 26.5 -1t26.5 -1v117h-105q0 82 3 102h-140q4 -24 4 -55v-47h-60v-117q36 3 37 3q3 0 11 -0.5t12 -0.5v-2h-2v-217q0 -37 2.5 -64t11.5 -56.5t24.5 -48.5t43.5 -31t66 -12q64 0 108 24zM924 1072 q0 36 -24 63.5t-60 27.5t-60.5 -27t-24.5 -64q0 -36 25 -62.5t60 -26.5t59.5 27t24.5 62zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf1d3;" horiz-adv-x="1792" d="M595 22q0 100 -165 100q-158 0 -158 -104q0 -101 172 -101q151 0 151 105zM536 777q0 61 -30 102t-89 41q-124 0 -124 -145q0 -135 124 -135q119 0 119 137zM805 1101v-202q-36 -12 -79 -22q16 -43 16 -84q0 -127 -73 -216.5t-197 -112.5q-40 -8 -59.5 -27t-19.5 -58 q0 -31 22.5 -51.5t58 -32t78.5 -22t86 -25.5t78.5 -37.5t58 -64t22.5 -98.5q0 -304 -363 -304q-69 0 -130 12.5t-116 41t-87.5 82t-32.5 127.5q0 165 182 225v4q-67 41 -67 126q0 109 63 137v4q-72 24 -119.5 108.5t-47.5 165.5q0 139 95 231.5t235 92.5q96 0 178 -47 q98 0 218 47zM1123 220h-222q4 45 4 134v609q0 94 -4 128h222q-4 -33 -4 -124v-613q0 -89 4 -134zM1724 442v-196q-71 -39 -174 -39q-62 0 -107 20t-70 50t-39.5 78t-18.5 92t-4 103v351h2v4q-7 0 -19 1t-18 1q-21 0 -59 -6v190h96v76q0 54 -6 89h227q-6 -41 -6 -165h171 v-190q-15 0 -43.5 2t-42.5 2h-85v-365q0 -131 87 -131q61 0 109 33zM1148 1389q0 -58 -39 -101.5t-96 -43.5q-58 0 -98 43.5t-40 101.5q0 59 39.5 103t98.5 44q58 0 96.5 -44.5t38.5 -102.5z" />
+<glyph unicode="&#xf1d4;" d="M825 547l343 588h-150q-21 -39 -63.5 -118.5t-68 -128.5t-59.5 -118.5t-60 -128.5h-3q-21 48 -44.5 97t-52 105.5t-46.5 92t-54 104.5t-49 95h-150l323 -589v-435h134v436zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960 q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf1d5;" horiz-adv-x="1280" d="M842 964q0 -80 -57 -136.5t-136 -56.5q-60 0 -111 35q-62 -67 -115 -146q-247 -371 -202 -859q1 -22 -12.5 -38.5t-34.5 -18.5h-5q-20 0 -35 13.5t-17 33.5q-14 126 -3.5 247.5t29.5 217t54 186t69 155.5t74 125q61 90 132 165q-16 35 -16 77q0 80 56.5 136.5t136.5 56.5 t136.5 -56.5t56.5 -136.5zM1223 953q0 -158 -78 -292t-212.5 -212t-292.5 -78q-64 0 -131 14q-21 5 -32.5 23.5t-6.5 39.5q5 20 23 31.5t39 7.5q51 -13 108 -13q97 0 186 38t153 102t102 153t38 186t-38 186t-102 153t-153 102t-186 38t-186 -38t-153 -102t-102 -153 t-38 -186q0 -114 52 -218q10 -20 3.5 -40t-25.5 -30t-39.5 -3t-30.5 26q-64 123 -64 265q0 119 46.5 227t124.5 186t186 124t226 46q158 0 292.5 -78t212.5 -212.5t78 -292.5z" />
+<glyph unicode="&#xf1d6;" horiz-adv-x="1792" d="M270 730q-8 19 -8 52q0 20 11 49t24 45q-1 22 7.5 53t22.5 43q0 139 92.5 288.5t217.5 209.5q139 66 324 66q133 0 266 -55q49 -21 90 -48t71 -56t55 -68t42 -74t32.5 -84.5t25.5 -89.5t22 -98l1 -5q55 -83 55 -150q0 -14 -9 -40t-9 -38q0 -1 1.5 -3.5t3.5 -5t2 -3.5 q77 -114 120.5 -214.5t43.5 -208.5q0 -43 -19.5 -100t-55.5 -57q-9 0 -19.5 7.5t-19 17.5t-19 26t-16 26.5t-13.5 26t-9 17.5q-1 1 -3 1l-5 -4q-59 -154 -132 -223q20 -20 61.5 -38.5t69 -41.5t35.5 -65q-2 -4 -4 -16t-7 -18q-64 -97 -302 -97q-53 0 -110.5 9t-98 20 t-104.5 30q-15 5 -23 7q-14 4 -46 4.5t-40 1.5q-41 -45 -127.5 -65t-168.5 -20q-35 0 -69 1.5t-93 9t-101 20.5t-74.5 40t-32.5 64q0 40 10 59.5t41 48.5q11 2 40.5 13t49.5 12q4 0 14 2q2 2 2 4l-2 3q-48 11 -108 105.5t-73 156.5l-5 3q-4 0 -12 -20q-18 -41 -54.5 -74.5 t-77.5 -37.5h-1q-4 0 -6 4.5t-5 5.5q-23 54 -23 100q0 275 252 466z" />
+<glyph unicode="&#xf1d7;" horiz-adv-x="2048" d="M580 1075q0 41 -25 66t-66 25q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 66 24.5t25 65.5zM1323 568q0 28 -25.5 50t-65.5 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q40 0 65.5 22t25.5 51zM1087 1075q0 41 -24.5 66t-65.5 25 q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 65.5 24.5t24.5 65.5zM1722 568q0 28 -26 50t-65 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q39 0 65 22t26 51zM1456 965q-31 4 -70 4q-169 0 -311 -77t-223.5 -208.5t-81.5 -287.5 q0 -78 23 -152q-35 -3 -68 -3q-26 0 -50 1.5t-55 6.5t-44.5 7t-54.5 10.5t-50 10.5l-253 -127l72 218q-290 203 -290 490q0 169 97.5 311t264 223.5t363.5 81.5q176 0 332.5 -66t262 -182.5t136.5 -260.5zM2048 404q0 -117 -68.5 -223.5t-185.5 -193.5l55 -181l-199 109 q-150 -37 -218 -37q-169 0 -311 70.5t-223.5 191.5t-81.5 264t81.5 264t223.5 191.5t311 70.5q161 0 303 -70.5t227.5 -192t85.5 -263.5z" />
+<glyph unicode="&#xf1d8;" horiz-adv-x="1792" d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-453 185l-242 -295q-18 -23 -49 -23q-13 0 -22 4q-19 7 -30.5 23.5t-11.5 36.5v349l864 1059l-1069 -925l-395 162q-37 14 -40 55q-2 40 32 59l1664 960q15 9 32 9q20 0 36 -11z" />
+<glyph unicode="&#xf1d9;" horiz-adv-x="1792" d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-527 215l-298 -327q-18 -21 -47 -21q-14 0 -23 4q-19 7 -30 23.5t-11 36.5v452l-472 193q-37 14 -40 55q-3 39 32 59l1664 960q35 21 68 -2zM1422 26l221 1323l-1434 -827l336 -137 l863 639l-478 -797z" />
+<glyph unicode="&#xf1da;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298zM896 928v-448q0 -14 -9 -23 t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf1db;" d="M768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf1dc;" horiz-adv-x="1792" d="M1682 -128q-44 0 -132.5 3.5t-133.5 3.5q-44 0 -132 -3.5t-132 -3.5q-24 0 -37 20.5t-13 45.5q0 31 17 46t39 17t51 7t45 15q33 21 33 140l-1 391q0 21 -1 31q-13 4 -50 4h-675q-38 0 -51 -4q-1 -10 -1 -31l-1 -371q0 -142 37 -164q16 -10 48 -13t57 -3.5t45 -15 t20 -45.5q0 -26 -12.5 -48t-36.5 -22q-47 0 -139.5 3.5t-138.5 3.5q-43 0 -128 -3.5t-127 -3.5q-23 0 -35.5 21t-12.5 45q0 30 15.5 45t36 17.5t47.5 7.5t42 15q33 23 33 143l-1 57v813q0 3 0.5 26t0 36.5t-1.5 38.5t-3.5 42t-6.5 36.5t-11 31.5t-16 18q-15 10 -45 12t-53 2 t-41 14t-18 45q0 26 12 48t36 22q46 0 138.5 -3.5t138.5 -3.5q42 0 126.5 3.5t126.5 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17 -43.5t-38.5 -14.5t-49.5 -4t-43 -13q-35 -21 -35 -160l1 -320q0 -21 1 -32q13 -3 39 -3h699q25 0 38 3q1 11 1 32l1 320q0 139 -35 160 q-18 11 -58.5 12.5t-66 13t-25.5 49.5q0 26 12.5 48t37.5 22q44 0 132 -3.5t132 -3.5q43 0 129 3.5t129 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17.5 -44t-40 -14.5t-51.5 -3t-44 -12.5q-35 -23 -35 -161l1 -943q0 -119 34 -140q16 -10 46 -13.5t53.5 -4.5t41.5 -15.5t18 -44.5 q0 -26 -12 -48t-36 -22z" />
+<glyph unicode="&#xf1dd;" horiz-adv-x="1280" d="M1278 1347v-73q0 -29 -18.5 -61t-42.5 -32q-50 0 -54 -1q-26 -6 -32 -31q-3 -11 -3 -64v-1152q0 -25 -18 -43t-43 -18h-108q-25 0 -43 18t-18 43v1218h-143v-1218q0 -25 -17.5 -43t-43.5 -18h-108q-26 0 -43.5 18t-17.5 43v496q-147 12 -245 59q-126 58 -192 179 q-64 117 -64 259q0 166 88 286q88 118 209 159q111 37 417 37h479q25 0 43 -18t18 -43z" />
+<glyph unicode="&#xf1de;" d="M352 128v-128h-352v128h352zM704 256q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM864 640v-128h-864v128h864zM224 1152v-128h-224v128h224zM1536 128v-128h-736v128h736zM576 1280q26 0 45 -19t19 -45v-256 q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1216 768q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1536 640v-128h-224v128h224zM1536 1152v-128h-864v128h864z" />
+<glyph unicode="&#xf1e0;" d="M1216 512q133 0 226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5q0 12 2 34l-360 180q-92 -86 -218 -86q-133 0 -226.5 93.5t-93.5 226.5t93.5 226.5t226.5 93.5q126 0 218 -86l360 180q-2 22 -2 34q0 133 93.5 226.5t226.5 93.5 t226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5q-126 0 -218 86l-360 -180q2 -22 2 -34t-2 -34l360 -180q92 86 218 86z" />
+<glyph unicode="&#xf1e1;" d="M1280 341q0 88 -62.5 151t-150.5 63q-84 0 -145 -58l-241 120q2 16 2 23t-2 23l241 120q61 -58 145 -58q88 0 150.5 63t62.5 151t-62.5 150.5t-150.5 62.5t-151 -62.5t-63 -150.5q0 -7 2 -23l-241 -120q-62 57 -145 57q-88 0 -150.5 -62.5t-62.5 -150.5t62.5 -150.5 t150.5 -62.5q83 0 145 57l241 -120q-2 -16 -2 -23q0 -88 63 -150.5t151 -62.5t150.5 62.5t62.5 150.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf1e2;" horiz-adv-x="1792" d="M571 947q-10 25 -34 35t-49 0q-108 -44 -191 -127t-127 -191q-10 -25 0 -49t35 -34q13 -5 24 -5q42 0 60 40q34 84 98.5 148.5t148.5 98.5q25 11 35 35t0 49zM1513 1303l46 -46l-244 -243l68 -68q19 -19 19 -45.5t-19 -45.5l-64 -64q89 -161 89 -343q0 -143 -55.5 -273.5 t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5q182 0 343 -89l64 64q19 19 45.5 19t45.5 -19l68 -68zM1521 1359q-10 -10 -22 -10q-13 0 -23 10l-91 90q-9 10 -9 23t9 23q10 9 23 9t23 -9l90 -91 q10 -9 10 -22.5t-10 -22.5zM1751 1129q-11 -9 -23 -9t-23 9l-90 91q-10 9 -10 22.5t10 22.5q9 10 22.5 10t22.5 -10l91 -90q9 -10 9 -23t-9 -23zM1792 1312q0 -14 -9 -23t-23 -9h-96q-14 0 -23 9t-9 23t9 23t23 9h96q14 0 23 -9t9 -23zM1600 1504v-96q0 -14 -9 -23t-23 -9 t-23 9t-9 23v96q0 14 9 23t23 9t23 -9t9 -23zM1751 1449l-91 -90q-10 -10 -22 -10q-13 0 -23 10q-10 9 -10 22.5t10 22.5l90 91q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" />
+<glyph unicode="&#xf1e3;" horiz-adv-x="1792" d="M609 720l287 208l287 -208l-109 -336h-355zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM1515 186q149 203 149 454v3l-102 -89l-240 224l63 323 l134 -12q-150 206 -389 282l53 -124l-287 -159l-287 159l53 124q-239 -76 -389 -282l135 12l62 -323l-240 -224l-102 89v-3q0 -251 149 -454l30 132l326 -40l139 -298l-116 -69q117 -39 240 -39t240 39l-116 69l139 298l326 40z" />
+<glyph unicode="&#xf1e4;" horiz-adv-x="1792" d="M448 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM256 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM832 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM66 768q-28 0 -47 19t-19 46v129h514v-129q0 -27 -19 -46t-46 -19h-383zM1216 224v-192q0 -14 -9 -23t-23 -9h-192 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1600 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23 zM1408 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1016v-13h-514v10q0 104 -382 102q-382 -1 -382 -102v-10h-514v13q0 17 8.5 43t34 64t65.5 75.5t110.5 76t160 67.5t224 47.5t293.5 18.5t293 -18.5t224 -47.5 t160.5 -67.5t110.5 -76t65.5 -75.5t34 -64t8.5 -43zM1792 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 962v-129q0 -27 -19 -46t-46 -19h-384q-27 0 -46 19t-19 46v129h514z" />
+<glyph unicode="&#xf1e5;" horiz-adv-x="1792" d="M704 1216v-768q0 -26 -19 -45t-45 -19v-576q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v512l249 873q7 23 31 23h424zM1024 1216v-704h-256v704h256zM1792 320v-512q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v576q-26 0 -45 19t-19 45v768h424q24 0 31 -23z M736 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23zM1408 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf1e6;" horiz-adv-x="1792" d="M1755 1083q37 -37 37 -90t-37 -91l-401 -400l150 -150l-160 -160q-163 -163 -389.5 -186.5t-411.5 100.5l-362 -362h-181v181l362 362q-124 185 -100.5 411.5t186.5 389.5l160 160l150 -150l400 401q38 37 91 37t90 -37t37 -90.5t-37 -90.5l-400 -401l234 -234l401 400 q38 37 91 37t90 -37z" />
+<glyph unicode="&#xf1e7;" horiz-adv-x="1792" d="M873 796q0 -83 -63.5 -142.5t-152.5 -59.5t-152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59t152.5 -59t63.5 -143zM1375 796q0 -83 -63 -142.5t-153 -59.5q-89 0 -152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59q90 0 153 -59t63 -143zM1600 616v667q0 87 -32 123.5 t-111 36.5h-1112q-83 0 -112.5 -34t-29.5 -126v-673q43 -23 88.5 -40t81 -28t81 -18.5t71 -11t70 -4t58.5 -0.5t56.5 2t44.5 2q68 1 95 -27q6 -6 10 -9q26 -25 61 -51q7 91 118 87q5 0 36.5 -1.5t43 -2t45.5 -1t53 1t54.5 4.5t61 8.5t62 13.5t67 19.5t67.5 27t72 34.5z M1763 621q-121 -149 -372 -252q84 -285 -23 -465q-66 -113 -183 -148q-104 -32 -182 15q-86 51 -82 164l-1 326v1q-8 2 -24.5 6t-23.5 5l-1 -338q4 -114 -83 -164q-79 -47 -183 -15q-117 36 -182 150q-105 180 -22 463q-251 103 -372 252q-25 37 -4 63t60 -1q3 -2 11 -7 t11 -8v694q0 72 47 123t114 51h1257q67 0 114 -51t47 -123v-694l21 15q39 27 60 1t-4 -63z" />
+<glyph unicode="&#xf1e8;" horiz-adv-x="1792" d="M896 1102v-434h-145v434h145zM1294 1102v-434h-145v434h145zM1294 342l253 254v795h-1194v-1049h326v-217l217 217h398zM1692 1536v-1013l-434 -434h-326l-217 -217h-217v217h-398v1158l109 289h1483z" />
+<glyph unicode="&#xf1e9;" d="M773 217v-127q-1 -292 -6 -305q-12 -32 -51 -40q-54 -9 -181.5 38t-162.5 89q-13 15 -17 36q-1 12 4 26q4 10 34 47t181 216q1 0 60 70q15 19 39.5 24.5t49.5 -3.5q24 -10 37.5 -29t12.5 -42zM624 468q-3 -55 -52 -70l-120 -39q-275 -88 -292 -88q-35 2 -54 36 q-12 25 -17 75q-8 76 1 166.5t30 124.5t56 32q13 0 202 -77q70 -29 115 -47l84 -34q23 -9 35.5 -30.5t11.5 -48.5zM1450 171q-7 -54 -91.5 -161t-135.5 -127q-37 -14 -63 7q-14 10 -184 287l-47 77q-14 21 -11.5 46t19.5 46q35 43 83 26q1 -1 119 -40q203 -66 242 -79.5 t47 -20.5q28 -22 22 -61zM778 803q5 -102 -54 -122q-58 -17 -114 71l-378 598q-8 35 19 62q41 43 207.5 89.5t224.5 31.5q40 -10 49 -45q3 -18 22 -305.5t24 -379.5zM1440 695q3 -39 -26 -59q-15 -10 -329 -86q-67 -15 -91 -23l1 2q-23 -6 -46 4t-37 32q-30 47 0 87 q1 1 75 102q125 171 150 204t34 39q28 19 65 2q48 -23 123 -133.5t81 -167.5v-3z" />
+<glyph unicode="&#xf1ea;" horiz-adv-x="2048" d="M1024 1024h-384v-384h384v384zM1152 384v-128h-640v128h640zM1152 1152v-640h-640v640h640zM1792 384v-128h-512v128h512zM1792 640v-128h-512v128h512zM1792 896v-128h-512v128h512zM1792 1152v-128h-512v128h512zM256 192v960h-128v-960q0 -26 19 -45t45 -19t45 19 t19 45zM1920 192v1088h-1536v-1088q0 -33 -11 -64h1483q26 0 45 19t19 45zM2048 1408v-1216q0 -80 -56 -136t-136 -56h-1664q-80 0 -136 56t-56 136v1088h256v128h1792z" />
+<glyph unicode="&#xf1eb;" horiz-adv-x="2048" d="M1024 13q-20 0 -93 73.5t-73 93.5q0 32 62.5 54t103.5 22t103.5 -22t62.5 -54q0 -20 -73 -93.5t-93 -73.5zM1294 284q-2 0 -40 25t-101.5 50t-128.5 25t-128.5 -25t-101 -50t-40.5 -25q-18 0 -93.5 75t-75.5 93q0 13 10 23q78 77 196 121t233 44t233 -44t196 -121 q10 -10 10 -23q0 -18 -75.5 -93t-93.5 -75zM1567 556q-11 0 -23 8q-136 105 -252 154.5t-268 49.5q-85 0 -170.5 -22t-149 -53t-113.5 -62t-79 -53t-31 -22q-17 0 -92 75t-75 93q0 12 10 22q132 132 320 205t380 73t380 -73t320 -205q10 -10 10 -22q0 -18 -75 -93t-92 -75z M1838 827q-11 0 -22 9q-179 157 -371.5 236.5t-420.5 79.5t-420.5 -79.5t-371.5 -236.5q-11 -9 -22 -9q-17 0 -92.5 75t-75.5 93q0 13 10 23q187 186 445 288t527 102t527 -102t445 -288q10 -10 10 -23q0 -18 -75.5 -93t-92.5 -75z" />
+<glyph unicode="&#xf1ec;" horiz-adv-x="1792" d="M384 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5 t37.5 90.5zM384 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 768q0 53 -37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1536 0v384q0 52 -38 90t-90 38t-90 -38t-38 -90v-384q0 -52 38 -90t90 -38t90 38t38 90zM1152 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5z M1536 1088v256q0 26 -19 45t-45 19h-1280q-26 0 -45 -19t-19 -45v-256q0 -26 19 -45t45 -19h1280q26 0 45 19t19 45zM1536 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1408v-1536q0 -52 -38 -90t-90 -38 h-1408q-52 0 -90 38t-38 90v1536q0 52 38 90t90 38h1408q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf1ed;" horiz-adv-x="1792" d="M1112 1090q0 159 -237 159h-70q-32 0 -59.5 -21.5t-34.5 -52.5l-63 -276q-2 -5 -2 -16q0 -24 17 -39.5t41 -15.5h53q69 0 128.5 13t112.5 41t83.5 81.5t30.5 126.5zM1716 938q0 -265 -220 -428q-219 -161 -612 -161h-61q-32 0 -59 -21.5t-34 -52.5l-73 -316 q-8 -36 -40.5 -61.5t-69.5 -25.5h-213q-31 0 -53 20t-22 51q0 10 13 65h151q34 0 64 23.5t38 56.5l73 316q8 33 37.5 57t63.5 24h61q390 0 607 160t217 421q0 129 -51 207q183 -92 183 -335zM1533 1123q0 -264 -221 -428q-218 -161 -612 -161h-60q-32 0 -59.5 -22t-34.5 -53 l-73 -315q-8 -36 -40 -61.5t-69 -25.5h-214q-31 0 -52.5 19.5t-21.5 51.5q0 8 2 20l300 1301q8 36 40.5 61.5t69.5 25.5h444q68 0 125 -4t120.5 -15t113.5 -30t96.5 -50.5t77.5 -74t49.5 -103.5t18.5 -136z" />
+<glyph unicode="&#xf1ee;" horiz-adv-x="1792" d="M602 949q19 -61 31 -123.5t17 -141.5t-14 -159t-62 -145q-21 81 -67 157t-95.5 127t-99 90.5t-78.5 57.5t-33 19q-62 34 -81.5 100t14.5 128t101 81.5t129 -14.5q138 -83 238 -177zM927 1236q11 -25 20.5 -46t36.5 -100.5t42.5 -150.5t25.5 -179.5t0 -205.5t-47.5 -209.5 t-105.5 -208.5q-51 -72 -138 -72q-54 0 -98 31q-57 40 -69 109t28 127q60 85 81 195t13 199.5t-32 180.5t-39 128t-22 52q-31 63 -8.5 129.5t85.5 97.5q34 17 75 17q47 0 88.5 -25t63.5 -69zM1248 567q-17 -160 -72 -311q-17 131 -63 246q25 174 -5 361q-27 178 -94 342 q114 -90 212 -211q9 -37 15 -80q26 -179 7 -347zM1520 1440q9 -17 23.5 -49.5t43.5 -117.5t50.5 -178t34 -227.5t5 -269t-47 -300t-112.5 -323.5q-22 -48 -66 -75.5t-95 -27.5q-39 0 -74 16q-67 31 -92.5 100t4.5 136q58 126 90 257.5t37.5 239.5t-3.5 213.5t-26.5 180.5 t-38.5 138.5t-32.5 90t-15.5 32.5q-34 65 -11.5 135.5t87.5 104.5q37 20 81 20q49 0 91.5 -25.5t66.5 -70.5z" />
+<glyph unicode="&#xf1f0;" horiz-adv-x="2304" d="M1975 546h-138q14 37 66 179l3 9q4 10 10 26t9 26l12 -55zM531 611l-58 295q-11 54 -75 54h-268l-2 -13q311 -79 403 -336zM710 960l-162 -438l-17 89q-26 70 -85 129.5t-131 88.5l135 -510h175l261 641h-176zM849 318h166l104 642h-166zM1617 944q-69 27 -149 27 q-123 0 -201 -59t-79 -153q-1 -102 145 -174q48 -23 67 -41t19 -39q0 -30 -30 -46t-69 -16q-86 0 -156 33l-22 11l-23 -144q74 -34 185 -34q130 -1 208.5 59t80.5 160q0 106 -140 174q-49 25 -71 42t-22 38q0 22 24.5 38.5t70.5 16.5q70 1 124 -24l15 -8zM2042 960h-128 q-65 0 -87 -54l-246 -588h174l35 96h212q5 -22 20 -96h154zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf1f1;" horiz-adv-x="2304" d="M671 603h-13q-47 0 -47 -32q0 -22 20 -22q17 0 28 15t12 39zM1066 639h62v3q1 4 0.5 6.5t-1 7t-2 8t-4.5 6.5t-7.5 5t-11.5 2q-28 0 -36 -38zM1606 603h-12q-48 0 -48 -32q0 -22 20 -22q17 0 28 15t12 39zM1925 629q0 41 -30 41q-19 0 -31 -20t-12 -51q0 -42 28 -42 q20 0 32.5 20t12.5 52zM480 770h87l-44 -262h-56l32 201l-71 -201h-39l-4 200l-34 -200h-53l44 262h81l2 -163zM733 663q0 -6 -4 -42q-16 -101 -17 -113h-47l1 22q-20 -26 -58 -26q-23 0 -37.5 16t-14.5 42q0 39 26 60.5t73 21.5q14 0 23 -1q0 3 0.5 5.5t1 4.5t0.5 3 q0 20 -36 20q-29 0 -59 -10q0 4 7 48q38 11 67 11q74 0 74 -62zM889 721l-8 -49q-22 3 -41 3q-27 0 -27 -17q0 -8 4.5 -12t21.5 -11q40 -19 40 -60q0 -72 -87 -71q-34 0 -58 6q0 2 7 49q29 -8 51 -8q32 0 32 19q0 7 -4.5 11.5t-21.5 12.5q-43 20 -43 59q0 72 84 72 q30 0 50 -4zM977 721h28l-7 -52h-29q-2 -17 -6.5 -40.5t-7 -38.5t-2.5 -18q0 -16 19 -16q8 0 16 2l-8 -47q-21 -7 -40 -7q-43 0 -45 47q0 12 8 56q3 20 25 146h55zM1180 648q0 -23 -7 -52h-111q-3 -22 10 -33t38 -11q30 0 58 14l-9 -54q-30 -8 -57 -8q-95 0 -95 95 q0 55 27.5 90.5t69.5 35.5q35 0 55.5 -21t20.5 -56zM1319 722q-13 -23 -22 -62q-22 2 -31 -24t-25 -128h-56l3 14q22 130 29 199h51l-3 -33q14 21 25.5 29.5t28.5 4.5zM1506 763l-9 -57q-28 14 -50 14q-31 0 -51 -27.5t-20 -70.5q0 -30 13.5 -47t38.5 -17q21 0 48 13 l-10 -59q-28 -8 -50 -8q-45 0 -71.5 30.5t-26.5 82.5q0 70 35.5 114.5t91.5 44.5q26 0 61 -13zM1668 663q0 -18 -4 -42q-13 -79 -17 -113h-46l1 22q-20 -26 -59 -26q-23 0 -37 16t-14 42q0 39 25.5 60.5t72.5 21.5q15 0 23 -1q2 7 2 13q0 20 -36 20q-29 0 -59 -10q0 4 8 48 q38 11 67 11q73 0 73 -62zM1809 722q-14 -24 -21 -62q-23 2 -31.5 -23t-25.5 -129h-56l3 14q19 104 29 199h52q0 -11 -4 -33q15 21 26.5 29.5t27.5 4.5zM1950 770h56l-43 -262h-53l3 19q-23 -23 -52 -23q-31 0 -49.5 24t-18.5 64q0 53 27.5 92t64.5 39q31 0 53 -29z M2061 640q0 148 -72.5 273t-198 198t-273.5 73q-181 0 -328 -110q127 -116 171 -284h-50q-44 150 -158 253q-114 -103 -158 -253h-50q44 168 171 284q-147 110 -328 110q-148 0 -273.5 -73t-198 -198t-72.5 -273t72.5 -273t198 -198t273.5 -73q181 0 328 110 q-120 111 -165 264h50q46 -138 152 -233q106 95 152 233h50q-45 -153 -165 -264q147 -110 328 -110q148 0 273.5 73t198 198t72.5 273zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf1f2;" horiz-adv-x="2304" d="M313 759q0 -51 -36 -84q-29 -26 -89 -26h-17v220h17q61 0 89 -27q36 -31 36 -83zM2089 824q0 -52 -64 -52h-19v101h20q63 0 63 -49zM380 759q0 74 -50 120.5t-129 46.5h-95v-333h95q74 0 119 38q60 51 60 128zM410 593h65v333h-65v-333zM730 694q0 40 -20.5 62t-75.5 42 q-29 10 -39.5 19t-10.5 23q0 16 13.5 26.5t34.5 10.5q29 0 53 -27l34 44q-41 37 -98 37q-44 0 -74 -27.5t-30 -67.5q0 -35 18 -55.5t64 -36.5q37 -13 45 -19q19 -12 19 -34q0 -20 -14 -33.5t-36 -13.5q-48 0 -71 44l-42 -40q44 -64 115 -64q51 0 83 30.5t32 79.5zM1008 604 v77q-37 -37 -78 -37q-49 0 -80.5 32.5t-31.5 82.5q0 48 31.5 81.5t77.5 33.5q43 0 81 -38v77q-40 20 -80 20q-74 0 -125.5 -50.5t-51.5 -123.5t51 -123.5t125 -50.5q42 0 81 19zM2240 0v527q-65 -40 -144.5 -84t-237.5 -117t-329.5 -137.5t-417.5 -134.5t-504 -118h1569 q26 0 45 19t19 45zM1389 757q0 75 -53 128t-128 53t-128 -53t-53 -128t53 -128t128 -53t128 53t53 128zM1541 584l144 342h-71l-90 -224l-89 224h-71l142 -342h35zM1714 593h184v56h-119v90h115v56h-115v74h119v57h-184v-333zM2105 593h80l-105 140q76 16 76 94q0 47 -31 73 t-87 26h-97v-333h65v133h9zM2304 1274v-1268q0 -56 -38.5 -95t-93.5 -39h-2040q-55 0 -93.5 39t-38.5 95v1268q0 56 38.5 95t93.5 39h2040q55 0 93.5 -39t38.5 -95z" />
+<glyph unicode="&#xf1f3;" horiz-adv-x="2304" d="M119 854h89l-45 108zM740 328l74 79l-70 79h-163v-49h142v-55h-142v-54h159zM898 406l99 -110v217zM1186 453q0 33 -40 33h-84v-69h83q41 0 41 36zM1475 457q0 29 -42 29h-82v-61h81q43 0 43 32zM1197 923q0 29 -42 29h-82v-60h81q43 0 43 31zM1656 854h89l-44 108z M699 1009v-271h-66v212l-94 -212h-57l-94 212v-212h-132l-25 60h-135l-25 -60h-70l116 271h96l110 -257v257h106l85 -184l77 184h108zM1255 453q0 -20 -5.5 -35t-14 -25t-22.5 -16.5t-26 -10t-31.5 -4.5t-31.5 -1t-32.5 0.5t-29.5 0.5v-91h-126l-80 90l-83 -90h-256v271h260 l80 -89l82 89h207q109 0 109 -89zM964 794v-56h-217v271h217v-57h-152v-49h148v-55h-148v-54h152zM2304 235v-229q0 -55 -38.5 -94.5t-93.5 -39.5h-2040q-55 0 -93.5 39.5t-38.5 94.5v678h111l25 61h55l25 -61h218v46l19 -46h113l20 47v-47h541v99l10 1q10 0 10 -14v-86h279 v23q23 -12 55 -18t52.5 -6.5t63 0.5t51.5 1l25 61h56l25 -61h227v58l34 -58h182v378h-180v-44l-25 44h-185v-44l-23 44h-249q-69 0 -109 -22v22h-172v-22q-24 22 -73 22h-628l-43 -97l-43 97h-198v-44l-22 44h-169l-78 -179v391q0 55 38.5 94.5t93.5 39.5h2040 q55 0 93.5 -39.5t38.5 -94.5v-678h-120q-51 0 -81 -22v22h-177q-55 0 -78 -22v22h-316v-22q-31 22 -87 22h-209v-22q-23 22 -91 22h-234l-54 -58l-50 58h-349v-378h343l55 59l52 -59h211v89h21q59 0 90 13v-102h174v99h8q8 0 10 -2t2 -10v-87h529q57 0 88 24v-24h168 q60 0 95 17zM1546 469q0 -23 -12 -43t-34 -29q25 -9 34 -26t9 -46v-54h-65v45q0 33 -12 43.5t-46 10.5h-69v-99h-65v271h154q48 0 77 -15t29 -58zM1269 936q0 -24 -12.5 -44t-33.5 -29q26 -9 34.5 -25.5t8.5 -46.5v-53h-65q0 9 0.5 26.5t0 25t-3 18.5t-8.5 16t-17.5 8.5 t-29.5 3.5h-70v-98h-64v271l153 -1q49 0 78 -14.5t29 -57.5zM1798 327v-56h-216v271h216v-56h-151v-49h148v-55h-148v-54zM1372 1009v-271h-66v271h66zM2065 357q0 -86 -102 -86h-126v58h126q34 0 34 25q0 16 -17 21t-41.5 5t-49.5 3.5t-42 22.5t-17 55q0 39 26 60t66 21 h130v-57h-119q-36 0 -36 -25q0 -16 17.5 -20.5t42 -4t49 -2.5t42 -21.5t17.5 -54.5zM2304 407v-101q-24 -35 -88 -35h-125v58h125q33 0 33 25q0 13 -12.5 19t-31 5.5t-40 2t-40 8t-31 24t-12.5 48.5q0 39 26.5 60t66.5 21h129v-57h-118q-36 0 -36 -25q0 -20 29 -22t68.5 -5 t56.5 -26zM2139 1008v-270h-92l-122 203v-203h-132l-26 60h-134l-25 -60h-75q-129 0 -129 133q0 138 133 138h63v-59q-7 0 -28 1t-28.5 0.5t-23 -2t-21.5 -6.5t-14.5 -13.5t-11.5 -23t-3 -33.5q0 -38 13.5 -58t49.5 -20h29l92 213h97l109 -256v256h99l114 -188v188h66z" />
+<glyph unicode="&#xf1f4;" horiz-adv-x="2304" d="M322 689h-15q-19 0 -19 18q0 28 19 85q5 15 15 19.5t28 4.5q77 0 77 -49q0 -41 -30.5 -59.5t-74.5 -18.5zM664 528q-47 0 -47 29q0 62 123 62l3 -3q-5 -88 -79 -88zM1438 687h-15q-19 0 -19 19q0 28 19 85q5 15 14.5 19t28.5 4q77 0 77 -49q0 -41 -30.5 -59.5 t-74.5 -18.5zM1780 527q-47 0 -47 30q0 62 123 62l3 -3q-5 -89 -79 -89zM373 894h-128q-8 0 -14.5 -4t-8.5 -7.5t-7 -12.5q-3 -7 -45 -190t-42 -192q0 -7 5.5 -12.5t13.5 -5.5h62q25 0 32.5 34.5l15 69t32.5 34.5q47 0 87.5 7.5t80.5 24.5t63.5 52.5t23.5 84.5 q0 36 -14.5 61t-41 36.5t-53.5 15.5t-62 4zM719 798q-38 0 -74 -6q-2 0 -8.5 -1t-9 -1.5l-7.5 -1.5t-7.5 -2t-6.5 -3t-6.5 -4t-5 -5t-4.5 -7t-4 -9q-9 -29 -9 -39t9 -10q5 0 21.5 5t19.5 6q30 8 58 8q74 0 74 -36q0 -11 -10 -14q-8 -2 -18 -3t-21.5 -1.5t-17.5 -1.5 q-38 -4 -64.5 -10t-56.5 -19.5t-45.5 -39t-15.5 -62.5q0 -38 26 -59.5t64 -21.5q24 0 45.5 6.5t33 13t38.5 23.5q-3 -7 -3 -15t5.5 -13.5t12.5 -5.5h56q1 1 7 3.5t7.5 3.5t5 3.5t5 5.5t2.5 8l45 194q4 13 4 30q0 81 -145 81zM1247 793h-74q-22 0 -39 -23q-5 -7 -29.5 -51 t-46.5 -81.5t-26 -38.5l-5 4q0 77 -27 166q-1 5 -3.5 8.5t-6 6.5t-6.5 5t-8.5 3t-8.5 1.5t-9.5 1t-9 0.5h-10h-8.5q-38 0 -38 -21l1 -5q5 -53 25 -151t25 -143q2 -16 2 -24q0 -19 -30.5 -61.5t-30.5 -58.5q0 -13 40 -13q61 0 76 25l245 415q10 20 10 26q0 9 -8 9zM1489 892 h-129q-18 0 -29 -23q-6 -13 -46.5 -191.5t-40.5 -190.5q0 -20 43 -20h7.5h9h9t9.5 1t8.5 2t8.5 3t6.5 4.5t5.5 6t3 8.5l21 91q2 10 10.5 17t19.5 7q47 0 87.5 7t80.5 24.5t63.5 52.5t23.5 84q0 36 -14.5 61t-41 36.5t-53.5 15.5t-62 4zM1835 798q-26 0 -74 -6 q-38 -6 -48 -16q-7 -8 -11 -19q-8 -24 -8 -39q0 -10 8 -10q1 0 41 12q30 8 58 8q74 0 74 -36q0 -12 -10 -14q-4 -1 -57 -7q-38 -4 -64.5 -10t-56.5 -19.5t-45.5 -39t-15.5 -62.5t26 -58.5t64 -21.5q24 0 45 6t34 13t38 24q-3 -15 -3 -16q0 -5 2 -8.5t6.5 -5.5t8 -3.5 t10.5 -2t9.5 -0.5h9.5h8q42 0 48 25l45 194q3 15 3 31q0 81 -145 81zM2157 889h-55q-25 0 -33 -40q-10 -44 -36.5 -167t-42.5 -190v-5q0 -16 16 -18h1h57q10 0 18.5 6.5t10.5 16.5l83 374h-1l1 5q0 7 -5.5 12.5t-13.5 5.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048 q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf1f5;" horiz-adv-x="2304" d="M1597 633q0 -69 -21 -106q-19 -35 -52 -35q-23 0 -41 9v224q29 30 57 30q57 0 57 -122zM2035 669h-110q6 98 56 98q51 0 54 -98zM476 534q0 59 -33 91.5t-101 57.5q-36 13 -52 24t-16 25q0 26 38 26q58 0 124 -33l18 112q-67 32 -149 32q-77 0 -123 -38q-48 -39 -48 -109 q0 -58 32.5 -90.5t99.5 -56.5q39 -14 54.5 -25.5t15.5 -27.5q0 -31 -48 -31q-29 0 -70 12.5t-72 30.5l-18 -113q72 -41 168 -41q81 0 129 37q51 41 51 117zM771 749l19 111h-96v135l-129 -21l-18 -114l-46 -8l-17 -103h62v-219q0 -84 44 -120q38 -30 111 -30q32 0 79 11v118 q-32 -7 -44 -7q-42 0 -42 50v197h77zM1087 724v139q-15 3 -28 3q-32 0 -55.5 -16t-33.5 -46l-10 56h-131v-471h150v306q26 31 82 31q16 0 26 -2zM1124 389h150v471h-150v-471zM1746 638q0 122 -45 179q-40 52 -111 52q-64 0 -117 -56l-8 47h-132v-645l150 25v151 q36 -11 68 -11q83 0 134 56q61 65 61 202zM1278 986q0 33 -23 56t-56 23t-56 -23t-23 -56t23 -56.5t56 -23.5t56 23.5t23 56.5zM2176 629q0 113 -48 176q-50 64 -144 64q-96 0 -151.5 -66t-55.5 -180q0 -128 63 -188q55 -55 161 -55q101 0 160 40l-16 103q-57 -31 -128 -31 q-43 0 -63 19q-23 19 -28 66h248q2 14 2 52zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf1f6;" horiz-adv-x="2048" d="M1558 684q61 -356 298 -556q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5zM1024 -176q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5zM2026 1424q8 -10 7.5 -23.5t-10.5 -22.5 l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5 l418 363q10 8 23.5 7t21.5 -11z" />
+<glyph unicode="&#xf1f7;" horiz-adv-x="2048" d="M1040 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM503 315l877 760q-42 88 -132.5 146.5t-223.5 58.5q-93 0 -169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -384 -137 -645zM1856 128 q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5l149 129h757q-166 187 -227 459l111 97q61 -356 298 -556zM1942 1520l84 -96q8 -10 7.5 -23.5t-10.5 -22.5l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161 q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5l418 363q10 8 23.5 7t21.5 -11z" />
+<glyph unicode="&#xf1f8;" horiz-adv-x="1408" d="M512 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM768 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1024 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704 q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167 q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf1f9;" d="M1150 462v-109q0 -50 -36.5 -89t-94 -60.5t-118 -32.5t-117.5 -11q-205 0 -342.5 139t-137.5 346q0 203 136 339t339 136q34 0 75.5 -4.5t93 -18t92.5 -34t69 -56.5t28 -81v-109q0 -16 -16 -16h-118q-16 0 -16 16v70q0 43 -65.5 67.5t-137.5 24.5q-140 0 -228.5 -91.5 t-88.5 -237.5q0 -151 91.5 -249.5t233.5 -98.5q68 0 138 24t70 66v70q0 7 4.5 11.5t10.5 4.5h119q6 0 11 -4.5t5 -11.5zM768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf1fa;" d="M972 761q0 108 -53.5 169t-147.5 61q-63 0 -124 -30.5t-110 -84.5t-79.5 -137t-30.5 -180q0 -112 53.5 -173t150.5 -61q96 0 176 66.5t122.5 166t42.5 203.5zM1536 640q0 -111 -37 -197t-98.5 -135t-131.5 -74.5t-145 -27.5q-6 0 -15.5 -0.5t-16.5 -0.5q-95 0 -142 53 q-28 33 -33 83q-52 -66 -131.5 -110t-173.5 -44q-161 0 -249.5 95.5t-88.5 269.5q0 157 66 290t179 210.5t246 77.5q87 0 155 -35.5t106 -99.5l2 19l11 56q1 6 5.5 12t9.5 6h118q5 0 13 -11q5 -5 3 -16l-120 -614q-5 -24 -5 -48q0 -39 12.5 -52t44.5 -13q28 1 57 5.5t73 24 t77 50t57 89.5t24 137q0 292 -174 466t-466 174q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51q228 0 405 144q11 9 24 8t21 -12l41 -49q8 -12 7 -24q-2 -13 -12 -22q-102 -83 -227.5 -128t-258.5 -45q-156 0 -298 61 t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q344 0 556 -212t212 -556z" />
+<glyph unicode="&#xf1fb;" horiz-adv-x="1792" d="M1698 1442q94 -94 94 -226.5t-94 -225.5l-225 -223l104 -104q10 -10 10 -23t-10 -23l-210 -210q-10 -10 -23 -10t-23 10l-105 105l-603 -603q-37 -37 -90 -37h-203l-256 -128l-64 64l128 256v203q0 53 37 90l603 603l-105 105q-10 10 -10 23t10 23l210 210q10 10 23 10 t23 -10l104 -104l223 225q93 94 225.5 94t226.5 -94zM512 64l576 576l-192 192l-576 -576v-192h192z" />
+<glyph unicode="&#xf1fc;" horiz-adv-x="1792" d="M1615 1536q70 0 122.5 -46.5t52.5 -116.5q0 -63 -45 -151q-332 -629 -465 -752q-97 -91 -218 -91q-126 0 -216.5 92.5t-90.5 219.5q0 128 92 212l638 579q59 54 130 54zM706 502q39 -76 106.5 -130t150.5 -76l1 -71q4 -213 -129.5 -347t-348.5 -134q-123 0 -218 46.5 t-152.5 127.5t-86.5 183t-29 220q7 -5 41 -30t62 -44.5t59 -36.5t46 -17q41 0 55 37q25 66 57.5 112.5t69.5 76t88 47.5t103 25.5t125 10.5z" />
+<glyph unicode="&#xf1fd;" horiz-adv-x="1792" d="M1792 128v-384h-1792v384q45 0 85 14t59 27.5t47 37.5q30 27 51.5 38t56.5 11t55.5 -11t52.5 -38q29 -25 47 -38t58 -27t86 -14q45 0 85 14.5t58 27t48 37.5q21 19 32.5 27t31 15t43.5 7q35 0 56.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14t85 14t59 27.5t47 37.5 q30 27 51.5 38t56.5 11q34 0 55.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14zM1792 448v-192q-35 0 -55.5 11t-52.5 38q-29 25 -47 38t-58 27t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-22 -19 -33 -27t-31 -15t-44 -7q-35 0 -56.5 11t-51.5 38q-29 25 -47 38t-58 27 t-86 14q-45 0 -85 -14.5t-58 -27t-48 -37.5q-21 -19 -32.5 -27t-31 -15t-43.5 -7q-35 0 -56.5 11t-51.5 38q-28 24 -47 37.5t-59 27.5t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-30 -27 -51.5 -38t-56.5 -11v192q0 80 56 136t136 56h64v448h256v-448h256v448h256v-448h256v448 h256v-448h64q80 0 136 -56t56 -136zM512 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1024 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51 t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1536 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150z" />
+<glyph unicode="&#xf1fe;" horiz-adv-x="2048" d="M2048 0v-128h-2048v1536h128v-1408h1920zM1664 1024l256 -896h-1664v576l448 576l576 -576z" />
+<glyph unicode="&#xf200;" horiz-adv-x="1792" d="M768 646l546 -546q-106 -108 -247.5 -168t-298.5 -60q-209 0 -385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103v-762zM955 640h773q0 -157 -60 -298.5t-168 -247.5zM1664 768h-768v768q209 0 385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf201;" horiz-adv-x="2048" d="M2048 0v-128h-2048v1536h128v-1408h1920zM1920 1248v-435q0 -21 -19.5 -29.5t-35.5 7.5l-121 121l-633 -633q-10 -10 -23 -10t-23 10l-233 233l-416 -416l-192 192l585 585q10 10 23 10t23 -10l233 -233l464 464l-121 121q-16 16 -7.5 35.5t29.5 19.5h435q14 0 23 -9 t9 -23z" />
+<glyph unicode="&#xf202;" horiz-adv-x="1792" d="M1292 832q0 -6 10 -41q10 -29 25 -49.5t41 -34t44 -20t55 -16.5q325 -91 325 -332q0 -146 -105.5 -242.5t-254.5 -96.5q-59 0 -111.5 18.5t-91.5 45.5t-77 74.5t-63 87.5t-53.5 103.5t-43.5 103t-39.5 106.5t-35.5 95q-32 81 -61.5 133.5t-73.5 96.5t-104 64t-142 20 q-96 0 -183 -55.5t-138 -144.5t-51 -185q0 -160 106.5 -279.5t263.5 -119.5q177 0 258 95q56 63 83 116l84 -152q-15 -34 -44 -70l1 -1q-131 -152 -388 -152q-147 0 -269.5 79t-190.5 207.5t-68 274.5q0 105 43.5 206t116 176.5t172 121.5t204.5 46q87 0 159 -19t123.5 -50 t95 -80t72.5 -99t58.5 -117t50.5 -124.5t50 -130.5t55 -127q96 -200 233 -200q81 0 138.5 48.5t57.5 128.5q0 42 -19 72t-50.5 46t-72.5 31.5t-84.5 27t-87.5 34t-81 52t-65 82t-39 122.5q-3 16 -3 33q0 110 87.5 192t198.5 78q78 -3 120.5 -14.5t90.5 -53.5h-1 q12 -11 23 -24.5t26 -36t19 -27.5l-129 -99q-26 49 -54 70v1q-23 21 -97 21q-49 0 -84 -33t-35 -83z" />
+<glyph unicode="&#xf203;" d="M1432 484q0 173 -234 239q-35 10 -53 16.5t-38 25t-29 46.5q0 2 -2 8.5t-3 12t-1 7.5q0 36 24.5 59.5t60.5 23.5q54 0 71 -15h-1q20 -15 39 -51l93 71q-39 54 -49 64q-33 29 -67.5 39t-85.5 10q-80 0 -142 -57.5t-62 -137.5q0 -7 2 -23q16 -96 64.5 -140t148.5 -73 q29 -8 49 -15.5t45 -21.5t38.5 -34.5t13.5 -46.5v-5q1 -58 -40.5 -93t-100.5 -35q-97 0 -167 144q-23 47 -51.5 121.5t-48 125.5t-54 110.5t-74 95.5t-103.5 60.5t-147 24.5q-101 0 -192 -56t-144 -148t-50 -192v-1q4 -108 50.5 -199t133.5 -147.5t196 -56.5q186 0 279 110 q20 27 31 51l-60 109q-42 -80 -99 -116t-146 -36q-115 0 -191 87t-76 204q0 105 82 189t186 84q112 0 170 -53.5t104 -172.5q8 -21 25.5 -68.5t28.5 -76.5t31.5 -74.5t38.5 -74t45.5 -62.5t55.5 -53.5t66 -33t80 -13.5q107 0 183 69.5t76 174.5zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf204;" horiz-adv-x="2048" d="M1152 640q0 104 -40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM1920 640q0 104 -40.5 198.5 t-109.5 163.5t-163.5 109.5t-198.5 40.5h-386q119 -90 188.5 -224t69.5 -288t-69.5 -288t-188.5 -224h386q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM2048 640q0 -130 -51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5 t-136.5 204t-51 248.5t51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5z" />
+<glyph unicode="&#xf205;" horiz-adv-x="2048" d="M0 640q0 130 51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5t-51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5t-136.5 204t-51 248.5zM1408 128q104 0 198.5 40.5t163.5 109.5 t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5z" />
+<glyph unicode="&#xf206;" horiz-adv-x="2304" d="M762 384h-314q-40 0 -57.5 35t6.5 67l188 251q-65 31 -137 31q-132 0 -226 -94t-94 -226t94 -226t226 -94q115 0 203 72.5t111 183.5zM576 512h186q-18 85 -75 148zM1056 512l288 384h-480l-99 -132q105 -103 126 -252h165zM2176 448q0 132 -94 226t-226 94 q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94t226 94t94 226zM2304 448q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 97 39.5 183.5t109.5 149.5l-65 98l-353 -469 q-18 -26 -51 -26h-197q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q114 0 215 -55l137 183h-224q-26 0 -45 19t-19 45t19 45t45 19h384v-128h435l-85 128h-222q-26 0 -45 19t-19 45t19 45t45 19h256q33 0 53 -28l267 -400 q91 44 192 44q185 0 316.5 -131.5t131.5 -316.5z" />
+<glyph unicode="&#xf207;" d="M384 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1362 716l-72 384q-5 23 -22.5 37.5t-40.5 14.5 h-918q-23 0 -40.5 -14.5t-22.5 -37.5l-72 -384q-5 -30 14 -53t49 -23h1062q30 0 49 23t14 53zM1136 1328q0 20 -14 34t-34 14h-640q-20 0 -34 -14t-14 -34t14 -34t34 -14h640q20 0 34 14t14 34zM1536 603v-603h-128v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5v128h-768v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5v128h-128v603q0 112 25 223l103 454q9 78 97.5 137t230 89t312.5 30t312.5 -30t230 -89t97.5 -137l105 -454q23 -102 23 -223z" />
+<glyph unicode="&#xf208;" horiz-adv-x="2048" d="M1463 704q0 -35 -25 -60.5t-61 -25.5h-702q-36 0 -61 25.5t-25 60.5t25 60.5t61 25.5h702q36 0 61 -25.5t25 -60.5zM1677 704q0 86 -23 170h-982q-36 0 -61 25t-25 60q0 36 25 61t61 25h908q-88 143 -235 227t-320 84q-177 0 -327.5 -87.5t-238 -237.5t-87.5 -327 q0 -86 23 -170h982q36 0 61 -25t25 -60q0 -36 -25 -61t-61 -25h-908q88 -143 235.5 -227t320.5 -84q132 0 253 51.5t208 139t139 208t52 253.5zM2048 959q0 -35 -25 -60t-61 -25h-131q17 -85 17 -170q0 -167 -65.5 -319.5t-175.5 -263t-262.5 -176t-319.5 -65.5 q-246 0 -448.5 133t-301.5 350h-189q-36 0 -61 25t-25 61q0 35 25 60t61 25h132q-17 85 -17 170q0 167 65.5 319.5t175.5 263t262.5 176t320.5 65.5q245 0 447.5 -133t301.5 -350h188q36 0 61 -25t25 -61z" />
+<glyph unicode="&#xf209;" horiz-adv-x="1280" d="M953 1158l-114 -328l117 -21q165 451 165 518q0 56 -38 56q-57 0 -130 -225zM654 471l33 -88q37 42 71 67l-33 5.5t-38.5 7t-32.5 8.5zM362 1367q0 -98 159 -521q18 10 49 10q15 0 75 -5l-121 351q-75 220 -123 220q-19 0 -29 -17.5t-10 -37.5zM283 608q0 -36 51.5 -119 t117.5 -153t100 -70q14 0 25.5 13t11.5 27q0 24 -32 102q-13 32 -32 72t-47.5 89t-61.5 81t-62 32q-20 0 -45.5 -27t-25.5 -47zM125 273q0 -41 25 -104q59 -145 183.5 -227t281.5 -82q227 0 382 170q152 169 152 427q0 43 -1 67t-11.5 62t-30.5 56q-56 49 -211.5 75.5 t-270.5 26.5q-37 0 -49 -11q-12 -5 -12 -35q0 -34 21.5 -60t55.5 -40t77.5 -23.5t87.5 -11.5t85 -4t70 0h23q24 0 40 -19q15 -19 19 -55q-28 -28 -96 -54q-61 -22 -93 -46q-64 -46 -108.5 -114t-44.5 -137q0 -31 18.5 -88.5t18.5 -87.5l-3 -12q-4 -12 -4 -14 q-137 10 -146 216q-8 -2 -41 -2q2 -7 2 -21q0 -53 -40.5 -89.5t-94.5 -36.5q-82 0 -166.5 78t-84.5 159q0 34 33 67q52 -64 60 -76q77 -104 133 -104q12 0 26.5 8.5t14.5 20.5q0 34 -87.5 145t-116.5 111q-43 0 -70 -44.5t-27 -90.5zM11 264q0 101 42.5 163t136.5 88 q-28 74 -28 104q0 62 61 123t122 61q29 0 70 -15q-163 462 -163 567q0 80 41 130.5t119 50.5q131 0 325 -581q6 -17 8 -23q6 16 29 79.5t43.5 118.5t54 127.5t64.5 123t70.5 86.5t76.5 36q71 0 112 -49t41 -122q0 -108 -159 -550q61 -15 100.5 -46t58.5 -78t26 -93.5 t7 -110.5q0 -150 -47 -280t-132 -225t-211 -150t-278 -55q-111 0 -223 42q-149 57 -258 191.5t-109 286.5z" />
+<glyph unicode="&#xf20a;" horiz-adv-x="2048" d="M785 528h207q-14 -158 -98.5 -248.5t-214.5 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-203q-5 64 -35.5 99t-81.5 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t40 -51.5t66 -18q95 0 109 139zM1497 528h206 q-14 -158 -98 -248.5t-214 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-204q-4 64 -35 99t-81 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t39.5 -51.5t65.5 -18q49 0 76.5 38t33.5 101zM1856 647q0 207 -15.5 307 t-60.5 161q-6 8 -13.5 14t-21.5 15t-16 11q-86 63 -697 63q-625 0 -710 -63q-5 -4 -17.5 -11.5t-21 -14t-14.5 -14.5q-45 -60 -60 -159.5t-15 -308.5q0 -208 15 -307.5t60 -160.5q6 -8 15 -15t20.5 -14t17.5 -12q44 -33 239.5 -49t470.5 -16q610 0 697 65q5 4 17 11t20.5 14 t13.5 16q46 60 61 159t15 309zM2048 1408v-1536h-2048v1536h2048z" />
+<glyph unicode="&#xf20b;" d="M992 912v-496q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v496q0 112 -80 192t-192 80h-272v-1152q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v1344q0 14 9 23t23 9h464q135 0 249 -66.5t180.5 -180.5t66.5 -249zM1376 1376v-880q0 -135 -66.5 -249t-180.5 -180.5 t-249 -66.5h-464q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h160q14 0 23 -9t9 -23v-768h272q112 0 192 80t80 192v880q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf20c;" d="M1311 694v-114q0 -24 -13.5 -38t-37.5 -14h-202q-24 0 -38 14t-14 38v114q0 24 14 38t38 14h202q24 0 37.5 -14t13.5 -38zM821 464v250q0 53 -32.5 85.5t-85.5 32.5h-133q-68 0 -96 -52q-28 52 -96 52h-130q-53 0 -85.5 -32.5t-32.5 -85.5v-250q0 -22 21 -22h55 q22 0 22 22v230q0 24 13.5 38t38.5 14h94q24 0 38 -14t14 -38v-230q0 -22 21 -22h54q22 0 22 22v230q0 24 14 38t38 14h97q24 0 37.5 -14t13.5 -38v-230q0 -22 22 -22h55q21 0 21 22zM1410 560v154q0 53 -33 85.5t-86 32.5h-264q-53 0 -86 -32.5t-33 -85.5v-410 q0 -21 22 -21h55q21 0 21 21v180q31 -42 94 -42h191q53 0 86 32.5t33 85.5zM1536 1176v-1072q0 -96 -68 -164t-164 -68h-1072q-96 0 -164 68t-68 164v1072q0 96 68 164t164 68h1072q96 0 164 -68t68 -164z" />
+<glyph unicode="&#xf20d;" d="M915 450h-294l147 551zM1001 128h311l-324 1024h-440l-324 -1024h311l383 314zM1536 1120v-960q0 -118 -85 -203t-203 -85h-960q-118 0 -203 85t-85 203v960q0 118 85 203t203 85h960q118 0 203 -85t85 -203z" />
+<glyph unicode="&#xf20e;" horiz-adv-x="2048" d="M2048 641q0 -21 -13 -36.5t-33 -19.5l-205 -356q3 -9 3 -18q0 -20 -12.5 -35.5t-32.5 -19.5l-193 -337q3 -8 3 -16q0 -23 -16.5 -40t-40.5 -17q-25 0 -41 18h-400q-17 -20 -43 -20t-43 20h-399q-17 -20 -43 -20q-23 0 -40 16.5t-17 40.5q0 8 4 20l-193 335 q-20 4 -32.5 19.5t-12.5 35.5q0 9 3 18l-206 356q-20 5 -32.5 20.5t-12.5 35.5q0 21 13.5 36.5t33.5 19.5l199 344q0 1 -0.5 3t-0.5 3q0 36 34 51l209 363q-4 10 -4 18q0 24 17 40.5t40 16.5q26 0 44 -21h396q16 21 43 21t43 -21h398q18 21 44 21q23 0 40 -16.5t17 -40.5 q0 -6 -4 -18l207 -358q23 -1 39 -17.5t16 -38.5q0 -13 -7 -27l187 -324q19 -4 31.5 -19.5t12.5 -35.5zM1063 -158h389l-342 354h-143l-342 -354h360q18 16 39 16t39 -16zM112 654q1 -4 1 -13q0 -10 -2 -15l208 -360q2 0 4.5 -1t5.5 -2.5l5 -2.5l188 199v347l-187 194 q-13 -8 -29 -10zM986 1438h-388l190 -200l554 200h-280q-16 -16 -38 -16t-38 16zM1689 226q1 6 5 11l-64 68l-17 -79h76zM1583 226l22 105l-252 266l-296 -307l63 -64h463zM1495 -142l16 28l65 310h-427l333 -343q8 4 13 5zM578 -158h5l342 354h-373v-335l4 -6q14 -5 22 -13 zM552 226h402l64 66l-309 321l-157 -166v-221zM359 226h163v189l-168 -177q4 -8 5 -12zM358 1051q0 -1 0.5 -2t0.5 -2q0 -16 -8 -29l171 -177v269zM552 1121v-311l153 -157l297 314l-223 236zM556 1425l-4 -8v-264l205 74l-191 201q-6 -2 -10 -3zM1447 1438h-16l-621 -224 l213 -225zM1023 946l-297 -315l311 -319l296 307zM688 634l-136 141v-284zM1038 270l-42 -44h85zM1374 618l238 -251l132 624l-3 5l-1 1zM1718 1018q-8 13 -8 29v2l-216 376q-5 1 -13 5l-437 -463l310 -327zM522 1142v223l-163 -282zM522 196h-163l163 -283v283zM1607 196 l-48 -227l130 227h-82zM1729 266l207 361q-2 10 -2 14q0 1 3 16l-171 296l-129 -612l77 -82q5 3 15 7z" />
+<glyph unicode="&#xf210;" d="M0 856q0 131 91.5 226.5t222.5 95.5h742l352 358v-1470q0 -132 -91.5 -227t-222.5 -95h-780q-131 0 -222.5 95t-91.5 227v790zM1232 102l-176 180v425q0 46 -32 79t-78 33h-484q-46 0 -78 -33t-32 -79v-492q0 -46 32.5 -79.5t77.5 -33.5h770z" />
+<glyph unicode="&#xf211;" d="M934 1386q-317 -121 -556 -362.5t-358 -560.5q-20 89 -20 176q0 208 102.5 384.5t278.5 279t384 102.5q82 0 169 -19zM1203 1267q93 -65 164 -155q-389 -113 -674.5 -400.5t-396.5 -676.5q-93 72 -155 162q112 386 395 671t667 399zM470 -67q115 356 379.5 622t619.5 384 q40 -92 54 -195q-292 -120 -516 -345t-343 -518q-103 14 -194 52zM1536 -125q-193 50 -367 115q-135 -84 -290 -107q109 205 274 370.5t369 275.5q-21 -152 -101 -284q65 -175 115 -370z" />
+<glyph unicode="&#xf212;" horiz-adv-x="2048" d="M1893 1144l155 -1272q-131 0 -257 57q-200 91 -393 91q-226 0 -374 -148q-148 148 -374 148q-193 0 -393 -91q-128 -57 -252 -57h-5l155 1272q224 127 482 127q233 0 387 -106q154 106 387 106q258 0 482 -127zM1398 157q129 0 232 -28.5t260 -93.5l-124 1021 q-171 78 -368 78q-224 0 -374 -141q-150 141 -374 141q-197 0 -368 -78l-124 -1021q105 43 165.5 65t148.5 39.5t178 17.5q202 0 374 -108q172 108 374 108zM1438 191l-55 907q-211 -4 -359 -155q-152 155 -374 155q-176 0 -336 -66l-114 -941q124 51 228.5 76t221.5 25 q209 0 374 -102q172 107 374 102z" />
+<glyph unicode="&#xf213;" horiz-adv-x="2048" d="M1500 165v733q0 21 -15 36t-35 15h-93q-20 0 -35 -15t-15 -36v-733q0 -20 15 -35t35 -15h93q20 0 35 15t15 35zM1216 165v531q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-531q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM924 165v429q0 20 -15 35t-35 15h-101 q-20 0 -35 -15t-15 -35v-429q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM632 165v362q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-362q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM2048 311q0 -166 -118 -284t-284 -118h-1244q-166 0 -284 118t-118 284 q0 116 63 214.5t168 148.5q-10 34 -10 73q0 113 80.5 193.5t193.5 80.5q102 0 180 -67q45 183 194 300t338 117q149 0 275 -73.5t199.5 -199.5t73.5 -275q0 -66 -14 -122q135 -33 221 -142.5t86 -247.5z" />
+<glyph unicode="&#xf214;" d="M0 1536h1536v-1392l-776 -338l-760 338v1392zM1436 209v926h-1336v-926l661 -294zM1436 1235v201h-1336v-201h1336zM181 937v-115h-37v115h37zM181 789v-115h-37v115h37zM181 641v-115h-37v115h37zM181 493v-115h-37v115h37zM181 345v-115h-37v115h37zM207 202l15 34 l105 -47l-15 -33zM343 142l15 34l105 -46l-15 -34zM478 82l15 34l105 -46l-15 -34zM614 23l15 33l104 -46l-15 -34zM797 10l105 46l15 -33l-105 -47zM932 70l105 46l15 -34l-105 -46zM1068 130l105 46l15 -34l-105 -46zM1203 189l105 47l15 -34l-105 -46zM259 1389v-36h-114 v36h114zM421 1389v-36h-115v36h115zM583 1389v-36h-115v36h115zM744 1389v-36h-114v36h114zM906 1389v-36h-114v36h114zM1068 1389v-36h-115v36h115zM1230 1389v-36h-115v36h115zM1391 1389v-36h-114v36h114zM181 1049v-79h-37v115h115v-36h-78zM421 1085v-36h-115v36h115z M583 1085v-36h-115v36h115zM744 1085v-36h-114v36h114zM906 1085v-36h-114v36h114zM1068 1085v-36h-115v36h115zM1230 1085v-36h-115v36h115zM1355 970v79h-78v36h115v-115h-37zM1355 822v115h37v-115h-37zM1355 674v115h37v-115h-37zM1355 526v115h37v-115h-37zM1355 378 v115h37v-115h-37zM1355 230v115h37v-115h-37zM760 265q-129 0 -221 91.5t-92 221.5q0 129 92 221t221 92q130 0 221.5 -92t91.5 -221q0 -130 -91.5 -221.5t-221.5 -91.5zM595 646q0 -36 19.5 -56.5t49.5 -25t64 -7t64 -2t49.5 -9t19.5 -30.5q0 -49 -112 -49q-97 0 -123 51 h-3l-31 -63q67 -42 162 -42q29 0 56.5 5t55.5 16t45.5 33t17.5 53q0 46 -27.5 69.5t-67.5 27t-79.5 3t-67 5t-27.5 25.5q0 21 20.5 33t40.5 15t41 3q34 0 70.5 -11t51.5 -34h3l30 58q-3 1 -21 8.5t-22.5 9t-19.5 7t-22 7t-20 4.5t-24 4t-23 1q-29 0 -56.5 -5t-54 -16.5 t-43 -34t-16.5 -53.5z" />
+<glyph unicode="&#xf215;" horiz-adv-x="2048" d="M863 504q0 112 -79.5 191.5t-191.5 79.5t-191 -79.5t-79 -191.5t79 -191t191 -79t191.5 79t79.5 191zM1726 505q0 112 -79 191t-191 79t-191.5 -79t-79.5 -191q0 -113 79.5 -192t191.5 -79t191 79.5t79 191.5zM2048 1314v-1348q0 -44 -31.5 -75.5t-76.5 -31.5h-1832 q-45 0 -76.5 31.5t-31.5 75.5v1348q0 44 31.5 75.5t76.5 31.5h431q44 0 76 -31.5t32 -75.5v-161h754v161q0 44 32 75.5t76 31.5h431q45 0 76.5 -31.5t31.5 -75.5z" />
+<glyph unicode="&#xf216;" horiz-adv-x="2048" d="M1430 953zM1690 749q148 0 253 -98.5t105 -244.5q0 -157 -109 -261.5t-267 -104.5q-85 0 -162 27.5t-138 73.5t-118 106t-109 126.5t-103.5 132.5t-108.5 126t-117 106t-136 73.5t-159 27.5q-154 0 -251.5 -91.5t-97.5 -244.5q0 -157 104 -250t263 -93q100 0 208 37.5 t193 98.5q5 4 21 18.5t30 24t22 9.5q14 0 24.5 -10.5t10.5 -24.5q0 -24 -60 -77q-101 -88 -234.5 -142t-260.5 -54q-133 0 -245.5 58t-180 165t-67.5 241q0 205 141.5 341t347.5 136q120 0 226.5 -43.5t185.5 -113t151.5 -153t139 -167.5t133.5 -153.5t149.5 -113 t172.5 -43.5q102 0 168.5 61.5t66.5 162.5q0 95 -64.5 159t-159.5 64q-30 0 -81.5 -18.5t-68.5 -18.5q-20 0 -35.5 15t-15.5 35q0 18 8.5 57t8.5 59q0 159 -107.5 263t-266.5 104q-58 0 -111.5 -18.5t-84 -40.5t-55.5 -40.5t-33 -18.5q-15 0 -25.5 10.5t-10.5 25.5 q0 19 25 46q59 67 147 103.5t182 36.5q191 0 318 -125.5t127 -315.5q0 -37 -4 -66q57 15 115 15z" />
+<glyph unicode="&#xf217;" horiz-adv-x="1664" d="M1216 832q0 26 -19 45t-45 19h-128v128q0 26 -19 45t-45 19t-45 -19t-19 -45v-128h-128q-26 0 -45 -19t-19 -45t19 -45t45 -19h128v-128q0 -26 19 -45t45 -19t45 19t19 45v128h128q26 0 45 19t19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920 q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf218;" horiz-adv-x="1792" d="M1280 832q0 26 -19 45t-45 19t-45 -19l-147 -146v293q0 26 -19 45t-45 19t-45 -19t-19 -45v-293l-147 146q-19 19 -45 19t-45 -19t-19 -45t19 -45l256 -256q19 -19 45 -19t45 19l256 256q19 19 19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920 q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf219;" horiz-adv-x="2048" d="M212 768l623 -665l-300 665h-323zM1024 -4l349 772h-698zM538 896l204 384h-262l-288 -384h346zM1213 103l623 665h-323zM683 896h682l-204 384h-274zM1510 896h346l-288 384h-262zM1651 1382l384 -512q14 -18 13 -41.5t-17 -40.5l-960 -1024q-18 -20 -47 -20t-47 20 l-960 1024q-16 17 -17 40.5t13 41.5l384 512q18 26 51 26h1152q33 0 51 -26z" />
+<glyph unicode="&#xf21a;" horiz-adv-x="2048" d="M1811 -19q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83 q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83 q19 19 45 19t45 -19l83 -83zM237 19q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -82l83 82q19 19 45 19t45 -19l83 -82l64 64v293l-210 314q-17 26 -7 56.5t40 40.5l177 58v299h128v128h256v128h256v-128h256v-128h128v-299l177 -58q30 -10 40 -40.5t-7 -56.5l-210 -314 v-293l19 18q19 19 45 19t45 -19l83 -82l83 82q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83 q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83zM640 1152v-128l384 128l384 -128v128h-128v128h-512v-128h-128z" />
+<glyph unicode="&#xf21b;" d="M576 0l96 448l-96 128l-128 64zM832 0l128 640l-128 -64l-96 -128zM992 1010q-2 4 -4 6q-10 8 -96 8q-70 0 -167 -19q-7 -2 -21 -2t-21 2q-97 19 -167 19q-86 0 -96 -8q-2 -2 -4 -6q2 -18 4 -27q2 -3 7.5 -6.5t7.5 -10.5q2 -4 7.5 -20.5t7 -20.5t7.5 -17t8.5 -17t9 -14 t12 -13.5t14 -9.5t17.5 -8t20.5 -4t24.5 -2q36 0 59 12.5t32.5 30t14.5 34.5t11.5 29.5t17.5 12.5h12q11 0 17.5 -12.5t11.5 -29.5t14.5 -34.5t32.5 -30t59 -12.5q13 0 24.5 2t20.5 4t17.5 8t14 9.5t12 13.5t9 14t8.5 17t7.5 17t7 20.5t7.5 20.5q2 7 7.5 10.5t7.5 6.5 q2 9 4 27zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 61 4.5 118t19 125.5t37.5 123.5t63.5 103.5t93.5 74.5l-90 220h214q-22 64 -22 128q0 12 2 32q-194 40 -194 96q0 57 210 99q17 62 51.5 134t70.5 114q32 37 76 37q30 0 84 -31t84 -31t84 31 t84 31q44 0 76 -37q36 -42 70.5 -114t51.5 -134q210 -42 210 -99q0 -56 -194 -96q7 -81 -20 -160h214l-82 -225q63 -33 107.5 -96.5t65.5 -143.5t29 -151.5t8 -148.5z" />
+<glyph unicode="&#xf21c;" horiz-adv-x="2304" d="M2301 500q12 -103 -22 -198.5t-99 -163.5t-158.5 -106t-196.5 -31q-161 11 -279.5 125t-134.5 274q-12 111 27.5 210.5t118.5 170.5l-71 107q-96 -80 -151 -194t-55 -244q0 -27 -18.5 -46.5t-45.5 -19.5h-256h-69q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5 t-131.5 316.5t131.5 316.5t316.5 131.5q76 0 152 -27l24 45q-123 110 -304 110h-64q-26 0 -45 19t-19 45t19 45t45 19h128q78 0 145 -13.5t116.5 -38.5t71.5 -39.5t51 -36.5h512h115l-85 128h-222q-30 0 -49 22.5t-14 52.5q4 23 23 38t43 15h253q33 0 53 -28l70 -105 l114 114q19 19 46 19h101q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-179l115 -172q131 63 275 36q143 -26 244 -134.5t118 -253.5zM448 128q115 0 203 72.5t111 183.5h-314q-35 0 -55 31q-18 32 -1 63l147 277q-47 13 -91 13q-132 0 -226 -94t-94 -226t94 -226 t226 -94zM1856 128q132 0 226 94t94 226t-94 226t-226 94q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94z" />
+<glyph unicode="&#xf21d;" d="M1408 0q0 -63 -61.5 -113.5t-164 -81t-225 -46t-253.5 -15.5t-253.5 15.5t-225 46t-164 81t-61.5 113.5q0 49 33 88.5t91 66.5t118 44.5t131 29.5q26 5 48 -10.5t26 -41.5q5 -26 -10.5 -48t-41.5 -26q-58 -10 -106 -23.5t-76.5 -25.5t-48.5 -23.5t-27.5 -19.5t-8.5 -12 q3 -11 27 -26.5t73 -33t114 -32.5t160.5 -25t201.5 -10t201.5 10t160.5 25t114 33t73 33.5t27 27.5q-1 4 -8.5 11t-27.5 19t-48.5 23.5t-76.5 25t-106 23.5q-26 4 -41.5 26t-10.5 48q4 26 26 41.5t48 10.5q71 -12 131 -29.5t118 -44.5t91 -66.5t33 -88.5zM1024 896v-384 q0 -26 -19 -45t-45 -19h-64v-384q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v384h-64q-26 0 -45 19t-19 45v384q0 53 37.5 90.5t90.5 37.5h384q53 0 90.5 -37.5t37.5 -90.5zM928 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5 t158.5 -65.5t65.5 -158.5z" />
+<glyph unicode="&#xf21e;" horiz-adv-x="1792" d="M1280 512h305q-5 -6 -10 -10.5t-9 -7.5l-3 -4l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-5 2 -21 20h369q22 0 39.5 13.5t22.5 34.5l70 281l190 -667q6 -20 23 -33t39 -13q21 0 38 13t23 33l146 485l56 -112q18 -35 57 -35zM1792 940q0 -145 -103 -300h-369l-111 221 q-8 17 -25.5 27t-36.5 8q-45 -5 -56 -46l-129 -430l-196 686q-6 20 -23.5 33t-39.5 13t-39 -13.5t-22 -34.5l-116 -464h-423q-103 155 -103 300q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124 t127 -344z" />
+<glyph unicode="&#xf221;" horiz-adv-x="1280" d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292 q11 134 80.5 249t182 188t245.5 88q170 19 319 -54t236 -212t87 -306zM128 960q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5z" />
+<glyph unicode="&#xf222;" horiz-adv-x="1792" d="M1280 1504q0 14 9 23t23 9h416q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-419 -420q87 -104 129.5 -236.5t30.5 -276.5q-22 -250 -200.5 -431t-428.5 -206q-163 -17 -314 39.5t-256.5 162t-162 256.5t-39.5 314q25 250 206 428.5 t431 200.5q144 12 276.5 -30.5t236.5 -129.5l419 419h-261q-14 0 -23 9t-9 23v64zM704 -128q117 0 223.5 45.5t184 123t123 184t45.5 223.5t-45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123 t223.5 -45.5z" />
+<glyph unicode="&#xf223;" horiz-adv-x="1280" d="M830 1220q145 -72 233.5 -210.5t88.5 -305.5q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5 t-147.5 384.5q0 167 88.5 305.5t233.5 210.5q-165 96 -228 273q-6 16 3.5 29.5t26.5 13.5h69q21 0 29 -20q44 -106 140 -171t214 -65t214 65t140 171q8 20 37 20h61q17 0 26.5 -13.5t3.5 -29.5q-63 -177 -228 -273zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+<glyph unicode="&#xf224;" d="M1024 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64 q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-149 16 -270.5 103t-186.5 223.5t-53 291.5q16 204 160 353.5t347 172.5q118 14 228 -19t198 -103l255 254h-134q-14 0 -23 9t-9 23v64zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+<glyph unicode="&#xf225;" horiz-adv-x="1792" d="M1280 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64 q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5t-147.5 384.5q0 201 126 359l-52 53l-101 -111q-9 -10 -22 -10.5t-23 7.5l-48 44q-10 8 -10.5 21.5t8.5 23.5l105 115l-111 112v-134q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9 t-9 23v288q0 26 19 45t45 19h288q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-133l106 -107l86 94q9 10 22 10.5t23 -7.5l48 -44q10 -8 10.5 -21.5t-8.5 -23.5l-90 -99l57 -56q158 126 359 126t359 -126l255 254h-134q-14 0 -23 9t-9 23v64zM832 256q185 0 316.5 131.5 t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+<glyph unicode="&#xf226;" horiz-adv-x="1792" d="M1790 1007q12 -155 -52.5 -292t-186 -224t-271.5 -103v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-512v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23 t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292q17 206 164.5 356.5t352.5 169.5q206 21 377 -94q171 115 377 94q205 -19 352.5 -169.5t164.5 -356.5zM896 647q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM576 512q115 0 218 57q-154 165 -154 391 q0 224 154 391q-103 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5zM1152 128v260q-137 15 -256 94q-119 -79 -256 -94v-260h512zM1216 512q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5q-115 0 -218 -57q154 -167 154 -391 q0 -226 -154 -391q103 -57 218 -57z" />
+<glyph unicode="&#xf227;" horiz-adv-x="1920" d="M1536 1120q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-31 -182 -166 -312t-318 -156q-210 -29 -384.5 80t-241.5 300q-117 6 -221 57.5t-177.5 133t-113.5 192.5t-32 230 q9 135 78 252t182 191.5t248 89.5q118 14 227.5 -19t198.5 -103l255 254h-134q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q59 -74 93 -169q182 -9 328 -124l255 254h-134q-14 0 -23 9 t-9 23v64zM1024 704q0 20 -4 58q-162 -25 -271 -150t-109 -292q0 -20 4 -58q162 25 271 150t109 292zM128 704q0 -168 111 -294t276 -149q-3 29 -3 59q0 210 135 369.5t338 196.5q-53 120 -163.5 193t-245.5 73q-185 0 -316.5 -131.5t-131.5 -316.5zM1088 -128 q185 0 316.5 131.5t131.5 316.5q0 168 -111 294t-276 149q3 -29 3 -59q0 -210 -135 -369.5t-338 -196.5q53 -120 163.5 -193t245.5 -73z" />
+<glyph unicode="&#xf228;" horiz-adv-x="2048" d="M1664 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-32 -180 -164.5 -310t-313.5 -157q-223 -34 -409 90q-117 -78 -256 -93v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23 t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-155 17 -279.5 109.5t-187 237.5t-39.5 307q25 187 159.5 322.5t320.5 164.5q224 34 410 -90q146 97 320 97q201 0 359 -126l255 254h-134q-14 0 -23 9 t-9 23v64zM896 391q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM128 704q0 -185 131.5 -316.5t316.5 -131.5q117 0 218 57q-154 167 -154 391t154 391q-101 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5zM1216 256q185 0 316.5 131.5t131.5 316.5 t-131.5 316.5t-316.5 131.5q-117 0 -218 -57q154 -167 154 -391t-154 -391q101 -57 218 -57z" />
+<glyph unicode="&#xf229;" horiz-adv-x="1792" d="M1728 1536q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-229 -230l156 -156q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-156 157l-99 -100q87 -104 129.5 -236.5t30.5 -276.5q-22 -250 -200.5 -431t-428.5 -206q-163 -17 -314 39.5 t-256.5 162t-162 256.5t-39.5 314q25 250 206 428.5t431 200.5q144 12 276.5 -30.5t236.5 -129.5l99 99l-156 156q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l156 -156l229 229h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM1280 448q0 117 -45.5 223.5t-123 184t-184 123 t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5z" />
+<glyph unicode="&#xf22a;" horiz-adv-x="1280" d="M640 892q217 -24 364.5 -187.5t147.5 -384.5q0 -167 -87 -306t-236 -212t-319 -54q-133 15 -245.5 88t-182 188t-80.5 249q-12 155 52.5 292t186 224t271.5 103v132h-160q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h160v165l-92 -92q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22 t9 23l202 201q19 19 45 19t45 -19l202 -201q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-92 92v-165h160q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-160v-132zM576 -128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5 t131.5 -316.5t316.5 -131.5z" />
+<glyph unicode="&#xf22b;" horiz-adv-x="2048" d="M2029 685q19 -19 19 -45t-19 -45l-294 -294q-9 -10 -22.5 -10t-22.5 10l-45 45q-10 9 -10 22.5t10 22.5l185 185h-294v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-131q-12 -119 -67 -226t-139 -183.5t-196.5 -121.5t-234.5 -45q-180 0 -330.5 91t-234.5 247 t-74 337q8 162 94 300t226.5 219.5t302.5 85.5q166 4 310.5 -71.5t235.5 -208.5t107 -296h131v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224h294l-185 185q-10 9 -10 22.5t10 22.5l45 45q9 10 22.5 10t22.5 -10zM640 128q104 0 198.5 40.5t163.5 109.5t109.5 163.5 t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5z" />
+<glyph unicode="&#xf22c;" horiz-adv-x="1280" d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-612q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v612q-217 24 -364.5 187.5t-147.5 384.5q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM576 512q185 0 316.5 131.5 t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+<glyph unicode="&#xf22d;" horiz-adv-x="1792" />
+<glyph unicode="&#xf22e;" horiz-adv-x="1792" />
+<glyph unicode="&#xf22f;" horiz-adv-x="1792" />
+<glyph unicode="&#xf230;" d="M1451 1408q35 0 60 -25t25 -60v-1366q0 -35 -25 -60t-60 -25h-391v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-735q-35 0 -60 25t-25 60v1366q0 35 25 60t60 25h1366z" />
+<glyph unicode="&#xf231;" horiz-adv-x="1280" d="M0 939q0 108 37.5 203.5t103.5 166.5t152 123t185 78t202 26q158 0 294 -66.5t221 -193.5t85 -287q0 -96 -19 -188t-60 -177t-100 -149.5t-145 -103t-189 -38.5q-68 0 -135 32t-96 88q-10 -39 -28 -112.5t-23.5 -95t-20.5 -71t-26 -71t-32 -62.5t-46 -77.5t-62 -86.5 l-14 -5l-9 10q-15 157 -15 188q0 92 21.5 206.5t66.5 287.5t52 203q-32 65 -32 169q0 83 52 156t132 73q61 0 95 -40.5t34 -102.5q0 -66 -44 -191t-44 -187q0 -63 45 -104.5t109 -41.5q55 0 102 25t78.5 68t56 95t38 110.5t20 111t6.5 99.5q0 173 -109.5 269.5t-285.5 96.5 q-200 0 -334 -129.5t-134 -328.5q0 -44 12.5 -85t27 -65t27 -45.5t12.5 -30.5q0 -28 -15 -73t-37 -45q-2 0 -17 3q-51 15 -90.5 56t-61 94.5t-32.5 108t-11 106.5z" />
+<glyph unicode="&#xf232;" d="M985 562q13 0 97.5 -44t89.5 -53q2 -5 2 -15q0 -33 -17 -76q-16 -39 -71 -65.5t-102 -26.5q-57 0 -190 62q-98 45 -170 118t-148 185q-72 107 -71 194v8q3 91 74 158q24 22 52 22q6 0 18 -1.5t19 -1.5q19 0 26.5 -6.5t15.5 -27.5q8 -20 33 -88t25 -75q0 -21 -34.5 -57.5 t-34.5 -46.5q0 -7 5 -15q34 -73 102 -137q56 -53 151 -101q12 -7 22 -7q15 0 54 48.5t52 48.5zM782 32q127 0 243.5 50t200.5 134t134 200.5t50 243.5t-50 243.5t-134 200.5t-200.5 134t-243.5 50t-243.5 -50t-200.5 -134t-134 -200.5t-50 -243.5q0 -203 120 -368l-79 -233 l242 77q158 -104 345 -104zM782 1414q153 0 292.5 -60t240.5 -161t161 -240.5t60 -292.5t-60 -292.5t-161 -240.5t-240.5 -161t-292.5 -60q-195 0 -365 94l-417 -134l136 405q-108 178 -108 389q0 153 60 292.5t161 240.5t240.5 161t292.5 60z" />
+<glyph unicode="&#xf233;" horiz-adv-x="1792" d="M128 128h1024v128h-1024v-128zM128 640h1024v128h-1024v-128zM1696 192q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM128 1152h1024v128h-1024v-128zM1696 704q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1696 1216 q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1792 384v-384h-1792v384h1792zM1792 896v-384h-1792v384h1792zM1792 1408v-384h-1792v384h1792z" />
+<glyph unicode="&#xf234;" horiz-adv-x="2048" d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1664 512h352q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-352q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5 t-9.5 22.5v352h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v352q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-352zM928 288q0 -52 38 -90t90 -38h256v-238q-68 -50 -171 -50h-874q-121 0 -194 69t-73 190q0 53 3.5 103.5t14 109t26.5 108.5 t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q79 -61 154.5 -91.5t164.5 -30.5t164.5 30.5t154.5 91.5q20 17 39 17q132 0 217 -96h-223q-52 0 -90 -38t-38 -90v-192z" />
+<glyph unicode="&#xf235;" horiz-adv-x="2048" d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1781 320l249 -249q9 -9 9 -23q0 -13 -9 -22l-136 -136q-9 -9 -22 -9q-14 0 -23 9l-249 249l-249 -249q-9 -9 -23 -9q-13 0 -22 9l-136 136 q-9 9 -9 22q0 14 9 23l249 249l-249 249q-9 9 -9 23q0 13 9 22l136 136q9 9 22 9q14 0 23 -9l249 -249l249 249q9 9 23 9q13 0 22 -9l136 -136q9 -9 9 -22q0 -14 -9 -23zM1283 320l-181 -181q-37 -37 -37 -91q0 -53 37 -90l83 -83q-21 -3 -44 -3h-874q-121 0 -194 69 t-73 190q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q154 -122 319 -122t319 122q20 17 39 17q28 0 57 -6q-28 -27 -41 -50t-13 -56q0 -54 37 -91z" />
+<glyph unicode="&#xf236;" horiz-adv-x="2048" d="M256 512h1728q26 0 45 -19t19 -45v-448h-256v256h-1536v-256h-256v1216q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-704zM832 832q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM2048 576v64q0 159 -112.5 271.5t-271.5 112.5h-704 q-26 0 -45 -19t-19 -45v-384h1152z" />
+<glyph unicode="&#xf237;" d="M1536 1536l-192 -448h192v-192h-274l-55 -128h329v-192h-411l-357 -832l-357 832h-411v192h329l-55 128h-274v192h192l-192 448h256l323 -768h378l323 768h256zM768 320l108 256h-216z" />
+<glyph unicode="&#xf238;" d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM768 192q80 0 136 56t56 136t-56 136t-136 56 t-136 -56t-56 -136t56 -136t136 -56zM1344 768v512h-1152v-512h1152z" />
+<glyph unicode="&#xf239;" d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM288 224q66 0 113 47t47 113t-47 113t-113 47 t-113 -47t-47 -113t47 -113t113 -47zM704 768v512h-544v-512h544zM1248 224q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM1408 768v512h-576v-512h576z" />
+<glyph unicode="&#xf23a;" horiz-adv-x="1792" d="M1792 204v-209h-642v209h134v926h-6l-314 -1135h-243l-310 1135h-8v-926h135v-209h-538v209h69q21 0 43 19.5t22 37.5v881q0 18 -22 40t-43 22h-69v209h672l221 -821h6l223 821h670v-209h-71q-19 0 -41 -22t-22 -40v-881q0 -18 21.5 -37.5t41.5 -19.5h71z" />
+<glyph unicode="&#xf23b;" horiz-adv-x="1792" />
+<glyph unicode="&#xf23c;" horiz-adv-x="1792" />
+<glyph unicode="&#xf23d;" horiz-adv-x="1792" />
+<glyph unicode="&#xf23e;" horiz-adv-x="1792" />
+<glyph unicode="&#xf500;" horiz-adv-x="1792" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/ui/new-ui-samples/fonts/fontawesome-webfont.ttf b/ui/new-ui-samples/fonts/fontawesome-webfont.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..ed9372f8ea0fbaa04f42630a48887e4b38945345
GIT binary patch
literal 122092
zcmd4434B!5**|{Ix!dgfl1wJaOfpLr43K1!03i%vhk$H~0%AZ>1W{BF#BEfHg1Dg~
zwN;~5E8SkZ*k5bKH{JB at BDJlxn{VIPR@=8#3)a_G$lUzD&$%<nB!IU4y`SIb51D(<
zx%b?2&+?q-Jo}ZHBuOqQC&^Op?Agl~ZstGPhAVI37o9V6)@&)wTO^5Dkgqy(+4$z$
z+IHdzR)>7=1)JAy`JUYOIplAXB>t_7*Iu<{Xb3e)N)PT^F23}di`1q$<B?x3u`j;0
zVg1?*t#1Y&kl0tVxZkz`7hE6M>X6 at od}71qtve>K^LHZuNj(0UOE14*ZP}4s-;vnA
z&qW=pH?Q5Xg&*KiiGBN1C?C6Q?dJ8(SMPcS`R_=QoZE8wRa^ga_4FwcdvT^D1s~qN
ze%(cx%a(srVz2!k<u&}Mx6;escdnrG50?Db1d)I9jkm=e2XZ0&IC6}S!%-1ADkN(S
z>~2Yw6lI at +5s`MAXMPnb-Ae^d_ixKJS6(G$rP%+V0YfOHiC3A2!ZR_E!?@AdN$4M4
zXU`!=si>r|KAbN^Evl4|Vp5-UNcw{G73l@(7cpCGeC+&qO-)rzZ*uUc>uA-{uA_^N
zt~q+y(HoB5dGz6<UpV at uqeqVZ=IA>|jbpB3RmYl+bsbxDY|XLDj@@wV&SMWB`@*s3
zj~zMon`7 at BGv0N*TlH?&|45iaNxbE$;kQVm-Xb0K9E~5%9$kF2_vn_RxubU<?K}GP
z(f*?^A00S)^q6$ab1Zgj!m;eJ#m9P&Z8?@ZcK5NqV^1IJKlbvmfn!JCmEQHd8>hDn
z{ch;Oq4S2$9a=s#W2kw+{$GFiudn^){r^1ipU?iP+7tCuc*;Fxp0Fq633>t^zsKkC
zdK8cB;U4CZ+(T}|op%qqPq>e}KXCuu{Wtgf?*DPW=l-kvUH38fQTJcmZ#!uQ|DXJ0
zfUV-I7{@E=SNab(X=?xf at K4vuENaARD?e>x2<ZRCe+;n0 at qY{Y>%pMNk}gT at ac^Aq
z#=Qfq-^gy^eOuJn at hzHkT)d+=Y$7v}hVi^1Nqbz)NtMV1bmomWhXPt{ye8G!))M!!
zRHn6ywZxmNnD%&M{x+74q*9T=935FUe_LasF0AIlbqRHLEpF$fRBH-<vcz{Z)`lxA
zmI^Udc!z{{G$P{-xOhzyZ|&kO&0()PI@{XT&e~d<Lz*;m!^JBv-Y^rVGcH+?ADvBA
z$ytY|u0xHT=xbio7z{Qpx)7%{FMm5frSyXQVs(oRXr+T71Z~Kn4Z0LZ=RH!4ehgi$
zNi!T0Dem#LC1Og*7sN1xl$`N_ai{SC)7h1>-qYHaFb;kBwY!WHhcCbUFjH9-Qx9K$
z9b1v)D8O{Hu#s!+NwKr98!2)5VdKPIuYK7#loTL2l+%G!q=+<CS|~|Lucj-yi#K9G
zSUQzVrM-a=#=6bh$(v-%fffveL*XiA3UBU`+uPc^Si9GpoQ#*I2LqLhC5`tUZpm(*
zz}SS%*_MZm_mVNcQ|)*9nW{M~$FolVz2AIUn_Sc06ksgS)Lt`Ld-<Df=jGOPAJ2BL
zS<|idcdv=bQljd}uEq%yCr)VGb)+hhmz;jTQpbH(uf?YNolk8&_=Gw!lJxnKk%{UP
z2OIC{J%Q)ebSqScImgtu9Pp>4U`U&k3|iP+#lu}PCX~ihez4V-zuQ*Z(>dN4=(_3h
z#fik?%Wvu$Fy6 at Dlk@SFmc;oN-Z|s7zc<dyCKB0sjemdbKi|kdW!C+9%-w)ggA6M2
zqdJ<mq>3W|wB1i&+Me{cHHZBw#w23ge>MvS{6S-yF%1(M<YycAm3OfBU-x(VUuW-k
z$k&7-#>0j~cLpmRZ at uNH3~Da+9$QxtOj_r$7whYdN%O3<MhI at qcUuX1tt@HB<jYC5
z*pAaTL%D)A8!HbVHdeCcd2A=UhP^1-Re$<s at c^suVmBB!cNsr7R=xP5Y%4ai`9oSs
zZ3JXv?5m|TpsD~Ntz9aOe={w#Dpm4mv6QDRrsnovGkD;d{dzFgHhcY4YxlB`?f%%Z
zZtK+bv)f`p-ROVa_}1&Mv#wiq+<yCx%=&E?o<F0mG1G{@x*6wRxNW`s2lM{xl4Pef
zrPF)ec=LE^nslagzI3^CqjZ<_i1crgq-I)EjjTqiWP#8W2C)8!JoC1u1k at Ln0UJ~P
zr2I#e|ETwkT}&*OiU`bhnu8*xB6*2WpN!)ma>asb$&&`sBc(p7PAtO@#6r at rkg~=4
zQtZJ~CG!!E7pEcy9hH$HCq|NTX%S=O`l%~?_PBVrDi*QWhy;!-&L?4Ou@@B4O*tV<
z><z{IN8OjDo>oI@?dfUd;y99)bEmt*B|@V;t&EQRhb5W8(#)tkl31(){}kIk0*ew*
zfoSzqW+F}RnEcrL|J(Vo at 8eQOozY*{(NV{;bR0?ZTxl*pDmVJx=-h{uEUl5n#B1rm
zeleWPk0j-hWXaW%<f#jkRAy5C*k;Gzh5z+g_{T?8#dr^jk(SZt6Qf3d^u5w@|KeDU
z8VZR?*GMkyR^>~A)4|@QYc=B;OSMj8*sQELR5R_?Xnx#n(Z$i*j04dqC0L5zO?mm<
z#o|`<Hnx%S(WvoDeh<o^-phvGQGLpOsTQnUz|FLpv=xW(sJh)cy8ci=w=&fyYBqjl
z{K~9}rI0GTjim~;{|Z;ddro)Pe1d8*=^2xzs>R+o6MHk(Rik;RNlj(gn`y;O0oul)
zIaJB85rLTyl$V4hc}mJlk^Ig9zY}E307#IL<S2S<LFRPy7#}$4Nvh<{5+d!HjSEgg
zq?Pu`ErliUt7CA%Ki2+yKQ*1BCI3vTMW_GamYTFlP6K5v)k_(ojJT%6K*wfUeeG?b
za7fc#XuY5Su#u*l80g1v$VWKa#Nb3{?>u7s-uMsW_eXX<y1(&~>X^G>-KHgb55IhP
z?~+aH8r-q!jSc%B&F6YH^x%)@K1n5a9%0c>ewB4^j=35eE{V;5^_mSRj;A(U^XmNA
zB at K<P*k<E-K0hz;IHx1gQXqT<{aZ>eNJ#-RMM!B5CDA(23}S~Npc$K|)|cKtDKGh4
z{Vtz4u-reF?kzs(yV4LzmPJkP=0%!Qnq4_aCzni@*t^F?Mx{)FR>XV&@9ENI$hW3y
zv_PntAPDPI$BYCpBehtgnvVa}3oO^PP75KGCJGkxJuWpdS~frs?ZvAtz!Ghs|HU$@
zW}$F9NNaEgL{__)9;yaAqDTi`IdI?=e!%1Sx<61m*JiD_JLGWf9XH<N)GL4E3bN?L
z`a5iHm;HvcZgJ1`Rk;3-)8nx}>ng9CVY5c=2|1mk3*TvVI~_MAMB#`Vg?WhHaDZ+8
zjU&XPZOP_y91&acPV1#%_ifEluk&l3;3lj6$~K$RVGph<Z=P7egHBPlscF&@hr{Mf
z+-2KTTG+O|#o{sxPl)oM*gFcethtX*k!DC21GdM^I at rchP%t*{2mc$WBEGeYu{cII
zuIZ|PG(2b$Fa_+?633_$CsoaG;D8=6r#P_Fq;rEgms^&zvfGvKW&IO$oAGU%E?@3*
z^{(k21U=PD5W+IE-HT{{U*w+6GA^GSD*+?dY0~*B`747xfO&6HnZM1-x%GZDWUy!1
zHQScSUlUFHbh5QI`Dp?- at Fox{Xcw!p<QMB-bPXLZ&}SJd3$+8#0A1J_(gbV7T?3Q~
z_&DedgNp^VYUGAMb45~&Pvg_re|1@$veT09$@e%MPD_`C+xU-S=fvI<i|N-k&SORl
zg>yvcvH_+r_A4XBr_Z-?olnpIyM=M<d|QQuuZTo`_-z^sW5ZWT4gir1$pL_`{NRAG
zZvkq9!}DR1W?|hMPo-H3atOi!aj*JZw63G>xS&<!TwQN;7u#WT7%w{51x9aOM_y8P
zMSJT`<cN;avM3szY1~%nV3QojeF}DZ)+YoX^lo!)2C)B(Ga-rq!Q7$1O%t+_JWVX-
zVxB4%Ym+=2*c3tm$OL2{5)&f~h)H05`;QyHIKF at XaaMPnU3tWK#8_iIa^whG%N}EE
z<pE<Dh6on&21=o<c!Hl_TJ*>fF^|oXq%Q(`^a9!?mXVtnu}!)h)I!8Ju|O?^0%=?(
z?nsw42nlL{E*L>>4Ivj%j4%fZhQg3utSDmv=d;cLD`P&#dk!CezbT(}`d9#$jib08
zU_NI)+Z17sS`q=a3|HK^@+6A5QG_iEBrNRF2#+cZyO`f;^eYaJ2VAk=$t1ckgyX!n
zE+ycP`knnW%l%FyPrTJ7q`069FwZ(T!z5%KQlfwhi)a6+X%B~*r_t(TA)V+LmI8W<
z7X%zZ2&7a~s>DdLlxlqv;DCw7)c*L^$)B8j8+*B~!}x}`+Q|Cad`7m~>uq2XAQL<i
zlNz2B at +ea(#bP6r_H7*<w{>uDeWj80`&oZweVX+P)+#ID)P$8X$bX3j0Nqw-*A(!m
z0#t%tNHur?Sh|=erIf&n(rYumX)m)I{cejT)Grne#^{H`FtdOENl?Rk9S-B0Rx8VT
z`~gOA<1+euytxF at 4xa=%r)VqiA_mvoB2DQCQJU=ZZCz8+LK~ZgX0xpOCm-6>`vOKE
zHIViCTn-1DX0;mq9`?b9G!-%mLhgWZr&#%M2)yLDjLj<^j?*4r;40hwCN>WHL-G*o
zWHNgt-}wqotn+-9<-MuMaUiPlcWjx6oQ-5`@09bbY?Ikh!^0iC|1qPACXxNNYbviR
zuc;}||6*#%7`deil8{I=pS0<Mjcsqk*qmnBD}Ay2fZOZw#A5Mk9{bQm&!3p at Gy1I-
zf0E~texKjy|G|f?dNz!YNZ(`jKb at M!QnfWM4w|i{nf80&>MC#y%CLB{rCGt=57G_*
zZe$z0-s-*geXmG-ZGUB+?s3`oSea$B@%_(@kZSib|E8M(;i_b0BdNM{)!sb?5^ux#
zHg4T(DYxyqhlo1X!J<cYUcUY&ETUoh67)<$nj=;Lm*O=E5G*4C0B|1IW<_JgvM4TW
z at HgnnFr71%`J}jLdvi$r1Irp4jCb}Mf7x`CAImdBE6=}Y&R5p%{^M+W1HjSgFQ at +D
zD!Ny=_ at dK4oju6>`&nSq&3KFrsN8tZ`0`~J-Q+i`NVWR+bkDu{O7DeXzwD>Sab at ow
z^MX at n4z>_o^QQ<DEp#}EM<v-+fr}~b49%g;7z%Z4ehh~o$`^MQA}pwUY2H6ZYE>Mv
zVVO$KWCVx>I#o)+{Xub0#z37ejY1^)H6_8LWWB6+xZ=N_B9%YY#gS|I7Fj$r*pJGU
zg{4AZvBs60pnt0|j&X1u5MdXfyFk%rTCx8UCm6zVCX!Xo7MboCv#>49607TwrT&cv
z4s0|A^8JM9InaIo*O<ll``7wA2rjb)KEf-t3%DFccp#$N0Aa`zRo%pEYfKR_t#hK8
zK{B at pfhgXd6@!~yuyKLfUtaO^2d7 at Y`u2JK#!;^)lBy0)e(UR-p1mQ}+;-!6%bbyv
zD$PxuaM5 at w@22Kv7A)A7SIaA0TgSDI+iy)p_?xk?t8&NWDgK7m1_CgwZ{Rx`iv`p|
zHwWQgfFqh`A~q`V!(z^~a!?pN7^tT0e3&#dQTSBi5jc8PP)%sL&cN40d(Ii5Qs-P<
zGqdt(h>O2u{QT+4nKf6>8M$}Pp3v6=ox2BEE9+sc1H1X&C-0jWU$!YmxLfcuuGpMT
z$NB5-W7;P_X&k?A-T98rIpVHKpvE>Wi%-1o$p={3OFMVIWc<<WS4 at _a0nl&)Z(+MG
z(3>rBY&0Pmd$r&AvT<DCVT~=sQdRm+&<bY at u}*W?l^2?8kl-bz<V0O(oVqqh31}iQ
z09|rxlZ??JzUNf$V7aqq+uV^<SxrqD{ZbLPZT2Z%Z1 at h|5>=BG!OCEH)6AxFoGX$l
zs8gsdfRn$DIh%vNogvMWHvKbg!uDTisnFAa-xkc9Xm80qaCiVjpNHc%>3sg#9<j4N
zv(M?MNToXh^Or4~ALvM at B2MQ%_8H at +PJn4zuhyFq*Y4eWZK4TDar3AD_$ag+M~wUw
zH5Ew*D&1|5f9>%$cV!?A=%4acqt&=^749U$ic=|%tYRM4%si_i<;aE;D6&c-eZD00
z5Tu8+gZA at 7hEf6DKrOTbEn=+(YcqcQ;`lLeD)gVu3<*}a4&E(O>#g<1gDn}lPXAdB
z|KuE4FJe3B2W35uLsCAc<ZvN}j5z0Wd91p;xFk!smK$X3MkbzNxSr4PoFT50oEcAX
z6p<ymOh4*^hYn(IIJqBbNV?3vOo6^bYN_?M`2R0{)9^1ATT@;A5dONlZm6!FCjK6p
zHVuC_h`%+{rX60hhKfy_rsj^{q~7>1{RkJCd;0zApOMx{<2x*)C{RS;Ad1@%$RgGc
z<hWp?a&^)Ordu<~d?uBFT)r=pOYt8h6+7KrU}Q5%Balq;A0~4d*4NsTN#)y!$dZWX
zx?kT^co!s8AO1GgYy-GI;6x}8SuNq~k7@<WiN+<Gs at SVZYGE!j at DH>Py+Na+)p!Um
z<KItZ%x23&?}1Oe3vFHw3y`hA0N_c0yMg1<sdlKR+fwaaoCGzLAc at -O1a4_z9qdbU
z at i|??o&)v`tam!366 at AXvYiyFEU<DVdF|r5kny(vs_BF47v2>u3uz2{B6kF}@HmUC
zaycpo8x*E1N<#6ESD1x!S4gvXo&G>P4XLq{e=vV>$ap6)=e)sBRM_pdvK{g#D%&h<
zoX%4x-c}qg-s>z^f=J~1kl1k26{Tj<+`+4}D>f~f(Wx}KEESqPP+?1LO4;fx_8Kj*
zrN-K%I&0O)wv?sTY6(Ovj$}Mt9%7no-7<gh>g}`Ko{HJk5&74lT6Y!gmx5X_h*~g{
z7*fE+11c~D>55r1gb*YJ5MnS0DnOT;K#2WX*%uDR)9JXsd_t`;$C#5CZ{~xrIj}lA
zYL5S{ro(B8v8Rl4;*?jd$O}~v;qsi=e`VmMfYb>gsfkR4+$UZHMN$C at k+n&o(N-h2
z=K}Xh^ta&j7_iSEeti%*<dmGrh(fSz(k=r|{}pF~j^TX}P#lcbWzW2V0Y9-^M_pgu
z<UO-SuhWmGaRn at N-<enN7zry5LU=JGT_M&=PR|LRISzTQB#{{gj4(hXl*&k^5Xcd9
zRWr$yqkH6e?;JYx&LMe#NT%aCIu5k>*JrqtS?_PjUpylDmU~g|&^vtIfsKQroQ&gb
z6X(pCc-x5_89JDD40t(ctm63T(qhb#+zi60J%zU`(6&#32+|+&Vdls at 0SAya!5R?!
ziVniRxeJP4Y;H*nR85uKLQ+b)snu%yXP=4xXp%p*V(|Ms+&!Ts<#?NwEy!5pm*V^D
z-Dg(@-2T08jZHJMJ;tBX$}KEx30j?M*HUJ5Mb<~Bq<Un=C;#_kOHy7e|JdkKcz*Ee
zGj+SopRVQ`_$w~mh%GWcetyk=PCmoouGCU~#iw{&tg$w#Vt=+dES^WdCG*L~+vTBZ
zAGo!&)fce1Ok4#F378B5!>@%FJ=7BOwx*lFd+F$0K&xW1pdHaQkd=Bs^f at 3fK$p_V
zG9Hv2&)O0|T2OPy!GKHF0X#SXs4z0Taeg=3QC~5u`}}#6=S3N37Oi2%(w*yCCSSO<
zyLqvN<$urJ`x3fcQz5`fWSUx3WgYwdE#Xz6*&n-Zbw~V+<z1NvUz)w`k*8LVdwSeP
z<1%-Qoq1*VxX!p&v1MLqwQQe%9)DGjOxwDA_9auI&gSp8RBVhi4Q^SZl(`*M$>{iC
zvns#ZXmMIqg)QTL7MZ;K`UR~kCQXi&)xL25g^ye`E2 at RW`phY`J}1GhPoTK=wg^jS
zns~aMSW_T9(k<xdp~i6}iL|C;e$i2yXRr1^BI;y2H?p#+i~Roh7p|W?Vf`IZ)m3#@
z(&Espyy6-!4?%puyidtad!xN_Yjp3-mapA#7Ek+XyLH~m?X~4jyDDGIt*UC}>1JEf
z?H?bX?7T1k`f}^KrDwT)O2xQ#Ilv(aC0M;dm(kt|>3YmubBNSoB<_T?25ll$8=6Rh
z5r8U~Rhl9!p)LqJks|QabdX~_-6T^Vh;0oAU<RZWfgAND2!0_g1oCh5wsI015{y%K
zVZnpPz1quhU*LwoWc+;b#fwWbAN;t@@gn9daaV#RwJLkiWob|X3RlyW<(0C>$ux&w
zujJkfnis{aOi@)^-BSrwuIVv;KOM6ud(XYJ%&#%7$o2=~I|BZyc%;FVOGX}x;4i62
z#nhmr3{_xm8B?8h#<mPBu5>BmmRlFiViv2+8B>%c?Q8O1dDL_H+<36jQ)hFz84vhc
zn6)AnaW$~B*0cN8Z{ro=Xh3n4xt!ZC<`EwQQ%qwl3*E+A>3#@s3*(qj!l5yPn88L_
z7(_^#A%s8eICk+?(7#06W3w+ENk(Qvq%6VGX~IBf;(<^An=lx<G}N19P*ep&gkZci
zg=d$TV>=tdS801ZTsp8Wn^&D$b;III8>|cq?v&%ITV+`EV8j&r1NHBD%&}Fg9G&f1
zB@$7x?VS#%Ta^bTS%o at e%vFW1syAZHIppB6k|AF>n>jVk6?IAb!PfQ{9-DjWA@^+k
zw_86a>y;LL{@f*Ps-wd0*uFuG`SGFjxHdW15tQ4;rGts;TFz^$6Twqn6uiqAd4|xe
zmC7B)$|*i7uS3T40ob)v1O`<p684{vD5v5`0 at mXqr{O5><>;P*W4}nzfnD?w$^S>~
zHq8}fG)A;rG)l!$Sn7xz$MJu=-DB+&J}N(Yyh}&BbgXe*wD_MM>3?XfKdOym?~iTs
z2)vZSPHFm|8s!g_(~Z>}Q`<=FZEAFyLu2!&g7?z$WABgc>)1S#p!guN_B00#_m7Kv
zYS!sLUQ&AWozhaJ>4D*T*;S`X4*qrcsxnfb<m#y(6MFbDxZ+Gucp!v9dXxExu)zIi
zN8_Z?$@!fwt1$qDM$8JqnTq at e7ze*o6U{y$j*7TanjR at 550DuJJszcl|08==(q9RR
zhLihPkoyY~A95t?|8*aGse?i)=t2|KL;q|S`H?8qV48{`Wmv_i(4nL=r%qzZ3VoCy
zVWIgG98|GSMK->Y(R7AGx|D|8$Y*Rmv^}5Qe(2D4-oO12yVqCYaHdH>)ZkV9?A|Af
zcMffTg6;RK&;popG4Lj!uXOmXR7p*^CU}#!X0TKlhJgex3ob?Qws>(WOu#fO7KENG
zx212(mOf?6 at f^$caZnQ<h>mJm^z`0R3rNL71-Im3y528}vY6j_f{Hm6JQ6!WmWtg9
zSuIL}$Ac_mlca&eD~G00inpirU`vp-f<kAY+QGAc?MC~&kijzW>SRd~Vw+a|c~y>I
z9kS{9-|9H>D!q;M4fY$o>YtNO8of^@+A^s>CsArsPVNg)DO-q2ec$LE>}P#^Ad`HO
z^*xbF{Rxr|!7B-RS%<u9l$65-e1tV6gx<1gpurBrjr%;)=1y}P_r}>c_7oc at 7wjse
z&9euO$5W}etj*s13L9s<V%A--DS^Z_>8%m!=~2pQ=|0jf%lC~@L-#6KQz6HXovb%R
zn`vUze(*aadj+Q>r&Be8qz}Sqr7cN%axzJg!2m!GQzeIC9T8xap{TBa&x=BS9f0@;
zQnXi$bBtG(XjhzjS=8Fx+G2 at bcJ3A05|&HES!29C?D2%#<BcqyfYkh%R}A#)m3wZs
zK7RWz&#QtT&3V7P{c-D!=6cos4j9t_W0RyVX)ao2&Zd;YT!z}29|*n#s>uEYggFSu
z66gc+2e}`T#gyxqaGLLcykqOZt-V}|d5y=sF)v%Q<k0p(!2hA`a&}r9j5!<=UA}OL
zj5pSF%K$NJ)?L at jV)<TUKv})o7+4MaxPwvFi)uQ0dH--d`5!%R*0TLjx$g0z8cj2e
zK-P5M;6yDR{t~npsES8dv)Jk=Y5_YfV21Pq;P)G)m16albZw%rmj at R@Rsh9yg`Sb<
zI2`hux=YyC#dOUd604r9?Ynfcv?CCQ&@7<lid~e3oc_qd4x6^6*gIb|;_(OHHgaP1
z_Zf$;+J1%{wkRH(Ei|d2Ru9%rS#<f{XEyc$Wkmce=jXLXzSvK{vqFv3D8*jB>bE(|
zJQgc^&By^?H1yxH$9Oty=T2A6#l5>aCNA$?ylnd9bVwi=6lpE?{YK37cwsd-8d(&k
zmDIB*Pb^_F^k3{##MTuoC`-FLJfk+J4AEQZoZ6h47Wl*9Ps+N>jHP8|m*LEGek)Fw
zmGL#kw~Adfr_#oUr_#Vw+GGoR1<#hTFNg=qj1TZARYLR0z#joUVm at aeC+r14h{VZA
zKxAlRC3Z9p7%uLzqymZ)gGyVjm^5Nhp*5q7F8PNf=uRM`hU$cpbb!S<h*pvGgZ_XP
zRNST{<#8MK=9J_Q{&VI1qu(a_vlIAXx9|&U6EZ0D0S+pH#xjLuB${e#mw)PyMEv>5
zR%OH<Ua_iI`5lqt*@(l>U$ENpD+T8uDA)W-yTz;@GWOkoe+dhgWL$;%PxBg4sI6Ta
ze%s0K<S+OmC%t*{X_|n-j!1s8Xv at x_osbpoCVQ%r+Cq~f`l&55`w4e0^wy7l`6H at j
zOh3)HVKzpp7k#}_y-~fBJSHIF6!eE!qZ^LD9FE7s>Vz;~o3C;PB5Hpm;6y4xFeUaC
zf&0l8j&}GG9ARoXOVFWd6Clwzlas(8_%&lVr)J4)0=%0zmZa%D1iQdQSdZ?L-$IrK
zBjrccQ+#%(rkP_G9`0Hg@>A*|5I1_O>1WW;@fT?5FfcTH7&?Lwbl8Ec#m-+435*<W
zIwJf9n{~MUBAlF5KfQ)jsRTWy#fx^zH(H>$5<SO3wVeL#XvUK?OlF7qlQwH<V`!X)
z*Tm?yjBUhle at ovxy1!#ygwFDz6W9}URRf$rA?Y`ff|zqwLQGL-T^PjzjL{lXUl^I9
z6hEUl#F6})(6~y}qahs4 at qBRTLFGyHO;Ajdm4{5rag*v7TcvVu{%!8}`=6wlhycpp
zMB+)m^3(j=`L{*VyoBpi#;kKC>b$5>rzv_XF+v9zD9cb4RpaM=)FLWJ1^ixm1HFmk
zzgd6^(pU_`B<T(%Y;4#KKv|kQA~t;TDT0xh=~x6q!RAp0drCibSqwh)oJK)pXfRlI
z457rcIg$*R!!-IC);NZA8fh2V5*6B2Y|Y7SDDeY2<y%egIO#2={cjX{)7J5fOa&m+
ztgUeiVHrptvKi3DG1LMJI+Dp at Q!J$omFxY_JmdGT^jAbE5vf4(<SXo!F(bkr{;=YO
z3fPg;j!jtDcu{LXhJ&mWZ3R9cavZjDBZif#;#-AzH#Ynh$5k+?-biia)xN<oEs|@Z
zJ~Z99<hSUJFA7HH0D!65H-AhUNat9 at Ws{}ZpqK$U1T;k-GzO_Hm;()DAzEV^g<wyH
zIJ;N^`!BQ{iIP^5`Dec{aU`qY%b#5F*PJ`NOLusznRrd>gavgIrd=XRG{$2!ldH>F
zZcOX at ickCa7tT4b^k-$h3pK~gva;5AswouRHX}im`=|PS!HMJNPaV at GX{1lYdrdC(
zsbEHAHXCF_VM#Q%!AxRQmq%G9N-$F{8ngEH3L`!=uB3zfq{jETd|aZENErR%<dg42
z#!P;5Y<ox6$awezN+W(Ckn#@8XrMj-ZG^@HaYKWIK{st;V6QF8;Qnw~JO?Vtl<PqE
zFkBYTp$_Hqn`!B8jy-y*SWcHd8XJ3oU6qR5mHhLg;{Kz5PToZijJd!~3~`F5hpS`b
zfGAG$c%eSRha>YvxN8bVKsfz~13CUchHa`O3fzesD>u+~Ivd1!`)v{1o;^71x6v7=
zQTdljtS(P7DrMh0^+Uszlz*6!;;6n9?54 at dh=^IU2c~8va9RV(dySQ}ynp5QUxYL4
z5OKW7zw^VI%zuh!;Ls~dibv>KGPM2>6YAkH{}?<0eZo%|CIndFU0fA5l>jQ>Mbkf~
z;ODKzR^(lK`Y!+8{<8<m`Co5+0&KJzgPGIs;1BaVGI#<?=wOvE at mn6<op+zRV*d}G
z<L|E8KX~6`P*A>L{8l)^RI$mdl2Vvv*rjDaM=g+I$N+k4<JkLv`-EJL?6up3_yJTA
zv`?Bey)~a@$y90qnIPo1!Gz*=(uXWarHo(m{?_TROvx-TewDa1(Sv*YgrUOTRBC=|
zBMOjN8E{=j?JvBKXf5(BA#MWH0<9KUWQmCq9HH8u%x_D#wxm%%OXjn!)2Fxce&g48
zf2uW;;<qPxwhcv+$pv@;OD at RZ?JR}2<AMCPT6$jwxOIV=mEy=0J2p&unHzthn?Uy3
z0 at Or)TE7xiiH at KuetT_u8@ih0nGb0TwUyQqz4IBoGgtKeE)FK(kGeHX02am;FQs0>
zR%IJTiV`f<(+UqHmZI at nkmUWix0S||WIPL!N#j=-Yq*<YE>h?_-b&+|1I^h_egXwv
zE&~MXf(J=h=zYmXfv4eU)$WV8pa~|wW)MR*u<jEdzhYfit*Uz69*6F5%Qt2o<KG(q
zSH>lH!23~($Pq_%+gaQC*0;~pYOU^o*BZf2S^4CPyV<=&iJ(*|4G<<8h*|<fG0X#i
zTocQW_yWv(k?tb&f|-ZV?XNcDD|h2%1xwhwSr0JBm2wzOx!d>(rENCWLnX)nm%SYk
z<%bP&sXU6$6Lz at t0Ln+i11N&#fJSo;-J$+fy$Vt<qR~#%j?=YUSn-{rA*X3K&z`a&
z{N7VGo7#tYEZCzF at QU>~46MT|WEg-jVk+!4jNXpAemE5L3J-%mkzuggkjZoQq^qKQ
z;ayx(VIU%SDDkf18Z_%Yk);Y1R3d5;^}?2wNt>~z{D5!r;H!f3g$srg!_8DR({1Mr
zXh^4lbPB7(?M=491_VBSs`~w=ibytcag*`BfOO;iri+oUXks=b&0EZ7E&^NOmhnD&
z6Hi=*+aEVx65iG=AIBq?;r at dU7VoeYx?{XFe5Z78BOV2kLs)Ran$h%>Au7F;){_0L
zX}SO!)o&8&d^|bG92q8$_?LW8p9BIp__)tzbG_!W*$@)s>n;q*a4BeZ at zjaGJn!-c
zoX<N0es&Sx?9eP0&5^&?<_6aaQ6~NY_h#W=5CXS6pQt1+><poo2!XO_V=Y3%90<V$
zg-Ga at X47X3Lv1qApfF6Cxrls%#YK`dvD{$P+Gq49qW#f?(edpYB8`|y{)>*f#>n;G
zs$)-spz5eQfr;%E)YR9`yXBViHcidtrf#AX`<l!5l at 9hwf4?!Vqr9R*UjJxy$KnqB
zRX>VaK~eRZkOp&ztjl-Hv$rgK;)#Vg`G^N9=rDqatUz*Qn2|s#h#rA-CCf7yo4_|k
zlS~;P2rU;(Q$Q_|rEC|_lQ2Ogb2SBjP?~di(nLOIy!N}DSoCGViZy{fO#f<xrvgpJ
zpMU-8z<qn&`@^2`ja`*h4FNB=$a2^Gt|+&zc;NZX?O*xwm+nv7(t(<ES$bN`Bg3xg
zf<w0k%Yd!Q*7&d6z_jz%4H)0reCc>~ezqqYic~5t&8gQeY at 6&?X4+aZSN-IX?FpY-
zwx*M|v^Q*By=$xB^RR9pH*>>6R3aZenhtaKf{l1UAl-CW2sl+>@Nl|HAzjjlW^G8C
zcxG?!nG<IyY~{W^E8ERnw`}J6gzkV2iht3r^Ont>yQ-x($5{RHtv7vcUGd7An+sQH
z$U(o+xGOpMW5p#3l9NiqNJJ9yaQJZo*u`AXL^Ojb1DpWIX}C|;32iuswcNosrkXKf
zroM6TW9%OG3cDx&Of+!)m!oyjoo5H+O9T6ibpBl<y)O{h$9 at U>@L%rZ*|)ZBxaR8=
zbmr^VY}oeJOMm?<pHvt9^7VmeG;sD#<0ms~-!%TrLT}X0tbK!pj6c0Wa`T}+v~>V<
zPdPlTW=LlN^4noS*9sdQ-`I90shuW80#XCT%ofL+g-0pL`2FC8V19&h<aYuPgA-~y
z2yNcDXvI48<<or6NH5r}>=I-3#)&qcW2a}_UB}J|1U}AQV9s+_wb^`XBvBQYJ;{e}
zW at Q%EA4tzWU~K!%{8!i|*If1KY3Kjjr0?A^t$!2s(=hmDBi;Oq&Y#OW4xj6pjcON6
z|HYo_p6Wj{k9V!d0lyk<GbY^rMl*Z=j9s&9vP(Yq{4U=+&wcr-E!i)D)xg{hy^X!w
zFW at Oo5QSa;BXE)o6VG7_PvBT^6w-)N7g)(@f6eYJU?rz4)h4}DYK}`aQ at qJqS@L$y
z?tB!8$?u{A+r at t1(Cv2JWwhIzPWkEMxoOiXYicUVbhkQ at kSJo4r0!GqN$~jt`gS9j
zO<_KurV<K`Mn)$8<O~GBs%CKJ7wNEyC9n35%l16lr+Ra`Ly_H@@!v*1qdI%7F7CD-
z9<+02Lt5kCVzQyQWNy#7JpAK*J^gBLYk$w9`MG{quf}928#MCY^16Dh+&*|%_c$GE
ztt<mCtFQ$g!8xb;NMBEub~1{Ygt0u?4w|gF$pZRJ=_*MI$4x8l<d`$0+rqkATpt$R
z6!0<b70b7exmV&32Ci_J-HQ*WfS7Y|<{MzWa3$(D`o^aDfViHcBMik+5=P^q<cLEJ
z$_!tJsV36UG!~HsLv)hk<hR}m*BR)8n0dk#QIf^7R2_UsSZq*YG1hOMah1ndjI@=;
z0FHy77e&y}7)lIZUU)*Hs#P3&Nhi~59(yEnf5m!M2f)R&!!A^UuXvM!J+#375~d+K
zA6aMuo3wOWdzI2cBSX}%Z}?^$TLG4^3*7baqhz`U^W@>u{K3wJp{kaa1>**2=NdS!
zYVhMDeRgbP$I8~8=I++X6;ldD$Q!!o>PJO}qzQ{U8_Hr$mGv{Gt~hVUOtX$L7mH6R
z)vKR5qkV3Dr4W-0x}f&%huXWJF<EzoYnrB}&-;qFj|~y7lk)arfvV1FO<kM2SMFGR
zc1v75JnD*B9OK3$$uKZ(l0>8_2ojL!nhG42N at r4SDcS?ob_$Kq#jt5Ax^&dI at V(g!
zUNDYNobIhqWR=<AKd4U#)|XY;AA07_qpatv at 3BwHO~$8;Uw+o|Z!=sLSS&Kdqqt=k
zw`9T{O>^tcW!iz8-~QbC&zkdwm7?Y#`DzhfyupB=ii$fKBpp>UqIebaA1%%QuJNcb
z*Ld{1AkQIo7~i?HsiA3U=Xf(q!H39Y+ssj5qLCc$&wbB${+VZ3_xD5zKy50dC?R5m
z at C3hTq-g15G;kQll~Pc9Qi+j#I0=yj`HmO3%7TvSUJ}@zEDe6?iK2A(34g}V-++|A
z!cRv3ROiru_N4r0A#*N~9}H{nG!g`x@@A at hSQ^ZKfjX$Jj32d|f@#!_I!)Rrr{tjZ
z2P<sGylRp=5juf1YJv;Jf*>PZ(y5VXd)SLtpb_|&gIA_?gV=U*6s$h!>QrF<!K}ru
zE4)9Fa<eSrg~1y(73t?$kF`(dIk(Xd6Hhqy;#$6+uKAsEfAI;dam5Dv*8uBdeIT*m
zxDpB(IWLGLBWLfovjb&bBNq-caf#&|{Z{+PBSx>71JEDf337mC@}GvhFHx|zPzq=A
z7}Qm=TLsfnpkG1nwUec>*&!uN44 at gcL;j%%-tohD*@?HDW%5A+nn5X&@^~uv7k?-~
zNb;1s9E#4AFGf<WBGQK$??di4q_U*Ev(x68KxXU_dwumpRc=Sx>8lQ=^a9LaLWHe7
zU}h{_L&Zr^>UOO at kzKuO*J_3%?_0e~?#qk3+)r0yyHG=6PFG+J`K1Qb1Y~CJ%QTy&
z)jJD9^p7Aquo?v;L|m?@UtdveJl*(-?i2krnQFEeDJ5HzF%Av(uQ at W+_&1dmUL3>A
z=T_GmTU+Kts;X<*KAhR)zVqiATQ$Y2lr)B9ITG*Jgl!G1T>wPH4FLBF=@+&o0y7fn
z0Lpkj1dCW&rD|Hr7SyuJuUaWsSc%pa>s9D$@c{k-cd at K4$^E3|6ZoA_b{wEPN>dD2
zHRTLKFMP at hN3^~ruLr4LXdG$>Pz~iQgr{gvcY?wV(wxCQhJHaPtj!d1Jckj$PnG^I
z0T|5;IZtu?ho!M}A_t6jJSXS!sEp-K<dhuEVL|>rLCT_LO^3=>2jc=_ISg`>PAN!%
zVK5F14Z4y}U}w6(v83C^0uO>SO`lmleb&^~E3Q><`t6yOtHx(8oL3ogMuMAWZoMZ`
zcHbAad}rVKiQtVJVD2F7nq=5@$PbrW>lUV*-Pf+D^y^#KHg{Y(m6h`a+gui9+ETVs
zUNdL=Ck`$5S<hg6<f%g#AIwFe{ZPTOqGr+C(q2obqCG=Bse~(MOEJnui!wlF1JAu!
z^~U&_JEvWB+vET7ANjZFlCZ!)llZbf-iL5oKeG1i|Lh<0pNGu}T8LL+{P8aAStK(c
zKe<}?rZ>Uz#pLu#xQn*Jx at YlBT=Jx1nkN*av>XSR=%w!SVoAt-K3De|U)0x8=Xw_&
zwg+ArJV5b3m0TgV-{9-yJBP^|{7yE1ot9gWIWECC2eQk|0{*3_Z%sGR19cr15$<L1
zTR8^b)Ys`@1 at qs3_1;|Wgm^%uqnPu#+P&yUko?4jYYj~^hRS4+Xo4wl9NBN{!dV29
zE~pqdwvxjHFd1tvx_4G7auz0F{`!W+WC})S`P=Kf)^tsy-1}N|QA1rczxL_FkH7Rh
zYwmmerCZnqy>e4cY at OF>(-tp3car=xOvn~D)cf(UI2)38U96^w9<FOx6y=ZH^3vmd
ztoiwu9zXoF at ldbah)vGB&ZaF~y0RP1m$2xE+^}~$iW%}^UT%~QOVG at Ueo;Ih;nhq%
z1KCP&jTA|jK*m#yAM}Mx)yE@;|3rRapD6_S0U`t2{?CN?5w)2Ce((;|NcCeRQ)wUv
zdXI=31P%do1*kjP_$c0EC=6TyH#3;apgdXyG04CEu$&W6Bp<-80Fy8CXyjbhPuPPs
z9l9Rg?zh{nO4ivOdiYtpkA-XMuhyM*+ugdY%M*4Sw7G_hhIUZVn#R(i76%n|bh^WK
z6y>@59ljQ2C%5#t0)c?5$HI3iEk4Kn_dC5Uiqh3lxY1ItDLa%Fuk-$YwtOLs(U2g*
z0l=`G0yU0=arf74epXgnKVgQ==FqFQ>nr_^OUIYFZ6CJ<&($p-tFYQ!i$dd4Wz1_I
zE^4<rELB(QD}Am at n?@D&^n at nVgt<3Au+QVJD8Hgyk>{)lavoeWM^=!naC>m0GE6t%
z1AZQE&8g?J>0Y?fEg$_?o+9`q9DJjog_A;V<e>l(X#z)r8 at Nn>lT?I=fa2X^Vd_;%
zxJo0qC8y=IRvV)gn*gi=DN~4`=ZtUs``Ih6doa-~+x;9wJ6C0msR>VI(01LO&#_tT
z1~!X#-g%uZSm{Zqa0Z00B8mkZ&4~xETY0u|?0b`|9%Xe~uiqWM>41E@@u#=;c+RP_
zg7bt6k*4S}Hr7-ySywjqC);m-YtNqio*h4)TUM70rZk3|il*tZ%fobQ-8r6J%F5-d
zkM3T$V9u+<bT^i)4j;eGBavpXN^9eA9l>ds6T%jbo{~5a{py0vBi%-#9ZQ6k3H>w#
z<HaD17}h{VOdg-$ugH~!l$Nk104>z2Jh`aZ=<Ch)M#_@)p>`!zJ}yz8MywELvT}TQ
zg8I{2uIX2+YJHi2JJy(+Xib4S{oEai^LoE=?beVnKnR!l66+^VEDNU^(=E$)&z|t~
zhJ#O1)hV89SvdIzQ`W7CT>Y`e at JzKimZ?qn@;Oa+TfBVUrz2IKdGlk<v&yG>+3Li(
z^W%wyGlHS at 3vYk)jK;bJ8J^25D7$4rru>>+4aw<yx1D#vLBIvkl|XL5(>f$YTSj3t
zi~?=I7!Dc}U at hIH3Yw=%B^N&)CP7y!Lw>A84AD>t>_b+g_#ZC{Pf0FGid;Q7Jfg$H
z)fjUJGQQd>b=`{GEkA|P)A-7yGZyot>l5S3Q%ZZNK3NvQc(UH+MY)3;o}N%!yL)*{
zx~9%v=ASTSeZqK0j9DzSHTV1_TlRgPb;>F0L`6(S%8+VTGw;;$S<SKe^E_3NvzE@|
zUW;4T@;P6kHWO=BXNDU;c6DUUx+y=Hys-J=gBP54^~_n*lks)S&JH#&yair}G-`F@
z#yz}8UAR6JoUt$wpD*Zv&&yer_;JulCj}gqvtt7cs{_ZsdvZYG;<_~V`zU$V!4g3h
zTso9VNWf!|_#wcepfO3{NibK4pRDB?XY{V#uw(t)GGCXkZ0`CU8&>zuX#57B#b-X3
zLjYypX<{qOpIdU>ye3b}!Wq#}C^}<di>GPcbxWT5M*d|!{<)_pz_RaDp_dEo#by`-
z$yg_4iN^{-ygV|~m|*il!9;a3uaXPYE9`NK0AXs!cn;oIZbXqH!iXYD6|yA#U@@Q|
zuVz!^K7W3IOdhj>Dd{JbS*%xy1tU(=Tpc#xlv&fAhe(Dix}7(JX&fL0R?K9CSqx-%
zexP8pE?`{-b(JLTN_&g97FbX0*rrB+EGTO9mP~C(h87Qy+tNHLS_$zNZ~x&B at 3Yxk
z=gpbKrp)E@{;+??ZS(jaWcd%eyK~%D_DU()xs!kO)z+CaTU%z$8vHc7^TCI=t?$n7
zW4ltm+KCVGt4b+N!qJkF!&<b1<^yC2QUc~o6zvNla70GJB23FPj(`Jifw3cQ&kGDR
z0O}5Z96YA6tc80WtU~QEE{&ufx`6gF5puEhf`@n?gM<X;9$6fXFMtWHba*S+8>z^(
z-{q3Y;~CO-G1+Jjp-|w_G{rR-ONf)52Bv=47`bTwN##K542uYgy2lagV=fv%6J}ag
zoAJ|fnA at lGTTLA#-}f}8kc<|2uL&VC$YxQnXk|>Q5ud!&KpF9zP({*nq>2=6$6P}Y
zDP_?Ov4X%Lj)p<&aGzQs4#L#7p%cLK4G6Uk)Fv*4lv9BqyXw$(a$pxQ%S2Bg(KBJT
za1B&GRJ*4FMb<*@7Q>Ls`%TETm|!h%a!&Bh8o04}7<nLBEUYAa9(C+Y at E;a(JZwGK
zl7+ntEkPkg5-1tSx2YghB0wo}#O(X?hor;Gw}+(pcO1?wyW^!R8ZxQMsWTRA^SK5w
zCEFIvm|B_2G+go09m^0&Ew-kcqhl;q*TL_2?8m)}o_fFc$B$J$btE_E?yYC4ZS^$^
zTiWKYnnly#%FbFfzpZ6qO?{hs=GMFC<e>QyQcS2bDXvn1e<ELz5WGc_&=R&tcL0BA
zh at b%b^)yV at kw_P^;gU1%h6A-)rnLnrDnxUJb<jlqw&^aQ#B^Ia1xg!sWlb2DFsSb;
z8NSED&!UNq$Lg*Evm$=-G?)lt{AeK!iwoFZi^FNPI2_GZtHo!vW>kw!mTk7EX0yUS
z+`3b7W7qI>;^P<I$vmcbJn{>Nwhwr`AzSODRcoi$pP4)(x-p$P?}hU`nJX*DCC{wS
zu3a^$&KjK1Jw5E75(or6nnTw^jW(OJYwipRU=a!p2+MLHzpq&xb_;$Phpt6beLS?c
zx+<&ny3G#Zt9_e8Q$mXBf%&|h%Qj1y%;hf<+TfO;_b+SD(8}7*yydKG&RTVawXUoz
z60yh5uwJnW7j9nMR;DFDwKmqr>J-`Pa>3WNBOFeRcf#j4b+a4_%O>Lq&J(&)Az$jp
zf_Iziy%?9Tcpe>-s)`~Gw6z1az_i7OHKuVe9|g<x(?#g}Z194qOqzN at kbPDJ>1!aP
zOtQ!vk|=l?>qp2w)?aOI;pP#Nc<53Kp|R)Ag{rl;uDBy0bQ$Z16=1dsphoK+u|kJ{
zLnk6u2li9);l?5Wlo0O;ViyWg*j~Xu8><H#8Z9C0sW<}H``QsNSFloMS at 9r{Ezx>H
z^=p>JV*<uN2H)tiJ8Tx4O|kkH1v>vYrSak!9ebwt-Z-&5R2C{*TR!RaNzYt-)6cf&
z_6>gGy6;c=Z3nK+TOTS<%*&m<=)rI8?EJ%Ie@|e^d>dC3D*{XM7slOQQ58KS0uTSB
zk69;#%R+4v=l%CzZmR3653d+k8LCd4 at pBfq{R!h6C)&qVR$e}@?3{4jqxF~n?8sNA
zPno)Cf^Gfs at XD~w>$Qcnx`${?7#&0$189taqtJT{gh{1AJ&70v;1KCU668ribX^t3
zhQ^1I3|>BFcq~f71v?Crh=4t~e$DENmTdK6>$-(G<1c4UsFkbiKE0)*xqL;1OZU~<
zQ!%$(>6$cSl1&e?p6~48HLeP)ucNs$;Hqp;$|ueC&(>sCSFxhJxuZq**{kH*31>2I
zZs9uX;_7Tm#p*TdgZ2Qtp8T^Xl`9REu0UsVhtFE!s^NRS)5C(g4RyOJWp^xPuk}H0
zV&Z(!Pt!Jj^xkxm1Deu1;s>(kH$~4F+GbR#xW|y+PhZh12n$xgml>x-6ZWhSkhO=I
z|3d?o<e(1v^ttD<PdiQ<xkNgVVh7GT%h;%{{O}ki0=@+eGmEsk<f8=)N6{yU^rmnH
zBbt6nsvu at W#Aon0Qn(6Ve*hp4?|KD!sVZ at KP9~#9LpI;!4v+44gyakEYUfT(ub)_N
z3&?U=q#|syPslXQR8^<$<DG2Mr?d&a`tpQl(!D`&KcyrOTVYo%jnPUuV4L2pYfj#N
z*9CG2(F~mRiAJ|A6jik|nkM3_D#3dvc at pLIz6si=j2An(Pj{;7%%+Sysgx=r_=U}t
zwj6so>D`661FCVw<VZ<hO^cTTB!|L6#~o6_f<S__19HYTZTXDzS<fe4HGc9r<Jjx9
zjjum_$&=ObXk){cduJ}{UNr6+w(14T;obXsH}@tlIZxTJZk8*0vyp%2|7^ZT*~_nA
ztJ=d~+ at _@Dad$2|XTkknwxtrg4__3Vbk#JQSX<{0<>Y?{jU?pULJ}C45vYoSRng|#
zEdTpMXLqt>+Axj`NkcDx{$BMx<L`6l9yWfFxAMQSx?er}lBh=-dQ8mgQd*<1-k|;b
zU)<iXd%{hRg4Fsn$@ujjE6V at XeJWD%N8{Ip5Vl8n?u2pqLbc5I(|>)}xk&bvsSDXX
zCw^?2{GjV5eiHOf5*c%Mr_C9HG!Yb#oEt`X4B<Da<x((bN<joAEM?3<{-A6{yc)T`
zXx~q9Z~8mxN+Je+ox<7Rod71tS##JY+^~@#DQhF%ZOV3s-xZ_=U=~xLuR$4NmkUAM
zOEJjeL2ZEO8}l<APQM206Q}<J9DA9RW2kpc_lR36E)NVi{U at ME;=Ks6<VSe197)@$
zAvdE9^!*`3#2xma1vNwj3Z at b3SxE5^T?Z at Jrw-rYQexzu16Be)W;)dJE!^*`ytO>R
zL&i7WD2KIEMD1gVE3UkiI}z3+dRHXL9AAP#>-9e`uMPMjGSk?9J^PJUnMZip8sCiu
zg7NY<*sKswl;2wE^Ez+6@(Sa%$0`DW+VY>XTUh0noGe*>7nlv_tKWFmh|^e-fD|X9
z9jXzj2;4%kFGc+n+;Tuzk8letE;pH>i%YOkNu*cBGroKL_-=+D{vIiH_&w3AeDWcs
z%r*F~t4vY8XpXe!yWZ99va5Zy_q!gpmYym69W4echN_*t&3^0jdY$<jjDEppX3LxT
znoM_hCjVHo!0lHH*?W@&e-l6haaQ<ANf&U7i(&h7L2lcmw6%kf5cGCDMnEHbCDp5F
zkQFRIFf`+QW836zB^A(o6UV12pZHu8e4Q#}n|G&p=K%XMgLz%fxZ2puu90&TFAeHg
zwkqylvnd^)-ZG`WYI1W$L-?l7tCwHVwx%0RCEJ6+g#4`WlX~M_=)nLxS;%erfp_eH
z-{~OW;NA?ZS3^7ji%VWaB!VCz=n+gB=?dVMkjfCb>?4UVqB4?X3juAaWchB-l(S+N
z&&yw}28{P7to-=1A742^=|@MhSYSpLTK}czOilmkc?&GmEYJTbJ at uTWPsh%h;_=M8
zm`z~gc%bFdb<?J;yR;?$mhnn!53RbM)`r#he&*fV4>C3C4-oB!pwPyNgSWr?nR{2G
z{cPy(LpwB!x<~Lga770JPsi~@n}Ir^GleIoBU#6r$99OXiD4i^Jo6Za!6Pvc^faDV
zd-qn^9CgoS9MzTe&rYz_JM`+nt+z%S>TMIAt*@+hWS*;Y*sAu9DOF#2>#ddbqs#Ez
zn8$dC9<$evRNfFBU3I<9QGNUERd(B`GA2JK;7W(gVZ&H?q%g`O_Y?EKDPaRGRw|Dy
z%GgX<e+UCqDvm^OEu!CG%}0|;B)KV#R3VMb_g5vV&Yc7IRA=4XIaRaf#A0)w|L&5*
z1t}z307!h`l0!;dNFqOW_)}8~V#t^+3~NAF8J}M3tg9J6Ep`3lA$E1CFfuSHv#fE(
z)Z51evrCqgPs-=A*-{~7Pv(+?U6V`+<g6*CD9!5kM%__)etU3fSGIQd&Y7JMLJHls
z7 at u}v4%iMQA(aud45x|5dc(F#)F>%>3BKb*(S$*|6R(HOANCuxSwK)y;86q#k7&c7
zYg6PVLK|^h9HG}I8W#pHQ0(`{Vztvd>nb@!({t-wWz6pj1ub*V#fatmn-?Lh;Q~`S
zsjOYG{DtS)2EmOyxgcW<O!?IFH{SU)V^ih0a_Eu=4sKvqhaSH^HEn!NowIg2FLPA{
z%fdDm%Ph$8Tv>BNT$VMyBpU+N9Z!X)&S+egnG{$ETiRjqWLfO2rP-{>?@-*y%z`Pi
zKCw^jxhNEz)OGNZiw}0r+_}3p+qE><K3~Qldi_=yITYl#Le?!{ODT>7g*$*`O9#WF
z>4ba<_hMAVSkhvl|6+R+!fq1d6nEJswZIjCd?9yAA!LC12)Q<xLzts5YN}gX7LI`i
z4rs{Hv{O$`G3^(R0LMxp-j+K{Ve)i<d-gv7p~K)T at T8D$V|-en3xIr^e7%GsUC2;q
z&AAj4h<FR_ at 3hh5*bbpvJLM3M%KTzS0Jw?Pokl)L1XEsdL=ak9ds at -<0K-TeQZ}0x
z({5EyHR(;0Op!FrImBL&?z2>3uG^;5T(`}?=GHNDEkw~%X7MZ_ac%){Ey`)Yww7e-
z%367<7~1?y6I8484+qr(U}M-!K3dSD)q*l2A}HS8R&d|bHFy~^iqKD2fSgMG3(20?
zupRcpcMq}m55R+O72Aj;5{KFQ<W)Jwh?|qI<zd+PpahjiQR4ufLgH}hL;WB{+axpr
z!XKzw(I{XDa(-)xizbHPTi9OewWq40ZnH6lO~{nrFEo{HT*aJYo3<WB(fUGTA|nk&
zX=99&+X!z~XjdAW71|{lMuRo%nJPYRFsfb3$vq!_8FP(o)kTnyY@~t3IGx;={71D5
z%4akSH~~Z^*1hSB83<zwMI+g$xr8sKn1<oTkUyrFBDV45c3o&ThGzK`Fdz+$X;@)>
z<^-JC*)Mn*u9W%?KvF}21xel37RHxKx?t3yrP2Y|`e@{BBbZ&{d{bD>C=5ZM-j+(Y
zh+8_ue!&p!5OfQ1`=FTskkF0-BPA+{A5>hZme+<*cY7OzS|LPa6(zKA$^{0RrE93l
zHl$Du2|y^cpBB=I?<CnGYC_|X!`>_^3AcyBDc}_p;dmGc$W7WqdK)2JJcftcfl~A^
z&Im>!1TL_72~n^_A!C6Y6q_DPL(zjikPN1lf~}AwhK_`p+E7)yc`pnmHv~UmEe(<n
zC>o8W#$c2Xelv|;b;;BkYBb#;Ye#XFg<u*0Dk6k-wYR3)L+#?_z<SiqE*KoM)(jq?
z;X#X<+u=k|+eVM#ZQ|5M>Jgv-3|?EB#)!@-xs6zI<Y*EQI}zbyVBOOMxf*66g#s>o
z-jwNR3H1dnLtI7t at iAT?@=Wg5xC*_o$Caw_ at -T!DGI!XS2D at gP4S^5coXN7PS at 022
z4V$ZMm)#zlW|ei7xdXDL6=$6}qlz4nRbA&yQxPiBujtmWrY6ecnx;D-O0_bFF4wwM
zr((7FRhMjaSXJ5Kw%C~0V_{a+Vv(aZe}!Iw2%L7Clf#hOX~P>;)gtRLn^NXg6@|$#
ztZtfsm<JwSV^Lk2jt=Qual0%YZU4DCLIKJ)tHv7r9Cp?o7`W<a9hbdMXB;i}ITXcV
z;bCaUnOu%&ri#WRZlX%K1y9K~7sQf?rxJqoD(6l|KvpX(HiuVrNA-lCt9G5M5fudy
zwzS%($_O!N<p>iT;A%*fofs$1tQxmN1j9&eUZW%S78LRhM4Lq8F^o)a)ZDtt)iSwU
zmC-ZR#_bl}f*6R5xpnx2xx7jcU#4XkZYw0zsuj{|wOZD>tc18%mVHi}M|N0cFL#H$
zhmYJN`(+>W^j43|ZHisfX{tC2x>bi2!Av<8lPbHdF2%_)cQEc$WZhrEAzO!O!5DOB
ze3yBd&B1hwrdj+v!~hl{=5Yd~IELO at CaZRe<f__iutUJOLII;Gu*=mHtA(ppMYH;4
z&86yIr^TaKf*K+)VvN*~yIi$corrwO at bM-sOcU#NC~mb3V`(D?1s`5u#R!D~cje4&
zaWRJ*W2RdXZJF5=#E0Yv*{PN*h!?4F-GTwdaJwUDf|a>+)nip;O>=0n3nRJsPMt9i
zx?pEfuYx&qVH#O1tuV(KvRsFl&UUM&)@oW5A5C)6Gd$2xuBbsp#@qCuC&aaifX$N7
zbf<<dE_r1IeXUXa7UuNXWzDB4s-=v}mF_sR0&aAl0%d`f1Bw9wl?dhIbf5)(*$p2a
zu2>p8wz${B-7w04J^;`tTQ$2A`s at my4C52btm?8salpNH-2%;s>_gx+)uQ-4R=mlM
zuYg1HZP5|#6{D(Jm|cN}0<Xm!aGRzM-kkV2-UGu-2esCMX(mXM at d7L>uBm|Hat$lj
z&aE;&Dvmj^H9M=l<?fK8S6D!?$x?7AsNEpsBSG>eEK>O*BDAp7ZHHP1HlZZ at M2L3K
zsT3kq4Tgoi6EjIG{+ayQ<mb5&X3mGw5AfH*<Nthz=}<HI#&P(7(XYR$-gm9l?KNp{
z_InghUP_*z{Ls1w*uM0P-JdoEOYtgujs4KTCVAByNc$l2z(2van7$Adpp at X*orD!0
zS>lP`2vIHcaAUufIySFJMEV;!1;&&dawLSJ2Q~H45fpPMOMioq3YgZrII=fSmm&Te
zG0ov~A_-eh#3e6=iUVD1eru^&y%yh3@{0&@ur4+H^bsXhYEXWO?;{}$hzJfR`6KL2
z_BOsFgQ0*9iN-_B9N8{n#zv0;DKSZFgfLY>#E64HjrcOboE40AVG|%3k^<=&eTSM<
z*$iU7UZ};T4<M9h at T#K^f3V)}HL3&~QzK at IRQjmXeHelP`Vs(S_9SuWTZ0A+>mFf+
zXvIbb<2Q3oNTNXAHQ*IVGD2SiA;%hG9mPk0Xue3UU=<Pv;urCtxU0&>L+paP(P<Dl
z;)6SP8xI)|-Aw~TS}ACx?#7qM9=h8faX9MG1;n}XR^t*L5?`X~$440`ikAGlQ$JUg
z9`h6h(IS6bs#&~Sl%RL3egTJwGnK=*dm$m81ZmJRX%)IIY`ZcZGExFV1477D*n<xq
z{T1kfC28?%&?p6WBeMAsM!0yE7fSFYk6pZb>6YuX1v{q9=vI}{pN+P4FW!CI?#11<
z!e^rg&DeJG*#!$zIlg7-?u#E=qIS=ivSWdEooPVGbLzEA7O}Mrjp1bF?RnQ}J~6E}
z3%gUJy6~mx{3DB&T&r%oy)qeYY+xJ3O#(kz@(kUrZGoL;93B^!U=)aD0V`YuE)P at N
zB$K(Z2=oEUrEn8eVc}YP(Zog$w at IcqyNPGgcor!NaUlHlA!i|exSFX?M_+~sX_Xwa
z`}K}GcX`B7EytrrD(dT^_eS&6qer53>B at Vf(U&Xg$Ci?BJnP<NJFZ!FWZ60AoV|0$
z@|Ty7$>URjs68fEJ0j)ox(?lMM;f-SKdOlAkMchv5v|xCO`}jn_2@$R*N-mSzwE3Z
zE!%PJ+2@>tnn!18U0|)|fLkjtMuPK)%0L*40*xxvH<BgcOH;YmA34zvbb04ijwpQ(
zGd5**@5Tf5H$BC2kGu}2#9hB`i at FiO@98_c4s2X7t?I|%9hX3tJRWt2F$;*AE>>8(
zX&o=nps<}+Ssd}hp(hEdf9sgF at kDOptPb`!tRK_v0|I{IE#oNv594Scch0#t-gvHD
z&h9dCv~k5uV;TE=b&}m>T#*!A8G0Y`d>QymmljE at rH#@KX}7cww at 8W$OBuvZCmAEH
zZme+-=b%9;Bfi*x-jZc3s8+f}<ZBzLdj+*khPH)C2eME>=cY(lhn)tx9njL0a{-UQ
zoEZ^IPzlwHKRlI&mXZj3SRb%<daL}T;K$je>_k*nt8z|{*Ogy%nMDCjyl&a9du}^>
zrCndQbl3i6Gp){@JDt{<%l7YDx=vT?8_(Kv&#q<bbd<DQ#=qq9dYri`RgRum-PF8f
z^@a1(=Ba5(b5nZ$g{#dIbM?kuXGUa~3OecMy?g)|v(E~e&!t4<-dz6gU*vXfZjuq>
z%0QyllLg6lOSi%%PFQ$HX8EG!*Y at 0*Szhh5&YNd-Rxi)o*)!$R^qI?B?_4-xB2&8A
zEfziNsZ9j-HtcGdlAuF=O3SW>ggEfN$@WCRGCm at EKo+t8j`3{PSaL<L1*&e35;6L-
z?BHG*n+7Hg_>1<9YD9EM!ZHM3W+1Wp at aAbEXnZaMI%<K4+gcDW1MwXFw22V(ioIkw
zqY3;^TA};^eNlnYCl$zJe`aUS_!(=&7K`I|Sf`OAZ+$M+$-gj at 3NDy#`7BoWb^{(p
z9mdz{erEiPf7bY!@hN<Ru8&-_ at kJS_u6OY7O3usy+8Cm(?^3T*uOl4 at c_0DYOu?h+
zcqH<s2#!LL5RxVI1pHHSpLRrYR8p^dc-yTP4*u<m*B*KJDt?}As>f-|KX&Ft8~69f
zmT60~%cteP5vi$6m9qz7RPC at C7frhol6pSt!UwiJe4%W)>XVQB=8F7dHiu`bji0~p
zz{X2 at 2LCo~d3NbEKC3KM8LKcZ!o4mVdk_-+D^b}x+QSRBIx^PoL}`}!jSL1`I0P*P
z2RJ+ at _`*#=eGL1!qA0=i<0LQoVI>;oD@;^cPL|*klFJ2b#vg1G+@@A8hvAknO$Y)x
z95R`{VqW;RXCFSD!OEg_L<q?_*F+mDw*`vM at h2pjQB0ClqT%rmVqQAxRMc4)HU1dw
z6?0PT6TDYTv`qpPX`@uvunB<vf7mKU$X5%xEz)d(qM-=W)HhT6V at 8zzu>9y)dBret
zYL3v{adD({zev%6y?Lr6Esmjn(3)Av)Ul=E2?~m)=mq90?9h;lk7`{}3pe)q$&s1K
zF{1FN9xc_j9XHjAqc4^gcv(Eg?iQzfAB^J6xs-o5_6i$`PK{|npWL+W)xW_atW)X%
z*1lA_4(LFv8X<hmwCZU{A2N`Phz~(wKk^4jkWa2bgm at u`5E~Vw8~8BPn9jp>DbvzQ
z)TXAVVd**c{z-#y{pKYbyC+SYRM~h*#4<7A_e}R}WDC!4>Ey-%ZG3n4_{#F8+Ox{e
zpFHovnM-G}8`VFV<KS~q9OC0S<BOXZw=~STZKL{D>7CNiTE2L7_c>=&MzfX<+l+c2
z<C%l!T;-V0vyUWvEz4UQ$A!x)CQoUZv}{iEvZnU(PUD;AfVzBs`RWTUsDG@^;Z643
zXk2PsKYU}%xQ^&k+|W0z7r3-wtZ9O65_=e#{1Aal|AU}(K-`!c8!(Z$7?$Hi0g!|o
z{{{6UJW7ae&a{&tjQ)eL#8wF`meT$|-rfVSt at 7L(*L#Nc-j+Nh%aR<=cspKEVrMwh
z*$D}W$#e!}6CfmrB&<Lo1PGMT7zzanDU{7^dh3=^S~i8Yw6rxX<)gHW_Ldf6>*V`A
z?~!cTNq~F*_y0kBmd<$R^FH(U^phXp7u*|=J(KGjd--Kds@^$qv(aRg&GW6*b&D_B
z*3mw3;#-q?nxcPWx9P_C#zv=hb$0FEHs_jgHa*FWYi;>9IZ|HQ*4&wxKC`@XPN4u8
zGS$P->P$q+&sq9-@)DQ1DAu*R#TkT5c~j%k=BCA+?d@&uid_FmO}uXNnue-K#aO4u
zS8O-yt(Hw=^JCF6p>SGEKQ3D2 at dg7etsV0_^T4NM=)x+pI=P_nBD$;Ask%Yu^Pt)~
zkY=yP=gO+BT4VCNL6ZS^ub~DSG#*sLn~LuD5(aOk<w%{#MT&R~>bDrEMOsH)T|YLe
z7cIe-+5?3P=kCaF%x6MNq6N8tm{nUIX<fXeXHjG6SVxh=qq9Ngb`_ScwhHrKo^b(W
z{qlIH)+Xw$S`RYZO`E>)+{5?o+||<RwL5a;g-+{m8ge--2#XowDInup69z+$^?XZQ
z`)B2Yi)S^5D|4OUqTI%&&f90NykTK;yC(ugz(OOm7%_{^Z)PT~Eubqlxs)rOId?|I
zgr;$!a7E?x8N0gfU^9>B6rI?Y=^MDhlRu1x`*EnWl8^vaXefW?b(*7~oTKXQ7<E3n
zZT`2<M}KdmKO;h85zVe9bmpGLS;r%PQAXT1^0$#^Uv_8qw at BRWBSBV9Ky>Y+c|;p_
z?a-kzd?*gV4mz{0W*wgXhOC#dS=kvni4F%(-j>F6a6ul3K#x&FsI+lb#Qmm8 at FAzp
z0v7cVrGSy(414K2EV>a$WhKrNCtx>t-szOJv_J9U%9Z)~_+uA8`)o at K{>0y>ucW?}
zJ`jJvpM9&Ip2ef}^sMvw>-lr}E0sb1T+6em<>@Oze)<5zPD<zhB>vy7 at oQ!dYl|3s
zvB)~)84A_|n2;2U(2 at y{YTAMUQw2XTGHvh?rg)XKS|S}Vt-QpN-?A8<G03WmJe#3+
zS;OYINFEX-$tJ|OIc#<5A?`CcgIb<<jSoV7A!!0J)u$fn91Whgq`t?4sinR_jm>9;
z;*gQQ1pPrhX0ZA&n^{6%@2w0L;w6DT at C2wI<h3+kHVtPgmH`MaboONarqo*S07SS5
z$P_n15P=6V0|f^Sqx5uqy(BghicZ2jAn!0OS>j&bys_D3D0gpYz3 at MKcKz|%^-o-~
zw6tqxz8=^IT1U<6_uqW~RU2EUS at luG54J7LS>=#kQ8HQ0=WvTo=<F$l-;a;G>eD0J
zUfA2zz31}wo^OTBA>CN$^;^%n`R%*+fA`}>t&yEe3aTe=ThLjhET6n_DZBVD+y^YX
zZa}*j;`=kTbE?U;(v_pDupxX&<+y1Ubys6>Q>6=hhBD9kmdF1*dG`|=dLG|%R_W}S
z7LR0<wT|jn at 4e~XD>k%H<-B!Otqc4s{f;Mz|I5VbUbMLIp?D*U|8f2u7j};8-hJ7`
zwYP_4qqWT8bG0o#^449K-uJgfErmN56;w^wI&W%~vU2sUL&3Zx*Ce at Z%Ll1u9;by|
z)`k_He2PiH)QQwVWR^j1<zr?6qyu~ktwGdTWHccc9rD0MJBTXd6Gu+iNF7)rq&27+
z&CrUiJLim<J+-WQ&b(5$NhmQES#k`9X%n04x*~~|x;c>zi<N&bxMkg?%e@{;@k4Vf
z$3<Ia&5X5NxM5;(Q&Vw4Sy at 4OH9J3<OyD0Q#P}hOn6=I5bj3Q#Dmo%Cz7**4Z28^-
z!O=2%!KT{Qg=cMfC6PF==<MBMUQSuHxh8LMP3fevd~-o-&xEQuwWZ}{V`3GZ6)m%C
z6u1T?k at H~`vn^>tXs=mdb;m;P=ms~4*2>4A=Gm at k38h?%QSReOqnb`hAk at KZMmg2u
zWEfLN3)Wt0HkaCLTH<VI0Obp;2Cas+tE;K25&n=^dRAiWROQ2?2mU-Rx at 6jZ<_Hyd
zD!ezoICcEYUu<D_9o#={M%ARrRfl6;fx5!+8xkdRaw^@WtxM{gHZE<j+T!kU_IA-8
zs_WT2uYU5 at J>tf<-dg|Wo9l)5iYB#pC1;&A at 1pJVx?85qIao2*S&|r2R3-iR#<{oF
zPfRQxf6ZA_w at +zKw1tD?);3+fXKp;)yryE^y1BK3HwS8$x8;mQV#5maSV6EBHJ;r(
zd1G^)xM|aGf4k{zlF_*CMuRMdx$uo8X_==-g-VJ7nu_4OjUk2+h7rXOCPY+ at LWGbU
ztA6yVM^XC8Z8y#=v5 at YyWai!@duNuYJE3I5k%1)9CMkL3L#Uxa%VGf?wk+Ar`mXAV
zx|RO-uQ_z_tXUTyQg=!T@;BoFg>S{gK$0GzyhI>kpkXY5>{v-ewZK16jcHTCDS)n|
zB;WynO)P+<OyXJm*agr2S|We^SyWskEH^yMg`70f0s);2;tTv{Y#8?^p)<TreKw&<
z3Q387m!=EJ<osd4VIb%TA5}jjC9>bc6B47$cs8LvI}}C4Q5S>+FEgAs at HB<`WC{<Y
z#)Jm{aXx$~jt7}lflUo<g*S>VwBVzA0`nn-bP4Ao<!m=xM6-DUDLK#!1Rkk-AnB4`
z9(F8U&Ux5AVDeMDK$ADJRUs9UXgbtRyu8E39Mx>U$!dwyv?1hASSK`J-FGbeMbr*x
zLu7|m%lH+2hkjSvGt+mRM~954(F6$fWSH1_eTYvMng#A35UnSOG7VgL5UC3lZ;X6n
ziKIgLpo86jj0t7q*oG^{O*y}Yv6}OzjQcK|I<9nOr*h>o<Al;y0Mj#HeQW6i<5K0j
zg>C1}n<@8ASRpnIzE5nK7^sT<YgI{QRaIrl?%&7R!r6yvl!1h<GOx(#EXu3YB|h?(
z+%SGt&vM at 94}<1!!jTPp6iSQ`0m?JT=@ne_NK*xJL=?&qcG}@S<B3rAIxjn0d4jEA
z>*fn{SFiidYUw)V$vF$hFYuU at Cm|ZKPFMq{tQ-HpYvOf-Vet>Fx^v~q&S~eIGx)pI
z3xad~u1PidHK|{*>)5Ab#~uoeZ7ldxy6w|z5IkDJH&EDj5!9Qc$0p4rEi62FB}~>M
zO(6s%D0#J-i(XOQyZu4s=jZB}{wkx*uIqerSI-X*&Y5%YhdnDFn|xK4)nngA=DOi_
zmivmB3%K0(Ub*P{1I8TvL4#mi(SzGx!&6fx9?Y_CT)Jj6Kysl(gPrfM@~;WoDxATP
z1$if(DF8u0%3&=|Ytj&<PAjDh#8Mt-RH4OvWY6IGGw4xiIhEstvCE}7wEbVB8wvDP
zxhYn9QnS}u47XS)AYs=RgQkEpV1c5jC)Z%`A_OHrX0$tu!0HjKR<`VPw?Z3u>aBa3
zrj#^!8>4m6P0=VL>tQLwx2!Oo;C*&u4DU914F*z07F+ODQxM;WO;+*<_zb>v>a8f%
zX>Q$nQd5e$#EH`df5GPl>4YdlELnfx6qsRjGkfN$uYffO at uTDugGDlyv7~11$aoDh
zJKB$8xEz`6@{IhGr*B{;b@%Tz+F*5sZcWQ_ySwYwgKm47u#*3hdXevh^nF)<!xcGk
zdBpV%Ld}A{d&Z~NGJeB!!K9{$KFan6%B{hGvQM7bGV@?@*UXk}R{oRlBH!&)@9R?r
zexH~3JEnbtUUKcH%40OHi7uc4Ko`8U{=sVqqXe3I$lMs)B*Pcg+hc at sj&VbvU*H!;
zp?(nuEX`1QlsjI(Zr`Gyzv7nNrQ;^GzQk6&{yLkJg#{+t{HK6{eadcUAF$h{B#;TV
zyg048d+D6<n_^o1)qi8ozx{L=Ak5=94L;cSSp0zp)b&BdWN?GFt<J8+P#tPxD5dvH
z&>Gm6<1~Q(7ndM|`@ink(0xv%Ft at C3*7R>O;~jUTzD4*9$G-x_L2mk5=ndCO$(~2n
z&b_6valYGCV6^r;^3o$8T=loFfOHu6{HxI%c3<#1Y}JD&HR2U=lB`LTdmB?6^u57F
zk at qm*xQGel<|;7?+92+9no{ps at +8E-NzW-8B)!w(lz%4q?QAMij6A at ufe(ZDbGLtB
zca9+E+Qs5E%w+S6<E+jchu)}Et;FEMnw7 at kp(v{?eKrI`1b}24CkUnfwAX0;foMs#
zWxf)TJp*~AQB)q*qSL^t&_~+pZbiej)~7u~<hJ at NjDd8o0EiOYogEU{*Oz${-81T}
zb_RY`pQZQ1t-r5vm^bMIuGVbL619%$B?=RXykP6ARZT33mfU$uZFaQ$s8ha}aef>?
zr?hI2V;A!v9v4e6fO3<!ymkxhcC%K`3b%=2m&IhRTHMreL8;ConH)}&<k6Mxx^fpk
zbvpRz1szR`tIR+_W96EYY{7qC!z}&xgjq^cQdWXD3D2gE_uO(z5Al}Ovu0Hb9j2JY
zWvr-})?zHuIvm;}W6QMc<BAHS%OVR;GRKu&H~i_KAiS|s5LOaXO7;%W5y%{RXbpmt
zS3?GOMx7Q02QflfM;52_NPq`%cE559ho}*`9S9x>2=qxMNDnSRM~kfArLY{Kw=)JQ
zU_PUtJT_Vjz?h<YdRd6yPn*=axPL(keGC@{)s#WzCyNd1K{tqm%2$G)N<!0746QlI
zl+<-G^nofy`qI%KZf?Q!)sUP7!5Pb_FpO$KssSD&P0w<aAlk!g4?7Ya1fky*aBZrk
zdQ`8P-aBdY6$h`_JgLJt#+bCcXGvn;kz7~a+#*%x<dj>+SGc>DceyLZTgr2CDy5d@
z@^wqDfAT+{yncy at MsQgws`0kajM}Le&n_>Yeeu*avrT2DZ(e`>H?f<&=C-X>GqzXf
z)<=WEXl<U)Ur}9FTU%CL;rHd$(zW{B>g_YCw%)etfvpoJY<+;!|6Y!98{n}zT=mbD
z9o*gq)&O%9-tE<1I|&+S8Qx{8)rL4j6*kRsqSs|Ho0T6UC1rxAr0hm|Nfq$&L at yOv
z?p84_SvP8de at 5JgB$n91%Ha~i8Bj`Y^MJk%NR`w_AR$~vOCmZ4I1`9NMqEe6N`?u;
z?R}Jpkmgvp at btEK8Jfm^{^EX0df81$FIO0aj79#M^T{HAI}@9ytbj#+- at QUNa*=dX
zsTEWUnKpY-trg}sxt)IBI}Q03*y+D_2zL4zZ3SefA5}&)oth#Ma5zK0$}m!5e0 at n7
z=`(1BJB?X|{gN{FqVc*7xZi9B&~-1BmUX+7kIqm?6p_nOJg!%#Sq#0vkkw0VI~uNH
z161l<aY80ltn{@F-cSPu0IAxEGvJn1PL4*L$Kti*r<yMfIlrjpa4B~9!oedK9yUdr
zdOEyKlVKX0GA`!;n|vT=!;uieph8gU@%^M`==+TN4%jqIN?+R51>k-lQ+qBvc<{oG
zy+^h$wbgdK=w96l?6R)b)$SMD3VM19+7d at LEXgaOSzeO2gb+H0&pLJ$8YdLgmbh$7
zw;$OH+w at P~eHUnJXba+dlIga9jx)o*0f0y6a07(86*gMF-c<XrD)I=nLL_MOhCtA1
z7SPD&ksRE*j!*{v3m29M=@O-m)qZEnI2ES)?st&q+30AAP+VKM;5gGCF9_3dq{U&>
z24e5rO_#<^LF*9mH~uBsR(h13N8f$-=mGby4{`X8{37suPUSqV;XLfbNm0H4$0^OB
zU%L<Ri&uMAwxMY_Elz@`OQOd~nvG)Kz>iLb`Zm3WLUyW2i*<P{jn$6&s9s}AFGr7*
zdIvQispKXmXbvn(;G%?R%K;pVI357c*vm<4|6t#;1G44-+B7i~O9#F8h)6mb`JB2E
zz5mkaIWh4y1LnR~fE*w5x&-)J;_VB0PxHtyhT at P=j{yr_LOo717~15Pu0*2ii%)gX
zz6 at wK9ML7-J(@VMj8HX633F5&+q*?cruxw8k^y5XL^zv5KV<=<afO!0I#{lmh<3+1
zhXJLEtqyfaah`{B20VHYgNnEWI#zpvI%%k<s8gnl;|T`FO;N|j&{ov&>!4}J4^UzY
zxi6K(v>5!1CV^<eM4{B%7$V)YWxb=1zv$z5HdtiE(1GJITD%Fv3Og6H1S;0<Jk$YN
z!Sr&S;lO-4N0 at T2LI|hQLNZr5vy64LP96oP!bY9T$H^BY?VXT>cftX7fzhn|)C_+=
zEZ8Xxfg5MwZIB|VpKLj)1Z{_}!d!d+{wM=U8irbo)8gC?<;pxW8)rV at l)xvj-V+)T
zv^;J3>>aj%p2X|<+pwXC^K_q`&ffNr=0}=WHGj~20uIUs52SL22;<TDvFk8`NHsz0
zB0+Q!)_(T+==*8JecA7$?;m~s|N8l_`rhdJGVp$C+&(ymQ*fV<^>hdgeE5jCy#y^|
z*uYVC=vd4;&c1%8<NrVI7tT<Ik!2>FR;n8Z;es}G0Fx4VA+hbxRLu2XLq|gu%(|8u
z{`t#~{<m&aPWPGNlAXALz)kyA1}@8enzWZ+GH0ID{8sbX|NB|;KN+QI(hsh7c)aFt
zHj`K$Ak)S$PbsLApbg;zQ-h_Rj<Rv|p^sMSA2gBBKVk%&+Q}nF%J3auXS9CZ(RUIw
zPXQe~smY8&{++DysE6bWuZ~TY0F~^66rA{98>3$_q6Tk}k|844p at AeHS7M*)cGlg^
z8SXyX^5gR1=|k9As9JvvOh+P(H=)|6TQsXiTByl4RhMDsT)g|zeTd#v9Y&flPBOg-
zrkpR&DsRHKDtCt-Rqfa5t`$`Mo$?~=*H-;Ah!oO*1)IL%MR4of&7hywnV~~OjtBZO
zHti&lfq?6IS0d1>T5<TJ)5(-A=$<hfQ^&ZDP7L)~og?2vuM{fC{6j1r{bBjXQl7xu
zxKBTL4lp-q9Sh-aRKa7Cu+F|t)xQ>3$fc*#R1x+SjiOPKocodb2Ksu3xy2AJGV;JU
zO>I8 at QYI1{8pEGPmz0v+QlYglT|{NUOT{{v<#draSsm-*bq!>_t%KVTuGYbX0T1O;
z#%g>rAU<?Sro5~4_9v9zPNL at T?oA|m`?^D+WM5x06zcAy^KSZO5{oAKSvQjrZj=b&
zf5>50Lx}bEhx$T#f6}kVzMu7ma2339s0o=#h}TW~=xCwu0G}5Ig{UD<IfAsPbHp3M
z4PmfJLh__$dL8UeV4aV?n+UP~kk}VWP)y264KmOr`uh6bJ&H^g$z)$>u%GjfNp9;V
z{tG$jGxUe79odwKxGr at R(*Pz;Hp84j`k*LNMcwgZn((+Z5?-he_CZviQf<(lOm-9|
zqV!=e{>QMj8mMMzd1<&@s!C_5NJE}j=^~+U>ckpdE~QT`8+`-cQcH!;k1UyxKv~pM
zjebCA8d)#_eD+N7zoZ&)abrlL#q=LCOCmhMturv`bQgu~#%e$$Diw&ydjkj6Mx(Ne
zUBwQb_VO`)1HTa)^_E at AF7>%nF7x)Xpj^MmluNZIa{nLXoZ$%`eJB^1Zbw}d=24l{
z&s~Kt at Ncm<P_ENm7G|ndpsJwol*y7RLNB12jlN9%I8*ZtsYaSNqP<4up>V40HS(fV
z^HsG at 7n&NAy at 7;xC<x1{0Tqj#f7;8uy=H2Tp<LV5at+&GVPMN-qURY{c;{waM7hpb
z-P5#!fS#n5$?kKs6BX<<mx&f(d<olmKay40pk|%S8e$koG;q>`V(8T(T0l9?5J6oT
zxTl%IyrFk~?Lly+-sbO|$t+ThNd1a(@>%fpI*^@vraobsnXDY|q&}g#r)SpJXne8!
z49%(1Hy&eU<8f^uA)pbQzk=-{ZOeC)ABsxT5M|8)chak{PUEtC!C3 at tg4^~}{h<&k
zK?1Q*DAi9!W-V;gLP*5VNH;>aiZjVgFFL2yLPW>f(iK}iQNm4#YRkmhC9#B(?8p7}
zAjV}#DVKXeU%gZ|T;ydX7LXSX%%EId3!?0<VZHQe{?>^Dy+9=8pC7>I<?db;-l|vJ
zVz>7qE*Exm0R>W#cE#>t1-EN(UN`YM-B_ilY*=Pcz$ElIIz#}$P?@nd(yDN3s|^=B
z9gD)glWqYEwFVp^hH?7VaxGK8s!<-K!iq1CaAxGbF`|a+O?;}y{+Yfm at Fr+xBROL5
z!LM=bD9uTzQ8m;X0=9kB1ifr5bUd)XkWHp`#tIHG^(pE2)B1jKW+)UI<TpsP&0c>@
zXbX)dWM%ez7DB>nZk!Ai0rL?SKJiB7*ObeaXS6*fW3SYkl^pknr+_FxcavVzDdvsq
zZqn;ln?OQ6X*XyICSVLM<PR^rr at ukeZ0S;xU0cY+k3|lVSR0Ns7Wa2;5usr^?GHkN
zE^p})`p7kaFONqyfcaH#Kh1S2@~P#v3Mgkr83Cb%vkpU}8fvC5zd_WTQsOOL3<VRD
zXZS(tOC?5^m>$^Db%yIyZasMUgtia*CIcca2|bSHUvoMhgV-o2#WIl>nLX*yN&Q;w
z&0HD1SMT7q39n$CjsyhLHwdkq<4#@8cT$R{B-k*0ux0sy<;xF9pQ^vU2nFnxUSZ#X
zWt3fV*@0(}j{&(0l>fuIb3rwvr>><JPM<FRogQ7D`nLMxAs(cmY*U{+K=lJ3oAwzo
z;S479%qZplqS?bwRQ*3Q0D-ThpM?&W=gDPm5e6r!H)>T!u6cwX4`Br=IMx5k<ERP2
zRbF$6XhU9HyUiiXk+zjvzj at oresavxAkmYC66gv)yQ_}%en<I}t}tM5xNU}rwxeN9
z at 6HAF1!f9z=C{#?kYtr}FV~P=FA3i(!bkH#wpfgs0QMK2mY~eY=9hKsBf}XvnqUW0
zLB5DN(k8lKEQ9Yrg+%5sZXHwg=A>4qxCrPsb6V%O=Fmp?=Fs8O2hSgK>y!tl+){e}
z!NkhLm(RU#?&XJ9Ci+`rSKRR9Bg<wb?>%_shH%@J!J18XZ at l5I8xO3%dt*)TO4idg
zzoTRR$j!wU+~+ZwJojC&c>nZrtF?Ukex`r*;+b1oA_lE%Oxx-SyI=e0=-kCS*3O<E
z3C*3gcE_SQy{Kl^yz&upW}52KwE9x&%dKTvh~lXPms<O1OUY at IqZ2jt3;Z{J8;4#L
zJ{X<3iLU{=omc}LSOF$sVAK-j$6D-h)1m~+7vki3fwBq)$7>nuHNyF`<N{tUZZQY`
z^JjGfeZ at -y%5R)?u%Rx?VKL{x)gl#|7l|y~fD1h&kE>ALE<M~n&^MG|3X)x4{aId{
zaCW4$K)K0pkCYX#jo!z4shVn49$?LNlfK>7q})_D3DyGsZ0NwU-l~cawJQcwdS1BU
zcZqzTBuk;N1k?zp8gi#X#oC~E&P?qL_ at TyLA%v`gJzoIjA4-i&{wL=}f3EyIs`m$S
zD)l*6+;>Heer&a0G4gpWKupI!Hht{_A1Q+$J+KygCVlk4`=jtN*vl8*c;kh50bbL!
zYE at Uj53jOU`Sj*5n4VJTF?u}x8j$Pd%F$P{=I!b0=H+mQSUTW_Odc0Bb^aT5)BCH(
zrfXH16Y%S)u1dpyuWmItmG(@v^!myiR8=tiPwQrag at 8~RVC6?OXpnLJ*VnI7G8RZd
z#zTa1GN8o%do at vwg6#4CR^d561D%2<y~@z~{xvit8Go*fLaE5EfvZdeq?lkb!qs8|
ziV>$ZX>~%^k##5}(nBu2Q{H^D at 9;Z^``%PwIet at 2zRCJdd4?We$19cg at Oo2Oth@;<
zhB9^^1N{MqivPG?glKUD{4=eU<PX15vrDs|M+bdd^C)WOabx`lodN|0%KgwWa)S*W
z;~w-I?m;bJT^PDP>YlH>p8c)tV^{=+o(02^Ij*BJxyWKP%sg?Y9+tFs+wm`H at 3-S$
z`V98uK`@MBw>>rVJHKuC_7SI<%Zf&Q8$h_!-!=5wE%g2`k~(N)z5tpYl5%0ow(vVX
z&Dy52Pt;>2`%?NOy<_T6cK!mp(o41Y)J`$FgGu_M4~ev;?jyWW6ae(xi#&V_(N|<n
z22H at y>3~f+U*MPu;9*9X4b#@aOavjJ4{{GpEUJ`TgWO&-F at zxQ$@{OGJAU<j%a6VP
z+3|*RRy8!_mW{h$;M at o@geI)cya)!R+!rzGeslBU$+?NiTbkA?pRKSt?e<VXWYIV7
z?%eW|EwP%5j(ZIS1qJM{LeJ7rRl_Bz`?uPnIYFye+!|?e3|MKrOaE{*kx_eRN{%~a
zX-C8w&d*)kWYD{!!ut`or?fTJ*5KM=mhDc6klLZT%itzTkfnFBW*f~zt<F>L;#(ZU
zyD(m1Ky#3H7(ydG-kNIsh(-cF_Wze=5fhKU`0}F<zWFQhFMqws?UEZU)vk&_S)|PC
z3%J%kzR~3_sk-3U{a2NTZyb2=f7Dijzt6tr>2CJ$bNcgtxLIj at YDalLfV6V8eq>EH
zNs{>craFW6xI at tWaH;;;687=`tRW#sk(|Qy2SpTLc8U_o>&8?}%c!blLg?gLlF>RD
zsT?UQFeaQ<5d=&aLpqSrN+V-HDd)G)MjgZDC$H1Zll~69KoMoz;kitQV%xaR&Fcnm
z6CtVtu%QiB(|q8+oTiw<divTanipY`a<$|$w^=L_+o>K1-#BdruA&;LDyOsthU;9U
z at QKgxutV}$WRrT3>N$Po(y}Gy<V(QtY39_Ec<nTAP1v3Q9`qqwI?`$3a;(9L=?XGA
z;wBG11y+`${HW|UU~QD`E|=C)SX!5>)x&=@M<~51 at z$Lq?_swczn?unnGk4*MaPC5
z!6zx(D2iid)6IMKG at 2buA7F>>nKIilFzP<#MDCA|QJ)AWzc_hJdxhMO=+R=-p&V^5
zI()K-9J4Nta~mZuPdIrp at K{k7Ic~Y+d?ww+m~#8X{G-jRt;NhfQ*K%)dwmX{GF};v
zomXC{+!%6}vwywo&dc?@i`3vwq5VXyv4u?>Y%REtt(wT{ly52KaMb*_znP<9_D{Al
z)S&BRKOHkh8P};J4uPFa!PjO#SR*eVt(@LLMGPT=_*V+wV)BKlq@!3idV{GxZ^Y<y
z%NmP4=(OpiZx3i9f*kP*iC|eVoVIi>D-^xpi{Yz4x)A~VBpfkezXOg14SVj+f%OLb
zFz0?zYb<m1*~zXOpi?BzcFH>{lne7<%9xirCM7cloWb4^mJ4y-zc5M-hJW|NFHD15
ze}lj7zTtbsZY<uJ(|;Qbxcgs&$7r%}`HA}&lK+X1yvj3r6lWR{HN#_&?-8Utu!wn>
zE~p3>_ZrA+gvdWGV1<B-eqH(kfHk at rGyjCA_|Yx3WkP?)70G#JwUA|N%hJ30)eRG7
zl*AqU)X$%ip5nWyeA`{SBu9Dol2~bR+oV9wl3EhnaY?KlK2~f2V2VXcT4tv&X7bU%
zT7hgd0py0Bpg9{zK|8^T5KW?~qJ|cD-98dlx&EQr3pno~hEXO(C7)_>LLh@?k-YyK
z;0EdiQdmq4H^to3k+TVb!q8v=f_v60xE!2*wM-hyp^vgBPil-7vkAU?8tT4YHLp{D
zR>ZI at s6au=BOcEu%n_U$1i+B;u`}XfUGq~nf1-Sn1|4EfTvHxS;|j4^9^u-o*QEZT
zzM9>9Qe*NDeUKSWYWP?{z$%7BO;%8JKTk2$djVk!vDu!8Q~5Z^R0tyG`ox1zEfkhJ
znKKPbq<s9T2Sr+VK7T;@zGuCfqDqtX%6mq9jMD at SRGi`<=ADhlw(+@<nGDd+5k(_k
zKT>M(DFV5KL`ewoMB6y=b|QnbAoTgc(fIj>wG_msl*Pw1;LPUPH><h&?A8gTk*OA^
z*>bl<)<d_~b=SVR%%6F{FHEgp-rN%O`sU|23Zky^c{fCYO_e2yyqvS_`aQ;c3p2L$
z+)Ol#7n<gDKIQEqpBEY_>f|MtC^`bW3YR;~TZADF{Y)33^yGSAXxX@~jS_p~09S|6
z+xoc7fepiDew^xyNo)H^5}^&1;T&uVPzKTm6DK|5BQC^#P?_RljF*HAYs0V4&t-8s
zjk8=9CF^XIh5G5;w2`za4IPWL<y1=}EAmE7A?drKo(Q2JL<m|5U>hzmQWxgH5H<DV
z1q3#UE|?a%LotBo)gFpNR7Nu(U{eBShj{7dNBzJfG#G8SDN6FWr>{b88^MDsqCV#u
z#`Zk*lJH?l5vAH$XU(c at 9#d0c^{x*@=dC~Q%Bty$XEcZ(+<Wg}iNWk~`%m1<BFui@
zdr}M-p5~JG?o&Qfel6VlN-)=%*wBuY@!?oi+!S0E&6}`mRpavJrqY&hmpa~L@*flT
zp-z*(PMzd4*Gc at Eb^2RMk;IX8>e_VPm6KMjo+f=omEL|OSk6wZ(Zu!bO&xKnkZ^Jk
z@)lehvD!fA93{VXFR5Pm2*5H5a)f~=CRrB{^d8oJW;5jsCSy%0O>Dd!$0CkJ9485O
zN2)8Fo;#>18&inAggpiq*06UtUO*2{Fwi)vID8Xy9zbD%#Rth74mhV|LY(E`skq{W
zbq>M~A>0rO)m7D<YPum at tZ(p;#*i>bC^8M>M4MbPdrW6}NA$c9^O_1T>8WU)9~l$b
zG-v+#`O*A}XxEA(hN!^;#7&_fDjr$U6|KPa^A~h&!d>%Q6CYGEfXMnIW#!&+Rb8cX
zm$E13&`%e~Z;8ubHH>xRq8;U(V`eW|I=8f|YMi&cEaDd=V2CnFGwRWFNygQIw2b%~
zrvWFE60Iq5vVUX#X>=6np-w}Z{&g`8(E+ZG*M!o?v<igyDiHDlMe6Oh$saPKV_=%M
zmAA=lf at d|s!AZ?=<@4j at b1Np2zf+#}AHYTYJK$$iewU;NlPazy9kaEH=D_je2jB#I
z{5VE}1-#65l+Oek0akOYO+&>oaB@)?*P+p~3VBKe;?R-~V?lV`QMk0%qmP(v4TWV$
z>y?|2A84rWK4%lstl+{a_1SYCFt?3!kuHl^-?>KRqSOt?53IdMn7wA*X0-x!LcVfy
z^1yLdcMZVh)N9#QwR9*(JQ<)@&>nA~8lF$%p7e7v$*5Y)WbWGlT7xiKK)+&vMWkTb
z8Yd-`#IEIk?Q36k)sDS&c5|-TUblD0Rjb-nCl?`sOgGn!pZ1jaa7wfA{{0uv?F{Gu
zn;Ynyd-4AJ7pjC1-y<GLGlZKFA$sV8H`cK4L&oE3qz6Q{y(ycy!&D&a4A*pGF*$+h
zH|*>wYKD&~8OVtwS)pJXgF%p~J6wUDsE>t6EK<PoIjvd8vj(_XO2)REjCkGZ7A7jt
zivhG-5<IvLC`>~><tQhgw-j(6_Kb9<g$D})>eJJjG6$1}pNP6HjG%mq!h%$xdXtOa
zF#{J at R1zlZNzLZ#)x~bls!;QmDXnhFQEa#P9A??oIAMKb4(t+ER$(=<J`sS(W?3EH
z-AbR`pkv*F)3nz2 at b<xe8tGza!~OZ2E1Rc<^%0%9+HVX^pD at W;Qbu(P7nqzvH^7H!
zO!!ZRIKQofMSQ4kfJO$hAZm3aTwq8;ycjy7@;B5MVe-nooH=Fwn;)684I!aQQinW!
z35&cy`9I3vM6K13aG3jzcDB2_>o}XwWUE_Jxm1??Lb>VDu5RTryRly~B*1^WS<V7x
zNVwcAiBQjNbAE8G3*`YVg-rauDq}E2M*-ZTl=fl#i6{eP4DIW8D~~*4$qhE%|B~{^
zOUfT<`%P(Z&G(yIN`!%wEG8O5;lU~5)AYxt%<1g>5xthr2k!gg2Eoxp0pAa)Dudxq
zvZ1#++q@%wV=cn2UuHEf*IJU|nh+NMysK8Ye3ZT!w;|-c2KUwCM!JvREc|MeQhD_E
z at oBKb1jRyGZ3(S^<oAV_ at j3N%crB|@UgiZ6Cy)L<m5Pd{7V~A?M+Nz+?;`?=e;*4W
z|8xUZ#S!(Fc>UA0;qO)}$woH-Q(ItkVcF;gI87g9njhXYYD0`FgIIn_z0^(^t at Qth
zHv-yeM288xPSXbo9xvh`DV8;0WD$f<#3k3%MP1=I at -WF!X at h<6no41{_qk^+4|&-J
ziLI+nU2Ibt<zzDTpQ)dS4?L9m at V&aaYm^UHvsFUqarV}Um3Q5R`Z0|ew$Oiq<`TAE
z*dVyVIvMYE!HtZ$<ad>S4Zf3_JcW(PW8Y!#cMMEzlAewYOa*y+QTdFS*y<bZypzpi
zV`#wAc(Ln1yg`Q$b(zs!V~r$2Q^~Y2L}Cdd0WD3*37;3ih8Z3k)HF-zBt4vJ`gS1t
z4f+q2>*?b}MO^FFOBUnVyOga;t+I93*?=O~yFoF#y?VWEb^B*G^%0fnYnlva$jMFW
z$xWZNueRy+Ue;}OO7HWfcd%FK_38z~+1K5B?{#MbY at 7e+cG*`i-QyOn;N1GR3wKT?
z56H<o3%|`Tq%L&tS-RTpay!-e&-sQ3+K)s8m1Cd^A_%J%6E`jBfPW@`6DdUYDsFWv
z4y8GRK!T at 28#aS+jN}B*b at nt>gTAixp-G{0z#7SEf-2W at ZY5*?(AZ-kt=$`fjUfGZ
zCbN|a?aRFBcqev_!j=A9<^SNYo$0jZD&a#F%J&>ZG|}_Ie6km))`HaDue4Ng9SW2u
zNl}$`fXSFG3(^ug+N*!`IZHMc!%)aK6qk9rV=<JuI{bUq5w#_BIrw&xkA02}Il3GK
zFqn~1sa&Jav&)h7?xFIq;WDsa4;3ftFs-La_h%51hLeW%G*M)ai*ct9iUQ526zuiU
zm{7rh|DaQ^dnKp(!>KtT1=UTMeb=Hq^?}vxu-y8Ni8(DviyOFyYrp>&<=tDY2BXvR
z5?l7Vj{jgZv4U*0pclDKsPF?e)xz9((8)~i+-h;SEw{3QzkGkK%#aP2uIgS_?taPQ
zG#bR0NBc--#;S>9n`CDO;iMdb0%hBQEFp}}9`OjdRTYGhN#5?Tosv-?b+dDtlO<eE
zS2UH3y7UJ0W&O!I?ThlyapWQoFM~Y1TF^qNs)6e<33X{zO##*sB$$Ch4uV2U>RIJk
zwqDo(f=oGCQb(|YA?uBJ_2ACv#^~P0ExnC<qEYc`oa~{Ky-}$}c{W8DwDc6#Gh~^;
zQ&>umIECv5cSP|}?-ty*F)AL6;vt;uiEhM at 8(vpcS)U|p*w)Ft2XftMvU_HnWXW;%
zG#;y}N at 1jjDj(Z?-B4qTPSq%Ug)bK=B`K*iH1yzpMmTX1rc at tCSp~9`(2t*0-d2HG
zlGr!y?j`OUzUO{Svy%fD>}L5ASl)qb&fQ2*X#%4JS;qnZ`c58~%qyO77WYxml}E2P
z_ZsXh(O2wrK&#<wLzf4|d!nQzg|BEIu#cnB0+#f8;S5ew`Q!=6aAuH5AnCZkdvSdY
z*agz5HxM}vb6&ANL at r-_#YI7-4=;t|u>+rkO3T!1F#sUWWgWb8T1dfrS+XD&6_Tbt
zs~gPTaKDlL0djeU6&p&x<E<WTUKEZASmQZ6R{jgl=C~Nn#I at No?IYZyvSPSLz4=y`
zczO108m9YNP<M~&8OMA&azy8l3cUT0zJs_VFvMU^vgH)g7qA;|scr0LZ&)45?;IAZ
z16aVyfDlspQ~hFcS#Itvxm~%-gx>6eu?KId?QUfMVWCH?7J4L=5JC)dQ|TAFm*I(9
za&wn;XO}d)opQ)G8ml0UZ=Dt>+G);>1ALrHv&e&7330If)Q4(A2;M`^pxF{1HSD`t
zKQQ>m<Q>9&yyb8oK=y at _?2-)kSCnG7iFL+6AktZA#gd{bG2#NWkMOLdv(cR=e#E*#
z4|;)kv+F1O&uI)B?={*09WIt_sJQQ%VzW6Q#6~pNqqrZGpqor7z47rYx-VMO^7tRj
zNO8he?y9Zqg%w5U%Pyj-r|0xv0ORC at 29j(j3}$NhoIw2J-i9O6b5ZaH1==VYF_h(2
zc#6{@Ed5C~JN3tt8c5{7<Bo|ZxRau=Vib=FT9M`{ESfx$viN{fCk+OUYZRpz-AdAh
zPM^}}n&?vcd`?HPkSx9h{+|hQsw6+pkv%7#9Vt)}!5|WZM<S`v2uINDhB>uNr2QHq
z5?@^=M{z1y>~Q+9N=$UIgm34W%f!ANiA0dMJQ!3G1<G%}ewny$vT6zk0M%EPDM9bY
zr|4V1&9;AzY$D;#tfoW_l)lv8$V!@iLVP8=ofznzM*J6em~K!c*x+r*TLUkV_>lD}
zmdSP6%<7REfV8`~hfJh0{N;3Nk_<Gi)~6nlqB);%r6iDMpI3Y>BAQLIWO4a}=m6J;
z%3b4EP~T1z#C9sw%64{6|Jr5993z&BUW+8z+&RGl>)sct*_(EQQS{3}#gDWxFWSH%
z_ at M((_Kbb;5@%6Ct_NvnEEe;hkD5J{z6L3okdKGSzjIl(T3qACI<4ER&NrCGhwodC
zl1Ub6nvjtuxdq4r+XB%Jv)Q)AWZQWaQqRbE0g^;v=<@a$M0<=U%A+#lBQ^P4XTyzu
zkYsgQq_*PmS)h<4Z4eZFT9YFVqRBe|+-x~#1=V!Lzkl at f5r_!ukaNf=mvome=wVgV
z6w0gYTTbg;P!e3HTu*l%!LYx?W!Z0a{^5b&@6qQNFEKH}Am<h>pYbcFb-%@>T=qB~
zL|K_83T&J=ATzDR2~2H6EGKy`q6d)iWGwX=$C?K;T7 at 2^YZ%fs0X+!a$*TcxM{<7z
zteRGQ<EKZR)+;QoiMzWxa%6{Xoz8AE2wV3>qjPrWN4sk4<K?p|CyuGeaXfp6%W{R)
zIc{Tni&N_`&(Yhg7SY$xwy0#q1&)&F^oq*5#_onmFe|M1=I;UzQENP8C at Zh=<6BoC
zFOW%C70 at r7om*Wv#^<p+Bf+vU<C>?9Irv)sV-}aw`mnYzTw>Qc-G^<+gC#m6dA@}m
zfwFio;&Qrum9e%7i_?9!4}I2#HsB2aq$@8ad;s?y2N$e%AhgSAvka1fX83Yi*;Faf
z>w~~3?sHo2^S$}qds&gysP{Z$Hz=?40qSGRfjhm*0_q!f$GBfyPemiX#%cXarQ-oe
zgC%RN&O?v6A5m_#JDp~>`6Ywp5{ql$T&ER3Y;{>KqkD1KIu9}*>E|UK$_s8iOzLt9
zN2fAEOFU#aQdtgIyS+Y$uP)LJB07u$%G6<|;t25p=hg~KAH<;Or@;hZAin>l@*}<8
z==_Px_$yb`I7as)z2`>`qd~9y^jCb${hk%7dsKx at b6VF~Tnn7m9*awuXt&#)%A(jJ
z|6&Kb+hw;pQa^NAdaTX`F3UP#c06Hm5idi+B<cVdBOKBajo>Mu5=6qoB^w%yL)3)u
zkkZqM+r%W-K1il8XRytw7nBFt7t~IQ&SkkbW0vlxEB%O{556F-d*Naw!R}P{{`36N
z&TF`E6Ux35aq*Z8q(VU1^gzh8!$Uhya~?*9E8>Dl7Z8|;a0}POBXj|Px#|T~Milvo
z5hHvbi;F|09j1pOX9dwO(A80&WcFSic{8a)Nrxjrm~(VGaQk*dly^ex&Z{Gn+0j{d
z&B2w;VdYna0{G*%?$-H_`gPxV{a)-%4x#ros_R4HYiW1x667<pUlowgV(ZS)`S<#D
zE7`ec%Ym!xMx(rRGu?81;iI4#3ji1NCIfYo*@KAIOF@)Ib_*Hy3wA7-3}KX}Zt?qt
z9&D{fp@;L at _&Bb!#WsuCuiV0V{OZ;WkfHn1H;{abh+OG2v}28CD#sb}QbHKm?L3jX
z!nh{_Xwg#E0P)LFgB0mFuJctl)YW+EYp_9H>Dmej$o&8wt!~rO36=(&v}vX5oHy;<
zVbRsh+HuL;Tf0hbbxw7?P_Vfg$?}Yr8Jpisgm0Z&eCzCsdRkx4FPqY`xO%o;-xTYp
znov=d at 0yZR)KcA9IzcBl7fvi|jukn@<P$S;k6b-v)8tC8baH?V0`cI<8g`hmf{wcx
z8~nHM*`ThV`JB`pMU6!{X04!nkBPF`9)Kgq=i!>L57`76)MyN7>b`;s&ZlD#VHl-j
zB+0JtlS#VD($3U`B at O&zZ?Rfa_aT5ZGz1F~f;jkVt5xZ-dPBvH1O23EAe0A87qS;*
z-dl`$GZmxK3!8x#VEZFpjnEy60nQfdM#GnnK9`T<o5fyhM|M#fUpO87L^c!!9ZN-4
zFBLiU>~Lu*aY~8?k1Ct7A=n9L)*<O1U^v$9L0cIi(@fONMU848Kh#BZSd5UGE$t`4
z#V6Ik!KEsgQ0o{Xl_|9Y<{So8*u%hlc<9DDBzdUA1l85h-c{q0?*0B$Go=WWQlA1~
ziM%6}KGMWN&_nt0PwYrN#kL~1Ad<<MogZ8vG$_|;Z6>S1^Z6S}|MbfLs+_L8JNf;)
z-j{lQQ)!pntk67=p8<Y?CQk0Anx5!&UiO!>1c%cATyAmupO>UQ);mow_U#fc-LT=%
zp$!{^BdHBUUPjitmg*fHt~WWclb$jyHfGhEB5kv4CVpu<e2seFF`{;^Gq%D|wf}g!
zS}TLY)srqcr3sASzjk5#qOWx{en~DHhiGl!#zoIqRidaE!0CnURL6(Wju4~Ih5plb
zwG_(MEMNqrlGJwswm4A|bi(@h$w>`A!M6K!wH^l5XaB$hd at MOne@J~kTz}he{YTgG
z%<aLAtXb{h8r43d&n47mxB^P(^sOQEj;iyB))>~ngoY}(?Q~7SwhjG$#s=VHUVbG#
z*W1YpI0_m?>9N6Go_Wki;jlvrnm8P!=+1 at +76Nh-s3(StCIpn-$kIYiB$TH`p18QV
zwym?HdUEPpXQ=eYfyS<#liDi$&bZAUjm=+U7d&&yHe7z_+}(HQE2Z}`B;$0p&F$O$
zhw&SxZJSZQ at N{)<Xxnw}+$y_Xw^b)ub}sVeUbklb;U5Z>+qSWXb$;1ywm6#>KAqY&
zG~b8n-oQPehwJ|3bZ%7jTwm54U!(4?W!LYSFKGxVUHO6Up04(TqpK;`oVGo<o*VLg
z0(=1JVV7lk9S$Gp%+V;;7zRjxg8XWfV@<0gJZ8$P2D=P88LAS%5Vk>Of=rBr;tR(Q
zFcbo$NG~Bz1f$VlAl3^l4%9OUv=0ShQg4GztZ+DNaYIw$vZ5J|iMKDBxjPbw73KJQ
zsyf2XfWe?M<+@#giq6Wg4PK)zCsL<M%rk3SAH4+c6oNxR8 at RA=d|7BlYh&xU=$1({
zgo0oI*bC8saA{6d5Vj>2g`F+Yl6YB*+vO>!E^f*9$7YljYW;329|xpY(4Z~IkAk-a
z_kT%`<<Sy+)a&8WFj6?f35G)$R|t?7d3$7<gxaH7#LPgRXlgh2nHpk!1KT=F`KzS2
zicnuNgDqUySrKr#b4 at yfA>a&mRQ33CieiDt?wN~jpXiuTbXlUw5VtuT6{47FiPWD}
zXf56z54A3ywax1GYoo<8WB&Y>;_3pA%iU5IFNwA|!;2Ez1R<IuTncY6RvHKv2s0*a
ziH<|V%?J_ld`9PE;QpbdnpTXA)yVa7jpkdLM>IddD5<L at Z+Hxn27tB|df+RDWPg!5
z;JMYMjd(R_^}PcFfgAR43$c%+WuPmnu at CYBcYFm93WCR~8*1xoDc2JPfmE|va%zr+
zL+}XXenW&k8sg&&?7c2d8MX1Q8cF~QQpN2as^ZQE at C_cr0Pzc1&G^NPz at Kpx5pT|O
zz<`kV)WnIY=enlNV&89%N5cl~L?q~Od)auMc}yhS-X1C%W7Z7_qB&Sso9A)otqpoE
zEA(rba%mzVcwEMbrB@=A;YU}NO)$FMfE&L`h+PG!ad*mc*7TaXS^AJJVw%Rnp1i7>
zpvM!esmk*_-rmk3tlPCFyq*0!TTS?vJE{>C@<3rt%?Fc}CG6hGdzI^p%X959R;c{L
zFW3s0fAis5Psx}f_R*ciC7ve?c~-BpI2LTav^f}y<u=WjP!nKgk4bF2y{6{&+LZYH
zd1cMA%_cXOEjsq_{L&UWZYiCQNXX)6p7Aa7t!wz%1^b%vVzIm?z6-XnZOWeu?1G;m
zeQwkVhctb*R*BCJ;4J+aYsK*RSPIOWJ({aDw`m^Yayr%o3LTNb{MA-RYY0QvQ4>B*
zw`4l64x^)v##4Q?F2V;4LfKF0Sm=c at +#rZm^UT0HZHNyML~#=J36U|(%W6b)I^y=?
zHLlFqBSwX&k`Dm=r;bqZ#kkMw^~KrTv(6f9+Niv+el-g%S(1-r$!v+<Trswu9Wwwk
zw{*#p^0D>s>7Kh3WUb=SV7$E}o|_k+G!=r1km_ByP<S<9UEK6kD)3a(5=#Kb%})yN
z^W(w5+6z}(E2Fs^rm!b+qm$ZWxw*0SNzq(3dud&Dg+;%ViOyg?EBZydmz8 at vDk?gT
zEMK1bDf?Ktyu>4h*e2z|Du1+f`E#9t#`?EY>&G at U1m{_5j75_ct(zUKsfo@$hFx7S
zXb^w$#-vGaOinHOa7S~O*5lE3HE;Qtj&*Lg4#$!ehVj2M+q8r0<||)JerOJ!j&(iM
zMK77FSQ^@*{u*{rxjrm-OW7Xi?70uo<?_E^J&U7vk=L0tEDf$|xSSGCPo^0i^JJ7V
zte(+DVS(}A!PqArw=u=oo$z_~eNr3{e{M3RK4o1dqtW|GiC;P96j)CD?_P0 at Q<+v#
zNGTrBg*IC`TW$9Yp2bq%bUSS2!g(R_T5|D$+?t_HR2F#hgGfL)<rV}F(%*RT;ReR9
zz+ao6)yEmc5pwq?jx{s=g=2d?1y4DV2Yt`8NPumBy1*qi=o~-DcPVQiZo5NIIguG#
z8D!to|2BJqf?NJwp~>v{HB-K0wOWeAIp#<zE-2v$1Z?&W6MkX8a^!ST^(oL<kk2!$
zj~dm|kTGu}4->7Epm2OFQ*I9m#!Qc9L?LMM6-_~5IBd5eL>>xz!Dh2>nDYC<y}zHb
z(QdT~>2q;k`h4j$2TQn}&R8lLb0XJ$;z-}7dnR<Q*5~BtS9eahXVb`2;(Zg~0s7>F
zXk8b)N`vHOY>+(66W7&2?#I6dkHHL~`(x$1idQaEypXAVH?W0Jcq~fIVG9+f@;$kN
z%~gEL{cI8Yi}F3iDYh!FDt}_*mG?F&zr~GMh&Oe!T=-rJ%6rnUl|L!3F{|<q<?qUm
zS)RC8`LXg3HWnfX)?j%rXba_7$do366~`kZt2Epe<CL5->;M8&)FtB&u3$(+9(5rL
zeQ&B&e2fj;7-1KRy at S7oB`-C8uJAxSwczK%IWtp7+2icmi<Pay#0zh_ at QRz+&1`9^
zJ%aM|r;Z347Ed at bfxYqM;V0QA$}Rg?4|_TF<N{&pUs6*7!qbomGviLRuR((hN<yB_
zV0VG=+kj;TI)v(a(w3=QGx at D!WOCarMrD1&s1Yd7y~3S*XWw(m2kvh~0#bQSk at 6lA
z;648MB}w*rao+dxiuvYyJLU`=oU>!c9O?WyJI)iX9N)3`t&5qhuVZ}bf<Pp~9{v2G
zhdzHuxZ$4MF=KM?!9yPn- at YSjzEGqG`jw6JL#fGl;$$K~)YMAq2xhll{P4vWKP)`V
zck+mQL4)_vPw9Wz^HRX7;K6rXVY$Y at Y8t{L+|V>XQ_d6Wmn(Hj-SQs6$OcCFe~E{c
zSNerVQ!{%RQc0Z}$2?oURDJ>a2#Qo}*Q~>LywK8<DjcN0g60v{08AejII$ub+$T9C
zg9~%Pqmc(ZBY{YKJOdj6-#eF<V;CT1A{6S-pHu#ch9blo<ukETzq2l$mm4eUY}jml
ze&zV-qIAQur5C;Do?2F={7(6(v?AfmU)Ip_-aF&#mMzrVEM-LtUwv*}#gw at TcTPy_
z{DaWY at 6p;H4=j+&O2dQ7t)CyZc`UL{Fho27gP2#?Sd_o#INQy}+}2`e!ad_>gdB6{
zI-KTa$Hr}Cxff1an$+uW5iSZw4Eo9{ov|>G8!_nea`pPipfj+hz0*CmQgrCug>{kc
zXYGa?Z`2kxicj6E`15OX9eZQJE#|y2!CFK03%ehj8Ys`tx0x!O(M1(A+-)S}r)_$A
zPSKkn>#rwD3i~Jc)cOV<8qUMsU1&kHuRxhP>%r-|YLO!ugvtih7XGJ(g;QfZh9nGX
zTjz_oE|Co2JcZ%vnp;%LO5^jV=@%c^APNoTldpTi-5xKy?f$Y at yT?*dnE(76;iBqB
zlWe<F>AA}+2W*vheDP>uzU>Nwqjbx!6`)(hN^2y&w at AzMTBl|GqfC6<Ur->8WyRSv
zTDY~e!s}k|MAnyy=b4waS1ooI%w<iUfL3-xbCu(E`E at XG$-11BsEg-F8#ZXow>HiR
zR;+SO*dYA0&f5?kA2b)*++*`QuK9V9T<b10b-8nwTHG-Y{MxG3*&&jj1FcC+({XaI
zM9o?Vs^BA1ULk_<1g0=XBDofLpaINB3yKeS`5s=<b8O43 at O@Lab&Pe(Oeg)5%~T$-
zgxbf>diA478xtCrU2s8 at 5c*YM(b=09mCHJ1 at nGsier+8RNM_s5)r_ at qsMz3X54#jO
zO6V}k!D!L9+F&Rix#CG%+RB=XYIBT?!P#8T<ea)S9s5cb-L`7d73{9;_M85sm-&jv
z_}H~SVUvwz3wsvk+ at mZXw`0QufsK_av#Sr^jgtvcM%@vOph at R%7_Ax;KC at etyNnjA
zQMtpSH at N%N$TSE;b|r~e$)w%olKM$WGZ3Qo#5*;jEcekn)BYgDaBv7>H8_uXh1Ae{
zJa!9PPH$(cERxGL5TZ9p{V_Yk%ax=ZuS6duGy}ktm-#!nb_N?L at j$xCl*xf8bQ&tb
zs6q+-(4O=Ue`BSU*MPrMqZ!clrQb=qGO|VuX at Q^v0biu;qautdm9QU80m#PeDxiVz
zPINK+wYQ=@V?2T|Ehdq46DbrCQlWCO#3yq}3co{E2Q!QV{0}+^!sc^(<*o7gmnN&0
zE}YOhXHLy6H{Gyx%Y#$b_Y{_|Tsvjg^4i+jkqHNtck}Yc*Vjke#p%-?W=K}ZChXbs
zY$y~i#EJZm_YNP*&o3;TP?Tt|S-$n+=cS8Ur%xYW?=)#|+O%<uXonj&=}JjvPC|bm
zV(m6 at Pf<q{E(#P)ukMBKrWVqlHaWPHT&4tPYUgr9IR2m1xk6oP*Wkx{gqy_k2HzL%
zK>dj}Y2cf50B^IwAE*J?a7%H$n!K~LZYjM7mNR)%s_Yy>`N5E)J4qi2F%m5mt0SXM
zor8iF$!i_X0rdssLj)>@K}s`2eHL0O_PdbJ7xJ>>A+I;&8yqNUX<pdUBF#>ePj6Y+
za<HYeq=ikZNC at BCm>gV{+%!dJw&<p=cyq;6oyDwUN9gyKlF}9_&qwc3|GnB$qRcIA
zX(?sjD`|11)>b6`L}!0ew}}ejR(4avb31oF*RbEB)0z*IlpHW?b(YjknWsvdo3V~E
zB_*HGGT6F+6Ap(^H!EUQYzq4X0~(Bn7Q><1r;X`QDHbETqXP#FrGwZ49PHY78<5*U
zyCFn_R at 09-Qdhbd$T*$Q!iitJa15%$0*IWB5o8mJ<JTB&$4ZLdbsPi5hj1Od0w19z
z7E~Tzp(O$KW%a}Hn7Sfh`J|u>D``SvG&-#UCyDqBU1_L?Ng9u-|Fl at 2J@r^%K(Fvh
zd`&GVw~N-(5>(R$KAy_s@%pNDT8NZXBLEGcO7(H%#-u9afA at HX6X*e~5JT`uFR{>Y
zn9CQaFjQ(<;fXf`k>quU4IS^NCcv$TGUNrs+ww)2H}FO(BWbhftyB|~y$$E6bpy_+
zX!Udx|32=;qRHQk*P?}}QPVF at w{yNM+-x!+(XYHrvKbK<r`#q<vMB110nq^$1p#gj
z3mTBhR|Gq2V8&??e|S;Y6fdwblfmP(SeUgi$16#0Q{2|9)oZ;u(Ojd+37*1{<F#*e
zGQ*f0krn0!^8{va=!{y)q;oLl_B-5+c at 6qFvmm*p*BJCxHV7rbkZdr?qQUI$G?WE$
z>ai%;b4nbs!f?=Q5d^K)q_c>*v+KQ{60gYe^DIu^Y-DlP>OCO|iN<89s6sB5-1iym
zVnM#X#99%TELtYIjTIMMR^~IA1$<KL5q*N-5WKb`);=qBr)bg|1Q_~7lgPd;7#v#J
zAZrEDTH-XA9y6Lns}2bfC4Hl85pD3b69r}zB&fvn%x)DL++IQF_eBFSeQZUpV{Odo
zGZyBTEp*LrmrW_E$<4bv;Yt*h`ekDwgZC*jS{FL<{hqo|O`*Z!6wL4fDHO#*_oWg4
z>IuHmQqk!)UO2X++$4eUIrDYM5*l-#XEjSgZC89k-G-uZlYm!MxT;}^4XlRA7!1}I
zI)hGwRq)1~cDKvecvf+9YiHe9Q#=$7i&kc}1?)j-4RbLqs={od$)Z)}GCg3g^hSZ%
zjmQXw?iQ3=oqk(R(4J>3)RoF(&vU!S-?gJykjgKrh_ at 8Lzo2byev#KRp-?X(!((+V
z6DQ`l5Obc8^NT$OQNPz_5GCC>sHw&k*vbk7(PUtGE^j_7DUxhfvyWK=vfgKdQ;CC_
z4Gx1<i;{@i0?8$T`-BS)(&3ryE}KCz2=I;3ioj%Q37Ac71qM-<Gk$DGp7y?R&b4~K
zr(k?;E at EdUtTBfq-xUU1MX_jWuBz~N=<RwzHt1^Ywy80_wj!t9m&aT?LZ0<Y0?ug2
zB$hY=0$f^{&HWQSQd5gYSPKPvgT$QuCWjuLez0E$Mfq=nRxj9?#iErgGL#Btkx3_B
zFz5KZUU(8aCD*i|UFS69c`=O9Nx7jM##$^G)@Fyvx5#848!a-JC8M*jurutIMT at OO
z>o<E%whpVqpv}>1Lsn5+Ry!f?_|MvDg$BRfn at 5?$*VcEqudChi{8_t8JuEL+a<pT`
zuC42vUt3f)rC1OOqiA%!%bX`it at 9fu@0l<~4p&8TP^}!3Y1$NXK}~+pWXr^vW2Hiz
zc?g<_3LuBH!E&$?9AHe0kRd$|ZI&2|OJQ1}eQN4qP!f=dkQ{?T7#v!mu3iR7q7%s#
zi_=q_?f{DkzB=_;@NAN%WThb3>u=n9WyJQ>hX-0cA?0Vv5w^Ii`i6tMV^PVu?t+UC
z_Jvr5_|6+YT{LF%je~#3f-cN{`tupH_ivwc(Ucb3d*WecaJNt2GbzUfQ)<!7$sH|q
zrTIo=0X&*5YZcLxTF=Zy*UmH at 5pJkzJ6mVH_}wK-Zd=}AwJ`aYZ{0KDA2)x}Qt-+9
z)Bh}<%h>gIyT1EoU{ZaHM=AW^5oXRwjO)y;E7AHeyucdjWZ{ME*T3>ghR at -?jcpVW
z4%#ik>kNU!upGeGg5pOZSR<Pscv-{}Q3iG_*%h!gQEO8CsG7hE7mFz6F%MD$M+B}&
z@;aek_DVO!n-<Tk>dDV7aoP@*b`%$t1uDmFd9b at 9xw$<yZDGsdv%I0M2{m)7N~-g!
zYyNqE=jEFxvW at Q^-Pbd-^EzeVhnwwP=@TZ?346PGUVWM0<k#u!_JCuiKV0Zfls7D?
zC>X!Fvvp}p)LP`Vx{KpAq4M%jOZl?>(aAdx9euaUzWIktzOHj-&p!1;8K4uifv71v
zxkq{zEKdX;X&q<<WbcEHiag&5p at b_9u+Gr6jHR`{L2JZ1BjJ)x3m#x7Tm~*G^#LY+
z5S4R1sYYLcmPLH|;ZMBzqTeDFc$D9ehL at e?EPUTKvrW=!y}|0R@^=e-hL(Ff%?&f=
ziWjU%c)umJ&6H;S#8+789(WWV=nmNOZ2MY0c(x=j8vM9Z*`xf_;q{bx-A02F%+VRV
zGvs{@D>iHx{LsP1vHhsl2%Uo}rJUj=3MGkJPp&f=ZD$f-9aT6N&ma|WE9lS}3`i%E
zWc!h^?UOXb>krbFT`MH%gxg3(>+nr6DiiV5P;|-tzzYOA47cpS1<2!~fyF(}ha?OP
zCRZK2gor~V;Q(44 at bQ^A8UT9~*W~@F{NDyd5KXM;t(XY=i{anpf6A*VZUm5O=Q@^L
z*9nX#rF;K>?BD+%489hnY{3C#jm-%F>`yBuPOJbxXuxS>w;fO(C~Yjx^Rwi}jY`rl
zcGCm<)v^MgqaRsv$m2H6=t9H98Q#%*m|9_C%aji}M!Fgk6PHcoe>es}CqOTieqI_e
zL8(lDuirhmg_q<tWi0K*LrO2d-V2xw_VRE!l6;POG-1#+3`sCPpkHVjuxwzdyuP9=
z8YRkXISeY5#S2^gMJ>%m{?>(KDqv)h7LOt at AF{W-)4B at +;8u!@a|>CZpnID4+SAa8
zIAn{r5x{RF^mvV$_zVOAd10d<D-=5xC!8OIfrC4%b3l;;w at BhK8xW`qUQz}NSiquS
zDm at PHrSOIXdQ9Ka+ur){t=pEWJGNP}EALorR^^??j3MJ=$~#t at MR^DAr-sKKGsu#i
z72!u#^q8U0 at E9BiZ5CFP{!uUuzXorsv&r4cEAZgbF8|zO`Fyz+E?%s<TedmOpMP$#
z<5yO#{%SU>zbdcbSG(o&&&|Bglk$({OX25Tg|;TTMr2LPDIhXlMtOEup548^h_lH&
zdpLXsaRSVokLw$sP=5Yc&(BUGL~Gw6ESRz7%4PkxQ>xbO&oSpW%N)+|!lj2#+<5+Z
zV+yRgzo0htPxRf>qI~aH`v4%g`<WO2>!Md!?(N at XzL)lBg)w6aX1%)o#uJBYoCVfm
z%xP6etlEi7sW<o(=1R}enugKySxRIfQV46aXE1&_p`q!l#a8$ZkGo@<!3166mQD7Z
zVJr*GWC3}^d$rxr4NN2tD~$S52)~Ha;lluQ5vCtN7F4DODd1b+u0&9PP{Sa$hlWEK
zgCY&I!yp at myxMM{VYI&n<8r<8dD)$qxN>Z=W=&_a)%K)2*AEzC$IqMksX+b5TtF^8
zCeAnp+)~%E{(v$$mHYuS{y;!#;|F%V4*!0a>p9szCWJiKgUMh#Zn3@!$JaXdpSJZP
zG?B&B2i4aozY#Q-{on_f;3rR>9Ms(?b!slh2_y$qj`P(N2;c?;2zs(MhSd=oOv&el
zBLy;^Lg_<SAY^d_8gMPNO42r8tVYl_Bpi5Z at u`5(519svYEU|8L-QG=7!pm8N<#2O
zA;akQ_>TF<%rZL)90}qXzEKUKL|+0(0)N8o&hHvG!7m#9E*o at Jk~6Y>%8{*S`*Vzu
zO+DXe(Tb9-ggMP#S+?ulwKjWReQ9y7MbJ78Mp>}xv^gynr^8eCA9L&6LGbtB>9r24
z-dR}E7Hz3SJPw2jw~>Y7)mriM#QUMT)dgdUJ*_Cj{<CCTEI&t*-Db0A;iO9FtNf8k
zrM4Wc>=LCh6WaZLWAU}UO#2PHSJt|~Z%U%cQ at t@auVrynuFUjBO+B5(6D{UKgWz?U
z0s=G3j)HJg?UI<Ot+2AdAV`7IrENVI8f`G?;GZDd4CGp>Ir&|kU0wqnGf}-tM60fc
z<y#XSl8I?W=Hf8~P)N3DX*4F96|wY1kmYDHBE%eyF$AtlF{@6Tl0b;`yl~nkPhTrV
zwgPB^JTCbQ>LFj^rFb=Z64&rfe53-SSQXKQZvz^!aF)mG?3lAdk0gb8I!C at W|MBua
zZr(Vjvhwu}n^!<e>{U)4{)6&ctD%>%!+&5=7MphH$4W|hU-{=-`>syj&z4M^P%de$
zHm&yRUsjZt3$oQ{9=EJx$NU_ZzSM_;xfhT3mq>EJ- at +Cws)-w_>jV1SqPDgN7v+vM
z7v%2#$6(=Pn>7$FoD>S)W(mpwGAppkrsZq9iwd7!arUxc-s3IZH%_+tK02)KuI;#P
ze@|Qct|vEbXHxS1%cmu-x0*2wgyz=q+bvcA&^epd3oDlIZp7D7hVk7NeBD1rw#@EM
zZ4U;V)xo)sbxf*rY6}`GwE=)z4D%P;pdoR=|5rod{c#BKVBH-E{-*@TMaXsxV(CB>
zq;&2B&prFV!Dk91&nUO0UV0qv-%{P<FQp!3MfVmiU%u$`Lx(<>Tb1CTa?Yw>G5-(P
zq+g~=ln;KjiX9zff6o7<f+-69A at L6vfmcJ69<z$Xu4*+<jbQZ!J+=x^E&v@?@YU0?
zOvf at 5PIVPB6mpUkVh%`D8`dBzO=T?|$`^$eFYj5ke0Gc7u~j+xnhWVzj<M3UMN^kA
zUb%2yc-sqCY#X0b7tnd9bgY=WFj20Ze96j%tu<k<3;>1Tl*U?XtfuqamLgf}h8+_!
zlC`pa at rp}3gm~+$1 at mV#I~=}ht$%vgt{vC1?|1EJ4T;wL9Ha3)<qH;w<*>JoTb+7K
z*|fd$D&3J;Gs^b&GEop6d5zPyPtJ9?#x#!~UuCmj)Twn(nzm)@H#%}UyUtoXZ*o2S
z2bKnOzVUTU1%hwZC39QzotQu34Oi-X%@r}B3OYd#e2f1Idnb8lyLsFa=dz#`Bt{l0
zIS2hk;U1<kFVbJP&l#r-raqaoUHaufN#<|+9C6m1?JPKP!7k;$m}S?3iEQ#oH~>$@
z=9>2Q`MY*y at tQf{maua2xEoOXk&0MI2F!bgpeZStP70bySg9rjz5mMssDx`zlN<Db
zFAJo~8n=`;l$TZY8sw4<G|`;bBrkJtbIvoCmGXa50f*C?QdZDx5cyN0y`aHHNF&mh
zvhkE<RLyRxocz+#iWu)I at 0W=Y<vP>hVx}YahO#7#<^d#4EZ}yi;am<k#ipJ)$V%)Z
zpCxlT9LpRVeEw_1St0EL*)ubIuk#G(`;r>YUh-ua{OPE5mK`&9DipuUmut at kU+&S=
zg9`XKO9n2@*?@Hbs6Y@)S=7g=k%*B_-Vul&gsK{r23OdF$OMEGh$q)JDX;zDcIE%l
z_TGU}Rq6ZqoO|!|$@H3OnM_SDlgXrKQb<BbASBd4AoSjQADRt8MVg8d6?<6~EGW9M
zu4{L3-PNy!-BovWb?pVnTz}8GlR!Xs@$<)za_8Q2&+VtY<$0g?#~a?fTeo&Mm~b}!
zc?DxH`x)$lA>EgJ$m(ai8JT)aaqXnp^?q^(KSxXc5Yl}_x?VZ*!3{)y at L`f!wYB)e
z?H~l&@_y>lIC2ra at 3FE<ZECoBQtgl_QvSnu+{;7HNy?Ri3|}rV1HoHItqj!YOaBTs
zQOq;6lt at 7YgE@`L91t0VznGAs#lP_6ai3`YMVIRG>#9n%ZFN#{UX~*}%i@$PSy=w^
z?4=FGw}rF at m8q^kr^INX^Z87fm06?Gx2~Ff`T3qYcI)W88Y64SjE*jl=C%|~7;Z|-
zwT`Tr1v{NTCW9ok$03#Z7#I?r`iy8w?#|ueX{jocskLVZ2s{FPh%&xwRlg?=V>BER
z)E7Z at X(PiWRXRakq53lr>4Vpk$ZaRo0~*;O6`KZDbj37fFSKtn7k`pJ{`(%a{x7UV
zAy2V<I`FGkqmZo9q*{<?CHZrla6&25`+NTQlfW!bt0fYJHg1tMcAZ^2O*Pbqmy3<G
zd`;KD3U5Og{ZrUS$1}`l^cj-5F8gD%(fN`ObJh|da7a)u2u6zwv5CKszvIxSF>1tU
zQeJuoq+8e^-4~7C{zZM^O#dsIJLwaO%i<XSgOH!9Mc^%?UOXy?L!$vpKMd%?3yxq|
zMm!<fTR#LQib>K!BXK<vX*vX57&t(f12dY}fNo?VE-ozg1eo~?Z;HoK4AQdJ)-r?>
z#o{+D<i=-i){bABle2cbc5|jA5*b-ve`YlM<2zrLF19-WIUS$V-Q~RTMrT)d?l^!?
zIdxv)P#<}*PrjV=#A10KtBuiFb&SpG$&1CLW>yo<_GO1PtXbOUTkLb?@5$%i4rJyd
zm<Fl<d4rrJZ%`;Jm*TOR+G73v3?n9 at 1%RDK+cAMhvfpfl8DD&Em9|0p{MAGtSxT-#
zeZ^E*Xoj|WZk77@=-{Ct1_0muaEX3d)zNitiF8zXUaKa`zZ8{?s>o~6M6Yw2Dn~}M
z56(H5YOZLHX5Sb|?f?+0ST>qgj@)80SB$R6zH!cBYhNEJp2NSy{4}z1il_VzQ)>B`
z;+)&&9=2NO%B>N3TP02!A*IE#k at WPDLsm=0=;EB7IX$#WH2dbLWJGz+P)#xaT#1Z7
zJ%^N2>ViRYF~!hBW2bL{P8(>n0_+OB(sY=ScuNtwhd~Gb`cX3j1|k?rX?u_qR*9qj
zDl!<1!h-T4{rSk$+S;kPzt2-;DoR3ZEL0NB=<5xYRQmHC4zdol!(cTTO;!WeSfcb+
zpO0BNbCMkO8qFJhLx!ZSNs|R+d<%>o%#4h(l8}FdEp2HkV}Qk6Ar>p}V_@#LjG)hj
zkJ=v_Ax3L%6paKQ;}Wn4V8RYC0%IjBIFSOHq<w^HVTQ9s=>c!C4^~NwV7hd{vm{2?
zAC*`MzAYm)z}6{BgV9n8ze*a6nOc3ZD9u-l?Eta}NU&|*R7Vy)_aCuLtdZHd7XGu`
zOoQ5Bcy-t&l}>`}8f~lZ<p0%QCQVb!AssJVOO$gI(PoZQN%UyV)w~3JEgLs4p2M!2
z{KoJ8UEX&KnNM22+O_K|{wTkPKT6jSZPrODKfdg;kNIc$+xchd8WX>DU!P$zSq`Ik
zu)@)q0?&LID`q at SqJWo5r8lUFjDL)mu|NSNOM9M}+dVR>vKs6fm&zxecOtPyBF;|Z
z+V6k%P5#hK=JvbhWimzQUARTKnNyEm_A#lv;2!Y)sqHQ<#HQ#edjrvl13ubad{L8x
zGZ{IHju`y#$wfE|SH*wz5r5^|e<WS+yu*J=BA>DM`4it>yXt0QdWEJ9jT;Xqc3=79
z;naHrC$Bp2iA&rDR^hcvI~tt#de-;1VUdsvN(B#mK4k_ldHb6%*c6bX8lLU5{{?AH
z7|Mj?!h$%<_OiY44997OBO^{kM1)21U%4aW6n2zLu<{dDBqBZzu?GwtKZ_FRJm>x=
z=|X$42mAY<UoOI&kRr$(;7+CuC2A0ZqC}8)(}RBWD>Nr560Xph0*b!@uZSAL`nhL`
z<Ue}uUjA+VF#q<woSvyN7n!*>^O+t_#U++!l}M_~${2-Q)2opyn6k1O<yiiR+01og
zH`mP^=bsz0atQvBiif3AMw=_+p<}+5e!~pk&>;bSgj$I|YVu%U$k4#+>t at SxWk_B~
z_#Qm}0^k{tv6W(Dh#>%HhXG8Z)HeckO%Jz7l&%)2F&45DQmV2tVksg1=LfpV3bX2~
zcRrozzov6_UU8(P%n|brSL|l$5|v6N^Xw4vJPGa4Xcm2eJFEQk+E>S_)xl|Hm*{??
z<Io~-eO!ZU+VKUaKzA?7l~C8O8evG(yHLd-Vv$C6Q}?vsZU8jLBL$uu-fE!^1*jut
z8Y(%yE|hYr#z*_dZOC-&pVgY6u~b{fYCVxzi#m$)hE1ChE}J(Yx+1-5ZY*<TYOXP>
za(t10q%E?T+<f`AVJ!s>LkeP at 6JiC8{J(p)eO%@n- at KLR(%hz8^PZQRs$1TA-j?sn
zv*fDs;RN-Sbd{G(EYHxT7ENLglyBeA9`uyY$elH-y~txPVVcHOU)kBTtg$?n?i*6q
z79T#LeeJT2?((LQSLC+qGiowIIo#8G+OIFJjiE^cJuvELk?dZ)4+|_BS;%ct4^+i?
z(Js6hWWs@;rGLu7*bA5<opc~oCnu>w%4;l4SA~AOLA);u7$<^sWRgm>7Bd=R6u>dT
zhgHl9*vJ0Z5df{|+=cfDW-sCW(FIO!@d;GlVnH+(&K~r$9QE9o#UHDRem|pclFF*n
zXv!{q?6Pu=MrTcYF{ZL&{J6EuyUE`(hk^yQlZqpfKb?y6$M^^MW1CN%+6-7k8)=M_
zg_CLvv#u<vyn0A}!H^*Z`9uCuTOz(`^OgK<{67Bhm78ypL at Ia9m{5<=YsJ+HmlXlB
z(<|Cnu59mELHPSNkS at M);*4GM)SB}Ac^b9OrYcBJFHqUYk+oySR#c7~m;BjnpH$ma
zuru)!Iey#dj*ii{@%6$lb6xEu*V0}2%-6|_4 at vB-S?ck+cYHc};`s3sM}NA*=k+YA
zo_<xu-BR+Rvol(|^7a)g+S~XQn#0vsCFh!?-erc~oQZ6s^F_<ibEwG at J)6O&La&Am
z38_UH>JNZPlL+4 at DJrlRPPqg0$$_8&pBJ7r;TwVHNFoJAV)Bz>I>JZeU}eT!<fFu<
zI4}E%)TEZyTt&!LF_}zik`}BZWbH>q%|%7cOouZw)9K30bWj%3K2Uld-^PCG&29=;
z1oofoc#Sj`6gD*#`YJU4kn7mVCvWtXhMR&O=^oL~`}c`{-ovk=XDK3=OVws66}O~P
zX_yo>7Z;;&f^cS+Gn33ZzP)eD_T$I5vm3V`?|VyK9Sjf6pC=>og2INz=}j4)Vn(ju
z|HLiG8XERjYHZG_cTAab$5i`v;Y@?%5f{dR3cN*dBLGE|L=Fj1A&fmjo_oAJClN>b
z!9$fq3NC#!z`TRK8&f-%_bhh=?E9Csk6dOq8tmlqee|cZV)-r0$jA$P9LzC$)riH5
zM(`gS?RMkpwe3rnv=Im<4ny&WYd0G04#T=s$GSEIYTb9C<Act3w at TyUF0=s5K<G97
zH%&VtrXPA|f;>fUS}I0?&_#6?AdKlQE>JP5qVK_n&X6XoB!2fm-?QW@(sbsb2m7`@
zixReEC50>{4*u?^GY=63e;Qz;EN1>a-+XuPWo0+>KRk5i)B{9SS;l{pSzeymKmQ0i
zB;|ks?ip+V^ey7&S7O9^6EQxmYb(=BPIhgL4Tcr=kdsXB)-FCR5!=c+&r{tnMu|kJ
zG7<L)oOE)`b2Rsw6IPN8JU^XoJvPLbgBxGRn!*tSwj=lp1hx)S^11b<R}!C-rgh}H
zS6_X#oiQc;O`7<}Xu<W25qlbWFleshKIzL~j$z*t{wmaIWR4NnD`4L2YrnPqaI*01
zD(+^$4nl2>UVINaq|z5I#J3Du)6zi@!<|$Yji6aE!nQZL at eAXKxh0ZicVtHR@B3Gn
zjSp-v8Z6PV>raGhH{9{yhUU7*Pedy>u$IAZkg1P%B92-|M#d-5-$VgXJ;e?$n=DCe
z%XrPe%)zFw?=h^BpU!{33Q at +-a_Os>1Gb2ci(V4FCVEfw579qGpNhT^Q8Zbxi=}G6
znvsI~g`#_1QaBW_8K93!MTsg#FcQECPw`N6a->ru#0yN}!cZ=Z;8a^-Bto~s6pO=x
z7*c{5+g)NyR1NZwTq#_KnV5560*$(uYGQ)Pv`SVDn<zvWT#!z}EIlFah+dmSEmA5e
zLqY%wIgGAJcN)SdjhHl~n&Dm;cKNhfHCdhs6+`mZ9Q0*Z*n_##h5`U3mt;%bVm%AI
z36aWltan>l&;#Rhc@#a-x4+UhW3fYG;$3d7Ri`GO$do379eJ81npEkna-B`5d4!PL
z%z0PmMe`K(S>pDp>}aOZq_C<A*-(y`REl*{wL~G6b5c#JK2N=If;LoN?QE2(($dT-
z^N;Ht*%`KUwO5%XlQJ12`i`ngvUP0MkHKTba=X)FW7e#zjPa-P7Yrpgv)<Bh3CI^l
z)HwJd-4aEP%5cK1$Y9qH;KB$qnayihHKnO!ZnV-Bt=9Sv-gkWO6b3#@v0v&`xom#3
zC$&1G1#Lp1bvK(+N-IrFYNTu9bw)0Av01CJuyfVs6a^<{NJ^T{Z`NtdY)G5>XitGJ
zoi$pudPDZm)HE%NfEIVmVGD&ArRHt1Nv4rN8DdzDWVt-4x%LjZJjX#u3z<CG<O^DI
zbftzCjXW~uwimL%@-8<NOO<`2QnTE}xh3KpCF at f?n9sifzmY}>`*aqQB4w5vfl5lO
z?@&n!5M at KpoU|9{F~0l<@<}oBH2_2afJ{;@K|2v3{b(cbT2UZgvX{Y56|Djl2h|qg
zD*=84@*EBU@|w0IiZG;do`6)O&aSAjU%LW*xi~5`*=WD6$z3HjxRy3=j)`STjg-jJ
z=S?ll7 at H+kWgCo^NS at VMkgAsJEUX5cz*@CIY4<8+3bDdMIu({2mnXi(XCFFZ+~Vl6
z!wl2ntZOLUw{mS->hPLIqc<<j;f$<*ga0 at G2LH*Q<H7RwVeNSab+fn9<;#|BF3r9-
z%j6qf*AWdC8r0_W0%&VSMVf<UIgeec+Lou*C{)>2qfBaKQaA;$T8u`m(MdQJ$usBV
zI66j=P+3`skQ-(!E;8zBTH(H{918I?JvU?ZYlr!N{(k<lKM+UH_&e4w85VOYWPW4F
z>KH%rhJbUpJ;getY30UyFq)l<ZE<0i>=doWc%XsXF-Sjw(8~ibR#>E<_B9t)v#bTu
z1F*PmR+`7aQPnTjnJvXM7ZQ#LQWr-Qb-^~rM%~oQg at 6hw55kfW1k@A^bZoGisUj9(
z;NWt5_Pc8C8?9YDboA=+L(I7~s{Km8-#^>$+JEy?ssk$j>}J37K+pc0_q*z|?G2r)
zN4G3fjk<@OwR&{(QuUZ8>XrM2I<5mf`0I at 2nObHrGh0$~>r~j$jPs!Q<^#^U$Hpj^
z4IjOlyxw!b70Wd>bgmiQv{*al{u<Q*rGIw7Pb)Hddd22B^oscFsyjATgBx2jwb__=
zX7A`VlNue_^+J{8dFiR{8?9W%Sz4DXM?YHEf4|9lan<Fd4x70qi5G(*0psrw<g1(@
znvB?$xrmp%74Mq9E&+~9XAit~p}nHXq7N{5>4KdW4WD|rsC14WG;H|lXgimpq2nLS
zR5;j6YenH^M7=^W;u-xqF|n{g47(O0*5MNdQHvT9`vrdCScpKha{;bRRi0oGCN_GV
zs7_p%jZS3JF}r{$H)dx^>$$qRkyg&lN?J^t)w+5{Hd7Xa8xv{jEmpmPBND%|EN?oa
zs8z~s9LKOW2Wu;esWyNj>~&VE3b<UU7Bxp$k1^k8&@oR{?>O at l^GKqZduQgu)Bid%
z=LDb2RPv{9Dh_SgUFI1z;_GUeLdH2f+|c_PCtp2U<Mu1a-oDf7M6NUi1ph>=nVZGr
zGB6sHgZASk77=?!r#QmQ8a`PAo_}tf^%1-4aydz7lroBkRDcJJ(@AuUgw<-jj2F;E
zfFVsxVX3%qq(f4~09}1jlVZ`RSc at hV-H?N`a`!(n6W9HVlYN>fb~D$w6aR8AtYOO^
zBkND=QhI7TY^ve8QaOeWJ>xHM`lLD-CE{oP_=DtIBrf2J!7WNB)c6Yv=b89PLTojh
z%xDK1A%3w at G!`vkmFQB at e$gGGM at 7A84@nU|Y43%?gp5e%S<ztdrMat2R4zoNv+-q=
zH0FP8|NmXzkfdscZ!e89ea7iRd=ezfbNhN~CxJ$%C)5o}$WS6p;CK433nKcjyM!GV
z+usc&QzFiRmh at cq=v&iQ4oQgS?n5eWQK%$@+vpCRiN~oeoGys4yl|EO)zU$AFIs`@
zB7lqa at Q@g(4N)8yzB|RlRf|So3|ItY!BwI|h?)Mq=ylPDki>o_8dwkW2;vKWVLgRP
zLLq_hWC-6GjKlw at ZT2GV<6`aS!u_;8Q4}AXCjyG^!u|i(?f+~0yx950F=|{pBce;v
zo1{8A$8_}H*5bdl;<<VZ8tkB?NB`~2=ME6oXfuw{2KawiNZ?dGCD;rlSn?;&9?E}n
zvDJspRv5(bbkWr_l!7VAox_~F(Tg6|_kXB6=wy&Z7~ssbT(7uW(Eeb3g>p-^-T}}f
z+~nslT)ut-2zQu&uOIQqzvn1vb9_V=f8=N@;d_#x$M^X6`d$>^j&VLNz#U775BnV-
zeT3Q{C((`&It5)X4m+y`R}Uk;bR>GA5aCN at 96={RKm|mcevt>k*@Yay#%jo(kV~<H
zCdcs$yOXuCkNBw%r(cwUY^Dl~t87_cfo1Eu3jXd<tu0#{gax@`CDA{YUR|42|7CS;
zqWRIqcf3KGD#ryX*0s{*dNRFrRKwO5y5K?;^M)@wIFv4LNStU}x#(bX+p0x3<~_ at Q
zx-7TSsq7rTd(4UZSDqL?ucG;eWmpb9xNP>Sw&sJ2R<<?YxCnOH7|36HF&@!aUC3rI
zD$^M!YDhjR1Z$>u>Es;7ha^-!CTH@}(fjV+H=6zGn&<s}FVil?M*PoT6aV(c8^6V8
z6KpM_vvFYX%Zp*A59W{*`T>(P%Q!KmiJ=H6OkZrAi6`PQ=J7;BqCtGx=T5{NwT?v0
z?E{9S*PLx;dIPy#q>EYq=@OpjnS{t&p+h7cg8Fn7URD&URU<A+1`?%OdVL{oTt>&&
zfjBf8JC0pq$UwLcF_nerZ*X9n-j^8k&j5|~uk_y_prg=hahJlxiv?J9(Qaa74?mxu
zFMey#Ms{-j7~jY at icbYRe9RWJ@i8&Oi2GMTM(HIF;eW3M(SW_)Eb@>qv%8m+9bSCj
zefK4H4y>)djVKN;e)7pD6P0|ouS$DTtv(5EGKT(Yt9+y<5Ys+RuEw%gq3G4d0{r5~
zwXvkVke7+X44zvKJVXGI2sQYkKpU`>!8O1_x(hR&bm-#1Cs5^D>M@%Ao<cCVz;Hs5
z_FfM*g;Y*-H~5 at 9(h?p)qJ5o<CFFqq_Ue_o_ows6-cAtlYgfEFgGnr0cBYtwUi}0A
zCt at 2u;VHh4|2NY<_Ocb#_by#t(6Kb$khqb%Z$1B~Ii1fY9*spozbE_48^mzg2bb$y
zi`Eq0arCL7tyllWQMYlz!|iFeuNk&(R9R~OH^dhd`kxE7pKLryqkvktz^F;>KlH|_
zZ6TLIUNT6j#{M5MMhg$hX at A573EzTOP1r&UB5PT^l))aw6Z}rHaYfHn^McKzS|7M|
z)s$mTu4feWP2>i$cXRykO_#h{b%k<h!4f6UHOvK(!PDn^6ZvcUzF4;8rp%(nr6V$R
z{4<YrPU0VYXUXiemLUq`wg>Osa_QmUr-#VGwI#Jg(Te92^eln9QVP#R5Hi47^oqb5
zKxKI<|HHsSwO7Hco_vPls8Qsl5r64W6?9^lQ!D~uuSk-6)k{}h^-^Nz?%8(x?A98$
z`#_7S-I%traW?zLk&T;<9NDz-$Ugr2<NPqyGuzfYZu^96A2BJ#OnDfTPaG#o&P|WM
z>daGb?3QG at _qVjh+%k`>VkrCJ#v?fXp@%j-$^XDVz4 at U7%O{fiZp>%M{wLt@`yRJG
zNN<$kdFtR(pr~NswHGEG2sG{xsswHtw>)43tE37GRXY6i8`AG2WwDgfen*k)&=dt&
z9pD%5F6~*eq=(loZ!ei-E6S}{ZL@|e+s(#ywl8TGyVrQ_<k{CN$oPFHPVC$BC+2T*
z!>}s;FG)zqkGo#nxpVrAooq(WlBFZsmhdm$zN{?YXv8 at xR$Dz{W<j3-AGvPG#MM{M
z>N~M_--$Q(@J|u{D)JU!C4A5HojYILwNnIE^`FN`zLOx&7A&$k(2<8xrYyMc;TOW!
zg7RdxLtAD+W1CA8Mn;3c;z5vucE%d$8vtdBKWKoy>k`w<r&5F at 22c`Z{ZR at e6c<CH
zH?#E`hM$POuas)!>CEu#qt{kX$#=8dQ%KG$^NzSu5<jjgFz6fi$UZqCz5DN_iD2Hl
z{IiC?8QVhE0&l)GpV|MGUTIDV`6 at jP%JhGd()GLE<Gc2!w-2e%>BwGpu}T>vi}<U}
zPPWu<FKPBol&Y9Ae*46xYvznXGRGOI6*_(OhB1lH`0JcrM45>XlSO3ieOj}beW;qh
z@(C50?sjmD(VT57=AY;H`iFas>1MM+&o+_y&wkOt?=X%Te|=XSf)!c2MpKz=BQcCm
zag5N^rd!wFMqsE$8l+sBxKJV;;Gm$mm9v4o9+(m-jE|Zi1h5O<A8j5M3I!o2kxpvT
zwk_;W;~A?wA(C4eF)I}DdUZF_jP{AJ=vM2ub~)x)Zkfu8rru(i<LKH-HqzrJ0lqOq
zW-!PSw&W&Uv4FzR6r=Iv5*V2{YTr6()22y$*H)pe!$^(!C5(K$Lugy?m(Ty_4JY}e
zao0lTFN<Lyj+vZ$_Wp=wDQxDydg~BKDdS<BKESEd$=jVi=(#zMP{zbzS;s at f=tIPk
z%X1HLl1gzW>7(#z!fPU1k}sg|31JiRKpOOulfv_fAXibIZ+rj&x`FA?gB}^BpW^J2
z&f;(sfnP1T6rThfrjRInHon*9QxLu|HDDmSKNgnH(`B5}-^UGs)aS`=EI%f at ftuIt
z4A{J0TVSUS$a-?^*+m at O`ZyrKFAx at k#u^hmnDqjtsGs#KIm**95u<%^6s0saYM?Yt
zC^eweC)g4P$^png^(r#R!^6#TJ<V^wKGSX%r)^vG_j`b`aCCdW;Qx5tzI?Au>RP**
zSl+a%ZQl8zjr>CoywYQFXSkKl?e`xdIkQX#XV$A1_<%@5nqgVGJj>{m*=H&3pNC94
zGgHDgugtSP#Y=Q~mZ8J)q<)t>Q|7O)RAo%Kz!5~KJSy-?fDK$uX#P1VD}{a?#9Gu4
z^>8BoO)IhR;_O{6{shUh0`YJL>m-MJGx4~apW@=bbdfx!(M1lqh|Yz+r^Ej%<sxo5
z;uihTL(4ImHHk(cZgCngEt^C;p^x4ux(E8`33z&<w1;9qhi?EQHa77Z>ARJ(MsT>%
z7l=%c)H0Y3gI{qWEcH|d4n`5hM_?udWSy3W5p;2GM{*qj`rvvCBlU^_(blw{0bAzi
zg<Hv8w5FL9uyik-0zpGU2ZDhugiD$Y(gI;0V~AkJp^X9QvC)17p^g at aEc7I>`)Emu
zLatV;Ns8P|GL@<ngtH>wD}s~NNRxZ!b0f0BF*+Ti9+#TR$mAA_Tt-rl+iXe&V=^%c
z<s^%RQKgtnDXMO4t0i)yQ7%!F&HRTZlR~Ox^m;}sRZKD%lrpSgTc(_fGNS<-V82k2
z%U{rFz~w~LYK>7dO|90NwM3;NTC?WQYJIAnNF*vCF<>%B1i{SPSM>cSMei8h{VZ|m
zBBd*CKm0YLRH)U8#P?q-Qi at J6%~}~EjJ1-)ljPq-AyvwyDP(?pqg=i*E^m1KWx3*|
z*X8J#|Nj09rSgmKRpP$yQc}L_OL2ep0}}83 at R>x;o0$dtwjZQQ{SRclUO9r#{!XSe
zd`I3gDARb!Hzw0J<TP0A6FTNIp7~OtQ7gYByi%=p at y5@UTCMVP^0`W@<z at d&(d$!|
zu3*+9dRr=%=@WZa+{Wlr*sTcE=1=vSZ%5Nhj-!GdGzBsPWttTM>=eaNLm at 4dh_m~j
zTO5UI_E#+`W(?$Aa&XmaNcP>$-}Krla_}PC$4C#E`r1JK*I3b*QFkYCEq9OVyL-?E
z$sDx7Wui_zSr0$dSBbbZIu{s_W7>=O)oG#?qPXZX%n2AZF^LJoX1_RNk?K4&RWzaC
zcj~@{b4_TUXuVPs+Beldpg<<Wb*POOP(f;cr7<Az^25>#%efQ61b7glYDDH*Fvwv)
zEc1a#AZSG3C+foT3)?QDiOuMgMdITQn7K{^83&YH9Co*DWVJ%Y|3O8j(Ez}N2!v(f
z^0I4Ph^!})n*2+u- at oU&@tPDX5i2<Pq|s_QQxvWDSyNJ!ZWFPn^m58ipo;SLqS4`@
zWHX}Rpw&^z5EWT}>0ZVxZVB5<T+Ax#@|Jux$88hrYxL at r9XsTx=Pz at rNU7?y9`T7G
z(sNqGj7)V&3(U~22nmEd)^h%|R7E&NYG_uD9HeHW7hkrq{f5Gj#*_z+0I_S`ki)#)
zdP!&;yEd~^>Sse7Skdvvj5m^)Q*4J=T(@A%q7tPQ4ywWJEcuP7CjT40jlo1IsqywB
zVGMZ?H4FlEAq&Tam&)a=R}k#Hc-w3^a?!Uur{VCSxReFEH4(G%Lx&sqw>qamJH)nx
zxq9i<jF`Yo&WNXV{)RWk#^)vGk&lh3TA7tiNAxYT7h$8###EC at oF->Hi4Wy&u>GYP
z$s_Xy^|R#jcl@^Jry&_$cmv9*2N;3ZUb at XDUjkGUyal)p@<7Z8K1Tz4(dS3H8r!g0
zVucuAnL`o|c3und*7rVJ$A8*9i&L>^RGdUPw}t<p{>f*4!z=h~?%bQD1{o*e;B>ut
z?p&fHsq^L?k{UP`=TRNP`}m6gn2s~lmNU4ImQcy_x3mD^4M3rU&k+3!?ncU73G4x#
zQ79_x;?JB$8oMrU$*ddET%F&}Up<kCSFJ8`msGib+XLRAvBcX)uC^QICH_pTKv;U(
z$GgEe at XKe)1n0nSdL|4#5qN+&s#XErbJ0iO;(elCYV>I9Sqw4yH{3TtimYCGNF4PS
z_dr}Z`~C;)F<zjVqM~MjMIJyKfNh+BgwtQs#lMS}lE?$*NfBijMKSytkcI&BInysb
zGx0cZmh?Yc at jr*YIFchVJLk!+`QRFvX<B at QIsLeh%Z@{Og|mOi#m29A93$A9{H=Cd
z$ASeNHhVQ`1y++!MUZEph<+<f4(GMMQe at wyJO{sF3<B6;AS)&&2Uz<NiU1EcL at h0b
zAoN0uSu4=r1W`mOa%l-#CUotKepv$PM#ia>w<G-wlFi(%B}d(c&6~BwMw3`KeLA>$
z^-tQ3W5?=?1K at fqGB5_?Z}|FbuFRY`NmFIsA=rxV&?FkIhsc3LCW%fLF|FgDS!ar9
zHG7O*eO(5|7crLZDK$p)R2IFkpHi#qZ+lA@*o4FbZ%ttP1WnLIXFws#GA}II`Si7@
z<@}FCj%1;~<&lx6Ie9F>8IT$@(MzA7C_0G(ZT}bFKMI?{gx~mNRWynhW37ey%Mlie
zFd`4=9fZ70FfRnDHy%+sG)NRWF|A8?1~2-=q+6D%3 at cgLBag^ftfb2RuExWv)qlUR
zoL`xuVXk1zDb at YIzv+$O%mJL~+i!8^0IooC5DsnNPh41 at kl@TLJ+%TWeNSTr`e*Rx
zx#D-wZD?c_#3Bg;aRx+B3TQj#R4Ow?Y4AIh;V}%WNjhfZ!Dc at 3J2R%#{PC8&wsuF&
zoaxKD$J&WKb=;b at Bko$c>y|f;KJ-+X)K*tsqj#4TMq+=urHXm}1<PgpH#eu|<m)0!
zulgI<wHChqF2A4u@`diZzGxz$W4+&>=smQFaH?S1tdV0or%ibLFa3Ue!GFu*8!Mni
z>0v>)QJw|^Jm}&mvM~Dx49(ElbYedw6ZGd~ra at RTk_K?|UzrK~L;S-}Kh1`*_AUQV
zE74-|`f3Lmp16&B^=bZLl9ITM4X5|LYRWeCy_%lRhOvSISa24SSs(f~Z|-}K>^}P8
zC67GvNY{sC7Qc}Hax-CkN6Bvfx~#+p8J5HcDJe|4C4)i!B_<sr{0EezkK*a+gNRo{
zcI`~INveWjs)I8fvtBYh2NRwUw*dc!gnIZ2sgOyl2_L~FrpQTZy`v19$*+Q)$-H5*
zMVEhm2d81rG$N|{?#~xaR2^P1xpf!`9=V-ZZzZQ+xpV#Hv$WN!y4GlGYb1MQP0i4e
zOKR5Kap$_LrmEcmMQuw_TXSjFh??4=?Tf0{-p%yo{$cImPl at 86w=I0UIGDBUma^-Q
z-^_o0tHjEGwRYDu<4|=?U2&v7v%bB(KJ%(oYj#c1`m$BA+HmQRWZ6#o$ikT1?|Y|Q
zs5Ck$it-DBFMMf;K>|}802qL;NsuoW%k-dBpH?j7&=rH2Cnz-=nU{VULc#R%+wOU$
z{qFW>&V2oh!|_ZfQ%lw-3tl40l(_8lXF5Bd0s8+}A|TY*;h=}oGu*>(OFShMkig%P
z2g{zhCwV&b7tAlPCI1LSH;r`@bRzT*y)UYhAg!>ANvonJ{~(QkmJYhsOJwq2-sj&3
zNraG%mw*5LzmUl<G4V(GV?bIS`G9Ob<>vcx_?}NFF$ATP_=I%l5YByy-$dUd5g`gh
z at -<%PG_?9+eYCIuJ(3f^Bm%7fMkY#50NtO4!cg-s4Up7;KLju$x<Z*lz(XKV5ae>u
ze8T1em&~GP06;+mj6wF-=Mljlij{c8Lz at a`w^nJjL5Ic;ipPwcOm)ia;BcdX0HS+y
zk0;1-<`E9Ztn7A!!JTf*^Nb(aXf{<0wQ^~h1sUoTwNw$x8BtK5l at Bf}_5*(5&&T+q
z|K85*dxyZD!^pxjR~^`Udt+fx>(*(*TbE9EIc)`=REcDnt|8T)zbMW9=)<{7(mno0
zoo<=B$>}V);aDukZS?50k at c(AFP_y=snex^&$YI&t$F6`Escn`pZ>|7pGbRB1`^tv
z3c79xHmfe6xz_;oa~&o=Q@|Gl1P%Y7*n##*8qh{9uo%N~MI%e4Fk=7-WGQCR)KE&H
zI~FuU#JNZT@}W(W?!~eYC%|biX!chN7W+h6DRv9kOB at iThX_XnBW4bu=CgrCP`YWL
zQL^<Q at CdMeGduSU{-(KQ&g_~!@9An1fA28cOQ%jPbs5^dVp-W-{-!rdYIN`IsmWgZ
zsapLncipkl&itZ at Mfshj$LiewQma4p)E+Azm!Ca9JAYjHv06T}ri4}xcuVJ!ZcaP3
z)NbzZdD{)HQgf*{Krd2K^CrSYQZD_7e-3d+&wX_1r5}+B!~s=&bmUh$$;?{G>-VM?
z6qeqZJx0ao92G^LqvZOdo{|#B^u-JKf2H61I!OFgW3uloEo3INWsb>go7j3wo&IZu
z;%j}~Ev*xUqOO)(>h)hK6kqA<Z)srywTyC1=3OP3C7yd<Pu#=LJnAW`aLih;c)Fvc
z#1rsf$6c9YlngGN5D9mNdpviy%%QU}RLM{#L{lYwl5xSGB}E*3DXhkGM9V0;(GSBI
zWx8Vff6dVduv<xomBoYxAS_%=7*0A045R2<EP};`Ftvq8!8@%pig66mBw#)aN4&Jm
z32luI#9<R)>@=zc4y2?rruf2iuS`SNys0yN&8 at Az!0p3J3oFK~EYA*PED6=OWS#6D
zZZ9Zk?Ns<1FK3v`S#sKiAz$v5&tb3RDtv_1LX*?GO9C<e#r!59 at e7#ggE7h<)mF#I
z-qE8v!~P9U=h88Svo)-)K4NA4Gjr;^+T(RGwb*UVmT4A_up)?liakoU=2|TI{OUsa
z8dLk<m=*0tt2=K67&+eY7ncXD%)8*b@%tjh9Z7f1S>9a<cy~pT;~0nN`=xfw`9M-3
z+Q*wtb4du%D0GGP45~OlYQT#To3tJ<#NeGqs3H*&W;{%Gg~Ury^}#TW5AZ_*0ozyv
zISHs|UmBsQ2(Tw?qG{1|IBC+sCCr6P$89&=yT81meEs at WB*mAd-Mu~(%xN4mrZI=#
zJ7n#`nn&uYn<hVXWq12j^2i4q_W{RrHO{K)EOg31X(%xTx+VXR+ at mQ~j~-i at _-c4*
zS=)&6GV}D=GuVlh?blpNUVTZW$jaDs#3Bm>-N>Zq%IPTO->{X=Yrd_5%NV`D!CCJb
zx#L(~-%~l`nJJUfJrfc)jDPUCV5p*dTsfHxij}8YioF@@pW^syw{q&`W5<@2kHa_)
zIiNqrUr(d6<irb%wHE}TuuX>tymi#~B6#IW$=H3S(c$`3)|6N3Yf9Ni>MmjaF!;+e
zUZy2 at XzGsg{HaSCuSiWC;al0SFZgDRs1)1~f510$3Y<<<@SyfD>J_7=umGUBN%^CY
zgJ~W+A?3nx2Kl3kfwNbjgri)Ws7k>W2&`nAmyW0iS4DozA$F4(GoRWNXs8cWHfopj
zkpCRyzr86|X95?U&lE15@=&~`CH~Me_$gAP1Tqw{u7iJFc at s(Dj6F-dbtCwlyw&Vs
z?8c4X{{G=D6`jMpnQcpQ(b2y<s22OtF}alf!|^j^>1<=js5Y$Iwd$`2CmzJSs7HJJ
z51wrfCP^wMMZxGo>0i*iTu5<D8zEXCL7Y9-(7?bI>V<U=5){R9qJWz5u%Mn^v_6~w
z_CRW5M`0eJQ0U}KifD;iW(KxGeQd*yW81eEv{w|SyNxOm)w5jd*q~2t(wUT6(CCQE
zhZ;MgGC;*+|A{Oc8PmwrF<Hia?cVy8qiT$9Wx0_<qR#x)DPm5hADRJk6hiIaHF%6=
zT62|Z2g$0ajhc$fhBr)WD-(Crsf$!ZEGA3;I6rHt#+YVu!+>-B5Tidgle0>u=*<Q(
z1G8KXh$2&q{h^?fF at x9?6qQd_vBr!#4r!Ki37i>8S*!{&=raPBy9e^~P=V){N|Z_8
z&0zO8^XtU~l{pY((KvxzHYknyDDw+t0HlZ(3zb%V0j(g#nwk2-jI7$)tPIu`4%u^Z
z?4j`I1<4ZT-l8Ba2^R4`xPy1`AKhy4dQ$VN?CtVI6aT at pr1kj+Na+b?(d8?mf7n+~
zE8I#Pcil`J_i&2#!Z0ZR_{om!9J?bYn|yg;!QI^T{HcS(n^{)D>6lILzD(SA5y!3D
zK221w`19C at 7x;I6LtNkN-1#kdpm at l1luH|)8t_2D#EK_Ca2#DyKL%6_G<zrz;X=tr
z9tj+FcC}8K!k2%ecc;h=7PkA$34Vp2Wzr>a4Q7b%t)bH*C;S7)_;)NEa37?L^Y%@<
zMV%2cu)S1GMQ)FTa7`5~*=grpRY-D2uiAf25SxktW*v0h#Mk`WdZ$`$F!Lcl%X%f?
zoOt>D(=$mMJDE>EclE#U$4tW2pL<%J5j3*BrqgP1R^RiNGn at MULGR)0I8-Ez2~-}z
zmrLroVJa#1cYX>Lpyu#?^SVIkEPQUt08I;%#uC9>47y?wh%G-lcrX9b0-*XYS7@}-
zp>M64{p1xRM_%#d?5Rf^E~lxud7uPCLD!af#Bl9F;&?4_dH~FKQh?^M4*o^Tp?1wS
zg-v#aoKZ}kjl<u-SsH7vK=N;jEu>k=H_uqK_O%1a40SPZLv+Kya^ACPAOk|zP%~OV
zHV47WdC_HC_`amDEr{ha?;+P*;7k;YAc+sI#6S8Ae_<8I^Jm0y(RRp}{fIPSl*9-^
zU3YjzaNfap=R%Mx8dU%<R8Z)EV89rI_l6NE7bq}cTEmcwhK4bVqR^2%3S+Q`jz#dL
z(&>}#yRe3EUdit42XnF?$hM}YXP0R`grxWrU4azj|Io$?LpE#PvD~b?Gc7iEMzIEa
zF-FPMa!p09&uYy*mYaE3rp=a~Rig3Yz*Oc5Fk=v}eq`8Y!zr`w&9d3NIc3<HuC2)P
zS>sY^hRyBb6bjQSa;ZtdaS9W^bC(%eKb`K>Y^gNU>T)61s%3R4o5SYX3)6#EiGp(o
z`?6DAc1EHw?cjTnFA3~nB(?)9mH<5vI~{O_Sgz<Bxe9JQ#_3AU#`hy4D}1s%-Z8e4
zqc{d|A*7JP=aN9h<QlrF5I6;ILIxa^9PhUla;Xy5XPa;HUFA)kpX$AK>c-mGxN&P1
zkwWsJ%_puK>WmSIO&K{8xA}ZF?wK=H^p||4$}3y5V%P1fS7!Kqf?h%8N{V$G$dE!2
z#dSbSAy0}YLJ^09y-);Y23Sz(?=J#GFQ`j1HqjKFq?_+ydMVJapMS5Xujk}Ri71hF
z@?0Sc6zV_)CU){<Uk^2*4wMiPm@=@<h~h9P$K%|2dw5`3&r$pJSHt at qkV*V_zlCP4
zBn_=GO8F2ml4BnA)5e*Ga*T;$Xhz~<t`{tN{0~ns{DFxZvATWZL^7M9w0v}xKL97g
z?1_wsR(WE(%6xPT-8JT at S(Q8tYgQDV*H`_bh)9HtD3JVuFtJ8yLr)6RP}9(91apWG
zG<z1+G$1F5MH|MAs{EQ^zOEcKZo`HLHZosVbzo&&N7dH|@*^7tOH7FeHkPf{s<o at j
z5dODeoK(BIbi)H1N>^*8<2JA-2a8SuzERL6b+B4g!J0e{8QGTMt_72 at VEq-G7O)gs
zC?6tX_`oi4PO-zQgNGi(6nJq^xM>hE1QJZ0gSU#4G&2JE4b*Fx+UbZ2SGzC~2~>k{
zgBY11#(dlS+p`r$TZ%GMpT2pNjeRWlyLy8mHh$5Q{2Bi5ls;FWy?x~7m?2`QKci5k
zC??3|id03X;ytBR*{M*-?eYooG+<t+DY{#Izuuw8zx at +vRRyZ0A}9Ryg+ at j8?elH<
z3UO%E=5!^wFZbJeoG^CtBLYP)y$0-`;O8A5GZ^YgcK?Amv;9jsUCM=$CxmnN^j}J^
zA2M)#+))y{D!f|`IDLG1Snya6bAefi0C+D&5OpAE5&NSODWD2?MV6 at 8AO#IW(BNmL
zz}Vqlz~3nTrCo?yuy^KH)tBu1GQ$6j|6AnCeV0~!HFK|vH0)Tu;)fN>caR3=jW^!l
zAK>D at qVS$+die}H{v at eWz1Fh+(4qA$uc`PaPmX8Lyu2;Mzda-v96~ZfXbDKiKvf}(
zO-atKYRslIvkSF2+=9G)$LZ*h{KCnJl4j^Uf18eIboBaf`~7s62bH`Rt9kMLo=B0H
z1KSzIcn)?47l(j`^Da)ele0R7 at AuMXg2kX!CibhviDw)Eh6&i2pMQ1te>sZ86Fk3#
z-;&^U;kKPefLyL3s-rvG!n$*33E26#JwOwJB+CY6R^<mJSv|M9J7C|u*&ayz9}Xc`
zq$p-HWQHO|SJX1Bwao7?YaIq>!`O3I9feck#Po9u{u80?Ql>qM=mDZa(A~~X007ni
zFNEOf<lBrOvo~M}fNx=xPwIB!vugldrvk@?f%}xy%KQte8b)cliIMzHtF-SON+U(m
zC at J&68rPe^{zNaG34lVLV at brA-adHQgn}4=;vx%)o;*q4nXnYbc(hZ<xeh!5#&C)t
z;(`PdR6q|4VUp~C{z at Kc_VbJO_1wyrALI8uOy;i7yR~N at V9;|>zW6h8O at Qleo(n8A
zs^qN~Y8)fa(<;~ao9E%s&&bt&JOjsnF6qPdXlAN1#9L9syCCI&azYS<lH$xc9xay`
zvJZe5_*-lNHX1Rb5~-ff^pL+<*bIU+;*L)6pluHnQ>;M0o@~-Zi_PquO%H9tKk~!I
z&heWzjqlv}x7dg?cXpI#O=z4D9`6{<)Y~Oos#m&5Ty3cjG=_&(Hovgu%&2*_D`pQL
z!x5QBO1QBjX0NE3({W~vEi;I0E0gNDPwOU`f|;zNW7VpTQ7c!D>i^|`Vs02aw0>e@
zvL)S&2v&|bB&;oU0?ll|N|aiQ+q!oa|Bs_fylHviC8PmXPr~27v at kEtxAZ8n&)VxR
zvNH;nd8BFP%%()M#tsiACz=jf@*v(B_1|jX;XteMq8WL0hA4hKCIk!;aHha5YhdHo
zFz#!vNt_u&8s34xJe+?V>^n;raKriG<RSV$A>&#5nSZ|X4tIB-k{^!WONb}gen;{@
zi64-tkkKm(GR$z%3_40d;*?78X7RQK4Hy;x7rYM|!U-{s0c>L;qOLF4lIe$F at fD)<
zgW*dc?;nb25+cy9TFiPeHbFxlr6+`OL4eqx8tAIUs$lWY-V~0Axr+UyTvK4P+V`;q
ztNAZ<UV{o4rc7_jlMOkeEH<`OdRN$=s=hl<jU1=>WaZ1lWsXFrxV)@{zeHxwAgyH~
zIU8VZV4WKNg*u?}a at 8&uY2HvMclh)7N#5B6lIb*=d{U;yq*5!Ik2DyRaz)^ys3tg$
zNw*cYJY3JTI`sex^2dwcHmXeuVrn%NnzDfQtF=qb%*dHW-8g29*Phj-QF!%<r(X;j
z6)hSW_;by9Au{8hT8Tktd7t8`XdWTz--!#~j^^Y^N{L>`tR?u4_<DkbM+XHe=?(r*
z18oqvOF148C@`4b!4m=8kb3wNaT>WH7Qv4`=syHJIKL(Eiz~&54~Z{sI|U>yK||u>
zKSTIqMZ$4d>-W<OzkM;bw=YIV3NCi0*W(Uw at 17B`t6VIOLo-Dw(zo#(G_s+TM&tPU
zd#%YBg|Q at EK*S5yQOGFNx&r1SidaMp1FeV#fXo%N+yD*(tWz=OymHPM+P$HD!)&Hy
z)0R!cSp9y*@XtT_e7Iu2=x3$svVR>Ieb1)pWsGj00{AHsC#$z9_VG&P5q=Y2!f!gF
zRO<GF{F!4?8SV+i{*-HtY1!Fn#`T5xvrnI*XdO4MRgt3KN3^mz)3U3oviIp#ify}h
zZ&RpHsFB}z=+KRFTJiB$UU{5W6aisQaRYJmJKF2cd8w-5Kkk6PWu9mqIwzGy at tFp4
z_6^{tf9o&h?u3;^_|gN%T*&9C?Z3u_T!JJ%jN&E8%fb(z{9#dofBjp(TF4G-ncaea
z{J`-8p?S!>9uSUxxuxi|;Efk!84*AkLisTAvarD?fBLt6wJ?G9S=7?+nP+|$4nsy!
zVJZ at I4gNNvj1`?0(RvcPL@#N<Sa%ffTnBV_J9<bFWFU!@rG_X(Tq4&502dx=ePAge
zq0oe&5m4`YIY|@2Xl$1LvIgV_D9kP~H|~puw5YV2Nw-FZteRWNOnmSE at vAD+ilswk
zHU2-lvs3n`SICCS%3;mFggg{}^wIa<<yThVkfE}e|7~{`L$Xnk9Is!xX?j<cpQ}BT
z<>o&ZE3NL-l6fQeA8)-G+t2yJA-5u$=OGoId=ew#&BG^_ at jo5DIor)Y?+XXhWGb=A
z7nYd=)uY!AjPHAdXU>J~oW?V_7>QIc0AO at A`@vc)*d)=RFl6R}{R0CmbbeT+0zt~e
zKqp7D!Nr1C7KX{BrM6gK3`1OhO{UXeRRpq36Q at lp<En!7msDLr?ot|x-A3cE`taD|
z>{4r}B2$|Ws*#-P^o+a?GFBJW<=R~Kx}{U)lGKFUS(atfj2LPj7Y=&s!mhHIQt!>Q
zaOpWU{_KL$?8B8CZtAHSd0^%UA4%V~KA7I|v at P?{u6LgKTX&N?bVb?d_l`W$tf}7a
z))gkAJ^QyVyZ?!Y4tK8cXB}al*45noINa{v@(<sXAJw|AsM|=Se?75pQ$$j;Gu;@b
zLnzg`;sWm)&A(-Zv{EHV)FOBaK%Ne#rWk=M9x3M+5=t4upsF- at X+jrFUYLle_zLYx
zY7Qd=gaUP_lu-<ZN2rx-I10;F_`=>Lee?=-5fZDhs?%G_lrjE0hD3?x7G3Jfrb~ZE
z#Qxi7-_9Hu(zfm(2)^?J6~QqLW=r#;EjKb(7GxLXf}5H2#%s(!-0yu$thpXG?w^Ea
zF2fR;ZFb3#;2^phxQUbz6Zz)x4Xd0y!)#7$WVUGSD<{otviMA{G>`J?bh3K-+<IHO
z$?PFE*$u^squu6a_L(!n$;3jR(Vl%bNSX)Rp%2{4BjA78BH9a1gJYsUi#`&4OPmC_
z2s91qg(*gIV%V3w>EeNH_-W9?ggvY`D)k1Xp!u|bk_ at hZ0kSoytq8mnvW;Un#}?JU
z(Jkqy9t2qdRm}yQ9`&bL!cs3y83RRFP*`z9G;A?~Eg!XnqNJP$Sq}79Ub<I`&nT$$
z$+&?234&he!rK7a0pBfo6X%WxsW*v+ar?=cg&s(Grcu*ufvAG3zzIN^Nwn08312L}
zIxZ_gqd;=9vm$v?4rdOf<Qa8la%C0FVyr|ibudO%J}rs43|5EHc6!3t?2@#`AeRo*
z1Vf6Dog$AI0~Tjdo?1?b&*_o|oXrPiW`kX>3yn>;N}c93<jx%Bn(vT0k&?+ElgUhm
zEJntfqt8nhv8gtfL+-Lqj%Io at b^s5r*OoxA4YO*?D{_a~9kSa at c7?;76KO0-eV$9<
za)~i$afI_Aci>{OfOF_hwbY{1m9Pdy5mHOtSdtZCEl#&T>UW#hU2|s7!`E)gF3euK
z6pKyQKD_75HA30yoWk6>b8`!GR?{-F?YxFMA<gWnV8LwzrJxz>g&84tX6Qct^dJBD
z;)_IbYl*}+LuF1)OAUe>7HPeV3NBm86(AX^Olrtz0<tzwW&k6DG1$Zv>GE8xmdTUm
zsj`h5=UAL(v$|L|Iog;Rv;>)=nd&V=JSLsLR2|K7rKgn3DvKJ%FVR~^r1zg6^c(c-
ztTn(C&Q{N!tb}1Ln?G%^<cA`|oi9-e?S;$l+&631zB`vMOcI7KTy)(PlP6zs-J*rN
zIrZQ!BXB<?#}fr+8k%Lf7VHmG!2_}cxzn!@U5~zkRtKhB+KT)}VMR=X{eeD(aEt8e
z*y<lgV9r6iqB9g7hJ~R9pcFJJ!7ogWWH?ELR-wi!c#4RM5ksIGnD6}tuQcd2MBzM!
zb5r<F!UCd-UM}(r{~sy!IT1xx>F`OuiW!X6r#hyOm^`^Tr@~cJLt+_Gr^#+|TGKO1
zvnzbLewo2x&bMS{H-=-x?9V8uuFlO0ghI`;W;SPXKh_+AN9``&$nz3UYM}4Fx%=kM
z-A9<K8#~80?t0^~Rm+yGdW>A!Hm9YkWJ-;kcv_=B$$%7!N`H#BGCzhrsqfj{DMd4u
zHh1wy0^#wb^<SZEqe8FNn(W#BXvmwPO_8X~MtgQBR+-W2uPMy03$z+%?4FT$l+lF7
z?cRK4et>z7UUaUEj5&Fdzgu3?S<+m}AGuOHJg<m9vYqjrQI!lIUc!BcC7lak%kQ5H
z7-YFrLyvR-Jr#g9IRbvG*F=98oq{DwPJF<$Oa&??4Bo1s7ye?e$#02RAW#6U>QDYq
z at d8`oFk+Ft5sZ5#Z_rD}K7%d{*pX4q!7`6Bg!*_aQ5<Fh{1_*q|Ak4#0|`Wj3B(eP
zSi(_=@6kePM{zO51BE)T30Dtd7>amJbdD0Xq-S+hVFz}4OlV#7zf_1R!U at sRz_5mS
z9%rPhg?_lwTo}o{7-mtIBB2HMnotIh0V@<DJ*2R2;5MO0kYoeKVGz~P9?MaI4&B8r
z5;aML#*KYQWO8mF!oqa}uLB4P9FZPSgW?rZSX6jBkyYb!n40E>TX*dumD8RKjq1oC
zp3L@<S^Q^oNnReG-Dj?yR61#!?NVFA^6rImN4GKulsbnsXw8ssZ0q=0M7Xy0*B9{b
zzw^$4J$uA&CEL~_Th#WhVTqA(B6Xm}63ZAZx0Trbk^ab0+cC?jA)$M%1&J%OvR*LX
zH9Xl2SBG5>MlJkv?vghx^`8|N^0$()(V`Qka`*i*8OP{K-FH?ba;#>XzQ&q9q~`kk
zGXCE-Q>v~8tXC?Fz9Dv90rZN${&oMJJ^UB7%#SlSZUoI_VR}($%POC at puqd3HMU`c
z$L7!S+ajUOD}7}n_Do#6E%g%Hu+7`6rI{KxsDJG~=fo)srY&X1%uif0Vnji-c=*D1
zDm+6%&Pwu)vm!7*kN^5D{HdrQ8u0y-#~w?(Wpo)q!$l@^b`s6_ at qHykQ;OpfZ+;vd
zF(S&`URjx&o0m6 at sK;0klEhS2mX(pU+4y6|pD9zavyYHVY0X3 at EueqO%J at sl%g3k8
zoW{w<TCHa+A-O!=S)AiBO(Pl?tVY=OxFT||#;lM|1^COESdOcf;Hu1B{MSU2SU#rA
zrd3FRhsrFqY2jn^t7mx2Y$<RxEB!87Xao&%E&t8SFIQA-zoMKWtU~8B1VVqt*AyLx
zSyO~QInX~<(00>+?W+;3h1K&J(KkppXcnXpK~bck;u0|$SJ)zfAohzgOx;xOg%lx(
z{(|d~MwyG#rRi!Z<^v3|R1l#cRHVRy0Tsh5WPqfuP{je73%e%z7xscnDOW<d?o5JN
z0v8r!6Uz7;MGbn9a2ZRFfvNyCqyIXP9^p}<QcUtX0Ism-u7dnN&`E^L(39Y1VTDEs
z)DdqKX^Ae7DM+oxU=SPit(7D*Zyh+AkJD{~VPN}oG%ia)V#-lUS(QzrvE_|y%X3DG
z0e<u`NEiyvY2 at fZHck)gax^Psa2Nz474D*dHOpdWmC_QTVx=qs4#}owvrb%)&57+q
zER`rFDPj$Rp2Q(BQyHq%e6RRyGcpIGi>8QEuvf|v6Qfg}y;^F1Kq2L1G7_Sf;Q-AM
zE|QsQV>vmEmzHHpa at Yr>Hkl%V2)<H<j_Dvox#K*^;X%ElR3k6Q at ZapLV#ggaU`vLr
z9#<7Ro-C3{<x+mPT&f&0M3dfF;48Gqx+REeLQYJHOzcD&BAHJ~Ls9_wwTJzItdta;
zR3=k`rcNvoKa-*xDYi(*4I^CZcswA7dI(;4E=MafjMk>u$RVRdKFyNC-=H$$lwzrP
z0;2T14Z?LMNhAuH(h4>=nGdN^LEvT&H)pBTIt|_x%yhPAG}@69LfJpmiM33Mf~*uv
zmE_XF!UJqN{qv6kx=10gPGd3eP;S^Aq8pNO12nJ*8jRRW7yWVqWB at 8A(B?!<V>F3S
zKoAq)CW?9^8eoc(VVn^O1(S&dfdP{Rh&FK+gCKDP=?PFI&{{^%3J}OIOr?wd<AXRJ
zI$^l@!uBVrG#NY=z0*-j9$6?U44?YEw%(T(D67 at iwYTQx*VF~w`ObE?zNvd;ewYLe
z-JA8fx~lBJ(6qcXRVKMylaiLFP;A|oTB6O{w~twv6Kae_WZU-n(mKMGe0FYaZf-66
zKz`w*?nTwnxiiYOrHxrei})wzeC=n=5WiP`(luu4r{y)a6f;s7Elvvr8_H^|YKzuw
z(=W;JXAtkAOHE5<v;N;GpG&z?TKK$e2b<<9;o-e?^S>j1`Cx5nQAu86oo&Ceq=r04
zubjvKdr5U{+tPSNG&IX?FyyJ32M2#P*cQ~lS9}9KTM26pWp&acg_qYu?ax7RAyf*8
zYIIgarf>j00F|Za{s2<P)3hQ~jH4cSOu(>)gQnM9`30;Sv3+mtMUb0TTRu8%78jNg
z#ZM0??6Of<dE8LgKCUwO*;6v4{*$eLDnf3-9_C*D;EP2qbNB6?`@6K!<y!5~S(2E-
zE<bg*j8Sx>!p&*vnG>(Q`<opHh}dB;(!f2VLBF|+%tHk_z9P}$+2=4r?txImoxAz4
z9FSiOoQz2e%X<IQML|9i)zc`3i#`~ae3YSyAK3+&4{z_ft}~zO9eB{a%=fofE~+GT
z^!fhxgFevzaOB_2PvcfpPn{p;<9san;G3Ty+9~`&?oK at KZ+me1+|<7k7xHl=eQHsP
zQUX&2L?N_&SkUOmd$DceLD%qrWd<_<MGxW)Q3(#;p8DCs9 at tkX#15(H5YQw##|Sl;
zB5Lq@;w0(Kmn!&Y6;gH)e5aFY`+939byE)ui8N at 2he#|mT+=`zYJCqQxQ!Aqy7RxR
zv;SFv at J{(&)ah&KShJ#oeN4EAJN!jO{yT)6B>gzSYyo9SaSxR82w74nr3{OZT)YiD
zN^(3fV}=~?A2R<9 at 4{^yx@=A9tNa&4`*M26to9P^O6}IBD<6DxSN)Z8$tsDWZ!pva
zAoO40VaRI>3WsN*- at N`Z(aP-^O*sp++J>xxM|bakK0mWTDwnfa7emYp#vZAmiNW%R
zXP_noJVX@{Q|JqY$l&u)3m3Yh9>b#9LMLo|cwmtP8(|o|RV(t~Kwx|5w2e;*pMzi(
zOD1&ih0{drEAu8*ubo;sZ%TL1Xr`!n-Ic>62I=HHhq&m_q?;ey_V?{$FAFeAA{Vd3
ztjnwx+tM6m<7)H4*#F)D5dWhG5nGc1E<?r4GuwsSjzZ2xGLGEIoSMJ3a{ld87O&m@
z2i>B3r-m5<dY{^HzrX)RqPU?kW+;)UlwxJ#daE^<O60-HmBXQ}OdNPcSIZe?fl8Gk
z at 93nbBqhK?t>r09RKRD!7=|&-3luv%c3K*n1cU*_4$#al;-CQ%4X}$e7a?E;QLr8c
ziAhp_eA3@$D-?f%D}PSnHh<*hpGC2_pP4WxSvLE_uD<7)SZ|_NB0A3h*!AITRQ!`d
zs0+F!(aRB`u244nZ<9{Pgu1=S`;qXtAFaR-EsT(&0oy)7&UZNC%_3j|nFz%}BORh-
zM8ljM{^<58Yc at VSk=a<@_jvHq4#M%@|7G1%%gUtnB~_XXwXFsKeu=27p?X|m$GQo}
zHpNFVb;W0XXqj(r{4 at Vu*DbHC6c+~5{k2`?J{pjD&i9&ynRvbEO3^_&Hh6SY9;BQE
z2%!~ZLkd%+8_DwIx&f*Ua8!b{De#B=`UX|IpgB>GTmRpr`Xw|*G`n*S%wKLuMW;kL
zZ2^ZXt05!J>1)f)Y4f>EmY~&}<#GhtI)z={bYUaMD^$tJZS%oK5~5Xpd4#anmE{G&
z2+eGf{0n!@8BtS7WSGH`?l1&8ng6;Gr|u(%-D)?R?Y2~h(`GYh)n;rv`U|l}V!gsn
zM{08C1@%&Gc5^S>O1*q+;QwM)+uAWK;>@<Dxyu53TK?;X&~D;_UrbE(1rJitg at LK`
z;J-}tlPE616P=2aUM7as({WDJ7iZAs61^f3=5fpe5;RmCsfDi+XlVhYi0mxBFyOMt
z<AU$b=~)qzK9~RaMr1m9?KLvx%_ms#>iLHgqBqHu*O*HZAIx8kQgREn5~3UVkLNPC
zup$8c&bv3TrzP)=P8GC=(QXzLdKL}-qf>=&zfw_9yC!idI?bnicP}%Pu8=p at XmuuX
z1cWidGo0jGO**00K&51zAPgD=&xL-?O%Qcc36gRpL)XS|hin<S at Sst+JjOwoNfCZx
zkzme(hC<siO=5#V9_k7_uV|lCyYT|VEDZ!BbPf=!6be_7&rgP&*jqklcuQfat3a7n
zK5lh;_x&^feB*;7OYEaGPO_E%`P%O<8+*+k=8V017BK0VWvShlk6ae0ZXY|YxkSnS
zZqe}3`9x)Qahp>emga&6HYV{pGweVTeZBi>fAQqDO(QOGjGQwrwCJJko-Zd?M-HU>
z$bp++8=v#i{)vIAsnai6w!8SnDQ%e*X>LnS`J4u=ZsB1doHLd79PzXQSW{~83eMqA
zDHki|0CdG5@{i-mAU}J}5TOOHB9(RVq;$eF(@B8_yCL at 0lpOP;15<=BL%6_A{R>%G
zeBd*$FC^!f0$(xABZjV^!ZRe?ww}>WneGe~+DS+Glm<&_aL9;w$BakjvRv2w3m)$>
zDl0OVj$d}*@a)CQb7fw0hA&#uk~#0d?7>Jf^3i>@iWI+tNl`MsJdMWJSgddwm$gZ?
z-Q%1xjUyvfT-I=P-rkw3nhF*_Hl56WWXVFibwOLx{VV3&Id7F|a at mB^`k;LW^YLKR
znb7V9Uoz#Zb;CO*Ixh>ekJ4^?XzC*PimQkoY!VP{av3dJ30z-<i}zz?lRvD0yyZ8p
z+OcC5*#ac)n>4sAAsU$7Sh~hoDY*8$<3 at J!-|?^T-*t|>0@?7+$H^wYU;jN)hJKM1
zgk1FMO#j^w?ri7)u=n(e!gYkeHsRXbL+4$Q at cj_n0krKk=iQ7j?o%iUhJPCUX at ysv
zde6{3Ah at ITYiZvIh9TYqA7Qp|LLvYf-$2`pATOk02uY(k=0FsN>63~UD51I<hIJ|s
znmjPw32T(-4ao#f^Dl(F*5frzG}Fei2X1{_UrLscG(K(G9Ftgld|O53{ThW?WAf_n
z?>bIoq=G-i at 8VC5XsF>2={?U|`tC%oKx7(RI^*(_)Y}eU_L0#a2x}sbktiq3I7Z?P
zX=mKW`Jawo^X2I3JtV$u*52oc?6{ThvlOY7PQp#zvh6q#&WkfmxvzREpOt#}Jp|4!
zCDQ1l at csk(Srl;aivf)l=0<@dh5E7Gz;+CyZRdQywSk4!;DNV{g at XpRX$telCI%f3
zEY^r(f|67zz|H8d7m-i!xWbKZwiwL)erPV~d3H95y_UYY7O%KT9B^>~SKyxxV<K*J
zIE+l(NbaRh=Y$B0xNVmFL1HIki2XtN91Bqn at -s6k61O;=7C!FE&1Dvb9FCA9F(GkV
zJTh!pB%WL{6BaKbFAQH<QL%D3Up7;i7cRq`@)PETT<SZfaY1Mb^eaLO4^ly&u2c3Y
zAyff_HyvX=G~G%SvWMaOqd-8si|9v3?Q$ABf>=DtS%leM{Ai&sQR^!#^f6EQh|JQL
zN!Qsc$MNsp_aJ}bcNX?-TF|$A90}gH?VI~&lVydzt-7u6 at vr}XoqY#jR8{u(-20}b
z_d)_8lR^*zB$G at E3rQ$OK@<c*K_pC)mt at FfW|#s55hG2+28gJDh$2Nq6xRl}z*-Oi
z0g+W~=&GwOvaXA$A$j?J=e{=~vFz^mpX9z<&#mX4+s-|A+j*t2=4J9-0z1p!{v*4$
z=A|qv|6652L1n>|Dc4vtv#fV-e^NQIJ7}(d@?UI8rgie<ZOS_zFJ_ at 1ShIwU<$t_b
zIsbu`?rwyEG3-Z-h19mG!2f`dV=g7d(ixe!t34P+1LK)B2`8i(MhP8H3>acuffaO=
z29_95Sukd(8x(2!Vk-c!$`w;*j6Dh1x4;=1uDj8wgi0yKQHO|!A~jvSsElz5X~iWb
zmEl at 4LQBMm&Z%GJ^yAVVZ(vKmQss^`DLW&4K&Eo|q1e7r!<w(ii;Ev$za%3vDLtZJ
z>Bv6u1si+)>6Zupw*G$1|4Wp&eA(gQ14mzb-NZi8rsU`-eeco3(<`RpsiNCL%ocui
z(Zt6rh2|?u!uvegXJC<c@{Hc|hxfT;^Tewb at 5kNs!Iz9G8=rmI#D|8D?-w~^NBjM5
z&%LMg%aj)q*k4AKw0kC)2lV15leDy2nF{eJRUc)x|CqJ)j+DsctI{V_R}?7^UQ)j5
z(H)O5J}_ at wY`!hbkd{%{I}Xxf;^MM;rz9p1UVdp`Us^aMMIGU$NZXhVS7%r%!W&}3
zGd`JGEH6kIn^rbIiXCxGkUL(CF-G6)S|wjzJ;te2MwQLDp<=Dl{)%frDFeF+t?e<l
z5%Z!H+`cE-^g33ct#?qZILJgdrJWuc=(7LNrzo2?oxmqxNf%qAG<(3L7jHya(n-L4
z8H>XdR*HEi^07sa?Ad$An(Yy98-^E at mWQSk<y7&LM<TZe-4E%@tmJOX$uDM2eFqt%
zdh;nA4|d!=+0ZM-I4CV`kTEvNn9FWualHCkLvoB^a9ZonIv&08*{=`m|HrOP6_w3_
zyvs*r-TrHbanHSTV7NIvmY0|7qaw`1-aK~n&Ee+ANP{JP1SBDZ40}U*yA2plKg<h2
z$YvT^a98b5s1wY_1oMY at tni|RdOG;fVj$6rdOk6NV{M3oLQu4zMLI3s2HoUQz83~8
z)Q{f!#ZuO?^ov`SJX)J?!kv+554bB~kX9<uVln@{XVZliG8wQoU-|_b)4mc=v5`_M
zId<qac_a@^$fjsRO?GOT;1r@&y2x*EEp8A8I2opXv~__sJ2Dyc`aN4Vf)h2yCWi<q
zb~=8&yJzT|ntU+1cW-=BmBbOYrK5ZI9=*smA^{RHd(BAholun6JK2sIe{ll8a->c9
z*)|f!zU8mlMlM`F^TN at Y%a_m8=gnNspYu{I^ikSuBMJ*g*xC{kzaqD<y7W2gY$Hb4
zl)8k3X9kSm4_<_Z;4O82u0vaK49&!?Xh~%j`V%6ggAIeGN|f$VPTlhjD^^}oE>~Ux
zf5pvw){Z&t6?1m%m?O2$*}?Ynoc8-L``59deCtK`9fS at Lpn$j32tlsI%kZ_}$MS&s
z-3Y#iTe1FIgPYwCffjDl?a(~|j_Vh7ujuyaUc>ny=GPeJh>)pYP$mm*b6YgJhJg^&
zO?<JB54m0#>S!ncJ+$D0w}rYPwgKa43zxnqSSEuHjUA>qpda3T0<!_LBxNI7l0XXf
z1__&n#c>u^WGKKQCn-^~fR_Zan at ow=w*p)exNVZaK!6vEa&Q)6NJ<Fd**P%=JjIn1
zH-uxzmHOp`aGMmD8OKcJc)btV3S&t{W?f4BVX0UAJ_*mJMk}6}!Wd<COiEIQeqVeq
z=}3I9)c7}9#xZ?H5~SJP5nU9`?usSfcaqXgFUIw1&tXfI9d|1`SVQc9_UjoxiVb%D
z(u)z%e7myX6^_T(qjUL_OkWX`me{VmU(V)6k5DGFE6wd51Dm4Uu18;4U7@`F;J(e<
z!7TfD+5_y8Pe0Wke$^<=jqbSTJ>{=x)&3nfE at xj2n9Q=zE|FNG`F(>~xq=n7w{FHy
zKRj<y|980b_$^l&_$>*2^~#2jka%cMn$1ZWvGMWomSl4{8?Wyh9}>c94SnMg2D>bJ
zmKDVsL(R#S1pF+?#&BgFvm{1DDlh5#wjXBI%EoA^w;oT3;@*kG-elMBH*?l{;6U_+
zYmA1`;~jWz>u`m#vNtPI9 at 9r5{BEOx%^S%^Z2kD<-Db%KL0QoeyIDk-^45cF=$TK<
z%Fkop;^C)18wh!;`&dELoyr#<=d$G&II1E6H3q&!y^@cIt<Ha{eARxN at +C|C+utgg
z1FvyJp$;}o#EO(~R=hnxGWWo)28z|S3yB8r>gS0C&oAbX_3- at S_H&D$*B^bVVzAPC
zaK(s0(shepWp!;Mm%Q at IlB{RgV<baei61;lr8|p3cWwgLDZTW52{2u+lYl975fks-
zlLd=S7OTrvEe7I>Dbj%lCsD#9qe{ly_`_`G(TS|~hRc*2J6?C+Q0C!9%4Q$l>!|4;
zseGhV%&nK+*|+P~^-XN-p at az|46~Y*KFYqS*B)i|!z)Hio87Tbx$*L8Y!M%NVHm6B
z at pGov&r`~j4<qBPBd$q0%&u_VzvM}cM&OOHp9HTlQFLMp#pHt&NM&3RxZ;Zn(m}k%
zv_-f}SWLjRSbZ$dBwnUUDoQfR>lZIPu<!FVYd+t1pk;w!{b|O(S-0*R#+85Fa^%4U
zkH3C;?b_3?Kfb`x{M59AJ9qw2{O+3jKY41Ccfqm1u`N3f>gQcBmtMbS&Gn`FpKqQu
z>%!L35mLuhciwqbyEHI2)9K8RZr9(peq{Tk0&86(Cet*Z-hwgudNG@(+g at 06{I`AQ
z|LU*KRY7OONduJ=jV5Re?$msg7Joy0n)oPRq{Yi*#z%qs at 0ktD&uqPrwe`$GN9e<|
z>#iEa2E2T4`#q7j?%cvZPDo2j=*Xl9AW#b5j_>Hpo}jNXNtkB|^ICkjZas5mtN(Re
z)tmkBsOP`Er~TfMC6*6Cdvj0+WnxXC2aTsU;z;sNA4ou<cj5+t1I-35;o&&>y%c<U
zSAt)7GVZ_JfEPgPL8slgEj1UE`exjYybW?rSAkRQ0o at jGs_8H-!PQ#v1xEzkluP=x
zf at ssEZi=2m>aM`r0LVX9<X at 0b{0AYDY~%|e1HVzYZzDzl8aNo{Uqvur=*T2aA8}rc
zBO~m|U@{G6!s5XgO(MBb*Zy;d*|4GQ0Kb=SZaZ)_o>EeO<x!5PzEEjGZ-^T2h;qz>
zYS#4j5ndMWV+lSM55q<Cg%`4Yc;c|9`}bG*g7Ic&cPzi<g%@sF^!)S62RXw=56kh`
zQ>4D5s`?a{WEM{tUwldbgp4s!n3ZRRq(!DAhW9D9S+G5|QrX2Oj*vFCS1YFs{oi^^
zIqCDQ>Gpqj#t=(n#^4N65thLj8G|iDW(>|4OzMUqxITX@>sLQz=XhUFC*Sz29&sZ6
z%;y)Wxn(zHT at nI`+zI&w<pV+!bNdb+Vq#%<KN_;shO#IrOfqu3 at kQf4%`bfDe|KWd
z6Aixfo at -gmbg^L7dXvUvLmW9oX))obdg%1Vji)7L<LQSUI?Ya(5BmB2LFMIx*ps;x
z{D+EM_T->)ww(MnQb5n_jrx+dmvYO?a}A^E`|!i~B1M{y_6Pm?06NKS!kfclVKmqz
zX6HZ&ddNwgDbVI5%_-=Brb|?lI@!R!9SEM-bH;csa0iotBEwpyUvvD_#>wmEdmHM#
z^X{Lt?k`6ls(pX5A-%UbGGUmk{CM-y&u(R at N9Mh^an;ggTc*`5y`?IxJ|@0z%wHcG
z+Bn>5j!NkDr>ADTs_09lJ%?Uj{ot|U>GPH at nK!-o`3D}{d&O{lpSXm`WZQL4|H);C
zS at gBHZ`*$RwKvLDE!k=Du~)@EbTm6RJ0U7Ab<~&(uVnX$(&n at +AbqLW*BOWtZ>n`L
z4$(FO7?NnG04zduUxDPHVC5|Y9OA`Vq0?N|WDxHfpb>(k4qNkdIY6{bnm!3Wdfa)U
zjf)oA4p9vqUtz1 at idoXzLVG*C*M&29Xfs*5pMtc5ojfs{?>?k%pG5bH3e)4#&F++b
zQqNc at x{mIQ>{6?uOU{<&oBAY&M&}`Lzm&*=(RvBeeELPi_D#$-^+OT6m0RWipCrni
z5fx<H7q72D`nI*0{a?#$&_U8Rq;2=R2b0Y>hPTY|>A2_rT<W;hESsuB`EYd{V(!$%
zQG6NQHdp?~vYR?PF~4SF9#1cUhNHK|<GfiH7b015;w+GJnr)H9#6DX+GRF&%;84dd
znZ<g7yOk5{8+JoS<!y(QHs!R`0hgEC_wyZxl(XE;rYWbDHa3;D;H0j-B6etOdqp(1
z30h(;`WB0%>!{}sw6{z87KpxVY5zNaKp0p{ouZ2!64S1WkJsyBhQxC4JLBdx&cnaM
zI$#W5?%IR_nhw59IYJcnfBqCFiMzLd_{kR1w6#Dn67d6oAro(PBv>Gd6gwv-33trI
zG28!;BumJKh)n>S;?T$~(<V)dEsC8q3FbfiP at w<hKdEhy78Ql6I35$9w!4Mt=&xmW
zT71lLN=ZcVUz5W{1=Mki0(=p9izB$-RU%Wr>ocjDU?)QU*Tf2z&4#874;{(|;zD_g
z^4`$U;VH at +%7?M=M1cPgi5`!w(=XWn#C)0VzKzn&(djI4ID(0bVkCBkCX4F45mQ)k
zAP|DVSi&Ni4jaqNAgSQ4>7qAMG4_H%Xi1R|=rhSxAV6A#f!o at YCh>}yGpQn4W-=Y;
zp;IdDrrsud<rK(f!7mK|Qn(=^EG9N7B5QD5Xhc|eSVU;t;H-$GSO@?ygi90ztV at rq
zZf;-OygH=M;Hz!ZPA2mG$73$dO3zJm4s)jEre|Fmb9}!k_2k6zsRN>MQ=o#bWL30q
ztDc+VIK-}TeQbz?C-N-j6mz@@FTeN7%z!k8Og!cnZi<JaMUOqJkoL{ZD^@fQ_ul5R
zr+idV5e|Nl(g9^F2V|F(We-?cHlVbm|JCC^v)sJtZZU4QfqhJe8|%}tR)$=YNRHDK
zoMX{}35{QtOxkPGHo$3f0>qgrlP6hl?E_B|iL-V(RfemO|2+_EP}Cpsyjjo^SSn*I
zh)(R!AfOMe(|xbq+z~!{(TnvDe-|A-e*9%KUD>Ifx=XvZ!^e$FzVX=#LHDm(R+HO@
z>wJ?xN$Y3O_e<`u#8-ObQf2b|vv2XryAS?+!uM2?@<wKSY|K4Fa<LI_Xu<Y)&%Jkc
zuKv~K<4j>+Y;wPOS>uE+7NzC{cgRx*xj=7It$h+(2BjsX^>%pi2m;2Oo#m-1A9P$;
z<?fr_7b`m2fX5Dg&uw>g{-FaO%4y7T$J0n?0dGP&@y=pr4V*zZUWnA2(s0xv6^lDO
zs5P8ase4vkGZWfG)ut!G$HNURHy-{`Y5Vc;jU)Z at E=vLbUf-0VGfVs9Et9<JMX#QC
zby0Pm#G?9_&K#Q3*Pzc$xon<)q|(wa1vh)?N)>AF3LC at b_)PKER=GU9Z{Oi^dH(pK
z%y2}72t!kolcM!ueKXVI<I}SGhU+7flTyJ|pMv<pGmFMc;}ui`DLR)Rh5dH6U44~{
z)~+q$PJ620p0bemK%9u;dS?#y*NRhd*iZ8wJhKAcc?&QLo5x`o5$IIGqE4QHNoDAn
zi3T0Zhj??TV^wTnY{yDNG at G56X{da~n30%}VO(7j%X8|LyWQr at xItmJyk^YI%`o_t
zsrAa~vRm8}va%+)Zz(&iaGfzk(syi!ME_|#HZ_6u>X748AawgnPbS;BYW>GC@!W8U
zGLi3!Pf1Ns^472V=;wiBDzdUF#ti%!bGXj)*gJ1AMqxgK(=-;ZGZ8~INwo(bb#TKD
z?WAta#SCWHI7JKVW3%YY2uk0geDJ|(+W*6zBDMup<Jy1U5*~K at XG?dm0lTnqCC+5%
z3`lDISlNRkoNhsdk?Es%vDo#?zFHj>w_5o&mQIUQD9R)5MG1b79FmVISd?f#Gr0Z9
z5^)n6{1#ws0Xrb_mc(e^Q`h~N%>Xtgwkf5bNKCom+R5RG%KEm=%JFw+$Mj;e+E%iV
z2DVwb5E<KX#kcRRzyA95 at 2Q#r<-t5+CKZqwmFW%2Pb=G$wY_3yzsm-1Zewy{_~dKZ
z=Ge$zPIti&DCoA>=Rn=+um-%8C=EoH>P%o^|HJCF^}{I~*z7=!KwCgkfJuVNpnU2f
zU9?oTYBwre<Y%TRjcWWr`C#{|E#<g$duf6>xAjbGuDQ?fm^fp3$D?!}rk=m)U%OoS
z$2Mw#CEY-UaY-_}?Bi`L;qsZgqf_H&Em|}yJ~evx1?@PEz*Srk<IqUR&Hi;eKpF+c
zkN;9WLLX|P#3b-KqlvUa>8W+ngRQgh_sVzgzZZo^v-G#;d~}_za~YcH){Di`+6XNb
z8 at a4=<6FO9Kp<Gm`a^7BQsl@=yvlQ7=0&X3+DhDWZ6qlszrwNqsch7C*yrpLi>&pY
zAc0f6R1)Z*CQZ30y=Nr|6#dVYfJR<eD2Jqk=7q8l2UzVY2sugqL2TsGSyMERX{8(4
z>W%-$S|T)fYopB#?&Dl at YN*eHy6)CEjWaZlnv#VJe^ZN?b`m`?g&JdVv%3sutP{oQ
zO(MrL^uNV>%O4OJ!Vrw8iFgJ+8Uk-6tC*}{C<VP?F|=P7!>ll4Y!y=$qY{40zt at W9
zS7{LD$300AZml0a^7!LN4zry0doZnO_0_LiSML*t(EOL%=FYv1SL~r)vPXDG|6H$}
z-4)$~Om&N1BUVQsP&&cqOMpn}j)RMtbMazG-8^5q<@3|qO4a at b1|xmc`0-InJEoO_
z29|C+{rMJLir07kqI_c_+E58OtTVu`^*cC+skNYMIHeRsSM4=KiD?-hB!GmRIHeRF
z3cMmTiAgGB**NUNaHE5iWYim~3#-%|(LvLgu}60sSDx5c`QiEF%H~mlqxVcOhphPg
z);S+e75LMw<&{5WJhxgnDmwimr|{q2^2rv7MZRtO_*PV;)QSp(1Fl8bKGx3^R8!R1
zvd*fr5a-*T(&yBx#`?{l%)Ry7d!y7oSkXPy*s2g8FiP1J->+BOHu2fsp42DpI4jSd
zw_5q7-GpO))kWC{7u4ZDwX=`0sKe>HhW}89z?uI at c!Puq`>j^3Dh2L|X<#u#;R5@*
za4s4zhqrXE8dPDr^3$`Q?hV|If`bFL8+Bd(%S}nWSj67bdspvzOY4<7pdjvsoAw0c
zb?fB79;sACK4I-i%}{sGDD9~k3$BX#EzOSE!!jOukwx{%SYQ{u@$VWMLMAr`(9&(J
zbz5nB7wRb$+ejY6#qsn{#07y#Y!H=fF{-F0TJf2FGpZI}WT?dWD$r09fr*_!u-h10
zH46SE4lf3S7;UKe-Ep=i==~*)x3Q7wJqAvCQ#Lr<ezhSq1u=y at So^!fZjI)>;Y(59
z7kZA|G+rtH660?v_FysoLJl>DKsg)<#}*aax+XO?u|5tmiv}4<FQN<AMk(I%0n6E?
zoZPYWv)jXn;%uVaZ<?;=@gNqN2i0;<S3Q2YI6_Gal9fFlZ&SWq9T&Cwt7Yq1?5=3F
zIk!w#Vcv?1drOUI`WCe`TC<6v7iIZL at D%BB@=I+-QfjD`DA(P{C<&U#!Vn9w+nA!^
z`kZ?9i at iUs?UH)TicH@@9{wo^r5Y3(x<@%B(p?<x+Wy)6XOwrhhnjb?UXN^Lmgl1J
z6dd|0>$fK~bP$4HxVi_25`O|^S5B#ZdrniWoSu8~foadNl4l=b at tgJf`;_yWRrft=
zYVA+-WMaBFSE4;8bsid=-_gKY#<2kFnl8|kQ{)H(qJ}&jT~kaVMKlBG*gzTKwKSpy
z)G1xZ+ug@}Mss;_MxE8w3o^ljiHj(pun@<KRU8R1E>K at ef}7#-Osh3hX?`>9%ORuZ
zm;07)K5(GJLT-i at Yi8SyOe>%C^_r3r_D;yA)sKJO at dP}kWP(KnTM<ahpaZ=hM<-r1
z|JQ>W3&9{ckq{&!7#A`1>)Kw&J|b4{xOPF~9`QQR+7wKF(iKZ~zEQuCMepc0an8>A
z(aZXTW`(6C4zOlJYT>|Xru2ph!$)5?t)h5Fd46idhff_)&h_fkD=m>n6^tL4C_V0c
z^{$4(rOKw6FYLJG%8HVldj{4FoH)j62z{{c^e@@8v=I%HR$pB<vaPIql66W$z%k^B
zeM-lhxfAmShV-5$MNMpMLUF`8dOqrI8P*MDBnd at _9e)~(Y3(f5)5Yq$XD9 at 1N+9!e
zGl%{l3At-#4mVSAVk}swgw$_<8t7Cvwn#dZ@|c0gM7xHRF0EcU?s6twmfYKzY>JCA
zo2{1`GDeqFg@;CYZvJL_ZSD4N6ln9t|F97xnk5~aH}9bG%>#egp;Rq*&O6Ah*M%5D
zEdz6GWrJ3G8m~29KPpj*NQhr<N*EJrGLNaS<(ZW6S|reJetXL|S2h^xC=%s}^3B0{
zGnTP?pMLiN#7t~<_=)wODu*ae>;>nb7KZ3_#n=?X(>9hMUm14XyUej&@=Hkcm8x3k
zP at j}B9k*jjCbT7Yv%rr3`+q at ds)D2%j2icoYl%KRXyPJRNk=*{GeZDQ*SG6@(a?e@
z2GR`~T{>hILRKN&>!9f<kUiMPf&|?X<Q5T+s3#x at o%j$NleQXxfp+&HQFZ at k^a=p4
zU^64);v$qyaS^Q%ampsLu$jWrkv^`F=|<Pn7LX|+y{J+i4i=~Tp1yB<eB6 at BpF#*k
zi}sL!^3ZRg)p$Ev3&)+cu4uN&f!eB3{bPpX7c+AlJ!(T|AT6e!MEMGIQ at WLpFcH@Q
zgtQCsMH$LP7sG`Bdj5~Ly at dQ@6RyrB#P>zmiv>+gCvS*A26kR7=d-_rge(t<hz$AV
zmypN^7|HM}myU#Iv$H29B=sopIyQD)d|dB7y;HKg%G>ejA4hUA+Gn$iY}u2fi-n&*
zAD3(gTZ*!&>>7`$D(yl?Z3-42 at uxBT1kun!G{i!jGfYQgbf>Nj2k>IEhvVwj+O;PP
zQ$BmBqavjrr?Iz!!B>xPFej4l+KPuhgSmy06m(jgc_s?37F^h~n6MKJwso5&$6_m>
zy>L9Dm}%6twkl_f*%(Du*5glRV~Ultt*zLV9mVFeQHsv_zEP)Cw6?Uiw at Rcj2yT;f
z7mz%D)V83OpqDfrWD<SW(<}w^6VX)V*iymDDytw?dvJ;Rl%D4B7oK at 9Iy&*f>BQ*h
z_nx_cIo9{$(I~_WTL0qG_LfC27!F4D?;my0 at WLXgW$BA;t>TR+c9g_N(GQ!0J<=9^
z`;XEOKKMlGcfF?ihk5y2eH*o+1E+7o$SUZz$?s-MeNvX~r)+g}w@@BYNu3u!hnCVQ
zG|5=S)kv`5(8YY11)~?8Oj+V^835PZ#nrF^ldfaoGNbawzm<dLTRXnGG$A)P;ZnZo
zW8<fM<7IKV1LF at JJ0@+suuAW4uReAxCsvvrn|rMNZOL{lH at 5xmSfoVhf?~ZscGQr)
zRZ+u!)P<QSH at c%=efeEb at BB{rCL{zaKtfR9i}(S~h*~8A+WB2)XGn;MN%JI)<6S`7
zkA-P6l4(^H#r}JW(BFtSgE}R{TGZ at O7Im#KV?PTg?m{QO?(wj5!hQqrOK0rnM`lt6
za?{M+;F{s?3WgzA@*|zX!@ZY?kK9{yRuN9~54s0+g44GM_zDU~<<LVXvq)Q~#;fL`
z^Bho8_yzMsVZdV7m43H8_9$nUJHk`i1QXOn-pL(G<OhD5+k8<TEo^sxBk#O`ysU$o
z7A(vEpjU`6Ejk<GvWYa*xFaYXkyeYYDHsp=lN;%(>io{o(%BizM-U$RG@%fd{DePr
z)MW*QF++8aliaBONDsP8K|6GE(?jp_hgpQv^k7~^Tj<~inailps$dw3Ta*QUA}!<t
zIRCR|?n*P5b`QNpmq6iA&U3-^wYHAd^s7y}&hu&*oxVG)7JpO_POFPl*pdFlvcf%`
z;vyU%#anb0P*jdCH*)WaM>Y4?;ur2xOJ}?A2Mp=K at DwkpU>#{N6+t)3N0%Sc75)g1
zw7c?%xCTK*=v#DGl0x1FL3P=KX~0h>>9lgeO!-HAA|8sD?7~fT7x|?0gDMyg!3a2{
z0k=UaZ09d%gARhHvT6DZ<U<E#M;s&%-(W&L2tT-^ToJ+k3D^s8PZn_zd^bhqhkH2r
z>0u^6a$}mA?C>iJy6ZvVq1w8~@q1><r>3%{MKDX9?UWx%2YN{tOp7iBc}s!2P;gHX
zszoiQ7A{qkL4!xw3d&<w92BQ!N1CI_T|z!dQCN{C`9o>pu-l}SRj11(Gv!UxEp&v>
zAvb~rOgiedlj0EJT141{Abgh&cQWgtQyOL{N{`$KmK61UnySOC3F*0Ez9tAy?N8<)
zeK4KZT at v&oy(@h+PlRg~<VNvz!N9DAjV3qEJ)PXBY+BkPO!v6|z?>7zGwGU&AYDsC
z)HBLa3b$BF3$#Fi>IlXM_cHh=2kjbMFs|;p9${<Yf3=qH0hA8ZIC7_a|DHnFNK(PJ
z|8 at Lop457v_{d+2zpF0Djy#5uPX0mF-5!ML4o_`Mahi3Vo$!w%zhM26yFt*!&VM6r
z#HrFqK`UE2e*w%tVTNDld6<8qFa#4+6qgDYOygp{gZU$!!vE@*2(Hcl|GzZsRIb*Y
zU?Z7_?czE<Ov;iL=`YtG(YG0f8MYeQjn^1oGu4^eAw6NW`E<zTA=^Wg(21cdLr;a}
zhOG-99X>DoU_?>G^oU0zM at MdtN{kv8wKe*>=oQhQ#|(&hB({HSOPn>H$Ipo0n-HJi
zf++bFiS0>wNehx%lg=imBv&V&>UCYO{V4-drlo93Iht}NH9fT~)s^~8>KDBedsp<H
z)%&^L-}V{ZXIY=`(=Jat(06d(MSWlE+n!#S?n>XDe#SD)a))KV<&%t}j71q|GG}CN
z&s4IOWt{}4)K~o$_1lk&=@WA1=X~A2qJM4w9sN&Vl6XnwC0j4~Xh6k)?YZXMg at fV;
z?HY7qaPHt0gHH{~7}7H2lf26O<opFzqjkP at r}a!hUBNR2?-x!fTv>SBR%Bae`@U#G
z(Hq56iqDlSDNQeRmF^vC9D2?0>fuk9MVAdNTT*tud_hHYMOnqX5mQFIG_v=|Wg{OQ
z`SqxYqm<FBFCAK$SUIoq>&vEGw*T^Jm!BOoc1**VWn&&4vwzIFvHizZj;$U0(iQqE
zrd;vEIM2A_SJqv*>8j|f)?9UVyk~stgxCpn6V6;c?dr8xpPraJan8gauDN6KfhiNG
z?7cSp+LCLRTzmAo-q$r;_smq?)B#hknYwW5_Nm`bE1R}p+H2F!UqA8sUDMO151ZaH
zUAdv+h8^@bBYDQM8DCUY&g?&Pt9`6}h5d)>YpNfqK2(!lb64$*+UIJ2mUHE`vQjs=
z?uB}D{rvi;8xk9qG at Nj7$4JK_$7{3nvkGTTn{}cwywTP8bmKW^wex=G*{1ZShNg8*
z2VG{@4A&#BbM7K{i~FD_-m}4TZuXqnN4$C7g}w~mM&Chyq5rACfWVG91Lka>+i&j9
zd3nth^GoJ0od5of{cm*LxOYL~g0Tx0+?0OPft!?tl?y!!*DZW);n|xjZ+6{$Zqfe5
z)r-GaGGWQOCEqVCT<Tx??XscE7B2hx)?Le6mhZi7!fnfL`)GxA#ljUY-JW>+9k-vo
zW5OK=?;LmM3wO=CYu8;r-#z8-l`E51o?W$O)%UAQR?k}f+&w948t(0X at 2Rz)+;{2$
z*8 at A(Wvm;!ZpC`zdguC&HjLiz!h=&D+`DnW#`zo1J(RX-#-`SXS3eT_$m&PhH&5Jr
z{L#8ck8hc^<&~}JTQ_Xu+bXu5*nZ-%B|EZq%-C`0@#@FV?CiI*Vdu#w!k>6$mu{D9
z*UnvSPi}uIe7AA;%-#1tZGF1#&(VMO|M~1Q+n>#N_L=8KKL61Rd-tw*vF)XkFAshB
zxmQYF+4^e9t1Yj-*1Dl}Z|k at Fvi5D?U$lSu{?@-t{L34!RlMH+^=IA)ePhKNuN+7|
zP<dd(fws369Nc at b{cZo--yd=v+JE?|BU6sFy));XPmbmtz2oS)W7Wrv$Jf0(?A`ZI
zj63o4dl~Od*Zx+&*LHHw$wPk~_Se0CJ^%iI_Z!~d`~LZhe>#S_#vtB{R(AMtC}L&8
zC<LYcVsytbEHOQiLA>ItnHlKO49(1O7u2trCENsDq?z@)e!8bLvjI{vPikf(VB0ja
zN%shg*34#HUwv9Lhv?$jLCqYd8^Au%%#pfb+^m at o=<u?UW`0YT$ERs#Y at P8Hn)z*A
zXwdwDq)Xvzz|-W$+OJvX#p?j|ILGnp(siT3Cp`z!x6|>8h+XHx-IivUt-3tHS3MZ!
z5jZt-Lca**6E+zqxH4P`x)x=xMC>laIRgCF<mc8kL7xa!kGnEX#O~En_d$MM`X7WR
zA2oIBAB0H%Rh(0hf*0vIMEdEvLgb|YDz7Uh+aJU<0lAWqFDeI>PuA6mxYAJyH(dOv
zBl7vZdLx(`gb1cu2MBLB7_w7sP%K`gQH$_Rq7EA2W``@eJ0N`|08=m)7of;igU~*$
zPQ7rUR_I=<zt?Kio_^HuQ0$QoK}po~?LFWIi<JKNkV8;IYHnPjmWF at _Nk*Q7v8Mw|
zsHU$$O$Ct4u_&1fx)p!qXGLxbz)dm~tx_u7RlK6QQp;S~RZo*34>JH)FaBhtOFi;G
z{P-Yvf^ANR7Xx*7K_1o$aQCm&tzr_c>lh&Y4X-~zGGizUW8rw!0SrXAskK^nH;aY@
z`&c|{70(h_BJN5hvtBF(cY}LF+98P$Nyja#3~cgbfvd0|1Tgexm#_hl|D20w?dd(X
zJeH6B?*dlHY!Et943R0NY$)Wy3}eF~AEq3<jUzDc7{x}jOCfasGIlu|!^W~J*f at 42
zyNZox6WG;kBAdjnVUuwm`C42rnu at 0-uV>TQ4QvLh!jqVGR?TWyEt6Rtt7i?&!Dg{W
zye`tjT+EFb&1_Jef9fJ|?&V{C7GQJOT-*n0#(v+8YyrE8Eo3+2Ap91#h%IJI*iwj>
zzLhO!x3LxMc6JB5likJcW-Hk$wwm3;*06ioT6Q11pFP0VvGr^Ndys8p53x<`VaTi4
z%pPT1*jBcUZD)_M9qe(olRd$9u_xJ6Y&UzF{h2+(o at LLm=h+Kv58KOLWG}Io*(>Z-
zh~M7F_OrjR*Vyaq4cv%2z}{j9+1u<8JIs!-ci2&Oj2&n1vJ>n*c9Q*-z0W>ir`U(=
zBla=-gni0Rv(MP)>~HJ~_9gp@{hfUc2H$VlKiC=e9XreZ$-Za*Vn48dvvcf6cAovj
zerCV0Hg<uvvku(k at 5G!BBHp;f at oFVEaudfZ-FSC8jED0G9?7G4G>_r2JdVfn1fIx~
zbQwIE_ku+CRNkBS;c2`tPv;h%fyWKAcsB3Hb9jG#2_L`*@?4A>gZU7i$Md<B7w|%E
z<3+rfm+(?Pl>dnj<HLCwFXt6}1Ru#q at zMNJUdb=xm-8`vEWd(}<5%*l_;@~nU(F}-
zN&Ff<nNQ)@^6U6i at RnWAr}G>53|_@&ayzfq9p^Q?mdm`3*YgJM;Inumck(9g;%@HY
zv$>c1xSt3396p!N<IQ|NzmYHCH}Qr1X5PYY;fwfUzJxF3%lNH)Ilm3hd*9CQ;CJ%7
z_}zRZU&UARd-xjM7+K5j<M;Ci_&UCxZ{QE|jr<|Li9gIA;hXuRd<);oxAE=#F}{O8
z&Uf-B_%8k=e~RzsPxC+XXZW-HIsQC<f$!ma`HTD|{xW}szsg(rKE9v-g}=sM=Wp;g
z`2qeGKgi$ahxlQBgujCefXDc8{w_bk-{U9wU-|p|1AdBs$UovA^H2Dv{51cJf6o8L
zzu;f;ulV2j*Zdp)E&m5U!@uKa`9Jyh{9pVB{%?Mc|H#ktpZL%G7v9D%@OIw872YX<
zG)P>MB)w#ijF4AomO`XZT<-{%BBV$u3a at L#NU>6!6fY%6iBgi3EcKF7q*UD+Q^4iO
z%NvnLx-~B^sOM{TtELxddZDJ<G`&dEi#5GO(@QmdgsNLBRo$lQw#re4dZ*pzGc*N!
zjvAv+wtH(D%(82a>~wo%Lj&x7z0Ys=hSH}>Zu0n>^#Pyk)z>+kO=f>XmDBF6m$|>e
zL}rK2&)tniuiWIGBb(;C-Az>vms#lUfM0Ug)fs(`dY9cP)wt^oey`ovpl@(D$!5eR
zSJ|C at z2DI!>%DG!ZFsGFuFDAnIh%tPW57dh28XNKJul4Tv^Q7PIJ`AZ8EJZCyWixM
z>%6kB!Aw~Z5jx#9jruyLy*?C$sr59tU9vB9j at ub%lB<xPFwIB_glOh~$2i+t<F1uW
z)u;~WlHXphhw|yG-R?#+eVXjvMuW%eaQTfj_9oeD*VnmSe)v0UjSj!v>8J_w%k%tI
z4YH%Y!5=Eja~-w*hEVv`yQ-XWoj+VP*2pfu><v>bUJ4$enr8)ken(xip2`yDaMdE5
z3a6Px*vLA2jZC#xHOEmayG<TPjX&U(jUL%m<8X#H**#U1SJ`W{*HVP2VdPV;b@&aw
z2D?`_)HKMbA!@J)pI`P=RoiPC=i0rs5p{M{VbEp{8uV1 at 29F&`0K{;6Om%KA1rHa&
zgBB5!W--XK<QjiC(wXCRt0j*JT0{{-JkEfxiV!2T$>GwBVJZ>{XOp{8=n=C6GO7fT
zP~Z at UtIn;0`D(nf?D93Z{Sg|NiWMOMR867Pc3047_j=uPMNNjOMv)7%Y7TfpRfE6?
zQALDD$d1o3U#_YPIGy2|+1F%uI-})zHBNhzy(?S#dPkjK at 09Iz=p$a)EH?wu&>A6R
zsByY|ayaVC<#5%Dyc<xTF4<gTcgn6>yVvNoyK3D{rW$us6WZI at WUqJ0{?K531w38#
zNcjW0`{&BCKLSPfcqqymblC7ZV4>_)6ARNUl!YiQ<8x%M-+>fkG<$>F>zEJpwL3$A
z at l`dz3xBwOuEP(!R4bm4jL=@#!c~l~LgHSx)F?OW(VKl{Ez7<Le?y?D+E*3uP{l=Q
zHp(v9Lj)mdusiF*1a(nqiisK&BqGA;a5Vxs)fP5+0=@<mD*`=9_JVAH!nhg*330fL
zNZixV99Hi at 3e_qesMLXyF*rekTn5qK!vu<}2}K4wuWAhy0R*r~E3i3OR-+oTF#s}D
z(-;O6L#Lq%u9dt#pVUxWYpw=1pz>V$YT4-wtD$PGL&f^#&;~SPm5SZMNd4U;OaV`b
z(5XUVROGC>h>@{9Ttoy>J)8obo<I~0Xt=vtHqP~;&o>zSc3-2<2#Sh23#s-x<hmNW
zPYxx_Rr`sd-s=u{KvrCh1|Vdh)>tjuK_R4?fFDiiX%6++Jpz9m9=*>#M-HXdsj3E|
zHUi_^ULY3_IJw&iis5xM%KipKSl<v50FCk at S{Zq$cFG1IucHQJK2Xybf at Va1(0wDj
zOrqMO>)q~p5dSV35Z2AXfHstyLs93lzlutVenLicQq at 4!8m1aWU7_EAvb%hGpW6#m
z!$*LbgbAG|II<CnV2n_4O^<xLfiU&J|5^-5)o!$Ln1;?2GCYXdWFZ>w2fq4c&{i`r
z-HW!jgCc_Fg at U#>fM^Ds)n?EIv~#^2DXLgxgNCkf)v98uiH6durrI#T`WxInRK9HX
z1sr~AF*6|*rD&|dKqbo<Vcej~G*XJ;go;oda5&Lh>dgT5(6|#~Z$j#JSB-3Jl4~0s
z{;)dA5>lBZBkMB8fd*0U`ntS2Ii}VfKtoj_pZHQ`#`bVg at vnyy@UMrRS|#)%e3)t!
zfM(T96jj7eK~1%?uMxwB(P{UPCJ at CR-sG;Pa*5s;uHn1Dx6s)Ew_nX#m}*qp8Krf(
zP#86=0i(aOIaDJBsF>*PB#`Pbsv8+3d#F6mLtPX`v at ROZ;}a7QgRco0G1Os%a7j&a
zgQ*^)yT at K@2ALChVWznRfkg^~AT7Y_S~KbxqnF)@9#kubhzuc^GpdW;X#@zwL>(+d
zr`OkjiiHqJ6^6 at 3A~wKEeU-JiG_2dm66On_N22>WJV5I}wQ54Jl7etgVE%lnJBM5&
zV*sTHX_gat(MS^=qp!gsJ8L6 at 1C5%S7#gCgKwg1E0f(;vHR=VilWE|YS5pfDrH$Hx
z0tf`@;i4i)4<{l}-GKywYVbEXZTcFYufPc01j!6lsVY^ZprSsEj&Z<uhsWpeRb3pA
zV!GUdgO<LkAg=&Z22A}ZQ$~zr$S+D8oH<aO8p#)qW~YqlEYS?rATSnLtWig^5JA={
zD#V;`4ONGHveO`pZcQVbiXay;1*l7*izPYWmFlZKQovU$Ib2?8mZw?r2CAh-?_8<c
zUqjPmIi#!4MhiMr-Ha at H8tm2RkyQoO(%3FnKgelyz%Tm}f9piWiU>Lj8XVKZM*fJd
zppZVc at MesrfofSD+BA!P9-29XKEk;x3{|G77I=e6HAp%pfI;GgITq~oUVD?V4s+T@
zuVk-v>Fe@~^CPPr{%R0*P-C?jKnb1RFu%}*Q<T$<gf32|BD&cFp6<ScSJB;k)h<34
z(_Hslp9$U6>vq%{&@lq at kWEK5jV->$W)B86cfjkL9l)S~=>Sm0ZL9-XcFKDC&;agt
zcqCtdnzpFOM2j2899gOk)blxwhPkq%+Kq*S3;zgEY>gCUM|V&uH at Ouis09d)!A^Aw
zPF_WkwQkG@#PUO{{Nj at EIhcxLRx0v@P$hX0>c}P>s@&vcrB4BUsI5wD^eLiGF?~wt
zBbIHI`6KdB*Y<q4loC*B0a*#Clz>VJsFZ+838=JGUsaeVAgaj(h{8N1Q<x_fi<S8!
z5m8|tfC}>fRG0^#!aM at X&!Z3d<`Ymp0p%l^!h9rCm`@P-1d&e=`C8sai6v at f{wRX8
z5}cLbtOREzI4i+f3C>DzR!XUWQYs(_aLM9B5CvNHMr#p{7Hi(h{Lvx=ffi^<juxw3
z_=wdmbc(!?;wYq43n|q?O0`gU5NM$WdMPDrql9e~t&M<e1Y{#18v)q}$VNam%4!io
z6cI!bK@<^0k(Sj;;YUD4#b}Z`;YUEl<WWpO#RODL9>tVQF(m`eZ3M0%6D3nj5G4dr
zLJ))(g at hM{gcpT`7lniug at hM{gcpS+1W`&5r367pQ3#~Kr%+#K70n2wfJt}|1R;eD
zNP!O^Y=jgxLJC_R(y-+r4I5#EjWEJS7-7pRHO!GgOJO9Guu)t#LJ1q8gpE+bMkrw;
zl&}#>*zze6D<xtj2to!MA%l&O!A8hnBV at 1<GS~<iY=jIpLIxWl1K8T=Ll8v1 at JbMU
W2%>->3J9Wr?l-V&_Su?ry8j2p&Q&b{

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/fonts/fontawesome-webfont.woff b/ui/new-ui-samples/fonts/fontawesome-webfont.woff
new file mode 100644
index 0000000000000000000000000000000000000000..8b280b98fa2fa261aa4b0f8fd061f772073ef83e
GIT binary patch
literal 71508
zcmZ5nV|4D$*R5?Ex4gZzZQR<n?e?k7Tidp6+qP}nc>DW*e6!Y`lf83hk~Nu?WKPbw
z$cl;r0RsU60b?owA^c}IF8;@VcK`n-Dyk&?;~@N_<NXI~kU3{DVG+?EP49;j{0|f$
zOtOk}j6a(159j at XUMQ<Ou%WfS-H+Du0|g);kiJpSoC;HY#~%$8?Z*e|KYV`!ftp&m
znfz!!?SIJw0oPuD(~8lV8S5JX0R#W|0x|u775WH0+3ZLB(F%Sz at efE5USTNBtesqc
zw2`0oqkftz<1|3!wz4(+ at dHx>0s at oxffm+O;DEKhs~r$9)PHpee?SD11cGOyZ*Bae
z4g6eR%Fp?I83BO{cD9aAK)^6sKtOOeKtSkOn_2=~F2)8XKYb<jQxD=lu-GW|{@DL|
z5NKu$UiCjaF27CxKYnz0`M)D at KMdmsAU_Nkg!-oh`ycx$T-OZsOy&(TdV0os`sVr#
zCVF~iAaYZ~u(7b(v2J|*$MOsyAR&UP;jG}k{XAJAL}Tbl;!waLM1k6cp?-S9b!{@X
zT>?}eDah2Y!_cIIg6f>yjDm`nA8I88jTK`Etu#QEh}Z80tget%U_elKV2rT<jTp10
zhH*+g(&fG#2a0k9${*A*7&PQnFF16qWEIuuRbr|3x<Zz)LCeSFx4<Q{2tsRvq#I`r
z6Q_%N28SsNPWWo=#6x-T!cq%4OC^W)vh?Os$CahPxW+t$U=2e!d)!}=5N9g`T(^uI
zUq%ZvSK{fXJ!i(DVlO#>2HKk-F?ythpkmrA%jOJ?v$L#hV~Mgd5*Wf!EI$l(g+8dJ
zU2TXWntYJ^!9UE;oD|7;mOmz|)Ttu%a+j4_$_V4ng~@ZXg9TC}EyASK`Ha8%8A$^e
zi9S&hSfNA727+-vhN?gMrauOvKYE_Ej=8#wqkG5LJU7|qI}Wy!7X at e%&~M0YcxF5=
zeM+XH>{Q>?Tx1W1g>O_nwt>lya{e0?Klk%zEP}YMb$CI0DlIO)v_E$lKc%wSHc64k
zr%t4S#nD?rsR!4@`&xm37zoRQVJaaF1j+w~*@FmEDi^I(YV!ireya at Hww*4ESZG?X
zeSZ!&HGP&fc~|mj65rqPJ$I#!l9J|qer*#nUT=EwJa0Kp at f>p_IBIf4tq8l?p$r=b
zIK+$yxIv*WY^ZRzC_`neQ8^T|zaiQye;3JrzmjCU6vP~#_3X#Q;7PUM8BneuNgKxr
zV2jL`+9be{fBf~VYjuSjbIX^%w#(v`uW}W0WWU0=yK+ at a!Sz4+g()qv8*S%m>NuiZ
zKEGJUnTvpMW(E;`QL___k#ROO8mNge<gS=XJw}R38=KyFI>(Z1lLlX1np{a0^(gvD
zYFanA9 at KN%JFsU`T<>-}coVjp<`TwK20AkSC=R;!0zjx|J;;Se!3?ZgZvpxwKCuvj
z>m|V(Wc47&+tCJ4zy*X)mlKw_loJv`YYP>8DUnwYypNqfmlQ|qIxpIj67iu#={l2W
zp!dcAiE9|JWS>RnC9*{owVbuMzhy0V=MjX at tnP~5p-|XmB%kkL*lP)6km=Ozm|y{;
zg^T7ftnT{PPK{)?1ohyB%7m;RKHW3f<)s at jt=c3cHjavqJGtxS-1&vRZRL+{pj$&V
zYR5|QmUUr5Q<~)Jsl*VaITbsY9L})mqI2QY(I5ok(X0j|+%DRhOifo`^CX^YcXz2$
zK2#wh(O&S?7PnfjH8dUZP<-tEGF3t2jk<JKH$_6bpI?vSCX>1sy?6?BNxNByJ$i?b
z!8EhUO3IyNxYW$Lx5q;iTI(y$4T9zaxS*!UaTXoqCUm-16EAG9mLWKAJ1oZ8xsEC~
zJ0X_ZVqA}}-{NS$_=jI-J-+d!V;=PFZulShbbWPiQ}b3PeuAg86ITfY$b*OF-(w)}
zKm(;IQ>K`ZNRaQUfMKClzx7BQI8n+pie36aJMSf)eX?Ahe6l6T9Kt_%bG2?ADibP8
z$E~WHy1!d1W-2!1JkJDcm<o3Tb#APb$mr%2OM<DMEh(NX=7%B|B?$*QaFN?W_^?Qn
zSVj at 5F6Rt@G{9;{>zG_xWOS&n_~EqAPM%e6o=q<{(sfJ09h#8y79=)A0<F?NJ!-+_
zlz|bK+W1BJ_*YSP_pA=^FC;-jy#_2J5_Wy%9KabJ*<8#$(|!+Z$x>f0x>#qVL$i}L
z-UPo at vTgBiHeYt!Pi3A)uG4ktsdR8`!ui~)V`_DHk-X+(d_xRlpQgo`b*hxKCZ6w3
z?b7a4?ExI0?V|0!hwKG8(XB<{4e%XWOo)Ka>tA9s!Wc{FXh4~HzYL4`G`;pQQOCqO
ztxVGodL89$WAh0>ruA)@MN7s?kIEG at E2Y$e32TB#`vk|7^JaulIl^@&U{p at y3E}y8
z&PW%<7eb~Kb{vb<HbFE8xWQd(-FZ)KcuWE<W?GQBB)NCr6seNWu4VO~@SNj6j2Ke#
z*UfxjW+}e(6HQ-2;s@=lYU at 6arPK~$6fKo8=QPNo at AJR)zhB<ymkCs1Z=asn$7YX9
zaF5Hq20sq$33-egalupKd1vUTruItWrLf$Wz?6f4p`_U{zo$)i^P|gv82YIr_*cwr
z?piFKyV+F?gF&XM&N;$exxS63z<Jr3NNaP^bIr;idw=JKi1DD<KBE_J>}u|{3-Mgs
z%R`3kd6Z^<SVM>3ZThh)c25_7p=?9yP(F{vc0&Qah%onBYWl+lf>Q`)>+(x0yscho
zLkh(FGZQPmBt8>WP{RDnm2kt7B)-uDz0E4B6~cn2&E7?zriND6;Mgn?IcbQkZA^Na
z;GzS|5qbpzB~mciu#W~E!`%KdfUYruQI3>2!tpL8XTcHn3z;4iOz|lZn@`(ZrGtr=
zU&SXnI$E3ZUy51!)bd*nwni^oENw+^%+0mZ%^fa{6#g~|6yXJ`6feG5jTpZ~A%ktm
z(g(7;8Pq`9iMC13yjopDkiNaprdZf6|IYpT8mJmZWYtw6tYNiYsdM_iRgJ#ZZ8H{%
zXOZh}J>A(K^!zUJe(8UeolR($A=)nP3U;rCQcFvxg{Ahqe3OpBbFgmvY7FulPfMfm
z`?G*~+xKfdhhaTuH(Rb3S?n2{Rsk3j{_n54qvFf-k?5(T<BKH!!6^dD at 7oPf<B(6B
zL=Jg`ET2D&Y(+Lslk{HdQ1F62T!Y*oj}cRl`3zNHK2&Q&oLbN at 0yVs3Daeo$f1#F2
zD0_X at EYzwP{(&eki^_}jToado&-VI)XV8R@>!X_jeVg(Gf?rO7SimO$i<Hy+^(W%%
z+1!l}LChWqu`aTujGFNb=z7vg9<B3{D4(QW{2ba7?lO;b!LGpApJWg>&9tp<{Gh9!
zH1V8LK+QIu at wj$Oois$<u53<|ZVps8s76OI#H`$<Z`)%d$9yvW^>2~9n%JTF%c1!(
zDo~cyXY*(yk4-0 at Aw^pBcr9(9LF0nCzJZ2jJ~>Sa!tsTmKj~~B7+*Y7L~`S(Uj_h3
zuv3Q at HL<I2k!0a6a8C-Ve?iaj!S|ME29Tfy&ccVq^$=D1*94APa*m&9VhI6)S7 at wc
zcKyihk3;S;{t$B*G@?Pu<w`S_Y_tA7plUbP^SY+rQ3Qo^nsclSKZUMe;lwPY0icwC
zkc^XF<z;(1w-D;-MBTtPpEE4+0rmEOj#qDYWq4*Tex?4ULVu0W*8FCn*Gq;8R9ty8
z)eeYCzNu~?XsrV>BL*-IP*%vF;qaF>5ONu_SyB0Bm%SqQv;wIP^0YvHX4_<@rZ^9N
z8FY^tEjgdp0Dn`~aNZDT;&ij>;mLub)fR@*;s|mJb}Qt&9trX!-AwFtpCc{NF)y6m
zP*p#NY!`VcvUx?`0XK9e%G83O(PwA^HBQ+>6==o<%wlD5XwdoB-T2dO5%3L8DaA!2
zzC7h*Ld3t-L2DNv0PXePdU%4~&b#5z^{wJRPpVv(Fy)>WDFO(l0L&v;gavi1_%$xF
z*n?J$Ud3Rn8I|DR)FVe?esHG!HR*jz2wYr#(t_*A!OV78+^!OzgQWqGvbit6ohG3l
z8Js)cR{o)$2tI(d#lV%Kx8&ByDG at LBDj;|YIM1O{tZ<V9>1x2O=fllR<uaQKBuK at E
zDlVMhi9wa5V}U7Ji2eE{#|2-*Km^kY at 8qaIdNPHaXBevWL51j$lFh^w1Gy at FoqF-|
znPf0!C58Z{vK?dxS(hH(ib3bDg$c+xL^249$&VR;5ub4oQwt$@HXw{%87;tYjh}>g
zC^8UDV9_J+JNB1iyO#3|Q(tGB+~NKNxTHoQ{YEi6{H2AdM_Jfe^Pw^%)xMs1l3R}0
zN*XqtW0q8x#q4W0)*F~(pD35m83n>lPYVC}@)RZOyy2%4*<3z7{%A3kRa at Tbu5Kg9
zpGGX<X)i6Ns6qP{0+R2#jemI)ayZ1vQcPJQw~QqOF3NUTrZ?ChgpIIM(ohaUCBp%|
zE&{FA7E3dx+6&94C)aKMfVJqaT<nOx(&yJrsG at hY)60|tftVt7#`fr*Q2!eNf(^rY
zCJI$K2JitllbTbxMo?@WjHBsq;BR)<R8?(}3;f7mFF*Abk7#}NiQpV#?Enf09}RSW
zaBtKTBJ}*L$PfS>29mNmhS-#Y1&zYq;eVxPgoaZW)`Z)Rj)^Uh8JZJ6I2C^*n2DK#
zM-b{R+bgPkk14b!>9EzXOUJ at 41_#zzzE%T`nI-ob!SuR*MT=K$ZdUU9E3e!lqC$)2
zFh-6$1HY}I4=!SobUcd?4lSgjZW03u?A(4w2$RR#B3GN{#90FDm?TVF9+vN=Mmd_w
zT0-S1Pptt`L<k-Oj$M;cVEP at 5XN4@bnkaP?4AGP?2Y?r}K(1c3?eqOSHnJQQ4@;Up
z*diP4q*}85{Xtm<fcmXz0}h4B&T<?%Wcc;@E<w3f1PiCut*dId;z%g{Z!PwEpsJj8
z3naV*CmY)Feub(>tA-d3YW&0-J^>Q1{vV8kg3ikCr9_yl`JfA}m`41mGrqixHu2AK
zfyZi18+iq%Hoe2&??+ybeVsmOmR2Bk%zs!Ke2`!^|A2Q{shH%2#5f>vG;P4F&cygG
zJ}*>jxsB3<sR%O{UYuw8oU_~w+5}NDa|K>(7lWse83~5xSV|=L=h-ND1BVRh7o66=
z49^$-l!^9Qe-7bj6GWk;o_2`6Q{13Pn8*P_d5RN49KD9Fon|=-8`~6i=-*$vv*LXl
z{SCa{@+_z+mG(OOwafD?Sw-!g^=V?l<^t?KzsXMg52fT);{Kp+0v8Br#?m6$QfTSl
z at AjuJ=Kfl*W)Q~gigG&R>(((VwoCmpi_Dm8Y^T0 at qt`xewn8*mrfF9qus=EHEMsrN
zpBf)Q4AXe57UJNQ{vIeOeK}2d)@Ht$2 at 7-9UN?zb=>q8ZjHH>~#FI7xWOr{|M8a%*
zoS4I2vVS+9d^qWDKjq0OTCTE^u^i^`o(=jywa_?oahXs`mlm15W(Cd0dNl;8z=d`@
zQb%b(@~I)6q6Jq%aN$2buvh1p7-NCr01H)1fEA@&J9+ju+CEaUa$dIuuR2ec at TqoJ
ze0`+0t->!);znwAPCvqn9d8jQ2!2wsG+<uyxqmn8+|l^SA288Z&pY)7zsJ6m%9a*i
zZQJ>kI_l`5{f4(vC&&PN&qBr?Cu+Cr$bT0+{^4i$hO%RCvhA%^^V4QG(*m2a5cv#q
z54-IDr2!_HNXRX%%B}%Mj5euNP$>XI2h2M?md0ssp1~TMkSeV}6R7>Wg`xuVa5~en
z#yvkP7y|KAq*JAT1DZ<ZQq1NaI#$Cpv%bg}APL`LNg_xCs=adE1?<Qg-DnEje7N5L
z9krl9*<K9no{nt0zwg at z%HObV7lCq+h(_2dcCs-|K%Z`rUke!SI~>R4Tr-rfUiAd>
zQu!>!?qMchl%(0keY)- at -T;xoc%6^tg;9SD)W{$f?qm?lWVt_B&Yn;^$7AsQ!q!z(
zJiBT{LIvELbPcs*tjd9`F1cIwoFfRuHD>%nenmSv<tac0s02Co|I<XI at cxtG=v2um
zWDf2v at IowFJ|gf2;iM~CXqU4&N6bMAnK{Zl7dJwQ`2CmQFP#KnhH&@9G4RjPt7n#I
zx!V(MpAWD%bEqBjI=x`K{BOd at LAS&pMP4Q_gQOUUdBWi<h;h^Y)Xz}+$-=IQoR3?h
zzcN(ck-CT<uwYBe%X}a{o11LQ%g;64V(#uc*CtQRUB$;QZ;#CCve7Yo&fzuhx^J^?
zvr`X{fz2xf+Ny*3l={N_0!ow&2ZG=$c<-$D%OXmq)QM4O^RrGqFz`k9@*e?Ewgs_X
z7PR>C__0u5`lQ*S0i|C~4JrQ;?dKs2XbRirOv|Nb1pVFucw&cw;s|rmDX0DWX}lja
z0*4Ogg$Q%Keq)@Jhe*j`e|a-kvZP0JK(bHs%p9R_3~sRcs^y4NCtUd-W=Qw0MVhoT
zXb#E0;a&Su&eGJ<Cf<qXrQ_fG1`libk8JQzqT-VsmVN9M+9$t7Ib2TcMuuPAx at rCL
zXF^WT$nyw`f=YP_t^X&6G9BVpm?*{>K|?D~k&Z4#e<UQ&^rg3plKhr@({Ud{SjB<^
zpOtyA+ZKT!9c%aSz|}G84>`fofr>XMU}wci5@?&k>+{mKQAQJP>U>9op<QX_w1AVR
znHStLwL%o!%zB~;=J at x<Ci+a!J+r@@NyNVv2NUI=_j%v$Ibfo8&Ej~;W3*bExV+oH
zsU#>&v3=T0j&c({KTvZYgq}4et2YP&!%pWOa$`!58birqP4JA{S*Jz$o at -N3$JWM{
z{V_TiP*3ZdrJ at R1syh>)tGhLRpVx$$>U(s3&?0Khr0<!nhmBV6 at XxqX-z@j;Rtsd@
zeJC&I1muFZ{|2|fg~n5dL>T=(Cb%6gHL-jem>U9d2+~u`^LB$nl_ctl<MOsQPt at aR
z0l1#=Z*8goQ7+_kD-I-O{a&ao5pSQib{zbS*%8q)6i<!;makZHjGsJMSzi^^ZLYOZ
zuWl6n`#1xmuzZoC+Z&z)74CeBq^(liprqLAsL>9VbQmVy7Wc#)vg;Ou^;U<uOU6`w
z7+yc6t$P1qQV(@37?I2><-(LHIy0y|$Rq-j*dQv>p-|Wq1pkX0G}5<lbBs*yE(S7i
z`E5Mup~Bo>2GYH3FV>g*QwgWVo9Ej0W*Tgk&H!#Nb9^^4*P7Y3x+#6-Cry!s{G+!;
zzTubk7|r8_^q?!_zn4!o50jx!sDWHx^+K4$k|WWJHUyX<)m&nXI0<SzTY<6~q%1XR
zp9kRZ-|dEFqZ$;V=v!0k)Fm7Ts5@}1DNaqp-6D1&Z!(ePTL=ppQnoH9)MT7#nc6Zd
zyL1OFp?|Pr6l*bZI!RA5gdRxx?8HuRiu5a{5t?q=Uu6=S1lCl9#hL#eQOJY@{RQH_
zfvJt{orLw6of=x>=)|NxQQHy1Ivprd9|u_f1!#3tvegQQgmn)uf$EP^!i)@t%+rYb
zZTourq<d6aUQyU+EfZw4<#Bz^{BdmNdwOX5JuS6bp<@o8<5+c?IftF#CiG?`(QLT;
z`oc20UT;0PF>dlQ@$Z_#lFdUixVh?>M<t$b&(fJ3>`tS8sshus0q at VqdhK3O*FxDT
zKCtXbAtbH$MH~n3Y~gGXw|4eC$CSFDdIx2aO>ZqVnKW_W7R}!oA>{sehXRpOKbtLL
z&gr at ry%kf at c2*MEWdjjt at 7toNrbw4pu<-A!&?(Y0`^!g0z$y*Ys4QxI?W$VyWU~+8
z?wl<<-0(@R`ezz|RmOk|?(lmF)}LS)B{)>s93GHzP1jW`*sZ_Xs=}qqMJ9>2Qq_Al
ziQ at OP<iOTDL8hg0Ngh#UXr>qqfEC3i3ElfnK**6S!3C{o!*UHn$uVSK5;P+`;k^K?
z=zEX%z#j(v{^&yh=JFJk(U+Kz$1)YJ0v7_Pd$O3hY+Ri9X7jWdi8mex5SmKS^=AZK
zL+6K{uyN9~k#F at H604{xidmVErlFN0jAN2vKt6<Gf(d<`*6`!JEpAT-s*~QiC3~PD
z>t|sR!d*F0e&sZe#znhk-}LDQ9*<S&M-i3=wTk?u$3<S_Y$%xOlU2{v<%T?c03#W=
zm#jYz*Y(-}EPmwFuVS#NRX}lFh!<4DyV6LXY($=XMXuXdt{?A66NI}B7p_=}wKp=5
zM_}3!KLZW_F0_Zcw^?oxkP<u1sS&6UGl$d$iH|U3lL7u32b&m*BF!@pdZ+_Sl7WSD
z;ykhAIGKc&l1H;M6TC*&e*{;QA8A*@U2i=R9JqvPD~DV%hzX+oo|L4uog-1RLyamg
zp!l0ZGK5QL<vCpxS-HdJY~t9lJbql4NnWo^)Q^W;adex at 4UZ1!Pca<G=U<GWOADX)
zHPlhV>_M97b^7lW6|vQNy?gV^?bqUILC}4&37BH#Y=a>x?!6*O?QiToE0?&5gcK$%
z!ajB-LVyg`h&lH%!v`Fo{%N~aH at T(c8I=6 at ucQJE8KzMbKL(ZjEyW26heGzGxDZo)
zrI~}cdiHO=Mom;z(pQD{R9Q;NGkU@=LbK)%hEKzFZJxD7!%w>Chwo(8?9ESx^$%jt
zwp+I0JM|CL-pP=`?8 at s<#R<5|%mZS<kKaegK({=D(ilvs9wiDmZGd0LH`{+?y!&SU
z)z^BwFbyf~3(RvxC6N1tf2GF=w5DKmauzJ-`)(PifZh1?xKq{@WthnFvTgCC1;fcR
zz@%-85t?4BJ5x|x82-DizI7;Zn(%3k25kt4_+#cr4l~SagLw;0NF#uX4xC)}jitTd
z8X=X{k~K+~pEKq~g}USn#efh$FgQ`9(e6H2i$Ay#WjGAj>5DQviRoN2ijs$rkEf<Q
znVEH%sKuAf4G1GrHTx}|4^EwtZJA3VZXPcM^0$oH-><^JRA^BCnLUYh$`*g4%{gY<
zohsTP0ITL7q8gttCrU^e8Ic>VbW5X}oFjM=8o1ugitlX<nO$0K?W>@;4zk at -b0AFy
z6q*h^=5C7~D>+BJOacfTKCn9iGi=P}3@<kDogXDE7QH}&@ujBa{R?NZ0M(a at KgE+I
zHZ!}H+|MV)FR?|x{9P%|Hx)1i>(O`tOlf1gS*2}N$Y5AAB*a1zvDqEP*^_KTGL3)B
z2fQ1Gt#}y1uh{ZK59DdS5S(~Q*UgU;*R^FK{$?=lIMT#qtuR+%t^LLRvt}`&j at 9h{
zib^PkM-nKN3_AQa6(d_Sj;@NIr4GLA*%UxMW!k;^zMYRcbBD^013_lE5}sia5dMka
zVo6*F4w?RX$jV@(hDHK{=HCfj58{9<b9^NwIN>JbPs+D-Bs^M(KeKo|P`Ew2uX;E|
zEiIUGIdoGEmz3wl6Q1m?ST}Jr4Va|Fl6ijQ at lXiz&g{5W`HXk at y7TlA3i$re-FhwX
zZf?>U^bzC}@vS}8Vq+uJD4Zn63~F^Uj%CDXDE$aegke?EE$W#AbJ`YJNsy%9mHLXj
z*Z>%<108|Xy#?aM%)S*41K^k_DO$545|QSa!#6K+O!WQ&4LopIdIEumfu13C+hlS!
zOf`f3b!G+{Y(U%*EX>%8)>)8PwXYDZ8<mTov=AgZ_poIZ`px<g#;FvTS7VD0Q*kfw
zTas#j`f4P-m1Y0Xs+f$~DUCpOktg3NWxdeMC0UyiEk<~7P=zP4={o7;5+)wbpBDDj
z0kajkeouSB2B|s8!}QtBI_w^wWm at Gs$NggsU-6&j at H!mC@<UO~0o<gT=i-+s8)9G5
zuCgA*Fma>WRk1-8dI!8`YjX8(i2C88`TXTY?h8!mp!KKH>6XY9EAtj7J=ymLbWq8p
z>5I_T6$nsqg~P7v;8q)Bg at 8NZd5Lz{qk*|hsoAT&VF~sqKr>@L1QYV`RB11DSQH<^
z_rUzQe6kz2Y9Frn3&2(TwD)|`HZoHJv`VTFM$w#z(+TCyeFjq<BKi&3s4ytu!9rB;
zU!Ug`RVGu!q_Db}@h<R?3JfQ{!D~WcI at 7*bV)aR?r$UU5ek(HdGqQ|0a1=}llH(jC
zk*IG2W3fLwK%76nG at h3TXVz?BH-uNm-Pp>yg0EfAXJ!1spD_Xwd@?FBzTROhmHM at G
z?~!T{fk&6 at cQs~}vecF$N40n_-6{Mai*W`n{S}L7rb?IaxGjP17wKY+aB78G>E#6H
ztz_79L>d>lIS47MTR46NO}i-IpPQNFB$&0hvV~67Vg>4nqP&^4zfIqoo|9O(saL1y
z3eAQz3;DxeqfG-#r}<LV&E6bMGsk_{aPRv5KWH5YOf7vISZ;!rr-6iyB{2KSel2ke
zeDgq9Q>yQQ8<dNR(!e6)HJVk&5gG#wX!9u!V{R`0@>l^^63ZKf1QHd^dCZ9j_}>2z
z at ZsR_d9gS-9cJ`V at fAtD|8eLY?C9U^CBwZ*yc)A}<a;)AKeZ*Ou*gSp=1M3FvAJFD
zuyb<qzmy2*Zl*9;8dzx#vE?avICmOa;;ABMUdPVY&`J11*(r?Mhc*4KS>;z|5<IVs
z=)(%)*)1$H?^PTZx}f<Ihz|&J7uzX~JQgBBycG-L0~#7Qt(A<&qq`JyA~{4v-|h{|
z!z*Ok1*iN5WsjozkPW{^+t!z%fg)gzR5`+-ypK~zHHFHZ7fcqC*U$l%&<_#<enG1A
zbKB`o at +HRueSf%$$xq|S&8aB8W<Sg+>W_yTOZz3O5sYdOaUkOdNR51lI_I0?mZGF)
z({Z9u4dY-!wBS{YDwRkoS*UWboU#&1B$x?oOfuU#f;Ivfe`K!rm{<Cfmj_a*R5mo0
zVyqIjy+rblM|)Hlao at TxG}^phdaQn$Y7D1vNfLic!!8Tk-v)P?_2DFhj4mh#H9jgb
zebjY!2?PhhjLfn;y(w;tTBT8T=h9MtYf-v8=vbp2-?~V7$Nl}rHFXRk8{a~O?wv--
z`WcwmQ7!irBg#^!u|gG+4U_)pmea5l18l%=WT=7^4aBt0NZ=67?#rb8^@ja+I;?};
zWpP&7XIgX9gEU?`8-cZ8?QPGRC%JayNG~ThzYF4UxY4`jms(VJ%iB#|w%Y|}c+o0>
zEESfu{cF=S%)D8lWGz>5BkctaB3!;#UW2MwtLz=+2?MVSIMiqhZFKC@{zZ~s9sRj4
zc`4jg8NwbD4j+^sUL<&kh8`VPt49r*!S~TmRIpFr&-{DoiC;sGTF|k9fI{3a{)KC?
ztFW-YY;!M+NV?*%uT;iP`Br2!2LX&PbXo$KbLf7<bf)8{cf+9jpfio~*F3S!1g2ZV
z+hH3*`@`URHgy|`K+MK>7lppHjH$%ry;J5Ad~r<-Pd)yB%~esz&IVxqEXSrwLD=^S
z1T5Fs5^^KpoUGGNeUF8RljU7YXO!+$zuL_nFdY^>DzCWkP~qdm!^jaREYBQ%{t;;f
z+X_M2JfM>Yc$E+x$`VKW=TVc53*KkFg<gJu6(3(n$+DvhU3AIlF(v{j&CpBp6%|yH
zfT^I<yhBvKZS^Mhv%Fk4^MM;RAgw%xy>UJAEo{sCQLLb>$#4F7X&QdUs64LZd<nq3
z*<K>R>-vUX$nPrnN)lInlZPzJr*%g-5}lg~=EW+F+d at j$j;u~v!m^aYhh-SBFeytB
ziZyG94kJQq7W?%g<4!n-8Cljn6tp0fF<tz=pc_Po_$;&mOkPsMhog<P2?zbg>`6+4
zCh=(AK?8WmgNc?%rxZno3HodAL7f;O at JgvLQD`zHwd?<8S;ChlA$FUIoG~tJ#`Km0
zf_5q?bV&)*C=|R0Xv=jp$J*y57GpV)Z#6`(5aW80+$;!{Buo%y$?_fyGr;%DyUEP8
zA{Q)|^!cl4rpdDLi|3AdA(igjI~lTmp%Ugw8Ar1u;fWDm7VGyJ|Lm6%?_zYG)5qJd
z79jie6ITTSSzXe+FPNdW?(8WMv^N6WMPoWSSGrjTrKGiAJ;X<pr&-NASixOu0phJv
z)ujpkIBPdI6xCZZ_$Xkj7EI#ge^xWSL40hXN~kB0bH<b;0K`*D*&HtKJ3|*%3<b at c
zMxB^4V{Q3#*CHX5<RGOj49Di>ODN5jXk2u3eB}8{VPmeCn>x%z>)Y^Ws at KZQ0vaV>
zItz&5UpRY3Hjm{C*7P}F9+GqQC-`)dy2vAir^K%y<ROww{O)w)F=0su&l4mr&_0+|
zi)(D^T;!H)@owok#PJQd$K+N}yv+Lbf0}5)r1@$a2>$eFs1u_D<)NW3rsM0ir7JZD
zQbp4v;zTsZ_Xy`wdzI3{IU`2~;|x<29cG#Qs`AWLQcxE_vsdlG`!h4dJRefq*Ncg}
z=!PmRZEZ at G;m2e5)EXq=L4sWd4RPRq^O>Y!JLO>>{>B^N^!S-1*{i$m54W?B7bBnv
z7Oar)#`^{erVBlrt)#1Ou`ntt_>ze9JtK68m0*;%TCHSIHVrC~FJ+99 at pKo(r}Ldf
zS&9V at gr__!Xjk53oZRgBVcg!T2VmdP9|i>U-n9+t#o#B|s_Fe5!iOvVe#;ZFPtj%O
zLUV%d>LWdK$}4pp(Q8b)ZpzW-n3`zy)zJA{OUi-oG&Y5 at m2AW|fuPDh7;|hSIFDVv
z1UXMhZSoqJIVC=cCebGXu_(BrdK0wxWV?M~9h}<VZ5GYuVf&_n#{=q$CPgPz94zhi
z`LS-p<s+%eyWJSnHnU9gRNa&xALP$j*jdz+WaZh><t5JbvB<~!ceaL6%6u)jna5>4
zuQ*EsjIMo%!q5dv2H+upI~5+m2V3$7eH at D7ce45cGXYUv8|cFjw`idPOQEcLdsOL+
z44Z7E0F>{6r;gXBOS_(%TSntK{(H;=3tbea#zM3A=i1EYdnM#%)6&rur%$}l5T{@p
zCg8osdoh4cC-(D9wd;d_0?CnifV(!!H&R$}Hau$c>Y*p?zCzVzBX9tg6|Qu<ZSPJ+
zU%!g)_-^SIW0pDy!<ZAzyNNip>xm-z5^B9tm at pj6piZ;fW}0=9Hk|)8N2Ls!IHFtM
zzDAnu$OKLX7+~izF+Ja2FzZo=Y_rAz3VJM+KA6t}`BXV-(WR633h^iIyra%_`gQzx
zS~neUgk+(`V4Ws=TMj|p$MSbUpyZ7GajB<U4EE^1A-(10m)*Pr5Is}JT!yh!Fgh_)
z;vV_aK)8-ggRhZv?X(%?<#aJ#zbhe%S+7A;uc-8{z3_KHrBlo}KIDSht*ym{Z@)dz
zCyM3_9pcW$`Z}BTH+&iGN8~x1wa<HE_cy+5^m~^>eE+dy#YW+m5#R*zOmpPX#0+pE
zeW39DK|WuKpHRZxlvTdl)}p at A3iP^)F_30KxIG1BZThbr=6A^oxV1ffFSEq&XkB0p
zs8-h@@1xxU1k?OlYNE9kx7#xKndIpmul!E_=KS#m=k#Liiz4l&-_IY*79sobCuByv
zw$?*>m>v2)F)P2Kx5BtNmFxzN2vnNCO?JhdRv(wWi;n$$(!V;}-C;D%_>|FgIo2k-
zC0>H^PG8)bTIH;^Cv-2$ud97vR}WyV$p@?S0 at eV>>Cg{f3p|dv4w8J|dj#*gIxl05
znvS|%zLT3HTy}sza9RFndB03I<DneH(V=C9>9}6X+BH at ZCx(_IkLIe3$h9bcO`EX~
zvP{H~5ciE{I&u+)M2gqWK&}ON>%~Qgj^>%bn=rW at DRmVWSLNnLg<UO$^yA at R15@%5
z;pK4p)OcyeDjWfZA42WB(vi_$i^uq_aOX%SFER8+VL=rgKBEy~9CR3O2dK)vOEKpC
z-S};LRX%U^Nkk#+!e2B)OFDw|47UvWv+*wIpg>CnzxM}U!;JZb2O@$O_nM8yeF<<w
zq9s}DPX&1-Nc=ZA(<f8dV58xmj!(o{^ETx(enV;}`SOOeC+%;L{k|G$VJmx5O<^ni
zY at yNyXlWT`4E_DL0jsi#Y<DQnk1q&HS&XsJduzizu;KPbiU&Wtakf)}17A=YNTQ;l
z$Bc6Lu2`J%<nHZdTjjztr-PKYh&xhi)rtoLC-hp9(@FgE<JwoeL!lqEUsq4uELc$a
zCU1UX<sZ;AuzM$c4$r%!6WmXVBveTXwF}GQalFP06+_S+J^&LWuSg`qxXzmwdtm`8
zrV|A_FdrzXrck5LFRaSAeNe*UL+<!jGGFRNI^%$nrYv-x4$aK_MbFU_OX-)eZCO4*
z^f&aPFKzkTEGdcB`rZ_|Y))a7y~=Xgz01_n7#615)ZlWp2fza0ZHRBk0H^8MfTpGk
zg*>`vV|E&r`K^p0>x{H$8;5 at g_BEB2boIx5`9iCX5!)zrIM8gA<wH_=RhwNz8kpD*
zoeZWXM8xpaj9g-xpIB0w#EGO#n8N<L46~c9`I_u;p&`|QMi$Jdhn%{R1DD5ppJaOL
zllJU;&ErI|K;*OGZG8Il%Q{IUL>n-$?)s-zPkU{1i;>Tp00nXTZR(iK+lG2F+eo8B
z2C_eFi~{?D&pYmfJTd;VV&mhwEV}%Dak#tO+`0ikYiVwwzO-8AR(eaUT;Hd{D8+o%
zAN29OfSK)u@#rmU$WZi_Pn+c;FBp0kLWeD_ky$xFsMF6enD6O(=Rl&+s2qETzeqfU
z!yAD6F{WsIb)_hw(Q8X3QL7 at J{Ms+HCx54s%I7(BndusO8#28Ev9HUI-B7`dR%RA)
zTCA3fW0MfV#3{&9!JMv2Q-JE6%b-!6Hsuqu`Ibz#H at 7C8AzI0pPcQ&kz}s1l%3dZ^
z%p}1Lq0txSAW`h^uvF6Q>&W_<6L_!ExN~Ax0*<3XJwsn+t2za2nZXuXcfucFh9pOg
zeW*>#Lg!IZlUl1M9KutV=F*M~E9j;uV2d}IhoE#Dedk}qw<&PhZZ?PEc`D5ULFTuG
ztQzsiz#J`sV~M}FDRt(reo4e<R80uMQ at qXUF@kK;gJ>p|UWwsz8iJF*u42e=i?Y{!
z5LuK`h<F)|rZk00+|CK##7Z at E#lpHIi~1L1!^ESLiAtoEq0J_W={ouhtD2<Sbn|qh
zjmKk&*mbYh*<(a6_Ep at E7u18wWp9p(QfxPk*+Q2qdA#gOiRzz)IMHvGCQoza&Nr$1
z{?1}p_*3@=FfGq2;z|Ns+6une!mo5+33SLEwr<`68_B8rw{xKrpbq)r9q{`_>tA&D
z%8|JpcnFxn<eL2qL^wW)T<-Saur(t?+Vd*f^>^J8vyU3iu;Y%2lB(7pax!~=1<K1k
zUAVuBTrWCr0>PuU-lEzMX*SQ2tZGii+N4c->@uCE{OgMR&=cYvRzvRTL2gi6d>nux
z(n6?Y<zF-Pb6RAM^@q8 at nSb)d*3^nmE$|N28|*m%?#4ifi!pL+Iq47Rk-&myMeK+>
zi4P*LPW-h4jHXs$TJIC9EKJ8vm72~0cH_3wrJCz$U9JL|;}_00shyX+)yH3SHlI^|
zk at LQ+Hk?g{DWfd0KM}TrSsX7<`GpOS{xVLHHGqEJXBw?iz<ZOXljk&JLvTfQ^Zu^k
zpNqFrsOTe3)+1VGDQ88AWOoNf+&oPYR(xa6rx+&nrn=aJ5VJ2#ou}?qP7l at TMi=f^
z!f$!cbO?r6FiJeS at A=Qm%M-D;-hk|P#ambnZJd7$7KkBx%1Z4OLFcsc?#gN&Mby^l
zQji>)%tUKiz-QzFK&Yh}UOG%|5Dld0cQwt!G(LumV*MedpR&BVb(d@(5R1V9HV8fx
zsvYtZ&xNw~r(InQP_iG!*<N0BJmdS9oa9N&AC=r?Vw<)z6WkL%yKSGZALdB{IkK$B
z_k%(aGMTDzK0nXK5$iQ@&fbYR6WA#6D-=-a_yNh)ezNnJ)jF!eY>L*(0L{dqA~H=$
z+q+BnI^LxjDF~fs8k?~9Fic*@k5N?};eWjpx~=fq%={WSAh<^L0$O!@9j6DWy_K5D
z%q&zt6%*sxz;^6>CvJ-dc|TUHtGPKsQRuqv4sJ~s#324M;W^wv1hkl~rs+gR_C%@`
zcHGcT#K7IxrE^VXR>hsqy+QKC|EZ$F<(ooexVyiV{!qex5s)Ge6^D?g;aI^l<DvFQ
z2m_VBB~rmqwgvR-03TYC at s}Tb%b3KO$_XR%$Idjj%6gQ!g at 5Vi*XL at -ZE&IG at 2>sb
zFpJxm#=accoN>)GV#T>igxh3oJ`L?v5I<WJk7s38rC3ZgQ&22kv<@s_|MnftI&jg~
z?jGE=Q+soE#msI<Cvfedrf}<O??j8WLVL~hRAA-1v7b+#z>1_N#RE!_O~yOx+ at _}-
zLA9_-H>OV^{YEg4G-&HsG-UCd+u at d-^U71Pt)T`;|8tMAsvu=Klji((p2KNByh~yb
zxBjeZf?!Ju7lO1}T1zXpbY-;dL^V8qa|?vDtz3jacDBLs>-W1Sw$LHTlHA{LR=K<C
zjw`2Tt4rVQLmpzQ`v-?>Qsk>wr|1jqavveWe=VS=FX2n~A_8NsWX?ez4B|8x3{0he
zsemd#S2F$mKE}evizb7V?+<J~41yes)U?O}&$jgmk``bi>S%Yo$%d2R+*IQ$TviS>
zidQ83l8d`sq4a(3f&Vou at 3}7RvDu7A?o#IC?U8Nmtc93B5i1;<428aKC%TvQ%C~BN
zy#D@#{(Sjy>nY2<7ZC>a%S}EZbTF9I%d^oMvD;*@&E=W)Ed5yn{My9bF>?bwKgk5C
z6JOf+<kK?<#h(PvT|!*yM3v1SG^B1sPlR)2OpmV?dtLx%Q}#5kAOUre!w*b}S%XQe
zpHMqP4ieG<R7bX8Ht{f at MX@iEL6b-?YN4 at hJurI<;3aSqa$z3AGLw;A6b%A+du{JK
zM&$PCXHDi5ewH;tw7p0<vKLD?97XpyZsMsw4K=BTIF1kJ^rkoLcfWSdHUms!p!hja
zTG1VejF!dU`cJ!lHi5%}{^MZLX4JsswbiHZFiV<mw4cq4mbH$0F0|*}JZ`O|({}vK
zDjJ#iT%Ybffl{sQ9xxJbFPS_k!>1WK;slL~7^07*_Gi at tQNHcBX^R${SBg#~2tCw}
z5|324*GQa)^bNk!i>qhMOWd_UP{TL(7@@OLOYFWZ7EEt%q%}YQv#K4sNl2s2c4iUf
z*1?ixj#10tt2<3?k~6ywGpZoAd7!jrVhvvGu3>;}X*$&HusZjn%aK7 at l-+0flt_fF
z6mn3V%n;Vw1xerbxT*tJTT&;hO=%7hI^`EkxwQEjaNc^vHTlRfl;4{p!OZm8yx?FW
z>4hIx<wOm)xi`zl$Ywm8_3F!uq&=<>+1(MGe4-y^aL2nTV50tv+i;ca>YFLO&N44+
z{xz*!7t5WwCD()`S~xFnRfELN=tnS?WH({|6hG*BU*YGR4zS6%u60 at Gxo5lDXt2>!
zxxaTs$odrgn%whx61VyjKTX$ZFAz at CYL+y8csHq$(9lTTVt+b6jj20WNyjY>PrXjT
z*vU<mkK^k_Dr4Uo+Hc&u=o(y)CKoq*(c`VqN>ffcZ!>I1K+<cWk{U?fNU40M&;^;N
z(qcT at 6E9H6E*ylE8fmYTqiW&@%)9fD#**taIKh4H5#GA>n35d99-F65WS?WSP6QNc
zV_#D7UB2780D(Rev08xVuN|GavK9%Hm}3?bcN!D!n~vW%bxV1|<@2%sZg$lKeqWT2
zeShoEN3h{G4Dul+_(iGCRcs|hQ9e7R{bE^NXfiEBc07Uo1=seTE7oj#K|{drk at qyy
zAa>KZm_okq!KC?Hlu9<5SxL~O1<V?#Rt{B<p|2!cN`V#`kgyi74~YYEf$&8?lX7-P
znj~GKa-vH2EK1l~V&K5wJWJw=#88W15-s)l3n|x`ycMGp`*G_=d%~PKYs{-z&|}t%
znKgEEn{%?twlT(M at NG}n#XEnmC50s?rF?{dsoqTK<RNvB_3{jn&{cGH0PWUSgA#VP
zF3=cQ%Oo_GIv*sGny?+X;PpiLpv3w&ThP3?o}BKfA{C69jJP5(npGd#?SjA7hcHoS
z6;D$DRSi>$NCm~29JGm~zV9I)GXrIw5rZmtYfFwml?>=POr`AM*5n3=`*IA#*fhF0
zBtA-pluQV~ofvScm<4(19cVqe5cT(8X+l+A=<G9Ql-=;FZL}TiHD{Kt_wpZAw!(a8
z?fSQ-b((&9vh{Zp=S7iuY1M9r<+~?#82)j}bS5O*VHcj;eZN83ZoZp+inA=<*ld^U
zCdWW2!~Q%Ylif9rG~-kbOH7lva2y<_K92RP%;e~1%a3t at v~GD`wcf5)2I10{67A?F
z_<IOexWemWiX=)e@*lTNW!pE0zyT*JaceCBJMp%hpt at OuO>Uk%1NokYe0T-eh;YpU
zm?IlbUigJ9i9Z!Ke0d{`AAb?^k{_*zBXLyMs+m$BIpcrlE}vhxduhyILor}^<_XaC
z+G5%UDfTa!$6Gr<BHXazx}B~>5vN};78F%?+L`Qg#FlnV)}Fl5W!g&WDzcF|$QWMr
zHO}w5n`&N5H8b|_+N}wr?zB!q1hjg5QCsx%9pX^YeN>-Ii{gLGk&8dTD3p^z#qkG<
zj_RQaciOj$A82>zF&We&qXtX~(Z8bP6FbYiR%6Pb^Q1c3a6P{{F6&fAdvNPiGtevh
zJZeC-IExRF1Or=I+rSOD<u$8;_0C)Y#55;EkMo;RlGBw!H|nedLH6ltAHQ~=UQ>uC
zrIHY`0U=c)^5Mp0tm{S?Z at kAHC9w9|m>jdmDY0GTRC?ltf5g}=I^fVRu(_xf#3&f%
zmU(|(Gh76r$;pOzHM9PCB^*A7+~}e}OGWmW^Y;m*go+u_+K-Hl9z<CsDz)+dtl7uL
zw$UVOP4U&34)P0)u~~T2$k9s*jWxc241FQ4o3NxIGJAW at 69=QF_$JM|oK)VsQbF5`
z7hAY#r-NALw^P0 at 3Y$Ny#J+lN`q{jF-fY*2t$IaOrCkNQ5BEa48q4pa at g=$qPX$4b
z+<2N+ZzUD4Djwg9+&3+?k-6rYTY0J`8o<9_mo at hSBCnJc&$J$QOZmj2xUv<p`7$#V
zR9zN9rY&4PZimXf0ehBArcN|AOjcUEI{U06b-iRmgxG)X`JLbJA|Sxq()G>peqzOO
ze!ookFlu1=iZtO^P^Fw3K82a0MKV(?44~XXW?St)+t!S#y#IOk=XJa-JFW>1*fvOx
zJ_%2jX at nagV&?<@DXo{vX4xd-kpFgh+J%s;+}g at IaZ)==dr3QWOl<unaJ#0=^6#m@
zi0w_h<Pwkc7}I)&u5_Bra=CK*gqbrG>a=M2M%o!e%rtMas=ASR$7}mkOlB0wSo18D
z1&Jm2LgBTeY~|nKRFUrxV#JwW#rI at M*+`Tjh$^q4*~X4pAVAa-AR#<yk{eNHQ{Y+B
z8}~sU!t1!@cEVI7PLpg`oPToDdR&$s#6oD(Z<LVC8nSh!fKRisTk`lXj at ENgn$H==
zcY;2Ant$KUrn_h2E^}0&-$;j(=0yv_L#$m|L5kL4mPg$Rqj1PP5(1K#z_xN-&q}g+
z0t2kxXgJgCt at vlnl%ezr>t_t=%&SELWF;d^n~5&IJ(kInL>{*3b!%vgRG5(s9GfOQ
zZ8njNbt=Y=_LR`P^=_J|NBWET<DraI@`OKqJDGG*^l`VeU%h8gj#oyoJ#`KEEslu9
zb$O#IrbFv0esj1>vXz-Uuc4?G!#T*p_l at P5EN}JKGH&h>TUP6Znb*wnM#JOG#b9T6
zu~zg_R{>Yob59RCXzcjUMBF;X at OHBd<NL0=swH|m+O|!OzOB0<Gdk|K3!U!fbB`+A
z?9JAGGJCP^x}lzRyB?|R7rq_o(6LEI4-vF{I%6H6SoG^NHZhYDMR5_8WMiaUmz}hu
z_{;I at WB-gU%>4rq?R(L&I>9wUw#H3cbeR%zc(>cTqqlTao>s%RIXvU-oNsaIqx?9b
z`APPydR#D(-AAL-B6g?t`$3n_nU)w3T?4i0@;00{GQHC7KY~?0CC`~MTH9npDcTQC
z<h%g;{{6E=0#X$I0n}vtVlhTgT_t<1{&&N0IW>fLKw5q23jXp_SXvxBolS;zW<mTU
zxiRL5RJN}T`6_dx0ESbTkdx0$g3 at GIit2>PA*d??5p8tN#$#u`MJW<DvyqC7V;D9f
z8ssDl3ro_nkwl=T<Tl}1*<6mZxs+fV4^tJ<ArOdC`-LDGgyZfkJ8J!I)$fJ9O10YM
zO&!!B+Q(NmOMjWwKX7?Bi_05PlPmhqoBNSO^T~_brEH%a<Oek#&?vLtZdb3%F-6AZ
z-pj{!5SClQj#}(mjvkrXtlQp`i)ZJu3!HelY1#Sfa+}GMlnRcBNVrGKSw1rGNe|4e
zbDK&$%YSPjZ8km=JU(31{f*}b%>*T at J1QHS8yhhj>y`}{VY-V^KZ*%<d6IU!)w#L9
z$*c>kw-c9*|B<!Jd{x0~uaq0-`&{SATPmL5KWNrdr-!p8k4$JugH+2tKNW?`lCEsI
z<L3`*wx9(-NT~NlhpXw?))KLQQHN$Fr&<jvxcY*?$8rc94RRlfJQOd$E?nYwdM*&J
z6*r2WXT5obGb@*pLAYU-J3 at JZcgCGfmoJyT&pwh)zZ8{vH?WpeY@@(VNllqOxR6?;
zZ!|mUH1C~Fyy;kEGi_(%AjBUpWHXofSQ>byZ$MGZwNsMxTubrqD8T8O=P(1qI5?Dn
zBWPVTFzoqaKNky0J)?T4)Q5_{(gWI3V?3;xrr@>Oa$GZa<hE@!??;b$TZ<y;_{AJ*
zdKR?G_-d`3RWGLL&eoC}&UHQ<D=Z)DOhJyPYF06{!q#TcF8=Ct<rbUvACB&=pN%T<
zX*++G7CDFTzBhA46ZICepWHc8@;*Mqa(zFo3Z0*%5xyRe$jJXB=sZN?_N<L%DUs?J
zFpi at z$;xE&M1YHDuSPsom>z|k%wNuBF|!?DLOi|07rnrmD|%_~J6Z>e#w%U7d;)Y8
z^K&m-huYi~--233ceeRxl?^v9o0nOlqyz5v>+~@vO|0-Hmkw|>o$`B?e2z1{^Yx|D
z#@M<}IAtBvhwe#I<p`AdVkMeE6Z#?Eby)c7CJa#};YQ=gtzN;dF(|)=ESt%DVb~Pd
z+t}r)U;4l9kKEjOj$S_8zBukd{9ft2T~2RNFi{?XNqJpY8F)w7W3$=6PO-^Yje2&T
z*ez)YxS5Qi*czUMZQbXBs>)47Ig5&u*{09h9K)EJoy;d640w~vO$48c>A2>2wD<X^
zQgdtP9>Ol_-$wc>9MxTD8(fwzrbx6FUySsRTQExc3MzIPQy5T6J89g{^eNuou&oHu
z^6kSP`eI^xHqG!N`{Z5-3O0?*Ts;{}cEOagCND9u*O-u?0!;uz=k&-oA1#9cXzk;r
z=`I8jYPB(H8`*+hI4*JBc8g)jI>PD95=C^C2$L at l;qBMn5V^D{2hrM3JF(IyoXhcS
zA|4vJdq*=;7qttVJT{;(1 at Cw4*W%3J(8#xQ8L%~1dJCH@<!)~7ZHDrUi at N%<?jXms
z<A-^Lvow8rlPUK%z`5Tj$&T*NvE#Hna~vMaTXIz%sZ8xLJw#(+UDa#e-q1}icYoy^
zA!$ndHtQwo03MV~_swgV2P-~+4hEBEHRroVD6%r5d at rA925c>xVEM$+wtT}PPG<;a
zJ>OvN%%{D9dGAw7yNX#}#1(b;_;}!}v1p)Nbi1RnVTwU#g)i2{M+3~$h!DYVO;`9(
zI|Y*gJ&mH50$3Hi$K9|)h?R6<fN9?qRjGvO=+2+`oU*xr0yG6$RipVTO!Bmcq|<!I
zEIRqo!q%yY0>?~s*U!uSqqNFwY)3l;B71LWJLeBlJ>0pRB&XV3nyDrJMLI9`k|ZDx
z>P-1*dXl2~l*xpJXVO{uXr#s&S)rj*b_F+sMLR9|C583(kma>Y%UP5E12sU(zi@)%
zIC`IIRZgV!cwAHVqv;{3dKhwn<M at Z`L9(`SDf;mws!s at ws_0#^Cb|+?l&#j<69iVa
z))>{mu*COEO+}m6BJ=pBZOpLNmm1?8Z78HxC)IT<wJWCSIU=noJ*c9Y%06xo9;@?s
zM$apiA<OtyUBX&xpQJCvv$d<04Od0LQd7osxDjjC7&{_V7juH1+u5j`*{+L6XL$k`
z;6^@7m&}NMfj#4N2P{ZRXr>0?jE_<lMGq3AF^80jim@`WODW$dtY%0Il#-N*#*!>b
z0=mfQq9+865 at ENqU@OfI|0VjPsk>2{Ugd>cOm-fQT~{XNVkty-)PiUY4YbG%Es$Y=
zE^3fYbV-!%q{LU0u_~z;i=-9e&br)Dda(}lT8tj+l&6w)Ng0Nr&~~}9u%$?Dc#9>5
z3jz-{mdJQ4*^FigI^l<kSZpZa(l{~9W*#Nsp{T4DM~PflHj@@(fbvlWFw09vNpv>Q
zi_C5kW&AEG_ekmEZp1>7iwPQpT+ps;Dw=g=S>>?n(ROwtK)zCG$e`VH#uC{Ez}GW0
zE7ZnbnG~ClOo#^1F{1A%$uJS}Sf*q<QL+#>Wx_G*kWolr;i(H+;%68iwW|n!<F!D@
zY-|;=ARy6Zi8jdCO^AnJlM#t}3pN-;gsm76B8WN(5fKhoVkB0ZLDUmTKvoCQrQj_g
zvyUfUB1jTOqQDcQ!b^I$D1>W*q9~aNCVFI&NXROfdA&gqEJSb83&dpA8IWw#A-$l}
z5uZV+m1;!+84YG^5wY0-H41``NC5-ykp-Sdgtw5EHc=F8xIrgaL<u at 1Vcu%d*~EkA
zNdk|FK`)|a1rsx}AtFi8I!t7<IS4Jcn|R)&!)}BKA~ghIUc_E2#Y(UaauI{Yfkm56
z?-B(OW3$OYgj$`!Bnwub6jrccl(66xAfZENskaLRV_uI%gdA9K3B(NJgpppvMw22T
zdTrhynH72=Z{jg+JPad}nnkN5V8KIb1Oh!14A`iXbcp`5N(KY6$h=dOcm%_(mjpr3
zn<P=FClV&S3(JJq%?2AW>4}W3F8TP0`-np9B9inrf(^V;l;~7p<g^MVy-^e}EGB_i
z^%mZYVeYVkc_Jybn77%`8A?9tcae+?CM4-ZQKw)R0<dr)n;Ad~!_ezJL at -iIu7bgU
z5rT2WNDz6%+eBWk!-Ad{^$HO!f+U-DHeTlxF;B-xa9L{vo!)HL3&>(6qMJ^v)x=u`
z4~(UODk#{Y0zHh78{n=6S#=g<vci~2dI<szJc4=U9lTJ(>j~nqq=Ny4;kJ6A33_Ca
z1e=~GqG%F{1x9ko-4a4J=z<aXWFF?s0 at H{BF&>$w5)#)TY}AWFNECf~*vx1i>}aat
z1t(9SHpyvoVX at X>(1k_GEE+HjIuCtq;1wM*+l at rDi@c!oU{YrdB0a#3Wao7rqQ?Nm
z00Dq2*vuwqfkLc0LNKpuvKfN14O<DKHb4OyiC#3Cku22O2~PlgiC{6r!6h3donEga
zc14c_9k1B*P?M3^u*sm)Ns@?RR0SO}^4JVLfR%=@K@^5>4Sy2q0c62MTdRX<rjSOU
z0$5g96ab2AL|C~-tS7t;IztQzbG=++b at 5WIj%gS;N1Wo#jBavLZNf5^uP<q}QW;P`
zfH at O8;A|ZGmV-kQoNn!N4jO8OKU-W$^*lF6qxe|tLHxSA^{u-!g_ at 4tQ*1W%*WVQG
zzd>)6OLq;whvbpVsU|2sw&6i^AU137XEerA&~I!o9vj+1*3NTq)!($#bRlZtbe#dz
zOE4Wo<=<Jpg*x8Pa}@Pg^E@{UE-I0SKaw>?X67FLhI3`s7d0XAhsivY{(f&HFB}j!
zChO^vDyHJ7(k}bfQbM>vu2&UiA#Q|IRE2&-N#L6JUpCgMO3}-V!*Pli{Q<pG*BBeM
zCCO%v$}YCD?|oE_LC{&Y+Z1vJnH~S}SCp7q;OF?#w at K(#HvPExzzCH60k^&v4QOmU
zG|;<V;PORI4QMQtLE5!J7y_!ik?&ov8P#52ExS37+BTuA0_W(Lb at c26Dl?xlRIx at X
ze*{RgJ7tBSm^L0XBa0P?`Utw{Ug&iBgFE-CkEoB_O9!a*F`awSMG&BPO{O@#qhe{$
zMUaVoiK^g at GAml-cN6FH$HwKNMzm-ynu68MQqZ~uMUzeBn4NH$o5oG&W^&89wTx3v
z2^5>gO~_Ki)DwRNy2PO?e+`<MUtlsnOb8e9;!+B{^odLNF57ye*tc`WtX_d1``Kti
z?~=WD>|N4pD1A11ShH<MR+c18NpS13y_Y_*ROp>GV`rauqb5Lz^TG{F7o!WCn%$AQ
zJByY{J~1sMn0%gEU;5H?@v+5AZxFWMSr>6PH=)feQo|>0Bln71g?G6iH;cQhWN`#Y
zVL#8vHXy}DjiY2x*?3AhEL#?_A?^&PX|rqlOsu3wUsAxLd=@uz3D5Xm^~Ia~Bw$pe
z_PDjiYpN$f--+7BxbKj!IMa8+7mw8)^7&q^Z5*G9>^}F<@}1W&Ke2rE>Xo~8u6T9D
zI6un8q4WT$H+gHU at pefug1ag1`%$g;pb!5E9KPCvz8EB`tsk4H_{O`-4=z9VN6UBK
zuyXZkD0!^6WG6Du>|=8pTyWIL2{lVdKPaVLb4q?B<==ShbOE- at ySHI9<>aFX&6qo|
z`EcVcPow-}Z@?b9=hqpZ^(30|%-!9GH~01Ue+=}-Qdo1XOh-LPt)?@m%WBf`C5e at 0
zdJF_nEG>s*r|^&VIh#-CH_vHD|HzfiQ$@Ww^=<WC{2%JOj{NHLcJDrq)S!Dxf?Ze7
zR+pnM)JM=g>eUg}m67*H@)BV@=*8SRZZo%&+shpowV5v<#$#lA97E16rKQer_9PQ-
zWpa)U>>DiXx|d<wRM56G>6F2kVWzAZIgw0|Zf14|%A!7Mu>=ZXR?v|IxnjsEF=P1P
z&eB?m#ymrpqtiYj`159)Y$-0jQpW>MykYsC`|en|#wcxAw&&pT*?RM?U1t64<p=jH
z+aL*z&FAjBZ_n}#5~S2!iN9=-ZRWgRAimS<S`tgwUA!=+y;_zgT4D<?UZ=f~Wguud
z$4e{%;7LCpz(cTO4(b8tv+!OrkT3r8OW26DL(;2W;|ParIY9Yt>*dk3wncZPS1ev}
zL;v0B74>HQf(3eW{fhM6{WC6)owFi!_oB9Gi0?(W>7<-36n5-y+LN3SrjO!`<esK5
zd*HziW7wf<^%5JPMd&{RIG0nGUOk}0Ja6N at Y9WV?>?gc-7o(jU^;`oN;ga;r3}fzM
zN+)Dl<HIRuk`fB)QBa|WNa+)osZ7Nq4wi3)ibM2^3W$DEf$HYZ?#!z{L(N6@{0{0=
znRY+s;^Y^aldq`dqd at 7~4UieiP`@7knff#QIrV4ir%@->%b{O=KwNxa_ at 8`U^Rc at u
zeq at huqi`d$r0ghLrqHZkl!V+%nh%IEn^IMN=eYF3jgM}>{o>(&T>biEk6w$<H+0#|
zhT;?FT(bFKKhgCp%dO}sKJRU)i`Jlr4Ba-9LA|8snq{lI at SKYu-2UjrM0f3{9{bJJ
z#U~6VTbBV}u;}pS%le1^(X%4AtOw8WMC$^z>Ln1 at Z9orotzLEw6t-cEj2zW-o}+yu
zgUQ9Q at 2`yN#>>ev%WJ$I=Xkv}H^tKE2X#1-&pQn29}R6*?N%-i!%bkg)qIt9ZNBnt
zPd5A>Uz~m1CvTZ%Ks5$OSvmeRr&(LTT-6PaGR$HH_SH}IPriY(+p?>^y5<MQUOj7f
zbnI?Rvl;xctz(b1l{cBY$^!NuCUUYfz93Os2HG84jLTAtrmO{KFW(%FtDT!9{7lQt
z?Cwze6W*=9Z9A2pAh6o~D$9oM)r|BGR*Vso-;EDJf3LDsOo!D<*S+u$&JQcTA9n4_
zxf@|SV5=ajtqv*HjkD<nF~mLu1?Q3C3^Jyxc4rdnW*5YinVU?XY0NvAPNpcfDN3<y
zQa<Y-+;qj#&Arp7O|NUd%&VIgR%|nEo6({RlATyREVlOcw$|0OgwFL`(6Qj+*~{jj
z-NK)>aj;vofl|M;1z}y&ygN1vZ&$}ukJgGM>v~sDt at Gt{?S@&6c7)SMR$psch;xsH
z?a39X<|*!)+Kw5?>C5LOmbYYUI at ND#V`i}{<hqM4YJ4JYk|X`Q)yvhJDiPzxl~m~v
zrMZo4FC8N!7||3=GMZsk?IR3SA%z`mmCFGVELof_-^gi7Arx;;XEjM6cgbEFm97$*
zvhN2>8W4Tk=Wg5k3B)J1_g-Z%S_IPyOCr5`*EO?e_4fX3&ZdsY+vs7b(cKoAzhuFZ
z8?IS;V7gUD>BdW}eyb3g+T1;3L9TDn)Yhd9I6wOBx?E`Lg=?S9?^aCV=#m>c?X^Ht
zKG42)M#t&}vu1TWT6~@nE|$J(V|H4orOobi$89E^#e8|2KN^{W8x}@&(<5Q0tJd4u
zHG9Q^x+=ctMfBE5iMDFSWLcjQS;_4bwE=NC-AYw&wH~)<LuN$)T5ea?T^THz-le!k
zM=qv)_f3XD8gCo0Eutgl+RoIThLy{<`P=;ncjh`3GeQ<|YN%`Vd7D<XH at C@Q*(q6p
z=2jY-FSg(nuk`N(T7PP6foLT<i|Dj^qYL}CTygL-+jn$!xomQcu+nZB{S3Jf#CSF0
zB?2_QC8yWdSgte2#5dJH-MDy0u+?V|hJEcF3qEzuhC?f7%yNbhCMylZjH71BV?svJ
z>XqU~MZNvoSM;~c?3f-1wzT&3?^yB(TJ%Cq_|&cCxv_Jcp(4jI-Y)+=++&*6h3dY`
z<NWA<*gw9$@!!~_-}$ck#Cw%{Y>diH9{15xR=X*=%j6LRDsEP>3yAKnIMq=nu}l<t
z)&y0Bp~cl-=%o8_?a0F=n+^)oIc%m at GJx<!VJ0`-TCoKhanqfm2cb#c{81FyqW&5;
z*-xFaXY4Q8?Se?(r+%<ugWnH7bmMov)7c3>@|#jf at zIilJkRp}EJO1`)(p*Sf9XCJ
z>EECZvwWT3DXuStV1LQMcn{k5KPmoi<2>A=s#|tyPnnW<71b8mVd0}8O(=pr0Rhtp
zKR{%<2{o$3OiUz46{gi6qWq&~{kQdkCL)jeb&4fuiV;ebQc5;QVy2))(E;I(c)enN
zN$IH_jCy&XWHgz249FtnHy6LiynJDpv$`#Mf)JILpg)9&-r}}WyP&#^tF^WP3h@>+
zCHzqwW?{va0o{lwX;0O3n4up+b!fFqh|*UiHI$NmgDzdtA9WMaO>G{~+Z~bK#QpfH
zEi)ATRLAD7>tEco<F|KT_O;z>o0lx|>#zxna`OK&_a5+Z6nFpd&g|~(^|E{Yr0YfX
zWa)Hw>N-nuk*h5CCJR?tHdt<$W^>r4*mMJ?V?iKP2SVqG^W>61LP94HLIR0+LU;(F
zC3y&7=~nN|>@^kJ<ayu!|MPxq-Ol!z*(tyImGAeB2XB7x(3a*|T6w?{t7%zcTW4Ti
z6|)GO3y7Z9y?TcChoSmIUmo4@;=YF7y_dE3-Q`xhxhXP>v3bSK at 7{ahq0g5#`*tsP
z)wJzc+*vL5Oy9B+T=dsBBr8z9Y;y|a{%q-ZiCimFI5PO2ws5{NF}UgS#TG?{X>-$4
zf0=&a)BSx<?Ojnmf3C*FC|Q}I=C%88y8rV2CR{jkw7Pk*b*<I#Oktev1<SmThU!4*
zzZTtjerJ8}g_pK%yu-~ZwG{@7(6a34+xJ}Zz^6-_yt|jWs;6#WII~(@yZ*LZFfUtx
z)fS)@lChA=#Jpk;O}xP5XtEC^tpn;o9&g64A1iDul9#{afs5*amIR*=h(vu+Bodh-
zrpS1KmTum?pmhGsikbxr%Z(~nru1uU3dO9p#%Px>(G*?a>t7~*z4(?*m-LuTnvzGm
ztLg(y^X3Md&hKw4X=o^MRaCetYrwh5WCHyM$uW+dEps}BU`Iu`!>5D5#TDzEW*0Ox
z&0oB=wt2~lfmaiWgG*OmNEh2GYSfY9Ws&k}6;8FQxo>Lqg4*)Riqc at XGu$*kA|~*&
z2jMtjo1xsOzUHBEXbM_)^df1H!T=d~US&v>B34ku0uqjq<kdll?>L{tsTQh{CT2)T
zrg60iQng_|0MdY*5JXH^l=MX-(FpugV&#g&l$qiu#}59bKCpb&0bp>uOkwklFU at S7
z`<nr9&*1~J=2TCcUVS9kWsiDW`x9jgY*ohc=H;=5Ei2<%UC3CkZ>RO{Xy3MlvFY3Q
z(p%nsd-GdwZH6EEr?qz_=dD<H!On%fO*0l84tMiqiBf+x^V1u<Z;Q1hmbG5BV&={n
zjfobIqkdz<WqZ3rp2iK~O`E!FM{c&)_O#fh_^T{o^%MxT{<_tT)3-Dh(_6Rx;SXEi
z&FEP%7KEBAqAJL0nb4zhmKY9b@*{B=H8Iq}P>TWvX_UhuLMBh`gjo+q=_hyGIJZoL
zb+2V}_Z{6gw at li=vi_sPNjx?&$)leH?cWlu42OY>lf58ys4HL;hd#RMx{Kz`yXZP;
zBbGr5-yo7-I+5ok3T7}37_<hYG}(w8f}4P{!BB#jz^I at JfsiuMD@a-ZDWNutCxMpM
z6rGUnmH5P^Km!bPGD5HoQW)DH1&BY1AO!_T_a>+$#7G319D8pDLIG<(@-Jc%h0hVP
zoXts?U<&dq0Tx;SOprWF at 4}%z*~|ws?;RV*Q%q425Ah)lV9v>j@(1b<>7>A(ole4D
ziJm(r6EMl)L5<*MdWVw&^GYG#36^0~jD&IL7+<UWxOy5}$H8&c_WOdGn4}KLd(i97
z`0d6#D044OW%782Z%2=RZ#F)XqU;#;BtO`hEsVtp8zJ!z2*fZ%8O3Rta!3Lj{Go7m
z0_P~nm{3s<`Y*4aac%^F$hkA>9|AM$%hz^_SFBP_EpLulkO&iNE}yDgDL&+FIcMQq
zHZ^q(-7xYIi2|@!2miIMtg5=Ys_eo)hQN~f*G0tP1Xoq;=Xrl|6_ at zTT6RP0yuKdt
z%^yQ!{#FuWSf0VrFiS4Y*z1y5J%Z8*W$^I&D&R5sNH`~0Ej|s_fK7{F_xerWU(Z}C
zKC at s+>td5id<HFzKqoYo&DhlX at ay!oBOdxspr&)}+Rj;Loi*})`bEfZ-ZL%YjHKTI
z*McvnOu5cIrOx%|u{i#<L~g(%sXr9NFar^+nZy%IX2cw43c)~vj9Erq at T&OX9gm2=
zKAQvbLrR^V>wIfZ-;WP3SaA5qeQTebeyG5Dv40B?Zny&!y-F8}FNz<&dcpMvl{Wcd
z1yru-Lzlmf?wZkdxWKw`$%btgyo&NzGHR0jjr|?Qw(^Vt$HjrLP8kj?W;4fH7!r2P
zS~5*2EW-!|Y(~GPWk_fX8^Rd7S<KnL1-1}w-<yKvqtrfai58j|JtL=!Xot$q+chOc
zVqcL$VOBY5XHcm(C=D_r)M~-1$u0%AOmgWyK$T-n-j+Z#ur&|>*m_tF(7UwIC_ at +N
zl|gia%B)ZjZK4J}O65Qgm7|B7AbJgY*ThRvt|qy3-zZg%$`Z<Bg-Cwam?0Khe`e=n
zxN`!p5DNnwEl+%6Fki8M+!a}`L7?X(+n6ECE)SA~X&I=b&DR at bj+!vHp{Yl2?7Ho+
zQC|Vqk~8U-$OdMvyYgzmck(iya5YBF0$ahHFRuaQ%xsvUU_J)+*(<dUySSg7+cfuZ
zN!Q$_9a`y%m&j(fbX`gu{$p|R`#|<Ie#kXnice<81&Qa%jORZJ3A0FQ!qE3zOhUc)
z$Miua5Bh}#h_R?&1dMu)*eBlk#<lyGI;`PaE-bH~*8DP9_r at DwK>-#RtFul31N#!(
z0X_zIFv%-FJv8vrteW1H3tG1ZW%4UO1^lPK%maj(43pr4{Q!g>&ftSdm<&cVwyiHL
zMXn6BLHrd?gVq2}kJEreWO}*ys`#%v`+Lvwd5bEd^Jd=)ly}~lz6;|soHzrD1KaSO
z&>OB{l6{YF?7pS0Zjn)NDYbo%zx?>ehdw<6q{HwxXGU|l at VqxDFgh|y(U+q!%p=*V
zB_mB-U?l at iCTIYS5_A9u-0bF6=?^u<jM89WUJ&~kIj`Z_Uoloam?_xVhrv~HMxcLf
zv<_crgKUwWF4+K7IxAhT<!uJJQmkGJ^LWom5 at j_Od(dNwj3;28^cXR2`^J)Vlmn9|
zgI35<btO_*W3NaNt at WgPb84ZqPl6vydLc##EU7CDiA<%kS5LB6J13RB7avW{sZG`8
zWs?+I at z1B0XXK)6U;swwF~n*lO)Oqo%ChD%>~ROi?UKn%!a#^oc-FvXGhhmOIr2C<
zdCTj!1Z#uy*3a{_&>lgfQdci)=s2&OGchUyuVPGG`JOBGkX_zDcF*f*SXQl8X#`M7
zje^Dhc@@wM-RA*ms;r_6yGK8tKGAo}Eqz#oshKyg26m`|8bKKj&uUWoWd?)HuWXuC
zm=1 at Pf`*090K*ksH~jf9gm12ea4i-}nVjuOPFaxz6-Uc9k7RH1Oi(C!a`EELW64*D
zg at Z<tEw)XFNz4M7CK_LuLS>*px%f7u@&>885(cGAIy at I7vAF{b0(TCRHhng_esP+7
z^Fhg!fz3}E9hwh%b8;o&meW%u)GD&3Bq8jQeH904W}-ig5*v3UCJ{Cpu at _(tg9ERg
zNe~(Na at jxZa~~y32MC7*yRfwu=c{Jj?7?Z<E<b$vwrL&8Qe{%}p(cs89m!3VjZI9I
z%~q*t4I8_9x{TpgO{L9N#WXcmZd!i*GynO_^~-6ZoetNar at 80U&b(-TW##;fW^S0T
zs!-i}{q?t^&HN3wZ?B%Sv!*B(a5w_B#TIM0rlPjCq9$y$6xZTov7(xtbE>!BzV6}e
zQ>Si!n2i4t#;u*i>JU|a-hL+WRT7sHeF6SuFdq~z!KP_W4hkBzTKuU(0TP6gvKNys
z5;V(`g9J^uS3;`<y{HuEzY<-CnH>`tiBf=`EGQ*WzvrMQvsi at a8`%hocZQrpvXW)(
zeVB-lJ&o<1rFiWSdGHV>z3j!Lmur+TYmvX|Tx^lQ1JI2#*7P4O-G4vq)$*X1*un-0
z)8-&5)*AI&#7 at 8ey|`2J7O42abuCBx=d`%qn3%^9aqgC|Fmk at ikqr98Df5V5gKFV!
zWkF_7lgB|VE(y9`t=94)sbkP9h at YJzlT;xOJ4Y>}dh=E<Hs{Ym$5AgOiW3O{0Y`zl
z<ER1P-kU{D3z6Yy%ziLbi~UrcOwRd5GKVuk$+bllXz1%OH%uQG9GFpWI|!y9wDli#
z*LBso=k(1X+i8seFiLqxUqe78rZTQBzb9t?z2_f3e16BiqdQmXYCB#su5a!d80czV
zZ+xl6)z{~0NgVB8UR;JdcUkdrjLnhX>)7K}PIc9m3A&X#kM5&?mvMT@#kWg!F*h&i
z#nJM|U}W5WOpKDDG9{)l(j(BfbjPH41)?{Tz8(%&Hc4lQBvF$K?U+$7!BpS-UeGR6
z8k&4KG{ECJ0purK9-Q_y8I&@6 at V$HSq52u9c4)~lBhj+fB<?=;!3W0<8h>{kf$wno
zkrc;^=MW9&5gzUMoe=YoUH3cVL2~d))7lnPH5pD($@Yv_vjNF}jLpNaqqS2c=Ps7P
zYL8^S#>7E_9?1-jP)W&63{nSICD1`8iNWa(uA)(T7|C0bci7NKYSlrOI*95tA4?Y*
z7fJWsqvz<vcMO>OP62X~4KI<A?Y-nnlfnXz)aX%zEg#40DoYM at B@$iVe#ucs`-iFi
zqg>*HV~K;SFsde2!W^Tg3=W9NbPBznQJ^;E#`Oh<Fbh~7bG?#klcWJI7l|u1Dbi%j
z63)xmG at HB9SIF-=qn;29)Xyk{a=?*36giHDi4zC0J0hD(CsDT;`3iReT7^0alwfFk
ziNoUH`1H4gn**ZJn|2>OA=$>I7#{)61`^ipLc*M28t;g}89bPK6=Y_30~iBk6O6Ls
zET!Wur|b#r3zG3pNS5>#9R%ko)#5MJU>$J*p)j~{7T!k7!=Y at d@F=fk4i@#63 at 7nZ
zWW-aUL%gC`4eHe=d4|H`z)6bk%^KFUgLw<+D3wp+i1Qpy{zQA*qts8R*Qh^HUmyue
z2V9^MG*9Hmj*i=B$L$9u;ln=N`N03r?myG@<I9VY#|>GJ)Cssxn7=wFrsZ+LseF30
zAWfg*_~`$|>)|PmkIgg2X~ktDAY4=-%luHTr2m{)@PcFMe@=4npZ^Ch6#seJoSnP@
zgPRUX0$hR1G}b_#rq4V>{ek-G|9&s|-?Y-4?@B>?wSg?JfiF7NBdZxiOcQbRBc9v}
z=Ko0R{;sWW6t9HQIEd3yD<r21@{`OwFWWXj0*#WGZzu8pSsOh=iyFCsNxJcX?H*2&
zc15S8jP~~CoX at 0mWxo3Wa)&q+L_$X*$Cr-n(@oU6u at -6q6`K|31oHWEEET>iRfQ?{
zHES|3SYwRXL1Mv<N%rg9G)&ZP;!7ZTmsb9B4zd(E at Dh^Ni93LV(VtCXPRvx+rcL^d
zUHFBNun$UBoQw(&t#BdtbG0&kob1!?3D3bv7{=zGtaTgvy$;$F=xM~KKbXbfknr(C
zR5j|0ol>Of8H at g%q(ZWKnxu$nNm@)2>4!-Trv~%Vq8l9qgOiu$^V15ESsW9BKaVXH
zG7aE-k_cW-M<WIw=L=!0V>A?vW9w}+9<iXK(MBlwLxYHgWh`bc3B(V?!J&lshiSO_
zdj}JV!Bnr?olK>YZg+1A?-OBY8VDpX!v$*xFyTi3&^k=3aD%}icgiidCarR`9Rh=H
z1zrgz+zmb&%Xx{6kB$trLSmi3Vy?*(jg$He#XWHk5|c2l_v|QxCWd74*arzW7;@7o
zcLK+xj8f6rVj`7FeQ*q5LvG4FGBk#p6*H{lX<5hlhDtCh1Z!~u3K8*j6sbHvF3d8t
z7FwZGlI;ppZDeg&ct8-brv&{U<NP<r<?Fj}#!i+mF(u_KCA~|^RbqV3B+}S~l)JGv
zz=p9IgGkPvOaGIJAStdCuV}|}?s5viOm-0NRMsf%N-?Zdf;Um3MyV9{fJ5N$q=%1_
z6gh%^q)YaQdz6zOmiXIHzJ8O<7nS$_$#eHIlO2Q$@yn&>9zt&*4+U?cd`)&3&Xw{?
z_6~tVnH-0elOM+UnoC{HM3{wR>T4_y1wYwACUT}yk2(C=gskHCgL5Z6OiB4Vj`Fp$
zu)fA|S at 4q`MEN>paVI$pk5Bx#=n9;%Ne<(&2(>S`lYB><D+L%&>x>#w=ISx+hW>2w
z$|B<%Y8!B2?wQ}Y5uEC4lV{Ea8YV(7l%Dx-d_ZvaslEw*W+i&&&U`+<W98G8r>M at 1
z9a at qbt0ZjJLNp`EmTz?CR^+uUAX+enU{&L{L`0A!h;2VT<aSGB>~43OKuO7Pz?+*U
zGQ|k-pPq}|^a2Z-HFylsHgyH_E_($&AUYD&kH at yLmIfavz`nzI#UfxvW{j{kwP*x1
zM!;as5wLA|P|z^s^}{Kw2pyE*tp at 1<y?#)y2b6?VDk1ICy?F(<FtU&+t9#KbmGhZr
zBw5FTX7-$%6PUEt3RMOY7RL88HK3uT%F1K$Z6peWAxWb=f^$H>GRB#akupH^CKkzK
z|5R^>qzW3rc&Y^OIsuNNMv+uUkusv+6t03nFlA1yNJ-j<+Bs_^d?``|lD?mw>vp?G
z$OR1kEu4Q;C_faHVZ?0#l5sM}CVgX${PxI^3G}zjU;#Pqk0-;!$js>;!ZMUEPYY}W
zSwiI;-B}^6(Bv1;)IgV*>>9u(elnXS`j6I?40R3A$y1zw34C~<3#PDZ0GaxZ_9Nj}
zx_px3)TH^=!h&TElJ&?uT}X#?`U_}kLdFKVKoaNs6epNeIx#-SfaLfT$0>qmn;1<H
zeW8Lf5cD|Q{~9y#7?NXJO)jc38-Zbz)UWxNjLEN%JR6~QcC>cR?0(oR8P~5Q8zxOC
z3HoP`H1!<p={d-JnK8Xfz;F8xuEOk+s}BCWe>T2Q{BKEGmkjCYYw!bS&!+#5Z|zBc
zPdX`uZHPOhI}eWa8Bs~TrrB018;{(Q@&7DnjAM9mfsw|r6B!^??3%}xkM+MY86s{0
zjgA-7IyI-(>kKUGYgxPf*4x)&a$J!T at EQ_zc=)S(qG0g*;-5LMU12cl6h2u;e8b at G
z#W9x}$2F77 at DE0k70<pbhi6NXepgK`!!v;vc*CHUu=y3FEfV^cHzfIxI%!OcMhiwx
z%lN!uCX}^|NqTdvRwv3|n6x!7YPR7Ycxx{C+~IReZ=3PRj9bdjJ)Bs3<g)Gux-UDj
zHZjy3y!?ir9$hsrdH>-n`aLaII3io`-EzY{Hy+%4 at 0N(;3eeZJsH0=i*q at 8ed%&bp
znI1TA*@4-WT5aX*13>=TMRNz5d<vOR+OmG?g|B~htb5t6jq?}z+}-mw?pnHFaBRP_
z;IEJw_i(Q{?dU79GNGk-I*~U&V{+OFL`_4GoJ-`O7vaa_nVTfO%-t;J%M9TtGEggl
z{h=Brz`-CE at I=RF3 at u#QJi}9AzKF%#VwQas9Zr?3w2QyzqfDY?l??>>;VWq>i}8pv
z4XBFi*!r;eZuyb+;Z!c)Xl0j*tuX80YG1iayveHfRk*+w^OJ-5qC5;5qtm|E(jeXx
zot7`ms=?~8n;PTKYov-OKUGWEjED&}NFZ69XiSQ?04Ep^en{!V(5;1fCqyGZUr2_2
zPT<$#uLE+c-Bu;HUH-u3Hu;nqtEiNGX=Y2lG_yB8{FylN*~1&r7BHVZ{Ly$q_gBup
z at y7Gf1JGl-)~)NZTlH1owSMVt()C4r+s6E3&~QDj-%egOGl4sl?ETo|0(X~xqik|(
z&6G^3s%&<v9G6v$|9fSN*sAo|V#(2CP*I`ce_J*ciEk*!R{pFXB5q>ey-3NRJx$h|
zFliTq|6WNXqab+d-^zSO&O;k%mTCWP8WLulf0tiR`Me>YOoGYq)X)iDo8q-eEiXld
zWRozFDNJS~zV%k>$a_apZ;5Y#inr+GTOc*z9-Q1nij(p1dP`g;zLiXZ3h)5HZ0Wk3
zUIdTDJ|vUjxf1)sZ=v>32Z-kNd(;!eijT^Kh67ZNctJW;kVe;_?}pN-6oFG;bH?MR
zO0$J&LoOY~`vPG>8*dZP_v+FAq<%<`{%7_WN<V at GM!Hv@&YdS4F!^qFD^i*L{1!cS
z0N?N}npS5=za<!>7-<v?kSo3{_)UK~;gC4VPG$q7P3FHiNUqc47~PR1{=+Y#@h_FZ
z8<li*W~z)@f~B>rZxCl7oFoK40gN*nW~_tR2tw>=%H$9>;>7JW8&!t}_vC|zx?9&j
z&~yBwuTI3zS{IKORn(t1e73Kc*t?2-sBN(+pOX9i&C8}2C8iHFY!ts*qvQ2 at x68Nm
z>U%o}el`${TyVmyaJgLIZ?JEryE=Yx`oZnGfX$&b)7yOwhG8wSzx~6|fQ{O_(`<-m
znO#1u$62(jK_M3c at FSnmRNfqHi3<a2R?i!8d{nmVENa1JR1Gzq+JXC_j5Eaq@{7`;
zC>kmis5(rfP!<y^7dnZ`YBK-7sunu&)Jv~C at yJ{6(0~2gO-6yO)6 at uIdxfvUY_SU)
zpV}fA%c{>i{@|fX&yB;6{IBW?T2uNB&-H at GUXY*r<85Nyv%4yXWD2 at SX5|E#ieczK
zHbfP&69&lrc%}ULGVuBTt|GB+3CSfyf8du`Kga10%*OFCy0CLHg at Tf)<h3Kj5K7}w
zt8{WLidb0?orv3T<><BCLgw$}{q-3x)3NF`vr&O&bWFyE!3Hp__N3W_n<vw at Dd9Bn
zO2(pY(P$X3TS~yICoRCC$u&`o=j2!DW&>l<uqr8$?wh=DdEfY#DHFyW0;Vj44=xbK
z_9UQwMlGEIy5O<9-nffQ=nY7eB`80VxLsTt5_bxMOyez&7RlsB8Eu2*HznS_d+asf
z_7e|+UrfgcG#S|&JAzLWci>2XxeYh(-CL(N0J$Apci)Wpn&ENRi6 at JGdYs6rqu-7m
zmtD>dQA(-=m7x;VJ#DbCbVvaNf^!=n{7RTzDTc|FkOVHUPQcs)fOton^H?KjX;Oo)
z#G96|W{bfhwu-H2V`i6#H at f*s at UIVy#YLtMz`rVa*nYBB*#z1~nq3cob!{Lj-X*F%
z0rjV!sskR(%jAx8n3kzjtncLF1fw`Tnq&_UA7d&H>hJMlP&^>vgRtkPlZFyjX?CPj
zW}lKbvXn;e;B_4Hy<y4+S)Umu92F%>nB)X)X%>$Z%jOV`CUt~CKmk0G1u$pk^JIJ}
zq=jyt>^hEGAJ*d$r<Y2&Fr7qy$C+f-R53C*#&SU~{1<933dPsNu!AoBJ^Je{ux`-3
z1s0C46$*6qzebMpRE7_PkuZxf6Xoo at 9)%z0Gmd?aBtDvAKonq7WL9>ZGvTohiN$O*
za{yq!sqBCFEZN*rTLFhUE>AA3s70&M+KS93wmv>}PFcu6cCF+V=2^0tNq&24m)pb-
zE)JHLv`n+xme=BiJ32(y=F_6i?lRZ{Wli%l2eW)MSeK`z>{O7NO0A|gQ at fEQlKILR
z)uY*Hk(^?QlS{BbU}SSa3L%U at hDHVK{U67~E`ZA+3RwUbB;JUvnMeet;1QtU(Ja<b
z=3WY(8KsmOwMwA?6#jgJ60g%xLBuc%C7>Yjag*r_U~qIhZYU}eKj(cW(6uOi^B3Y5
z8PFlXqhsP at 8C)SS&jhb2cue{q(xbu6qm;^;dm&JaQlu>avWXM~Ef10F2hYP`LSVkh
z$BUmkfCNDVgfC3!RZCzG5BLl$k@)$SCX}Tm=aL)5ADT8x6jfBgBkvpYGHLzVgF4Cx
z(QP(KzMW&N-*`mR79J(e?imPeGM|Dt at 4*hNDJzm_tmFqYxk584LZxxEr!(!J*I2W<
zd1|?DriNE*?$xmJK`^E3p8egxn!UjaXU2LOn;d4#BAdY#5Gohm;Bz!ol_iR8EA;Zc
zN~Z=WTl#L!uD2oX(@xCWRfrHGQ37WtGZXH&^!OPrDd~ZO_Cz8}yNwb_i4#WxY|Fue
zfMmuvmQDqkjl{Sl1qegxEcD~bai5HPi9kzh>JS~w#JU$g-dO}fcsB%!Kmc231He6m
zPvRd&mL?a{1UL?lS`;g?TPQEqcLhv7jDq09&`O?YM4)|94*`aV#9E=p<f8>(@(_n&
zCi{g#5|a*z)rmyuOTIZ~mD99Bsk>bilP^4X2pF$~CUk_B+pYp&@3Sw%PtqdI)XrNm
zuePx?64shG+XD+XpL0d^>}7M}^vCz#KT at Vpn~c_z_X8i$Kky+FRHzl|vJW2+zY>23
z?|;=%#3%aOTf;4$V0B34SQRLqx at TQoPh&%Qlc!5+Z!Gp7qxYjSP5&-sVozNr`a72C
z)3nIYW6RXF^_(lFty at 2fIYW`&ebrG3CYGpeb9+NasEf?0BWS&Kkd<)wr~vj`H)GWc
zX#qhpcVTU55_F|0 at iEy~I+blC8Ei;X!B#y=(<n`&G{GNaqTbm>BUDAH7i}4|m2`aX
zk at 2%H7tid&?vk9z%W0v6ik*we#$-a7Sb-|w4SAymj2(i7TO6vJ4df<tOqiU;gf)g3
zgG3 at 7LW_ds^GiD`I|Appfm!9fxG&ti$XDvyx?s_{&VVx<=vs4B5m0CVgwPeBkFMzo
zgwgSH7k6z%S1oEzd|U-s7Fc~1mFD{DuJZ1c;OPbU)J36NLM#$Bl+pS?M`dT}{N*dV
z%e$)U&6O2CD`X%9fT70Sn#oCh)H&{L8Ci@;60W=m>3<Yw$}zDMr}H3%dn3`dQ|?R}
z&jM~T3%JcpQhfJa0?(MyF#zga at m;JkAmEcIF-n~fzd3<@Zs|nweepT#LCK-=pcTw`
zUm7ALTuXu;v{9rEo;Yz3;$Q4hi)5Ld#K*NA&*tcXx$G!_<T=lwN-xOdgaU-PLM#Zg
zF#sfRc%a*W!!nr7;>{-x#$&x_ZGDd9cS3pgo+F}>zFVne-XvS`g7gh14sN^;&fl<U
zn^b@(bc#1851tTuBbkEO#}rl5Au7?GcKisuMNhybJU8bXEpan>CEo_rF9m~9%MwD(
z97a2n5EFZP{+4QAcWBqXs9s&9)<^g4I<&4`a&mzQm>j;gb=I@=V`*y1g9k3^?zD3<
z8E5b8zUaV%OQeA?BO_5c+zcNc4=o;pCos<AVdDO{D4~pSmrJ1<MU%-%)cx|#o^*lZ
zCnf_qN!T2dJ#CnwPuid(NMcI?HvtzRGF?G>-Y_vsu{e5&F!M>jbI5oxOnl0RkgPW+
z?^7Pgz+K{idyi?XGi^MI1L`x~8popLoT5GGWPrfvK*^h&{=QnSW at s^?(vDKwu9qge
zz3beK12dY9jG;uYu^7~>P&ajRovr6!j~0ZrDv+WXbQddq^IkEfS8$*g@~VxN$99g8
zsfl*?Kj_?6)i}!|_i^ePtI|Dt>NLKr0+-6;Qt_}Ca0=WetfOw3WQ(jUV7E15iItXd
ztb}ZYmKV7c&VM}S#|EcCBAf#2&5tkGVT4*S$tl#Tgoa%#{<rukEz>Fz2KA6q4=(KO
zIsp~|R%>J=DHSBY6>oZ?t5>{KuN-0&_ at fztZ81<J1S3dlp>fB8A6+BlxQ{-P));{H
z2(b`qENJUNf3%0-e#_ptSA6_&O_8JS!I#CyUl#uh|K7 at sZ1`bgQyCmivvi`)?HQRt
zKZpOoj0K&YKN;)$f(INb5RcWORaF+lUq&KO3e7w8)f)vtd<8 at VVIy9}H3$Oug-{DG
z8>h*<8lMFbbX~20?`V)NhVPsbcV2owdUYrR)NfH_K=BLT4_`sAlOBg23nJnxBqQ|n
z@$bjE!da8D`3kxY-*Kk*gLo_(;UZB3D8{{?xw at b<LcWk-d<6ih2F7O=yfYEsev&#M
z)vw4_#Q1MeIiXzAM;Nb8{)|+ at _zwp6Oi~945-(yPEi8^&7KZBa32Y=95IiB^q1gb_
zuOGRp3a&T5 at Vw?xGw5f)rkeCcI<byTCe#0!{u%x7qv=mRj7F~#KUojfLHASO?UQTo
zxrel0^=Lx&KN)O2j{*uFjz!NEJaG>Y*bl^ijl7qhJ_D2%gYScnI)-O9FwX^tXQJWl
zCGjhu0_$(M`);rhl>Q`BS9(t3GFe>ESEX^N3dm3`g(l$hI)SBNsa&w=G)1zOZ9 at x)
zXF+`Flr$=BG|Cx`a`hf at yI3o3-?LhwW#mRQV)mNla^3p&uWpir>xSt^-#R+ILE5?L
ztM>Iex!eqTwLJ3?8Jk81#X++iDpp^6|NYmlRzT^bQP8hnxz`9UC(`=&yt}7k56J1e
zz274T(&roZu3WDdjJ(wUiQM3uz(0n4I8md?EOeq08!+R}6P~#<l0k+FEpG-R7|993
zb at m+2IexpC8f(Ln*7ZbM$s+&<-7>w|P3fu3->K{%60|QcXX2f}St3#T6P5oXXE21o
zPb4Vcvp~xS_<p!3cWXs at -x;krM2CVz_9UIf8Jn;|WY6S3ovbS%^_0S1pOdF)cQ!TY
zPtMN;<nhiX<il`={la`q_5<>H0Kc0oS;%S4Q4T7KEv-3!7fkL+Y(s=Q0ub3F2*bdS
z*)7O%Gs8<KCUQbT$xRqMq!FL}SZg$BZhKD!cui7c1Q)X#fB0ANgWI$UC9ioIta^hZ
zCzLASD)fewqWHZZgP9s&MCW;+dha%k!Kk?nxc>UXjVw?q$x-eN@!pp;yi!5GGTuir
zZ?|)dV+J8ZIUy|~Yl#W$5szcHDwoIY*6R(r35){ioB3HhNC><TNGAh=T!Fr2Y&0r+
ziTyQ^<<PfOu=&{n57LqvIELz$3uPr>qW!X%jcB3Jlzv`(9&CpFXh6oCEa{_Y-0tUN
z^pzvK16u<7>IMeu_67p<m1t)#-q{ymn#AYR7=sqyRg162ch%zi;k6^X0_di}0d(D#
z0DU-sZbCbI16#(_i?r4sAErEs|ElC9OD8AwSd~-?V?9*qF<h!ulV}vq;LC-Tk|RXR
zLrVyEc_*%9A=fG#%IWCE8bZY?T}kgRq+O-J=rC&RYW8BP2>Vu-gFJ{k_5k<gX@}{P
zd`SuiTAAc>^`Jrz5~&j2U<V1l1$}Y{eO~};NqM6#rGm*ozy*?KvzT-feeX%MhEt;<
z616rVtFOtp4`P}{gNI0nF*kPkN|pE>VhTM}OxX?Sm10V(8q_EhEG1}1?w;iq(Q`r4
z6%4?nDy20FV`Tw<fh+(*d0AjWH#`nEW at h)w-(<uAEE8=k{EDB!jTu=0T_at5n?PSy
z_&xLEz6_1*rp!0BaM%%@Kq`>>Q_u#GA$ihG^ozUkmfE^r at TS%vzHiWI4Zvp*hoM^>
zN)OS=RYgU&6m=D?f`elK!ydV%wzm%ahX&uG)!<vw3Fro>Z;C^(cNMzhmZG9ny{GE;
zHtbWI at wMb+t}K&M97qa;Nj<gQ1U5hYiBu8Ld>!vlYeM6ieJ?<Zh)`)UzK+x!x=vsX
zu&gjA`FsR$e6%7v=oAC5mX%Z#@mL6A3^HkN0u<Y4pcj3VL1(CB&(98=Rp(LOuhele
zGhNXie&DJSwb~AYW2);3bUhjgda;RQFx0xH_ks;gPyI<vE39Dcp4zIxG6M@!V=5~@
z{zLR-dCEy_D8K*=Xz~UbZ^JS4TsU|G2ik}f?JjUDoZxf_QpqHkpZ>2=3a!ZBCyt5I
z)o{(YDLK#Kgi)?4GZ-CGr$N;)exw**OU(JaMNA28f|#=Kh7y=8xh3P<si6scLSYrr
zt9>pp;c$SI%jZkG$2fwH8^6ZoNg6IPgT$HhWGG1|OANdP%@S<_NLY5CI#1wxKA+D8
zQVxfhaEZVF?s+1<$&$@CW&vl+QvyHVC%x+rh4#;Jjr;C`sx;ubO at B(0k(k^;zgn0l
zB7f5VLV4;%Ba+1|(*Z5#^HQOlNF9vlk}--fgd?Gwm`GU+{2>Y9D5Elql*Ec=f-A+e
zVgn=nx{p??SVkjQ9q0oHpNRLguE7=52I+R3skQCktf7soR0<hgPMb9hqchqZF73V-
zYrtE2g_5?i4$(@};3XZB5Uh|_iF>EKbTRLD6`Ax5tI??ca!hT)^ffY;Wf=(A_XW*%
zjZi;@*Y42rZvx7K-mf`^O|pPyXc{I5)N1Vxd!R$D)(xn1yARO}x)DH@<1*`UdIZ%+
zYu=M~tR`PVcEQF!9I}OZ$RyV1Y^bmytI459P?dLRc|mj58eGyfU;pH}qiBh+Nukjw
z*|Ofs#eJZf1dqK2?&7ugpbvSics;)IC~9IC3z`F3{!b78aj)E_yjTUGf-Um*%z1~`
z9?%HlrB6v<&wvVyQuLc>{jgTzcF&2J*mJQJgFRWMNYKSt-%5wVa%`N->6$Pvc%~Q`
zmQ4&NM8EmVW4!iqjnH;sSBH%?=r(bBodRy(9|$bC&>85ejfE=bRkf9dZHDLX6f~D>
z`T8yGO}xyYULe<LHMAw(vb1c?d4{sU>~K}It~Wj{U<Ye%ec%2lu8l_(6_pVyde`Mj
z2vu;MUA|;~QH{6MV$$<IM at 4CU<E+xduREW_ at Y#>ayq+?>j5i+90a{7(zGBOg4tqt&
z;S+eHr7GAmby?<{VIJj{tPHLNoH at gy9HK%whv9fmfC*;h at ND>ZIWSwWb!I=WeZcb8
zL-zx}Rw+0AT(1yc#rPfr2k$nEi-}I{&idb6kF!RT{`c1^!^3DbShi8iU-zW(aq%`i
z&#S?<mlc|eHNui^UW-m_7c`gRYf-X!A&>El(7??R4tL7q%Mcu7ph<GgO%ge3F!D57
zz6vCb#??r+nVIqp&M1Q`A3=?R#3cf^wEeC46S-W;|4dN6BLtMC+)w1DpBR)1x%kU>
zNSpg3 at Jd@$6fld|Zqf*gd2OFYfNgrco)?z}ms*z at z`cTAYe at fC(DZ5f#e!y&mKUGa
z2$Ic<mDU|~WUY=HKIV`q%vr86=DSWVC5>u~u)iNia`l64=@-REz_&zU$qAbKvu5e6
ztr|LBq&K~Ik(dB?i~IiP-0{w9=)g at V@4K~p0WXuBQX^@{hDO_SP|FZ}g4t-PjR|p&
z#S;nn at By?4k`72~M4Gf1+DA()+jK6s`SFm>eix50W^3l?oWg;__IbGA*lYm6E}!_G
z8{B=RZ#p<O at 16zd$TpAo4#72l`(Dm^%*uWLjr-A7Wq^aP<MKS}xdv~}Ud}3&`a^bh
z1=w^JXWeJz)`GKFv-U%JrIKB_4PSD-_X#v+EC%Ih`OIMEvqzH2WEw4{#kbK8I&?gl
zbfZ?9zQt;Vedt%KgndNTmNd&?nNFj&inoA1tMseZ=)?yy7vS}6-6+L;h3YXv%_KNO
zW=sg9WjK>B>J6EE1~2MHaU=y9B0--4J0)6b;?amH7C}Ewnyw8qUIIK?(;~w=Xlg(^
zEi&d>{-)i#G+bofu8X^G>ngjApDDcP+Eydi%aocq+ulleZtE_&ZT<y)&2Km>W;89U
znJ<?&1UssyhO3>z44c2Hrn7u1$2NM~DjI`+o=!eJr|9UFGqz5zGBcyYV1yb4&qTlx
z09+mS0x<G5{Az at AHJ+8e(_iPesbx_70iap6-tG;9Z#)r?MJWS7d<9Jpa;?P`mas4g
zo<t at _65I7HtQ03$FeNjTSqpB_YSRzYl|Xk67Q&5|gTK>i#XhasT~aqZltp=vcusQ9
zEkXTeCazP9$AH21$HrwF&B7Vr%g67tC(t`f%-W8^tkk_Y8T`cfG~?HrahB81=W~m3
zs?zS<+6-tXOJe!cj>@!GhSA^sR2$WeN)*AANj?ruMnJ+|$}XRzNr$YeSWEyGYXz9v
z0eik+b_alj4->vHDq!Y at kdKSttq>8I`+qo7jVS_|^p{HUr`S6}Okqu2iukW!SC@|T
zvtYYgfyw05{Kx0PxOlBhr_w4+- at GXf&93 at q)ok&D=^x$m5!3hkDm`NaUiGju3;d)P
zj4XlMI625)`qvfEz$+9qpm+XddHQoXuYwTnp)cw0zwWyJet0z9FWG(y%Uz4h9mtoP
zJ!QGUxRTMQt%vVW?mNenPB>*P<cj at Yla*Q=$rq2gctRB at k^Hp>wO at M%D-Ey9>ZwkQ
z8y7guCmyRYp#RN%I5c^Y8F!&(0WbBFq#-BCjwlgOq{z-FMRw3{?_{MefW-gD8Isa;
zmo2|8U;go>44mfEkJF%>VV at aO0MR{pZNR~CWgb%-`Fe8ain3#}ssKCATmhubv#(~_
zd^`364iF<hvD}}!%?FHHny_HRB{?+i!+edINGIF at FlYgi5wODr=4oNumNnM4bavEC
zPv3QlLVs?r>)Ji7C2ZwGI(;CxXoDV_7F6_KcHP+*-s=?0?+1{R^DW(}3;)#GKWoRF
z*pkW09B<ikc6YU2&TZ!y&F-a^qH8y7KJsH&wPOc(jI*+OwT5q4@?3fcHKFWr;sKp6
z`{~EIam5o(R~_G>?5`J=@8_qf2qshb;fE$G{mA%YvXM#aBa0Q8$mn5LWxu-QurXfm
z$6{nbGiN3oYcdYwF#|$pOw7gvh7d!rLJ7s!WW;1?ki+UFDrk2E0uFm{FlZNvjTgA>
zL1r+nqr(P+E~IEkT<V`=XuD(S+zWm7px<WgtM2gdc7=jd6&VG4xU<TmQvgBWX|0?A
zrg=Mv)doEiI&wi9=yyqLg?mnOU2}b4VA>q$a at flO2-x8zwg7}X5=%XNQ=lwV(PR`%
zu9^TvK)Sz at CZ{zxr@||<8nrv99G`rG#FaTR*o(Q3H+}^lFq_C~7+SCs41qAlq{vXB
zcg|D^u8&3<bIXxG&UmVd*c=Dj=ZSw~<XW2NjX<IERCR{!g0V=&DHL|z(^1`LwfTc~
z--UCR-qB{5<G(b~pa|&<hA>TMYa;y at sSZeeJlec$-VUwNDhrg%4O*Q|B{eRSU~H-g
zl?9r3&(g#W2m>~Fi9G;7x!vJ{bEXXh>QTkbabx89tS&=A>`3KQGpddC)Wy_Q)Lqo$
z)Xxat3-*S`TCxa+Qwt!05&es@=r3c$i)7UI1~%g(gf7A2Bi1sQj9K;^G$0bk*J9u^
z8PV0Xv0BXagab2bKrNx`^SB8jX$J7pP1+d}@41kV0AQLTm;jdeY9Vn+Qruzi4MQd$
zzDzzQDDZABHt6++;%D31(l2z)ng at Q^9twCAvNiy;Ml)#T)TKU8d%N3Ts^*3vt#(9f
zi%rJjjSkbLUaJg<mn0I<Bq-a;uMj^KKf9u0s?umwPAxwKgNMpdI;~kTI})8IcXK|~
zEZ{K}S4SKslOs}HY<jA_oj_Q(%T(y;;OjyK&tLDX(GTe#_C_KfPZyVi`={>{uP>=A
z(g%T8{D&3lT)?{RNUf=?)DJ$pyQIwYw4zvR=1YQ(#!DI<!C+CtoT(8zP at 7bA-5rt0
z9kprthYKqjS)Gn;tXO*du|?%gINemfh;9TWKmWO9m1R@>SLf|-C=LdT8_34d1a^pj
zap|EI=*2$-ct<6WkJaI#-hsx;zmOQ&Z2MSAt)uo*hp5}BN69)JBNL);%_5<vwk8n4
z7`ldtXOhp7{diH-I-=y`1)@IEV46W>!iSAx<{vNGts%_7oXky{2!;tqt-?)O2#C<=
z=@>9MB4pd1)Xs3*3rx~N>6bzlv)K{?-78j%G;9%H+`JyRmoIlZcp5C1tHV=b;JCsN
zt0`Z;ymCs+pa9(~(XbYN!Vzlk2o)8Frp-hP6__4evIM?n*Dh;#Hf?{lVY$YR(v8o+
zk4SpNzVZC^+NwZN{|xYSQD9nou&5~5J}poL=C6#_gf;S&faV=e;Qvj#8C04(!r_ji
zJw54Pg3rav%1pEyY!%P1wg#GeUg)&f#okSCo)V8c7HT3&|For><_98?!2IKA6LmNg
z^v~X$Hto&n>7}3SYV4AkOtP-VfzNT8Ga5ORX0+mV@$W!4>+q&U;<wWuU4ZTmc0JmK
zAJQ#q;w=Gd1RNHx_ds(w*qiksx{Uo7CE$pEAd^<maiJ!ZT`*&<uqmsQ0Wp9N!o|w3
z9l<Y5Mr9g+yVWX%<%<$K{cDvf{Uzv9DV63g%B<pX9s*nF?`C=fFU|^kF;@ZlggRX%
zSg$vYtN`g-jRsvMJjYF6Q<>*oz+;m at c=9l^Dc1L33xbK3S+EyY9FQZx49H$A1dteR
znP7a`XL3Eu%Q^Yp=M at UM{yCRG$2r4~oPxLkEw_#CXL(Mp5J$kR@;{7GQq$mluS#wB
z9T2~-)oT3o0<|w4f}+QV7TDlD0Dq&uVj at lrCE=M9d<kl-c at y}J5~--vmNB;n$hT$;
z!s-+$m)GOb>x^1RK_}Gd^!+pbII{1LGq&ipI+)p~_h<H3&N6_6k>`WyWRRCDLE>m?
z>wQx@*UN1-`TEYO_iY`!OG)@uvJ`um*hewDvkP@?#so|uE{fLu=zrX#P at _fn=i)=6
znXM4bXiaUo0W1LkEKM%}OGIA$0UHM0qD6cVECqiRe<1R7v-q0$XV5BsxK;cE;hGO@
z?FB`c2~PZw`JMP@@pYgT{~`We{3$4=_lZ9h{{f~D+<S`MNBr(|x!m}$=Pnxs2F~OO
zVRA~3K?Asez at k6EDIf;|0!Pz>>1O&#FnpsAoKFvq{0^ox>DF%ea45a_*YK>l>0{t2
zaLq;HcG!0QP3K>JGq at S7Ot<?`eumOVVgItJN2h`}pE>dj_(Hs8Kj;Imq at P&~XZ|%k
z!w#P-u*H}%*m4vaNw9M(rYA?^k1rz^P&vslAI2&92FAxrQ{9&vlke?+LHyWwwa?B}
z+Wg{&PbDvY>Zyy9;Ej^v9~766pC9a6FnoByu3Zb5a~JG72VT+IvG47RfG*Y1nm*6&
z^MNP6dGyh59)&mDS5#VBbRW9uv;5_|3i^wVU}lW>Ly6>~NVAb2gjz{z!Qi%w9=qtG
z$KYdR!;aw#8hHR8%lt3wmk`Ygn0H+8un`4_#64qNpr~Jo=fGHx7!{*EeNYL8$D<A$
z5nmmGPo(D#g6hd)edn{6urDGx9Y-p*Q=71kMHa#_J2BK*!nhxyE`z#{fFv<Li=<EN
zkc^}-fy5Oc*^EZ>LMuRGgcHaF8No0Jpu-G4gZU at oeir*w&{gu?(NJ+w(BB!~rv1g*
z*4Z?3!>W}Rd}y3mQ7yhNepVh%@Xl57rVrn1jjmcE*J&#JOI~|nQ+P&q!f12L_&>q;
zkV&S0%D$MbDEEwrw|#R&XVS17RQODG1zqf|^E>yR02hMN+ne+N-q$+EZRqYc at ajgx
zmK_yE=TBRil*?~{7dU(hc~v#1^xBJj3a+?FF87V__6_Zw#wk^_L2mR$eZ9}?6*t}}
z^VZSN-Y;66wMB+~LC1i)xYSXrsCn_iM`qe9olc!9%m<c+=NMZErmFO<<YW|WKx<vX
zrX3{I$FVpG4JTpm0<Iq{)ncI at NxDL9EEqxql@1WjL|m~k%uT?`IH|6kG&;`UH2^<B
z;Ogr3mxJ=qqFM4~2m5Ilubh7E)5i8t#qAGP1lvuTu-EyEH$DEEIu)zCTkN|>&DwQU
zcYgbX*QvW)VJIK?o%r{IJ;Cw_BRBhHKrZ7oo1XymQ&yLYnF312SjlcH51Wmfc}uLh
z?Hu*0_UdIuS2t)d*=4NJDC2BK!O9_lo#kw4nhV*O{(hPIwz>t5 at H$~?Km29X9QU+3
z)Lxx&inHUYU;EiwqgT~sELy2C22DT(YQ~N4fa)0C$KY!9Vmlii%EL60aH6O^5wt#!
z$zw1&Q4P|Mby*%;-gkUpp67v?J36KqS->&>1Llg4YuxQq=DqfruLZ!mRp*`80NwA{
zm#*Hnw36k-Wh3d6&f2IGz(V`E#8?}W`D9 at jHF%=fQG!FQ90^+ZT`gdOjd7r*qS0S#
zQvxtbosa|87TwUXzkKQK>!w`}?kTLl+0U4PrKHpXuK5|5uB=$nx5Rdz*i*l&e<}o1
zn5r>0MkE^~Xcm<nBjA`PUn;||^cwLVrADh1 at 6^Z@#tilzS`6vMq*4izdO=`_Enryk
z)fgV7XqHXkXJ-6CauCGvOuQ9L=bmHIYd{ZvI#{P+1YwvsMl(Y}JwOi^llm-A)G$Xe
zEO}-YQ9g?&Z;^l~I11-rT&CdA*mtbek`iS6dxvGI%rhl>?^q;y%utiUSs0fqcmP$!
zU0Qiz5l{u?{M@&r`V5i?!pt%W3&B1w4Wk(;7R$n9B_(l^f-IM-M672qn%V84MVBP2
zS1y^_ykJ4(mYZ(aKJduQ&3)d=wHs&b>8Y)q at 0)s9{Giy`8jA(m>DjX$12meUr|#YR
zyxZ;Zq8;`hA0D~R>GXQ1`V;Mup6wU?g1Ml1_UzUeuae!gbxSF&rx|t5PoCg<b7*Bi
zSeOF_!i<#J!iUmJ at SiL>vKzZhK|Z~^2Uf!WPM-~<={+N#?}azf=Zt&=?<9Pc1jCg*
zNPHNJkc2lEtt}|3CPwBbCbMOwSxjo&5-cPMPHe`@NU~@T5!)LMTEt%K*hAEX-2-sY
zHAi|zreoBY!TWBD#cc*B+-9 at eGBRA&)VQRniJ70MoZYmf>2OndSreEQPQV{*Nsg>b
zZk at rYHQdZKZ>^chY1AAziqAKdl{YcP7W^FP|7%TUVt08{Q#trSS(A|77*6~d at BLZ&
zO@!fX;HLNsyLZ13KcL}c>Vsuv2h}o8lfEf?S9xP2nn!_{W>3lh8mD!X7jVD`{Gb}l
z0ACPn5+9~Vs<Fs|94ZtD;&F$Q;qkkLZUR9h7`M>DTC9`+A*_BtC$W4<X1ZW3qo%-v
zJR0 at mXxWVp%PdA;7&T*bHYme<LU_f+k-#ELjafzlLCF+L<FTK{Qv#6qLeMM`lx74p
zed3 at DE!Ko!F&7D~WJomQOYnEl0huJ(lAE2-6hjjX8n4jJBqkm|jMznEcnXTNAUPiA
z$7HtDa5A){#3f>+nJQF^rhFL*;4-#?TD%nWY0)wSz0!;yP!j`Ah%*BS$O%ngfY2Zr
zk}3i}A6EepxT7S4=xI)xGva6B3}S5-(QyUwNuu3CrH)IpV}!uMaG7h(_$4%XEUF<~
zshJ07>e<P{n^g*i71&jbPHC0X;_VE>(lp1(7y|<!1dv`FXOI|+#90MU&hlA3OFgQP
zO9xa66R*(#t=DE|7^5nrYm~`lW?P_0sp64LVX&F?TX>)-wb8&^<S2$fVc?W9M#UKb
zFj@^p0L%(`2xwTP)~s}xtKzWC;bs*omR6{Zor(&(Eruoqy{*g;^m-g-4TLh8iqp_V
z^J8XHnVAO8VhwMZFNZ)TH at O)oV_3!?W=k030}4Iua>~oJ;Si&d0otexpLc16MWu%5
zl`<1;fzSZWIzMQim%f`;$rO-Q(zJ>O--8N+j8(8QNNdY at h3ZMAn$~g<Y8iPQtD$uY
z1xrJqgbX9s%7I=B<3=;&td at X1C=aeFGHeX;7Nyr&u|$|-teD}C6cyi_5EA}!E35PZ
zfQE0Sc8S4hHAUSKuR_B^HOl}mO?!=(_^j)vTFT35-l#l(N=K!NK?5J}<m3T!(0Gnk
z&A{5O(9~$ZzkV8vWQ29`<vJv4sFV&z%*#7?g%+BFyxu4%>sFLBHg`s+s6uX!ht>kE
z&aQVb8-M_0s3<^3t28pP8^{eTD_26GSJHC)xuJL)Z`Iix`eLP*D`%&iV>Gtjv#SI$
zl^29VO)g#yTDqNnvuUbVPCEgpsReYKP0(>nf_0Xd6tsMwPC+wVeH#GvE?tES(kcZg
z7R*ji=4W(TwFPMHtlXkg0cZefg+ZZ}p`6e%7b7r8`eYcL1pu{P&?y)NWLZW=b3of<
zSF2iF3YxREPU$F?Jy6eYlv_=%)}kT-uv0gv-HhdOg)Uq|>l&-W)(*K|4p{|PtJlp8
z%4K0&yQLTiyWFPD%k6x?t)j~eb_f+L&>4Rw=V*pj$~XY^aR%^1DuWyV832rfW<P~8
zIn)7-M#gAZ8I7t9FehJB+bm|Y!KmRGVU|PB at rq(IYR2dz6}fEyG-*(?RvT27r7HcD
zfM20zl)Ts5=`pgjMpq`Ys?920ht{Bw+2k^}mX=l2P7N9Uvv!tOVbz<9F?0CFScmc2
z+JRrJxUk#=iXCOgI at avjzPa)BrPVV^AoK=MrOO3%F&oe>icjA=bq4FH_SsOeY%0~P
z8ERL==}_siapqVK(^76ELx-svs)bsDJ#_*>+J_D4n5&Bph8Pc?p)C^iFd9kFFyUr{
z93J6-my5A at Zbv(e5DekF$XL<>YMhKEHpVNzY%PTP*p2(H at adlY<Y2SOE&fV83YK-%
z+;I59V1VH_op;gUlpBQU_ul;F($Z}=j{F@>=y3jX-^`hRVCS?8W;E$Oq>liFv3>U5
zX*K~WX#d>l9Zk`4r}BbvYcM~)Q)ZgG^qRS<qwt36merj0q7RlYzrCkJs{!n9- at b3^
zKW_e_$@RrYv;RV$4Z!vH3J<+ypB8H}iQbPN2WnfQzOyJ=CbOXCg+xP+g)dHqYnZ9O
z790_d#%{U_V4mhk4Q9lRWmu0Pjxlus!eftPQR%F0q6JC>R_M=<3E$$9njWLLF_^o9
zGcz}Z8kWti?sFEE at w)5EJ4*Z&_Nw}UM|wMw+uDP(mNXq%VRm;-jV!1xt0}ID{Lh1(
zmu+hUTRu3pzi)2mwc_xPx9PhwJAlPI;N6;qu?nlo%5i$V-7wec at mdp=@#SGx>$cA3
zl}!Py->fy3gd*<BN_SJ`ssn-PyRSR;L6?5pj{$pa=iI*i(vCQccZe>lVstO_0f`T3
zr8-CyQ`W{1Cph0Vgc3PeU^$G%WlHR(L7Zj*CWgzwkkT<bpg#_<MW%F}#U%qii_`Ok
z*-2Y9jLRhc9&32P3f}vXZf*-BlbIbg9`WxQg<R}0cdFxay6N-QB+Pd)EpwT9KeKqf
z#^EQ>3wrIkV%`2`6S}voIN<oaQ`{^5(qJ}Kn2kz>=&*4L^Bi`6d`*A<$R`F+4-Smg
z(PjM00~5R-&wv$*ZM{TZ216MuXl`#XXg^8J94z`xF~o*CLJ<;lNUWp8MoMe*7X@>i
zf-J=j5gtX!vJ;|xCc#X6gT|1Y)W(IVkIt~3k$7q($7kbcSgNihQvB!2uN6Uisx3Si
zZcEvNimxmGTpTH>(*vq=6G(3A1e9LvJ at 6j~4*UlgDyb_6iw}w$bi6$%ei?3S3j=-7
z&g;PK2gQfW>q?5PAh~6Wn6%Qp_=W>gUKyO%0P$|k2)e#gY^6HO;ha%*U3H1JRc+)C
zr3boTvTHybBDtXxqQp1XJ2F6W^13($Z|Unqf|Umby9NfpEBSn6bzUCq)82yB0$FxA
zh(s#0#b2o0VL^}HP+V2Aq}l3kYV=#1mz0K!4SHtTxB=!9 at UD4Qugi|4m6DPoFR;6M
zXPK{=WQ+)*wZ*&aC~8NYSZ_**&(MHS(*go$Si!Mlp#X_nW{In9Ac)-}v5XlH5WibC
zPKfOZ77k0CTP<cbwet42KY9E1mC^=mWAx&C8l6^r?@6Uw`K0)sR;Ll)(=)8%$tM*o
zqX&L;68N7~cok0qKROBgnUheJe+=40b!@Nrs$Qv-^?akzeA6RSD)peIm(>~6-+ZId
zqqCq!I;&PoXT?|1S-s|)Z`7G}-%r^~C?2&?DuBl|Jgmvc2pFmH2MD_>;kJzViI_~-
z!vQgOIRW!|tnO*?*H8BSYINhnpY6X6O_;$R at zS9?Fjec$7XW{2g at N}hS$X8-jpv?I
z>e6z5MWu;7ow~0{{J}f>KYMuNg+G7kpBKCeite}-SYF;MgQcaed9Urf@#K*R at 6wh?
z7-6zh#!g(G at d_l0PR|72_zCeMi2_6lxUsMYqcbPT85!o2`o09CM~x7)3}V>?-_K)N
z5G)M$=%B2ZO;K&w!-^t237o}jB+USgi>O<8!>}q#Vb}^X<Oz+y5W at Y#MUZwfKs&&L
zgY#v*LHkhq>w>_?_+PNbMBCaa$;gJzMy>7{W06%5Xv41?B*={8La<giPR}_m)CPs)
zLw0d`I{71@{1IGH8+>@r8$zuh2rsbuQnww0tT{p<jrKK at o{t*;ykig-EGXS5Jx2UJ
zq%Qr at kFdUDbaaHfk?Eu^BYt=?X&q;YxFC`SAX at 0LvLKorX*BLzjD$=AD}C at 0w8$a|
zG)QW}vn2j?(lzlGh9EMK<rZ!$XiZ}zs47 at P2e2*=txJ$R0xbcwhT-;Fj$2FTsSPee
z0?Q0n*Pum-yev3MSrbO1v#Wlpl~!5>9pD&-_wAf<bo*+nP3ha(cXgADW^`qMSDRT@
zFE`fe^u at 9Ak|GV1 at d_miwVce>q~Q&w=znxajSeK=Bbi=i(8_slSxca)ia}C2lo^%4
z9jcMh-y}YAN7uVbOH9ou69-nXx}ej>utv4ov}9V99I#g3v~rzI#tJl3I<?(uRhC>c
z2xM35&8$p7 at +L#8Of_4Iikp^I7qLL at Z|LhRY162^3TPHob_mq0!R2YFT^>}mc&l6r
z$k at wQw)CB^)X_9R{~@bWNW8lbae8(Gr6i+X6}6b!OkIq6WNuB2XJnE at 3s6fII}=rF
zAPoFyEr&Z}JmwFebuStjam*@@cJYGHiJif)u^V+=vbcm!kOAL}q4lM-s0@%}<WLAN
zZlxtU{2n%`&NG?$js?5q3XQgyGdQ)*rz-zz+m;1YRd4ifTZ2}KgW~9sKZ$?PDh2^K
z at +S}g!CBY+R7{H>iU0HV{wtFYg5|TORx&cJPA0qZx8cf4$ZD19`c)mf7TE-Oxdmm+
zxUAJ$#;|s46Ii at 75>nK}?D8UiOUolmi>9buMHl{K#5-N5wR^nN+>YBd4whAETv}Gu
zv$5CjeQwR_RgU7PntE at XuC;u2MA}@_aqWS=mi9f*Y~2Z%<b#*ZN?fm1qh<gbn_G8k
zv?|o18aBf<Jr~xYx1&6?_G-}Et);AHes6lG!_L<@x}WTr7UgBGx+<A{cA<Q+gHlie
z=3XaUv1qOB#5zyNVS-~n&~s?8G?*ElIs4%ko`3l8&%M5%i?^p=e(HYUXQEHNoPGlM
z at AvlfEdA!X>%L)|MaPJE*1C6q^+#aZZ_{Ps$M38I$40<koWB)+l)+7=*b9)Xwgu~6
zXe_SED2||Kpz&A>vH1X??iIsn7N=Pkh(*IJTKO|tw9G+66xNMsaaWe%Bzu8-Sx?`(
zp7~9B!*=o5>w?`b90%na{WE)(tzELvv*X3fceL7~cFsJbV@>yxM5S!{#cP)|M?7Yh
zQOg}O>T0#YNaxv2epY7W<s4cgX{%z()?Cs7L(TIRFPhV6Fj#72*4bTqc3lI0*tM(K
zO>3PtrSe1ZTVM~`z}qLZyj)W;Yu~~uqi^1viUWgyhP0u$Zr0A}MFyd?v9+~Yr at x?6
zW}G%_VEfe_w$82<%N9<L>2&N$J7;N)Hn^Z=-o at R`P9F6i`i3hwOJg_)tC8qpLh{Ss
zSc-UP8%f*}k+Oi~3lB^l1O5w`vg}68-*zsj7e~@xEZE8XcDOA2w{rnKZ^2IBXj{BT
z{3p=tS=<Juk5Z#xCi=Omy?xQ1Jq5C+4M|JYnYf!tDM8Jr2%2J&8B)+JVWmV0`rzpT
zsNgk|aDzU4x<INia&acFW0_40iB0)a<`wgQ;tb|#O))Fz;At~El*uA!#Vn%|yQw&O
z+T2c%;U%4EKAYf75lvLkZZt^YTm~bKO+8KER|@+qsWahN>fp#PzC)Z9hx)!NAK%WO
z0)0Od&R%vp4E{{iI&hyBia+B!z8cBpCMt#_EQv^lC9=2$&#qJi3#Jw_8qpFUSDX-a
zVoQVIF?nzll|YYfY!F}n(H-K~x4-d_;esQ8dv4#`yP>0Dl+x%+3}1*P)&SiL<=Q2&
zww}I at 0JvY=tOvg=F?<MCzx>1>ZwHDyo&sep2V#G^^f~d{{qNg%Bsm{=-(#g!dV8d`
zr)}C<ocO0?(kIrBS!XvAWT03mh_wu{jFchSL$QVv>qt#ljfs_-kf>CNEfD>iV98 at X
z(g$iUH%w`7sn>V4b8J<4QAN3>SfQdVDs`2ketPV_61|`{wO1QdXtXf+{id?!@<rYQ
zd- at KIwbaoE7FSI*(n48$aWxm7Q at e7W$sM*Xn7YY$i7$|lBT4GUB2Mmyv;`LPrEyL8
z>LZbLcD2bgckoIO0l_hrIFRF}z-wtEWTYis&H<<uL<`f|FexMg6(bpvHDwcq7?nB6
zB!4WP_{pG_e}|SS6&lN5vs+$^4uU;8yG7iS*_;3jISNxh5l{S>*TQveK&I3uE%F(w
zbE%Vfh5FPk)`<7cU!6^eHVrWTC-%h6$7cI7h|s1?7?4z$+ at O}Tu6 at UNZBb&H6bH#d
zx>t%3={;lg_Jr%nlTH`SorznOV|@M)@s#M2tawprK^+DX)iCyfN5is*NJ1GGm^hjw
zEjSX_BjdbC&;?ph4(Lb??GrF;E^smt))RzV&$%m!h6b)-?%W1W&?J&~ox?0IyF|bI
zg38JZmg_GmlSQKoIy#0I(_g>)Mg4%INF1^+uk2l2eCM6Tt9!%C?7+=vt7<y^;KdQe
zE-;u#RC%m6Xs{Zf&FZO2Bsepzi&Xe4B0Ad4jra%r&M7xe5q}#jn_{(MuTAhe7y_?j
z4^Bqov6;FOnSO?`KDvqjFz)ntwJBMn&;m7|%#tRw0y>`zW!y~BYBitC0MDU{5aKZq
zpjq~dmW8VyspA$kR?XGL#b3wei<+wD=;F5)o0=EIEAH5Qhuz%N9j~}EDxHY^KeW9E
zU>imDKfW`&t5xq^vSf9++ma=@TQ0F3$4(qOP8_E>z4zXgMhgiL(ttn=38A+n1OkCG
z^*A~gjyw1Pm%D?zgM*`&B-Z3Vvnx4H;J$GG at 9*bCyVG`OXLrhb^WOVB5RHmEN#V#H
z24h8MMeeP$51ae at L3B2H8U8r3a<Z%ZE`zmvbTseIIfu<A5;zo*v{mA3BcL=Y9!c&J
zIcPRjbVl=fXZMmKvE18Zq7mhJLse1qe2EyHn+?k6UcT>>#ru1^OxFZxQqJW|LCU>+
zAk|~j9XN$&AqrKoF<%uJtc*gRak|_uM5ff%PRajGfjnDU5~Sn7l2}%MU$CUoSMX?n
zwkz#Avq5h#>u`t$GEeoTIxFYTfa4y$af5frkj&MYV!s%*5C;d-v&u?>z7dwpC03}D
zXfWr(O7TetA2f}i(lSZjHh{&wxse)4O{Nx8ln$?ie#j$M(!3DKuM+l02p6UsNOJo<
zQ7>_;Etp_pu7TAVP5fGlzb)i+(MU0s$>1d)5)d3eUbdoCrZ<Y?e&Uw{$Bi57z{2PM
z&5Bu-*v7P=PxG^NN}cYtVH at Qd5v`K9t-2fiGnK|=N at s(P7jFcz+0s}u!^lNi+?%VB
z=ySkq*tBRiy>`- at 5B;mW{|+z at w0ya9=a=X>+KrBr5a<Nmpz`CZuKE}~hmN4<NC+kl
z?d{i10?U9{7pSmzD=tuU8O=gh29N>?kZW~HAV!ZPF&$5*_C7hMXJkxn*4b1JxtE=L
zI=NcJ=4LYO4?g!6IyeI!xo2)REWV`T7XD$*K6cf|pz^Y381T<T-oKWhHvkRm_mVN<
zjTuCYLC=^pK<A730};l=RG}|FLf5|YJ22thchM&x at +tj*FZs=lD{lveSBcxug#K`H
z*R?+!w%+eQbKU;GJJ>c<jn*vbXvnzVwJxm#&ijIrQ+}$DAOjdYsV?k^02i-&Ht at TM
z?Z&2qVY-j*OJv#4N$pt)fY+o%`hU4S>nzSF7vaE<I3S`>LO|%aKqYa-7k>g=DDg6v
zNc(S2NCew*LU-tld`F4tSYs%b@`2?eR<Q;>r%UNz;#@M>Mq|FTuPxEPwaoqK9dsDI
zb3dbnRmNf?(`G#1%gCAJvYZl8by*pdN>qI+i4>NV)yT%6V at 4y>gR_|)cnUo~WW^Bt
zA5=WbaZsHvMwrKZ-F?e+ at 6aKBG(suEe at gI(f5=e(8*68Y^TnVC0Mv`yKmS64y;0DO
z0Xib=(D^AyWFwee)0(R27zq{;z&U!HqADjVt_Y$F4^Joy<<wX2cqZF-L-(qJXr!df
z9`_8F?t*p6N|_8kHw3%@g4<Q9g`eXmtNi4~*TyK7fvIIzXnrK$aN&gnbAyOreH0Sx
zR9|tvh=_ibG;sk#ga>pnZ`sX>gal0F&@RqH5RQd1L~R%ocYb~@#!NY3<727G8V_sw
z4 at y-)U#hO7)vn0Qg&om?VN<7v%jS-YEq7PViD!?r=Ie7R#}@lWS|W?U?N at Id)>70k
zq$u7!E?(4#{?)tn<1+8q<}E;z=``dUcfZn9-SYMemO^iVDPLX)q0(D2p}b^#d6vdn
zJdxgCzHNPbz*Rmyf9A~gVwbH1Hg#2B+ugLZu{`ef4ykKP3?J9NW@$%HdDF;i^4qmp
zHCe$t=9%5?H%DvZf={DS7bx-lypE2G%Atxeebh>grFQZbUPOU0wd4p+PROD|4fr}@
z20}i;FvNrzk^q^RIFZ_9#2qol8_RG;Q<NTTJE9kHJX9Bt?8U#o{FHIMmxuah2YlH3
z13sGJ{noP|%Zq<Ay?>(ItWl}Tu6+Eea+OMBPJTYRvSMu48u*@YK7TM!R68*m5&iyb
z0-Zz;qm!G?p4|i*K^tgHfCUq4Lpj$LS6)A)uxQATqQW76t1V$~+jK3u6YWKZuibQ;
zC{np|`nY;Ldo90S>M(;@=4ln}D^|33EC=X;^<V;O96x>MT&1eKaIQ+JvB-<u?jpGb
z99uJbOhsi^mvGu;n^@aav?KW=ICW=dM at Q$KsGdK=n`$RImh3EqUkQ~DN$#jw;_^7R
zf6_UA?AY<0pKSMfTnnqGT~~202VTnPj at 7O>vV3`a8(OY9TzwriNH@=j`Q~h at jG9L+
zBXoO+Y;op59!r|+A(g`rOgooK+o<5zO<%s`rs0$Q0iB8L7DxGS#E}gwTEwNkmx&yh
zaL9|-A}{$U_`dWB&Y<LKt^?q at xLC{?xT3WHtof+8xwyC)c4TB{XE?I6?F5CiKS7T4
zC!XA<aD{*0nU2>%V^OH7DdeqC{Y|2wC!M*~TN-W(xVYWag?)Re3%k)ua+hLoHK#Ok
zgxumdE)0sBqfwkVj=!@bBOA;-wXJ{iwo|9J(Hpj%>VI2V9S9FCoGS*BqEJKQw5BXq
z6iTG%_ssm9p<!R8%91hVuE~?{nqu3=-)Rs%;=uC&L7R at HfYt_7g?Q)$K at BJau#uGV
zP$l33I4^Vw>rGGTUe>$J?zin*+CFlrO|P?otM`&qcg3<hmV%L&^OPrTRU;NH9DzR8
z+idz(YucAAZUdMwvFoCLUb8`Ov+LGc?Q7eXECCN(&S{eQ{t%a7C-BeBV?YTHEx-wA
z$de5`G{?HqIi{G9#rP{mRrEh{^gL+7f#gFE_df@&15M|TKGMJCIh;b5tRN~&$pa7l
zc>XAmqH{Ur<vDQPeP4fj|5atTqwkNNKl?C{SC*l#v&+k~2lJ2w+l2BFH|m1>*Pr1v
z*uG>OWlq=v`@oqATjGPsuU>El_HCJfGL!KwOva^3lw$m|iYeyrn8uRedNjOczmLZV
zB1^5y0z4XkS6$i=j_3#u2ma^N;IzTvrdN}nfu^<Krq^D3tsNSY{{l_uaguN|)Z?5+
zbP_bKW&Ylu1yAC<#ppU*rV*Y5j#pnrf9-ES)P7h<90(4=R+8{Iu!Y2T5<ffg_AP@#
z>J&&hr->0e7RbjvLgXh5w6P_UW3y*R(08c--0<*vz0MRHv+i`bcKuzCtZ%M+;&iNX
zJ#D%~v9&(YtpWxO7?~JH&dDMmf0`a%Hc6D+n)SL4&c;!1|Km6ae!TSkN~x?167DrT
zy=<mVQ7==kQ}0uMqy9mCLVZpVZL+9?CTzbFa`~)>X!kleCotluUoe&_j#WW^lfWa`
z{4uGu5R(^p3FoJBQ<__Wq7)(t5nu%fd_HdvXo at LmQ!Jkg<il*@S_YH&4p<EgCcL7G
zs|7tWqC|`rVVc|!KM_wQ$4nd$;I{)+FpP&L$<&2$YQ&%d)sT5{*ws^K*5tUxRSYRy
zeZZSrVGHC>9V!(u5>YPaWVN&i0Kkbgv}bE(zy)bo9>XKiyRXtReUV*cKn|zctWko$
zi)99#jb%(Cm6bar(O5L969C+4EV#ZPRv at j<VcV;6W7&Fx)GQCt!8{MBWHp>pB;_Ow
zr?P4blpDsWgZ0%JjbeFbrcrMEVVylU%i>mgWI19EW{v1St}Myb&^bQ at PDUlR43h<}
zURxPQXA9>K1-H|l(r^jG8AjCD(U2aIG*7NO?UZKGs{thcCeZ~AD<?OV%!ySxV%2Kj
zfd@|QnG6|L!uq%jxx?Z!x~$b%Ex1oe)y`(4qO{Tgt&s^EZqhT>MMkyCM9)zg6;g(U
zK#{5O88s>+9aLK%>n-xSX}wvk)#VPgW~ynW!t0FNEx{m^sor4?VwDIpLy%@bj>Bcm
zw{=J)d3J!w^+}Tq-he4jQ>trGNg|`~d at +ZXNF}-`C+i<&&2dKaOV~Ua?Ug at Lh~88I
zP9+m_AO|WqxJ<7B^5nV>xu^&L{?5XFffkRke`ES2N=+cX8d!gdE+IP2M7Y9Rmh!6R
z!YJd_968)cczypU;ORM{5=o?FL?@4jDH8P2c|AORio1#w<9^3?*;tC#WUga%jwQ{T
z;;dMv;(*vacS<O0Ob#c{)#*)<0&_- at RVmS!Xq8AQQ7d&an at 1*=vQiW1mYVV$uEb`q
zZRm)uMX{xaA#BO0Ybf2jVoj!Xcuk|;Q;=!Th^%`P{R_Q`{{DwVpuBxpdx1{b?5T8k
zbH$rVbMMbFcsuJlVu6rOX>=E1ZcQ)Ew9_=>vT^dQ1xl4vo@>^NIXzS`Qbt5Wl~Sb<
zF>+8~%*(TPi~_;3vLFDrOkY&2*VMGe0jL~`$y0ZJ)~eSJqksHn-qPO!d+*r0)-4_u
z&yb3J`k>i9cH}MojNvwgc}UZW4fj!lamE~YmF%Wg;rT!Xl^~F|U5@#q)xgAw^d at 7d
znx;*ddT@*MPMRx#`5;Z!;qh-23}ypF#1X?~qs0Yu%t at qN4nPxnkhhX18oVkxPz|ey
zq7%N5$?x6gsCl4My=Z9Xs<A_i`8D!=GM~>k%jej4`_uCMa^I|GU&j94eYfv()aTk7
zx>t3!ER~PCkDj at zvw4Yf^po|neS8_m{$BhqBVJ%=nGR>PSo7=TIHP$MpK<&CjJn51
z%a#uBTm|0f-S3F!8ydP-cQ!3jkAAR5zF+2><@b?-P)llTo=s}R{~UEE$Efgwt)9}X
zFF3!abM?eVdu}~nWLBy|NBn_K*;2;Tx=hyjSY7IQQ(1L+)?qVN3;JRLKFAQNiyB8w
zqGnQasH>?%WN*x0z`NoL2nx1=l-_8}Po_hWUQn*Z|9Asyq7aM60+H46dbffeEzR%e
zdPu1lFQJTuSW^J_G%PUD0X*%R0IR{DkW|5=-v|^Ve=T8u at ZbU(Ud13#9MJH)zA+6O
z%Eg%m4crM#dVOvVSI^YdjWjb(TGV3Lq}0?y at eFam0U=<mCbL$`0Fh5tRxk}pYh at A(
z!$8_%r!B>C`FfU7yg_qvzr$fQDH%Y!^o3rX20mTA{rr#cM6#KAcgCaB{xl=+G|GpS
z=-h45;O1Rru2CbtsuoMdjNQcyeV}pD^_?oGPYU+*pHn9DIR#6U)KznGU_Jzupq$Zz
zmuXHc(Pyv`ICJ<U6=WdOWj<kZTrB}^C=(NXNGZ#4j7Fq^B3iBXKo3Jp0gxMDsFV$j
zw2O)%C<13x3X at 7sn^aaj3>l>y?)qDH@}_?>;!l!MC%nO#{HJq44PE{?Sa(jN=&kLr
z$cN{15<GQip|2>z%V`WECUO3E-;2Ic0LVloKtvYQ#ET2&8qh at EwmOY7LF^YBsWG at G
ztfa1__EC3Hk5PRCyJiE<Z`n)X*$MqXd{-GRw=dKDLj3=Ad7S{F=F)&nvNxO{2lh-^
z!`?aly|oidg0MH(W8ZHNCNp_Zr~h~W)c-EOr#D!VOfZRwwHLidA9Al4lBDMBomeZP
zf+a!x7(K!BiGj<2^5=p``M)gyb^@v-*o!FQt(@33h^Ul2t(qEv=YWOOM&3i>L)34m
zH>f{jO6&qq0VgN`)jzX)I^YCSc<-A3GEV=O-}Be>kIO-e{<ru0zxjMDuS9fS&>rf$
z=wji2J|uo^!HWk-4f4D6tFHpoe_xY`@>|dHdxj!>M1$aUzy77*(O-aj`uX5_<p4+w
z{4Xx+SN{L1jo<5yUr;lBY!A=<QIgA*AHiT9E^k`r at i2NnrSXW~x0kfpKLU$BvbU9>
zUP0;cee{0+OT4;c0ws8L#}eSh`Sy=K!lgeJv>ns<=>jft1}}XZN#uwE&x7ek!jk~O
zCk{w0pKOTH5(^hR^LgAjgE+_W4Ju9SgMFctnJ{sk18BLwtFmQX1wOW}tw8sVYHiul
zz#qUhD}eTKcXe$}{TJ1>$>zrv-SsADs_gPttZgO7bzoZSsD>>q<iG?g<_=$aU?@4>
zl04nEV&Q at 2wv`KSEqD%nvNXRkL)JZZ*XYv^t~fn>ZbkDgOYw2&fu*xnwlyDExT3B3
z)`i3#?g9mgpL2tNEvYl6jQWL#$IlM?mQ2cnUTdG#3-cx|>D+to-cI_<8(#4Bzrt(h
zMSL&Zkoe}-Tfe!8oszZ#bK;i?G;AObD98sC5MxuADEwwLrdSd%kxazl6Ul~T1AETv
zOvdfC_GH}Y&G*ATW3CbQ`ST}$32 at yfixEOFNqH(XD4|w^gr>qnQ^8s#pv2+}l(JSZ
zugCR^1%EAq9U8G6$62h8e-0L;&Vh8CJQquL&N00z1X2&^;}7^L`GprBAnz<G4tAq?
zXde6aph&I|K8YGpBYW2GLUBvng5oTMY%1vT=Xk(T{OdDCO`y+{1CDyLd-_1x;YANT
z at IZ1$I<)FeAU(Y3si&SwR-ztnmHLcQc?RM?a#mM)L9aiqega&Nk9|^UpE~YGi=I%&
zh5bS#rdWvEEy3^IPvuiJ#9M>GMH2*9KaHuoFm$;w<3kBOl5^>eK36DG>~Te0girUl
ze8i&~&Ji}iJua>U0dS$edyxq2*B+@}q4{7MI{8i#u&-b9+H{y)u=IQs1Yi3t`aQ4=
zANMrsNB at HDW3F0WegBeWMIB2L4ar-X2iBqA&+dLM`B*%LUIXGkz6o?!eR#FTv2b<h
zuH#P+ZN2`F_PPz at 9&OJ&vU=FsQDxTDH%!Y99eDKT;+8b>S__x0ggSobiR>$oO$OQ%
z!Bna~bz*TDS2S{QCz?Po(IJxu4?X-+21^uAqa9$w^4{y_2AW5;K7459<daXWgVOpY
za0}S8DRKC=D_*O*MmDr)u?#T{b3iqE=2B at Qx}pE`rHgONE?!hRB3px=eY|@jdgR^3
zvoc$TNcCGExqtJOhkxS^f(2_zYJs#h&1Z3GJpTZ}5E$^z!0*wT()xe_LY0F-yXi4K
z<pKO0Qh>)5ug*jOdnr-=buV9c-OI at xyJp#Jvs!DM&iyThc75iG##!{6$2M#{c5LH@
zV|&qer_eC at vs+g`Vfj1QHe#Z}NN^ZrPo4rY#!0Tf?)=kl?h<7?_qDXfonn``VkrIR
z4ae~HM~`lN3Vn~B*>rUOvhm=7TMHrB_aqRb at 2E@oMlo(r9o3rh>p`|o1pz`pP$9t&
z9lf{-R+(lxe4*5L;%L%(U)oMwcqfE0d~Zqb;>Ep4y{x at tqNO;$VwJ at lu535z+v$Gc
zOWd!&anh`trC{vd)2H|D{yqGQL^rGo{ZaTpKkR&I$Bt>!chFhAi<gXOTZ~>hvb3yF
zugCYOSY>vxaK7*{ZyGXw)wMJGPw&}#`mNpQY2aH4-p1*uciN5}FYVkxP}MJt7JVzC
zDFyDAd6-8Y#-l^goR1e`W9G?d!`w2h0yNP$j>ZCjSbzb{ozXh-27rk61$0D9lqJ$T
zPRVk9oD!pbF``JwMlnTir0Z1>jmKkO#;GK3I6U|Gjn$J2oiy{b26AH0h-*cOQ}QC6
zwsE)k at 29zY|5}<16ugI?)BQ!?7Bm-m3eAOZ-`iT5Q4#c3x*BBee}K|;JKskW_PN`K
zRA at 9{k25Nl1;9ddy)lC>_1Q|Az2iAKEJNGIH{CFMl)(U|TPrl$>h+_OpQ4*GJT$|x
zhrvQH=K;0RNFS|6*FGr+)0}n&>W#UUD0%_y at eTLr-A1ESOE-ae&wbv3w(Ccay?H{N
zLIG%-N>wTJk+ at js^JGuA?xOD(oeRG$LO^l at DT57pU1@{fw8Iqq{z&&Q5mgXyX5!X~
z6Sr=re;f<Vk|ZTDLzd=~kXG5VsCQ96g%3SS?Uo7l*`_<D(A1PWOtbA1wtx+!&_r+s
zOc(2P;-p20QV5gl3F1~XAsjI+m%ybDP29L~BAT#8uyYoZ={8K2V;;VB5TEuxJg|T#
z?Miw6GU?KG%-~|%Qz=~Lge^b&=m`P+FF_h`_MGsz(+0Jhaq(#|v1I~jM4UW+TsU5A
zgaEWlnu0R<*90~TFQETPK8opqOw6C0;oC=f$v}0aF%8KE5OEV1BP|;^3ciwwQm1fa
z&-kq<1f*UI>a%#I0EMi69oY3Te|&))69oP~q4Qf`0K4$<W3a2c*ss~)w|G1j{|=2G
z=iWGQNa%D3U*Jdc`NJjnD>+m>uTzu)hZ1J_lv#W<hErXGQZxBf9ZvP~dx-<38Qu*c
z7_2Hd)A0=2c5}AP$YyR`_}BY%N}avO^Evw6O?wMH7S6F|6EMAHR$4ssf*a7$hhObA
zIkTLyjBO7d1bH(Jx{RFHE{EA~$kZ)$OLFuXV%toa?X#d^N46qt at rYgP6ds@{Fby46
z!1)}`Y_YGtQl2&LGC>d!{Pf~)q9c?r at ju7W9OkbBI26;xTnvTYG6NH0b9Xw>X;5HB
zpMdi?4Dy(_l216%WC!}f0SaKF0~~Y!jRTK84gOs#p_pZq60fiYxGz^wP1GoA3N at 8l
zjJeSrm><2Bx)1ZCr- at fF(o5aMj+e~XIEr5*dAA&`H>I5<M99vdyMS0*$4o?_DH4bk
z<Jq1zae5D*9>xUw#SCXk0SZTOjs)m9J?{aE$b^lt%VR=Bu+uN1NiJCeb;J*pX&{El
zRiln8;$u)3iKeg-c$jLQs3Qp!FQ1^*n1WPDB}%0dC?rOZEt4z6YOw-HWg>}ECXt-~
zOs|JZsL?=Wm(>cz5|c?H2G&y+i%bd)1}K$HG?}1WVK6A<JvgouN%VS&NC`HfKN}2E
zP7N`uq~@d(bvl_Chj3ghn}XByIvi1mC30}}iz<~0a|BAIO0Sx#RH}_?AeRHRQS}F<
z)~W>}ksL}TGBKxw%#0(;`~R)b+B<um0}f53bor6PUqP8vsgx$a`%0=PJ`J1IVwM%F
zMaieYzkrmJNjL?Vm)IbYY)D8N-greKefbRu9+?07?sJ*!^Y7$r|F;UoxBUv|r{Ak3
z-1nb~B*+Noqpja_GVS+ZomMsi<$f!c>AnST>tvZo^tHk8H8>|xD3TiZDS}@}RZ7_x
z0Lhd}2hx8gQ>$g4fzRY>H4^_rq17suEQjl8m4su(+T`x#cS5a#-eQuv(b+!Zk&Av6
zNuO3=nt>p#QdFilhNl{`J6{Qm|8tDtLAZrzaTMynd*Hyz*U at dL2i^AiN^sy8;wM2b
znDTl${yI&K9(Avv*K+Tu{(A>SK=z;rlZ{UaA%;(b_HuQUmGV#%@z_~TC8(?Lob=PZ
zIuoaH5m(W?@;edV0$x%^HgH9pLD(<nAn%`$APfLvuVWzlufztV9ENy61l(+Vz?6j&
z0Fen#axq?q(jV~$^c+pf2FPthtlvWhWiflo9vnc5P6T`GTfr)+9Q{@frV<0dBn6Qx
zTwZpgL#>2BR8x3G^#}LeG*+cB16ImNCUz<%usBxlH7gV{rvaGcS_#1?kjId%xHCKy
zY*H!k^YD-%a<J~oJ<!Ougl#1bxYE3=rBKN*TlxL9G~RU3UXQNIkb_eBIW0pGE5maX
z9BFlMMMlhB0pJh1%;o4DCkKqw8l0IYQ9;<b=&B9vw}gT!LxBj=tYhtv!^md7BG^T*
z$?oQSbdX_qP%$HZBgxrO8zzhE=8s-jA~V|o7~Ic<Z#44PeH)#D05{{e9|@C<bsXlQ
z3u%!GcnDoidw9amgWonCj{M?Vp51WxV1lC|Lj#sh96a2B-tL}?xkDTm!Rwb?4_Ux4
zm|2|K{VU!WotT at P3qICc)nYU4mLMD4Gj}d()>{n*Hd6v!$v;b+B7?!I2PfwKr2QSg
zuKmO$!$Uwzi3AurfrrFt;U#c<%W)?y0DN3W|6=<=9<U6X$x2!Ll^Mu#^xPKUsqcHP
z4t>%*labT7Q!yghoEG$9{Zr5WidXRIoH at 61Ix!<+I0<w6oH;-PtaIlc<a7*;?;}5m
z-^Z8e<Fqfl!R;^Mb*X>t8^D~T;CCET7zDWzcr;|h60NXbZgVDRoN#qZcHM~P>cVz(
z{dmBxTvhBWsdE0h2HvGICE7=>vgzg~{{YNDu64DKb*g@@P1#iFSI#&ZS0rWv49{vB
z^}pBzCecszkxh at b-bI)e{T0s*`cPjVxg at cOTtbjR)6bgTk0H++qnddX`H08BMm!m*
zv*DN9;344Y8o*m?^IGIlT_jALK*ALH3=>4jlKkk3|FLz61ft-Mx#Al>yg_W3niyep
zpW=PlF^NHc;FnsQNZ=XlEp*6c>6kyi!(yujt%-ycS$Y4H13JTlzEvsJ!s8tLs`bH;
z_KG>+m?9P>K$hx&fN*D2^YAx;5b=7N4 at iohPx<A}iK!bgBbOc7LKuQAN7UfBQ at 3f8
zI;uCYnrYKCtU>#fO+RLgHtL7E;$j`t>3_}4lrJ_W&k$Fcckz40cd3$%=7V7WL4!!6
zi5S+RXV)4cYSnK2g#HOS=#A)0cbDoTTFuY&>F}=|r<d;uvFW$QqkV=$zq|tSUX~Gm
zr00>>qLiQ?fJE}EmM=Pyz82sk#O?1R?FZ6sAeH>g_m5G-2#(dSYFQPr;swNdfY|!-
zW<)L{NArG}05KIHW~7+B#RP&*C`&Q}zx?rg#8z2YMvG6J5Ysqd75`O<8>>|Q_40JI
zLZO1!K%=5Mb^cXv1mD4r at AS<#_zr%2Cy=MZf9Uk(=}8g3BTa5C#ex23Z~*f<feUlk
zck%lo8qSz35<$UnkrZ<~Mk}G2V*UY-@^}ysHKf7YeC)f^C)fP$j)Jy!d(G@=OMAxH
zfX&*qdd-M?R_wgv&ErR(F5 at h9<uzJoStt_!{T)^Cg%?d%p|5YZ<`rrpORoD1;J|`6
z-b4G)7cchQ^LY~pp6vVXbl<^^fRP6>XO0}xJ$2j at e@w~oIbmKCQBurBX)#A?Avg^>
zpz*P>fCTu`8_k$!)382FnP~JWr)h*25m at Ix!Exv)di0rR=r9g_gO0WWHD0{F+zy5(
z?_^$k20aQC$vf$=yZ<#quA%=mx0?>*08Ri4(E>2@&)!X&`rik;j{o_J6DLkg_%oP^
z7N9RS0q8vrcA=Yck{@Q7k{>D*&~3_s?kp2 at V-o&D(*Pc=m||Dqe%USbNq)D^<H~`&
zWMcqKh1e}<aVFrIW}=~x#zS|o;neOOL48bVetF!2-!SpQt3SJoQPJlc0c7v}Y{7W>
z;pLNBhk?McBfxwJoO|`|byv?+SIg^KW38=`+>tdkLq{&IS$)^tYp<K4bo!;WEyZok
zr8y&NYKOKjtX^|3?9c!0n!}#}=|ApV at I*9_v-FO#n@`=2K072bqc7L&oT?wHtf`Ae
z>a*+H+v~HhTe*7YWVJU}9<L3T4iVCJTx!Q5V4)K0q!{me^b+F>Zzg9VNO2(MFOCI7
zYAO>S-2qOU8RdQGvL-wcb4ERU`KKlnun%p$@7eZy+n+uE)w6c{v)!;3tP>JmPPxRT
zr#;)<{j6O?{fq^KvYT9lFC`b;hqfl4<`aPbFT%y*XYUhkC)gu%6#D}~<^UI!o3!4T
zMnn<Jh|DUo<sTpx(A=Q9UIvr?_yPJL<-d0Z`rv~<f=MsK#EJBSocIuII_pIJd8qgA
zn+1QpoBs}a@&MyJi#7^aiV8fpeTCoSRNU*M+E}Ovk4T1BCgEWP00AE$8=Em=3KQkE
zfe7(PGWmd#$0`sY2=W=s`Gk!{4zWoK1&j-w_)jmeKpc#hxY(ghp;@g}YIVS_vMH3(
zth{WcVpd?dUIzjO{q4Q30L>Uj*zGfO+jTmpTVLQBJF?Mes2FNyGP8 at alnNy$4d#s~
zs?RC3>j3>BT5#bcI{vS1aPPZd4IVAx at QjuF_Z(>q1=LQBI=p4cG)IP|$Ym9YmTDTT
zw!(#(&c`0jU+i}I8a0}w%BGBrl3Py3^PGB at MjctVa^0et9hDl5g3fT)hT58E%-Y<D
zl4#oBcmD|51saI&Z*t7*2B|h`0yU3XO<hgh060L$zeIeC_`SqS1pbd1I}RWH>X=Ey
z5mjtrS;|GCu|PCtiqaf0iW3pl9TV<`F at J#b2l%c at a`7>QZ-8%uC(Tr`K-5dA at lnvd
z#23WKCHz%^h>@WN85S{uq0yke&lu at BZ=&1glx5`B?0#QUll*Ik(N;QTN~uHF?qS7c
zbI@&Xmegq8-(8ct<`bpzpU%3IrQL<a<BJQsOHbB0|EW}d;;KDa-c^`8FSoF({A4Z4
zt|=kK{hrb}podXUDYY3pyq<QQqtsaH at smnQYTg1pKyl?q=y`MmJ^#^_SAGO4KsTuP
z=-AH;k{Pw4H|}>Ag-Y+v9W93%dquJ9IJo(^tE9v}ZP9%6Pxt+Ah-!g+bne}yAvmrr
zdvtc&_|`k>v|mZ3Uuo;^XdTZdO=!8JUi+m~`lYu1juz;zg|gAv_mpIpxbA-=c^{f_
z+*Mp*pE-ZgG<!*j%kRP&_hgTjL0mOnN6C|2IrwSe!ONZzhX%{DI7*Evz#-IZYAMlf
z^y!JDI2 at u=XJafP@}yPq4aCNR90=?SVL^D?3Brv8qPj4 at f_Mn6!$t&*{E#sm at sKp)
zLV--gVS`7oY5{3sO!RVhudrdl+$l4>&8 at 9o|B>OPp^DKf%5(i$i-YwoIcIu?+lq=>
zyQRLyt0BCa2Im}j%9nT~v*~M at 3NN75n3K~wOZ;*4Qejh3sG$f>8!Q(4sJ1!|_H>Tw
z4*S+;WGopSnx&#O^$|1en~_)NQJ<=dD_N&GSFBnv!fcnI$+j5Sl5a8<qE#WuYD4>9
z;PQ68*;%lh2Jl^9wA^oo?|EZUpEnZixD0n!MAhSY=oIf$Ud``g&ZAZmYafrB_>$nQ
zQAmJ{4BixlN6cXjYL}Z=O^y&oB9gXB2>}n$st<&Ts=d#^qm4y0;fR~}PC#4{;GD35
zxJA?GQ<~qxS_nJtyzTyd<rU at Y)~y5zZ;pD`x?mu$arEfMJhW%Xngul{>Z+S2J$-FY
z`xJ2ELx%Z~ffE{MR&|Fm#E>(K4E`R`-$eJRN|l{sDwAIhFD+{uQC?=8HfuUPzOwy>
zE5U0o%cVJ48;_a9{(v*fWN_qll%h8+rE{C_tYES_=i3?cJtMcDEa-naZ!DZV(d`<S
zyk+bo&j*4PJzeEs5(7m~w?sWz>z-!NjawMyvN2=I%DXPH4c8LuED7)^Y0i_+1Ux_!
z{t0?>DHyZY&>60`(uRUkZ<As#sJjCG_7d%M4{Qk>oU*;VaLVGwYpls*sFnWeCs_EU
z7bxbp_?u<$m`(zS8wZJ0jJLNE at HKhMBQ;qLQt&D~<eLBhMK+#!fNG*_fe944dC7>1
za8=}oJYX}hc-SZn{)YNsWutm=FZlNX^v!MYI)jO2y at qh<<fDm}mc-F#@u^s<@MlTm
z6At`o#ce>r=zAA?>PDa)$ZT{$n|{MLzj<_XMfWgIcH827JkY;Apk#fxW=4^^9G at mH
znWYcvmAbV%SN`e1_yc%d)Z+g5Z`?M5rkzrpjS=`4Vp=6~5-oNzu7M#%aS^Og4 at WRi
zO#-S`%AF3cc#C_V;8cg~vGZ^~M0_E<q=*_Q#YP3tC{M26esbHkqV|fA+o_j>n3iT*
z#{|3*gT^3J15AFE57l?X#E at a*|Bfsj8CQvwadFlI?VkD-qiXa{S-GB(LRh#;!7^g)
z&@8|(v<beabLq>}#wz)CkW*0`GepaVH%x6SV>{}U#d5&1V9D?1<t$O at GYw7%n45>_
zefimpSu|N|)Ul8OATLO(tWjSukO7SVLP*P=s-pE-b&Lc=^MNi+i&bG7^jRLu-G%Ar
zp*+s-MS^~?_#6IwGQdHG^ap;h2Dq4)Aiod<K%&uN62Jk~JQZt%^`Wes+S;5f+7b at h
z^73rK at MlFr3cSBKKvDw5=zC}29`w;6lgDK(tg^LBl1=Et=RoTV4};RvaN*U<W53;7
zPYN6Y_Iqvz_WKxVdng<XgwZ5>Zl2AamkYkQJmFsEW_0$z at MfBpG8(w?y;p$q9$-JT
z^^;`v@;{7ubiQxL*TC`hjve1n-~z(*0>RRDr2H)N{H%`_psXU8pCAZlJpP90BbVp`
z#oCk_nF5u6t#v9SIuqS<{xn+dqoG at rP~jEgJ9F?Hm7x~1C(*kmhI8q`1jf at p^$ulL
zP)GMk`0;ol$=4~zTx#YewSsi5sXBoUuo5u1-sD&49c_kEqBEkPkET7Mga^Iy!MPcr
zjh=+u7i<3`I%(i*fBqR|RzOep8O|x$oc<TCh8z3;cF8<c%+Cpg9>HHu;B&*qlq!G9
zVv}r#r{*Od(wYCb?4{0p1!x2jwdQs7(SiHX%kw!PzFMkMb3 at -=IqRuwMvlDZsaaEw
zH(X6zaih4^9}GA)&jq?04*>h?$#ZFCzB9a18f`}}5e&5(wn{DHYa~!QX%@cxO?;Qe
z+G`wvAki%(UdcC2U%2M={b)eDuP3d~c2TFrMtBV+RP(gCIv-qOUA7tZ3&b{0me05k
z+;EvNk)?3v;6muJpU4ZVa9z*hy0&5ZGNqBm&ysisA)-4TG}1upO%6K6 at eM8!!0(Nq
zLl2k};t|I4bwmr at pd;cw7nzH6#esbI^CkHEigx8bl9&5%uG#9&EmOMyQ23G){0abk
z>Ubz<F&CW7&$&0-WN~IiRW5=z#)_2^RYktnY|cNKpM6iZ#p2E>QF-u%R`{d^U+B?}
z3|lPtmO1z5SS+5rGMwpFR}^^7369IMI30{sYFG)bG)NgnYCt=78l at tT;k4#*T(;Ta
zV5L&is!}?S&bNi!0kcTT*!jF%tHTCGQp0xCXOPjf%mCusalqtHW!eENHC at v`a-~7a
z!3>8rm*;)V7ZMD@?>IMw&B2?aTvXWh41|a>zF>nL%_3ML$Y%~QRuS#B%(Hl}^H}Fu
zJvUC-P#f>+TD=g2z at IH%wr*%f9EdEk$oYiD>$Nb?p06Tj at TI(<Z1wV;M^>%K at _Bi_
zg7hhBkiQn9QCvqg5<e-fi0>zw!>)+V;E9m)PYgsa-$%pch>K3pgL)zFS}cXX*W2HF
z=8T9+W}dm2NGC3aVf at UQ{$8?sItc8~4{#h(i9|pCF_+{ZYH%!7Optl=<Hg5oSg1vr
z<Q)<`L_Cw at b<{^XXC_X^vlELsBR0zPZF}-b^!<|%?H|7Z2e)k)4`x9E%SVD}KZIb`
zcu0{VPi~VNkB=r<qmLWq!euyQ#)+4VRUZ|hC@;Ue5r|?I$`}^5nekG?rQN&4c%#{$
znD(*M`mRxxUqSd)<*2Up>mS|#zpCoMfv%3Kui%D<!TP}zQ}W>rWvkRm^{TQB591=7
zdR6KAhu4>`QgdDF=`({#CvJe3)ZlMjMYT{})HKXZP*lF)Jc#!<DELM*5j;c{k1lbM
zu?rLI`;Zgp_>E=Wh!_(jc<CG*iwb?0pFaaBbrxRKF5u=A3-EP%I7DA)nRg^ts<$X)
z*;@CeQ5O2~{BP at Zy7*XvZ;Sp);B$G{+Y`6PbrD_td8u3>9Vd}Ut<rAk`!chvTPl^<
zB;zERS|txE)1!P)YuDoc`^J%?Qe4a`mC!eb^wQiT^DKo at HaKdNTLvD;|E3<_Fn;@q
z>(X at q2f^nZ8`tUTL2l|od}rGi{87TEJjvg?H&vBZJ0x8{exelS19`U$r6*q=_*mKn
zFWVLZQDPRXGx-B1))y0TF&!}yHpN&SXAH#xIv<=2oWMCB-OB!SUx=B%XU3P+SM2>F
zg8qX368U29l~rHP*y8{V+m|i>e)+QPpaH)5=9}nYCh;>2 at A;-z&eLPhfI9i>E$a>*
zT-Wlt96fbrEPei!twHq8kU(Gv$PQAx- at cS@?6i%+P~Ni(*>SjoI!c`)vqRczcgl_Z
zWpVHe`M$KGlL!1S??mRJVwT}SGpZQ80y-GYWkoatPE&#4AyaUZc`*p%KbxF<*6xSU
zZ-W>9o2x(~iO^=WIf*pkwjIZS0#pI{@f~ep&BZc)8%o&xXD<3sz35pLE%~|BU4Gl9
zO*Vh>zqkZkqma&mV7gSHDQ+3oTITbWwGL}3Mq at 6P7=>?%Z#*Cq<ohl`+9Mi0r75ho
zfq6+s(4vSCFrC1Q8A2v70Kdl$gkYcF>bD|1A)n>U at Sg;RScu}8{BASX|1N=%0+|Gq
zIUQp9k~lxfFBOoYXPc67*w>#xsYL-V5|jzV&Rlf(p5D8}&uk|?WAq%+AYuXlFHnAM
zH82Ta2jna|(d<JD_x2t_<tNeJN5PzR1&4a~g6sWraQdQ8!3}<<r+JPaEy6_#*6}4y
zf)_}U8+^@k at ui=F>wUNl4Ejve&-*JhP-VQ=C_#)EB|c4m&c~;N#gt8y$3TmkLJnBP
z;t{VEEb(G=glGb!{8{LD=NJxPO3nWUO)P4pXKy^Z5&s9 at Z|EMoapTzT4S$J`IDdCX
zdCs`TapAG{PFQafF;)+^kgYb=`y0bUE1O?jeSXy3+U2u`k7j__#Q|o_h*`^PW_O%l
zZOIPMYI<TF^GV%ALm->BcdT65F>1w%QK>Wf5#BOpX#M!)B$L~y!dC*jh_+bA5zhv+
zNTxP9&3k5|za3xf$t(yj1`Pm;0eWyrs36n3<T$X++~X^@K`9MSG|iaNlx$Ynipfkk
z4X=d<Qu13BWg)%FgS(MOql*!Hd_xRqfQutySsk6Y0XlEEA$fi at Xm}SB%)`+W at 4kzc
z%x8w9;ovCwCB=xgo&U$X?=tuH%g}Iqz5=*}{yP%=$Ucnu4<nU>XRP7WbTUgp@~U|P
zO5lKbfYpFV1sLAO(U0SJAtItLKo-A%pXR|+Q=T{ohA!`f$V<MUmc>yPPuL;>50_W5
z!Nq76u<}6kf=9ssmZ{hW%2h=cvu!V3v<iK$@#y5NSexxpJk^jl%4DHSxqHGstMc9g
zC9Clif)%d}7u%EFY<XD;x<YKr0<C313GIis&>1T9Vx1Y7@|6w;XkH(Z*nNe2MelAz
z?<+FJl8M<WgIp<XKGvX<Nu>UdVyZwFbX!6#kJiK146R#|gHA=?(JKv7U}!aj3^^JQ
zsI_rMIC6$w(*;L+Y&jEDQja$I%u4~iv_&O`m>4Mtg6a3wigX&&2c^8NzaZa9Tw)7h
zqdb^qB|e4l*W)QX4G+T^x#UOaSAN6LrO|Vjz&p4i426h<KgnBeuoS`s)5RYq at chMo
zQQ{mWV_(7a+ at iL#iMB<6A{Sl2lpRg+*HHs<dj8iRr~3r3XC{8W&*k(p at 15s$SDAPM
zUz$xRxOaH$1t*@@Mq-*QHEIp|m>V-HDXW?oQ2^ut)_7bo0`w!Kll^QyUFS|g)?Aj(
z=!3h~x38ZCTQ+XqIE>crlMesv at 1G5q?xQZq<X8Q3f9HK0r<Fm?Ug=h_3M9a)t<t?n
zCOd{Uq7t<6m`tYGCw&q!&<dF+rTY{&>N9h5Gxh62_;0UPA#LsIYLzOqdx2U!dunb~
zRqkG`T)K7FuB}ozPE<*5J$Ud|2`Tu*tFJym3KFe2-j0Uf(;O_Ns-}if9n at 56F0~d9
z&dYrEQUB$cV0Q{=fxN%MfwaLGg6cs!*@Nj at kQhevCBQ5E2?-~9*x=aDCep)NX0_n|
zD1Cj}G>^qcKIxT~;&Z%2oyEt<9N}v6AH2e!&?|#uKbx3LfQwRnctObO<DtU^UIX39
zr_t0oij)(PBOWC!c&<Cn)7D{LKc$%15puLhu%N7hteO+KctZsONXT~~qH4 at 5cxO_Y
z;((F+X$ipVt2<bx>+^=p7*`G5=E#thb1LEZ_x}%CS(zE-hKg%^e{kk1_PHy>L&fFp
zN^k`@8h-4t58gv7D)1#k#c|&|&KwAGaY1mZe#ypZ6RLbn?ZF%;`izyCoz{}MBhU|r
zZpZQGz2Tr!8Y^&t3RfYB19sE!@nz`8!?));(F@*iAX6-74c at TW=&$Zvlb+vq^KH(j
zDtLPa2NZGq1_0S_^*NX{(m(IS2nsHba0d`^{s2K at -~mE)4q8hbQUIY~R2$8w(<NcI
z&Mfuk7{*VXTE<ib>aVD}2HYdlMV)&6u=?<rXl|)FSdpzRba2kRYIjya2N<J?Y4R-&
zTiuc=5|K42$tcUQs74Gmc7+3;y0D`xF4KClO^iFQ#+O^vNk3Y-{<hwlk^5(i at B;VN
zbpdzBGnVXwJKufwFFj4p;5B8P?;ktStg7DT)P$0;-hEq^KKSI(!`-WWImh5Lnwoo`
zK;PhhkKR at oQ#-Gz+W@#fo!+}KBC6Tp)`!zJWdiOR at xNup)JhdkQB%MZB~s3qiKX$F
z;TRw9P)ZjDbXezMd5abTKw%J6nK@(FNYv5=K||CDe3-4I!?Cc at 6ux|PagSZ2ET$Pb
zEkC!pOcqDqLJ$M0J2ci6O;<hySl^LZN8tV;ZEFtzu&dBt5g6TIG&L{Wd at H=RD7PrT
zA*up>i5lbg4|?8aRW~PEihtz0xfmaz+qY99&6LJgfk0F-VmxXd+psbNLAWWo0d7{?
zR!p4HWbzsunJ(G&Zm??FoO+AfU~~bC_?Bq$c#pA}e)c?nGnOAS>VbE|QCiAMd8s05
z1T~M^Ozoi#Q75TCP#;m>fDAzVR|ry=s4pCe<})5Qn~oRr8 at YTA?TK-o0O!$#O+Es6
z;E4 at TWu{^x`@*kGaDB(|LLGj#54Z!xgf-{&^oShI6y`icK7bivzUPv?m#|6Cc?cj4
zpCr(En3nUCI&dzBKO=Y1R*bt??d6XV9rO?vuh)|skjKARkl;-7cxWD?lIw}a2=W}k
zCdT*o2f{>?B`o6j{p-ucat9R!dW{iWTLlQ^CgJQ*FE1o1afi-q*IUkw8<Sg-*%)Bl
zk=&6G6f<g20Q7!SMsa~s0)RKe!TB?q4~UIAn?w^F<2G{{#!QJOXOv@}oy&j{RwovV
z4Z0jCrj4-|xP`RU;;>5`wn?#UPu6yY1T(xPn6M4gO4F+nyU`i6SqwI*-Iy0?EU~`8
zD42Yp518!X0!(+{%EbPRp*xhENuw#Db<$!+WxBN_CqkPtoW7XPX<U25`Q4A+xG^`B
zyJQJIY`pQ&-RE!M(^ln$^5 at LS59O^QX<+Lm9d%r$(NRG&tOPR!%{Uy&3Ocic51 at 0u
z``t?~0nwonk$1Y>Xw9?+asbUTKrdx-WlRyR5sNupRud4x0<n&hi1mRcrdU(ppw+N|
zE0E{vH_SF=7>&xPcv7q}J75aH;u*@#LtF-puT&Y!akv%b;>zNNv5U3l5$@FeIT3$%
z+U$p+S;|?HWSG9sMdx&;!eC^0#>)gwdcm^0_s*QT_wHp21oY?y3vaq+(xhu{TDV{r
zqZ~YBc<cvZ%t-O9OLpyQsWH?PY7VuST2Ea=-OPKDBuKfuqjEhTV2M$?ChgRoP052v
zKZ~U$#%b?J0lri5a^X~0j12f9)+m7-vaXBky-(-i0v=r~Otf8v9|-drRiwJePvn1~
z)SFSE(Nx;KqA%k*ef8OnX(J|0YR;>0)YO1 at RxHC{Gh~?ES*5uZ-h7`}XEzp_vU3~5
zabWai6;)T~=lFxc=9x2^vzZ at i4x;DLJxGs`$Yu5SKQL$SoH=^|yuPt}Y~#*1A78n2
z>B`5!m2I<Is!Ar;NPw#~_M<q~+8X12jJ3ia!Y=FkHm9O^`jX}e=$Jn|7PS5|n5&m+
zm1=`6*B1+VveXKZ+^DzZ2IG}kt-hL2VV%EKKYiEq<YQ13?Ao>I+Co2ko>V$V3`U<h
zgYK1-beA-jqGQ*phZhv1W80wjyu4)i at Dk=*d?agucHrAVOi?Q_A8E(*v>$VmBdBrI
z>(pPVvw#H>;04uS3PtI{0T2s#3`7?1Geu08pfH3(KH&s}6B`Z?XY_d9Gk5|XGWY2;
zVN(p~m5kf(!D$>O)J>Ss at EJTBawGB^Fv`;41;iANn8Gnkw#PzbAH at Nq=|qjk5Fr2E
zT*PA_YZM>j26$9H1OHqG{JF`G<86xYwYaAl$dSjPkCBJgi#P|K$vu46AdeE_#cO<8
zF<$QZL=)N38T6P0jZNsl1ida_K-)I(Q+Lz>Vg^w<PsGa-Qh5$QYtpX+&(%29?N>59
z6&B;)PGsfSJXq7*aA at aFP&xIf;HZu);L2_vnS(whNASwn+<s&2#L|gdEmv9^mh~){
z)7c95%QSX#z?>!7(AIH*0!&-`8}rcz at 4mZ#_ipxWp>Hj;#4PXW7VBY#R0>R{cvh#x
zQeyd=`^0g}Nz>UO!TZfc$!l|RUNqh_T<C_Y!j4B`CiJ|s<SkSEr_m5P1jfXQPaDde
z4~oSM)Ra2!u1MyYjTUW<**&D@=E5 at cFN?vdsR5YjG-(^+Hx*&N;!l6tw|h7GycYg2
zW5WiwyC~!?4sKrQ^%NC(zA(qvuXkB|IX+7yxM_vAY{c&IYqnaiungO at t(wbLIprFW
z&6_cP^8Bew=+X0%SBw}@6pIdD at NR``NHC)ke4SC at pI3msdK>>$Q~(va0KnsqC*RgP
z^a>7waoycOHFj)&2~d^d>ymGM92+qr29H!$=I0j_Oa;o(Cb=BI%F41buqGG(8S&rb
z$+@}5z?GzAvfG&YD=R}+l$VcH%$UlE$C%CMO+ksooe|A*8Kwf21Ke%KahD?^@u-Ya
zZVFI=jN~$0YYDCu-h;jZs^qfKWfrxR^Lqo?r53dWh<wWFo-&I<4p^DbK@#<h2-c#n
zUwNgXV%s(45YSRhhRz at S1OA%SsZ(Tp$_B=#9CN$GBVP@*hPs1#miiiqfRU#{ct(-f
zh>KXFc4HFxekP4 at k9gXLDbk-8JrXN(*3G$<99|E?0z at iNLWLYbi{;G-V*;;G#Z&`4
zhqA=f5OM)b^oa=8oq^w$;HCd~d=bRw7?B$hQl*S0*IZH$kIc`P6zU-!OE1>qphNh<
z_-bOjMI&d>n|N1oI!~<F{}X<#R;AOidTnbZ$Szn*v+xv&>vZY(xmZH1U|4#TOk8DA
zsVoH}+X^xwQ4sTcp at NmNVwPo~M8djghrL-U)|*8BNQJZ5Z_Y8<Xc<=m<OKdYj{zH-
zjT*Knmtk#y<wP=(f>i-OV1q2I3|6YXlYY8MD-+=%s$dm3mt%kdYGeboSquGAjuDGN
zkW|A&Qk7&|Ei at w`_R`{PQ6BwB%p#UX)M`*F)xZt_WZN&H93IiyOI4DhEZ^-JRdm-u
z9gc}{tk+RRj|B_GoP<NWB%Ex>5S6>J$Qv?=dqfaG$S@)?o1vEiu~$Y+QUD{jg?;`U
zg+jxL#WKJ`R>VH5(2QhFT-Pwbw2s9MWN<kH8+krYE!K6a6&7$%FOp0(DbOu)J-#K&
zvE!slrKf?fXQD_X70b*jsa))pLm(m*H0Q{b8Wnz53=J&Ls?;OL1#`czW7SY01uIxi
z2Cf`TJV*!84k{`{HDStO9FGmVow`M!8!!P7A&T#wC{H!;bV7<u;8Muy#EFofClg}$
zoqHlGI-D}&6qL!>hyV_YCvt*mspBaQ-pV$RLb8lq+%VuXM5*foynrYW{s|tasM4Tw
znY0=9QgC8{C=@>XS#7;H(_dDrt!r=1FRZBxI14k{o!X|Jk%eK*MD=Xa=4+~Q{X;Vg
zGUeIeYLz0hKq}p`*IJ at 3*t-`l$O|^cBjT-ly_p^1N|c*lo1b4xKU^4^*t4)YHfMUd
zy0kGzZ(@IhmvTR=hxj~_Gmg<yJ}IxUD2z(0Yf+{@&`?%mR+`jKi*|9AFAI1UUTIh&
zp80=9c^$G9T<8VMb~@8hg0eu!i5>!f{BTWaaY;dPt!1CAqy{`sYA!(kT3j99x+GB%
z3(j=vbOlQI$R#u%O(`!>+}9#9LzxKT1JIht3nKf^0X9_3lWJsD1V#drLXhC1#AjI*
zL)?m_H at om+Ya%NDB4g#}EyXCl_w79ZP-=B~XXZ>MEC$jaAC}t0qj2B}U8udQGVtls
z;*z!!@w%rY;0~Mv??(q-DsGvxch8)MGCRxF>Y+15aj8vm_FgfR_TU1yXS%b;-+1rW
z+xG+3uG14ef4xq-X#$vw3kY_b7u#XPbkA_I3pMcYVF^gN>r{h**2P?YI;JI748Pbg
zMrg{=<PY at x>_ at jvxT(94=}R|s5B%;(<-$r(H|iG~`f#do;9u~^uI1HJ=7muL#f64%
zdJ?E7qXW#{J- at c$Y57WmO$^A?Vnj=c__HKCL}agw%)Gx82QEA`Tq2H5`<fI6h$rpK
zBPJjlIEm*UNc}uS)ZlRP4CpK5r06**M=#VWdjv-uyl at jl8dSrBARZj9Y5)<XwiohZ
zqa=Une+bk6UM_)9vImFzTRK)R at 1P&&tGUZpT<p6`I|xTPm)Ei+dJhEhh!P-W=nO*X
zxhn^2W~D`V at IUFhFdK$0U0wPb`W&cVad*sYFHx^hZ)v*rk;it{Un>!<6iNGkNgoEh
zK0h=(2alUKUIA)}EvqSSzFOUoQ}o!beJ>PdH*gXOo%2f?GlOORO5(ehZv)vv;FnvL
zD7LtTnJu-|tmTm|s|D|@CZn)N7{;AiO}X5BTge<r;5>LNM_!$s7r$px^s93xR<D^-
zId^hTZzn8nUVH5 at k&c^GU}uXDPQ3k*t$*D%<|;pw0SUVTuexv*Yss{ib=4N4!|46A
zBK}8@$gJWlF at Vw;=eO~`9eJOPpbOj$&(2#@Iq%5iMQgVGR<rQ_DPagAu25~)ZyvlA
zNN;J3>q<m&87oWPY&Hk1KoY22F&uL%<I}I`dI^*j$>j=3M>n}8C;|4@*PyNezel{h
z&O;G7vr$cKlk_S;bO(rM7dD_H`<*ET0phnr0s_Dwsy{XHFSDf5-%G91*~vS7kykEI
z at q`bKn=Pcx`tyYT7ht?E*(ah-p&usvc@|Fmy_7GThy&`C2w#>@oAsB8=i+?XzLXy(
z#LGOhQodF=iW_j)$~)jNQXZn^OZ1>)Rg7pv!|XhCeB0#J8y+1GH<b535xBAgFzCBK
zu6=rG8CPFYrOHxTYMN)v5>XQxs=Jcg*N!{6F)<3(MbCfVGSArf2lVZPJ6>JEh5~M1
z?Syi#>Jr&&4ql1ZQP)xj1a#~WkKY+0CbT@&M$}YEL`WCHI?UPx1khTJ#}E7Y2w}U3
zN}FropTK?zYFkX?q5$)!5so at b<+b_kj+}<9%nWZ^eqNi`VK4>Eo*akW-`34%dE9&?
z&%+nV%Wv~$7>z+v<fm8gx%iSrZE at n+LiiVNTXddkDv1o!+1+-XzZ?F?NP>uu>^8H_
zXtY_Z_6&<fr&bzq+ at 4CrArSB5GwoI(^RjYQi_O^Awg~j0c>1 at 9R=0Kxi)7 at QGo5Ar
z-7WtyB8+ujF2)jm!DS#`JS4z{e`4xK3Qq%oI-3A}Fph)g5)9R!fVj^k`v!d5^zrMT
z8n1v9W>a|YUwAeP>s-W-3;ynmmZqS44*K}kw}g4-ttV-A)x5(=>McCqz$=m;&Rdn9
zeUj9z=;Jx?4w}Lf+a=HDOg|f0D#!>U!z{p$EMojemJ0rPIVzxDoxBnckWWxg9~?>o
z;LX))jR71}YK1nOL9GT2Un*TlC=<}8{AF<zGmh#Z6ePh)W(2)t;unnczZ6)CV3&f|
zEGVd46DKwT!ncSAk|o at Y#{o^8Kfn`^tXwK}6nlMO$mu=hvxm2YN*zVA%<`^P?L809
z_`|J_j4ZK at Qe}WG=)#TPT{Y&0-_9O${me0C<=JJ{o~uVL^;fr#>1r;K(GM*g-dPCb
zMhCOWYBx0(HPCU9CnL+IkdFIm*E7E8q_&MCuCR}s-4$GTw5RurN!5}4ZZFt>8vwgz
zzr1g}ziP^~E0*qxzBIWlyCTzR$}6AUpw=un%+RK6nJtf<T4Vr*+Dq1eF}!X7(QgbC
zr?=TWModBn1RNASkG6{!JR>g{VaYo(8H71MHUO8*4{$F0GuZh1KlONn5(XA|qZ**s
zO$bO`L&9zApnCGOj9|zHI?5+Em`VdfMkG3>pO`~46CRxZ#00&pB74c$rTY)hTC^-*
z>@j9}V<j!wbNA00tVsqwdZ1RS at Y$h42E7F;mA5e}&CoAx<J3J}8Df<^%gUBDTwkzf
z#>%FmMUPJd^G+;YU^CBeYkF|`?7Qc#G)yWRS6UyiZHFIUs<2O|WXS?<Y4|cP%wD3D
z>mq7WoC`;_YCL%n;|ewIC9aSIFo~3|tZ<@v&0Dl#<@W6>!RA>{UGo-M(~?wrb)!iL
znlE0EK6RsS(W~g&?vdAkyDp;(2H7)GJVHNZ214yH^)!GPFdfi4z(74S2I^*xUQ#1K
zsavOMhZ`<=7=GR-swDVCtUt||Dk9P|{GF?bLb^yz#zr8F$$Q}9j3$P61VHQ?c)x&z
zUdY5#NG9<y7YmT(lk^*$LU=XaRdE=P{y-{3fZoC(cn-Z7^q5c8G!ai5OCLV;gtinc
z2AL>x>TCncp4wVb`JhT_R2e+l2Pd2YVo-t3qMhjMh=v+;Q0scZ)PMI$bQW+YmrTE!
zSKkB)aIEt~LHW|92eNU~Pl7~4=6UBS^y8@;zUZvp4H8>t?s*=FPnl7_saPq?0L-M#
zTTcQ0zW7d)AE=&!a;%5n2OL-exY%R<Vt<0D0NBx at +`)F;9N%+t2#z0hncP~J2En35
zyv!M1;#1mlIj)wbm`GfSiJD25mP0dwj5wo-^_cqSm^^F~>vu4IhyNdTeKMi9+x0M^
z2ltc0NeUklmYI at AfDMcWwnrqhO+YqC&J5)sVamubp at btpA1(;m?Lm8TT=LFDWZ1As
zLO8;4ixz?xhp(upSTP)x&EVICt8m}@5w8pRM0QLGL!SS3n0FTNv%)TdKE<0VxCBdC
z7jd^z1p#3Q1Vv5U2Li(UQ4V-Q(@QXmh*O-$Lf&MpHx%;1r at cUI>dz)&`r0n^-UE-I
z(+`>GcSu72vMvyKVC&Zp&H_tA-YuFf at 1r;F`X0 at l`V`6CisPW@?(e{!si(Xl__u~|
zxFI}x^r(=>8 at lf9htS)Pq{A~G`U-6IggQI#LT`Mq1xViwdHEP9`d|zC{@oC<-H=_N
znD0{G)`t84avsN=Hff2BjJMVP|2n%8z$U8n|K1##Bu#Tojy7%6CTSY%1vE|5B5hMn
z5u{KSkh>t2bD>aya;$_xp^C0h4uL|cvK$sf*}sYiD+O2O7EoM4(Bdj9uDbqpU7<}L
z|M%V`ZOY|;Z8I}(-kW(d at A|%PzW2S~mx+r;Fr3T;+E2z(N9ANSBH=4CVu4N_m+P|0
zikD<bL1E>*SroTPf<edQ#E7F)Trx+<bsiS(Od-ZY)fDXul_hg@(PS>*sXaPN4AB|M
zg8;)Gm_28EN*;Q~$~x_;R0le}RiCKoKEHn#(NH{TnO$v8icZPvkzjDw$3A#-%irrZ
z;C9MI$19vFRa&p%kCr58g&3`di|>`6<Qw5+xu+Cz8#6ek<Rx3S{E=K$!Yc`BIkSh3
zjbD(T at W8f`flH6d7+K~6JqwDReM`3H7pJJlHU>7#EMIqtTaMl|!gqS+2FeG?Q)3xH
zV5=vf5lSA8yX*-3oV?>1i#ldt(x3^x9JJ+u!qtCjd<imXT?Xj8dZKu%Jv(0HI7Sqc
z<1MC`%$nYb6;_psQJ!H0wWr_a!FHQZHCd;!e>TEfw#f3ZwP1k;o|!VJEO<~S(=MK|
zy6m9|{idTnnu4)oeCtu*?HQ?gFuL7eBjJA*kVCQQ0dz+)Ge?N~5k}{{XG)HfD4iHr
ziY<w%Mj_QXF=i8IOCkXC1yID|E35lJ{ZiG72i|&S?XKvPe7-xcP-)3=jblDOquv#c
zKgAVfk$8`*s~7%0F+-+_XNCp01fLtq$LeGmR%?b#Z<eLQ6;Na*4CiBXe5SSO24J-H
zuYY~)=s)*1`1;JB)8(O_$t!P<81Tji$MWSWJyTf7X`<!b-#>Tu{d~Dv&D)ZSIJH{Q
z{XO<%3n5!!zQUK{dPx8eN>-I2Q1+AvkDPR*Q_s_C7-sfi&zw2o6SkT925l%uKhOaF
zP(Qok%WCMa{&EHCLe7alQEhnx4X~?_mR|Eic|$7&6X)^gc=eaCUtkr!ORr|7k9W{e
z&X!B-Ot^@3CI!?|2;6Rg%S-s!LKq|)$Ay#bcINc783fU^5XSp$5=~-U%!!!zc)W{4
zrXo*uulV?0Rh}ZF7mMy=W8#fDrudlgSh)8ZnMZnf&<#%y984 at c?CJ4jO=;`d(wdr5
zu1jeR^TuqF3)!I-Pf>Puk*CFEx<=xzwH at bf@)Q+$(BnqqYpF%dmiD`AB7ILXm^Bk?
zMOz%Sk$=S<D;d|IOKYw}FFJ%CLWiIiE at q}S&JFnHHa5;>o8~scql_!?JeK|e?8fY9
zk8dR1!Q6%e`3M*aCW2|898<rApbD(O-+ybtMz9sr!kwTIybS&f4uZGA5%5=VM#5NT
z=_*t<G+S$vkxim&EM4TwO6Ut>Hi;5Lw9S at 7HVO7Zr1-sfj|=92I0e#J;>W?ObIAl~
zGdpp%1c6j=cv)zMUeN|~csKsYF`HPM7iyr}Bbamsa-Uh})tO;uDCoQ{nbX0WjS9x;
z((!^Dn#Ilx?l^3UOTl<p(IG;i5K at nVQP7+t2NuI=Hr8;2wZ+70QMoQ#hi2(4W;=Jp
z5X+u1#KsxkhxT)v-E7grXS6w5_(wfS{lJ_g928>%E?A8kpF at psvOYC13NmLIUd9|c
z7_DV?p+#>qspxBMI`azTd^)QsfIcaN^Rz{1D11a7DCglYw35SPrPhZ|ZaK1T7YF6L
ztsCJ3pMTDsJ}hJBX at hGnpugc(?G#*C1FxkHh0gDnvCt&{gqNfKFelKo4gYcZU8*{L
zz_7cQJi;?ejENlDtWX&6;T5^uY}XqM23w3=1&g^vgF*o(@`(m~4SW=GFj)hqDdjOX
zBmT3+$W&+(w3(vS=n$6}I1MMDdMz8zDU>|gz_9RrIO?dJflbGbX<L6M<9iiPfl74R
zhgQYI9P|>W!PoDT at vyQ7EZTA9FZ<-I2Qp9_y$?o5q2pU%w{Jg_qZ<z&XH?Bs)6l!<
z2y|<nMPFV?hc&GXt_mZrF<1#X)D<0o|M?tU3p|Csf^mQUdmlJO$>Fx{6x>|GO8OG&
zdw^i>0XhuY1_f^L2*bbqOPOo1bpO)8znAXk&c5o)MDdxvq73%YrHA3;Ej^aK{r0lt
z*WgP8Lme41drEX?DIRx!07~lVo#<mYz!Cul%P%|@fAI<a*o1oElumeJ6_W$JGQq^|
zK<^;?Ji}>NdbR{k9Mcyq48A*aOhGx5gSJ&LI`~*8HM)#^^Cqz$9ND{~?)UKFQ^r9>
z{M7j<0Ua4J{45-Q`st#Pvw}y^!iPq}DyCa&cQ}zT%pE<c5*46N)rPF1-<eOt{xdc#
zdnH68<beBy+8PszE=nGT=nP336mzh+o#Rd-nj1D8&yo*bEYL{K@&xLc%A8{s%IcOr
zdF;p+YuA2p<d}aEU)Kzo>zg)RhYb4PC1<uQ+Wl_x`t{B4?p`!y{;MNT?Ai09_rtXt
zK6|xc_M&rh&TZdwf~#zm=Z#vsc2pjBWAW6ftvm9H*x<ltpB)%r)6yN&r`y?;-1Buk
z0z=$ck5A(zd3rnM(WBbdc8vb-_0V^mw*$OJAihu<V}<->t6_}6N_Xf>tD%g9 at eW<S
zdzi2Jc1LUSj&GlwqI_Z2;{!8b>R;9c)~HwP+0I-sTCK*QgIvgnWFP#F?BUB~kA~3j
zR2p87_d9lc`|XY=-p#VRX1&mJ|2Jy_>w4tcJ_W>^G`LkDlh)}-KH`kjOPr1RiOT?8
zfd}M)d{6{>gMOGk55^RF1Q-Lx<FEQ at U?!*l^Dw1e464CX;90O5ti#lLJGg*H1W^Gw
z>E2^Al9h7i+c&RSh}?)fq{s~te6ss&B;9TF-Xqma>~D<1T{dTgYe$HstQ- at W!gDzU
zQ)s>z%2Fg>117WEn<*p8YZ(aK2+H}*EytL3%(j+egPq~OLd_ISBHpa at I9XFXMKh%m
zZ}UUPK+$YysDQ=_XqZiZp>XS)&WaarkN;s{MO((sV9k;@-&|6)e?PkD>fWont9-nL
zP3$=?!JF&w4l4FO(8*};r@>Nrvcjsim{bW~k4*+zR-wJHq=>B#OhA|TPREa<k1HzH
zM*N<$cebhRnRc>8+cNF;Ok3x%nf6Swjp=O9<jy7E_J{TqS9FZ2C{FH>C;mD1S4nRR
z|B(EEf`_89tGh5&X-ZGb>@2`2gE2;CGIxU-Hj0%oN^?fozd;2af6r2^iPYP^W$(5S
zFys!H2pr?KHrLlTv#7p#>(*x2T$pj=lZ?W`4ERdAkNMG;4qwSAgf%3so?KWytDehk
zIh0;ln9lbi`xjoo`;a`^3Dd8O_(*V at _%P^_(2f&NRm~yqwM3c#kx)$`!!VCD$q_c4
zmu|@6*F$dY`AhXfH!YYwdD8644MR4)b9U>*PlobI at p84Xdl~w9arM;|Fz!s{h5FUi
z%eRkwyn4wv>m;2aQTMm4-KOPd$u-8<2VWg~7;$;*fm83+ZaL>2U0J=Xa<q5<#w~C4
z&*u_EqdLa(==3K(UVa*Chp*hZYvu5TW#jx#t3f}|u=T7n-D%W_aXtIBzU at rVgk)Oc
zN1m)*NCU%Zt*1%;FcTm(ZF>+>fD?j)62{W!LPwE$c%Xg_Y}C=LP4d9uWy87^D at Q)Z
zIpS!UXfLQQW*P`ylWf){)Af@{v8~@ifsbJ~kV^u<l45c)`%X#f6K$*}iW4BW&yvD+
z%!LGkk%sJS69O?#c7c!(qttdGSb-L`yBEiLaWGn+XmScE?YR1++>-tO5UICm!e;x_
z`<fY=vb^xOmYD}B+2R`f*fm(#6d at qc+#tB-H<wzhg-()yKCKmT&bNR_^0WW<WfyMU
z!tynway;<_s-o-KaFVECZ7$KKU~EnsO9gwUG-Xabix5l%Th>R+O!N`F4#x!hJar1S
zpk_9RWBw92$~2xr-!n7eNYsp4;0WkfGunVp-%TIzX&E*2>usFh#)9A^W at 8}0a at 5~P
z;2+FJ8i4-C5zu$m1%Sc80bOT31IU_DTu9+N%!~Sg=RpHz&_q2ixF{6%{dZnzA?`hQ
z&d7^&ESWafxrvKYBY`3%J|b9M`_;epNN9BO9>Qh>5jV1b<d7ly9Q}|XIDF3?x#)iB
zLs~K-uJWDN8La#K(qxc-pVgo{FGl8c-^W28Buk1A?k`e?;=Q)}q|PU)B_*O*;)71u
z&62O|2GhtwbabJcGT(yUL!at#V#$3o;VcsLXL$VaVP7&m!CU}rBCbhM17XMkr9I?_
zQgR`wz|5G%0u}WwE|(Tzw~am4>v9u9D-m0|Fd|FxwM_wKO at dpnvW%~^lvISj6at1(
z4(l^sh!@898KxvYV3;WUV^w@~lumDsPR<mS(NU_XXr-8$9BtO?qM~^f8%3{zFV at Zv
zte;=2NXQ)Q8Tqk^IeK2#J2@%cI=%aJYkE?0Z{7K$LfpqCg(Fh6u*vTuOR{`^CW~X_
zBEyJshSMupLEvn1i`*cnI4;&<kBzlEVmVGF7;vPG69iTf*f#&^r|0L-erm>e%VnQW
zW$2Wfms+qY)mc#BOkGuwnwQ&YaPd{!;)dra-)vDRFfAK^CDw9+FrsG2YKas&VM0}*
zjtB*KO56H#D`U2~iAK~*=h{hk4=E?GsBR{6PQ>QTCb_z&YWGes=MG)FJgDkbb#T%P
z-)U9F#eGX>IOA at C-fime0Rv(dzD}2)`3Ek4EIok%6+=I>rtn-!OweZNGh2)+BZ>c0
zv2 at jQCvJRH@v0fU=P>AXYdWVdJ9LQmL;0bOx_9{RNr!6&2vJ`)%zVG^v_W51#ks;7
z^0<r{nAF8(C7ApfR<kvJ%4`uo){?TPFwSx@*t&XVVp1ahq9Y3UL$|BlL;jU`Ki`aH
z++xBBZ3Z=yl*vfg9VTLAqvixFhdZK|uHm6eCRs^m6=`wOw$>oTF?j#N(?6q at pHDCB
z at kC``OFG9VTDq0yb<#k#%Y>@KA04im(1nGXPI;x>EQvgqZs}Y3L=WUovG}AVRk-&0
zd!XObzm)pgDlE%SOw2DU>{^`TP~og_hRV1YvzCiWbXW}rYjUEBQ^%O&lsG4xpURO_
z%oZc!%*-#%OOVaezdzh1dF5i-eCEVa>nR(750tPpT{hhQaZvIlBbrSR^E?8OD-)tH
zM<BBbwh&e&V=iEcA|1f4ypm&stM%FX;3{4VXPF#)pSNXplhH1#&DArmN$9zma)+1^
zwdAidN4lMV0*#o2nhTc99F&|qXy%fFX2bxQg5`p{^m=9_qmMJf*kGB#Vllw4${lde
z>bfgB1H(UnN|?O{OPmpPsat*dMp{2#a<Z>q+6{uY^PgLQ^UE|?o^cbc5D;|kaIbDt
z*tOyQ>M|iiJ>PQrWHM)jH_nePUTkg$sF8x}e_Eo7T6wj)5vJ}90IA23IUu&_3Oa!M
zQpBZ_IT5Gb3-xu&uhnYATJ()xn$;n9k$3zF{Y32=h=)o5!$#v_jVCne1sM=z$tn27
z0Dd<!nf&sA$Z0kn=+&^nl0qMb#ta{-GNHPbZRq at mvvjd=YRf99m<+d}R<%CZ|C<YS
zqej(TkPbY4Ni0W5#!NCadNTTDRSQ}ltDE&9%-q%j%S@`F!{Ii)`et+6J>(F!Q{f2R
z&c|PXn9}HtxO$EEsa{VCpw?)Z8WD3IE1 at Wq%HZ-zlXP0PVD&y+;SzELEsYesh%WA1
zy}eK->UtaH=}q4 at rOOlYb)u{=_@{8)qnq4cA431!Nm^i8#H}>AEC%+yvJ)B~D&41z
zGfb_jnrevC?rXi=-gHu5p?s(Zc=(QX$cF^f?pMl3x({h0li5keez;H^X`Q5S>pXe4
z@~!)+N~MKKC+A*%6x>>ln`uRRu|jP`yVLSp^~djCK-|G}b*EsOS>2-#(yLobBZ?NX
z;UQ(4Mo>(COW8=<d0j#qEV8kKMn23aylrU8IY}KWf&cYNz>WN5cA3JW?4pE<DKlvb
zCQwNvv3lyTP{PQ(dRSZk8*7PlgX8s{nMx>6m&Yk9%9qogAAYZCV?zm#<v#i39kqzX
zPSQsNrA!ZUK>_FwO6cs3iILrntk~{BU`P+a9MuFc19i!?Y!($(QYce~I-;-B!7Lmm
ztJ;XjB15VrKdq0TCJ5X{igeI*`poX#XHG*`U=0>)nkpu3+BB(xa$V-;Q}gCM#rO`8
zQXHTO?7!;J_j|P+$kd(0>I}>fjTIF}5q%guu at p{Ux)iNN|H<3_Mf1))smigi&S{E^
zH7J0^N?K2OJDb1Qo`+?+TQ|{lf%LaNU=SD!rr)j4VbPk>HCHC<mDsAY%|^3h=QM`~
z6wIbVjJW_h4JI?LHQ*&PVgOecS(QjTu@%ZX^t1tmrbP7P{_|*C&pBt;43aCJ{$j=4
zPe;)H6M5Z(_BU#2Bm&%vm+&v(|7<%8)h9hyR^W<cn{Wl<2=pV4;7TL=+PLriZ=irB
z;nHE*q-~$gTk*|0jWh;*kykxDPEmp5P=g^Qwq+;X?FyI^tmk2&v$7W53<y|4l48&i
z9E0odU!l2=hjAT_29xhohq%xDzX%g`g(6iY?R!)V^rmP@?`!LGTHNLQw^d;h`sMY{
z-<q at Xjxk$z^AF}&82wiBTeW+Shejpv6W9V=oH=EiHkHjez~)JvkDhiMr?~E3LxDK^
zqJf$_2dnM?w7+-|Y7*>=#?#UGk5D&+GfDT$+X<U?<^|fi9`fzX1Cjjn!3b}L60H*2
z3 at L>>xT?3^pfZGQ=Vl_UZ)8oO`uJ+ILXnAy(dNhQ%4Z)7Cx1owtzMnffpHR_vSD_6
zZL`vXFI8-rcvrUjSSWe(SM;&19XU7QSLlB!|IMR5C{4g<U^qG at tk3a!+8bYxK&Pa#
zh0EXGU6>GoX8aeSYcKk^vHI%DC_-`Q#A(B5=_O9!@5d8T!A467H`{41yC?=7xUv&{
zQ!8p}uPv{G`n_7IIk%6N?l~@s$EA!$Z<k8r at 4%mK{X%VuxKNv!D1y86))8cs08J$0
z_R=R45zXxOglAA~VYI9cQjzeTD56V>I7Nn1c>rCa&t0mTvFqxB*U*Q%l=3|=_Qf60
z_J($;ME6n-D3uxb^47r}ER>j+aoN!&DeZtnDCd2=apW5?_w^T{VH?LikN&ewia#Jd
zE%0(jBc^s)iRhRlIkXM94v?=3EH<}^3q<6kZ-g0QsJ(+iL~T<cGq{=Bl}{ubZI0A2
zf+r*Ev>n?mIl`x>&g~^Ou5K?i9V8&eZe1G~-EK!#mIKXy-}+VOUJD8<YPKCa7POH#
z-k;@YX>?>UL%v>{n+rcsG}P|?I`}e980N?Vp=a at A%ncwjUPS)qOw_rlJ;kM#X&^OR
z)O*|2>yphkN0p-#KwX-p&1Cy8+w<O}dZ=woDVe)xQm^F+%H$}kDK*QfR%p^j3Q3a(
z<@b7Yq|ZCHuxniOr>`DE|Bg+FwVD`>yEx6n?w)@5kCU^jQA6pQjY}T!<+|3SJ(gC|
zFN;@hNgVwZ9BD0 at JfwDTL64S#!Xa71CeNAD`Q;-h_<njxmo!EENLEua?e}5*^8#FV
z%kg(Z0YO3m65>f1c>#X~OMcHx)cO$80#W=T9Kl9n=L%kvJ`8O}F!V%fY{Z_jyu>p)
z?TpTO)e}|?cnGq6W8!5of~b+pvwHLPUb*8`N=^CV>$@gS+;tt{LuK)g^_WCM^NGsJ
z6X^QJcN)>Sn(37%n5;(?ywaBD@)Ts$mQNclAJx;uMjH(^g0Y`ckoWU>x(KK^lnFj8
zKDqt+Ba`{ZNhatFx_+W^>~gs7&mV5YIa5C}Axtv~he)KlU>B~1&H#9A9-9ttZA+3O
z!umG+66*hkZp5S)kWH49J194IP)kh2iS*lW6A-g$viT|4%?6slC51zbbY(D!C<YnO
zzHggfq?ib4WQ7b!O3 at OmLKqT9BdkWk1l<<47NJhmjbWt`?+$;B5DQe|fo~i-dX;zq
zV0^GNS`?#EgBaZuEusc;0!!&hFlj(G1idB^6_8*|%IQ;<FB*!U|MT<3265TY&$9<G
z{*WU9wDr!rrF?@;*#o}MdV0R6Y|g}SJv-_0 at t>}AKz7&$TKI*Q&kcq}l#ld84V2I>
zBz!?nb|D>N1i_W+ZpfbWSDu)9CBn#pnv!TSsUX!}&ev}$6g7%ywc_SYg*qAsN#M4a
zpz(F5bBNL0p}?Eq!<!6Zd_ug%*;d}*=l9N}J?3?1j>kEKZ7=+S1v*(=rY*-AVFxRr
zT>wbM9?2v>)P&)#XKS;Zfq?MnTc8CKTdM3~eCt12zy2eB*ww8;A3i0#*9QqHrub>d
zL{iuLwqC_yf7{v%I_GJkRxPaCXcKHkn}YOpm(Am5sfml|kb$Nq^t~7MLuIHA|Chmj
zUi5ua69lj)TmX9_F#Qu5K)xn_Q=o|@2iO$E#cK7zcK_WV#19;VK68XVWBG(ORiWg*
zJK3!ddoac2=7<d6`q~Ap*3{Z;(rPcf){14UAE?tPoHM5N2de}AsyF!)nogZGC-^t3
zSbz1wmL}>W3Z5mfQ62qSNzbNZ`(DpyBAyR^^<BP at e53k;%`B2!r~1fhle at l_<Wd$M
zC9f5XJOLqo(u(O&HJODb7^`lb13HLbFcPMQUSwv<Cb~tN(Gjwy5J2$B<udf%Pw0ev
zMetg0V|u!=H`8!M_Bm7ES4>YcoH}=ot#4h;%?wO9ch03}XX(?=1p)XK2kK6;o^$E?
zz;k;1r2hk<$x=lC004N}V_;-pU|?Z5>gBAzE1uuxD+4z>0|;Dr_Vg``{{QyhOHNKU
zAt0B7fe9oE0GBuq2>^K7V_;-pU}N~tz`(%C at c-@q|D2o*KoMlXqyYeVcLg^9004N}
zja0F26fqE;y<OXTf`bSYDUc=&3ZPsA3W5f0krIkXq=^Iwi8eqBmBnZ9HT)2w$mt+l
zf_Ywh)??pBVWp?>j%VyQGoGm}eIk65BckeifT3~JfUc69Kvou at 0P_BiA&-Led(yvJ
z^zya#{$kIsJ(Snkd=K~x{Rg(u>_fpGx;r}l!}k%}jKTXg;q1=a)$xD0JDmfaTPWr!
zY#MRDxeAd>LrKbbO|JW*BzLi|CvF8U-+<%GVjDph&)N4dNk3C|$lZy|jmq-wekki)
zR;M73dsq=i$Ytkk+9Kba2XQ~uR^%boWQbcz=Bm>E9&++li`pog-G{i{Z^`*mSlSG6
zyG34m+KBQHd058WG<rR at n;CCQ+lKR=^gAZL8;^;lZW8mxx~AZY_5G~xtUEWf{$`Ab
zU(~LXIZ>&vI+NlXIO421FhdPqdVt#;82<T=CiaWY-*2bOH(k6J(VM*2#r~V&e;$0@
z8ESCBIf?R(&lB(t{>sB34?1!|Of&9J_^u$g#_ApOa-Dmhb(PKX{e<-mxfSr|s{RtS
zyH|gOtlhcdJ|cQ5>VMY*`W~7g<{7Zv#~|LYvg>igdk^{^0#A>aPwr>7s|G)!y(ot{
z1p8f0!yLr>bWYAx*lv#W%FwIcrY+_%_x?24pWuv-Sih3>*J3`HB|RwnDe~mm+{ZPQ
zK1pu0Nx#GOnEwB4^w?$2qSt2Pj)TbO8P>Ogo%;)12+q&3zoo}!UXBKMkNv~Q`(f0-
z at cL=wUIKPEJd_<jzbz!^SJa_jgX6Wfh`%k?ZMn95wsZKut;Lz)jr+OiPQzRdGqRtR
z=w<l)40~>g^)FTM=J%)t|F+=7d+GZJO8cu$004N}ox*KQk_i9+U^FE(O!5o~Q4vj%
z;YWz1&Nw2E6wQ!%sAQayBBH)hnt6!i3`vp9IP(h0^URPV;uOhqoGB4Gjy&@Wl{x3!
z&E1 at H%sJ+obMAKAZTJ87JRlGV{=bBS7$7Cc=|%MtdKtVy-WkWDkG1(^`ONzq_-6QO
zd=J3|VB2xt at k2-fL<!mO%ktCu9r-i;d;C{V;7_Qanb0PvBY+f85- at x+^Q1Nq9+(@b
zffd2zus=`XP7MWNgId2J1bYW_g3YIcPXllSTn;}BNeU5%SVG(gB!Y`rJyUeXio_w=
z$U)=+awilWN)81=O`)48IEsQ2pe9h;VVPmFu-)*iaC<~TL|cR{;t)+l186OJCo&^a
z5owKF$B-~>n4Kt2ls4)pS{A*07Jv4yn6?;eY)mX8RusF1rC`gkI_yRqJdPHpiCe=_
za9TVBFNqJ1H^e&=@CovS)kI8UYvOtm?HuBqm;fe-2ztU!GB4Sb>>{#=J;cQnQi>{N
zm&72=o at br+q)OA!X+WAe9h_cpfqTJ7hLO|BQu6+nVhW5xrZin-U7Vt#s50s>b?XxI
z(ov at Jt8^Ni)<oO7%(`sNVrRLt>Dl~jS at v+YHQPhS(rNT^`c#fj4l8FbSD3qag?D8z
z50=-P=e{buYGDL1c#NHVc79*}1{1+-WbPFxzP7WNEOQ~WFtt!xxKM;D;uo2ULB+V@
zf?`Rrws at CKW{cT2_Wm{IHA6{wNk&O)$<cMnb=^NW2#$=i`3<cUTdFCem&wcaxCPuH
z?%WOZjqY+z`9%5W3VcOh#St%oH(3d(6jd7eaK4o9tn#j+R<%{x1U>?yfGu!VL#u&m
zW3{J-Tl1vGU5l>e*Q#nA00iIwLx87_RM%SP5C#j?LeI^{oAbAlZb|Af^#k>e24chL
zZQN~LBd$?<C+3d6Dd}5^C{-j8xtg)fK(kp47t_V!7Icff<w!!42qh|sP2#>wy9?a)
zv{~<Q?`=vMQk8VKo!H*czAa0aNn~614IQl==1xYZtaD9HkW1uKUGOeNms`P5I3DCa
znCx!qHgtb}$a>h*gXnQT>V34UOjQb$6W<|w`H!)WSNqn#UwsNZ)vGWnx=P*;?yu=z
zQ)j9tpRt~q2XF(T0nZQNgPcLjkIJE-A?48FbLR8KVcziK3&D$N4O*if at gAX!IJM57
zq`GJwM>qG9`*KGgqvz|FUqN3 at 8$brYpf?=+tR01pfyYY6o)`&6-Z*T$Vcc!fzQ(*Z
zO;CSXn>3r{zaC62ze#^HF`YWCnMs{#ov~Te7PDphZS-5Mm1OO(THZ0=&DtpMvF}Z@
z{<HGgX*<GBv#ad~zlj}Y$Ki*D54&@~ob~t7dDi^F$HtHA3rP!#1<xPcMew5PQ^qHk
zGuLTc!Yq~iOSyEg+_*fqlCff5*>~Ywe3#j^|DV4B-wEZz004N}V_;-pVA5rhWKd at S
z0VW`31VRP|2QZ%j01Z|Ew*YwBjZr;I13?gdcZr%P1O*9Vb%j`1<XgmG6ATfoL`A_u
z$ajLtUA#*aTT5$yfxkff6&gDW!NwnA<=eSUyhsFDcIWNR%$ql}0G9BE5R7mXz&W>%
z4a9l#v56S^8i$a;t;S)j<5A-otl?ebS>}FeJckEkQR4_!j3<qwST=?lFJQy?)HsG6
zGotY`;$~6f7o^NHjfa4Fr|~Q1NBARzRr4OZaL~gIT(r?di^?q&QN|VOM0-RwYV=#k
zAcZtG*^z|;I$TyD%adE3woa?EYm6+B-KMvIYw<bg(jIa*F(5;kv3_+Ac`{6o&yTBT
z{)n)Cah`|@kLpykg&ehHxl at 5YrZXLop-v7@SXD<2;j$R%$k`Ilw7IFAD$%HFgVqh?
zG;~Gv;<84KuU*l5!M8GB`@&aYA3rQMt-4i3r9V?wSSFQE`?Z#E_Bg>L*QkDZA}=A8
z{vVm-gnTu&bezN~&q|=Xv`qS#oCDtWMU9$!Mtm98$YP6U4%>nMaHMy|Q5rKH;gTF}
zdel#Jz5%Pbi+Fh2eOCpPBgYX{{Sm|7?V0U><1jc`!APs{+2;#0qcR$`G;<ow%ndAD
z7#uL$ahREznVB7CW^kCPs%Nyf_wruu?NwLz^zW{&{#Df~pzweH;Y=1(K*1msE-IW~
zIInPF;gZ6oWKfYxRHh15sYZ2bP?K7;LVF4q6fP at VOnYgS_R(>4Je@!%(n)kOokFM5
zX>=93DqW4PPN&l~=nT3hU5l<w*P-ju_2~L^1G*vIh|Z)N(@kiN+SH*g^~j_?4QQQ)
zbW^$+-JEVgx1?Lqt!Y1<MQ76iI)@I at ZRoaiJGwpHf$m6mqC3-F=&p1(x;x#2?n(Ee
zd((aBzH~pjKRtjRNDrb1(}*5I7LCcK2`QS=j2v?55Y5S>1^E<ENQVn6g)0j!iYTUp
zQre(R+M;bbLJy^f(ZlHx^hkOXJ(?avkEO at ax%7B?0zHwQMCZ}@bOBvR7tzIZ30+E;
z(Ua+NdI~+2o<>inXV5e0S at djr4n3EiN6)7h&<p8B^kRAmy_8-?FQ-?~E9q7AYI+U5
zmR?7%r#H|W=}q)zdJDak-bQbychEcOUG#2x551S(NAIT(&<E*5^kMo4eUv^%AE!^y
zC+So4Y5EL(mOe+Hr!UYI^hNp-eVM*OU!||n*XbMdP5Ksno4!NerSH-A=?C;f`Vsw@
zenLN`pV80h7xYW|75$oiLs!yo>38&d`UCxu{zQMKztCUlZ}fNi2mO=&MgOM%pa243
zpokL6sGy1(>S&;e7FMtad$EdrI1b0-1e}PI3TNPCoPtwv8m at w?;%c}$PRBKH2Cj)~
z;o7(ku8Zs8`nUmZh#TQd+!!~(8rtZfiyln$F~B;8xG8Rio8uO^C2oaVV?WNq**Ji6
za1gh_ZE-u?9(TYUaVOjvcfnn8H{2cfz&&v<+#C17eQ`hB9}mC- at gO`HBRm8a#)T_j
zV*-UKW^mx*5a#f(fR6wn4kJR01SvMKi7jm72p)=u;o*1$9*IZc(Rd6Vi^t(yJRVQL
z6Y(URhx2g(F2qH+7?<EuT!ts(ay$i3#nbR~JOj_fv+!&@2hYXx at O-=gFT{)RV!Q+|
z#mn$=yaKPptMF>P2Cv2I at Or!fZ^WDMX1oP&#oO?9yaVsVyYOzj2k*uE at P2#%AH;|7
zVSEH1#mDe*d;*`ur|@Zf2A{>}@OgXzSKy2I626SD;H&r=zK(C;oA?&Kjql*Q_#VEG
zAK-`h5q^xH;HUT*evV(@m-rQajo;u({1(5%@9_ux5r4v;@fZ9Rf5YGL5BwAV!oTq!
zgHwY6!!U|Q$tW8YqiWQQy3sJ2M$1?+_85DORb!uVoN>Hyf^nj8l5w(eigBuOTH*3a
z>bq-e``4uHtgS8EcHVaKwwt%TyfyQ-pSOd&UC-NL-tN!Z&cUoTv(`L#c4_8Waa>xY
zv1^xOWkt4ARsM$Zf>4zl?kB}Kv7)+&ky?bwb}@}rRGhlrqMA4(&x&RWiBl2XjS~d(
za-<f)hN>J1g2l-7tGW%+#0aL-a_r80%QNg?R!Sl(c8X50P*q+{jVv!IChkHNqrjRp
zC&8xgu_D9OWv85m(v)0(9Beg0&)Oc at Ze)9k_Y9SlR3bHvRP0p66uqDq*z at Alvu1TZ
z%p`OIU&Zx}z)Kfu#P&3DRW_*QdK#7wM|Ln#m9eE;Be7;h{vQ{|K`^h1SXj}#6h^L}
zlx=IFBC9wJ{Di-Ild_vwo at +M}wUvw<<<6X>uJuiKk~nq#HuFcGnkLOmwUwW!sF8Id
zncm9uLus72)9s?1rQ!M$o|oZrUC&*aTDB6ejW*ng3M!#%CuyY0q4I6lt1ql at B(|!k
zY)xcA_AuM2CT>!S9V=2L+fnQxxv*B8sBkp4?D?h at O<GfnUAXL3mr7BbUJ5NH0TUw#
zE7Ks7 at ur@>?C6#9PDve7cGBd1HliRqd289xN2rBf8jpk+^@Z!_Y9k|&)+ at nWx2?me
zVwW&ZdNtRd1{o~2Bc=S<36fS0%UDrkV5Zf_mcLZ3C<->U9gR%YR#Y=R4fF4s5!yw<
zBQ_^?kEqc!^}J at T#|z8z_Np!0vliBlS;d(<W!fog$}tkDs at i6v@om&ZvArNxP4<fK
z`ZGPf#QyYE)wVq4PpqgMS^gwgRP11};5#lateLNp`qE!%xZ_8$kLjLlDwVYO=wT>J
z+8nUWDYH;T*=CKrBPQ(04c|~v;_{BGdEW^l_XyM1@@mZZk?qJL$)=kyFEhsr$%OX0
z*UT6{;?1MLn5*p~M{``wO^#cMlP<<F+bWLRllR12>DP23aV&4z(Ag!+DHU0lQ$)*i
z{W+5}b7dt=V~3B`;^<Kkr;U+()+xmG%e;B$Y&T{u?=a4IkYxwirsOdX*trt#4NdWE
zqm^awX5G4;kZqP9xVk)RIa|4$`jSH$Ofe1`aqz^5;@EH|92Cq3cAj4xE6;1#;?^lU
zHc at qluQ6x0R)uX9t)*c$A`V&27&$u1$bH9*=mqv1Gn9tMf at B%a;lWsyHzSUDr<7Rn
zJT7xa<-^p*k*lV*6|1^1H;a?fEDF-FD84K)N76}otSrtDhMgvSl_7h at 3N?S+uozn#
zsxJN+jhU!(W?T?4pOAV8JkA)AJ6DOr3(lNc%6Tc`Wfj{n_Ed?<>)M>=Q+r<HYh-&k
zd{=ff?e at L1AeixKc5*;t*FcHyP;J-Q=PJ=Bt!63*X{P8P&Q$FyjvG$leq4-$h^fXR
zixaJJ at GL8vE-Fi|71{292{U8<Pq-wF1HR)%PG_0fTvA(C6wdJp^EFYNTdU0Ni0|Iw
zjL12!?uij2rp36*d4cbFrdG6zN6QM<%(@v<D^f~Fi%EmAi4(-^d{vE8H<25w3aMnr
zvdx7`DXuU9XJx6Bx}3-n#;NP^31(FWhf;TH)`EApd|Q<lYBG0|##Bt=T at EQWU2z?7
zvNSbao2u1GkdB2)zIa^o at 0gK{f5!|l|BmU)x#~ypja|U%5>Y=owK7rhoXbYpvqEV!
zQIh5&7|XeIG&Xa7YrfSFr$Lf0ovGP9^J#sb50lL;arO7M>v<|*$L!sm0(BbNl?J6>
zS6iV(VRpNGfnheU6ffA2(v(BXHx|mN%sAJD)}+d5PV=HFZwZ;Xq7|K5n9Y+a`<Sbj
z<rU?{P}2tSG;hyNzRMF3CzGsL==d$#oW*Jak#aegWW%g1jyi*3V^?Kq#3 at H4hp!tl
zt<!O)@wD}BGfa;h5#PDWR$M at 3L2={CQFWvrUXH80$;z_OWY(-oi5fARm_w->JM7Vj
zlbw>nvt>^>LFLsZUOrm(9W#<AsNF-7pmz6lf^w3DXBO=^?v|OGoHFZKR?SJwnTf08
zam;r&jNN!wL0a7zTNbV2sJqs!>8GEpU*<u!cjf5IL6_?+<?F$!r#R?^hMA%nn|;^M
z2%Xk-NQ}DePCYC6x*~Acb687d%LsCmDNJ3NJup-n8MAR{r18XX{m3{JZW~cLHs;Z$
zF-~lGCac;`%<k2BXe`7C9c#=HIqG(X`*ubXPN(BEQSpiYJ0!<yEr)duUOlF#bJM8X
z?TIj(+gwf4aek1zQ{3Wfu5B%!9y at cynUx8Xg&)<N()p#gOkVuP;{GhM7Ue0wY3Gq)
zO*nP52kn)yn~YO&eSQs`3B9P1HF{`|7w|?$t5j=OKMi+(6<+P#)z3nFlb^Z4W?bPg
zjRJR4;=o9^*i3gUwI!Z!hg{TxG>Q+Wd}I6^V5$V=DW_#m6-7t^Pu$RmQ at PrHzal?w
z+zn-n(-}7ArA_6I1ODOQ^B+$bbXN4)N6W*@Snq_)q-D+ZvYI2G`YV$l+4Vuj)|(sr
z6z5l|wuwj9*IHR+(*vVGhB_j;BIK^tO%Z(&0}<;Y^v||~?fq-)Ypcy8LjeuD(iPB9
zKtlly1vC`Ua9AAm)-+-)T1P}zL@!(IthRLeA_gMXMF^<9CPKcp1=JQ$yC=dFA&9mh
z+Jb23ww=9}w}R^kt|PdP;5vfq2(BZzj^H}7Q&)EC3Zg5Bt{}R(c?a?Z547`E&k$%g
z-|~Q&xBa}8#e1?wPj>Ceu07ecr#}d^mqX8yjZN9ulx0l;nF2BeWD3X>kSQQjOzjJz
zFNnS%`hw`^rXJMa1k at j}zo+_}fClnmAfSPO2J&Gb+YDrzL0=}@qRBP`L97d6T at b>H
zp75e4yyyupdcupI at S-QY=&cK4D2SmTgcQA at Acno-w4<+)Nx_=_AP6Ca$)sS>7SR#W
z710x6is*|Nh*%dfENv)Go2&{YOj*kmN|-_kQz&5yB}}1&DU>kVvPnla=?Fr|U<w&b
zA%iJoFog`Jkiir(m_i0q$Y2T?Od*3QWH2RtnO#A21<@6RaKP*i{|k~Z-=Y8kRKYcE
F003Px<E8)r

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/fonts/fontawesome-webfont.woff2 b/ui/new-ui-samples/fonts/fontawesome-webfont.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..3311d585145b1cc1b9581e914acbb32d8542b4f5
GIT binary patch
literal 56780
zcmV(|K+(T<Pew8T0RR910Nu<04gdfE0o>#O0Nrc=1OUYV00000000000000000000
z0000#Mn+Uk92y=5U;u?e5eN!~<79=jS^+i!Bm<Eu3y53*1Rw>600*lcKX+wfW(HdY
zfN_R#dm&NLolxqx_tG1O83no>L_x*xw{C^(d@;VG{rRcc|NsBLAX$vz?hm|2KvZ=)
zOIuYlvYz^cEXd)e6i3QlvtuZ5)HY)BifjsIEo;AS{=hCrH3#ONR4X&pisNaE6`o9R
zCg{jzY$xUj)qIF1h0WrhL?M}8W@&a!Gh9<Cy-}D4O#J4JPG9D>f-773A;`E>=NG$e
zQTTn4msXK)xyWnukjC7{D2KVM!UQovQoLP36Ms;#ZSl^uAEd?X=VDINb45_R3pZqZ
zIDSR`c&6ED?Z#`2le(q2iuYd=Deu&3#!ySRI&|~R$j+|tJ$mAaCVzKi3FX+15)CaK
z?^A^5Yb|>{jf(*U2|VQkK$fsP2p<{aQXcs3gg)c<56{o7w;~tKHezFpF`~wZ++PsA
zQ6Zy3Qd-?4S|ue6Kn!eDRIr#CC}$KHb!MG6|39a_XFm_-F+9N)48sVKRv;92e at dZq
z3YA at yv1(m6ZfXYr57K at 4GMS(GyWsVkN_>l!YT+WE#05TdA*wOmxw#-Y7h}V%1=M-B
z1r&~@FDu>7ms9_LB*#grv5IN>kYK=2N({OLNe$YJ?$SDcr;!Xv(Mb$RN&zgv<=hSw
zHtpvfQMYB4sWI4hAGuziRDN$t2H7T-1ref;Esy{I{hwOWEKA8^>;Pf`_)03Lsb>q6
z0y+9I{Q1R0fJu?Vg4o$J6Kb+ZsU7S<bYEnwvOAL}e)#`6`_38O+Bv&^B_zm5umotQ
z^(o_irG*-$@~qSCc7){qB)gvc5=YujOz=V=2~wp>InvjTJgRHY6l<H`f`;TDt1?9J
z7UkQbX&6 at OezpAIyif-n+9Br3E1hY#a>9FePiTiL0BXY(a2 at WXNhh_td$RP;vh>mu
z*hwnjT2OSUf`g%Rfx!dOs^V{1!}D|N0V8@;kI|#X0tOrGuL4$#1*~9WW7J?oZ-9t^
z5+;ZzQ&c=LP{G2$x-{xey-+SH8Qf;b9WfnZdO~`~!^_ui2Y`6_R@(ma&*`hS-i)+(
zca>ilGaBKoOl@<wi9>>rg9tImoI0frXaIPxqa~6AxSv~?DqAncbiVO$ug*S=6lXUx
zl9MCg>dNcLvI9%-krFqfR&xvxIH(AU>c4funC_(m^LQ=&Zfi;vRp|(ddV!I!nB?F0
zof at J6XslaoY%~_^QyaC`Me)zcRtJYSu-)E~h=34a00$$t^KYtU3y{Q#m$KF&>q2)f
zx?MS?_T1&7pC4wx|NnddGXs#E8Gs}JQX&9K;tU9h0Lk3}2<iZkpebta9+#W7Yd@{-
z_MKLj5-^~&1S#ne)F#SF+6$?&uX4z-=>1%|yX*X}s9cpUUD~Bxw6*`<bX6+Gt}!k<
zXM$)pySm8O)CT$c-D;^@NYE{8OCu1%N(?0jHxkUuNy3cKIw65pn3=VX;hg&|U}%kP
zVFl*|>%>`@b<A3mp0Pd&F5Ga#OTr7Ci7pN=44n(YBY50TZF*&+D~$Ph8D;<=9HFnB
zaaDF>yFs}U)yRIPFsr*bG`L`T?WetqF{K(Ig(TPtf-PXpyZL|S{QN}g>q$2cUuk9$
zMu<TS!Wf5q{D)k!=>apT8EZ30AxP^G`6y&NV$KQ*nsok5LOg?t9i-Sn>bBY4fqNYz
zQ=n@|#Joqj(KX1nx=r-b1O>z)vB4<gj3R1;@o`On0{mUV!~*#GaQ;iC`SAI>z-vi^
zQh<n}h7Eu*$0q{1tYDp>nAu^R0O0=d&W&Dxdc(f_$*Yv#Agn(E0&x5h5fQ6rxW>FX
z)O-g)e<4;w#t47|5R_&tBWz<glbi*dW_HK!iwMmj8ySn#F8}+emrr4-YpAdByxPY8
z`GMXUu;U|)T7y30JgwKC4|s1hpMy{283xG`ZtG`5Ju(eSm^MrHgg|{?VqyInfW-ks
zNXx=b0Q5ehQ2$2E)c7|Lo&1-Ks*0s)F$-{ha(?Q&?+^bxJRD`F8WrZ4!J&Xf4ucFS
zrXYAYfdiO>@s#AA`#O((TbFqnhrS!$Rht(6d^J~~Ix~WyEyba at TfgA#-$bRZ9rYaa
zZpQb7i{kWut)CQcn3+G9GxphJ{|iR<>o-3ct})Uhn_8~!Ppv_O0%bI0xC>I4w5-zO
zu_LZCX}TfZ#K?cWv=R(2j1r7t38TalXOSGSvEy9Qa+!IR5g0F(iiTAzT4jkN!ATyh
zdXZcu7Z#@2gzHxk7Rx{}NHbm{GW20br{)`XBkoTayP6pU%fZDEJ77TAj-;*USj}G!
zDnaLAQdRJvX=X!aa6*^?9%IU<gq6d!noiwd5nMu&SmQ(&^Q<rh9G%D4T#-&YPU65H
zSr9D|$4oU`5qm7dP^Qk2O%PyGM0mq11jcFP&0LzDO|n6XEX?zQx3IEVBVosCiN~r?
zP*^>LU8{3~cs&!t(#=2iWj$W2V(Kid=4~*-?F)$x?6Zt?#L3xW;Uy>L9<`j1#9Vsg
zSpQ+EdBNh`@PGJyf~UIKb2;x(_j=JWq_QU!!@x6)wv|tXe;^$R4`yLhn2V%mn5~<M
zpuyOJp>xYV-86RT_{^9xL)C)pZ(k_HmcQ!Ud!VL}*IY6`w)Vo6>g%u10iI#U3Q(~x
z3>NDY?|i*Kc`Cox>`OuIq1-ouJRbzI7bn<B3psUa5D`3Ihd4Z3^hXYU8Uro}(l`uv
z_6mj+&=`UgX?pfZfvrQfys{cl+^2aQnRmG<x{fFyI*lcmm=x?8*81BUH^wcWKg}1;
zW_7)BBo at -Io!cmNjTJjLHTc5p+?lhl098N0nf&btt%<m-n4#^-K;rciK0bSi&)q!d
z!<}5G$^U<Eaa at uf3|ca at eUx_0DK8dd<upHxp=r>0UL4+{1_s6;Gf1Fq0B<y&`W7!E
z at TMW3fBM|T$AZ)OTqY=(ho;osKJQ4X^S^NbcxT0!kK4rub4`cvs;N6SFUu-z`8D$c
z(y^8`b9S8T$D*(+<G1dHvQ%SO4Ozyos&qgqbGr#TK$rmrU1R~eW_I?o$WeZ|a(QZ-
zoI?=l5;joBwE+l)*#|+(ZzTszw`0^4o_CgQd at d20S0XWvTGSKom;FHIr?to>RuusQ
z-{-N&1yZRGevvn at L=9I=`7#OBZmYV=p|r12VuVKp%5WNdb?cj(5BPLQRLbjf&C-_!
zfF6|%Hqn#-Z_T2z&7v}E1-G4+I$)EwJfEZn at BIyz0&NrM^idp6n$=%;YfnieW;TS8
z$y)RsG+SS#WbcW2GPiN4vj4)w{+rB7kvO^84V7;eoZ*qJ;0oV{xEuTfL*mg`-Fd%G
zh;%990Q07^h&{Z9`vb6MOy3g9F1W%P$ihjf<4s at Xr=8XzLOEZs<T}`<(ngFx0B~)r
zH75Au3W^n-s7bC}jcwzl9%LS|*OqWF=GUE6!-%buByxmyzN5e@&X6dT2gF8Pn5}g@
zP0BK5&D(Qi({t9&#3Y551CjV3rtid|81o=d(bQExjTp!=_MTGmi0F#RP8c=G{B at h9
z>*oR%V{nnY-GoPGxHxbui*F~%WR3Fx4mUFByJ!Ezq72Rc=SU){(smx4&mn(*ejEX$
z%{U@$l2|11aR{4g=wt>xrK#4nmgNx<>mnCgnkaKa(YADKekz2)NEdBd$6csGT14Q8
z^`xn77TYRGwuqFbK95+*1YYQ=+Qc)t{B8=N`MjT~-01T1x;teM`MphO$^}H$5 at 8L1
zha*VxZt$nG{cQk2ApW}P<yW5o7=wfYbBY<#Nk1^l^zre$T2j;CWDZZ^1t-e)1EY`M
zlZZUe581%eaU5wK75Q+vd*3I!D!4b5Qyi8DUn=IkGgZ%P{5_>lUW7!~&OV2^P;xcw
zd5s%<mw)BUL8Zt;F4LX{BG+(*k8H=w=ld*EKf<UD4?XYujCJ8TCg%n-t((B4cA41a
z?&umN>lo{IQgY3rv08Rla2?xm0b=G1ZvMoyG04Q;5bO2x3!+lv>-sz$4}`@+Bf?sa
z`C<G0z=N=Z5yIyR<Qd#G(cm3B7GBj6q>|q>2A<sZ5MIBhNH>eDd$roR*51!jr3_~N
z0`!Lco1wLu1getp<<6^}xTed@^|LF9T)Z`8FjwnZWq1>Kd at G&Wwj*I#2nA!+N7ZIk
zq#?ANj>lZqoJ(<F60vdga0 at XFA!iD=r}BC>bK2XM8o4f=(RA`~KA9bfS?&t(^^UN<
zn1f)zc>?&W=YdE&3-WNc5z5HpEP$18NTrH>t|RUpz3G{1I-^QKEhkvJoQJ$3dYNBO
zQ;wO%+k2B|IM|Qs at t*zu?FM{<lz0<cSfN#xe;@}tQBRwkRBcJG1)+3#ed9MUl`OS>
zP&$dBc?`8ZHd5%i?X>4@$ro7=g8kr1E#&;cD(HlDIi8M@%e#umoB&`3Um7wvZjls#
z)Bf{~`UA>=_vz{$VyD<GHQeqaaM3$rotEcF6H!Rjefk)Tud&JkpGG4m`<R3n&Vf5r
zh=>J?^q8zK`TBbD3y<{sI$yb`UH2MUi1?^;0&q}3XId{a?h<ARp+r_TiL78Ui$rcr
zSAxr~)%*}bZt~L6CrKEF79uh|w(bhwxt-=zB3|FBb0bAsM0|ak9w9}}>$|^BLX8xS
z)M6eoM5{+-uWipjqn{0g at Z?8^oOT{ci9je<pI3)`plgWFLM at JQT7{;owxkS`XHhX$
z+gOGv1mJBiavcSNRh5p61yU%HFd{35)WI|)YuTZw&Ns+fy@{JjxzS?9bhk@|(6LPq
z_0%XA>PbqCFSdBQ{|PeFPE>&EF#l8FR+oZq2CI&x(GJtdV^T<h8)G;mah#!EGQ9OP
zDt=c$K??T~Vx!xf!PUhh^h#BxtIKECSoX}iO5S^qNS7&{H at Q~7<$O$SS>89-tlsuQ
zcim}R%}mi$N+6sVOvnWu;Rh^DNfi(z at XhH#HpoVHeKq|0gh$(VmJ at l!Jii@#3;Slj
zl-}M9`UD%>8ylUi4c=_yq2_fu`B#(ooE?Dl1?7R?^lh at Qx4bCZ3U%4^*gkKkijWBV
zf`y8UNLH+4JS2$WA at l}RtBm%xug(<ij>qvXM{S;{+F-!rR9aJ4MKRYGl-(xO6s^uc
z`(-k|i1oasBZI0Q$aXn=BcGzmh2)-rklvjZpQ1>uWpGSm{|;z}F;ps4&6}?j5FUje
zAfPNu_Re7G*3H)#+ at V;Bq*V}MuM!GIT0XV2XWrISl&xX`c!!d~lrJHnSew|Yo)*BT
z^QgwSJ=*@`L8OYWT4pD;z_}I~Ctpz*EDO|^%-&#u#7S0`d!*;vHXis0wP;?3$jr<X
z-1%ZL4bk_ZM2QLRF%kJ2vE#KuZvBi;zqJ-!ElSAiJM>WSHeY)tj7y2B-2h>F?A_z5
zciF}o at 8;A*Uz&77uWQ~hEuhB4DS{m+QU-4?!V-2PiJflXU>&&)#OID&5Xhc-FJ^tV
znILx~Y(<-M5#mE5 at tH9$L+K2&o5oeGdq|GLqeL<c_qfc!pd1wzuc*j9fOd%rLxs%D
znTDY=vVZ|4v2R-;sFrl{FQ*#Ky2aigwA-GMzZwXmo<fz1Z{_+8i}R at PTwN6LnL?#D
zYg}5u&0B0t;JQa_XKYc6|3=c?l!@td!_Sv7SMqRpAA<@2Zc8cSNzhoRILq-HK1J0w
z;O)#P&Py(tYW08nNO*oKjHFMgwyM)~hJSncqUF%jkZuxFGQuWlbxxe3t^r^WJTSr^
z*SYJdp9n;7HxSIY51hG$OkMh#($|2d-&>BO-&!SostVdXYchjYM#v#rZ(qbb7b0G&
zFxmjwOC#PGhz#Wo+-~?-dpLPsb!%)#rm`i#NM2I6mM*}6ktz_BAvB|~TYUR{2An=`
z3iL%b)YcaEKi(pB!T$b}g7_T-xFfFWnEC)}1hRnVB$0j&s>~$a0*)HSJWO%Joh<V4
z-mf`UvyRg$vEvKL- at Fw3`!S^!tn*rUq+9v at aeow%g-9OBc76R8PoJjsr)IzKH8N@;
z<PB&~R3TBQ!fnoNaficFh|-3lWQ`TgF_-wc?rFAYC!EADH-=B1I#V_HV9WWYfkrBj
z9fsi6yz%NwxQS)|YFD2t<!TOY+`C5 at 9&``EnGLx5gNWC<``u}`JzDAMp$cv5U=)&K
z5d#Pl*rLzW{L<n0qFs at 1_AK*f^^M<{$=81aL)}$jxn(bBRZvpetEVdHa`;wHtH+sC
zPgQ{68k8O&2q-J7Z(hn0cjD6jlSU*ibiYc>le)zi<ZUrq0VqE`*+4j?wbeB$<H8+>
z*)x{0<M7{}`nljHq*WgL$%#Kg5Fk|sL}4rdV#&ow%a;<SWF4qLFJe85DR`?Mrj#bG
zgsx>cm5?@Dw?#-(8GGtrx7Qx#^P}d_Bh-eoSz#9J)rfo8{q~0#dc at U5^EyN#G>E#W
zEL-{i16l59%I+KhGH#o|>Eyr3#k%mPpmBQps|l(yZN{+$`LEH$-uzev!4p<$RvKoe
zUvq$@fL5_GK>kqBG-Hn%rn+*Mx7ivryiyUH>ee6 at 4)e;pI8bSD*)w6a<n#4c2;k56
znS~`zb(LUgkxmxwxSq4h(5xn~hP5+W1&6T;Ajl+jRtaDmgl%}QyjkShL8xq4-Chh7
zj#?U2sSgG6qAfGn<F0v&oKRK at Z*e|6P_Bg3ORZw++?j^*l*=fyg`QTcH;$5gD+qP9
z9befJE#q8_&qzl>1wYr#Hws7?;rj4WKagTxywU+ZbT0MrPO!{a*in(GK)E&$JZp><
z2hS=#7<^OkF+KQ&#Umg^u3>~SD#jiW32T%HS8bViOqiTh9%(hAsiTKtw8gU#+Jn=t
z>moLzuWJKa at Yi*)?6hVtOQP#(&P@<jSALyhkC%y*DG(qfN!#a%>K3&Y%&}xWW5&XC
zXm;BzmH6unu{a|$v+^k)%Y!77Kp_**1U<EuvxKUj?8hy(d?bd3gKLnmzJhCl;$s8N
zjBAuc+uhqB$&UxJ__Gg>tO!8}!Yl&?9*Io8G<3`KOCzs{Z{aQhEs5(+mAOXt0_>Eh
zXqlciCX<-<bn#t5(kyI`5RDW}vQuSolj&iYItuZ8k@<lyV~0 at tBt)jk1^4p~<?S-E
z6hl-pHoj@>XDjqEA<mf9g^jdQE+{cLmNUvg^UT{Dkz8i96pF1`hDjd;uNkDu2F!=<
z<}f at c-N(=${2~lH$mIV6LXJU*`UQB0$}7d{-<ZcnawnBJZ06xqDSd%j((gzhqZH8-
z2z!IcJVi`sge)uEY&n_FNV3G|uF^7PmP|ijo`Gg*W`$K~^L$3nsD+2<kCE=!0V^?Y
z2qNm^(fyCR8o5 at rymw=&^N=TnKQcl9cG;@X#4rq4r4>(q88c4U<ZL&5%YXCVY<eb?
zZdlHBrQ{Se&EOiDpHr!rPSey!NHqwh%ZNW#?T?h6j2<tAyW=OABF3jJp%ya2In_&8
zOxwbN3k0_V7|eZosax^dByQ&fDw+p^$fe;(kX^zD4)0|~#Mm&jy~A{HL at F+kcx)y>
zj)d?1muW<NnrhFx<5Yh at s~CUeA)j}z)02-rV9!$$AmwWJ{`X?*VS at NQXo`v!CaTIX
zzPO%@SA+WdixrzrO^bXNBj8M~`dTl67$!&bm{6Qb&D at i|FVnNKILnvkwyzwU<yy(Y
z0=LJ<XUfY8(1E%YiBOAF$l<!M9`~CiLKX?zGQp2wrw}y}pQYL|+t|gZa&GSJ`j%ik
zvL;rIo~U%-)+*3dJ*MPHz<o7<y#$l at Dh14svTh?82L1rdI<iQvnH%Pg>F%%KVs3<X
zX}Twp)`E{y%(jvAUMd?_#K4)$aeUxv<(Muv_%nf9xiO(8c3gv2+H8b at 2&Uv{@xw*k
zHN&D9+@@nnz_&c2kF3&EQ1)?Od(ZG5yS>6`HcJ>kn1dMt&(G&X0msMqAc`bWh- at _A
z7EXlSZrCUiWe5w~)be$Dt?D|}HBT at TWn~Rot(ufkV5?4_&qT=O0y=G^^fREz|1fW5
z^zp2<bOPAA%ZcNe3Djps$K;CT&KZ<gNOeHe5g>EqGoYgN@*vh~wB|1D`m<faSm#`|
zbn!3k0*y!@H{^xW(O5lejl-yl8ffy%TDA6+tmHj%)GmsBHrYC8YhBPQVb|@qW3d_K
zEzm-MYD*nfE5pwK)up!pQ`SOkJWH9FVIK0>7DIY#cfVX1pxXT#ctV8*VNo?c&M5~=
zQ6<Hx`oFP~l~6o&f9`r+qxaaXodjsuX at hOL1~kz2vYP}+;u&Py8Uo~Yj?un~m7<Wv
za#=#S1J;V|$Yg?H+!=F2W#wsDF6WtpE^<2Xn`JPm!_?tFTe63Z<1d+L-4y5-+V5Ry
zp15xbJbmAYr{?RrFFdE$mFbE37Qxe(1SBbE`wXyBYu<vD%t?uQ8f%1I#k*#OXIj%v
z-2M7pDw>?|Ht0FBw=!=(rBf|`lF^KbG)n^(UO5;ubO#36a#V>F3Kr%Jq=Ai2Faq^l
zE>seE2r9l^RJzf?xFAnz*QxFa3LcZ%T7xWx$4Cj=J7nZNqGl$QVD7!SbF)*(D<l)K
zw4W9w4S_JvaKG&i#^@qXFl7>`)W@=PM-omz)a%^q8 at k@m<91F3i(W%8lMLi84v!T?
z#vnfGEntC at Ju1OebUdiAM$@Iz{QL7RT3n)wdTXTPDn-Q!@j*mIH%;gQ^H|9OSJOj}
zAcm;`_#me7nQNphyCQYNV}srhAw_MEch``^spG|?L2PG!m*{y~StuCnJGdc9fvvA5
zD47cO#(dDhg+P#>%7F=BVpAwgusC^}wx=Q73r%2z3IrT%U0;~x*a{UmZkD6_V<9ap
z3~%N*<1A<fN#xO-CJaKBVF4Q?g1hbt)%eIzKit{n(Dg*u0%Uh%9vc}0Q{6?+P*%mM
zL-lAmkMVFM68JPY&Nob7l*NICxNBRwU*V#dO2e|EtuVJG;nK>DBVHqljO`ky*EK%-
z+I%&@vRMF30wB1eCy+up68T452-0%&-X?FGd(_Z$gza8s=q(8R?yEc+mLr3K88IGj
z)RFgYN-CGre3~?EV<9D6GI at kK@Aj$}Z78jA535LDD`@oe`F!Hu*nD#Jz*Vgan_Tpn
zL?8XvU;&*w^tnr~^4d>2D|3nh4t0<q0d at I~;jxr(co2ePm_tMpWQM4v0`9#WiX^_2
z;Sk=(@gc!(p>Y~S4^b;XavK<;G}u)SGByi^d?9g?N=A~nd?Uj1civ%c#?{2Q@{qkS
zdKyC4D`se0n<=$UKd<Jw5b%cT-ES*jPL!JQX<rO$#SX|>?@OGzr1NRA&#)4lu?vie
zjCcC(L5JeJ`Prp;QplG7CQQc<)k+xm$0b!GHS8DA_UjiR!fDCw(kSgmd}D<m2SNe$
z@!kh?2ikkrtsFB-jSJx5<S1&Go`K(?tO#bFt#NDv_K=1yN7$)0s8r5qXlXvjv746o
zG||xR_h^INhgSMNF&fo`xB`j*>cC>&awsbdsv1QdMco4wwnYXlx&vGhgtcz{49va0
z=hP9yDH`*?xoqNiy}3=4m at jGmbQxN(_i!BHu#6l;u8B^JK6m|U#4sztM7*nWssd2o
z>{(Rj9 at nRLM4k%Wv-#Aa^QSmjz2}5MSK#g^{nyT0O3%uY&zH|{KSRvyF#CcTTZ^>G
zZR%A=e2TVXf9x=So#Nd}Jq`ZIt?obm2vk- at SKOWzH#uaY@{ecSaz`{ER!)+tsmmRy
z6^(JHW?~b<lg;fd1pPwGVThog21|7WE!evCl=S|ic1l9Wwj!{<w;9v@%Pp9O7HbjM
z->E_Pl*wiem+ZsX;`2- at v!+WRipa+*RC6|o*F^4p;k}A4gObSDB9M{wf+oLuwWs}U
zvflQogb7C0f1y1jA*uNdYoeT&mooJ7=b*cArS;Zf;D>D&%@1x4iCcOi?_;m1y(?nh
zOVn~Dr_md<K0j at stCuh9<ax$Z5u`C%8=N|@mWb8{3pKw(crlNwWD%5cse4hNy4vst
zlf?j3hrpvXia>rSp>Wz3{<Nf4PqXgsE2XG!#-;$*xV~zp^-#?<H^G)FCcWpj1%g=F
zI{K!Rll2FZ3fo=0E>3S at ecVw}V=?}qX6f%S!iVKg?G^w$P$2vCJ#Vq6#}-}}(Ww*+
zMEb;lYK2v4=!z6QTaz8NT`f4 at F-3u`2ij7(V<922cUCY)ffRm|7>WVxbsYM4c+V>k
zp8G9GO=l=pDnbu_a~sbKVEM4xc`PylB&-BoaAYze;CAeUXO)grC$cobVwB7t1q>X)
z*Rc@|Mgs6mv}DjME6kzfUw~9E5thstFesxgC{9bjM0zp=J{%rQs`%yN1;>qbrTxjL
zMumJy9qb=R!87GF^P~+rlu?yK4t=C42)HSA2u at K|+QCs*T1ca>9i^O_tENyScqjk@
z4v5>3LIy#*BGAWTfk4`3%63f<IIr+j1Zm(FqXJ{F(V#{`!$08hCe9ngC6p>rH=H;Q
z at PKfz&vPQB=f$U5Jt;vGtuR))92~H?#&yNfnOzczp)|2%%h~}u$q=+jPd4TZ_$Q6Z
zRt{;}pvoH=)D)yFPu2H|Ky*DoX;$sClvY_7n1frSW~HNSW<#e0H73$)khVH0QPW1_
z+{XhRscQJXpkIT8rr2RR8n8A{Bn*&YjtlHdMl`@{XyLF-lY$w?!4>96YTEpj0S;Q!
zqEem!v0MKCI9YMBV`RbuV7e$^*{^DAe4KIYfDMBLw(F&VyPOshCx&;4+~;OVk}gbM
zCTjDEA<EvhvU<a4B^79>ER<%?sm;LgYb+zEn3~J?*r))#Jb+~+)@hwp+w~pmEjAGu
zbwpq-p0v3`jl4sOLjEkc_*q2(R%G}g>iVek3814Fprn?Iy#XO^why_+sH2lHs at sX&
zuv$Yl2w{vt7-wI>6}xq$_j#hjmQBI{av7Z}mLVgq{{f1bYzk2rI$4^2om$y45~<*T
zxdJiq5Q7USaH;4j3M7#iA}Z0NOt>*K0UL}5?yhHYJC;6U#89i1Ef6W)c~OQ9O*39X
zfpDTmsB)7^Xj>YMOvp_7nKt|+pA*fLnoT~=Mf|cIicE2`PD&RUSA-oKlu4 at H+RiRN
zTt=u_C9EG{Bkb6xed-o0z_>_W0NFmxHX(l6K}#g=#pQK5L`x|cAzU_v;%xddiV;1S
zvv-Wya$;svOR3aN;61AF20RB*Y89o(RLA)Vk4Q(ji&ox(^2SF;x>Pb|OFl^}yn}0e
zI4=DVT*`1Pj7o*Dh{(ax)r2|_@(f%J?b*gwJKFE#wf><F1%W5Cla}ARcle!oEk~#2
zQvQf4*}2KO&&2lh4XPOk<tq`tXg8{ac&pg5k90Gzz*BJUMTj)w3*@|<F0gJAHgf(W
z<pdTeaBO&M2cb|G%nhYZGSwOv=G$-IxQ>^4x4`?>ZW_{t)p~VbAYWi1iQCf at TUQ@F
z^TLL5+oi}2w;#5uJvHh-2<aq!S-d=}^yY0UT`#zbp{*H968TVHl|Oe^=xrK$0(?l=
z8~_KvtR>myRmiN@=2YxgYkOpD#Xq7-%A3$Ig<gt}PxeYMH;DvX&*K<~GEyp4!wgQr
zHg7KXt)8~B$8hzWsY<3Qey~IJIFn8)ZppH0b#*$=kq*iIi?6w4uJpPW!4- at UA(ZCl
zzOwHK{}*c&{l0tjh=2m{_hSQNkb}{_ at xDm}hSAjOaoj)Yj|Zs=PT{mqOKw4?y~{NE
zDTt=oj26fAId%xoIwuy4*_2ILq9M6yYjHA_w6xqI4Ae-IPbUTI%L*M!qRB7N=fv;y
ztC4~q4o}F(ERufAT7uX?01b6ydN`U2h4!NG{uwQ3B9e8XYN`QW6tEJLyL#ThT<!hc
z7u<zPW%cX3J`Vu_6)I9>6bYYVem$@gz#!w0b+*u+`B8|C3lg)kLBB>a%jf5~UhebK
zm4geH&8Zl&x5Vth!E*ZAGt37DAGcsr2^A^?1OgJnzZNu@;foe%;_v<UXFF6MiARQK
z+e-qC0`EJA=uOWCcZxxGAM|74Ykw2KHUZ7;?`Oxlo4}QYyU$qXAj^aGS~|`tW4cJa
zA7TlDx4pBF(lCj1_ui^U?4;9p-gJ%jytRc9_<IOQ$CX<|pg3foVQw}${n~|tH$Jd6
zhnJ;e4Er@|Hn|H1tAgO`@=LJp1AhhZi3$%<2c<!H*MIj2jqpq2)fLZuEs!OUJ0Yl@
zkPsjt*J_-ne4*i20h@!Q5sjiFN<c&+%9q~50-Yqr$K|m1E8y-VJTxHe+Ju%!ctOO0
z!C<ytp{@Aik(QR6v&exN*?iOt`TxzI!l6tvf4;+%yr!~<)>fQiEtmf`@cqO%^ol}#
zhivKxy)Mnz`EiS}V<bR}AF at n-&j(lRN;$n1ACc<d-!r;y|L&9SXMfFef#%+2 at EUpx
zkVJM&rCR at wbXs-~2a8dQ8)fX6bA)6z!ZJ*6es4+!q^hHIVcSq=ivVu&`kUs;jOT%}
z>=~a##apt`XK;SS>+n`Wx at mfDkQHh!;xpx?D`pe?7G4<`a5X)2gUry3e-2*uY|6_#
zx+`9TT-z~18ue7$GaTAuFXc at x5liI<y3|U2Nc>h=l3X4mOuI8!kACxnyDBe<lEIOP
zDzci~@{&?n)4=8qa2w1_eMCa6BEQSPvIb%ALhLxn%zUOt9j1ZAG6(&!ID9+-;7aP>
zTylOltLSn&=6Y%5;0I1pih1tMw&bJWlX%35haB!3A$n4fG+FBL41CNER1C$Zh%<m&
z>e}dF%a3Z34C@^Ltq^VCva^C=YxBkN_sLd!{Dsql=0EXBmQst($WoIP;w)@KgL8l1
zaPNBe^+vRrjD|T*k0RH$d9^s;>odv(08;*(#X#Mqf2Pc3jxFWgE>u<6h_zQOp&7(s
zZ(5FKVcH- at MqHEhx)kxOm<VzIG{|k?ean^>0Lx~d??UR0S at Kr;8x*f2N6T1p{x1jP
zF3tu2T><|aB>?`NQhCFg7`kM<o(o>@wbbBXT0Ng7eKFCp)^jK*d91cxyWCy2Um#;E
z>F at Ogb>>cT%?E1se^mo^{1^f?>aY$L=t+m6k at 6^T9A~gnV{i`^fl%*_`vjCz5Xeei
z6hRdjlG!KGlmMx$3{SN&J2dSv3(lwh&)afyS=)aYSqo4mT;phv4`eX2PBh@~t8=3;
zP(KM`L=1>93KpRsc~tKELV2}Qx&?azE#gw?a%va5 at UQyI0V`f4HOoNN@)xe_ptN?m
zP>;J>`|ywc%_saR at WuT=z2cv_OUUIP?U4WHe?Rmu0YrNL3bE!1`Qv^45e&b<2lC_4
zp9z(;=z|Dit(NC?TAu$YdHzBcb^kwesAu}QzxG)e<G2U0++$NW7N4?xM!G%p#n0?O
zPKuZVDrxm%MqS^HJi74TqJ{R9;~RYwAIXAiAlcm_dR#K-N%@a?Xfa<e5f|nMgl3eZ
zI;EX5$?_<ah{Y at d2$e`2vTR^E&+?bTT!gBD2q;v9JMvAC85R$z&$~48Hy;}?;{1X}
z!GG&8hbJ%{^s`b+1IM?+6?1>GY?AE^`h%6Ni8RCzl&yeIr?_sG%m6{x?2`XNy$6_U
z9r~9EWBin;2x+xKLT#BsO~P9k=m^yeg#*#q;0Uab_;Rf*{T-=D84ov!K`^nu;U(Tc
zRbHlxztRl0A>K40%^L-{9Fnirb?!2 at ozl5#z3c^0PKjqERArQhjIbB-MxkkDx>{-#
zw6U3UA3r=&{3i}n7=#wIfOU%f-m=%TXU~|GQBzA#HBRR(M`5}CxUn2d4TxxX@&a9G
z1}imDq{dC|y}*4!&7wCqoctqzkw<6&SEW9=wdQqnkN0HqKUrSyA+I9i)`zRq{yr1A
zAF*ek*I&vU!P;jg-Y0xZkeKz65=L$>`}it{ooud1=C1$o1q-sM(uCS4-uzhcV^C|v
z#Ac{?*IJ*EXIeUj(FZWv^5yYP;>N>`;ZjE4DaI#FAX>qi`cwmW`Uu@;^a;0sL2!$F
zad%ynyA%}{IhI$%xyvXu?ec#UhGjQOh`)v+&Ff3#1W>g=H!dLKQ#f6u+%wf at LgP=h
zJfJa`T;(anuT0A9DEUgd|B{h3adN52tW3X>uOBF5TTP0M^x}w7n)PKy9_BO_2Man3
zejQr)z_A_4w&M1#sy0l}BAvuG-6bpyP166{xaYqq2pe(M9N$mUIwMWDsD at J%VwIwL
z<S3u<XKM`uf)=Tdy#{3+ySQla9C^1$Cl<+8xa-1_lQ7z-H^tO~QDurdsQ=bNx1HuY
zv=Z~U5VitcZOO}%sK7Z$=h2$2kYQ0eSex(sWb?{@+AZxSSNH?0b)rN^f1rY<c5EYd
zK`(DU&c$m3A0fgQ3N0b$bmT$2s8y}XO|dXIhMbk0Bq=!oyhNN+>xld1#{SwX%m*7E
zD}ebILdkkp&4dy_owNnc^ENKRNdBU3D{Q8UAU&{A4+PQi+&rNpXeOt3(5xS=>P^Fj
zAKqub(MO?K;Oxw~lccDZDrLKtF~~~|DwTYdfOzo>j1WlEKok~8jupH}aD;sHMs{o<
zYT=|b?1=?#Zi-Ea&nG^A5n^<~P%1@%BP(wNHwOEKH^?DTFZV2&A_3nAptYl?ABEur
zCQnSj9)urFGM#-)+H>?{VY(lwg_ at D0gr4vgl2ng8=GmQJJwSGq0+a(|yMg-#dZ>(%
z(3u;w)msS{jk;tENcn at 6=yR#=wqBMSvfRhO!%{OmVVEpjU!KuiSkyqH>LAkvE)1e4
zP<eu>d3 at 9oWw?<Q^Jyz>vb~5*8R{2#x>S#_)MzFHfrK>im(Y?aj6GdFlC$w at KNhc)
zu|H9svdtskl_(RVg7hArGN~p1zQ5qG^??b@%HI`jwAEW;=JPz0zPP%==|a(4u{&E=
zJ?i;=_V1#^?$eU)Jg|c{znRq<fiQn)dtPu$&phYu$1lB<v9pnEW_M-}-3?dNOqRA%
zh}asOP<V*2SiU0FknzJ(vv`?p0KU$Y23CSnV7fB0f++XHV^RtZ^t>>V+6jUT1wtN<
zKM<=`{x1Nrzvsb6;VJ<K$_}!rIMmbPKG^PW$`1l#%5+IJ!NckX5*tG=8}z8CF{3;b
z0<Z8$#1aMaoHe6jkOVkI#!KC8rE;Z(ubAWJ#|ru4iIvArnQD|2QPOw(EcAi=%CE0`
z(fcfZ+ee*`@uo|@X_0-b!Q%Y%LAwS5Q++F4(@V}Guaa0)bAx8Rwk8PQgT$E!R7t1~
z2O|=jwjXI}9xL{gqHv^3`JBHS|H%S`WxlZ at g+Atfw^$f6OS;*r==q4i24`-Gt+Oq7
z>>}?g?lWV_>q*3^<pJAP0J1mmU^baC-xpUc-Qn%7T3>AOK{`f>(>D{}EqUa`s#tfB
zJ<Y6n4qHWkoa))NCSp${o>_yL^j}}z-)Wc!g`vK_sGjk|h!1&@I&gpeU&uh9s&ETI
z<s&F(4Qv}C0b6D#YN*_){%saSQ5k5eGl_(HHUyF)w2*zHvywu&e<Wn~3IQwTKM`y~
zT&!qUtTTgPDdzQLXj?vzx)vJkHsOhq!514~jF#D*<x54D#D#?~SkCXS0?oRvb=TWs
z$Fv7CeeKS$&|GPnc5c6Yn>U6p<L2I1Ab-nEHRMsc0VO4lfIvE_s7fMyilE)!V^C6m
zGcTA{3Bb60tO?}^hg7HL)Fw~uY7UQz-1G!Yo-?5;CyAvX!QehyMLg%j<nfPLLe=cx
zM8;}ym*@q$Xu{i+TdSvD$b9VCjp;;!!sdg{a9ldLx#LU++973jC?yA+&_FV at if7{q
zLxR+`P8$G(xaG4cBVIsxDh6*xX_61#-)cZLq6Qh*bnDq^cEf}S*(2v1ep8Qu{%N6e
zj%TU+tN6G4+Y87SiV@=<JT|X>hAq>9rW<#8b;7&GevdQtvE^-?iF&Hs8yYbGKnQ(*
z)-RN}1tKzxuk at CN4v@myro0bU`%v6mA=K5X8%;yt at VGz;EKqJ`&{;bTCwKRaeWt_)
zORwyHsT=($k>%Fv)VhS+{_Aia<6w at Z9oS2)6KmD#GHP{2f*BP^R3<F*5b$GKB5Yfx
z8z~o4?iyh|N;#q1kIe7Vga|a;J81qBp|G;cGEdfGN4HtPUQFSYMQM~0&ewQf`MxJ_
z=U^X9g73L!*B|eYAVB#7SXx7TX}hKwzCq8)j1AQv8yd6sK04@}fB94hNIq%}f<eLd
zsq_n&z)Y&NCtk>4R5VZhI2l{$OObL at C?wA1C^C4mf3AZN+Pb5Ibw>wBZ5On6OhGW(
zvQF+2bQv%Sn@^lwe;IP+&JhK06P6Akc)*!LjRs-XL<lm^9KuAJ#bwuNkBtB}O&~r8
z(2#lttG2EJ7HXzh#P*Zcnf<i4tpl(WV_Cd_8?JyoUR!uS^R%O^fyF(kEReLq?s_L_
zJ$+PP=9#=LV`ap;jV9A<K=Veh%_Fv^E!UPgtaUvV8q|;04+;EvN4UC<^}JJU0I}Uo
ztcTSN5Q5hU!78ed+fIHm`q1!9l8=4wHJ^Lk7YwWryl36m>@kpq1X-aGg!U`mp;-WF
zGsa);St2LI^Lvlp&zN$YEEJDuH%t!0&`<Ft`cd_|&Zcd!d9Xr59tE}zPH*ca`ci!{
zwC*Y!y*SrnB793&*EobA?6!3=x3+V(NttEI_)@xYk8IZFa#IPczReV%;~0OcXPlms
zG(2ryGBU3kgXWDQ#~Uhc_?T&Zf*+bIuU(*2FxEzDel1omSXLwKvhy!KqTmmGjEsPx
z5LEPTd0drxcQT(Vl)-}9cW+oQykqRM4=j#r%`6yob?*w)!D^94fas!!(nk_dRf|g-
z${)6GDs48_l$sk=rRr{1y}iH=l1#u>IC))}9#Zf{N~@WV&c{7Sg|aR+SrTuN;vjK5
zBsR#eu~y-;SU)evI~Lb)NR5&%S-!@k)bnT`QwDCSgn&ftw7JW^dF^j^ER0_%O3~|!
zq_}z0dTYcsO+*>K#7ut$<NH2&_3dzK;G`io*5*34iJgjv>A~=6=_KPic(X8b`P(Kf
z{;ox``YFR>O;dE*G#7H~ypwze*IU{IFlFUSldL2%vsxRrIB{v4Hx!mcyEZg*QN)=P
z>(QX6WS^$(5U?<HC5dXJ`%Xzryx;7Rn8_3 at 53XYio+ThmFN8C6WIV&nKmdn!%2xQ)
z2yNt&te}sVJ{g3`fi-BtM9!Hc%{1X9t7E79?d5x%uXaM6${KRAn2B+a^9_nhRCPHt
z10LsxCmN;zf^6{laN{&I;WoqY&a5lK#8g5@?Y!UjQjN;k$s6m$T!Ex*Oc86}Ub>)Y
z5f|<gneU6f4e_12qpsNBi<kY4_~T^UX;0F%+LL>s2^gq=P`or(zo|KdSoH9xJ#Up7
z^+SU#Z6!*JTUrWvLJ+((mxJvfs9|U58d$b!&Mjn!1U+GN0b>e^1eH6qEdF3!*S at bk
zYmCR_SbjV{m#H%32V;59*h=E at HF0y2PddC}tbzYYo?5Lnvo^O;(^lDANJ5!1)8LIj
zPTy(MOKmtB3zTmLcGBU^4m<NB5CFEu-4zs5V|e|BZbq|J*$xRINTD?pTxLNcJ`y#X
zU!v&9Ftovf8~vv-Jf8rT%%!<>caZkE8Mu3r0k6{sNEv++aVBVVZiv24qA$0ZkEYU*
z_$mszD5%T5>DGt+qSMa{yI&bEGN<oJE|GA+tvC<G*P)RQ_;r~4+m<&5QLs_FsqT0p
z)O`k&o^?SwDSLMGhelj?XJ%SK3tH)}AUz%?-skFuVW&fDX)BtW<(I=>8{Z_-E0i7^
zW5gNS?z}KlfWNP7zqTX<Z304h0wb=_<|+E8jV?S>`I3ENR`b=&KJ&E+#AJ5f<X`eq
zp3AthVjX{}r(M+`m}Fbs$qDk25M;9#8{+Y_KP=6UlWgw-ZRf1?h}SMg!NP1}=v3(N
z+6}eY+B>+ID%uT8s=ennJdAr0NSU^+javf=O>ytU-#8S^rrWAQboA;)3kwEb+@<(X
zkld1-jqa~eT;>kFe*Np1h at 9c#v3_F~lj-;*0Pv1j^n7U=YX#y5Ou^AbSmrCs=CbY!
zON2KhNn|UOiuG7xHVb002w;7dDJf|)|5}g*b(Wo8qTa5{I(ODVIczqgi^0L9U@)7!
z_?9gM2iwHGL|(ec<Wnd$?+mqW6OrtxM^41uJz0|1PL1?3r9Ew_)=je7l70nL`iRRJ
z1M at 8ercp9_+aWbo=U{Oom8w{MLAfn-`a4X$h-Vj=ShLV+ax=Y1?iGoUDcx&X>w}3-
zUX$k#AwHr8&x9us4im*RX_QK*9u6u4nYmDE$Z0+<XJa8Pu at S8v+1W_sAZ8nvcFc`y
zgm(|GCI-*O7}Y(G-a~}LHzt<b=8!_;RQftqTwbeQp#iAp<D=8l)#?KABPDT_70svc
z`6&m{D at u_LtC5**x1_WY8 at s3Nlm)MZ`GCsdbeF35&RxyOBssi2 at GzBUmG%oFDcjch
z5bon<lyToca0(r4EfqATS+&dS>q}-yx+^FQB{x}O#$ICcmzjxDEUo(@_yUiKH?4k_
zCXYJ4-0790K;cWyk21HEe=W54nqFgaQOX at 3aGfLw_kn?w$YV1VzCeqpSq<(OZL-Vf
zT*pqchDlPErP>SJCpL`=?FODuh2qKxZ5dXNGNT}d$1_HR9`i7wbes@#Ab~r<Bm{~a
z)_vT0 at iGLHS>kQ2ztg&k?PfX87Pg9JMqbmK9;u;r at y-_(ZTu~SR`GP9No#M4aM4ys
z-DdJF0PHm%^S+{}C{BZsh!nQRWZiK$l5wEwgOkS=W{KIvqci1P1W~s*bm{B6{JFT7
z<CoKY=qs=xZ)M{lpUV_Q76+`=Oc<FP1&ss<s<OpuF?}J1!ZKWfJx3Bz#G$o8YNlgw
zSb6v`{`$8Q{R<H&mh_{wVLd`)Bg;pb!N$S}HKM?LS-M3TzUZN;3VgX2KA_^Z6{8@<
zLl(qXCA6HP$SXWm-B7&EKhj-2``m0XMS4{h*Kk}BMN`imNRpB-?qQ+eJls-E;HI27
z#jh8K22P1{s;s8V7E4H{5xR5}Ww(a)W at 4_-V?YZ{)R;(g7A1Sj=P<J#{)w5R$pry}
z#8CqgO8j`Nbvo){?=jH_c=9*ba>Mxfk_JQp2au?H7O9Ks^R8I}0jbm9 at V$ezUn}hr
zP$fl_Fc(6+4W-lSKsg5&?kio=^xRG*kJzY!aQ#ldCPO>?H;h{K#5Ik2+8`u2c%0Xy
ztJz+d&K&u{Iwi#!d$Z}om12DxdorVJyHXH?sI9T-{<37U<;2hxt~?uam(aB7fzmd8
zF?+oU2*3S=WY>AKr<YY!vi_4nlAu(Ux6TZutw`}O8VvbFoJvkdt8t_c77 at 1kLIQv6
zIZ^I7z{QlQyAq|!^dXJ$M^Rd*jw55L_fSI%%xL?M)nMR9QvIqLjp^270`!NGtIRE@
zo}-Ez;|RcP^!yIquF}{jBPBqEKp*V>HCsvs(ne&So$@w4)>;ZY(sL)M at D1cUDJ}%)
z`f-&rZ(`_Lj840o_&9E5_rMLpR}QI(D8P2IE_H-mwG#2`1ApCkl3Y?rL_*4O9$l+V
z2%S=3dgXRe^(7!^yNBIs-I!#;+t?8>dq`|)ha<TSq<#qz3I1fPIoA$(`a?Zs?I<Qd
z1XO)Jns}P|cu2ChwsY57Qt at q!tegZAV0PpvgHiuxHA4A254}xOw=xUzIm$<qf~C`B
z<n_4(L8OrzO`^#3(N^VlK7Gi);+&u~oDn$NdFdI;i#TXohvFH0;t9HxD`{6yMo0>{
z5US{WeK0T0<`(0wv+QTYpxhF~gAE%-9WiF$txiW~)Fhg(WWTWlO6f-f%q#>s$|A$b
zX-F&P&&3gFb_#ojJ++h;>p%wX>F(+k$2thX>VLa*6 at z+hA0=%-(ArT=!GWEhbx!Dt
zpNYm;4-0*W<Cpx#%+)H^3g|10&#1m}n~GI^EFFxZwe7|(>pr$ZR9%@p5R&tlA}>kA
z6%JItKXkI6ButW)+(HOTv@(zqZ at y$^Oo`w2P}m2gUOjXNZe&olPhq91^=CFPDWIX+
zA&jGZ{>*kMauLGp4N9up<U%9Wznz#J9~Wtu_S=xozGIIEQE66q&xbtGmrFJ61ILU+
zuTmLHWbs9wC}-`i3WBp=S?lx2-t~PLBe{{AKK)wdn;5Bzg~rc1l2Di6Y<?|zPjm)r
z5A<Ji4Yl{)GHFM{+9uZ&q+0w0g5oN*OP2XrInw4ErxC5KciPoFVUKzs9&QspvF?*+
zj(CIli{4P=t%Ealp->=LC;biP$EbS#L<POQLTGuXyf=8ZDO%R+r88W}RT*Ai4A?(j
zBJ?StI6pch)WrAUp$(pLL+|sS)#<^#X!wGM+%NHI6(d4Eql}Px8D&~~(@CG0oe$H!
zn_ljJ?lT&p7=L<8gVb$|fUF%1k$o54EY$HS1rbU=t1YWMDte3s7*?y8$(CHEkbaD_
zF|O~-7M-0^d=uB|e;(5^6jZ|wK4ez)yRo3UIG04z at IMXa(h at A)yhfRz$@>KE!N3Uj
zaEGGx=t#2$LF*sIr1bo at b!B{z?8g*Wo{jAacPjzch)1?Mguvb6qIT~sGBdI}*bDxj
zQ1Ya0s?C?ujaAS3_r|C|=ri#7itQVzyRzvOuC>+FRZo at s-}A0 at d6#bFNTtMUl$tET
zOQKYG<>h?Ly_`Eku^^+CLoMw`{7?M)e2Lm>My`2wm8GtG#c9EI(ep0*?wb9KNP{7(
zdXH+ at 9a{X=2y*Tg<_SuRm7aAy$W$Kx8>c{GeKVn4=bMKu?n=PimG|ZNI`aH;&y at Rl
zuIL|Ip2nBD3-`?{Hy)euHaxpX4`yRCBs+Sz>;#BAW%69z{&hhO5Ht(n55O_;Cf4%_
zwoHvI&Z97{MJAMMRtea{tv;{CcjI_l$pVIOE7NvH+iZbA1)Ok)%w7F(eo#T7uGyEs
z%wvh_in0d4%-v`K3Gka7U13eV1?JFK(XBhlW?!`);G1n_OX&3X3pFcdeZ6-+%?d^+
zl~Jf?1iMcz9=Il)#AY>BgQG*tA86+?sdN8q{Aw#MO}k`k$JlZ*lk<elX9JO}55<`U
z$q at 0K(O8ZoZ`}W`sHjZ7Yjo*mM))*;l_%2X6p8JpH_6o5J#BgKq9EmD?Mj}N08VGH
zv at 0r?HjaKG)8qBAOP!_E{E^fgDGSa{UHpn9u+3RQlcQAGw<~Dup1I at _=i!X~UAu5g
zB$}>-YYwlyi0$e4(ap7vj$o9fAXRu_D+WU79*O at YQ~w*jkBTGv6lY*veW=_<0a!YC
z>NjXuRa#$&Ck_^J?-jV7O%W;!x6XEI(p2gcRz~-pQE?vKrLL!*Tj?UBEB3dtZ<<!E
zVyaQYCq8YP_Wb0h60x<PSvzwVWj<@W^kC>m>;pTV`>=ZMEj=mp2mu&RFcmOgGI9i0
zO!-LC$g9`bTEfHB!#b44h#{}FSgM65)Nhf%D!osoz=vukRl-$$`YWrMaIJ*zd&bnz
z at c5-EfuQ>Cjf`E$sJ;p4<dBiGK$b46mQSLg91TqFOCGS-6#Bmss|L8JelWJdl<T&W
zK+I%7qn9^3a3!2AimPwlq<Xq;VtoR*GY at Pk;4Y!`3BMFtj+x^k2frdj$-yc(Lb&rz
zO(1Z9000v}?7#W&YvOe!C)B9ktB>RmVg9OqU1Gw1EyA><xPUW9yXbc+*$YKe7tkc^
zG%XQ~0}wOJ6r5&0<u_}lccJ%$VTnl&2+d&fs2k=q1m9X^fded}NB{?#haqBXMr&tw
zN;036A(TK(BJQ_LE9qYbNVaO3F?9{`$9}6XTZW|N4dffGL{2sLG$?i+3a?vyhJnhD
zxN;V_`CL>8X}6fF14A!jIp1ZFBALFGHWwa&*c3>Bmmg}-VG(`Lx9gzRIA4 at J*&+i<
z`&7e}Ha+gwy64ZGFWK^a at aDI4c8xL{EFl0hm*6%iwP28I7QQ{8q|x64Q6Lni+3$k5
zlx|q|giOiGp!SE5T$vk@{}{!@C!oRP=j%bJa0?go$!~+IiEu(yt7w$lgGfX(Eh at WM
z&*J%msOP*X;knBtx?YUU9j2uG@@W28u&In=Guf9+m at _H8u?l#HxH+O(UNwreNrZkh
zTcTVzAkep9oj(&n278OFH4WzGZzG%2qU0=v=SrfaIqHGeS}|gP`L}k38PlXhm0u?!
z at SA>Rg*5aa%thrC2R>hSLDJWCQ)Wz<{qY7h3(Eqk4>{GZQL`QrK72q3=9E;k0y?yJ
zQ{_c#Oo}<YaG at v->#MZ5Wr!l$RL2`6t){?B?dk%trs*)z^ERoqrA;e#RYBJ)DP})@
z34T$ceflBF?hTTHpLH)7j`BaAeUVCr<Vke)>EEfK{`)iQu|PV0FNVSRL=Y|T)$M4~
zRf9$8dm6qLdW|ZMCP9z7>z4?)lV$H_BpH?aK!4#XyWV)=4|;4$${)^eBpO4b=QjND
z3%|QEdyDhl;KpF&4+IlX&xeA7#kkRPTNxq*R;M#%UKoAy&8fH7gI9su!C#DxWoLYP
z3FGzSw!L|I7rY&&V6o~TxZ8M?$DNT0Y&e^TrC!1EVFxf4?YT=--}e^CN1*;(QowDa
zRu2(~<@DH3@(6fw6WM_-fF3Bdqv+x<aRn6J_>8=5R2AE*zQei)=1>PGK=Lv0ps;@L
zR*4|S5jPnS9)2|~70(mbjP*wem~rE2>q(+kg*q5{YboeSlW3kQVb-76RL@!^w-se=
zdBG*k9jR_Wcs|^mX}GS~E=mv|t at lq&nvoEut?q9?jLD6GgzQl&_4f5~v22kdhk-sH
zxN*#QI^Efab+3R9?Mly%Q5wiy9!lYP_iTEwV-)Ps<-$VyDeYfkIg-aTOX^V7FP(!A
zt?}lqJLK at L0Y_F`kIuXG@#L;)#7>3W77!=Tzr)-L{adm)2rtzbqB7<p at t|sca<!&Z
z%dVoM$u{gip32fF3LD+=;#l;e=W=*3zTWGWM&{&e1X%PyOJ0?0;McQlkeT~sAnvU<
z(0mt+E*BDK;Bik1QD5Tu)hu~CKX<(om_;jeXW|D2ydf24WiWh at l~D2MO6ZE7oPBEi
zY{C>+Rg~ypfr{AOPP049Y1w(#*ER$293f6s1k{Ck`!_g7kPfDZiH44^s;E&58`}c#
zV<Q(_0S(9i1QD-VJ?~muw|)b__0kP+eX4wI#juPD!c%6WQnL-n10sQ`C!`&&yG$cG
zMn?DniQE$1qPgP{q=?>uQ(XARH~>=TM!1$+v<d~aTm#2ir>&SVzR#O_;GZNiOG!|v
zf7OX1XQUYr3Gfk^yVSrXbNV_ukzox`?V$2R4OM01oL^)|k_k$1Cti&$BN?nXK0HbV
z&=lHyP^BZE3zUvdGFipmgLT$(eA(}mpH$1x>WXL49ljJC0V#z257D<W#%-A40^>BF
zKh`>osJa2sKq6>YEI*aYCLRzrg54=FA|2d3RsptN5<EJ-#<h=*97bZ8=PX!OLxN)G
zqIZt);fBo2T8Fl%046rY1Cyg0LHQbWx7W49>7T_uv9nz>|J>X3TYl5twMgwD5OLv3
zq>Y;=rKFq)*taM?zc|g;+J&gNX*q6vUYe*x+bNn!I<V)Ut%|aLA(2^NYaJK-NP4;<
z*UW6cIg}$Ve7$)gKbF&uzk(i;Pum+$Dr at V#s+^`iZ00ylmM+-BPSW_&esMdm2HKVS
zTrR!EpE~-t&Amm7we_zLPBsVoMV`#@v(B%JbZrx*ms-$lBcYuKDF}Z6r*eLj*foGv
zIej2i5g%le`{Tz`i8)v~G)bgh&A`zCVzOjoE(ek=Rf+e`?|Fjr=r<rOod>Tk|J$QK
z35+P+iH`4Ktv|TS>PH+gn)VoV_#bCIM~pIBRgiTq;mGrU_NuiHY1<+_<nc<W5VteX
z$ITpkMG<kc@`QZpp8}qO{`JhRW7lb1_2>uCBrNT at 5tiMy8j=0_ at +{Q~RI6_HHDm26
z>8a<~opBI^2r+Cy87SX9%2%vo(Y@<6<(exl*<`J3t`Aa?!9kccY+IBOddSkgkboFA
zQEA<y>o2^<5BH`|qO$iRPm(CZQ*iBmIBl)Z8SH|smVg&!>++GLzgyvHuSW0p^*a4?
z+1{)b*YAe~yiJ9e<MOEzg)P$q;TFF=gm`p1;UQ+n*H&=Crd1#-M^*>=EUOU-=)L>`
zu<Kn&^a240M5|Z7jHP~Pdee at 44XZ${+UV6!VL|vC*B}<y;Ne!SKj`0<^82EQbzXf_
zhn|_NTJxTKXd2ygTbA@%&GfKh?WYAixS7%WV{^#da(2 at Ko17xjqEIw&Y^$)z0#S!6
zvGPWvEi%XiPN-Gm3|pgC8fjpV&=rSOejWC~Rg)hn>webJMh at GXs|Newz4|fSp1;GO
z!C9~T)-=liEY*Hk7CFh3HZO`(?3LTMe{Y^@rNwyj-V%G(SSwD(9r3;zmh8A(eSc&<
z;LMyBg at 7<hF2Y<ZJD*b%&|1A)?O{GniKR%Pn)inH&?GE9-#v%-(hc*9iI7=2z%#8c
zSsB=hk*DJ<m{c0r&NGR2Fh>dFJcV*V)D-&_>8kxa(M)H-FGJ%L_(f2M{d|B851sp(
zdkkI-4fNDMF4b*@r5;CpMqFVOi<}K5#%5zg5(}ss%B6p~7sapmGla8B!PnJ%fE{87
zB%iRXbt<RD0Y(FK7$D7Ng&}{~AAj=r$`g^CSfkNwKPwrCNzeJKAI!Z-1WsJIeqIMp
zKAjaGpPbBFhtBEk<`L1W5FYk8*%$3g2CulnD4>s#H`dOl8#yNl;FXqD?rxuGo%OUq
z4TH&BNMFVx;&#m$UAoay-Bj(fvxS-q>x{frQz3{(g at v=XJ_BBzV<zmu8^$pT(TEMZ
zt=Jq8l_0sb&@S|N5W(a=ntmTeV!s8MCWLN9Q=ke~U)r=f5xBA-1Phn)tp<H%;531)
zc(Grw2aG?5H4_8?ix5ge&RF|-{;rIaurldPHX1#wZfkTqn0zUn)*02rDBwcbVhV`J
zN^Yrk&%d>sT9BcyA*lG-)kshy)w|lPaWmqS=_AM_USIQF(BOLSr7MIVe8770yfpl=
zo<PW#U#hIzKir~vpWK37uU`kFOuqjf!?{_*v9JGzNaBFEgv!~Ac6+*J4waw;O0xtm
z3tqfubGl==nckDWS*Tx;o;W|CC+pGOC$FnuL@`GoU_ at XCLrHbqLD>c`B=C4=eSfSS
zU`jYwL)9MKr2*Bba5aCj$bZQlODE>N_oIP;VoAaN8Zd?5y^!FshaSdp$2ygM{FEQ_
ztF1zG96f_R^&s}8piZD*nb$tHfjs*QMSXR&6BW{@Z{aZj><Ire1i67;ymMM=hUGYp
z-u{<pSC?9^ZHUt9Cj6|uH{+dd=}d<k{E8;d;31wb_OiBsShRH&mENfx&F$zo>T6R-
zQFP2W?M7oHw5@~)S|(kS8G|LpvfQ$4jbv)M5??!B90vk{<807VyTmz^odc8~aq+0h
zQ&N`$MvfE at Lee2&K_c?Kvf6s?($||Gk$oa2h4>>fJLcZ0RVP~ak~lJHCDKt?S3k)M
z^0NvLm+XN_Jqz(vPDJNyMi-GtPg|NSn?3)-2G^+?tf at A7#VyZuIYp`2)WoHa0VfDy
zr=uv)Fazg!pl9Lv8dOw+eu7 at sT|w4vhRBx?FGOyYl;(>9wxJ9Kyy41%W{}&r0UaC%
z^^&S7YC_yc^|3hPc9Cfy$fg_)*N- at fOtSy;oWvWc`pIUuYD*s{HT+0cGz)_Zl2aHH
z^$bT;+MP{IxqN&~TJoCeh~R5Zd|$dzi~!Js$7<sC@;A~+Xwd(?K8DG28ly?jGYy+j
zmXa}CSH$l%x;;(76_|8lULZOH#CZja%~6irv&rs>?9E54)Q47;qcdYj at BeW_S(Zus
z00XgCx+*)u$w?>MHG}nPS`lV@#X&L|2(59xk~cQ8r%kK=0R~yg%^-V)K$+LJYoQmb
zx?bB>ZWUcQMg)20{O|z11TN<2^INVRq3UMD<HEDr=KJ4=_SD4)wK$2~d7YO>Zyni3
zXeuh<#nErwuLtE}c2OOhZ{r at 1%@274#?PNt3P^g%Gk+eB#l+3k_-Ar9k|0HbRJFo&
z+mL at CBW1jM_;?knUuDuhhxnp`>PKY<YI8O<<^650MAn}}rvauke_j_owki^N!QSL4
zb5-7~X7T<erptCOvCCdoG0l}MX-#tQ1!aFG5^awyQCd~ybZHXz^D|8u&kwOR^Vy<;
z)nYfj)pidoqzI`>5$wCAdhI1^!G6T+<Zj~EKA&wG%LC!%gnvG9qsI}+1X)Eo_vie3
zGl|8h7cM9CKD^T|3J5{S_ at 6zn&5gpb<4o)jGGtN`7}h!r78af7h&lT`=- at -c!!|#(
zb|^i#RE%cXYPpEg5T)hxejFvJe^}O>H{3|<z~oTc9*%EpyQopOWDoy66o2r)HDvw*
zo*R1=7oaDF04d9o4RAC`5HEE+x6|~gUZ1jx7b{(6M^!B<!VS&Un45>zJkTqJ5m3_L
z##t*to$sYO|8c3MTQ0ri>R$PE-0T`X&{7C~^u`~=@B8 at oqV)ZUS6b~Z%kb{HC!~rc
z&-2D&nXzI+)a=k~7b~69H#>od)!CMk>cZWN5Z8>l at vm2;MU(MYwdhj6`tO6z-a5CI
zxgpwCWtq`pR$1;A0gX?UBfN)7!#CHW44_Q&13+HTR6-ow3r6Z{;smyy4BogsvrtVp
z#lKaD@|_8=#K5&s$bk=GB){&G%#&S*heE^Cjd2tBiMuEe2Yj|$gEyIf*RgN>sj|C0
z&m<Pg#YAsMJF(ebO3df${U+VVE|tch#p&V2cM$qCM7lCtz^6emU9UW&va&*>zsB0#
zu_hWLaPg=+lJ-+0%}Mj5H5U}zE?h7_Yapbm-XY}4LkJyGIiW0#QB at eILLC)d;{)1d
z0hrZ}HB%Uh;4ZBbxoIr9a1!~C4z-6+9ie1eR}lC-gvFK6&+|D1U}z at WHfc4m!vvVA
zYHLyf+l9$kL4+diIdkFY7Zn*6gizhtvI7>yfQta!Fm?{~uq>~c)TiaUGq$chvsCoc
z7?Z11j*rwx1MT{ki9oah9E&;E)UA#_flq7Mx15zje{o5Y1~Dv%v{CnbK_?_r{KPm}
zem(ot?sNioisfRq{TWN<Kz$lJo8Y+<OiAR8qIIDrdGLf~h1!WuvyMr2A56vUdE~^?
zW at w@!vT;2UdGJ56fZfUC0&SoK@;h at uMmn{mqwA4LQ)NyuSL>hZktt<F2TQp at F=(eJ
zE))-caY6k8<KdJby0R~|=X+_H^id4emuN<<H`#7L=v4hL8VuME7`oD8+|7cx4e^x%
zRs235c)dUC at c!;r4yvQQr1ZFhFvBZs=Ka$;sENQ%UprfYBD^1Xa3oe(>E>2{w^2d`
zr){3($U5j>M&W9NccZus7BMo;w2g~i-7#UW)wYdM)<CT)l#2yk{}Be`^=-67=@RhM
z!ha3a#2gypRg3>p59lWiaskIGkpNe;uc2gH*Y|3py$(@t>$m%d5=*MqKjnQx%KL3&
z!b4$lHKbcd3KP8dkRNP}?q5;>j#&85-=U7HIk%b<TLH_8le^IX%xrM8R4`3i0Xs^i
zZwT<{|NnZx3roZ(4*YvRhQEw*!X=cpA93Lr?E+_GI{t-%!J2*&+ebvr9U8vjR}7^V
z%#tFSh!gL*Z_<x*#p!dU8*^i!E+4RUqN|JPN*E*2!-`GRS6$!u{SzhIVjOEHQ*{_o
zDGC7DSu9gaNQphh?%0U`pLU{3=Y)UjkUfoOUXIubM)6%}U`VJEWQ%fSJ}#(5^^ZOV
zbXwA738RY?8KhmY@=hl)ju-xdB}Q3hpbk8+0oNF;i at MCZ-qKBe(v<_<{OHaFto(u;
zL?dbz*X?||;wQXT<CY#auitxZoHsy6VF0?S#s`LpLBsSDFu9ogDw$Vp`(xmyn!Awo
zb$Uc4TqZ-7>VK*aSbJDyu0-T>&G-H6$0A8dw&Gq3{9yXpdR2NgdRqE#O8X3e5t`$0
z)%vwK(4K0W`64xNWvR7Moxlx@@L;rEo-@<zSY<na7*c_hVV^!T2((uoGYj*mG>`*e
zQ0V~_D3*dx3pJvu$w~+mQr3Td&@yvlk|Q*4&lo(3*O?J_1u(E5pIQmnaP3kpt;r4@
znp6T_FfP|QCi+b62dj~VM~@c5Oq#$bve2aS3|2p=-4|0v2PS|3UqZdFtgpA)C~!c-
zU=B01VI at uUuY`U9zHCeq05f at TqAu`{U)BLT#Ef^Bt at U5q6g5fL&yry<@@xiuGU~CZ
zx<8>}QmKKcDiswA&Ya3K1o<N>K|oRb9y8t|VwK%C$p?RbEcmFb8Uh4ltkV!~BX+Bz
zh4aoIJbd=7Fcz2))zq0ho%9zi3?+md6s&&Zp+sWtfZ}Ex{Uu*FN=d5v7O;Mn=fw-n
zuy7rKMGSW2ZT7yr%wWQ{ZosDM*Q(AMmFZFFAm5U6m4m^mskUl!XCz#OcgrBRFsq!^
zzEpimp{~eEEZAhVxnTxr<LRAY!4O}=PaL at gr^e-_&%(l_8YqQ!Mm at V(fltX0TLL-1
z0BcVa5`sl{6$i`mbVYMvWQe5Fz_nC)5x9Pv#roD%Mh`YL>Z1ZgNl)sIcViG-1c}_h
z22;(e<UyEv1iHh9Ql?lP<GF;lcygb|W=fSKbEclSgEE)sKzCRiFqQo*TfKR+x%tQi
zJ14gW5R{rHukL(T01 at kdFS1YR5hMU0_yUAsV-^-j6Q6CA&!>i$GT6-J;uXbu;`LAj
zP77D9tB$&R#jx6K;DT>5`wotXrV38w`2PC~n=_osF~3utBfQ+&dQ|qHp>1TBb2`oM
zJZ)hPoAc}6T+DD+fkR~DsFB8`PAb#-!YOJj0gDaF66k|^gj9ZV1uThQ^a;2gl@!&v
zf;!jN=ge}!3-q_WQ-(<bQ~%gm#>l4CE2%zrTJz7n$2FhGH-3SI(1wR_4IO#YIPCUi
zO@<m at bj>sWgzy8`4>GQQ#iaaz8l5)$aAg%$IE&Wn=;>TV^}W!VXAQJ6Zwn4Ht*XEn
zvBnWo9}XJU00e>siB91TX)vy-C?8L%CaF&r5D;Qv&I%c%wqKGn<vo>?`(t0EMKKwv
z>X??xTO=108C;!xw>%4VN`-iv{`4Ey*^dC?;H(8kG{dd}cGbgX9fpAU+zl4?2=eAs
zT}NOl_CsYnKXIb!K3H|+o~tpx;{N(_=~OEwG;r at gKLaG5Za8A0;n{iZyix#e2Ldf9
z5j#&~v05+b=-79}jc|mDe-9i1S_hah&+LX+P*+5=Ae+lDjMw$+R~K*KQc#x?^}#C&
z#odh!tw17xQ5p?15Tf~*!x%pLjE~f3qQ9b<-_8cwtzn30k|r<%k01^aqqYlld4&;7
zF7*tK^x9!(Fa*pN%wcB|lthw=rNPeYfe;)KNUwQG=1=WmW)(6ksza<LJ#1?3U)SH<
ze4SS*g?qf6nIYy9cb&I7T2??kIgfD-pnxA-fnMuVG)_AzB!4I^3tdyR6r(_GFF96>
zq+v at g*DlnP-g_jh`C%Q5#OzN8Fyzk=$=MQq^TTOu31$uRS~LS`4m at E*GvvUp*pGcW
z-dPNYA|VE4V12~V0l4tZK|e8tuL$@bpUqX~Kf|6dg~JzjM~)V?2?koT($;#{+S=1{
zA?Ns3Uq9MMXKH_(9iXoH2|M1>+N at JuFz7tFbKM0(O}Jc4c3ls#Ay410x~ftDb;&vk
zCe-f_3EYma&okInY#iN820w8DvZck3a at JqB`Q-}VCWmEJMd%ua4eKG9k#2kZ$X;)V
z(T4N~LxQ%G97mM80=AU%-6{Ek<^;fd8g*ZzHf?IBNO>8GR%K)49_b)MqfOOh4N&Ku
ziO!OTb7EcTY!K=xZS7(dPN`W^7X+g~z_-s7?LL1Cz;lDn&OZoLfYv|swq3W%hP->M
z%biB8Ici*&4xSOs_?-13blscE>HLfCy&htI?sCftC$Xh3BN~|CZCgBdI9y<bM6~3|
z5tkNmEX%)~8Aa1KT9meP4~n-o3_!Lwt-_HuybR1DloHpH7b2cwp*?%H^fwy3yzEpR
z0wAOXI3P!$U1A6caf_7DZc6+DP15`<L;2l6)PQf)P8=i3Fk~q?e3`U2Ja{Q3DvIIX
z>l<lBTB!?W8@%1)7TPeHk&?c&h~q5YI0c|<(bDvk$Y_S|=^xx*J#hK2>PEt842n(6
zO8++fj(bhQ2##-HT>dkdla)vWKO2EfY43+9H&oSbE*h0m&etdfLx3|dQQ{~U4vYf;
z56D7*QVCtYDG>lQN?e~Snd0G0&wny}@_gL&5Q#TLAVZiX1PFM8rLMHMWGwPq<VB{+
z%W7bR)X&><h>0spx8^MU_f3XiI$pdKC9pX=qH}L%4riM{dhvoES*{Xmz$M;q#$t0)
zXPn=~3(-m(eu2(yvw8`#gTf+U+w7ZTD6^sCc~Qj%)I?Y^M!N>Z*dL at Yq?^mrSO%!Q
z<}}MjM~}q<5?^3xx5U}Klooa~KDHaC=DML22jFp-UqOP#5Dp=s&8*Fjt};ZO+%sgr
zsG2oaR|np_pGj1U(6L_ounJ6_mp}|<6sn|wfHNusHaeRPP`d1Fv<2P4erl`3^wiJ?
z7=W82bn^Cvc52qWD at 0wP1H;BFj2x+)V*zm-3Ab1T5TZ-m{<Qu5*G3LNI&}fANAdmm
z_=H6Ffd?MzYMxyfmII(nU*|Wo^nQ5YEPaTVHI_S7(Xjuk0GW}q+fJBXMYxmXG5<QH
zx52`)C|<wVF~{F#8$1qn?&aQ at XN7iUrK%rCKe*ua#;(=qvuF|wh7|tAK_MZ&3TsTA
zp;JZ)bLc{_4&Hl2ejR=SHkc6 at K|MYi$8$%(Ep!PUuSgy`{)li4u)+p1sa1mJRLTx1
zk-}2r*$9uoX=iX#paZJ_9PK33KWil7&Ip|krYwq?Z%Qw)8dCWJG++CIlOf1uWSO4o
zge5<1Hz>;A6~*(T at KLuCTuA|QW)LDG)#)j*-arXL{Tk at q?&XnrJ;69c%=t+7m;Qt7
zJ7 at Yb82gtP_DdHGD{M}oZ1TD&U^%{2zMGq~4=vKFcB;{X)0bWhMY4%muw6P!ksb~i
z$PS&oeh=@i;*^wLm5mrh_Eg2fBWWS21Q8|*3qx#Wq at UH_sBc_Gif)BToz4@$VqiB7
zc3(E?UI5P(Y$^jn^k-=0S53m?Ih#EQ8_p__Xs&gAMEXHZC(;24D_W3+)Zc73lJNXP
z(NZ9rV(Zj!LK?t?BEIOzv=$+PNAa*iq<`m<1uL?@9 at Y*Y3^OE&_-_)N*yW`^K5@)i
zdatE4)3qnF)mhKL(8+8^ziGQcp^b3`tGa7&Rta1wN_XF1KZTP9R3Jc6uU!bn7q$*1
z@{U~wljXbg_C9o=Uyuho0}ccX_f+Ij2H)Kb77^MZI@%x*uz=7Px7cs_3*)!7_g%(+
z+~l9Z&<FE><M+Dl<o}j`4vl#xVItuG&SpxUVRUB#3s_SzqzqH|!Y|`QYfz|xAk%<-
z+S6)5^0s`(oIG}DpZuFmzF3yu7R%z6D~r~fVtEW~%&Q|2B41A#swogX78TC$%WnY%
zl4Lo`mQ6rIBoS at c7G_+FkuZwIu;b|ME7(`y3=7SVmLeYlDOV^4Fm9O2BO;;ehr at Qo
z$Poyoz45<3#P04bl}E=b*M#jI?(QN+p-(G7DiS|Z)HuQWJ45O?0MtU^@UW&AFf$xf
z%F*4-wbT{Qz742NP=5XI*iNloWl=Rk4b{ssj>*y!MV;Rq9u~MjBO{B>EI3OyZ{Bg6
zHzlt(75(pPKY&IgNyRjaSq$n;t&h(Go-a^uYL%+RPpqxSVFj8LXlIzbJ9p}*-e at +I
z95lEnJD5dA3bPK%-U4V&L@{?`l7fV}E?Iw^<zU?C;%A0QD+xH$WrT!^)EHqO$XlVX
zTKDu1M}k(dF{1(LMM%&I(O0*Y9|VRZ%U{^Dj(`s-nN%oDO9J;k-xke#Wy&39bFHo{
zgzrhC#KgF`fzmY4EwK+WAcvbFoKbCT($~YVHzcB|N2?h0`!0!ov|nQp at b<n^xtnIz
zYHdW)JW#R4M!+?f!0_wV%L&z%8up-Dj#eaD!xngmL!pNJ5$-a at Jfi;P?HFvO5{dJ$
z9gBPdfA%vNg#10@|9FEKtq9l8Z}OkoRf^kB>=O2 at uP=AgYHCu1fdxJ!Kx#B>K{UfY
z%4JCV>q9*T;O$(-o at D@(nz5FB`%H`bk;{Vtpj7h39q||j^#mvTHA3#pnI7|+jT0O8
zsR~@l7O+kG3#tTVb*U2PCk2R4EuuhK#Q_Qw<Wx3r6v^GW0fvqTru<^;sYHW}Qjecr
zWl%c;s|>?c2CY!L0y``;j#&hJZ9G|bno$7&V>+qQcOL#k{SuDgF>!?OxXqh|{hmK3
z7At`-e at 8DMo1_$kz#&&PfNO#jPKY{M71k77Q*i89vl|%5$<dn)JJOIHACHVe!VO%Z
z6-OvRMiUa^kvMk$n#Yf4 at Z}H?ZAi$?weaFhObCAhyCQ&*47RI9vn#G)*Jiow7v+<e
zsrBgwAAGxjrfnc_2y%+&F8lT-X9+EFa8HqT!atEa-_rt>B)T#vV<b-jl9l8_9;B6#
zU4sr{6;LdNQ>vXP=iUJITXFSzX6?vGe%vA?NV}P}Cfd?;xYh*6@$bJQoC#feLZI%?
z8EKM<0HAkW=;|6|%(RTqthq`g?$9z>^c?=<!;CXG7xv7|%<1kv_y{Eu)xR8=f*4*u
z8Z-3iV at sT)=#7}JuIRUXijRK&)Rb`eiX!r-cVmQ;(4*S;&K09-Hvl2wdASjh&6|kI
zov74EdG5)pL6`s2Bf5X~P8f$hmQrY?-1=5F_oZc#TCHFgL{MSwr>y5u`XagwG8t!2
z);(CE6k!8s)8Q1;G1<UU{c%v3%)D`G2bJQSqd0<&SHfSbkzHPMX}$_&f#22vkT#@0
zU}ACBMHRNN=Q8tP5-qVV4uQi@<Xn8rU2b&boS<>E`@#Zvd)?skTgG58Z(?;8RLSbq
z!Mxw at VoI8FtbwZ5GlV?`8$zRYf9`g+6vz>*c%?FV*|?;@@#J?7Dn?)2Wn`@v*00Zs
ze6Bm-v_WWW(cR5rXzszNrU$+GIA;aOZ>qzGlm)F53CFQSj2h#FInJj{jUmD^33cec
ze(VEme;*oOpyz{~#@Yc7FzNP04XNkc=pIIDqlT}~yt!;-gLP`9to^BLYnYn8VX5OJ
zZ_jYbwPqyKE6edyHI+P2cNjLwwIsgski*pEtM0HDumm7Oa0Stf<7Sml#;Z4T!Wq$w
zaPih;6=qAVTlPUl5-NqHvwcbSzE|*1{z7l7-KSlFVek)D!Slu at eeOP_W#$>$X5Jxz
z_~#^~p at cr*Y>j!iX2Y?Hx&+;R>^}HjonEefFbf@;Lrd{VWDerWfE+lWsIgN1#K9v;
zVGe^~6&kUIRl-6mowQ;b8pQL)BDa(&>@JIGCNHQK^|Sf~COFjp=GhW2WA(+DK095V
zP~lkBaJlpI9E5 at hsYl4Y`}QphUX>CmtL`id&OKo#<&QnTL&n~rv_Ip2($9nhg8<a|
z(2kfQ-Aq1(v)=-1S!`Fr=J(pLoFijjaxXi`hlxJbzJJAa%sOZl^yBT=79YOP^uK3t
znD_)ZUNKB`UCVz6H~q!A*1rDP3dgW-ORv at Y<uv*VckO69_9(FaCL!lt)sfOOTS|)>
z7m-iybyEWf95{{*9c!>+d{{l<E%cg;`VaIkuEFBZ>v<g#3E6;~6ArE_yAt#$TMGbt
z6dh)V&Oz*czq6nWrPwdL7R+;u3?CBvDpL$TNY;}i>OXL}-~@CfC1nd1{<!VvpFc;p
zFn!jhXt!Xs at FxUt_#f(Rd**hf?Sroa8-|C2dDnzMsYG<!6eh%iQpkg5g%*NjFy0Oc
zG&tq84(|X1s!XMJUL0bVQX+4Mh_r(A5g8K)LosIzOO+wOwFopv4rUZmU{^#RTWf!i
z!S+GgCMGd4WI5?wzCVv^l(BFtYq;=RR`s({i;x@(8kd at t3oP-@F2NY8$h2_X7LSUM
zv&1U!(HnZ&rwH^^zE2#WLycEAEc?&4z=*<Ah}%hm7-<EjokgeKBts9U(o&4DOZvcF
zyZx&l*Zs_Hlo$hP!!|oQnS~=Z5U&u7U;T!c#jv)ni(5vmsayH>!;WD6xv&4k0WDmu
zx^P;wXn6|2><bBGS3y?r0eQ${tD8}|V#gB{hx<%McLjk+&?~5MxVw2%^y+|3Y&`Q!
zMuOED<no^l1F}hUKn8Y9OtsEfE*`E$hK-D<&k8mRLZvy$JX8zkh!|@s2tGPIlV{td
z_lzzDF0!%EIo_5_fz8QOBuPx7NNXVrTk|=k2I0t35!Cgz9$q=X0>S`i*7W}Q{|MQe
z<a&9 at 4c{?)Twu`J`}JB(h!J&CeSMO!2;vZq?t=!crR=zm!`n9w`B5Px$3%IsG5HQi
zeRq);OE%^U14v7Y5PSymo)@9*AYS3U<egAyBAF2=m7sG<jZi2<ssxGkw15h at s$?$8
z9!ez$$PW)2svr-EMR*95L`Qpxl4M<7vKXpL>v36__PSeX0%<(}9-Q97_B}_%^n{s3
zG+>RNVl?+8pDe!V*IuFD>u at wG(BrKoOdTt)1SKeyYT}n8UpIdFyw~juX*Ib2s;p(>
zaQBY$ug*u3O&vi2e4kMO_88;*2vRS+N}k^*?YOkP%b1TA02Ln<0ArTt&^dmEr^_>B
zJ;#bRFS4>BXARB3IVcFPCT8A98NeYXG6!Bph)S)q5 at r?1;Y at j903kIsz_W;Of~`q;
z|NapkDl`<8dSt_fJ$1*%E?*uSIp&yiY($QEtZq+QrAC8%kMLcW{I2;9Mho~7kz7Hb
z07Blh!95ieiOXZ}t?|g$xUKP`-VN1|!NGvIJaMiUI%{!TTafpfQU$f!EB|<Q*d=`v
zUFraRQ at Om_SHFLCgP~{cdhg<I`78Yflh^g_J#L;SIy<?&b&r4(Cpxxon@@^nJbBNH
zM*FE#*Oknz_?_6pG)yra#;^8s)(K92;z)L!3r_ZczsA78==@^ZrCuzaVDHOXyyHz}
zcTv*g^8H%muu9)Ov at ZYHe55p^AP&(^U40{MnTb*O*T&9R5U2=!dn33u%ADlKE&~kb
zUr+n@*Rr<FR<;9rIo_L|ZB^T@*ZS}AzxCDG7nHG?q$HF!+*UY2B at 9}0$140|aOdlL
zOb%Em$|ODILm!$#L%AxyUH^cM%|!vbIycSkR2+iQdT1_srU_Mw8G}~NrnZ<|nn1LA
zl0TRVN2pl7zGvTOe-u3msIOkz$|#;^2L#1Yd?QE;AFUFV2?_^}ic at S(<%DK>^1<ki
zk(C^k;*w35mDM7Yb?~X|!aE)4no;M at MOINe%m=q+U`rbz#z?s;yK*9DPd|Voxqg{6
zNU%!$xZp+i6~%Gc?D<fJG*u+C*WU;b{h0mzSzk=|{SHs9=P$38<8mc2qnu3!t%C}(
zDvhYQ=%L^jhuCtA{rx#h_La$PNE(~o2$f>>_>@$=2m>kSCy$Vf0oOnueJOyTmRZ=W
zuUOX<Z{4{bY(aU3WQHc1i$fFb4jh0(EdW<fwk+u&2eDI*>K3y#ndP{gN{l{)MePnL
zqSO+yupMK%7(t3HH2~EuKYIAEG at E9(dPKRvJa&o$N}3G;Y$-4%GVm=1x<C-uZE9JW
zVz(uP6IlxuxyGXa&KIzm%yVEKLVX?5uCdOA-z=F- at V5Hp!I$6uLHJ5q*fbp0Pnz%K
z=`T&(5&y-ip|15+TLM~~Ghf0*@UoW;T-}oio0j!AOV4Qfm&59F6FKFE<@5zl at IN*L
zXqaJ8 at Ta|t7t_7&bUI*yDa3*Fi;DqrxB|+yQbHdYR%%E~PeVk+U at G?PX>X5tzy>=4
zB26ve-U6DksvRrkZz(^I%_<Jw><BzC3$$UEw}zm9SAd5*w!`S*olxFY`HLqy%I<^}
z!}<b5(R`;|uRsZ}MajrJrhQ+B#iNlpE?A=wIeS+z>~dH~nRvp#Jc&Od%tYjT+l(Bl
zTD{mjrsptutf at R=Q&SkTWhXbWyLT#PrY%D{-B#T~{0ve4^y`d19)@{q*iHY#_46mM
z^u245f^|GBwwLfjs at G6LnARBzOC5;rEGbP?+E}J?Q;e|{5wGDJ%-`Wn8E;q at bChAF
zozm2Pp+JFG8Vr?rhy(u;LnxE|f)j at FGx<t}Ua_!d&6!93XfcqaCxaCTYD`4v`ft2J
zLXcdh#CFlYl2r)2gJUiB+iKhyNe~+a#bWYbVDEtJ^I02A+xBB?mqv!^CQy^Q96U*(
zI%Kbx_MX;RRH{L1i!<b)3F!OM;r$9;_^@RdCB~+Q8m^#3xG$KvAIM6u+dR2dL9(@N
zZkPV^d&s5R`YrdzMs75PQAA)y11CHr)*zKOV%cc+B;bnjKr~cbFynPSw1)J#y$2~+
zmn;v|mxg)98+hRz+#4x>5Y_=XjAuxS85imERQw9V<WK*G8xN!+`S!LjI6O?5&1dU)
zG2y$Jm4+33m8+gS8WR+SO`{-vH<~kkzB0S;084Hc=L{1)hZa+uf?H0VY6*r1-`b{2
zta7AIk^Qc$<BzZQO+xvyMO@&A0?>htgis$2p9BQp-vF>t0NmTs7gy at Sytm+XLeB2L
zQf07MeX at n06)%K(Hr|Wq4!KhB?%V at O@s%#)t6VCHw-eLcF)fHToL--2qWRMGBSky(
z9en2`-R^Knz#FN|5YI6;!kDM%6Sbp30C(?}6qmwX+)w$RPX?)ps#DW_jp~A(hu-~j
z(6(+TZlTjG{qdgG9H-4oW3@;l>!G61?GxoNiFq+xWL>;6Ql8GO+L>_XjBYt+^U<SC
z9Vv#oV2xX1X--jvF7W*JRcCz+kri;oJlW#^AN(I0p61 at +YnONRq|f|k_lMK at GGtRT
z@$td_c$o-d|E8BAoXJ14sR0RKLZ}a00`VM_WLa%Z!L}K8s1vtm0);45aS2way*NFd
z1Hgi)0~7#6fp`_+6lD?o1606<E1>zDD=LUGBO5o<(KO04sq|CI3Ix5`m;xeE!)UXn
z;-)6cW;35r29{*BnnBgkzqPl{D7tR%EwqXgvDzqyz(AnTkN%lHe0chwM}PuL6 at NdD
z*kwtpZTL{CXL`uvck9+Y_A18qvx>cV#DNQ9BPimh)5*w0QJ$Y`#9^nCKWz)H3az2^
zluw2uVU)F9q;koNLAydkuUE+zHaRXbo at d$Ets~3fk-EjG8cK=v{g;*GJM=(2INWO6
z%JZwT1nyvh1^0}KBEq?&z^rP{h`k5`p4Mb1`}}y_w9h37B4pYrI0R;6EwHxv;lkDt
z@<iEouUEN0wGX^T9y4qvr at IWM2A8H#Z`eRP_b0DyvD at Y4pbV~RZMr`=RlRDDo1S`m
zwS8KUeWbsAuQt=Usnt6=HrO^`zd9`#yZUxYaPf$J=hWbRt<uDk23p&%Hnr*cSK3;C
z98sknW#<t2nZP*0nifZ5(I{=Tx0L=urtq26jm14S`<U>SP<||uM1t4lz1eUzYx;9v
z_4WYgX*?>O_aH`)t^=W$Qwl9UswF~!$+s-z#y>paF5B2xLoaXZ>Se%Ad(R1w!RhKX
zBHNe1lG)x_2Iu0V{XG2RNHpu12*EQl6#YS&VHLa()P7f1wBm%)+rnc)<2hYcdbTUi
zF^?-!+xVU#FoyIB&I(P`@!l3h7=hYDTRFY!VB at mnk3Se&$WL>jz`*WDJD_Hh7wcmT
z2!YZW-7DQ|RbThX-vA`{6Zv^Jv2h$WBy=0?-zE{q^m at rHqoVU6f5^J#Ha9vTLh#ti
z=ppH4kNNfAw8;W?_}w8>4phk(r9AxKuJtx<>{{tGyJpXt+*fa^#G!@|;wW(J0CG4K
zMP4f!uvzwE02%H<H%o-9Ka!ua(qPdU9{yf(NxImWwzBsEe(2S2xcicS3SuMwD?>=-
zS`UQx^)CO&s-ZpY0175un-a;8+cuZbHux$jw{!Ex-+k8qvvLc58V8C$|L!o-qDe2n
zQ$0P#q*s72FU0u$=+PVrJs}{MLo*??ni>GWJ9zZycSf`(kL2!z5eB@)81zo-^VjN~
z6j!@e?7-=L|ATeu-4v;w&i8*fe at 5%iRRP5lz954K27|I6|3n)&6Ea!xOE at 7Dd(iM`
z?G-oi-2<`C<bTO9uDMjJI at ifm#wx|fkFq}f)*~CVH=q!&Tuqm_Rrz|PAy8LP+7n(W
z!)B}uLx4+^I46FSc~MS7wwzDef|MmUoG}lD+q8nK`7UPfr5WM>o6~9OdflRVVufG)
z*;i#f!0k^B*aCShx46=2eKP$(6w_l%&nf)fNc^oHm|3KR-jQJX+=(oM`MDAiru+w{
zkABHSlt1yt71Eb+>6Q49d<y2>?P9#JD_p)U3qr at 4_cbSgMOKj2S=e7VCr{xXZsCHr
zMxQ*X9gB}=OgZEBm50>oz)WG>mFCXIu5!}MD-uUaaxSfp1j)Vg&V=aSI=YeZEJ;Y{
z<pb{VqLI=aXe9J_Z#pIgA2OO3$msHwz${!#ZWzDE!vZYADM($a9HH$>43M*&cyJ6J
zZexI0ofLIsf>jCkiH)cXs5)nf*Moq@^eP_?IbadMlnqN8kN&y<29dcX$U$*@n`x!=
z75YM1WfSny($>}0ev;Zf0G?<&iBsI&VCCsf4S7 at nWo$ZI#{Aqo)c|fLh{b!EAqba;
zewrU#!2*QW(MbK9%dePq4zQ7?RGC(O<1bS}KmV}Yoy8JI1On(8G}SN~y^258j61&O
zA2;4}JWn)BAqH^}bVr*))=?Au7wzBLT0nULO1%1X+qS$8HMh1PL?0jLKCtd0_uDN(
z#dbsgZdsY7+}@*)b>%nvH)ni7ohROr(8bL4&;WEz9aY+ZovBe~-NJ*Wd{HDX$BX4j
zKsI?-=WUl?Fk65WC57=~v4M`3l?(tYz(dJ-Re+5E3*}&A>mwtfh9(Y$9oQkK1ywN)
z)OO|tfW;ILI(?EhI$>h<Rh0r&;#g3u at yd5v+OH~Bym*`0k?6@{GE_3)9~U4~9zbT*
zY>sFYmgsuif-Kvuh!RmK-FPg(`E!jSkDf&!7_!>ZI1}WyUTYv%e&)>@=hVkpO at BLl
zVrp2UP`o*->i|-=WXzZ at 3Z;3rTX8MjmMUw=I{@V{h_`y}+7TXVp8fw0OA~Gb?9RWb
z`|t-g){1xJ%GK?bsngwEM~=T-xa9~h<s!8p7A{vsJpyfAKQli at iMMw}h&wvPrFXB2
z at ot$^Hks7bA(7m_Hp(|@0y<!-;e~}^=;9t^ZCH7)%sC3jKvFoj0i5#K=3A&`Til#C
zt}<S at 4m8E`Jh`;bY|jf}9c5bS6Hrztm`;XPlW4e|=W!9Aq}8g`=D;IOb?DyATKeBB
z_nT4YmBQEXgxh=T7E`R~2STlo)U6S?!N{qW=wgM$t41q0b(<WWwmp&-yY+l^fQR1b
z*o4|qeWVDdTd5Tslv=wbs$`_AK2nVB{Io-a4;;!CQ%=|2Cg9I1g)hZsXM>>8yN>lT
zOu2_Xs0xl`-jeYjNA9Kv=^rI1_G{92I3?ekgSZ`LH^Y7 at Az;9*S1HVwLZxtHcgbAJ
zFoEXu(rM7e2~v{X`zKn7^T3Q$<-w^DWkB~zN#Rmb=EChfwj_n5oU^jBR&Ez+P9=I0
zM_5WZ0EjBQ2X$2FJdmmT%U at YvKAc{K-l0=mx^MXY!{H63mI~Dj8h;s&8BA7}@T<*J
zeR(xJ9(qvseFP+tK;rME(mm{$Xk$d%;NTbk5RVq)yp4-!Y7)!uNu^afU>_F}V5<Id
zScgGc_}~}Z(M4o<W~q>nHcff<Afls+M?MNF- at 2zk*f|0%QW4)#YfH!ZV#zx-UMxog
z+qEdZ--OatinD^Tt;cbQr$&Lkpvi%yk;1xik(ojv$k6V_JB^?m_x@@$)h!-|hw%P!
z&Kn4otDDn_fiU54o+J=!7b(J0tiCazU!>bvMtL+ZA`}Fsi&+?2gea5l;-U0Xj|yq)
zu>@>jKENu{1y!|aV3g+rFYfi at 4KFwETy(u2$9JF%g>Y56h at k)gIn^hH`wFtPi7SoD
zP0L~YB}9sTq1i6Ia7>L?V9>ru*ICD2f0?qYnN~n`mj_a){)fmDZz;)WJL~_AW^ER}
zk*Cl4QOwE|*s}=&a(AgPbj)JnO(hmn!1P6tZ8BkxjRT+i^KOmJZ4QLEk$n2wZ>3Q}
zb~HesOhqNmv1&svr+O`RjNG{laouee!_=LENU2vUFj`vR8O8urYg25s7Hg--DT`_v
z`J(TtOAc5U?v{$}Mn!wT#GJs9bf+7z=%_oo!SG5nAsVCYdPx!B75$!}ZJ}R^sY0D3
z7hr?en?r&5TsJebj<tR3lFT+cVvrY)(uNCPA9`7*KHAW?4YHHA2HA-Qn&C=cgcxWQ
z8cI{r-5?eMYuw`GKD|^cD|xI~Dpy<pH+_|pn3p$PEazMZvP?I^j5>3MFt3V~O{K;-
zny7W6vDW33ry{661-tNmveA&3dZAIk7Mv^fAh0$S*pF#Bd9no~gGcBM8hlF){3~pq
z!6y_hNkolZtPi;;Cg68$D{wbsdmR+Yr_J<Ed8vxmh9hdmt{j9sRC*(yEy{~4NFp*<
z*eto!xD{3(Ysvm$O=;WfkC&~=U2*SAQTCvQBqqTtA#v|3sn;lF2%Cid>vy*GkB`-F
zZ+VyR&58M-l+!|$GcnF0eo=IZlw(gjfM+1`t|a`e{VG+#I|t~d`c71JsBDGxNk3B_
z>A*AYlPKSPH61GfX4A4;Pl}=owMkrEG8+<iE6{ruDswiDTXS`8Yu}d972{2B^1L`P
z at 0V~|C}qqX0pwU1RV-m!bgvjx;b#sxeQO5TS)Y(4Y*AVXk!7APvB`3j$dF>JHF*@j
ze~s6 at m5r+c;UrNQ5g#6ftQ8arqrLF5cw}Sl-B_V#bic5=K2~L~QHN45(``z2>&yAy
zy2U!BbEHQ?WBB at 9uPT!oFG at BgCq>pXv^3+(1IJ9*b|jlHV(W|wvQN%&1hQ!^qCb;f
zJmm<b2~>rEYztFni~T!8nui;nMYw5#St9vJVCH}v9`NgfB?r1m?Y*e(jbP0 at 4-q{Q
z7H at 2g9SkhuwI{IA%~B?#z`x5oIh?gOpt>Nw(WfU at 1fhgn`@flXL0MMSUZOaxOL}gB
znXYuoP4<bHe_H6W?T<J+{u9eN8&hZ|cEu-oGJVaKf*zyX{RQuMD(>grpDUQVn+rCS
zDurEL+S3vu*m(-hQfZ!dSWbj=_ZII~Af)%F-#c|3lyVMsETNZex%iWCO#mSh1jv~g
zwm|5X0|=H-&tCC$7LbaBP=pl)$b<Og_dvj*u&Wfl?3n8;>C8IFE9xWEbBO2%y60iY
zr1)MV=A=)3_0McUcrc>4qLE9DxxY1~jre7?I$&WirwQ9Mk8G=9eb{6r4cAQsVA_$1
z!rf5T at l$dGCzyf!)J`aCcLG`Z*5K~qZedA;v6#xNix#Os$j#OBLGz0oK|q$S)Hxzu
z$Kh6MkECnaznHlN5^H2_W#m#R^@LMeAZ*n~94 at dEE*$pDt2QC;xc21K%`&QU_kpz2
zd9q+I*Q2tfbpZD%m#u!BU0H8$)0Joa7?drok!t4^syuyQLr?v^dZ1wf;H7!BC9hO@
z at s25M*Jze4`;hmLAaVZDz1ZH1dyIWzdmn8Y!;1nX!1HZg5r6C+`#x9ivvv<IQV at U_
z!Nf#T^Ri_dn(gtNUh>RLU<<026y&9+xc;ut_bQGXzn4q=ax(uPQb_p7pv6dd(94;u
zOHzGFf^l!zU15pTQK4(cLmRW$5s+Zh at j&a~%HSV91g|Ur5OV5(ep)q<HhTR{Yw`HS
z6 at g_rktqgBTVcOXSN`Efsk`@OeVS+?WoOwa&KZSU;?Py?#$sL#rhxBN at jbKG?adO`
z>`BSfx*{V<XO0IJ`vwo{(3iobevwxhp(AgKHaBkMCY?M at rnVsTDhGLy7fD-9Z#AAb
zMs^|fh3H7$t_-vX at uG=8y2rh+1kWZ-6FdU9Uu{oqf{{RRr9}l_tW|@I-)1b63^R?A
z5t;;N1_bzNX?hiX9ho@^2qPvmR4-QrhOXzs$8#}kjQ%tx*0w-e$yv;$;T?p)5ocQN
zVg+YQg=%kNzzkJ#=mj!c-)Vge8-s$`9Q+?2)qK1I9X{W^=?SY9rkPFavYASwPF%{U
zD0nChGYY)ArrR22rP*HkE}In<CU`wN<ogO=Jjg<jIWyQ8yL?BSB*sr;a)alb*wXHX
zlFc at w077Ef23pD9_95joy7QTWA|**liA_J7Wm)qG_H1_i#>Kp?%^Y|6EY0q*ooBd{
zS{b5jqMf}g(3Fz<#?iCXgQw0ao=uk@>nuJ8T~#0?`X$KduPz3F4r1!5B)4F&rG${y
z*<jeFMralWTTu>3FM}&;XH(joVnG-Z+mfQ$VzgzEdRF;3Hu%_e?f1)FVlYp&4!+A{
z!mm(s0)N{IlOs_=_=t^wXvZR<B+|&U-HjzWP!+wMQ>{sHh*8kJmT`8uH)ktpev#6*
zdwi=3Sut?JLT38lC7)IG*-YrheIO?|nu>p|GQ4A`|Kf90olAe}bb8wXJpf^y21{vv
z*$Mg0oLzd$$S!wU{Xk5HXx!+qu*ffUQ~R*iLMg5|+%QIZ|8^&cjApoXVfLG)_fL+0
z+?}`Drz2x|+aH at QrxNyKy0l0_p!3hMG14ZpiLnMhU6G&1K`K%O`~-~>xB`f+hd7Wb
zkSvQjH1j4RPU(Ds`vvFZkp6F&5DwdJ7G#HnI%lZ3ULq6D5=&sZKD#N1U{^wI2iS%|
zDoU-|*g^fWqapA5Di^kevjoTVn1&9tAX1dq^I^?uIC7)`L`F9$unr!fXaZs#?EG+e
zd_C-pMs;t1a=y;@sv0y{=Fg^Ils?-($t#w`qZX^!zW~n{w9aCo6u_<WoKyLN+_oos
zojiyk6+mR!3;@-d1=IxVC{zk^$I at 9E8-M~UkCY%pi9#E}89kx6#8~faMQ=X6B2v%v
z+0SCm^q13|U(z(T>=~uvYtm6h=jyeL{bGzj%#-(42pe%uQ@%^}1-=fl&NtpQFLclm
zj=-^l4mgA}5oU!wBZ#B%jg({K7}^mC0ga5z%qui%7E7fwV_?T*4;2fc)+jF6hzU~=
zr5GFy^wMGy=H3l2MTl7IX0c&vwMwm=$z&YaU at 8|dRn45yuz)NJ3G(Ye0Adk!EZr^M
z<#4=7%tZ=7cFK?z*A&-ZqIoA{hA_jJnVl6lp~A+UY5-M0s=w9MT at Q#umc*etJ8Pkg
z&O-s3!*?I3f2VZI;X?u%|AhN+4sDdtc}QU4^v)sFFVp7_6VM#%ees=g$~*>&;Vh`e
zq+br}AW}$j5J^ngf0)996a4-#!?}nQlOFwwIZXk(UtW*tqNw*dD+aM^M3Jg;wbCpv
zRWafU6nF%FgdYOR%qw at Td3bj^h%2Q_V&MLw;{TWa|3NK<j(`|NBSI-29<h%DO<?(j
z9}AE#9ciE?dqb#_H8u)CWGyGL<v$?dO&4B5$hy&eLI5(n9|b at o)k6mzK=Y(@V!-z#
z+bQ~3K?=WYRkkFVh6ImFjnPLAiT0@>Sv6T3?wouPbY|va>{hHy9;{2M(qT!i7^qLa
zv?x-Td~7U13v6V|^62Ep(>Y7{>N?}n6>A|St_Jp;cS~xi1wU=FS3j-Jjvu?SkI045
zZov?+WedY4UbH9x6>^w?$YtzQZO6#ginJLrQ*Wmk`^o7Q6<;MM52SLZY=$rq;}HRi
z)dd~WH?MuotJa*~RJ7f5joqh{6lQbXLLA`@d)K5RAn&g0 at 0vF-L~$(`L&1EQS+bpd
zu(zIRlFx_M-rw0JvPfa`FwlZ^b;%e%sNkTT$}h@>3pPfm67UdDX|><nT&RfV2b5cn
z_ld%iEdxga>H|os at t9mKl}wKLJm=<Z>XOnR$5aR?>QKAHJE%SY=Hn}zstY~;1Bk2Y
z+td8AnkHyUJ1QW(RR6(T{_X0H^M+6Egv at -qef!%?Bxsw=Z;^1%g}-6%%*Reu%j5oV
zxaN!I{^cFsJ{->LxKYf8-D{HZC&A8mK1tJrgQ-=wP9W at -Dcu=imRt03z3UNmm+}Mf
zwOZJ>Q_TTekroaIitWRUEiCjbNN`;UjwdMtE(1=t2z;B34+q8JplHP(?ab7uasW^j
zyQs=*$fm2ed*!KIZNLP3lQW($67fU2!-9)?*YoAEzZPG1)nd~)ro1Z$+&coXO=fB8
z&(ZKReO6nVwPQ4F3)9~8=VkqI4CIxMzA=r41zCEri}JrDwo5f{Uzk1R#8_?hnm6YZ
zU-vF at 5j%AqDJtLe;qg;|gVWTLxQiLnms9rbIkQ9iX8EyOg+5c~r~WPLwOM!OiED2g
zaBuV-HaklV>wZManshe{Qk{=>I(F>TIu^{IQnv1=dn_5E?}OA1Ht%YBaf1x%?9Ha@
zdH`}-A{09tWF$tJhDGap73{x$>a3UCu8w}nl|XsMulSuf6B7C5JfmZ!@`<gO-R}{<
z#;Qlqb12ag?8a)QqgMBB5;Et)M$muAr|33hxT+rC3Ak(;_$wVt(Y?PxbaS`&f at h_^
z=&PXVO$$^S7Ld<b@(E#4P*1l(J<FNgjEw>S<~1sa?H%K}0{HlZ>xw!^g`iN>T7!HU
zTy++2NPL$AGBlBqwj^<cgzX$%%}|_#BGf7v`R)4vW4e_w^8H(+Mm1m>$STJMmxd`h
z at 4P=Z<~=DmY}^#gWPZ6MX|t8hLhQ|8TyT;LvIz)-Kmzp6e~Pb))k5Js&P+bM1h|89
zIvULY20iX6k_gZBb9{)Eo1Es)&&vp$Nyc(i6{rtbTtcUQPrwtl%fYdH`j~`3!h4Q1
zTp*E}RJtBH_%xxbKfnNOwu86jI30}9c-rflO&ZNOEl9nC8G|43m3V$OJy|ZX$$3oT
zrOeGP5_-UL{Es*(DKm0KcPR20J=-ctSSZ at bW5wSmqR)*jeKU0FoUVgx)Vn`hv>Qao
zJ?o{nfm9)IBJ5nOgUn)EmW$<JgSoIo0ejdpEkliN<|mh_D@}_p17a`$0l#(Y&kcX7
zJJMYmdR`9wf^SuwW>4W-$H}8lNxnMYS>)BWwm*f9FFUVy$>Q~vt8gn%BIHyPN>vmU
z+ZLK~M=Y_o?j_`u?+g(`H4VcRRRnZ$P=U;yXI0DkQbv1^H+P-`4;$D)0;nzqm2Rq}
zR^@Xfxm*=ch1&ogQe!FpBfX$@HyB9t0Nhuf7SKg-&K#7>YXxa+_8Ss*QsL5+xPC1Z
zb%fZ5H|pAXM+)-I*^&-6+ftA(7nQau#pyBO&@-y-eX&fl%b;J<e*%Vw!vOx7l=c3-
zP$Q$hZ%e%c84Ik%<w~irRxU_G26V7#=J}C=Lg=OOV>m2K>TJ-LB22tu8 at du1Zk!&G
z&<fZHNcE8GcgLUsG*es~G~6-Z`aSGu?B#>VZ(frLQesp(pK at _6;1`ymPpd8>vv+28
zo0xL!`s+5hic>UNOx?7#lV-RgwA5#@<iEdzj2XE|FoY&Pnp=jd>*@fF6lEPM2Xr{3
zQkPT|sRF+~ghot&GV#&0ftFgUsF%(8{eaQR_rL`O4sc-*AB{N-tAI@@2OaVG%9%Fl
zC^3`<ql&OHw3=o<0+r!6)&hkBf?ufcL9%924$SI<tisUAJ!Oc)`$|FNEj^kR)5szg
z*)csxfev|a9{y}T>`-8KUJwMC=uIOw)DZ9(sPQlC^k+wBQV=k7#S~B?X&0#Z6K4Ch
zChzn<nV?A%)Wv+RoKM$9k87 at oqJqL{q$rjfwnYQqKd)T>sU}EMA`q?~j@*XA^1))_
zKV!ecyv?9<Gb3)VqEAhS at fs6xs{?-jW-iGJ*q&_5tAKEQWpe=xe?$RgyBpmJ8gE5%
z3hs261!P<6PLOt+xC{2|N+-SSH12%&nCtJHCT)g$UI8c19NU50y(B9ngYwB~!6^Z{
zeGerhHysAcO3R6Bz)qf<`)w1^L2VEn at IC+noK=h90KeH8BdX^%M!)p5=<dxU&qpNU
z3+}1Y=2xcx3Hjn%JU3mT4b3Y-Vg`~b+QwIHxeOqr(-thU#5ME=G&I#(`a^m;Rr%}E
zouuK)GBsmezAem57 at BDXQ)9aIn|n#WE~P4~su}`C+}Qy!0<gmGgMc*CtZ$SP7lHr;
z|CbFch_WFITCa#a8e$|Sk=(H&+!{E%m4FUuEL0l;Y|JK)eSQUljU2T^Up4i4>F at sq
z`nnTFg at LID_3q!-8${y=2{<iBBL_2MmtMV^Ffj}wueT0r2oltnv=XmhPt>}ECiE|H
zaGdbVl}wq&%g35Lk-49mFwJ=a>oxp=C%gg>(#vz?oU<mk28m;{@hat*Zu?fdo$Zj;
z(tCT`W1)OyPw$W?oNb%t_VlRt=<QKtAbIjl$SmrT4PR)ex6!nPZaolnl~-1g$2OBw
z+kKTpDJi=;Jky4URB9d>xj|^76j5S(dw??vs4;A8ikfE at xJQTEfU?oA3i8`NJaeVK
z4jg}b^pG9q#z>(Muv?e(CO>a|$BzDfCxSvjcsTt4Alcx`RF9ltjw)Gha7Cj{^y=1*
zxs+74JrxV<u3Ks8yj{JT65=K(?8x?-!fGt7n2Tojr)Y2>zNo%X6r&uK*SU2*+C_O9
zR;O-;*UFYhYjN5UaVhDkxowZP+HD=NvP_~G<};2MZ8I9Bzj-K2VmCA<e3)5FC>T~x
za$tk-nibW``dS$1%v169G{6=fk2w5vtgbO!KWD2EXi2gqK!=Zt56%cbH)VbI4Pp9X
zM))47HJxtph^sK+Lhziu!FqWN%DG{_WD}B<O8Pn(>GL4PEvAHj3NbBPf+b)}=Utlk
zp+d8el^A-kJs|_N!KUJrgToW2x{Z&q%g-qt8|U!tYi+|y0;9g<z$KS(YuoL at iWsr_
z_4X|nTa<yAr<2lO97Lzj9t7kQtBd>y*rRXE8prKZl^Q=Hrk<O8%KVP+4`-(PmJZW8
zv-(EWCkCXmDG8a;*(&~1M~o at 9o-kp@+6 at OVMC?W^5qO)X44!?kfqn{0z&2~o-X4)h
zjkUmr#vk^DJ<V#${poQV2q;eLr?bpOHBv$JLs58YZdB3rQ1;g%>n(TM at Ept0Q`goR
zFWZ}!%~%3<qA at R?%DTvu!uHFimapHqz)ns3Acl%csg%+qz1IYBk&hlrDl}OJX<;Hn
zmjMFDDho@%j#DRY?%zf_ve(Qo-&GQF6W{LGFmtH|qof(5xM3tZM6?4-z!I6)yIF2_
z>1Y~HW8$ae^;>*|84nV7t{fM{5}0gLEh}2i$eHXdNMy6k5pR&XZjGBK#`N=KimPL#
zA=e0VD~k!#+rT~tYl>k<v%#WlItXI}A}8bd6}4t)4a#e9)cyD6d{o6>nFz99yeVd@
zl&4-;(k at iUOy36O7Ro!44bKCoC>d%lC><aH3|Y2=ZR5l#N89P{x8J(h`k)Nuq!$BG
zxRYhGj8`h-RwCv<W7)>=Iht{E_QNf59eoUaIQzjGmhWNNR(;1=949N;w-!IbV8t7a
zTB0%Z(Tu6a`U)c}as)rSE=(zFd^2{L+V)EtLBJOkVWl^?CCb`|ZqxGP*M>5zS$z}{
zLNoM7Hu>L>hUgE1&YK)8!Zdf|g?dc1B&6}sO#p%GwEd7f at xBfH7v@%NV)P&>uBUOH
z?)M8{jdkUR!E_>YI=M7B64Ia7owfD*VOr;Kj?PAnK)~H;jt at _PAKDdD6aye6xRd;_
zzyIMsu}s!mucAW+k*i2^eqiokgpqiDBUPw#^KtQJiNgRvOH8NzpC4z!kY=z{&v at jM
zX1a-_A=UbKK5%_UGMc4S05!f2NU*?9w~Qm;D#SkGmt|F-xyBa<$R2Np&#s{SS?O!G
zA`f8>&YJjwCkr;mnf*TN+t>+ki(To6|6{H at _gSO^J%S089v`_4aYMBs;AM)VA;o~v
zv0&y?mX}<Vt2}u*SPD?*>_7-W^gA+N;%fNe5(j;Mc?Rmk3W#F86vpNfao&NYY#trM
zaMne8 at B`617aw|sYhAdg1<mkzSxHSUe(@zFxiq82KL+k6i^|ArT$Ncf(Y3gH{-|+Q
z=|81gC$zOuczFKOfamh)Yg4u3pp at g?h9q-hx?!*Vab)A5ot=WggN>Q%E*s^W^M-1v
zVPw>B^hAS*rXcZ0(?K9IrtljUJote&`c;Nbkvm<;Yk+Y=2-LMEWeh&O%L>sM71>Y6
zttc at z`AcFzz}kk^ti>ZvNQPYi`Fq&Qb_|V647Lt1zg^}X5?0a#;0U#Asq~xNQy>S$
z#Z4t4g=M$R$p)klZaAj>CG33wIg7z|I<g~cq+u-qNMiik&%UO9LBtA1X(y}8icc?N
z%$iUMe9k7AFxZ{0Q<U)~TKfS!m<8O6U$5uK5Ht%Kg7Km4VkB1VRPfSIwh*)s##~y~
zNK36Vk8e*&MvAdC7#2%jL at O%n7U-uf6LdI|caqT`9Lwp9zYpjd8=LRl>Wn)R<k|08
za3*VWZ~?zjghkTgVfqw(gD-CDoFJ!t0*L(YUZQxdsNhgDmP{JrlTg7dschE-NiqZx
z54B*qFm8f~d+TKFv7Yf3JpK*A$*_vJ at +@TamJ30w_Bs##8AqqhAqCPW<z}axGeMJ{
zv{G7>n(U8*(eM)UB>8q$V#jywoBP5g?d3d{ScFB}N)1xvk}RbiJ%OZMldmSIbMy5q
z#ryc0=Y~WMoK+A%?AShOhfdm=d^@mJ+l9aRZhU_{`ZWg^tv0#XH_<5~-89QL_H4G`
zP#TS1xg35X{8pMT8y9Is<04Mp at Qq<S@{74Q{x7}kUTpZTL*&n`_O3X=TlAv$>I04(
zB<)Sw{dW^SdTdtJI4%Q+3A7vGR2xe2m~IDrPsx|X44QaFc1pG!L1R#t!$iL%<`wg^
zPFFgOCN{=9nG+4~EdxoBnN!~n?Bf1FaqRwY1_nl`E4x=2{J>l1bs*!^CR3L!u<)$;
z&JENbtd>U9$010oIxK#o0;`({*s=#A<^^I`zNP0W>{R^9l}q6lnF&s1^4fq^6Xehx
z81fOHHASplI*zyx8 at Qpo*BmAlO$>UV5k4irxGJvG4;=Y!kzm}XhUH^7VIf>VZWYu0
zA+64UY+ibOC1W7$CRn~nN<f5}_dADZqpy4-P8b!u=D+}ez2X#fr%0om0f5ICqQ2f~
zqTkueF%gfka_lRg7^9G~<;u!2=hOfX(A<9#?D3=|UV+03SWXMod5%1cJ?<Lh)2D{y
z54RuWPK`&q at LrM4?-yCVyfUD>bljivWz|$Ky`=(3Sq&}CKJ?|bC--aX&KO|TQlD)t
z3?##r&Ntlmb8@#z*$|AUv|sPuY}8?V(zwIuuyK3$^=RMqwnA>TiUe=AY7bB+Vm at xE
zwtEt^r&hrNG@|>wW4H6mMHlz^E4auwr}x_-KA-;2o0qrn1lnkkp-7g)*3T=1`{tb~
zNlpJIsLEN2Na$9UyC-N at _dl)nV6iV~v+aluTkd|M-%n(l4n8%yZ}`%G`=3eI^!L at +
z47Avq?Ig9oXLlN&g at 5Wt5}E$Wr=>7&rqEvWxW4T175$+fIYmDb^+o9Z9pIm3hNM3j
zT}9u7oDWJ5?`OYGuAwjL_*>pFUgq=OQrlHR7bi7l$d(xV1p}PnL)Ic&{1`BeW=ZfI
zFLzOF{h)qsqO%yE8+*#vWL&=DjuX=jlS8DVq?H(IIPK(Z>f9OjtSQok=K7!ZmVi%2
za;HagSArvEUfRjlG5)mOmlhZUVRM_#HlVf?A)fkR8TI<frs^^KLTw3U%<RobWLadu
zTRGupNX~|n2|b at Y7uf4rI3BFiM+Dcx-=^*HmIEVfr)y(kaXX^j12KNvpWYNhtH^F3
zm4(2vkYC3`!%E*gO-_9k$NU)T1pEQd``iIfv`h1V!8q(BU>?=c4W>y2#tbPf{BYey
zcT`zS&0eU|NeVXGM{?|4ebB#ZzWqs7&S0>EX}0^Nbz~Nivx4k7lFFZgR}L)j1)ZZ(
z{!^-|mAd~dc%)|m1 at L;b6_#ih1~LML+Y{MiKc#Y1GNnw4w~!??#SZksyOE!t6?YX)
z><lo)7>$v(sip=~R;3EUlEcJED7mR;<P70!O<{D9G53A6oJ)0u_XgE+%%^zH_Hd*=
z*!GuCPa^Zx7d_jZP4HGCVPe at Xx3h(jW9vc8oG~kFTvEnbr3y^h9FLY=vpQmR(t0sw
z)%xU}kn~5=klluD at Kfs}D(;guk+nua6g&yC+prtj)ti at VJ6*oMJn;E0%({YeXY&0A
z7o|NBVD0?d2Mc!Pog at WeFIn0D9|h8uWIF1QkQSPaO2jz4 at 2=@d((iJ}gE)!VxgxZ`
zJKTVTL?8&x@~l9kkI5?ANH0~Z4LKZGpJ2ttjIyj-Q$KkNI(Ib%$6mh#J~WlDjKt$e
z&}jC at yJQxT#4e7a3~V%Eo`O)J+6{3(=eZM>;b1Lw^;{2A(ZtAk6Kp#+wL5{}&_=^i
z-o=D`1Y*(3+G=n&u=jS%hV8PC6!_Wkj{(~@i&0zmIkQa$_w_WyOd$~eH+6z?rt|K&
zn>08%D)MmJYpi2oL`5R^l|`w}+Vn@)&=Mm<*g{nR$c$~L|L<d%$cF?8kgY!0hRxmD
z)bhXW%NxswuG`(_N?h;9!Z>bgZdT$Nu-5*W3kQrnDB`9h2pL+&494fc;^IHzAjQmL
zJ at YSCtZnjsT{270&P*S%@q|GWJW at R3TLzDxUqiBw?w{B1Jj8mCiHG0xKrC_n2JU;#
z^u4YsBqIc|j*RD*-!BF5n`Y&1#5k&<Tua+0w~E!AOSnueIjyb_|6n2}hzEC=@QWhz
zCe&k||C;@F*-^~hZCa*>8}3C6+>b`+&X%x)1E60x#Ez?U%AsJq7tT~-i=a8HXes6C
zaS$eL^A58B$YrwX$`=Xe`nYR03T-@}x+KvMokVl0Uv*Qz2yq4$@6;8J(u<&)=z>=1
zexwAsh}~vtNi&({_pvd>u6_mwx<)r8!{J+rV-Ltt$pMn at Bwu2WF67FLhZT>U44_fI
z?#cOEj}-{_yN|u`Zs_-J0D(lykEy^J|1D}qNN?HjN;d!BLw)}?cx{LNb4ki`!!C_o
z50A@{cMr8DchOXQba2)`m2<V5TA^#7m}~3`)gNX(&zi)%=RGeB+VRZc%VH-0!aAqM
zeuk6;4s0uZETwl!nfTRbPancxcI^dYZd4)HttWsUwaGH1iGvG4_(_~6eUHp_RlmNm
zMcQ3e{+!Q^=!;F~8+c_KynAq%`4u6w)0$>raXin+UTvFK6t`%rmD*w(e5i$-!lZ;i
zqLg!`%S=I0ec at Sz^C?b3rq4QN4By%|=}X<Vz#&e9FQvsi!2(vNE?dC&54`W#D`$0}
ze at M7-KyRLdqK2@<>wbGFZx}o#hiXT&HMuWLKTsdo8LYT0cuwIOM;oJzql}fr$mj2{
z0U-n41c&IT^24Nf9HzDEz_Yjjx2a4%aIJIYEfRNV$TgH2-KSIsZ?}*-aBT(*Gz*Cp
zBpQZSs#Fx{ksbou+;v<bY=KwF!(Mz6WxMJ7&?=&);~L&hB+7CKDtHu{4P2#m4YnUg
zU34OHjrpNb2AGZZY=c$(gMm;SZt9enRs#qDjg;Euwa}zZrsC7^0J<*gCn2qVmV;d<
zIPQ+MFG6V9zsYyL;RB5{@2jK1^;%bwr)%wrXfX1~C<V{?=4)Sd9miF`_5V$n8ycER
z_!mG(uTKeuxT3FSDSY^a*Z-I$@BgumwJ-2y$^X2*fajZ~eD#6aU%}gUgkwB&J9})e
z at QzWogOY{Uac<|F&+d0Vr_SDV-t&L?)4Gi8!Rk8UHRd;xFV=iscwp49_6?SX-nv9s
zI)K`%L&HXgD({u`X6_ByTTzecfB!HW(BWHZ8(RS*Q={G`O1W5g7(CoT33Q+uUVX=I
zeTTU1{&h}-=t4YmS}Ocg6sM!3RehvRdIp<&<iWdxR|Q5ids7bL!V~wBkp(YY*SR})
zvT at M@B(p<g40oL|tx+`|KCFlTuz>cPKZ}k(S2l!JUDbJs{0{~Ip`*@G!D-0so#t*J
zmVEK_oC}X8(4nk$*3L?#pHvT*<BTJ+%lusWcowLF+CDsJQM)pGt^?)SkrJBd{KSd?
z+Z#ut{=FmzoA>6wOU|()wb8fmv7`~*Y-E6euc)BBf9eDU9u#;HCI>u$<B`H62p-4v
zHij+2-YFqP40$U<iAK8)_p4$IJc2*TbjmQ1gM)uWK at 7W?P&y<JpiAO}4C~O+(bIDm
z3$PF8?oB3V7#^n-CYViyQ+8^*itCBFkqt)bNj*=Ul;Ix0=)ydra^7OPkcDi%Qpy=$
zU8l~5do%RKa}_HN7Fb6SO6Ae<xS>D}M9%2+E}wlOmyde9`{1fgsZsI0p8YEl^JzI&
zwL}%(Wzn`d%c!g_lBImRWYCp0u;g-7Ntp)oFSoRfF6yd at 5}BR#rg_tM2+9a6{~vmP
zpeEv{Ai%uN-kyB>^l%x8x$(nvHG5)8p+<Xu_TPUSE~QQ0q8-^HO?XEVvEUi at a5nz;
ze4nv^{B8hbqkEZxSgVR;WLCnHF=56Re(4rJRcKuUL4(|B(s6*A%RJ)EBB-=u(W%zb
zKyfcZT$1%VsfpbbTEuG?4AAEkVy2S>z6dWelDd)uZJJTOzEOR69Z|}A%ML3GBYRf|
zw$A&}^Egh8m}2v-d|E(wT>w#Fra;D`B1jBMUm+|}mwW4dRBXQ5#14~CokF>NUZPM^
zsj-B>0|()7YPaKXOdGdAVB2PHg{^b|VS5d!(amk5d>1r^AYU$0YO#*FaZ587vF#LF
zCGSe2%$O4WGXXYyRjm(YH4H_Kk4TJfPcvuO;XN-)ty?HYVi?fKfe__-Ey4OT!h`AI
ztT$OU0^Y?V4c$A3EFzZ7`{GUIQ?lW0_kH#s9$BX|G^Dfcz;(-Q-tf9={M4hyJnShh
zf3jl92MoG<iAH%A&x5~zaEAt2xFPhJ)i<Jjatm*!kzv%*+&HYQs(zgE91s5VEGS7I
z#6^W+p(c{^XK~uQZc!h at -Nd$T!AbXTF|3LwXLe;r3w0p9EVEG6#>o#`SNo=FHucoH
z|1jGtriMD9M_;`N!I*WJO^MSgFYJg64z3Gno68<;;is4vFS)5_j!I~kXGVGtHT{-|
z<)+to0k1MJzVb^(G`}0jw;ZUje%hmsYN=AqYkhG9jUXL2Ruoy~DHPo%NG(>3C0;wc
zn7m&FLB4jTw4AOGcsL|a<%GxEVIau9VKG^;Mn(BK&aayPHs?}^%CVnSl-;O55(`Zj
zL$lv0$#C~t{c*?qy`_7R{lXz;++bW%rXuOS@%nZ1#+(&}oy>fO8Rzt1ffhhcJQx0>
zj0_fi{^=7TE7T<+7CrK|WJD4pqlwue&fmIha;|ZiuM9&EBxMH=f8&7Q4T`rcyfE7(
z`1o3Z$!*qo50xaBk=`1v6W}&fhLIwp$c)az&ZdFvsiK_ul;iS^U}V&VK_x|n5i>ml
zj<0hzdCt4GJ5aQob8-ssd2wmcA{cA(34(HZnM6mY0wA7iygXj@!=b+Z$sFL4%(NQI
z*^QEy<P{e1!(>TK{FyrwyiRE_y*hR2&OTGGUEHED(5IXi at 1p+l?$n}pWwL%9lHZ$J
zhQf=dA*6de>NR~}!@8^+1p0I)^yTdDCc at n-{TF@^>LKm-uJ%X0oZ*N|XM6N=b2MJA
zfwDXwSN`EeF}0D2MR~t&ylp}WmRa`~o8s~&Bh)8O&0bUN&is0_$I*Ng{)wQ%W9z!=
zk0gSl!~`ly!_S^Idno~g^y=sU?M1bmbl{XvNo8aI{MX%a{(I8=9s15Y=G6Js1A@<9
z8v~Tg<KYQTBf6wJqK)A&I!;Dhss$u15N%V$VhkB+6d<~hVORanVS-eEXFPSxP!0f)
zxrvxQq3$wOJ+v4H6h1jhAR?qY%G2mcX*1SEDk<`wjKP)pI^*qP{hSmIJ`U|yMqT%!
zGM)zd?s8u;-rI&#<JyLdbF+QE94N`_YD^8^C?i8t48ZS`_?*0FZTY)>&Ra;qtvwbM
zZ5#OM60A>Q$6K|hr8H#nReX2l9lMxhJYhXJC#<wAZtU#(0SaYjYEU0$>YOzQ!7eeV
zppvJ at V{2O1)s7tSjBoI+jr}x}_XfwA%UGlSjjRJLv73TwaUbBzq&u=XLTNlzSsVN*
z%F!af&fw;e<J~nL>|TDFK$fW?T|QX!_!Rm4lGXYh_qb|r_%GRf6-%fh_`m6FGQH4j
z>Ue`AR1weANTr3OxENAlY;4!_Sj57FZ_mp);l<cO+}6cNkE1^~DNC7RAy|7<qRtYP
z$yQoFjU$XX(O!bxc5U at XN2wIe?~{X;^l_<((qy5=jjeyBiW*B)%FX3+vi7JthuS$}
zh}0m|uUwT`P9u73TjI9*+&Yu+?D)1S3Q1hvdZfHXENN*0q6k6HXp-OGF~6dU%x$Xx
zF|{=-<U?u}M4o`bR%<G#ZLP2xUi)OOdFmA8Jcj8Ip^TX^j-AjZ%f+y|;mDE3<wH@>
zpps|WXNOJZaSN<}0G5=pChw(ogw7QQn4fPB#@|oRVqp at e7M?h-(6L-(`x3FPpdcR$
zn^b_!F|O>{^1ouwngO>}X;E7mf;>wF$YoE*M;3*bH9E=~1X00<xyQ&I{Wap|Cb6j5
zA`B1OK}LO2Zp)*ZHOqsKDfe7=e8g(4(Aspcv`KjUmNkRabV8feYSgNge$SsDd-whR
zy-zPd%ldHCCF{B!|9#ps@#o9VmXq$QMgqL_ZTJ59If1V8I&fGk<N8)02{;zi>IL?C
zO6(SiG`_LmgBxC4zD=GE2x+QqnwA8vOkXy>eC4v-IAk|vK0wT7&FjUOAqVd!&-;s6
zOk^y8l18@&EAZ*NDN9y(J(((4*-K*CRrH=?%Yu>A(A+Y0x9idyysK>SvLiV at 6W^G*
z)Pzd`s#h at 0yVtSlXCVHF%umyBom=cGeXH9bEsCX`kb6!_`mZW?)`vXlIm<ZCUA5hr
zrsYgU;<iLBXMG!NoEn7!x`kD6o*kl|jIhvUGK0*c#|vO3mbf)Zg%KIc8mIS1ay}|z
z!prggS~s5OE(<*#m~cphuG7K|D-Loz35^7Q)RO}i{<@nEQnObNJ0?C(drHH1NdgxG
zBL#AQADguGUbGF$Ra#2r2`jAEKT>4&qv*kmO^%gMJBiuY<q4?&ifIwwUG$6SxbWW}
z*;0t`_eI_6<^4 at fMh|!!t$52#!Ku+<hyI+|Z}q5ZT8F(^TOU`pGxvg3uI}zLi<`+E
zHr?KT<I6bz6f6Z~JM6Py+IDRgZ4PEpi4UY at bhu0tB<#F|Cf%rKdPcOn?sjy7Aqj92
z00AHQV%v90Ot~vQN<8%6WFo4WW<wpESRaEpmbGd<XjfS1oLzlMzyD^lR=Vl8k$3CA
z-7wWRwA;0O(sxI`A}e%V!P_RL%835RL`OhMiM!0b(L!4a=7(Szu%ck>O);M7z6)yQ
zcaneX3?)GU%tAE#@!u(<cER0Ewc+=VlWQF!O6Sfh4IS~xM?AXa7A{vr{?_t#ASdD6
zZBOesZJBDQ@#v1wV<CB^QYuT_n%m1g2B?p(4G*vBe+UVW+m at 33eTx(vX?us1EpMdz
zQ=)B8K+x)%{_Ro|1NG=1uIV2cK1L{iQeSG~aBApx`ui=aMlAOu5vN~Zl==F_7rn*g
zH|x9uBZH3F<u1ub2j(`ZeEp)ME?Ltgi)+3RH3G<a(JLCeo#fJBuZ&WVXb_rd-TF$8
zvOOoJu3|145fY2f+eqnNL8XQg$_pQCy8zE}CG6jsLBr*Uv#7;FbzjaWrjfximi at pz
zjHHET$&7Exdx|FzKwxiHThOF4koz7S{*cag?h+yA>slSqh8*~cDNetW at XvvzSc=2i
z)p@&ugNxob>CSrL4re2r{(71cj&=Eb+-3>YWv{%{Iq)j9`(mcaa%Xz%Q-j-0I%Dw-
z$T-2%>(ElT;lp~g^RNYFMZ^?s*0ePI$I$O8bajSwkjG(;0i5Fwtdt3(QnSw&q<!>K
zl`C5D{h!&-+L#a+%!LPhpXIVos%&q=y%u|zkz~q75QtPo@;qc`HJI=6ZDrI7R%umT
z05|Zk)AB5&N|i3s68ytj^9j2sWhH23D^!$LHC0Lpb&XkWt3|=-sSLI36LiT!er7mW
zpZp^UkN6zCx*$mMfti_G_LIR5*<~ET%<PD)UAX%6X)y at UM)PS#)HY7 at yv*}riwpU+
z&BWQj{vO3OTiqL-A&hJ-<_{DyW`l&1Hh2~9Yqe`5+&DzF+C{$==~+wP#|x?d#c|Jf
z$230Lvg=y8|0D0%&?K`L*K==8b1 at L-c+S=~R~d^XZ9*<%wyuyb8LhH?;vfU at v8&|P
zB98M-XSy>(&6o&4b!|G`rHcBwZ{2nPV*>(6R#x=bz7!Tu{~cpf9B^RfxiF)=CcYN<
zbx$+EvlS&@)5O}y8l9Xmfi1;$&BHb(Z0y+yJ10}EsKvTnc}S1bP925Vl<lWRI4a!C
z{7PtBl#2)fqPYMrnd9J|vOhiDIjy=jlbc(kM*CCT$-|F+gmb{!uuHR4^QR}F$mAM7
zK)A6vfZQr{dzj8=-TF`a_H`ujYTM=Jj1OB0G2KPY9ef8r^~%=Cb9Tq+B?;`}$>T`!
zt%%rR!xnK-Z{o at hc~hKqb2Sg$6(MQLx6zsDv6ma_qr$SFzVf-!rv0ld%}y5g<gmar
z37+r0G&NSKRBKBv-aWRo$>hnD`tumGy5xr5i504`9d*s?$C|EqA8#8CNI@?y at v8pc
z)mK#GDGU{Yv}eqVt5!{<SqQ|}ySj3s4rizFO`tU<JQIGu(6-K!Bl7-~vstD>m-*%U
z_AR&Z2kce$O?Th&D|)&|Cw;tCC-yc}U+kw at pC|5WSQnP9#>fqK!w&0dA33V02SUdz
z9VHe=aY<>~!jH)Z*DYnuVuH$j!s+p$O3c<;O#3-GtCTDj-dMbviOlSf29<YLYD_cj
zx><4mthsTcud|~yy|dS0Jqscgi8sfqm?O0Ro}%B at alT_xxH7}QKT7~kRODAgnK#1R
z`MN#ZFR<RUoLa1J?Y_TedtwnwF==lyk#KOwGCU0xC0Qj)$D&Qn)FWA!;cSwhRu58p
z?0MmhT&<nkaE~dCwmbH{zgy;Y$$CBAM__0zaWVf>_1hYc$9ZJ0(1 at EQ&bM`a2?tGC
zFY?`P)V^IA@&1yHq}|c+a`}w3f=ET9d%?#E$9ETim&@v1KA08rKjZXa&ALFh)IiAp
zLUXOZ8Wom+Rj6vd6xe~xDD+gS&>|+<w2`VBU0w+)gAG*`#z;dCn&JAS#idXI1Z3YJ
z+g|LaQPGG}=+^xZl-?h-XP}Z8I-mwAvhMeQX9qWePltG#n_6(Mis#C%?&q^bXNbFd
zl7c0gal5M<%05dIV3sfukJP3AHx8OkTL<r?y8ftVG(Op$h4LdEPWgt%dE4PS(`Wgw
z6P-=hzFp1gH+WFH)USLI%*SU}EMpgQmo5+6RX;OfwlclXHE>Q2+t9K|JW|Z~<%Eo^
z9V2J$e3ysK{W-Q0|DmnDo!_!A3~&USa367cx>r#6P!HphKk8oArCK`a-OvxjzrF<D
zat at Eu6~pxYmAMnshShIr!iYq5K{iq^&5wp(hPToDVtpg-(J#_;boHngs8 at A$b?8@)
z{7d^vd#kUn#~{BYe>K$8PexMzP`?<VF&Od}@}DV+PB967P5#EjYPD#SzL8$vOVh%t
zUb70w-Q?f2hqUno!Z$)K0iGhsC4rBLUv#$X5Q(@ixF#b`HZ?Bb7vU3`Od{hx;eP2}
z*3muM@*doNjs1&#ulJt30=V~>zxwaU at 6wEY-*`QJ4OOG3|3+V$6CdV&U|s-U0)v1?
zm7tdB*CI>?n)G!tZWH{{>RJzPDi6F)z|<RDjEdKuGS<S+_~y56-V6dY_tr+YNsjs6
zEl;I80AziS)ovqh#%P6|wd7Vt?X*(-?R^5YbbBHT;IGWnc8kZ3>)#&22mlr>LJwK2
zKQP$tF^!7Hovj75LHFV0>e7s7s|e0cQ7(;=VY6NX5qjvvR%Qsy;5d1l5&%b;z-siR
zF7wZxxkfcwuw%o6YF?w`wW1K&2r~eKfkhpQ&!}tHG&%2Nz-3Y%6;sEMx;EUd(5qa+
zi$Y@^V1AaO)uYO1&i4*0KTWrc(?MFmMZA<YJl5-1n^Bukxgv=OMskoTv<X(T-EW77
zp#(@WU6QtvQ0tCVo7Z`Cb8xl8Z at a$}9N|pz%SkYggqS0)^cwyKU6LPG8&tjD<&0UN
z!Too_j@<nrwa8lOW!wpdH!|i|p#9CNh1QV$;?NSMSj1`n`g4S(wjv#7P>HS*d{i8v
zc=6szy8xIP0&7=uGzvPUtc_j_QjyPdpp+u!be%R~g`kh=xSp5P6(Q*?cmX>}L|0fP
zU(+=_G~&qfyr3kU5Yv_pw1dehJ69^Jwn`0peDjw2Gb>%6F8}YJVy37z4B*MXMx!Aq
zEWM@(2a|@!UhXl(#w7jQ?zaO)k--UWy>1C)QwL9rc?eajJsyHXt{U!2g at RIrZPC$9
zz{YODA}PzLt~J}YnlD&(9r)~AP1 at YHyXGUC8#j;!Y(#s=kzXgC8|jP*qZgfcEiVY5
z>OONegQ|mu&tpbMUWeO=?3W;%sibPWbUj5YW^v>_L;Bs=oDO*BnXr_j<K^G3^gm#6
zQGM;}<i2A!)Whz5ib2UDlpJT0C70zZ_;_Jj;-%SJ8-2j-!i1^p;uk??Ybq~v!g6*j
zdjGvCq!D)jvTaEp!r2K^ArA>^6+FnyXFsMO7H!S8q&o50AvXMJTdF0pyMp4n{|Ym=
zoUPgP=G9i at 0%95lM{U!6^I~&h{l!H5Icw|KXt{=;&mH8h?%!hI*hre!(vB3tySA=e
zI+9iSi%-BYF;tw#7w6(bB=`)OB_x4FY>|*=NuyLBSykD&u(Ea{Rr~U3;#v`zFA#{Z
z`GL~>^e~bP%DqxVYe*y4Z0i6STR;XcW(Ko#d;Ikia>HW)7D8WfQD`XNuAmo*- at cSW
zF$lU~UP(#s0_m6nNYb+b7PzVfy at z`4(FN6_KW~{JAK0){UewiMvaNf;PI+L1`~iNP
zM;BBeuuuEW?dsDi6oA1hOUVY;Hr5_wZ@^)HW`L2)$36O}Ni!V4mN2TWJQz@^2md*f
zU8*f+<fCxh!tf%;!Qn{^x7ZXN#Ui?(CbF8Z$XOW~FHMI?7e1ilOoSvROBlW!&>hx>
zsAV=<Ry&A0uB#ttcY~f2VIn6<IErI$Ff<bT0TT{?xVG!LW;%Gszdst}Aa^8-dLNZ~
zHFrmsdM`xSvGu++J{s~i#zz>IkEv464k2x-+ZJ*|WO{MEu%9-SyO?_K8cJLYdE=w+
zTlZ{*2&b!+Uxwd}x%)EQq+HCuFzQB)56J%Lp5z{};sXfcsZlXMw)~~(qrD1eRfu>8
zc+g^vAEpZ~3L8r(0#l<R-aF=E$f<_jmMnY5p*)3!J$EtXo(LZ8c525G#Zd`ai!I11
zc~r`6RkYng0p;x&zi)|;u7RAy*HI}~(VB!N&rhCuHYETE>Gc_I--ZK$0)I0EjHlw{
zS~8SYov<^STU at FvP84tE^oB;~8+pZ)H<e)uvX3KVQv5KYm{V<=B9<U|IO~O at 5)HW+
zvk6PH(GJ1JFBXK)1~B)xGV<!}LR-1$7XDv4)pK0uh{pn5Q{D1hal%&DID4;hz7ygj
z5)Qv>?#uYBk_)*$=X?)vHRq81Q0Wm_hJVWyQ}mlR<QR_kBlag166KyfUCm3|eJ)@0
z-1gg2*|o1Wv^_H=?z|sWN|qWkZ89R<(fPie;q`7%9{2D8Pneh|UHlEw-#|SsA3HYH
zp%7(N8diy4c*Uoxb6z+kW-2O{PWy3<J_?H{qZI8}PYoQYU7|&aKCa;Bil4?UT|ADf
z$3`z6j4g~uVwZ%L<rjp<6cEE=i3Px^+pH{jw_oXgzD_bagb26OxmnDZ{v#LGi1}xm
zY^<MFg~x3oCt+qnKtg(p1ts50GrmBLh+N6{NSI~hpUsc^E=&4rNeVyi&sK4qWZv0&
zt<^`b-2hR2r5SWuF3l!Cb#JiE#yfoyKuGnC&)qMz8Efo07rC-q*tM#%;_2G8w-YP&
zqt^o8yQQYV at z+q8`|VR!J)WbYi;WE~FuC(Z$6`~4NhL`zjdY2S_>s^sjsO-?QuaoH
zb#e*EGYk>F>3<l2OFU)*=vXnQzB(w+SEzmOTuKm9etuSR^W$CNrpZEVMuV4QBk7QH
z63^xB=w=647r~kMyYliCF|v%t77xOZZmfI{EZ|7>A_!^LB7UmHz@}R|c8waP^9(N=
z8le}S^_%w*F#T0KMvRCST$(LBb+<jW*k(AhQEOdTD2E--_<VOv4)6bOIqSLUMdr4X
zh9MizOt=l+cvYw_Z<$*Xle>JjppQe}X1I0ZCldv-+eU}o_RpZf_qWGRe1UQUA$x8U
z^iQ9j`oyI&G4)(6S>*yV6W?6lHX525M$AE|UlGWdkB+@%=|_&ix(ms-ZmUCi$!0iz
z0^*ROKV$x}jvw<Bv^f8)jQPa40oJgn{@3X_C*WodDuq%=xXys2%lxZh*=?4zY;E>v
z+0X{)amM=xe<3TuW{T%2^D*vCT?!~&<@?t+{8DCQJ1u)k%g%b6mX$#(E%seQ{8w64
zI<^Rm9zj&`wDI+RJ0g=&OUp9f!)ko$^maxpW3>D$PCFn|^iDF4&~NBbfUuntDT8yl
zjCQ(bChHwq)>zYHt?qrzZ397jDue$z_}I&YQ40jmC4n&l8pfe74ux0IvGf9dW=^g?
zNjGB at FcRn=yY*A;dfh2i<d#)iV%ue{9jOf*%skx*q%=z0c}5xe993GzoQ`o`qgo&b
z16)^Fq{_4_0vs%HWF;0Nucfd9J{*+iL7!_hqAA(?6QzABW8?C2=|d33$4Cw{!!g8w
z5d1f>v{zpG=Eur7KV}rZ85LLEmX`J`E$flHcll?LaUUSOT=LAc&^>OMc5Co>;d1bK
zoESOe_)BYk`r*yiwFAPD)B08hrjaUDWc;XS|E`B$K1*mwJX;eta&YyFI;l+%^Xh{m
zaT|uimq`A$9z<gX6BHwikpaeZymH#`{rBUvqmpU5)o?`9DekaQ09Mh+M1=yoYgk58
z(;BH#VHJ at fY_h!xUUAK2{7NhcuL7m2$b?kCxvAcZe-N2*Kg|1x8}<9Hybl(1o9q{u
zu)$7hlfJk3!+d6(%b(th#`V4_qn1`_OY-jkLPG5l%*@vU3RKeXkZ`4`t9O@?)UY4E
z!f>9>|1)VNt8B%<^>UUuEdvHUIEH}W2ZwXFhMaNt;rQrt_Pb}F1Y8UcvCW1m%5BEZ
zpQ#^YAn%+;fX(81a;w9?RD(4Lq1yjQ1LtvCHNVMqy*U&at6&&2mkjbVv>c9^F}b?0
zZ+Lj)#?y9FwKX*>2Zl}e1-n}tH=Z$leXBd8%p6WF{f2-2x^s0D$n7zbEN?r56C|a5
zt!HZg7Afg%Q!3Dfs!;Z}u4}K2C9}ijk^)-Nfh`H~Oo|fAjRVn92)G0+Mq{Qe-4Y62
zP)`&RAog>$3c#HWG`Ve1)%!b35^dfuva}$L%wjt!-=!EZU?tiLAVQSH<doPMnJs2e
ziRo-a<lk8xI~#iP;{ReF3{V+pUr9okeJ;$r0}zm5`?~fqdAH6V|NS-GPG>%Cv#sOl
z?cet9^;^Gy?%rM1RDb{uvb#!<5Hgc3|35kHo<Kj;ofx=gAI!t|iC#<f;l8I_Y$Z1^
zmJn|`C2|iYEL+k{eUFAPqOV7qn%bPEq=uvan1%M<-A2v|nG+$cK7v;6TcXg&wga1G
zu*|VeS6Q{R`B+;>#s2C6(<GmvbKFy}-Gjw`m9Wg4|2(=4I2k?194U?apx^r*#8p02
zJmC*17-cR%<!v<@V1ZoJYSknDw;;^{k&pra$n<2=5@<d}drw_zQ)dET#z6LP6v&s?
z)lEh$wH5<|AZOP)2RrsT4m1(2qYH6OAJKO(l>bfaiw4TgU{uNdkJCTYobyH6K=d)|
zKJO~;SvaAukLWX4Utc+;Qc#gWG_kMmFIIni-#XQX^8%tD*C$Y^Iy{ZI#86NYMgg0k
z_I^9w3Ti65C%Dtjn$5=ubw>59U%|Hjz4M=GPE#TKCz^HE0Ig;`ypUZSFdD>j at BCQi
z!lEFuKFx&Y>{}60<4Vd)Eb+X*@!m+QHzJ{sO|(Loq<@%)m|kc5*;k9%M9Us_Vbflr
z>k5AH!Nha!9uLOuj<k6p@(bAo*3ag*m|IvLhQu=zE5ExOl{UFAr&O6&_!LHQIziId
z0h_R;y6es7tRS*5aZj3|vSf$DLvFpKdx-n6HR7mx+!DXRWE<%j=|s?iBn88Y&Ar-e
zFj7q{wR|79&wj<2Q~142!+X4?eS~A#dHk@;Zv234Gwp=&CB|v-e2GHWu_+<q%ztW?
z5#;`=)kT^Q79AGEekDbgi?y&9n_yavsqVc(H@(}08|*&Iz6^XkWV02Dr`hC0 at j-1V
za&*pVB`<%*@?7kCm3#7L$j8Vf44XK5057LA%G+4coB!@XsyO{yvT-Bm$4ME&+SziT
z0){UC-y=g}XDrHm5lZSrV0_~Wu&>f7J#S3nv6m7G?0kXz<;;*uB>gS;BwI7*iwzvo
zL7Z$-#YY1x@|`mB{RzJIEGn6h-0oR~Kp=Iv(e>I!q(HQTMgqbdOA}Hh6J<nhP7t1m
zO?Pz*qyMr#Z-F>xdd}GzC5LTv%F}YfW$4?Z+_?tV7#1G(SQP?^fRQ=IcaixCG2FF?
z;)tLqf=;tmsU<rGAj{!}=cp`_c8m6y1v at IX7Gacb3||%Mf+y*eEN2F#o1kmWLYBGS
z$}y-bO4>z_J=S>JFeN1~*Uu`UwT=5)lRU^j(=C&-LQCp|m{VNhv>c<xRanQ4(nEF*
z9inE22$+6yLgeXUVjeooF$?8xVKBo;v9iY%Q{93it4$-P1AaR*)d`>NmPyRkT_o^!
zex_JwO|U{av$Krj!g+X?Q1iH?nm2i!zkYZ19_U`&XH8$=r}vdqJ4~AYHN<l3_Qfl`
zzq>kr8N0SOWK8ojTXWS0M)NJVvZ2#s8XddgZ}WujP7W8m2oDI}hkY7>uK*$$$mG21
zr9o8{0!^`odwZX;TvSXUf5B@{e^Z3TZ=%H17;bXUILJ$In-3{Z4<#R_qVxM_{IUO1
zc%jm?93O~}_7U5qM~7Ndxmo({nR+ftP|ER#EcV9|r(*1H+F|x-c)*Bu#++W0TQf-u
zOnY at SOYt&p-hXBEeVr+{_5>@z8q}VDp(#XY8VmLhvw!TC8cG?`Wtn|-3kl7$sX!k6
z3Cc7A_p%s8MlICIDPfe%JC3`KyO2WD>YpF=jORu9O41M(##RyDBI}S(qRdO=E%SKm
zS|5kKzj!YBrn|kT=Nj6Z+x at J5ip9VwFY0{A`F`u*U5KL<x^TO0;&OpPtN{MV at HmnD
z{$ln&Zg+8a-3J_Zy6$vQiL*a*4G9YXFbzkFwz_V;XJ=dDlWm;dsfUd*2+RMYigMEJ
zaNGLSgMP4P*=B6oruLU_Yv^%mt7D6m);D$5CUINnnPvyB`&HO?sC!)vR1)>M+blIx
z`gJ^ARU<POJdURj-)8Mj_t0_Di6!K}q>Xz$`fX4dw}lYnBC?HN!e*pX{D&M~AurH|
z1ExW&vq%??^_|WNWTrv>10ZJ|e$4F|?v7i3uzwx|j^o6*@9i<weFc5&2t3`9O5s?z
z^XlB&IT3gsKylt<GE1S}f?m at IOgnTaXp>1wAg|xOjT1rc33Kfc`6X4qb*W)(Q+sfK
zV_Tz;sNJ>jWExbElDBeV66aD2Hb8pG>QO+Mz>$bXyfC-GP{*{>mLv8tKDBIE?2!#P
z5=m=si=cys?PDdyB~2CCb<Vj2a3za9wYTf|(6Lf;r)SHs;ig%Bjukn6rNriHxOn&p
zs7qv}G4g^t$et)&)@`F8j(2xSj#eh&U3y~9_2ANW7C5*bI@`6~z@(|(9A<OEiy&VP
z3!=LDImoQJ4z$onInpmvazM6*!oj!{q}1YO2-Ab)6@~ZZdB6I)p+`&ib=nHzktCts
zhinbQpfK{$NPRAhoIv;0x0hkU*;&3piLGM%7Cn<)(2mp7fz<}W<kRKA=rKW@*xL0f
zJ13M&ecA(*wvJU?`_ycQmro?*MO3a8{Du>w at SkArdT4q?xf4=*dt1|Ky6~!QRQuAA
z at dmVoD@N`Iq8nUO`PfwGD^C$b3nzWUGPoWhRzQ(BP8|BqcfSG%qK4JKz%w0;<+P6o
z#r~;U`L8 at Kn^>qAR*?frZsW6j-jCX!%t3rz at f~f&Khr`RdxBwoSl?fNdkufT8{AH|
zW+lA%!<zGD{t&BgQ)3@(j|U>sf&|?>C4M;mRQ*Wo=|m~{pSeiUFj#7Tla*&!z-6uS
zPsgN%{b{V6Sc%njX~(^)-kxiVep9`@phmMB-&VZ{Ef=cx8Yp**=^w3 at X!26^PmkCm
zfm?0B6_uc3G><G4ptN~En8&{^H-1{iPA(Zreh at C&W3N`byG5_++vdYw{)Gxs6&W|~
z(MkT9=dM$4mIkA`@7aj=FX(pz{2yOk%x8x-qdF-0SBR8rmvFdC><FDKhKQHvZ(EOt
zSKyzMe%1pH?2d_p-Tenouab`0qx`g6v?{d*aHp)3{+p6c{wgqcs>z*Rx_r{%RLj at D
zpgQebL)2?d_ at cnY8r>M53)5n0r#zbwVJRD8)dwby?_OW8`*^4^cGyo7xPWR$RiJ95
zk?onR at RU~8(m-r7#Vfl!EU`Q>aUc-Ce|66$R*!ep*lWFw1~SEe#}7RX-c{okwgSB$
zSUsYfoV5NZJG&`NdyYw|q~qUi<7Y&3$yr+ZO(yNe*~S+ONy*q1wNN-SGd`EpK>r;u
zb1InRjM(6oO*L9&XW#Oa(w->kr5+ZQeN%KDT(ou4u(54Bjm^e5vGv6`VPo5FY at 3a3
zHRg%U<^*kWV%?1KKm0HE<*xm_#+dtU at 3kh*?m7mQpAIngA~Tnk`i*>9s-A*gHgO4C
za at +KBk4cnawVaVqtYlai;O~Xhcw2A at n9#R3FZduYJ-+vrE9Ej_LI=gqf5T=T&}h#N
z=NbvI608tctfY#Rx|3(c$deb5Pue4t2l<d*(7yx!Q=&|pfg?X>r{k`9-js~Hqdd`?
zvT*cEr1PqT at +~A~cQDl$fFdhm;z8w|JwysFU*Hzy6KnE+yC9qQxo?DT?c;3X^$fs)
zs#6Eu#+V|%FzPF>AlhFOHW;I#&rQQNp56mjtE+ii7~%)~d at L#`>aN^9g?qk~O%`-H
zRlW!-=bBmX6q5uS6u3kW&!d&k592TcRWO+WI79$u64&e1YgV3z4;+%1t=mT&g0sjw
zKciigw$t?9_0AJ}vwHiXo{er6p8iSmiKcb`YWCwhZSQ97D5ehzKE{$sdww!+0iV8m
z=<x1wBqPavwdMZ*BC$m=Di`VKO$j9gP%u?%z1qO76F*x at Nv}qOTpLO7S*FKXe$Rai
zP5;^0v|&{wgq=~Gq$S<oxAm7{Sc`8cqw+S7f#%|fsMLX$g;@V*r at E#qSw7nLBl@}v
zruzO=O_RnwJ!?h=Q^s0fkF?ckr<q^6Gg%IbN#~E6Wd`-7A^6dg*G^OKE$<Pawia-M
z<ezYY-2L&cw(?-4(aJt3 at k{XpkM}!PdKC(1&fg1YK_4?+$TCWuGL)gA{i$$O_9n;Y
zP7LYWkB81v0QXNJNv3L7wHLxtTatEx25FB5T~As3t&czcfwaoaDh^jknW8?oc+cXk
zwXL~Fi5#oIl>uy-UBSHaoa*@d7I^{4K&yIg`$uC}Zi-Q>*yO!gfOT+H#m;${+c0<I
z_8?<SAI{dewC at XZ7NIE+h4VGt{1+4NI?dCl#*D>=n09jtJ|FGIbz45F1*TRpZ4V{5
z4R9vqO~U~%K2dkHRc;k>v#9bK6+JExtfBL8mZ|!i6>V_(O0a_3W6RHU)i@`myG{i>
z(UD^RnCfokd7oGoY6YF^<7W$z%o~0|Cpm8mxL#52c11zB)3I3tzUEw<%^B^jZ)y(N
zeHC?6KS;lDr1-;)r|WD}vFaR}OSE+FR5ZR%SF^nJKq}{VgzpakojiNAnXsjgq4Zjj
zU6o at en@^m8mlnrF=mHb!0tH*@0!bWaXb^<-4V^7dGU$|(%zsvL7Nbzg<_-XtM8#YL
zsiHgH4xP3doea&Y<h$s5q;*aeqHP&KdU#39WG2kAUrZgMlJ`nvnmxt1+dLAOfAdJW
z*H9IIQI4suK{jU!QJ6 at JhR}x6mo{O<JCHXR3;!_+95AE(btDMbe*aTrx+DKPlg7rg
zX{yaU5Kjf4r~J~*Hvv9D>Xm2u`QPuZcn$Wsg53A^5>GH2<ZqcXdxS=xik85}QUM at d
zY2kIr1GhPVd9Z{Hx!3<mUP1kbVF<EzeO7Ka$%_ at c#JPr+y1tY_ctWp*pU3?(!Tz!C
z;d5mfot3ISiWK+`wZq8|KEA^(!EB%f{*gjZ4CF7kZ~kw~nIrr!6r9BL-AM&1s!AGk
z`aZmY=B at h$SjrYUU(;bfEco?yaPhD7hCvH;ixrup!P>v)YbR^OA$0k<s|>UW$v_Rp
zdd+j>4YaO}Wr#r9LC9ZO8$lt8UzPQ#NjJT-IEdGj&c2M_xh!v5o#F4xJPShGI`yCr
zgZ;)+wjAqCR2+>PaSZpaBYKXncyd;7H`}y=mcI!3!CCe%<+<h4d#5dBPY(@4$&>`1
zOCe&^V4}bXE01fCo^S*1kBsE;ogXQ?^NeG|DgPr$0efGOarZ!nZv9(11~YNy)3DCf
zWW|tIWsXMDem&d~%8e*?$Ih%N=TDU_O^&T6d(!7M#DO*u$?<v|=~OYWCQ8U_7M5LF
z)Aiqu#zLfh#7arZ73;!#MaPx?5Puv^;slBg6cuY2z&+B3O*&FaL)C5827L3d2Zu3}
zf$- at 9{@j0^7Fi8;?|GGVA`@|2=_K)b?b%uh8N;8RW7WMCHuPh8L|r>UE14s!jR%kf
zJaqRlU`nxu3+>j2)lTW;y}<%@Px%&mbD73 at Ic=IF?p3sffBo&v{vJ7a(Ppr=^hCv!
zv`Q{){6R&F-9hHW?^R1?WKIr5gp2mQcWS1Ny%5Fq$Z@))aH0D<F-`3*?5Dnujf4NP
z*F<$Zdlv;srirRr(==4oTuT~Z(!{wFI at LG<WRwqwE>3Dpa_CuIa?vyKuMjjOTC^Ur
z*|;7V+if2Y6t?51JcOZ3(n}a<MxGwcJzIvYVgrQ#1Ye|J8$|z{4_*9~Wr7wck_lGt
z3pwnkgP6D&AaoWycZ)#oB~4__ at n;$IM~(^wYgK-w;d>r|<K8S{7=Zo3XL?Iw5F0by
zBgeKHyxW0aejXYpW;;1 at Nwqt#NjFKkO8GyjoaCt7vy}2f;JFsrR+@|yZy8kC0j-u(
zIeZ3Wh#E$VzRcq;lf||crKMe&*)Fp;HRk?-UELp$=mOqfc-N#xEs|KUm1dFeQDR3i
zJPQ$WLTkIggdZnHNxMOOmg(BA%+?5AZUz6w1w6plXiaZt`_NAKP3zw at I2umZTIp-V
zmr0wcH&c}KBu5&WbJYRgD&nw*tl^nO=VeP8qOfT6HeCl$4sqX$xO-?8&hgb7tEBG9
z1$Frn1Y3%)_G-zG?wyr1u-2sX<p3_{9wWZL%Emg%g+*rTziqLiWd5d{Ii{R|nmmo_
zW+~|M<$FF79qSAb9eC218j3(g2GghCArFP`uYV;5;qzVYrhi>TEiC2T-Au0*Kk+3V
z4M?2%;4LYTt$^fnq2v7d)1dBSt>W3x at 9X~^5~pZwrqS)90V>=v+n9Rjkc$A2kr)O#
z`0yXvs^Uc7?~0Pv;wa`!CwU(;N8(LpzuR^V4H(sB$Lj5ZI?GIf=9}dNmUrbup=0&S
zBigQCCax!>{208iK&__eT&E6AXn+{%R&Uh@*vf{tH~+2N7NoxgB}{YmU92zJPqG%9
zZB*Moue;^~co0AI=|j4<kX{S?&%$4+__-Gs5<P{$$BAmp(jJ~!z$JO+sCeK1#)r%H
ziiG4vK{#l-DmfS8>W)<C?F_rxb{uI#<B%cfuO3FNy>wFcs!WIW`Yu^*@p>tV#&Y5}
z6v{6jHk>uf^U7M~g(H-eN{kJvQL<eFh6gCDJopSOEl`wl$w=GlWzvA4x(U8%>uvYm
zD?mp at jV4qh6ZqhDOVJawy|tV=VyD)h6>5r-_9NBSvym+I2kWR6^=1%(Udfg-4d%0X
z=7xA)GTRRObf!oc#h3Vwa3XFqmxYfLJb!h;2-nDMcVqIpz`oeGxKMd|Zzq9cF^7GM
za7W4ruIZoGvl)Ixve658n?70TC0-xeNJrlVP4`bkfziqJ9v>@XG`l&l=Cw0A5BlL*
zt!|z#`(R1MF@{cB6Wu6-eBMX{I6ABTb8GqfdK*y^!%N=chkHgx-TrSEt>47T^{6X9
zN at tU75&fvsfnk5CeC^J43OyehDP_tIkGTej#<uF^)otoy?hC3aoB$fwoJ`GmUHsOH
z_+URef<p-3b!xs;xEn$-uNTeZw_n>wP7YN4Qi_YE%W|3-(9di`*>OU~Cdw^PVM^J#
z)JV+-o9jw%JBL at fd?KNY$-}r}6t(Xv()YwBv?6Nr?ef<5{X7RomKq92N^?2l4>i33
zJ8AYcT(m4(v^|#o(p)c0a;n0b)Vj^8?q;l%B>c~4f3b~&PZilGRcMPCs+=CviYB5|
zkwlunSwKt<Z&@AC&d&(+n3)5W#2Syh4cx5s!KC!<-R#fLqn0<sKCJ7{z2A|fe27eG
zB4rc$gLg*Eo=EBH+Pz;<4Rm*WCa5*`OYo=OeFaIabUNyq2Tf?Hyw!zeO!vH~Kl?^U
zX2zr?{&D(%m at md*pV&6=`23@|7PJ~Y$tKi+IqGgrI&5bbCQ0<=qIoIrUGWIcB!4Sn
z^8BX!lGY)QLgkrUfl*&U0`5`07R1BF{2BAc7RyMZYb%|zdjRXrkvga!<Auxn_7=F#
zjBjY>(>_7Q{P&-8My57?)p6!avF_MMU=F0a?TmDtiS>%VlgYfJ(Y{yQgnx1Uqr#+t
zr=qjSr8z6ZoF~51s%mnJuJ4D}ThpZtH^GDE;S&1ucc!7a?q_GAm!pvFgu&h84MRF(
zN+)*r&)NFy*l|Q`Q$3X2fYB1`6xFo7Pt&)K<MKALj5e{fMm&4z%vJkAs_;qkv;hIr
zsiBlX<x?mexl!KE=a3cYUA0s?W`Yrk=kFz at -3Nz?h7FePPADI$-I5hmcXx+7boK%#
z`3#O+n+MVq;AY`3$}0$NT?(kyK=p}7wT)X718dUG;JQQf5Bp-P%&mb(!y`l{ayK3X
z#RtjPY)~#pl=a&sFG-Ks(R8z5l>8X-(w~j=1GNh_d%my_S36t3GloknA|VF|*2jG6
z!BKb~*HKWZ)AtonV{pDf{k6vTy&{lp1!<y<^O;RyAzRJ|&P&PT#nVP>T^uXA0l^Y*
zwM>iDg_()@*EmSjH=_6l`u+sW<$GL+=E$Nsn5mn=)@U;-rxDr6VeXFTp-eo~gp)c4
zd#a*So*I9)8SVmO8?!zna;C<GT>yB$y>{mlS_t{tIjzkp%rhzixdGoX<MlVY|3}%U
z3-{Vupfc{N?(2rY=y%9q#ud_f62#_cE|Nc+m)#`CrqNL$(Jy7?DR(NAKlm$7tD4OO
zoF)brFr`DLngy2$tvT(+IKxhZm&^CoKzzZlXIy8}N&V8MaSv}e+}2MWQ+j)&Gj%B>
z83&=<2Lq?uocQXM<gf*rq*e5PfirQn3&zG*$0Y=?4pVEB=$MPg-jAu{5`%6u6Qmc=
zWMq&9$KOXp?nb=*9|efBU-fh9lU;;Yo}!I1Ni55kp%>*v&4trRFD$Dc{5jY*dj}1y
zxfXD at COAVmNxeeITX{C>G;<&x at _Mt4ywXH_WtUEq=}887mIX`0xXKLuO1oV=Z&M$X
zs&Y>sb9s#HT8>CBHyRVn>$4|%uk(}0_)Jv<*h=442Q at Z-lE%;UK2<oOv2pyxqI4#y
z2|E=A9n_yIvvB{+pttos(a^ruzd#v5fO at sY#r_whx*(;T^^=#K#Y3(ygP(|+ls13K
zobxy3G_ZY at 5OG>Eg{YXDog-GnIm_bhsTnTT*4D94<umN{RON{8b+;fTWzn#QTT%)2
z*3G#wJC^Q at qJ%4QHRnV at Vi}L`ySp$H5)@R2&Ir;C*ux%c0ST(rIRdf?Q-_zCrB)No
zHaXDRs`-_hFjouV3g<w-EF4pOW%-QDoO0zUTPTQ(RZF;g*wgrx&t!J{{Ug#+E$}E^
zHEh^7Wp!nEP6S7DaDTxLR#R7ZiN|_nv<qY3a)9bpuj>zn^TEvzBa<a&t;O=<j{!pI
zx6NUp!`(SXglKlGMAZOMU*UJF-eJGN2))3?<cE*XScCuEP>~4ON9)0PGeYINQ6P-B
zQxEBX#o3;nt6g3CQc#E=?4YO{lU08)?4vvztjG^UM{TzRRW%lsE$F+MK>D6rn?1=~
zEa(-{@0vy1(FRbu7vgVJl~pEQJ2PKMP`dLat5 at p}3>;5gy5;x12mV-YkgU!lLn4R*
zvf2S&|Jj$g5Ee~73bF|QCubEkdz%(vC80H<YuZv=$@4m{VaIEKy6(ip$BpmR64a`D
zi%VvpddifBO~RQIW3Xbzwvz7M&?BVP7w2paY+XdmJcJuXMy#cU2VA$F;mMM{Pe>~d
z)izq6wq^xgPD-26`G`=l9nm{_^K7V6HBh-;Vg9|0@}u1C%!SwcRehUO5?|!`%Rj8u
zif%5bGMH&mfgDIUjo{nTuw`J|$;F-~+Qrpgof+BB?#XLLBbHwyF$Zf=9y9MVg<<ev
z at S6<L_z9~ymL=x2bGep(RsH<d>keo7X3%{6w}iJ>)XWx9lR^dFngSlo^0>>F%oSMk
z9iW;%h$=<g=dvuZqS}h|3_ObZqyc{J)t}vBTlnb?m6E-QR5vPqpQ>ikIN&<jIrS4w
z>v8spbq5Bw$>KyM3yla<JGrc7 at +V!TjM<svJ1O_c0^JYcoQjEd74peq3*}d!58Gx?
zV{BRLwR}&*FlqvNW0HT_CaN{$qe+hzQ*C34L0wDo+J^b&!MIQ~)>7eOw1mH9U;9x%
z>z8btwH^wac#%x<hvKoxRy%JS^rWZcZ}WP+pwJM#PeubcJBZWi>1UAr0?G1CZEW at k
zC<~hDv`OxA0T`YU8X>-!Z^8{NZMk~658ysV9(+lDh6fRx9i#h8_x0D_!!&WnrlIvt
z^fQ#-o=W2u6Z4bmLcJabJ3gC_ry*@YA=;gPS^Hw_RtCYF3YG(nLf7eRLzk?KK-a9-
z!2qgu5qjvu#V}IGMT2!+3{znk^ZuQQgC^z${-RZW_t}Htj|+n-fRZAPY4Ex9!mjn3
z8^BFZ`OS7TM0)x3`z15xP`)pq21Jnh-1=V40<Y^+;`%&hKQEY0=A83;HL@?^DWWGZ
zr`wg*HNapoO_I3hXIV={E0WMXD#d`5Eh|L9sIHbe)%0dj$C8F$=^-7*gpiHJ?bH(f
zZaC*cuFZt`a?gP8k<yYoz>>@EUbApZ$N=QH7ylP^6Ur=qS|Qr$mToM>$gWfU?PpJo
zZCDx`y*zFW17fV{oXOL^`!|p(z#pD{o871A4eq5>1Ty<%>2S at 79I-YWRfXtxH(tP{
zSj6_$z#Eu48O}Eygwuj<!=MW*mF5hK1&4bc$mpU%>VraXiTd at u9t{eUE;X6?`3<hN
zGTSjT{ZelAHuPIe3iniOQ*}-oIMO9M!+kUH_6wB6e~38nvJ`4ID0q?d81fdAAB|^$
z4sP%%qbJVZe!;3V>2j7o!qv+_Hts&dUZ!--qjt?gxoqv@;M?7~mp4gMehGE%;U7H|
z3Qfg!U8eeNhd!c+LkxgVU(v~G$BlaOF<WDhgV-!MU}qO$FzOpa1U8K{7t1(uF%5Hd
zIdQqAQ2i-_DGt4DI=-bA-zB-*+c&^%ljDnv at x$!~stLvKnCd?fw(AMtCp)!w6$BYo
z6m)gfN^Zf>-)63IY>Dg`F(X)2O7*JM%S3emr*GNQcr`Ou&RtOA7zAI!2QlSvh(bsA
zze-_cNtP`TD&ge}AOC|JqWJh<o3_XrROBN+&?LWwnEjuwg&4CBE5Cp;^)H0s|KpV)
z7?saHmeyNQenBu2i(Bfc-3-WGee1D&6~-xk_V|Qcsa_{@DVDiH!u at WbIY=JoMk)_b
zP+y|3l~<7=dcI{BQ?p~C=&OeFgZ#D at eF$gwKL+kXSd0rDR1iIVjRefsi&SHH*caOW
z!w7_k^d+gw2&r`wStO}-h(_vw8U((MM$NBSJHs{|szd-f$8;gqDh_|sjMv_%jo5y$
zUvX$T+<O2ig<yE%w#y|1rbohizvmUfsHglW`YN7DyrYD*j08cJ at lBUN@EGOsr_*^9
zBp=20InBpxLEeF#T6lp`+e{fMkiofk;SBSm8RHZ!^eI9{DmY0JB=0i-ZS9<B3?#@Y
z at yK`YUyfodt|OBgQ&hOe*0L^ze~}rm^N7dUNDD45_ at p4C#k~}jn0b#Ej#r8Stz|p@
zyz;D2GfzSQa5~0)Nbfb$hxa^S4tISHiW*W(swRl?#3A0NOgRQx<Mf~vscrUxI$mZS
zjw^l<l&mjH7rp}FsFsG3n1XIcdu`314T)Q?+neK)(+!KE3N|jb3U#u~vy%wT{Xvf*
z!h5KIJb{U+>+m7n(2T#3QQC^eg3(I<&mk1Z3Sb<Q!4CMH@}($r{qm2gk>hwV2eJiS
z1a5mvKLKyZ#Ial#fiCrg^AKcSZbZ90yR;qU2KJ2MAyRHeO^#Ug)^HvA502phyPE;+
z=Z2phA43FCK;I!=I%YLdE<?ymt<L5zR-{Pi?WHeV7Sfz`G~v6YlH?9ImLHu2BS$<!
zX+(P1mGt>mB6PQ}3C`Zcm~4~AuXU0#!cd=mayXK3!&4RCAE`i}DA*0pf00}`3(mjT
zOFo)ZtQCh*!}B>xn*6TWs#@|LE|e)TNf`Kon^&k{$M#M%X6)nApqq|zrypDMi7+p?
zcnF(VCV3jVMHw48A7G<%BvW->JVYO{7T0~YHI+=w{#MC=ax^smxWN4*C;jGMUIY$X
zgJ2Ln{KWTPG2Ct6^OVoyJ7FC~@B^DTa9pvNiO;}{?cqe1(Mys3X2Te*E at F;F(VE!;
z5&5}iazhcBHfDJ729QF2z(L{qSsLY5i$OT>eqb!AV8e at 9=S at hms^&UU%MJj2>*aAV
z-(vPc)FfuFE}+OP8N-<*y(Nr8(u#+U*-e^m$9uV!WvR^5GU8m!ePKt?Da}3ErGe25
z-Ro?h6X8g^*NhCnI)j{^&4J+b4x)YJs$V#A2_Ba!CTvo)C4nunPD|Bd2>9AKEIuWb
zzpwvxT(n?!?VAX6>g&TCdRkyD>rcKht2g7{{fC0sc1EDd&IXS`irCedfVLvcZf7Ht
z47rfc#{S+kDKtM{Ndo-xHHB$d$}eEa%&3Ag$pd2)`A6W1RuW>Zh8l at h(B+oC?d8h?
z`GC+)Hs2l|yZ8Hue%H$t4UT8{SHe5F(TX?`;qz4=c at -2z;5KI)>H?y=E}lGhhWNk3
zqh#&Lor-1G<zDsEpWDGAZDad!g3<iMB^@8Cs2mDH<CPxjpV=B6V1=`w2jazEGxUf9
zn4kl$uow>DaVpb1eLcZpr$_u$6=S=?Q$p%UakFVWBC3=qn0K+2`tVZzc9b2qS%@W>
zuuM4}7|P{8?y at H#{!H*uSaTx^KjeS4mPp9&x2{GtA%B49%5uIjvY11BSVHV(8ZmG3
zx)SZij`Whgoo{2<iHC#Y-(;8^j6%IfG0lM>^-u*M at h?Ua(<m$ga at jMY|66iY{E@(Y
zEplV4U~t=2Y3LDRoq9lPMY_if=i;$&fAS8-FPg#>NucW-q^s at d&3ySI$R<_l{K@{I
z=?=)xC>&0d*#WX3C=mappA~F)dK{P&e=@Cl-=<CgNFyLhTf-___nqwu0gekIyJG1G
z={41Y1KXwG`X9&T8BegL>~Z{j$_SaKQqk@|&1quk>gHeo%bQ}THuYnNBAgDrH^}mE
z|FA=ZWd=L!36?1H%oJpMryr8Sxf+v;SnPBKNc7EYCchShcU`j0=$@XG&et-`I6d+1
z16|j<i!PK+P|=3dM9L|;m_`pzV6-(g1ZPwRoPw%HTA9-O+Zz>vN70r0S5)AY6^G{(
ztpUa(o8;A?R;(rR_8Iyf^j)WMdpGVQKBMN;Rft~FU;*{&P9xPzqS2n6bctA56*aMK
z3^`2~$g1Ef1Q<|9v(!sMca5}zU->WGU&~eMZ21vp@?WiQ_)?En7g1;_K`qj1ViefL
zNIM|*PmT+YCgX<=hW%0!gG)3!1vib=wIY!#%r&UrLR9-!*3a~N--mFDzd(Hzs?})>
zqtulG`JJ(`-u^Zu(8Vf!Q`*RJD3DW(=ti(-?)fq~>(@_ua&+SBSpD^ehQ=zYIOHm~
zr>XnDMS6RHY*G<0wdUotw6dz;j7;Llr-lo~$3hnp0?O!FrcscM89^Zk0=r?j$QTwI
z8ZZmrSgry4Gt}5Pxh-ra<}s33uu=Xq+SET>u#8^b{v*R@(0XO{gEF=uAE3i$7>)tn
zFHcg4%v4ucp9yzpBw5MhK9ws<RR<rJR}wap**HXv=mYEA&*L<Mc*ioi5f&HQ>6kFA
zfDthN at 4&-wMn!xYE#$sLme2$9Xhu4c6c7-oKC4<`n!r4cV+>^f9{T<+h643J$naE}

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/fonts/fontello.eot b/ui/new-ui-samples/fonts/fontello.eot
new file mode 100644
index 0000000000000000000000000000000000000000..4485477e781e2444c35c47b5b8944695fcb79af3
GIT binary patch
literal 42700
zcmdqKe|%KcnLj?~-kE#v+?mYW`E_TQOoqv1G82X{36sf8OhODHh8RMO0ck)Qkp at IS
zq=?8WP*<!)OM$YkYpHdmrPi0fRza&D*V?W{ms)CFx5e((?ONOIhSsHS*SeOH%jf-^
zJCjThs{MTb`zpC}&$;KG^PF>@^PK0`dG7HCEtUlSm_ at MAe}cs(@*CvrV|3R)Xr?Ex
zJR8Y}T0Y^M%q`t%merQ)EgLMGEvqc+@&EOB;Ia%Mb&cglq_4JYLXK`(f}Bm38!XrI
z(lN_yOUBZOC+B+~+0>}Za;rtOthj7ZL$;&6&x at RQ@VDes*Im7F|0mxZMxk!>ApNN=
zn`6kwe+TMuQCDxg=DJ<`_AN!a#bR-6yyof~HX>g`I)Pv1n)QFN`jHp*AG26Q<bO7_
zX4TcBwtngB7R#<(c%EN_4CPkabfmw7bYjhQo3|eRPuy8{{Sxo=uD||MS0~@GK5DV-
zMtkhR>#p9qk=^OsVzGSTM<^8AaP at Voj(;T_LHa$w_k)es->`W_V&zXQmVHMp7W>G?
zO{+Hk+dA>H7R%QkLit-POzdO(EH;ZG+$=ngoZaRxd&@GLVVWlA2+yYcH at NzeQA_8T
z<z%fmbat&}nYh~WFbb3=48S5qe-Sf}C6J=05sQ^6`0cR7ELKa at Vi^mKRgcXW%Z^<#
zcG=jXv75(skKI3ZaO}|7H^%;M?CG&*$9_EaZ)0zb{d(+w#{O_pIH{ftoSb&D>SXoF
z+Oua-k7dj<78^^9HH_uQ7K{yzePV3e*q*Tm#=eI4A09hA_RQGvv7e6p``9nX-Whv;
z?2jjHC*A!0=_eEPeuxE62R{h at Pw?H~Z-OU-zY6|G at Rz|~1m6z675rK7&EQXi$AaGt
zz8L&=@P**>!M_jwpWxHM!@<7`J|29utgi&d|HFSw`hR%o|9`Il&(1z6`b4K?x~0yd
zJe`cY1Yy?9TEA3N9ZxprI&8sgRLFJ+P1&eT^h at z%2a7V%J2cM-%^R{hz0qWAwJllS
z-`Cd|m*XvU5x*)uwd09fty`bn(lu{jU|zJPE8h|i3!!KT|MX<8wWFP#7~X+0!ZwR|
zb{y?rB|0o_OTp4 at QJ<OHHq+-2MZnOUOU`6*sfzjaHkQr%av4?=m!;`UZ^{-rSXK}C
zCE3M-0rPn-e=+M2gMJr_X9PTsGWMRTtW#8e+1s&v_OAK%iax7kw?%7P(t2f0JL8W+
z-iR9YJKxy!^4PHr(#_Am_uP)5(rYUF%<RRPn_OzaDkm$W-ay!?bte6&)EjqbQaDmK
zbmP&@n~(mQE<g|A?Afzx#e-snMX^+4Jf}G%5#z}KyA)*|j9~~Hm{da`TBAbHF9&sD
z=iSHevF`cNZWga^^?!TxmcjjNI)(Q2dk*d1*dku??Et&&n*G8(uiPu`HV#y!1K+-+
zW9`1L?%B|4?OJ`$!dpha9Ux+1Ir}YfA;wX$RH5Bqg-rA4%OzbbD&(18W>P%GGHedZ
z<qJ(&J;?Oa>DGFot|KX2;Wtj{ZGPj^foQtwWL0l~?ez=8(X^24Oh}E!zeEGZsQ at wq
zy;WmXX@=yd(WJSR2(9cm+Vr5!3cJ-pZDw`ClU%;Kbh9DT*}1&4lkLuQb}hs2 at y=yk
zl)<ki>`#hU0``PuKI*x+PP5XO`2#LYcrqoUHUb++pi6F`UsE<;!2gu?0SAC2Nz8q+
zCN9bNpOS^<4wTY^g?v^Q7bJf9rOWSa?{!3U-F4cf3-*O|qlLcPQc}?7#6-LNnwdMa
zae<k6z3gO(Uw!HF1N2ge*+h2Fa~&7;I{52)#IdlpuCGIFsc^Dq at g`*~G}Dr`Sdb`%
z6}a#uaKQoU>$C(cb1W5|YGc%=Ijn-kI%{UIx|#k*7w52Q!VnkJJ6M6Rx&{|ofGK)f
zXwKz>O`cr72_rfk{g(si+X?ob;biYE)nmq&g`NJGSI{G&9;dWDrjL*5QMMg@=$x5|
z1=vl&y!#4wh}F#MkoTTA5!06%H at W>nC>*kCo-tWvr~{c!X{^4Ju|_=>a$TY2^}QV&
zpG)gAfvsD4I#X9^$K2HB8dxEZOET_eDY{7h=}e}Jp1qg_>5?y$Ek)rk)m5uhwMmWQ
z*AZ2-4hMc6Sv87ZWHzZkDO-MTx#($?qf`pFQ`284UvyUB{#tQN9J1K4+xsmc8t0Ji
z_g1Kk#yQ}rma9G0o`Q!pH|2wRAjN`qRtU<%9fyn;g$E9e at 03#2sV;W?cH at go>)hUX
zk2rQ{d<DDs(D+}lbz6j3YW5TSp`hX+Uu%C5mkLMGQYXfwJ>oa<mDU*Ml5iGNR%pV7
z)>*-0;%Fh21chQjLSIiVnW~BBl6eeaF;f@*+F|^YBkDix_A_9bKk8r&j-w;<4r3<q
zpTHF5aBYs|6HiI1Ae3_Ejj$1y!+1^gyASHF6L|L^p*S+0Hnz?iQ5A<>s*n}D#&+Rt
ztDsnmIV0v8KKlo8o$y^t%Ir(MOQ!kt>u#W<jIJ~T at o1$5f;<aQOR~qWqZd)ZBr9f@
zO~O*_GFv5>@Xi|n{EAuvwg|o;34%nOjp(#~T&J;w(ASLMwYlt8HZqUxngY48)r6eY
zpTDP|Ay{j7iVurTmP$(wbJCay(VPIN4yMx%5v<PU&6G?F3~S4m%V(!E^bQNkLxjQ)
zECz8-Hg;uL$Se4~p~lWE+j7PDe=Xj6Uqe^uT1svRbv1<kH#9f&yU^lGt207&`lX%_
z3v0#u#aq}`_FQ#Ca4j3IZWQWkjE6Ra at b3RkoA$d9(FEY?A2>~LW5;c<Tuivyo|{<{
z at jFD|Dl0C08cka6MBfNlKDtPM<nzbsBgWfR>2wu~f>cjQ{C-MmN+S3My+RkZ_XK~B
zUyYXY=YyT){TSo>w%L!%ELVZW|BPj?CD`fz{LXDRtoziJi~HxbHO)*!d=9G}NJV`q
zE)JlN?m-&pR9q}(-^!m;Ux}F0Vj>Kr^!duu*id~JD$mCb&r5p+rFnhPn0`1IWw;Un
zoVaDHCKAD at ao<Ejk4<^PR!_cIRtgoCJt(XEz<N;SSYSP>i85&&{RG!h^TrR#o(Ks%
ziRpAPj{muZm@@G)a19(TaP8bV@^recTr at c^(#M<^z8PVhi#Yh9c_}_G6mizvyi6Qs
z7Z_*Z6>L=}`2+~TV064tHqz%j!!VYW{QowRQw9lA(b-q99y=isNk=N}jQ9>W^MSW?
zu?FmD!~_?7DZ18zNK9uoT|DUiej{@RoPRuB5pc4`@4Ke6&<;n;xt)b#?4;BEl5x_i
zI5Z~Te!J{dtqKdi<aP#Zbw)5~)Y<s{VYX?vq(Q4{Ju>GJ3k}T8f^s3~D?(5MYII%*
zgqt7v&Dv|<d1S^v|Fc1`1l9Ay690P5kAGbA_1|27Jv&?kD{=v#2w#YIwKiZM^;oi&
zHgMxhu%>}8pIo|l{=ANhnqz)h0KPE3iVHdH0IZNLNC7{%T0Y?r7ie4PV6^*Zqt+m?
zyWj+|HvLkDbqKnRmT)qaZ_cH_#bYzfrY4FkSk}5=Rwui}n(nGj){4ST5;D36nboPq
zAZ192Oz&XNv>BRQ(~^v7E;j!1;w_8ukKM^-iKlL6^ExsME?PEAtgWr?uCrb;zxaGa
z?5?kWNe{D%fHq)U*)=fG1*xPZm()X%u%K&URe)U5(iIW*wo!$Pjo&WaA>91Ut<vrP
zJTt?(#km7opdu7v#mB{cllGfzalfgLeT at AEqXGmX?zn-0C!oERruRJi&6We9{|(NA
zWX!jnxsBL$G8foxwy<}qQ8 at TJY)rvxjfbim8>`vyhF}JJVu^RtxJ(fCE5x6(xJ$$w
ziMb5+?=oTOu}g1X(IT`j-?itCk=E9cJJ_l+j!gJ&%Zl6g-#*fA&8^;cVB4BT<8RAZ
zurfJL0jC>>95;QM+b#)^;|K>b=((PPY#C*k^r;OCZ9`j!ge9Ao>|3;ZP*}X{;X9UC
z2llWl%UWk6=DhrVX!oJrL;PaAHl=;6W2ih13HPFP>4?Y5*Rd({By;Atn}aVNavL$N
zUNe5}cK74=5Zi!jzgy6C&4{_(OsAx#eVtve;g_l<+3F9Fkx53Kj`bSxnd4Yp<b=Rk
zfJsUQF{NB+21`L?Q24ab$oU=iT5T at 3ZDgL&NZb&6t!stw-CS+i!=)2XM%W6jxjFkc
z;vTV<%T+;)Wx(rp^0D;fK&LeP75ut2uO+Qgu(_$Z$-|srJ5=L+W0&#XO)oS3<(G|L
zzx?QpH?mJY&z#14$bO%x&+k4e9Ao}t!qI=a at yEtDdB2_%m!e;ONM6d*)zf?u at qWx?
z?Bz+uUe6M~5+6d`Aa#!IV4qOciyRS$@y9LT-!D?tV~z;>)yTZ at lhjKgIB#S-itr~W
z;&4#eV-EJg_*fTuIadhL4~Jo`uoEyipcn)#^xHWtgzRrh{@FYy86sy!QzEeo*i}4)
zQ3MCbi3iX)RZYb|c9ZV<Z52}`<`!oD9IWtgp(-t8D%mPxZwkX~<7rX{(B)e$of*Fa
zU+iXXzx$F6EShcwztmFCjJG$KbAY{5*bZ74w=`i68dH^iH^=8>iZl;=V~}L*-+7ix
z%5jjvD9eLY0ef%r%aS#gNF{THd_A)Uv1MFwYkdD}`{TD>vEVIcearYinxkh_)3xqK
z>=Xau7%)CC{?+(kz~LBR3QIC&z`<H?pW8Zb&Hnvs=C#hfebcU8>{1jRy~ODfylP{&
zcHHOt%L51g(wFq#dO)~;ho9^J&ORl&Ma7cG8n6pk1Ej}+*iR%Ff(U at deOw};goKbB
zQefvvXu~6Lz8rcy6y3vf7ql1y7jJu_lMUJ8nq)j)zj=tI*^@PyM201d=UqNccm0Qy
zaNGW)rgPTpIJ=~<aPDw{9q#<QZ5JDl+qAfiEt<Lb#+k-t^hyoucIk2VFD2yvM|^gs
z6IJA~wxEsVGV&1SKL{+GW4Xez5^Cj}ErCw&O`l%B`l{i}FTH3+EF5qvf--Anfe0pF
z(7GRNJrcwng0`5fqRH6VN}PPEU`nDStwM6vnLH`0Cehy_WuRS&7#dSELTseTa6^Gm
z*4*#++FVZCUdiQHs%i>TUCte<0@;RNgclo!GM~#l=XBn2uRG%&a=X8z`W??V7~lBp
zy&xz<nufIV?;9G18t!O#&dIJ*l_T^jE|AnX^8Nx<tF}F;{|kF<s%G0`Q(aZ1Lh6ku
zjbelIGM6_r{=LJme#z~=T&s5<_^i|Md?OoDzoenndhJVhIGumr_}R=*rs40MUGx$_
zWpyPu)#ZC_4wpoAlZN>0bK<??rO*psWLX9rALy7-9kP<{jf?g&c(dss-!fJklvYLI
z9_WstD~kMjwvfsQm;$H?Q5K4(q7aoUq&P~Ih8T)2zWIsu?#)_8(?ur}V!GmTS#_Uw
zgL{@X<TkdtZ!pJdvpeGnimEjlw7Xnl(97QAqkBVU_Uy*bHEcFVaZ^Jv^+*s^dUa8g
z+yL0BT6Isxy_trG{jILuV2;aXH)?db>|ndCsu=Vbd-zD+(D1p&*|SmQ9W-K_GrP<b
zr%NA*e<i#GYMTXJstLO|T>=?Q)il=xhz at z|knN#y!V0rPrAG*rFYsLk<3R#O6$3n?
z7gG6NlFQj#{J$-3lLgsk>@arVRa=c!u(2<C8-2UDD)MHV!0L?OyLEQrgkJ+~Qj8B+
zVup>0tjl--WoOtlD;sdTH(f{A^NZCsS8;!0t3gAfoQ9 at rbdr6!xK(1yn at EvlY9)Zx
z9!NtX(43^L32A7RUo(EeRSz{a{D)w!aqGRhYcC1ud)@xg`TPN0Pv|Z)VSHN`Zd}Ln
z*P$5J^rTLg;AsP1wPe%ruri_3#b$}+R#fa_C?{0B;yEf`TN!^Mw5f8wxZs+bsrRR4
zb^fG+cM7{Qv=lmrC>6rZ5q?$K8Qhz<Z%yGH%>Df!_}&?oPhhSuZ*}sy#sE$1=NK><
zM4f9FP5p<dPar*{?vshiay5u7k(vawG$W>R9da9k+<+Z{D6Hr$u>gCZ&~eY4ZnJhw
z at CT~qvIlQJp}J*RU;1=s*EFF*w%eRiEaV0M>rK>k_OEVRs>`y=al*mU`-+^z2y;qq
z(d`o^_=%ewHrZuYnR>z at +C%FuUHJDE67(DP)_mXe%1leTF%i?9>q2%B^}tj`eK&c4
z1lOC)p5f;_fT`TW#Kc`zzw8fUzbNEWNvPeM0z7ptLm<pP>Tn$O)OT&@X$^<OPfCha
ztPrNPg+~SmYSvWF8N728%)m<?UvQZo&*ysbHLJEu%;tJ&UR8K0Kx21KWfFi>;O_wE
zGT13<vA0d*{GF*@E)b;w9 at EAfERe~9#OqW%CF?|Ugm3h%S#$SV#=h6ovtZ4d1wBpQ
zV{7hNEv&tCKJJjqf@}A$U3;nQ9Bsr+<ET^aTO+LBx1QnFh0O9XN at 8bKo`yz4qxA(9
zUR+M)bEyJGr-MP$9`pxgzN6A`1;G*MFk76%ISH at y%+AC=$JpoMnQXVvyP}t|J8Cks
zdyrjo2kTkcv$uSxo|)als^{4i`@Cut6}q!l`@9$m#pc<qc!&LR>QHf9wl>1DQf-+B
zSPMyCnLP(+$(lScK9GQBiXu=oSJPeX1mOnhYOW at 3z~uBu;T#}>A-tk0<0oz4L!sKE
z1+N@|%zN0byVkL}cH2 at bTSYmJBZ^;JXS_f;sv?A}`~{E(hoTCi6`bm2dZl{8={%uE
zKt`nX(l1>06BQLF>=FHhyv_!ttsvS2MKlhBnDG9vM$k5s_pXF0sYKg~#EVovKJbTJ
zH6$jBs+~!q<pEDm6b#hV?>^$v4{YbeYCCfLLWi-4e%<V`67Bju at a%s;3)~n%;`?UT
zRr#Ig+N02BKIO}$h>popAn4Z%$Pt+iOeZ!OD+QWfj2Vd5dRgTcrrKorW?8n`o$@sb
zc+^Mz0X613^Po3whY0<cJ)Vp&T1zAf7v_9}G07 at PR^_ZsVUnPoIaO2R at iM<wQzLpk
ze(-xHohAO=i5)xxSku+hG|56T7k1+k?erCiD)gSDwJnF+XIjqKW1C;zR1&xTL6u<>
zVNQ7+ECZ@!Q*KdglB(JPvgjxpx?t at Z@0|qoAK5ZlwAn=2cu-Ox8_`-7+5wjW4Y~5P
z?ve-x!6k#&#EK~RWlR?aNhF37-1}puoW95VeS0FAl#hEKdgmebU#7^{HYa5adUf5)
zo=DBv@(@|hNw4*!=q=(z19q5sa5{jV;;R16_WbObH9!)P^b}Zm#MYHG*d(C+sk9F^
z0`TxqyTVS_luD**ut8%J;1zNG29{27zXTz~jDx4dg+)~*LGy;o-pSiNs%+-UYOmo`
z6oI`aD2j3C=}N2ZNy*B7qbm6#+2-5XqbYkmG?Dd6>M at M}Gsd^6N;a3S7q~Y at 1<&|z
zoqkpI3#;bZ7_%)xi{rn|ba!P0ABW_Vfe4HGKdEBaIKQ_R^4^feX9-(sfG^dR0l!-&
ze4#aNN_eTFgcpRBiC7vRbvo5t?Gc+aJsKSMa)ljxPtUviUbo4AC%rs|9AlBNL(7H6
zckrj;HvH&X@^wxAJNe8LLVGlL^2~z-gAH?M+G?gluBycfYqz*Noz1z1x<pNNEGXLu
zdBLF+fdM4~qs2|Tj998*Am8L>O-ybI7QluPH|D7Z7BNpTA)0Djt}QhFiG%S=cU~tL
zlhyOT at eSk4-}uILPn-ZiEUF91H=@BYVH>oI%Q)Z<#B|7zdG{|hJ*Gbsyy+Wk`!`;E
z;^awijmDSv>Um>8*f~at1LzCkVflDA0S^}u9`<#&<}yiha0w4T#^AyjLF#_kx=o(L
zHhE7BTGP4dkC+UgA-j`f&P~9jFPHAhb3vOwa>m#%h<0%-UOI``WjM~)x;X|CU+Y0P
zT#RVxk+>DKfi7ZAam|5=S3+Bb@(ZkjCo#|sli2ivkb`wg`K4Up#psS7;gi9!XaZ*l
zZ>fzsON*tKaHhLGSD%RZo#2YmAPhVnJt$6X4R$J`eptJl#l#4c4d_p%#U?=aL4}f>
z0$%KTEJ6(B)B&6vVl!Xpl`E(l#y^zzz<3QN+SMj0Kn;JBD2?gg)KG<VG3DTLTv`Ur
z>jukTSZ*abc>66|uHUfolUEKDOq_xo{Bdv!V?sO;7}pwNP?IUJucT7OwngNNETLpa
z&)^nI3*{s^AjvuuD=y}fg3u4(X?zY#<x(PUKnth_Te60 at n~y+1_Nce2IyU67D~ySW
z%KrE*E3U{YvP+Z%TRx-MSk?5Tzd}(YkF!EnLAsbc-T3clLsi`ycA0 at qfPGW$>0iVo
z`^<<trm+>S&UB?Bd<>jj;PO~2D>NnqbZ<rVeyhX;$rWq~V;f}+7x(vMmPB;L8OCPa
zox0Na?}`P`ZvA&KYxN7dNLE#+VtgU$wkfr98at-TE{&@eO&jwh?Yx}qcBzCpA7r=t
zIBPu6<ZJR_$eWvh-$C3%Dho8p at M)+?Wf+uOqInOp+tmCK1KgHcKHO`?;KDF0^e(+J
z^$pBPF?spLm!l&BY{X(A`!PoBy*6Vnb30sin~V9a#(%R<x3&G=;c_}*k7bR<YZZ#s
z>2x`M-)7n`%kh+t!<^bbYa9vz^t;d@$W8vJFr8rtnrl+9meW|cz@^os_y8aols{q=
z9{NhURm2R#tZfzAXMQcYZhi8;85aqdY9 at +OTl%ZXwby<02<&WYTV at 4ECP-GRxU8-1
z-uv6yz`cshCdo at FS=_fK=f7a-A{x}%k}dX~Xwb*N0p9m!@?R3bB*NU=<SEo3jkO5z
z@*{eC at R?ly%wTOjOV?D+dNudOu6b3S>2dGJ>fa~r&fY7#G_}om<-U7V->j?$Cfw3~
zJlU at _c4YLcVP^Wz>sM`{y15W6*i37W|D$>$>>Ph--TXI<w`X;9EbHj_=pLLtyl&n6
z6Z5I?vJSw_c}&QIDtOE_;4v?cP4JlTqRHk-`2kIotOp?lLN);P0_`%LgPOtGL9d4^
z^s^v at z&5NtFcA=n3dKwk*@-xEX at a&g*#3f48H5Rvh$f5{ETYJ3REMulvbhH<WO?DV
zuwAxl+Z3l(8N5u=q#oUBQ|eT=vKq=})wV`)1#8W+%ED0Cu85v(qz;JagEqI^>$h6l
zT=vyqy^AJ~t at Koj1}d|XO9~7!TYH7lAJJ6#8oRUICUr(_F3Fj7M=IT5*?HM%;n*zM
zDf<V_qHaauMQ!sUD7ugrG<lazu=QPv@$<rlb&KU0%l{DX^45!AzvEL)(*l}9;<mmL
z({3YAGRQfQawrRSoIE*Fl#MZMEgv3Z=s!wBOpMG&4lx)~nl>6^C}J^Xd|~jq<0%MN
zm^M_2Swd}?A0$vEnDAgBh|0}%gn5E*!Q{Kxx9HsqzKW?Wf0w;iv>QG~<^VX!akBt^
zf1=oyNKW5$tF at xbA=x?ux+GgG)<|lFFW6<RkOr-`gi;}2VN+00c2GfQw<<}UzK|q~
zRFGBp^e$V4?Q(0#qf|&J$yP0r)QHf{Y=J6=(;?T3us2qz@}fnuS|#Q*W=$&|Pb6p+
z<_QryvWunD3NLN_P+_O)oGe|!qF+?O({DPAAi`2y+S2JCTmxWSzF=jo<g|LatXYTD
zURj|?R{)u;)&*{xO{sT=bg(n>xg}MlJ<LlwW}79Wfr?6>Q&5Z_4%ij9>tcA2)>YOr
z=E$)+K|tEA*az%(t%9CJ?KyZe)dg9K9#v>|p$X5-w^H=Tnd47fZaZF5CSO9O6E7)T
zmf0dcz-3H7mwl&C^8#fd%M`fJBk;4<bmz$xfJ?O|6(F4kaD|p}faV<1=LtXL0B>Al
zYmJ?OR=o|5j@$Ib>|ST(ZI_YtCDt>|ZvWbPA-$m5tyaOc${X|hPa8Y^{yF|Oooy>D
z{x`jL!3f*`+CIUrNnUwmd%G}gmS2Sif#idO;vzsR!@l8$+!e%Hn-1Bl3Er-4 at cy|B
zuJJXUu@#FJba%A3w!rdM7mr0FVRB#7TuxPy;4A2cuOPNZ`b(Alf=S@%(l2RGp#%XJ
zXR0Gg`Sc!q2>CN|rX^Jc`J|PUo1~=V4m4GG!@LWUhvEE#2VXjT_@&a7efh|d6NeA8
zM-Lu6apcHRrvye8>PNbMnP;6ic+hL|v&7WCQ6D*Tip*}kx!Oc+?nFLO18wL0s`O<C
z4<1Y$K72TFaQx`O({xE3W{n4VWd}j*R3nLJ2M?|*%c>u5rmBSRSEcg_7$9o%#h*0x
z0+Tm0$JvLmolm at 3E;T*qmWzIto@(m<q|O<*aZdVUjfdzxbLx#rIfy;_ae6DXuRBP5
z{?yB#>d>VA+z%ZT>2+q-P7i6MgDSZ=5h>-<#${r19VL at KEBCl0=Vxy9+0G at nv7x&j
zEScADDd~FP=`6&dM&~7t0?Oly?piDi?)mB-7~=0*RHh{t;T!S<bO#zdzr0*`5DPk0
zE4PQjj0lOK1BQ%bO&lcJU+Z at X8Ik;(g*O|GEBlvqY#hvvzs|nCU^z_uOn9?<(*uuw
zbz_gvwfX)h?%UGIRxIl?mS?kro33SF&kpVzyz<K72R7mHmiwMMu(d<#ThDa|1Ou(7
z3bbEuxdh`fry-r<b_E)jl&JwAe_5`vC?6q0=is08!G at x4J0Y_Zj<bZ;+cD3$L85oU
zJ3HNeUhnL?&9{KLiuu-dn(yuEw2$=KCLLa>Pj1Mzv(cv+mAdKw&ih2_53EVj4SXd0
z#tR&B*7b2==3V?~FemYmEVKk;rY;(Ck)3eD+&77hAR;g>UBK1j)6!wdDIZbn&UM^!
z15M-63wwR^%hF++4H{-bP35S{S}*ATaef$m62S-s9?*j{f7~~>WRbiOj2qz;UIGr_
zx@<?3f4ne^*E)*8xlLGE_|JkdUa65?%mffnl9bH>gr=*AvmajC!cH0uw~WC#VsoqP
zsO%iR!188yL;Z|@w!=0Je^5lLb1uBbOa4M3Xy&q*=Y|>ZOP!o&bNmP&Iqe~{0U_o2
z0OWwZ#PRVZ)dfhGUI at Sur3e=(%1ua>3qe>s<0Q1R|H3IT>4<9j`G8~O<HnZ>RPLu?
zT{;bCefA!7``>fn9{=F{kG+D?xg(*Ceb0Qq=p&J;o-~OFZGN}mgnzvAG`v?%tB;U<
zAnG`+qS|8n>>AitD$u?|BtIi;rIXXfR{3LgUN{mGh7Bj|9z}4>GfQkPd`bv*$0Y2e
zq3(e7TxW9$b~;dS8Ug?TPMt7eF>PS~DSlI!0e>CzonVLEnY(uoCj*~$)21UnVypz{
z#!81{Ib7{o9jkLhoXZ_-ukk5|gM9^g%N-8mC&)$ten#x<cZ7SzdAwe?O!W$;H#E79
zm?mxAFMMI*6$jPL?nfib9m2!LPmDKk`$<)0e~Vw_<34J_`yF9(sooO2gy98y5zWaf
zMOcgK2tWsH-#;k=eZR`CHLgZYm`gT;df-3<RL~qpj6;tJFP}q_=V&l^<un*%aD9Zj
z59oeUto?qf>wd?&<$!bsU<ULixV+lp{EP^fn?7VEUr^31n!{Wi3N|AB^rw<U@|1B#
zl9&}n`G_RMW!sxSg_IVt*_ai-xZu8oGySD{Cw<e*wGJtiPamegAN8Tqh*Yc}wtgr#
zT4l<%MNs8W-!va1U949aW<Q$rc`I4*FdStgAq;a^-~1_PKqZHl1NSXiLW+7)S%j8X
zYmNiz{S~j*ISDUe1A#gn8bezAs26W&RvHAV0?^SwuxCtw`5;X61<P*2ACWu+m8Yjq
z^Et?t$8F6Mr%6mVlfs1giq3KU at gj%gkw at S|2J{+tIL2unN6MI(-WE(G3Pj*##-AFP
z;b0m2a=y09?A%k&uS{)wA2o<}OCV6&-z#sMph1}u2u`@dU8rs1=ai?hcYe6-;<1@>
z4o<ks?2U8W^t5{v9sJj_mQTQ?j-D9=ovJ?isJg$r%Vm8owQKtKO$_yfGnAeM%Qksz
z?qzg`hWe35&6>v at QTCOxhPNZ5*dn<A0*2p|Hw at hjCOgOReJ1)F4?{<fc_zu8Q>zk1
zfw!|BJZ~;m*g30<@bm;<1Ll$gx?!EY`KE11rkk<_r&+NI<@4rpy%8?)3D{C$55Z<0
zWI1;|;&fh-q+ASN$UnVGPuKt#hv}z3HP<T0!UdMDa{dKvj at z*CDXcphw<2ukU(?Ne
z+_-=EN3ZnrF8?ijh{~X)9{iAJVp#c569q#iO(&nzVPSI-w&I+Y&J|9j3(dvThEsDd
zKrPNsLN?M65viJ(X8;7?h!9TAH20YwisVBY#lGk}AH5=*CfKO}o$~?V5_blSzt&rE
z2?S=~_fR?t!Sqm|Es(}x%c$SD8(M(%5btLM0*Bb0=0Td94h8TS<3PSByKw&Nzu;Ak
z_8i0mfOV^>{_swLNdo6CE=^P!=Id<%<8Hs7t%s%|ZPuM&BlDx_L;iOE%;E#Kjv8v!
z57m|0YDQbsxA0`&Ok9O{K%!u<dJ;XwW<T#+TGzj3+*FlFRIxk1rlYl1ovrh;R_dMK
zpANJKzJ^{$)9g^79Z8G at Tnc#Ko)mWq|7o_z`&Ps>vg1Lp;y&wTD2K63W8e<eO)qu>
zb)lhlTmmc?;oT%SSTe%y<U`m-k7xo2uO{|{Dt;CsRn7MVXe5$y^#q}sa6N?QA#8Y4
zh~z6^*Zy;@!$C(2K at 5phH>v7cHqE8)DWh4ewHJ)sTF`1dr9vo6udMYqO`%;A at I?6<
ztc!;^eJFEzgfWp0lohHcjyp~T=m!%p7-MkcgBxFHt=ZPNy1N{r5%(kzZVsIZ`?%^Z
z2dQj~N-%lPg^6|#7(1a2fM(}Br!RltID?axXH=ZKjH=g~u6x(wHtU!I(N%8sjDr`=
zs_M1I7`gqi(6u<H>2OT}={zunX)iCihMLD4;V4(O#ej2|GI2lPr#~lvi8#^b8NhUA
zDomf$R04*DxYv#`M$o7+JNj}))usT&&KgBuwnnU#8P&ygNrE3g9gNclBB{QJ)yA1W
zQYL3`4uZriIPr-~aSS-<^DG?N*t)jA(OS27Wk=VR8CH+fZxf{U$FKUt0~>p-om=m{
za_HVUz1l3{yEwWyOIx at w)4z7}+Wt&yGhEmfT3u4#AnV?I|Ks;>?#7W}FG6RSzH8*C
zGaGQ#n`_u5kdlH^NFCNd=ugCq0Nq_s=aMQ3S<~S{M8|2wrO=lwS at C$g72zs8))`yo
zwXPY2TYLZd>qqMr!i$a$jMjU4+YbzV;{MHDYy{Wtp-Ux~b)k((&8<ZM>uMKjvvAfj
z<n#7k)BzBQq%+|AAA~O0QNn;tmuSoYKv6r0DQkmg1&yD{@U^HqWMktdr(IrZvmaR(
z^tq0xamQh|AOsBfTLzT%5?eLH^M=#;hNo2jlR_8Hms0%>3+nfgE`uD(ieektSkMMY
zO5V%vgvhuKvd3XZTs;Cm#^AaminLT#h3}%-Xq}H7#XP#7t&-Nu+}9Me_`5jc)(Ndt
z!SZRytk(_B2%3KSlAMAUCZIR9Wm!{M!G%}}CLdcWUx->^cZ3fT_5=?nbNs1GfbGB~
z-~_Bt_Iig<fX2APHt`1A9G~e|qT!5gDttaKyvoJi#%MI0s>p=u!ikFNnNBSlt`F_y
zLNI^4x3WGKc6z62p at ervFyECl->yt2{F)~maV8R(d}p2cg3yy&HA72=odVZLjK8Fy
z3a7MAfD at jo>Uz?j8=V$S`~3nmDUhStJH-N8JTWakr#9OiXn-!+jC0_PC8pKP=?Hf=
z*2AD~zCd$CXJ@}Fo)n(s8Yt!ISydi>#v6N at Tuqlr>9&e*XQh$C?n7tOo5%r&Z>wYQ
z5VSyNUD8ZI at 9ku~)8llfDx!st!?(z{jQ*fA;c5wG9mLck=;)rJmY_53eCFEe0Z-J`
zTyOGgf5!SDTcD}^DN_mlnTyJ}Z;CecW3RD3e&7V^@Ry*%!dR2fz3FdDK6~|~@2j5X
zv2z_uX+e-0!$%a9b{aZrjV<p(UZkH<D-Jsnjw2O*ovqTZAlFPj!a@*EXyp#1>|cDI
z)0%eLlQLEbA+C`br$hfvAv)D{^a8Lc4Em{BZY(HLf#65OrW;?@{S`;lq<Xkw?uB9d
zg+Jvz?RKB`9{SUeoqyaynmKNSj at -!)tC+@(+<oB9rjxtRhsNzHH%21mIqe1=8$U^U
z#Sf3zh}Ut%>C at S2-RC^wFy0nIRBn6>S0Ofa&?e{8JkPB@!+nytt{y~`?9QCVgWP at O
zltS_3P-!?+2Y8nYkDA~y4uF>dImP at -ek1!4gGc+%!=gv@!3HHAk&Aj5K4M%=VjZun
z at OmqR|EORKjZs;3i+LBEU`FK$A5)6Y;)3O>4)|J2hBi|tDBB><nf2H%qzU|Muko7V
zwR;mD*65voK_y^7J#4c&{A{&9;5e)XE~o%B`9;&`H4J(X@=Dy_tjymP$JbJ|Nx}dy
zLWL>5t!&T>a6AdXqm(<d8aXws9(Dx$#sR;>3e`$+&t8UpyJ_Dl>G at 1AP*WdI48xh<
za;`-5xOL$_&zvHDN%WE at G4zaQ|6nD*<x0HoqW5tYOD2j5QH1<niS3{Z4AnTa(y(pW
z_`z%LW`mvVp)JFE;;DSw;$ZK{50`FZ``7f{9Ch2bJTy8`v$!o?<Jk=ORH}bU9D&L6
z_kU}d)~Vn3SD)W`3!TAVw1CdwbDvlhKosp>#K97`h^;Y6cCk|0c8*<)81X;#{6ghR
zL3_ at 9UTUxOykvJnKn(L-A$)0%a6)FDd at 9{Cn8b at Ys_~1mGUX4*5w~>E$#{G6h4TE#
z621AvxR)Cfg;TY;$%sEcgA&^G+WsMSA-?ab?CFWyAAa1&Kbv^vx$%QI0a`0uMaMl#
zG7tIO)bTSH+4_poo(6`L at FNcsHH9|9kwS{S1dBHO!*Ey{sxVSECuy`utmJmI4SnLW
z%R}v&R|)0Y>jzhF9bKFh+w&o%ragH1GULnSz>sdQGq)_TeV<r;xC3Q_?VcH1=YiGD
zfIn>Q-jepVHY(mZPqAJKGKBaMt8wLiHh<uD_6$Ey&@ubNXJe|f01Pyk&cG1u<>5g<
zdokD8G03;cH=#x$KB1(ho;VM~UaN`PMY&Rv1+l_eb}-hKfZv4G at t4L$6$#h7F4r7a
z!u40|S|mCu*n%e~4#BvrKBzdDIB^Q*3yQ5q60FQ-w7OjH^70k*Vg+g_uI*8*&1S64
zl#_T~>Hr=1Cw2!MW1(4=;1)z-g)s6Ipk+E4$w`M$1?49>x5D*BYzw<wHSX4Ff1R$H
zUsccU4z~h8SLNMzhc$P?-BNis*DL&WxJ9dRYt!y#imNp|2k%_*2v;dQas_hd;H4!?
z&hwyS8XjP&bKkQktv3N)@*}9Qc%XxUkCxBtb~)@eE3=UAnWx6X{{qz>90x|KmU33@
zWvliGul(`O`NH>cyO)g^Z=<i#@uNcf`1W3L*_l%aBeaM;c4B<HuoG<&zx7>lub8pS
zg&kda`jW1!%JpL~uTrckZt8#=XANoxvXcG@!-aWH!stq8a+}~?#koO9?>t-+nXy<k
z$Jf2OYkTcx71opuiY*y$oi at L!C5<(^+M!kG%BN#Em?4BJwqNal0px1-#tOt<vMN_2
z*Z95hWje&uifwO2*NrfdI5x=EkQc at gSXe@SMcM51MIE2Hc$q)yXNRsvI4||;tI?2p
z^&y?*Z~}<Nk)8eH*~i2Y*s$ke-m?LkcdRqgLdp;b$UTh25LqJsL%J3xKgH1?S%5&s
zWk){$g*+Yf0^-Y}Wud1+zcwm)wBVXbTTr%o91Hs0p`fjDO;Gd5RoChjo`t+jm28&D
zX#EScjQL!O(sMR~45{*(pyrjM*9K))fj4Y&@Y<;C)q>YlN*QgzWQnRZ!3r-5ID>1d
zCZ2PDbTi(E>2FdA4MrRJbQK!wrUy0CmxSVdAnH^Kf3@%n;RugiiR4Z2nLI`c_)eat
z^VOyJGbJN5OlPZ&11EqzN7<@3-hdCi>&yys4}5_CTrkzydt&|@^T)^b at M3#NGs5_>
z9KRbU3t{}w_zyp8NOQ&QbkIX_J0I~ZrfdAf(WP_kbTIUB!x?OSV6=(n`7!K-!AV<N
zNsn4Q*L04Z at PFJez2Q~hkExeBOYigcDW2Lik9qE>s0%CBfm6pIcx50>H9bx>B$l^u
ztQ=OE%LHSPktvQE`8G5oLgS#t*Qxb)&1uOs%uG(#H3yE3a_1&E-w6nYhe&-`$@yR*
zkI-^FSQDJ`uyrJHF3o&I2X4$V6E|>*1Hj}$*C9Z&aH1Fi?m9$)vu5&*zqv@%!V$5h
zI<GkDhx;n*VYUQYhfv>=G43svdB6DkcbBRDGr#kzmkr+j{ITb6AN*l7&5JU<c=PU$
zU17<o{aCE8p4lJD%&hLLEfx98;>~5n-=BSPo5yp@{?*U!8W`C1EUi at q{0+r~LregS
z37u9kM`b?w!}rW>Z)t+-N4zTJCqG5_!-KiX2p~8?5GdLzfnC at q=?E6x6mwkg^URYk
zSTP`l`3P at e9-#@sO98~<5VD<(|6S_!Bl+IEknPV3J&Al=NM`GdOzRM$WDMYlQ0H)m
z(6zXm&5CBCLOdPc5>AGMNIW`P-N-WCnameT-MtjMe_t+V{5+gU<Pt(1dvgX=(Jr)f
znf|ZF288>mkHvoJjR>JSU5Xcdnyv(o;DVO99_QlW)6_gGS*?R}C4Y11u at It0Ajj1x
z^O-4FaCowC&O?eA$L%}h<qE(byZu*Pn~weRl?`IouReRB`^`tU2xg(pN7>gK8?H)r
zC53cH-Bk^Z#$qH>UCCru3aJxQo(VgVJKuarKbT7idbzdYuhAFHG7T0m at -gOgsinDL
zW^H_W*zZv+bWSE46<q>$6-052({XVe=Y)4Io$vHBoHK{8A?xTHJPriCHV8H!M?Bek
zz?y#R;#<FS^gFjMw)XFOcJ<n;)@MdC>#s5*>oskC6ML+bv9=V|g?(y$Q`34)94g{&
z at n=5r at WS|A=KDV~zGY^-QH*DK<NB+9M0KN2v}V^@zl}bX`}TFwnk_`jefO|tZQv$S
zg_O*Szo}9h%tlcMMg~Z1Jta3}5Mxu;jxv6RTxP3IoJhR=_Rqz+`2G3M-wxsD{rBG&
zukia$gXK6a3L<_hPW${U<o{jBce)~4aoQjHoj=6ptb1bl#VfA9+W2bmX5R9 at UVibl
zYu6fEPWt2a?TWIUF}m90{*!@(vgY6QxVlb~*4Yz*e_vyd2f1E={H{#?V>)EOu#4Oh
zp%<{#dTgm#tb*85E)CXZ7!MIri`lb*U44(OGQON(cNjMtw}?ypUPK;Dx{aGW{%`=X
zb3+yE&Oo^ByX;f9UHpYTdzi5p5S_5wPpAl6_-HVp?6ukUDhZ6YZ9*?^(u0{e1q2?b
zxgj;(qyfYOmDY8z81=F+nE~A at see1fDJtkv<e8pg0HI4CJoTXP at UI{4LHL_JyOv{t
zBIwO+EAy95QQH>}CYF%t3Y<!O=b?wTQ23m(AUO-C=%!0Pisl%SREhOm;j}BnztMUI
zzs7L>aN>8nv6JCXJZRY1AMsah+}+Fy?0!TjY%}gLF708TX1_KrVK<sQ+jC;CD1cV_
zu~%WMGG$_2lVV9N&wzU=IVi(Ly1))S{{H*Mq4(cs)&olp+&g^W!0^2XmWYCxxBPu$
z`GF<(-is%6#kgZ1MFZW!t?*ryj%Zvzob{8v3kQP`z>pk)vQ<n-Mx(EfzD^gm&-|st
zhhg(oOofe(z)(1aKvSS;0=Bo09b5g%E33<(N>lokNq7)9Sq3};>62O3k3B8dL@<nh
z5RC$WQO?Jf#>9y+ahS15u^$x2q&iSN(H?u)P}m1$&Fx!F-4 at TDIlE6hAl74Cb@=M4
z&lD<gMuzlZ5aYa{(Sik(w>i%xWEqM&AL75j2NIkl&a}Wi-E>E%MUH<Hxmeol<rf%&
zs=RO9Zk&>s^Z95J&<hb<BM*hw4t3UbTQ_LhfK$^Hr>?322bB5it&$$eh-m?_V)$z+
z+s3@((PSi=OyEyoz47{i{&0GY)f$e3{Qi(vcPegK!67VvD~|AJe$5-F>ExYTj+oPQ
z#u;&c{B|yX;-mz*<!}=zE<O-gbcW)4QkVQeCh9#s#=XY9Jw2UIbhNf~KB1<Q$<ADE
z&Dut2tdsRDE8N!kY^U)})`y?g)?BXDc(Lv_M7UbMyfK-$Eor<>O$%oY4DLSQ6mdI<
zRqLyucndyo*ihLK8(yS}wmcn5#pIHXDQJT>CmOQ~A#ot-RW#S(Z)&aHZypxA{c-Kg
zTUy-DZuPc!g+9dFh`AJL#Y$COxne~18~d~v^xYf%>M^c@<-Fm8;zm)2FROIK%5lh7
zZS&RQUp0GnE9*2)j~MS7?~WL!S*NHQPaHK4z4jVge$>S0(z`yu?sniz8t|d`b|sU8
zsRCA83P+bVmRGZN>(+ZZ_C3*(e_~Gud%0908#JCcwe9dG>npEVHyt+T=IpCtO!ytN
z!|kZQEpEo+BvhhNAyEs808AC+6J+2(Mggu)xFhKsQdUq0dgUOrQfU%l@;V|D)L{tH
zEeAHX+}(3`Uegls?9koeTwj>I)6#N(Uw=o|6-m3Yz4u2Vq0UHFt8>NU+5G;^E>}EJ
z*Rt_I%iZ1HoJN&24($*3XT!qkmIE#K_hwynQCDN{eUZLUSPf^Xcs4K59Fr|>v-qsI
zg4?`g8slIbP{H*BG7|(YNZXLBki;!wX5c6X%flXqL{uo|zPGx&*SdtgJ2+C`;|vcP
z$+{J>s8rATL%Fc=RDH;a0}AY4v$6Jk-tcx=NAKuk at 6sb}Xm at YVcSi7H*x6IRf?iZ(
zq0uxO2<Jk0F{}tydU1>9${ODOJ62jd*{M*5UZlMaxH%?l0VO5AOMRv;F)g4L&(w>4
zml)58xegKQ9!xcczo26}u+L!Zo3bu!c*`H&xTLOb$;OADE!`|%e%o!&-get^r8RBs
zLfGSsOVNZa*}lP!Nc&J<HrqGU9_bkD11viZ at 4&wkic at vf(?O>UqE8SVI(_z=;y)s;
zlat4{RiE*CTonkWfc;lD`FV_3Hs}K(EkG_8zoq*9XKweZ6%O`-Qm=$JY}gRe;+j_z
zU0&~aVs!LzR&V@>>lN-3o)=^2b?IaR_SCA#v{1kg*GkeW_?oK&K60FxScmy0zE9!2
z7sKC=SZIB^wKZ)x>)N4XqL9RQ7-KAizudBA?48#1csD%}o=>-)c}sYHyjvI?9yYcP
z51W4bX8Wa+5!e%{Z4ZJNa2|JRyFs+)0X((%6NV>Stz(Cb<@g&BW97}ghIV4Z!$+4b
z!x)l0c%K+UUsG7~+>fHxj2{ACs~P4Ea{_}9o{&LLu%2vKX12U=SI6-1wqe0Ilg{F<
zBcH at +Lu3qh<dVi|9I})W$Cm6sQqrvV#qc0{pH;JV3?nagpAuK at gDWKGp<V at Eox)yH
zWg*|%ny9Ao^D6M)Fd<37O4Zy%HebHJNt+gzY)ye03WJTs&G!>BVCUK5k=sY`Z<8zc
zz?Qn#Z$GqE)4W;lz}C at wg+b)JcE_PDUayw*4s9O2S9h|J?&Ztx7#Z2ozIEGun^92H
zhPK^@`z_wA=JgKk7-=UwqcM6^d{lS~r&LOGk at ib8P7zKJZVtM=COHKV1^>gRPCdM5
zL(k%sJDz&#^i#r~XP at 0Byequ*uJP!*!+q^fG0RhrZ##bc!Cx2aJ&Jli;PraVJsY7Y
zP*Vn~XBcX-2$q5w0IPEEL#M1aKl|)HD=K|z$C`nj4SODX_g&$Gu?Js$b=#v)8BewM
z55LP6zf169A31we%%fhCkq~FXZ6{g`Pl(z=(hG_bBpoWV$vW9{VeRc;Dfzk0#yi8C
zty at NSTSt3`t?aAJPstVggq27x*|dAJ at us%qW;VEWR9mg}4xeVHku;vzy3)UflFK)n
zJP~_O*w5`LIJ^w{4 at _aE5h}=j<#HK|L-BZsZG}UJ at xBHvt`PN?VhI9pFZSLkG1FNV
zD=dy(uDW!?o?Z5oac0?5!t<TuFL!kbt(~P`vwh)tUPt*nab9m^|MBC-o5zm}&mT8_
z_UfxFe!N(IShx%HW1>9T!^TRydXwPl>oYp~6LrE}okqH=i=9XyG7#VEI4yh%nkB at u
zf4V}knQ at V-1F1rQ$;}kKTzKAa9y=z+j!`gjVQ}}d2Ob_ZmOrp;_o&&fcstr9+rP);
z9j7d5aF0P5R0~1So5dKdXp>r;K6dPNVf{Tq1cc>hoUp{xts9<tYQyWV?=JGBSWAbX
z2L(^c{VDj01*3rO1ShO3!Uv<fcaM(0(6 at eVzhAg-!?N9>2s^dw=&m*U*9gw=`g_+5
zfiLI0;u5PzTn(x8M)Y&t!VJat;oB<d2ZdrJSW*fm8z6EQy#Yxt2(3ZU8<w<!2yf{Y
zOl=|89nu at cKRVcKDjP}Fj6INEqf at 4)N|8dQihtDg6-};q=muG=kF1%i<+aW=;fyHX
zI4xSyv?3J3!&vA>S<HmjbXK%i%v}?1WbzHuViirB?5ft&lkn9p@<*6$L0z~Z6Rule
zV-f%2q}{1qa*5`&Cl~v}g0w(&R=G0`j--b_9%7$&x4O>X3}EQg@}AB$l^MZoW<?-S
z2H=~Xq$AT%Y-dreFHr`8H{oo^lp0x_v;}*LAOJkVEuuBoi$4<=V$7u at 4IWxU+<orP
z8t?#j<PopB!RfqVj;uL9kBDrpZ3A*d9=HW3_0&5nyvoHlIvh7%ENiYiRTiqag+JU@
z5wd^Ysmbgg29&U3mc7fVNgbOVj?JLsRMA9PXNd8_bLinjE9e84>8$?*9e at wJN*m7d
zVgKr%(=sDEO|@bF3ixPNLCk|9#m at sZcd<%vZ%u`%dCW)H04j(BTq5BKh<zn=d*|j|
zTeCU_wrthRHHjtRaD2L!+k7?hs;irti+MFw$YWnzQ#%}*hUfWBRcngR`zP`?PDft6
zI at h#nCcD9}3rzLTF!n^^IQcGw+4qna;#psaBm`uI#(&Lj;7_f3!1w~Z4Fp7+v9e7Q
zd3#Wa;DDc#lXN0H4nNt#XG6=r7$5)HV)>lqOO{71-?IF`Qq>v$?h8*ne(1m#cino^
zhSi_EqQAQ>J0mvDW3xDc01%rfLecDep&5r28-v8)PG^m?iKWH(*+@$=na<7TIgPXF
ziy#>1*%M{RJaaML;~BG2tA94?MXimf*G3tQ)DSXIM~bSA7c0q=(T6gy=ayGuw(OrB
z#e|~PMl@{#r{{SF>cM71l{Qkfbkvf)im3PMCCq_?u$TNnvR-Mkx2qDaa|GjZQJkY#
zuas1}ioz;U{EFRLBip~i?6w;5%nuc at Mi8v`t5S_sxnC4srkb9i%b5nM?wfQg3`o{E
z!*i6P!s7Tp3gTD5ng}(LO4Zret7bEz-OAfB?gA86WscP at EVtU*#r+&KM293W#i3#o
zXs3Zm#kNs5;z$%LB>1GSu_D+2-e#3bm7!<CZzj5nI&J86v1$kVl2q(En!Xa}1g{iS
z4ieSz7mRnj2)87fZJXVXGj`D=SVT8$;DxV+E^!z;ejB3o-GF%W;9382>-8%a_vDgc
z6+CNUb`2D15H7%(XYttr^7KQ at Q<9%j at n+xb+-xi~5~2c>gCI}zoRn_}X<a+J3E~O<
z=?E1Hd4>K#h~hQ*W;f18Q7WCvAxH)4pnuqL5KtA*Aa9waxrh@*Y;2$q6z&=3^hz#I
zOn{g at D2uW~R2+U$9z>v%t$JhSyuZ0jWz((px`40gsybP|%*sST=x5<Zy`^6h9IF-4
z=2C+_^|CNsP;A0`lFwPa2ItE0VHd>{tEg?N5S5iGGy0<KRSS2w$?}k0c2|2FR^{ws
zm56X^`yz$tg1_mtfmdy_*}W-$)9OaW)*^vj>R`SaS8}>ta0nv^njtDPtF6{nU<{k<
zuJPwSyAVMznBuSXWcnjEWjVft!p2WV3ze6AI%QRa5!LDlS0t8Y at v3TU60P=&n`L{O
zRdVX~U_exslN4co2L-VPC?1&UB?CHHpTPNCRpPpA=%%r8Lsbt(pb%uWMH at 2t?;vUr
z53I~RCrUm7tIRMELi?FhhnGP^8a=a<`!$L5%@g(VT<w{i+^#QfugwXbS<uoi>FhL&
z)9a2bWmN~^ShI}m`oe><(>K11hhP*QG)?oIPyd6s4Bz%B`SZ+7;BY(nyG)6v3DcMe
z^=-*iMy4}L6PP7a+ByCqa0D*%7MYqVi>nDc7`X!bxkE54WTl9k$Rhlw?=HZ94De0L
zZ1fe0d9c>vy9<|e&+Y6eWRjCI9KO3y2-Gw~*rC``B{#T>X{de3r(Y4VEvYZyz{#C2
z2qhV%$qvr at VnaC}${jt*?u6aSj0QSpM7M7jml~_Kb024J&(rvUyP`eM#pZ6`ZbUoh
z&o2ug%1+Fm&!WA(<45Pu$46^4^EJ8}Z<pSqP<`{wVx}GF!{0EV?@YiBwC#rV_{IeH
zZ^0yCSy5ljPEtqcY;<#38e0obn+AS#lq}PDP6{S+5e2^S=cP1FD!osWO3x`>@-Hj-
zIFNrCl`r|PoWPNALP8$a>AbgecyrS6>_YdwPU*}mCQ|2doEIqliiy(s+T6D$;zoTA
zN0f1Pn;N8Bei|S5#=m}KiR;;Gv<8eu?g_YRii66ePrh8#C-azIwH|(`cgn%6$IOGV
z0xMIHXM`2}2rO$X(}0tovH6`Zl0gvS6We{+kt1<wSp{sQ>_y=GBs@;ok09qkJwW{V
z`Og@$B24EABQNZ^;MrW_N7sla!H-r0z6vhWLD at s0jX~lAQ(SSH;gUU8G#PDt`KE1O
zZCQEiJ-3eLgs*PfdUO*TDH)_zZacBt^TlZ|f2L>|xb)Ve;V*i2pP+S2yyFu>8{(Oo
z_KX4I9b4){ez#K=z&n~jEXdAV{BRiJub5F+VALQLDYhXHJ{-0O?F6nDJlJ{wDn%xj
zJ=pqev=<RkJqW|15NV7E#b0(!@um=&#<nN>=VwCrFxj$>XlPo5ek0SOEzx9M*y|F^
zj4GYKZ%qjI1i78l3Xf-QuGFitt_S7^LV7&qc4Z?(XlGV6y4fpb3B=j=;0s%!cslCJ
zR>9n9^8Qcq?~+`BvF_r&am8iImsu0^J6M`<N#pd2)1YEriG~&PXiZKY_BUTa7yztO
z{)sGctoVhNX5$yl*wjnk7ojA5WW@{>*qnxyZOUU-1!o at Q95_OyaAE7#MS~Yepy-r`
z>F7Ere8{JoVpP)n4ghDP?y28_qgh1%h{A&Jpp7jXBqjrjCxp0xb6y9&)J8fHbP at f6
zq-e%O#1klh at DA5f39l4`m-N-eDE`Qm+aUjll0EK&={f54BA~6;OSitbT at vACar5#u
zcducwI+(86_snmA34V9H#qs9S9Xpm@>fAcWqA12Rox6;wKW{@gh&ex3$%oAELFLBV
zgIk at K!UERzrZbNZieWmr{QRWweeCZNw<lC-h!BhQ2~{L?RiKbAZrij`1VEy(!d0i|
z<#w)1wDxuNMBSPca`$xgwZ;YACF}(4Z)K~- at 2Ht^jo>yGHIDRkXX-TB>X6g*J-sU$
zN^x4TUZI;<F1&z!8uWzg0M4;rOj;{C4tKV+c03{6-uY}787I1m#)%^AFN$&D*WAkh
z{-hL75PLl_i(rGfQYuD1n)o7?sqz)A(NHE4d!cXW))%1W`cB3O?RsJd{td(<nON+F
z^b5 at L%@=MR?t6H6*N($??BKdT4AS$$F!V)1SUl8cA|cIbHFe6QX~h14k!j{vj1O|~
zO at oPi;VwNA^^ZT~k4AL*6NV{0naB1;>!SEKYW^5MGJi{Yk|F3{G>nmZivFb;x*O8s
z2&YKBGCm;OWjJ4dy`*s2{W>XIXowkXV8_K>ut$&%C!}y)7nUU^mGK$I2sP6Q5w3w2
zw`!`sSa4~_kG~jkE!I_y?L$O&HmK>wD=wFl<&9Tx$StpHY`<30hn at Y2=oH??*br^U
zkzo4%7${p6lbKuqdkq%=(6X8oB5#4w7G8}-&lo>Dm1XfWd1F~f$m$s!viC;3A*b+A
ztW(p at 7;oj?WwA5P at s?11R>zko2Q_a9AK!xA>+GvgQk{anFo?E%ZoZHBFxG;bWvp0I
z6Keg_YxZyJ>`>!Ny7K$iv<wbz92gKz?SI`kwPdj~bNj6icCFcOY@^(bgS_7R#M_};
z4&u}t*7~#x8~RY)j8NHpa=Dfb6I;b<5J$DBIAiaxgm!Bq*KX}gx2`lch_RQA4))^c
zXh~t-n!e|r at ov_0bn87^i?~|ePF2X<2Pf6 at a}b>yU%CUo27H3*9{&eTy_(Tc*SeCu
zXmqS>tsA9Qpt37z+eSx)=kK{E-8#M!?YwCE8{P-{O#O)=Ci*ORsY1q at ouQy`5j0A+
zcC%4ZSi@=!9W}SnK@`fu0&41Xi#MdLN02`dgBtO6Qt`cf?99)O9iu)*lX^_oH}k9T
z#Q1|R|L&e=?-66b$A>T=>{TO+Argk`+8;`4em$z2SE-}p<#&xAF?@vAgw at omyMaG7
z(8J6mSZCDLCaNO{$5aL at Ei*n7!3p?avu!c~<~9vLYJzy?EduX04c~-G>Idi&)5Y|e
zpNaAD2Zd86d?sWgCRhoL12_IGJ8tBJNITc36TX=?Xe+G6%G1yko3T-=!BQYrAdmy}
zA3{zu+i2|bzIyt;*WZ8Qfp>I<r7jA_zWuLi{!<S;{=w__N5~}&cAyUsgXawV7by;E
zBj`xF610`h8j$T2-(RdH$6-(|XzXk0+ZRC_eVCwVccT)}NI|j{AqS^bwSHv|p8iQ^
zEPlr6h0glzd^Um8{tCVq^Hpcq>C_N9c8lWodf$IrP2dpHnNX5N)J$3p4O*RoD;9g(
zslMqNRIJwH?7{JW)fF}A68berfA_H-O>%~k#yttFJF*4-MEntG2*s^{1PSzkWtX^S
zA7J7t6#Nv#quQBvr=<MK at 9$G}>3&V$==Tb5>fv#VOU35x?@|QyR9Ii*4{<rowC9-o
zlllyTeZt01ws}I$8c(hXa?QjIEj_phoYEu5>Ry<*h_R^u%;Vxv7DUrO{;%-wqMOsF
zvl#2&o_$CBvhXIbDvxiHsLxz>abpa=R~T!F{9HQ(c;S%~C^?OSKDn3;rc64O#1qgI
zr;;5a9qq%AqZk;r^FF&mtBY8*#*WQ<p17k6-?fS*Z{9e1bNA}S8R4m9XR<Ckl3lTb
zlJ%~%E7o5>GIVPXPbOn7t2XhtF+KG$HdAY~-c?su7aNt5jnPD1Y(q~n5{d4Q4aDNf
zB)?Bk4PCK%Ay!9^-i#$(^)B;aICjoM!av~igRmFs*iT}h3hFbd>PnsaL)7MpGmDvG
z62%7e<%xac85n|W9+NUzLU`Qun(?dG6)E=IJI}=xD_JUB(dXZJ-gtH2tFIbwz542F
zetop>=9~LQ6|0)-?q*p{+YB34_h!F8)7r|m4CFgohlW}^^8<j3c<EijtzwRQmbD`?
z6nN>mb6WEaGc_xCX>RDlyl@(2n)k4w2mEb3a3HNhJOa;!w2w#w?ehqeW^VU at -6Uv&
zlI`iq4n_|RFX`<W?dcsj6df$)q!W~gq|+_wwBe#_OPZZ9(_2xtZ+$0wE#6P1`{SDi
z==DDB#erT{U)NfPe=HQCpSm+|n`!h3N^+bre-wS1XXyw2jUd7~=-Q{QT0Xq!vc8^z
z6*Rb(n0?T+9E4p+L#e=Iniyvi5GHfDI6Q~T3Ro6q_i at 9;3hFCD!J9oL&r&`Jwo=c<
zQQqPH(fT;QiDpLQNr~Ss86NHDHv^+fmW(e;x75|Oq<@4z+}&lS&^b!gZHy1l01RLN
zoX1P|$DPTDb5kj`sdIg9cWIn<=hk<=9p&R9{KOoe at uZpNnXNb-Z{p;0mUrR%<b%gV
zEpW2BDh%AmIxS3e-ZL at jsfk{eI`<F<pI<hcaCe*VezgP at ySW6?h9Vd}6Vt?T?>XR}
zFyWsH+?#iCYrd%=tdR{HaR){EcOGB at L`4cFY>1Ry9R3nulZba~pHx54nn|Z~A!`qz
z9*4GWWos_W)8kJ~0h~Q*c0jmmFxt8#7jn6 at SYyIO)`9qBZ;nT!UcEgN<9Io>XV`N&
zVw!P6&HkC=dlBN^F0jC-eEz)7_FS3<8{e=4QS{56bGyg`g;Kx7i9VfM1c><IDS6lI
zAoVh9;!uy-BlhNnCQG=hKW^M{&Ww$3DWXrK*&Ac|IR&s9&z({(S6JTU-?T2;N{K(@
z{vD;ySkvdLyOwnlJp=;YTm1fY7`QjF2Ti;KuFrgV;-*v!eGGfJi+>cGe;m75t66uk
z1(Rppk8d=k&$SnG8my83nYmus at fVoO_#HgMe#cxdaPNa*F<r`lr<iN}{^1=<;GV$w
z)sj7)?B+OSG2t%=Ldb3XRB6%HA8ZN)<&<ghziU&^&?s5_4_nFNZ#{Ke&u!Uzgb%pc
zzrP*!`A4_C`s#yYFC0fU4G(t)DwBQaYYp=We}FxWbqP}t0{#?eoJczf#`Qw?!7>3U
zK;?^qldbH2)E|xdvm_?r@}WC?QyKpKBPIFC`08ZZygz2jPE&u1f>rUS_zZm`+cEhH
znR4AsoIl6fZ>+D2l5j_BzYMN&7;DetKxyt#rXXknX#9wJ!RiTE^Ip6+8hv>5P&9f7
z9Q<T<N&YJVJ^C;eqst_yH0MQF=?mG)(_W9`+;1F_XdV#3&5L8LX_Esc*<tj|TkJ)A
zDxSWMM_e&+-f$kG>aa(B8aCX1)GmSks?Wfq1qy%A-hhvZcCiD|y&=@Yq}I*6KVT0s
z(YO)@^47ud&T0HwxtD#y_$}*V4;p8TWy0 at L?Ly^k;lWm6+RjQ7_f30Z3fwNfJ&v<N
zkgGh+aP0th3(Ff>Uho}n*!u#|hyhFCIS9i{3hvg)RKX;vE_RPAwBouOXEbQ{X|rbD
zc- at MS>mD;}<}742%-~r+SbXzh{A0yJR|Tn1 at T%)>EH6}iZ$`sN`{Ko0mk8WnjN79Y
zVSP5 at D{A=GRa4T7b8LV!2Mj>~QVTKSaJ~hUP2`kPNC9$+K at GQDm>X*VIlOZLd5}Iu
z?Glps{@;D9&T716EH~c%_HxD5)_rNPN*z(Ff|qu;xs>JS$@-UEZ{C_2tY;%XWJ$sJ
znK5GgOkl|e{?t1Y)il6N(m0TjT1|TYO~`%{B&kNru;o_E=Pmcpdi|@tyKcYfQ<t?h
zU=pxi=Rh$3n3K=}j|r(3^HnU5`6^DD4BMMIX(^aY`J{;j*iX&L4F>*1xdINm;FC*W
z+$7)R?TF%T at 9qm%DOami;lA#6O&%GMHJ+tjt?(?j@|hftbL4wlSf|pXIBWB>{Q+06
zpnEQwHCq+Bm2SnAYH82|t{%UqZPskXS}V<#lyGgLLQ at +x=Zxt!lC?paZB-+6HOQJ>
z;i4?z5^Ja~B89z at C*rjx@@Z=<B8L;dzgme->$_x*3CNsF`ldxWY`s10Ze at hP?dc6y
zwbkN`$v~sE<@+T#tX&)qz!sc<qf07*YYaAN&Y9J<vM^g}l+?- at H7>Wa$xT at bvYG%J
zvb1S|s1&Y?!K#0_vfdhRN#a}y=rL^c+xfW#^17pwMqQj9U)*+4b-<&MKRV_Y;+Y4s
zJ=~a~i^Xp({zN|<wcz0lPbz#0i~<ce<)F6orvmV2z)p^>1A1tDUrLgFRDAoHo!1>>
zzJJ^>K65B|OG9mH;Qw}Z^+9e`*Zm!Rue4uyv9T><KUrRXtlryQt=IP2EM}4R!(c<!
z#u&*sptny?E7 at 8}k)FIZolGeqiP;#^QbH+psY{cVG?YFqA2pP=gr+H_w1EGholfA7
zOed3>&M=(}?Q}B5>F?b4B=7p8naSGsopaAU_uO;NJ@>p1J?X-Ko#E;2ldgU7nCtN1
zjW_L#c|MG9nH<|Z^7TVcyB_;|-u3;DAIIOv-#B;f^KVt;4e{|+T at gH49^S6faNM;!
z5Q^^h?0T{@a_L{F*1M9PJ$Fu=&yKrag-z|aFXqn&Tzo#mk3B_jABd+RC|h>06?jg8
zXCrUA{6{W*^N;EIuY7p^{rAs5?H+pV(znTT?(=Nw{pa83|Ms&pTnqHvH}b-RU8Dac
zh1@^ol=s1FCwb==zyrr|hj;{Uf8<aVdmb^J-)nIn`o(eSsF$zcKlXfRzXc`Q?88Nt
z<i?MqxYH=-ZRo<%TUr-9&Gzp)eB6%<_d)Rt0CF4iacRnZ!mhg>SweIAa6d8}ex^11
z0<t{O#&S at 1VY`Qxo(^p(|Fv+T(~_}TJWbk?@tR}sI6Q81Y}dOO8-?v@(%BYa&vp8@
z+Lzk26u(YC;j`=6)|?}!Z_75WJN9@^IyloHhiz#VA^QaAP8&yrpf&sN1MfI!OQ8E1
z)Q_P&ic)ck4EQ}1*7I%jdDAX#rZeqDrwqeipP_Aq!;^B_Sr+&_Y|kfvA3AiVaSX9O
zj*czdsf!rkG0<1c3G0U6Kw}-S-fTVb-Vcu}bauuPdhG-4KTvS7Aas4q(d%K<p|kX#
zr~~IB{RlL+oeSE8d>)s}#|~`Pzl{2;=)-?w(hJhR<7sh%UUGH2W?av at C3n_+!L!cu
zsrO;;8$O@!obOY7LYnnI>3`RMDKHi|8~91vSlgxG+2D^ueW6F%rS`+^PqzQGW4hx^
z$0vA*a<ucmyGFX6>z1);>kn>tYQ^dmPxVMW$9n#E<*}77t(sZ&E;ji)a?@L at SFFyi
zer=6!O=``lHP5VhZOun(U2FT-9$ovjwTo*%2?xVF!)ACf{OP*Bb*I+- at a7wDp1Jwi
zn?G0|SU<M@%=(KP)@{gbSd=AsP|ieLk?F{VjlPYCH=f`4vuJlT6+Ih$G5VuTZ}fKe
zKGb`0b71qy%|F?4U`uh!*)4BxJ+Sq?ZA076^{wbT-1kb~k7M1j!B{F*j6D(ixw1!j
zNO?wiM^)4_>P7WZ|K5JH|CIsXz|g=01J4dz82Gn=pAB{n_75H%d?Y>^e{N{=_SEpu
z at R{L%-7&p0xN~^tp`DNJd~?^HT`!Jo962`f at W|rGr at Om%kL^CW`}y4;?FsJ5?0IR=
zN4E^!a_p9~qpL<|M&G+NbL;uN-FwgMeQxgudw+i0;BC*{_Sx9_vAf64-yXRAe-bl^
zvzQ~kr at AP8hEHnv&xO*B_jV*{ID`lne=DR<T6uB at DE3_#A+PRma2LMsbE|{9K_7Q;
z5AXvH?!{*ahaKDp`hyN0#53Vp2M^(#_av at d$%8j3q~p?e9GoQVw(8(62`_&+xEplU
z!9Bolb#Sk=itci7ALzP+2c;uabMTO~nf at VJuAHtGX7i@JHMvb58jKIiGpFS;NQIJC
zl(o8<FIQ{wn4Bw at OruyV_v_`kCVt46trxXwv)Y75jB2e=F3Iu!!6s?SC>d4FG_owc
zc5-&eG;?yUTAq_99l3I)T0U;*W`Eu^D|-e8nmu_uJY*_M6>K+El?rfGUNR*aKTeUv
z!+%*C!i8WQ9|6eNnE5o0WrwSP4XQM$2#SW+W=-_smKy3~C^^(hpc>#P0`He}9Otg0
z9|FfL`WGRkdR6O{QjUO|$0!KtGW6<)c2{yufvY4qHK9Qk`q;YH at H*lwEHd#gC$y{z
ztz>CZNW84C41aLjamdlZ-7maig1Sc<z`rZUY}$vY;t1!zpbf4%;%jl(-pWn*c?!bb
ztl03o4R6YYurp={9wT>AH{C!hsE2N(mH0~XO|+WU&|17Xx=wuJzky_m&_;^VChEnl
z!WR6#^ET|v9V3NQyu^mL6DdwZ*duS4cHo<4yJ!S2(e1(Rd87D9ncqkqquY@$lQd2f
zG)YsmkM5v5X+IsHyXbEE0!`CFIz;!-VY-)&(0!DmG##b;=@@;H9-s#)LmJJHPFXT2
zN3)ct0v)FlRHQj7QJE_EYGRdYWKx|@(mZyiKTQwOui+WQm$7a9uhYZy8}tZ$g&w7^
z(%0zgbcP<I1^Nb^rN`+B`X>D*{T4k*zfDikx9Dm59eRd-m!75H!%fle({uC(be{eY
zukHU4eVe|6d&)nd7wEh6r}RB~k^YQcqCY2#8nj3+(<}5Uy+(gQ7wC0*gZ`4<q`#uS
zroW-L===0G{Vn}~{*Hb~e^2k=t=D(yAL%{%C;Df4pFW at u>7u7zGpg-*qgYY(LRBvs
zSzpc2s(RjSYO~&K*;I$xv}(0HUsLsYZ>3r&nVq^;(v4!1KVW1Frm7W9Z?TNU?!&QM
zHv`%7e5qL0vH>%%Vr|bFE;H|EyihYeHB+kw`Jfte74x*0m8kjZ748tS^-#@xp%h{T
z9KBrS6CHZq&`;QX)VN<SmQfoDmQSd)FV(fGk#$!JCAV?f at M)&0>3LthR4kNEc*G%J
zo-;g!Qm)+2ho)4YajH_Tnn4=~GirH=>JZ1KTz}Ot=MBT`fLx<wA}KLvTdQ_M3v0>^
zKsSvUy=GOb<=xq`?m?-+FS=?Pr%XR1h0 at 9PCV?w~T%l;Fm29p}AoJyFHYhOT6g=K#
zx0dIPYNd>cu$u~V+N|N$%d>tIR?9bEHA;Fupld~=l+~)3FB@^3E!^gvVdwcDDwpRl
za6mvzTL({D(}tl?y%iNh9YrJ8nv0=Mk?UKGVz$+6p^7<V5D?5j+H5|?gyeF?D7A at 3
z#)5V$qkeQ0B&{?H7cfi6Mg>p6#_N@!jj*s4HtK|j=+d*CB)WDlr`0Q0^kY#sG^N&O
zoWUKYY*|o*psr<1^~&;2EXH=jOkvixABbZ=F!l^U`%*V{*!DXX1TT9VL2-E+T>89Q
z*XJSgBvu_<U?a at pujT8xT+s+1KJrk{@aM6-%GJ{x)><hW(96Z5R;d~7c3l+%b~LHN
zXP!z?JKe#D)^xTntzog2D_#UmJ?k|!_{Uw&<-B4g2DF-KR138eZ5X|3sxw;EJyV|z
z=|<Ho<O)~-2D;Qv)ciH9F{s`qAZzYn%sZ>qp>qwZ7N_+<R)c)4W(10boH0``pZ4nY
z8KdUmV_>FUEY`5J{quzq1k}2hXCXE2s}$=sHQp&eGbrNzxk8D_T{djdJC~+BHQtd&
z(leWx#W$xFijXKWRJ{Fiq5_R`2_Bc&2}X^3p^_R8U0(n3U~56gJ6kB$HWHSdQ{rs`
zvMarqS2gb8L$H};^?6u=$%uO^8uFsAYUoG<(4|~qmF5ekp7#{X<qGG&dRC41EOEDr
zH4F`nj-|ACo8vRcWMA(P$02{Epquro;h8f^b$_i`$RY{D_cc44Ysc#~(`P%Z-3GRQ
znw3(SHOZB$C;YX7Y0PPr5W)f1c{Lp?*;mUKjAGVrJ2oD$&nmEhM}y5XntsB^IT_Bx
z`q$av!Di9~%|4C5Y2vH`Siwpx)bc*t7AN8=1tVz39$W38NZ(qh6_IM(tre=lW^k$T
z_FS<%uj*P&*Rn>NsF+p5!B|X4&}OPQ&E>lUUeT&rv53_dM<O at HX>q$t&$hD>NS~@%
zz`2Dz=eRGM4dOC%wrbRB>R{8nAulKBp%5RPIP?Io1zY(!E=~$1V_sZKk@$5W`)<Oy
zxUwWgwxoMg6KPrAe?jUzxZm>Kb2McQhpnyYOio_7H)Xkcwbui<EztGoOgIv;q_ia^
zqvMOXGe~9<szr(=XL73LQsk^`y)|ulHXmKwO2OoWK5^*&R3sV+FQjB^dO8)c#?oQg
z8ewcCot7Imla{r%g5=a>YmnOqne(mblnf;nG}#JHr!t_(+!kbPCu2J^;Y>Q64qFsU
zr=ylMoifsC)p9HHglu_wH7MjwPNytyG-3Io38<g8D5F{)B?`UdY{NT~kh#SkoR5~2
znb0kFUj+1|ydW<?c4N at n3$qTUGSgx0P&yS&qjl__6q>?plryqwc@@i_j4k3)R=CE8
zYBUjri=zq6a?Ru{(lNf}?Ncp3ezyinhLZXPk2C`os5zENGfQS%C>c-|{UIqik?4!G
zoZY4 at cYe^8LNTb2gvA+oVj-&WL<mnwVfLmahoNLsOUvCG)yC~1Lf7eTZ9*?}Zke{U
zQ#;2 at G_e>8x+hYRa5R$ci>OwI(r~#ZtgJS!TAd0EkY%eqc_-TiB$`ND9b7wvS_f*X
z)dex#!X+|1phIn|GntVWGP2bPr>R!Avj1?Z;mMAtH(4D<^ptAdpzJ at G+JBEt3`aok
z5%d*GL+VQ2n`(4*B`wktR#%LJ6rr1FwDX|@2a8r=CfvQ#sRl<boRwI>^zyKMktn(~
z at vz;_T at d@+nuaA)(0?j}NnAEn*O|Zu9)U*TVnoy4MeM06qM=8T8j@?`aLVe6Cgce#
zgrE#!-ZBX}gW+H8#+JFAQX;XCX{_+YtZFR05pKE>w)MnRYo*d4hO6LbhBqk<H^bFR
z!^3cm((p1|t2BHJ!%D-?aGlZ!FuYl5v at u+-NLEMeS5RaF6j=`eG8ADLfg%hyLJ@{h
zD8g_P6k*s4MHp^|A`G`c5r$i#2*YiPJSyV6Pl5g2899kb$nd0TfYvq+s+eN+#jHLo
z7X^_zg^;@DdWmWyQO;HWF9+g9wba%e&?-ymv+&DR!pr?jy|TP%K#_L{JqN)<6IU-+
zWPxj{#dK-aD<aj7?~RT$@H2_9Bo4cw=ry}!5VhKfY7Hs<H;t;+_Fu+|2-CqnjH!@T
z^~(M76t7IU at Q#Irspu3kK?*q=IS<QqJ8uk%@pmAFtU~nTzhJT2k}+eUKPt<k3y`(*
za<klT%dk9<2`<^n at M0c2n0nbIyXEl9uFdYX=>#XZ08%B!!-&yIEG^99@^ykmO))!@
zyONn~)N&`aEOLx1sfB at O(pZ>R_R*jcvTk%z8wp1-!X)eh5TiieH3oqqoC!Tx-SE8^
zfrPw$g(i at wp>wZL0!N%iIE7sv3sJI*eIR3W?`Fpb(NVZ&M3AijR<A5iMyGf%o~_-&
zWo&@sQR#51UmnGYk2Q9P5O&$+zFySsKvV0~YERVF!Ig<RGXot}YmcKrvN<&wKKEW}
zVsk2QQKE7`du<X~cQoDKz-u*Fc%v;cX7e)n))rZCH at hz5*{fJPV$GIiLT^*7ov{VP
z5C_Wwmg7|eV_N#H7{(tH?&1J!dY6MMidE5%MPloCJCX$wbSqMu_WtrvoVr$E{3_AM
ze&f6{8XXBomdtk~?dX_bXEdFfWcwrRc~;S}qh<0qOkQa(PMpfI4tx5oIM(9Cb?B4G
zwRB^TH3Xh1#To|K$6lL&U*$=hvzmUoL*a0=_Q9=pD)=Fs+kxx{LW~?x7D-U<0wO4P
zGfx6dUtk_arkRJ4gUrLoA?Dc&<R0c><S_Fvaxe2Ra)f!tfZWGCjHH-{ku>u#a+G<J
zK<;NAMvgHLBVS}5Mjl|E+kiaCJd9+RhY^i=7 at 1M5T`f23T(NEeIV-SHV1|e%kZ(mL
zr&uE`?pdw~?!3U5yC5)TJ+4^0TdXIzB3O$8W7au=F>6V&_Ow{bToJ4lfidfs1jejY
z1z)RhHLr{kF)LtL?oHFD_*A1xxX6Cz5H3LI2_$9vvbxfcya`+|^w}`548D%DN1LEH
zm|GfeY@#y<aj|$N)o^FW8=JZIM&MyQn;$!)<BAC^xF$|Fr1riG^oy at rp2u-^7?=JJ
DzM+#I

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/fonts/fontello.svg b/ui/new-ui-samples/fonts/fontello.svg
new file mode 100644
index 0000000..7efcd70
--- /dev/null
+++ b/ui/new-ui-samples/fonts/fontello.svg
@@ -0,0 +1,220 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>Copyright (C) 2014 by original authors @ fontello.com</metadata>
+<defs>
+<font id="fontello" horiz-adv-x="1000" >
+<font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
+<missing-glyph horiz-adv-x="1000" />
+<glyph glyph-name="user" unicode="&#xe800;" d="m786 66q0-67-41-106t-108-39h-488q-67 0-108 39t-41 106q0 30 2 58t8 61 15 60 24 55 34 45 48 30 62 11q5 0 24-12t41-27 60-27 75-12 74 12 61 27 41 27 24 12q34 0 62-11t48-30 34-45 24-55 15-60 8-61 2-58z m-179 498q0-88-63-151t-151-63-152 63-62 151 62 152 152 63 151-63 63-152z" horiz-adv-x="785.7" />
+<glyph glyph-name="help-circled" unicode="&#xe801;" d="m500 82v107q0 8-5 13t-13 5h-107q-8 0-13-5t-5-13v-107q0-8 5-13t13-5h107q8 0 13 5t5 13z m143 375q0 49-31 91t-77 65-95 23q-136 0-207-119-9-14 4-24l74-55q4-4 10-4 9 0 14 7 30 38 48 51 19 14 48 14 27 0 48-15t21-33q0-21-11-34t-38-25q-35-16-65-48t-29-70v-20q0-8 5-13t13-5h107q8 0 13 5t5 13q0 10 12 27t30 28q18 10 28 16t25 19 25 27 16 34 7 45z m214-107q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
+<glyph glyph-name="search" unicode="&#xe802;" d="m643 386q0 103-74 176t-176 74-177-74-73-176 73-177 177-73 176 73 74 177z m286-465q0-29-22-50t-50-21q-30 0-50 21l-191 191q-100-69-223-69-80 0-153 31t-125 84-84 125-31 153 31 152 84 126 125 84 153 31 152-31 126-84 84-126 31-152q0-123-69-223l191-191q21-21 21-51z" horiz-adv-x="928.6" />
+<glyph glyph-name="tag" unicode="&#xe803;" d="m250 600q0 30-21 51t-50 20-51-20-21-51 21-50 51-21 50 21 21 50z m595-321q0-30-20-51l-274-274q-22-21-51-21-30 0-50 21l-399 399q-21 21-36 57t-15 65v232q0 29 21 50t50 22h233q29 0 65-15t57-36l399-399q20-21 20-50z" horiz-adv-x="857.1" />
+<glyph glyph-name="dot-2" unicode="&#xe804;" d="m110 460q46 0 78-32t32-78q0-44-32-77t-78-33-78 32-32 78 32 78 78 32z m350 0q46 0 78-32t32-78q0-44-33-77t-77-33q-46 0-78 32t-32 78 32 78 78 32z" horiz-adv-x="570" />
+<glyph glyph-name="arrows-cw" unicode="&#xe805;" d="m843 261q0-3 0-4-36-150-150-243t-267-93q-81 0-157 31t-136 88l-72-72q-11-11-25-11t-25 11-11 25v250q0 14 11 25t25 11h250q14 0 25-11t10-25-10-25l-77-77q40-37 90-57t105-20q74 0 139 37t104 99q6 10 29 66 5 13 17 13h107q8 0 13-6t5-12z m14 446v-250q0-14-10-25t-26-11h-250q-14 0-25 11t-10 25 10 25l77 77q-82 77-194 77-75 0-140-37t-104-99q-6-10-29-66-5-13-17-13h-111q-7 0-13 6t-5 12v4q36 150 151 243t268 93q81 0 158-31t137-88l72 72q11 11 25 11t26-11 10-25z" horiz-adv-x="857.1" />
+<glyph glyph-name="print" unicode="&#xe806;" d="m214-7h500v143h-500v-143z m0 357h500v214h-89q-22 0-38 16t-16 38v89h-357v-357z m643-36q0 15-10 25t-26 11-25-11-10-25 10-25 25-10 26 10 10 25z m72 0v-232q0-7-6-12t-12-6h-125v-89q0-22-16-38t-38-16h-536q-22 0-37 16t-16 38v89h-125q-7 0-13 6t-5 12v232q0 44 32 76t75 31h36v304q0 22 16 38t37 16h375q23 0 50-12t42-26l85-85q15-16 27-43t11-49v-143h35q45 0 76-31t32-76z" horiz-adv-x="928.6" />
+<glyph glyph-name="cancel-circled" unicode="&#xe807;" d="m641 224q0 14-10 25l-101 101 101 101q10 11 10 25 0 15-10 26l-51 50q-10 11-25 11-15 0-25-11l-101-101-101 101q-11 11-26 11-15 0-25-11l-50-50q-11-11-11-26 0-14 11-25l101-101-101-101q-11-11-11-25 0-15 11-26l50-50q10-11 25-11 15 0 26 11l101 101 101-101q10-11 25-11 15 0 25 11l51 50q10 11 10 26z m216 126q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
+<glyph glyph-name="edit-alt" unicode="&#xe808;" d="m0-150l0 1000 646 0-164-164-318 0 0-672 672 0 0 319 164 164 0-647-1000 0z m363 363l0 118 6 0q39 2 72-30 39-39 39-88l-117 0z m51 176l367 367 125-125-367-367z m397 397l64 64 125-125-64-64z" horiz-adv-x="1000" />
+<glyph glyph-name="login" unicode="&#xe809;" d="m661 350q0-14-11-25l-303-304q-11-10-26-10t-25 10-10 25v161h-250q-15 0-25 11t-11 25v214q0 15 11 25t25 11h250v161q0 14 10 25t25 10 26-10l303-304q11-10 11-25z m196 196v-392q0-67-47-114t-114-47h-178q-7 0-13 5t-5 13q0 2-1 11t0 15 2 13 5 11 12 3h178q37 0 63 27t27 63v392q0 37-27 63t-63 27h-174t-6 0-6 2-5 3-4 5-1 8q0 2-1 11t0 15 2 13 5 11 12 3h178q67 0 114-47t47-114z" horiz-adv-x="857.1" />
+<glyph glyph-name="logout" unicode="&#xe80a;" d="m357 46q0-2 1-11t0-14-2-14-5-11-12-3h-178q-67 0-114 47t-47 114v392q0 67 47 114t114 47h178q8 0 13-5t5-13q0-2 1-11t0-15-2-13-5-11-12-3h-178q-37 0-63-27t-27-63v-392q0-37 27-63t63-27h174t6 0 7-2 4-3 4-5 1-8z m518 304q0-14-11-25l-303-304q-11-10-25-10t-25 10-11 25v161h-250q-14 0-25 11t-11 25v214q0 15 11 25t25 11h250v161q0 14 11 25t25 10 25-10l303-304q11-10 11-25z" horiz-adv-x="928.6" />
+<glyph glyph-name="download" unicode="&#xe80b;" d="m0 84v73q0 33 24 56t57 24 56-24 24-56v-73q0-17 12-29t30-13h531q18 0 30 13t12 29v73q0 33 24 56t56 24 57-24 24-56v-73q0-84-59-143t-144-60h-531q-84 0-144 60t-59 143z m155 359q0 33 24 57 23 23 56 23t57-23l105-106v344q0 33 24 57t56 23 57-23 24-57v-344l110 110q24 24 57 24t56-24q24-23 24-56t-24-57l-247-247q-24-25-57-25-32 0-56 25l-242 242q-24 24-24 57z" horiz-adv-x="937.5" />
+<glyph glyph-name="th-large" unicode="&#xe80c;" d="m429 279v-215q0-29-22-50t-50-21h-286q-29 0-50 21t-21 50v215q0 29 21 50t50 21h286q29 0 50-21t22-50z m0 428v-214q0-29-22-50t-50-22h-286q-29 0-50 22t-21 50v214q0 29 21 50t50 22h286q29 0 50-22t22-50z m500-428v-215q0-29-22-50t-50-21h-286q-29 0-50 21t-21 50v215q0 29 21 50t50 21h286q29 0 50-21t22-50z m0 428v-214q0-29-22-50t-50-22h-286q-29 0-50 22t-21 50v214q0 29 21 50t50 22h286q29 0 50-22t22-50z" horiz-adv-x="928.6" />
+<glyph glyph-name="th" unicode="&#xe80d;" d="m286 154v-108q0-22-16-37t-38-16h-178q-23 0-38 16t-16 37v108q0 22 16 38t38 15h178q22 0 38-15t16-38z m0 285v-107q0-22-16-38t-38-15h-178q-23 0-38 15t-16 38v107q0 23 16 38t38 16h178q22 0 38-16t16-38z m357-285v-108q0-22-16-37t-38-16h-178q-23 0-38 16t-16 37v108q0 22 16 38t38 15h178q23 0 38-15t16-38z m-357 571v-107q0-22-16-38t-38-16h-178q-23 0-38 16t-16 38v107q0 22 16 38t38 16h178q22 0 38-16t16-38z m357-286v-107q0-22-16-38t-38-15h-178q-23 0-38 15t-16 38v107q0 23 16 38t38 16h178q23 0 38-16t16-38z m357-285v-108q0-22-16-37t-38-16h-178q-22 0-38 16t-16 37v108q0 22 16 38t38 15h178q23 0 38-15t16-38z m-357 571v-107q0-22-16-38t-38-16h-178q-23 0-38 16t-16 38v107q0 22 16 38t38 16h178q23 0 38-16t16-38z m357-286v-107q0-22-16-38t-38-15h-178q-22 0-38 15t-16 38v107q0 23 16 38t38 16h178q23 0 38-16t16-38z m0 286v-107q0-22-16-38t-38-16h-178q-22 0-38 16t-16 38v107q0 22 16 38t38 16h178q23 0 38-16t16-38z" horiz-adv-x="1000" />
+<glyph glyph-name="th-list" unicode="&#xe80e;" d="m286 154v-108q0-22-16-37t-38-16h-178q-23 0-38 16t-16 37v108q0 22 16 38t38 15h178q22 0 38-15t16-38z m0 285v-107q0-22-16-38t-38-15h-178q-23 0-38 15t-16 38v107q0 23 16 38t38 16h178q22 0 38-16t16-38z m714-285v-108q0-22-16-37t-38-16h-535q-23 0-38 16t-16 37v108q0 22 16 38t38 15h535q23 0 38-15t16-38z m-714 571v-107q0-22-16-38t-38-16h-178q-23 0-38 16t-16 38v107q0 22 16 38t38 16h178q22 0 38-16t16-38z m714-286v-107q0-22-16-38t-38-15h-535q-23 0-38 15t-16 38v107q0 23 16 38t38 16h535q23 0 38-16t16-38z m0 286v-107q0-22-16-38t-38-16h-535q-23 0-38 16t-16 38v107q0 22 16 38t38 16h535q23 0 38-16t16-38z" horiz-adv-x="1000" />
+<glyph glyph-name="star" unicode="&#xe80f;" d="m929 489q0-12-15-27l-203-197 48-279q1-4 1-12 0-11-6-19t-17-9q-10 0-22 7l-251 132-250-132q-13-7-23-7-11 0-17 9t-6 19q0 4 1 12l48 279-203 197q-14 15-14 27 0 21 31 26l280 40 126 254q11 23 27 23t28-23l125-254 280-40q32-5 32-26z" horiz-adv-x="928.6" />
+<glyph glyph-name="star-empty" unicode="&#xe810;" d="m634 290l171 165-235 35-106 213-105-213-236-35 171-165-41-235 211 111 211-111z m295 199q0-12-15-27l-203-197 48-279q1-4 1-12 0-28-23-28-10 0-22 7l-251 132-250-132q-13-7-23-7-11 0-17 9t-6 19q0 4 1 12l48 279-203 197q-14 15-14 27 0 21 31 26l280 40 126 254q11 23 27 23t28-23l125-254 280-40q32-5 32-26z" horiz-adv-x="928.6" />
+<glyph glyph-name="users" unicode="&#xe811;" d="m331 350q-90-3-148-71h-75q-45 0-77 22t-31 66q0 197 69 197 4 0 25-11t54-24 66-12q38 0 75 13-3-21-3-37 0-78 45-143z m598-356q0-66-41-105t-108-39h-488q-68 0-108 39t-41 105q0 30 2 58t8 61 14 61 24 54 35 45 48 30 62 11q6 0 24-12t41-26 59-27 76-12 75 12 60 27 41 26 23 12q35 0 63-11t47-30 35-45 24-54 15-61 8-61 2-58z m-572 713q0-59-42-101t-101-42-101 42-42 101 42 101 101 42 101-42 42-101z m393-214q0-89-63-152t-151-62-152 62-63 152 63 151 152 63 151-63 63-151z m321-126q0-43-31-66t-77-22h-75q-57 68-147 71 45 65 45 143 0 16-3 37 37-13 74-13 33 0 67 12t54 24 24 11q69 0 69-197z m-71 340q0-59-42-101t-101-42-101 42-42 101 42 101 101 42 101-42 42-101z" horiz-adv-x="1071.4" />
+<glyph glyph-name="upload" unicode="&#xe812;" d="m0 84v73q0 33 24 56t57 24 56-24 24-56v-73q0-17 12-29t30-13h531q18 0 30 13t12 29v73q0 33 24 56t56 24 57-24 24-56v-73q0-84-59-143t-144-60h-531q-84 0-143 59t-60 144z m155 407q0 33 24 57l247 247q23 23 57 23 33 0 56-23l243-242q23-24 23-57t-23-57q-24-23-57-23t-57 23l-105 105v-344q0-33-24-57t-56-24q-33 0-57 24t-24 57v344l-110-110q-24-23-57-23t-56 23-24 57z" horiz-adv-x="937.5" />
+<glyph glyph-name="circle-thin" unicode="&#xe813;" d="m429 707q-73 0-139-28t-114-76-76-114-29-139 29-139 76-113 114-77 139-28 138 28 114 77 76 113 29 139-29 139-76 114-114 76-138 28z m428-357q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
+<glyph glyph-name="dot-circled" unicode="&#xe814;" d="m571 350q0-59-41-101t-101-42-101 42-42 101 42 101 101 42 101-42 41-101z m-142 304q-83 0-153-41t-110-111-41-152 41-152 110-111 153-41 152 41 110 111 41 152-41 152-110 111-152 41z m428-304q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
+<glyph glyph-name="ok" unicode="&#xe815;" d="m932 534q0-22-15-38l-404-404-76-76q-16-15-38-15t-38 15l-76 76-202 202q-15 16-15 38t15 38l76 76q16 16 38 16t38-16l164-165 366 367q16 16 38 16t38-16l76-76q15-16 15-38z" horiz-adv-x="1000" />
+<glyph glyph-name="check-empty-1" unicode="&#xe816;" d="m625 707h-464q-37 0-63-26t-27-63v-464q0-37 27-63t63-27h464q37 0 63 27t26 63v464q0 37-26 63t-63 26z m161-89v-464q0-67-47-114t-114-47h-464q-67 0-114 47t-47 114v464q0 66 47 113t114 48h464q66 0 114-48t47-113z" horiz-adv-x="785.7" />
+<glyph glyph-name="clock-2" unicode="&#xe817;" d="m0 349q0 188 134 322t322 134 321-134 133-322-133-321-321-133-322 133-134 321z m119 0q0-140 99-238t238-99 238 99 99 238-99 238-238 99-238-99-99-238z m172-69l0 117 117 0 0 213 117 0 0-330-234 0z" horiz-adv-x="910" />
+<glyph glyph-name="ok-squared" unicode="&#xe818;" d="m382 125l343 343q10 10 10 25t-10 25l-57 57q-11 10-25 10t-25-10l-261-261-118 118q-10 11-25 11t-25-11l-57-57q-10-11-10-25t10-25l200-200q11-11 25-11t25 11z m475 493v-536q0-66-47-113t-114-48h-535q-67 0-114 48t-47 113v536q0 66 47 113t114 48h535q67 0 114-48t47-113z" horiz-adv-x="857.1" />
+<glyph glyph-name="pin" unicode="&#xe820;" d="m268 368v250q0 8-5 13t-13 5-13-5-5-13v-250q0-8 5-13t13-5 13 5 5 13z m375-197q0-14-11-25t-25-10h-239l-29-270q-1-7-6-11t-11-5h-1q-15 0-17 15l-43 271h-225q-15 0-25 10t-11 25q0 69 44 124t99 55v286q-29 0-50 21t-22 50 22 50 50 22h357q29 0 50-22t21-50-21-50-50-21v-286q55 0 99-55t44-124z" horiz-adv-x="642.9" />
+<glyph glyph-name="eye" unicode="&#xe821;" d="m929 314q-85 132-213 197 34-58 34-125 0-104-73-177t-177-73-177 73-73 177q0 67 34 125-128-65-213-197 75-114 187-182t242-68 242 68 187 182z m-402 215q0 11-8 19t-19 7q-70 0-120-50t-50-119q0-12 8-19t19-8 19 8 8 19q0 48 34 82t82 34q11 0 19 8t8 19z m473-215q0-19-11-38-78-129-210-206t-279-77-279 77-210 206q-11 19-11 38t11 39q78 128 210 205t279 78 279-78 210-205q11-20 11-39z" horiz-adv-x="1000" />
+<glyph glyph-name="attach" unicode="&#xe824;" d="m783 77q0-65-44-109t-109-44q-75 0-131 55l-434 434q-63 64-63 151 0 88 62 150t150 62q88 0 152-63l338-338q5-5 5-12 0-9-17-26t-26-17q-7 0-13 5l-338 339q-44 43-101 43-59 0-100-42t-40-101q0-58 42-101l433-433q35-35 81-35 36 0 59 23t24 59q0 46-36 81l-324 324q-14 14-33 14-16 0-27-11t-11-27q0-18 14-33l229-228q6-6 6-13 0-9-18-26t-26-17q-7 0-12 5l-229 229q-35 34-35 83 0 46 32 78t77 32q49 0 83-36l325-324q55-54 55-131z" horiz-adv-x="785.7" />
+<glyph glyph-name="unlink" unicode="&#xe825;" d="m245 141l-143-143q-5-5-13-5-6 0-13 5-5 5-5 13t5 13l143 142q6 5 13 5t13-5q5-5 5-12t-5-13z m94-23v-179q0-8-5-13t-13-5-12 5-5 13v179q0 8 5 13t12 5 13-5 5-13z m-125 125q0-8-5-13t-13-5h-178q-8 0-13 5t-5 13 5 13 13 5h178q8 0 13-5t5-13z m706-72q0-67-48-113l-82-81q-46-47-113-47-68 0-114 48l-186 187q-12 11-24 31l134 10 152-153q15-15 38-15t38 15l82 81q15 16 15 37 0 23-15 38l-153 154 10 133q20-12 31-23l188-188q47-48 47-114z m-345 404l-133-10-152 153q-16 16-38 16-22 0-38-15l-82-82q-16-15-16-37 0-22 16-38l153-153-10-134q-20 12-32 24l-187 187q-47 48-47 114 0 67 47 113l82 82q47 46 114 46 67 0 114-47l186-187q12-12 23-32z m354-46q0-8-5-13t-13-5h-179q-8 0-13 5t-5 13 5 12 13 5h179q8 0 13-5t5-12z m-304 303v-178q0-8-5-13t-13-5-13 5-5 13v178q0 8 5 13t13 5 13-5 5-13z m227-84l-143-143q-6-5-13-5t-12 5q-5 6-5 13t5 13l142 142q6 5 13 5t13-5q5-5 5-12t-5-13z" horiz-adv-x="928.6" />
+<glyph glyph-name="link" unicode="&#xe826;" d="m812 171q0 23-15 38l-116 116q-16 16-38 16-24 0-40-18 1-1 10-10t12-12 9-11 7-14 2-15q0-23-16-38t-38-16q-8 0-15 2t-14 7-11 9-12 12-10 10q-19-17-19-40 0-23 16-38l115-116q15-15 38-15 22 0 38 15l82 81q15 16 15 37z m-392 394q0 22-15 38l-115 115q-16 16-38 16-22 0-38-15l-82-82q-16-15-16-37 0-22 16-38l116-116q15-15 38-15 23 0 40 17-2 2-11 11t-12 12-8 10-7 14-2 16q0 22 15 38t38 15q9 0 16-2t14-7 10-8 12-12 11-11q18 17 18 41z m500-394q0-67-48-113l-82-81q-46-47-113-47-68 0-114 48l-115 115q-46 47-46 114 0 68 49 116l-49 49q-48-49-116-49-67 0-114 47l-116 116q-47 47-47 114t47 113l82 82q47 46 114 46 67 0 114-47l114-116q47-46 47-113 0-69-49-117l49-49q48 49 116 49 67 0 114-47l116-116q47-47 47-114z" horiz-adv-x="928.6" />
+<glyph glyph-name="home" unicode="&#xe827;" d="m786 296v-267q0-15-11-26t-25-10h-214v214h-143v-214h-214q-15 0-25 10t-11 26v267q0 1 0 2t0 2l321 264 321-264q1-1 1-4z m124 39l-34-41q-5-5-12-6h-2q-7 0-12 3l-386 322-386-322q-7-4-13-4-7 2-12 7l-35 41q-4 5-3 13t6 12l401 334q18 15 42 15t43-15l136-114v109q0 8 5 13t13 5h107q8 0 13-5t5-13v-227l122-102q5-5 6-12t-4-13z" horiz-adv-x="928.6" />
+<glyph glyph-name="info" unicode="&#xe828;" d="m357 100v-71q0-15-10-25t-26-11h-285q-15 0-25 11t-11 25v71q0 15 11 25t25 11h35v214h-35q-15 0-25 11t-11 25v71q0 15 11 25t25 11h214q15 0 25-11t11-25v-321h35q15 0 26-11t10-25z m-71 643v-107q0-15-11-25t-25-11h-143q-14 0-25 11t-11 25v107q0 14 11 25t25 11h143q15 0 25-11t11-25z" horiz-adv-x="357.1" />
+<glyph glyph-name="info-circled" unicode="&#xe829;" d="m571 82v89q0 8-5 13t-12 5h-54v286q0 8-5 13t-13 5h-178q-8 0-13-5t-5-13v-89q0-8 5-13t13-5h53v-179h-53q-8 0-13-5t-5-13v-89q0-8 5-13t13-5h250q7 0 12 5t5 13z m-71 500v89q0 8-5 13t-13 5h-107q-8 0-13-5t-5-13v-89q0-8 5-13t13-5h107q8 0 13 5t5 13z m357-232q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
+<glyph glyph-name="export" unicode="&#xe82f;" d="m786 298v-144q0-67-47-114t-114-47h-464q-67 0-114 47t-47 114v464q0 66 47 113t114 48h142q7 0 13-6t5-12q0-15-15-18-43-15-74-34-5-2-9-2h-62q-37 0-63-26t-27-63v-464q0-37 27-63t63-27h464q37 0 63 27t26 63v119q0 11 10 16 16 7 30 21 9 9 20 4 12-5 12-16z m132 277l-214-214q-10-11-25-11-7 0-14 3-22 9-22 33v107h-89q-181 0-245-73-66-77-41-264 2-13-11-19-5-1-7-1-9 0-14 7-6 8-12 17t-22 38-28 56-21 64-10 68q0 27 2 50t8 51 15 49 27 45 38 42 52 34 70 27 89 17 110 6h89v107q0 24 22 33 7 3 14 3 14 0 25-11l214-214q11-11 11-25t-11-25z" horiz-adv-x="928.6" />
+<glyph glyph-name="export-alt" unicode="&#xe830;" d="m561 236l196 196q11 11 11 25t-11 25l-196 197q-17 17-39 7-22-9-22-32v-90q-66 0-121-11t-90-28-64-44-42-53-25-61-12-62-3-62q0-101 93-226 6-6 14-6 4 0 7 1 13 5 11 19-25 197 34 264 26 29 73 42t125 13v-89q0-24 22-33 7-3 14-3 14 0 25 11z m296 382v-536q0-66-47-113t-114-48h-535q-67 0-114 48t-47 113v536q0 66 47 113t114 48h535q67 0 114-48t47-113z" horiz-adv-x="857.1" />
+<glyph glyph-name="share" unicode="&#xe831;" d="m679 279q74 0 126-53t52-126-52-126-126-53-127 53-52 126q0 7 1 19l-201 100q-51-48-121-48-75 0-127 53t-52 126 52 126 127 53q70 0 121-48l201 100q-1 12-1 19 0 74 52 126t127 53 126-53 52-126-52-126-126-53q-71 0-122 48l-201-100q1-12 1-19t-1-19l201-100q51 48 122 48z" horiz-adv-x="857.1" />
+<glyph glyph-name="share-squared" unicode="&#xe832;" d="m714 183q0 49-35 84t-84 36q-46 0-80-33l-135 67q1 9 1 13t-1 13l135 67q34-33 80-33 50 0 84 36t35 84-35 84-84 35-84-35-35-84q0-4 1-13l-134-67q-35 32-81 32-49 0-84-35t-35-84 35-84 84-35q46 0 81 32l134-67q-1-9-1-13 0-49 35-84t84-35 84 35 35 84z m143 435v-536q0-66-47-113t-114-48h-535q-67 0-114 48t-47 113v536q0 66 47 113t114 48h535q67 0 114-48t47-113z" horiz-adv-x="857.1" />
+<glyph glyph-name="retweet" unicode="&#xe836;" d="m714 11q0-8-5-13t-13-5h-535q-5 0-8 1t-5 4-3 4-2 7 0 6v335h-107q-15 0-25 11t-11 25q0 13 8 23l179 214q11 12 27 12t28-12l178-214q9-10 9-23 0-15-11-25t-25-11h-107v-214h321q9 0 14-6l89-108q4-6 4-11z m357 232q0-14-8-23l-179-214q-11-13-27-13t-27 13l-179 214q-8 9-8 23 0 14 10 25t26 11h107v214h-322q-9 0-14 7l-89 107q-4 5-4 11 0 7 5 12t13 6h536q4 0 7-1t5-4 3-5 2-6 1-7v-334h107q14 0 25-11t10-25z" horiz-adv-x="1071.4" />
+<glyph glyph-name="attention-alt" unicode="&#xe837;" d="m286 154v-125q0-15-11-25t-25-11h-143q-14 0-25 11t-11 25v125q0 14 11 25t25 10h143q15 0 25-10t11-25z m16 589l-15-429q-1-14-12-25t-25-10h-143q-14 0-25 10t-12 25l-15 429q-1 14 9 25t25 11h179q14 0 25-11t9-25z" horiz-adv-x="357.1" />
+<glyph glyph-name="attention" unicode="&#xe838;" d="m571 83v106q0 8-5 13t-12 5h-108q-7 0-12-5t-5-13v-106q0-8 5-13t12-6h108q7 0 12 6t5 13z m-1 208l10 257q0 6-5 10-7 6-14 6h-122q-7 0-14-6-5-4-5-12l9-255q0-5 6-9t13-3h103q8 0 13 3t6 9z m-7 522l428-786q20-35-1-70-10-17-26-26t-35-10h-858q-18 0-35 10t-26 26q-21 35-1 70l429 786q9 17 26 27t36 10 36-10 27-27z" horiz-adv-x="1000" />
+<glyph glyph-name="attention-circled" unicode="&#xe839;" d="m429 779q116 0 215-58t156-156 57-215-57-215-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58z m71-696v106q0 8-5 13t-12 5h-107q-8 0-13-5t-6-13v-106q0-8 6-13t13-6h107q7 0 12 6t5 13z m-1 192l10 346q0 7-6 10-5 5-13 5h-123q-8 0-13-5-6-3-6-10l10-346q0-6 5-10t14-4h103q8 0 13 4t6 10z" horiz-adv-x="857.1" />
+<glyph glyph-name="location" unicode="&#xe83a;" d="m429 493q0 59-42 101t-101 42-101-42-42-101 42-101 101-42 101 42 42 101z m142 0q0-61-18-100l-203-432q-9-18-27-29t-37-11-38 11-26 29l-204 432q-18 39-18 100 0 118 84 202t202 84 202-84 83-202z" horiz-adv-x="571.4" />
+<glyph glyph-name="trash" unicode="&#xe83b;" d="m286 439v-321q0-8-5-13t-13-5h-36q-8 0-13 5t-5 13v321q0 8 5 13t13 5h36q8 0 13-5t5-13z m143 0v-321q0-8-5-13t-13-5h-36q-8 0-13 5t-5 13v321q0 8 5 13t13 5h36q8 0 13-5t5-13z m142 0v-321q0-8-5-13t-12-5h-36q-8 0-13 5t-5 13v321q0 8 5 13t13 5h36q7 0 12-5t5-13z m72-404v529h-500v-529q0-12 4-22t8-15 6-5h464q2 0 6 5t8 15 4 22z m-375 601h250l-27 65q-4 5-9 6h-177q-6-1-10-6z m518-18v-36q0-8-5-13t-13-5h-54v-529q0-46-26-80t-63-34h-464q-37 0-63 33t-27 79v531h-53q-8 0-13 5t-5 13v36q0 8 5 13t13 5h172l39 93q9 21 31 35t44 15h178q22 0 44-15t30-35l39-93h173q8 0 13-5t5-13z" horiz-adv-x="785.7" />
+<glyph glyph-name="doc" unicode="&#xe83c;" d="m819 638q16-16 27-42t11-50v-642q0-23-15-38t-38-16h-750q-23 0-38 16t-16 38v892q0 23 16 38t38 16h500q22 0 49-11t42-27z m-248 136v-210h210q-5 16-12 23l-175 175q-6 7-23 12z m215-853v572h-232q-23 0-38 15t-16 38v233h-429v-858h715z" horiz-adv-x="857.1" />
+<glyph glyph-name="docs" unicode="&#xe83d;" d="m946 636q23 0 38-16t16-38v-678q0-23-16-38t-38-16h-535q-23 0-38 16t-16 38v160h-303q-23 0-38 16t-16 38v375q0 22 11 49t27 42l228 228q15 16 42 27t49 11h232q23 0 38-16t16-38v-183q38 23 71 23h232z m-303-119l-167-167h167v167z m-357 214l-167-167h167v167z m109-361l176 176v233h-214v-233q0-22-15-38t-38-15h-233v-357h286v143q0 22 11 49t27 42z m534-449v643h-215v-232q0-22-15-38t-38-15h-232v-358h500z" horiz-adv-x="1000" />
+<glyph glyph-name="doc-text" unicode="&#xe83e;" d="m819 638q16-16 27-42t11-50v-642q0-23-15-38t-38-16h-750q-23 0-38 16t-16 38v892q0 23 16 38t38 16h500q22 0 49-11t42-27z m-248 136v-210h210q-5 16-12 23l-175 175q-6 7-23 12z m215-853v572h-232q-23 0-38 15t-16 38v233h-429v-858h715z m-572 483q0 7 5 12t13 5h393q8 0 13-5t5-12v-36q0-8-5-13t-13-5h-393q-8 0-13 5t-5 13v36z m411-125q8 0 13-5t5-13v-36q0-8-5-13t-13-5h-393q-8 0-13 5t-5 13v36q0 8 5 13t13 5h393z m0-143q8 0 13-5t5-13v-36q0-8-5-13t-13-5h-393q-8 0-13 5t-5 13v36q0 8 5 13t13 5h393z" horiz-adv-x="857.1" />
+<glyph glyph-name="doc-inv" unicode="&#xe83f;" d="m571 564v264q13-8 21-16l227-228q8-7 16-20h-264z m-71-18q0-22 16-38t38-15h303v-589q0-23-15-38t-38-16h-750q-23 0-38 16t-16 38v892q0 23 16 38t38 16h446v-304z" horiz-adv-x="857.1" />
+<glyph glyph-name="doc-text-inv" unicode="&#xe840;" d="m819 584q8-7 16-20h-264v264q13-8 21-16z m-265-91h303v-589q0-23-15-38t-38-16h-750q-23 0-38 16t-16 38v892q0 23 16 38t38 16h446v-304q0-22 16-38t38-15z m89-411v36q0 8-5 13t-13 5h-393q-8 0-13-5t-5-13v-36q0-8 5-13t13-5h393q8 0 13 5t5 13z m0 143v36q0 7-5 12t-13 5h-393q-8 0-13-5t-5-12v-36q0-8 5-13t13-5h393q8 0 13 5t5 13z m0 143v35q0 8-5 13t-13 5h-393q-8 0-13-5t-5-13v-35q0-8 5-13t13-5h393q8 0 13 5t5 13z" horiz-adv-x="857.1" />
+<glyph glyph-name="file-pdf" unicode="&#xe841;" d="m819 638q16-16 27-42t11-50v-642q0-23-15-38t-38-16h-750q-23 0-38 16t-16 38v892q0 23 16 38t38 16h500q22 0 49-11t42-27z m-248 136v-210h210q-5 16-12 23l-175 175q-6 7-23 12z m215-853v572h-232q-23 0-38 15t-16 38v233h-429v-858h715z m-287 331q18-14 47-31 33 4 65 4 82 0 99-27 9-13 1-29 0-1-1-1l-1-2v0q-3-21-39-21-27 0-65 11t-72 29q-123-13-219-46-85-146-135-146-8 0-15 4l-14 6q0 1-3 3-6 6-4 20 5 23 32 51t73 54q8 5 13-3 1-1 1-2 29 47 60 110 38 76 58 146-13 46-17 89t4 71q6 22 23 22h12q13 0 20-8 10-12 5-38-1-3-2-4 0-2 0-5v-17q-1-68-8-107 31-91 82-133z m-322-229q30 13 77 88-29-22-49-47t-28-41z m223 513q-9-23-2-73 1 4 4 24 0 2 4 24 1 3 3 5-1 0-1 1t0 1-1 1q0 12-7 20 0-1 0-1v-2z m-70-368q76 30 159 45-1 0-7 5t-9 8q-43 37-71 98-15-48-47-110-16-31-25-46z m361 8q-14 14-78 14 42-16 69-16 8 0 10 1 0 0-1 1z" horiz-adv-x="857.1" />
+<glyph glyph-name="file-word" unicode="&#xe842;" d="m819 638q16-16 27-42t11-50v-642q0-23-15-38t-38-16h-750q-23 0-38 16t-16 38v892q0 23 16 38t38 16h500q22 0 49-11t42-27z m-248 136v-210h210q-5 16-12 23l-175 175q-6 7-23 12z m215-853v572h-232q-23 0-38 15t-16 38v233h-429v-858h715z m-656 500v-59h39l92-369h88l72 271q4 11 5 25 1 9 1 14h3l1-14q1-1 2-11t3-14l72-271h89l91 369h39v59h-167v-59h50l-55-245q-3-11-4-25l-1-12h-3l-1 12q-1 2-2 11t-3 14l-81 304h-63l-81-304q-1-5-2-13t-2-12l-2-12h-2l-2 12q-1 14-4 25l-55 245h50v59h-167z" horiz-adv-x="857.1" />
+<glyph glyph-name="file-excel" unicode="&#xe843;" d="m819 638q16-16 27-42t11-50v-642q0-23-15-38t-38-16h-750q-23 0-38 16t-16 38v892q0 23 16 38t38 16h500q22 0 49-11t42-27z m-248 136v-210h210q-5 16-12 23l-175 175q-6 7-23 12z m215-853v572h-232q-23 0-38 15t-16 38v233h-429v-858h715z m-547 131v-59h157v59h-42l58 90q3 4 5 9t5 8 2 2h1q0-2 2-6 2-2 3-4t3-4 4-5l60-90h-43v-59h163v59h-38l-107 152 108 158h38v59h-156v-59h41l-57-89q-2-4-6-9t-5-8l-1-1h-1q-1 2-3 5-3 6-9 13l-59 89h42v59h-162v-59h38l106-152-109-158h-38z" horiz-adv-x="857.1" />
+<glyph glyph-name="file-powerpoint" unicode="&#xe844;" d="m819 638q16-16 27-42t11-50v-642q0-23-15-38t-38-16h-750q-23 0-38 16t-16 38v892q0 23 16 38t38 16h500q22 0 49-11t42-27z m-248 136v-210h210q-5 16-12 23l-175 175q-6 7-23 12z m215-853v572h-232q-23 0-38 15t-16 38v233h-429v-858h715z m-554 131v-59h183v59h-52v93h76q43 0 66 9 37 12 59 48t23 82q0 45-21 78t-56 49q-27 10-72 10h-206v-59h52v-310h-52z m197 156h-66v150h67q29 0 46-10 31-19 31-64 0-50-34-67-18-9-44-9z" horiz-adv-x="857.1" />
+<glyph glyph-name="file-image" unicode="&#xe845;" d="m819 638q16-16 27-42t11-50v-642q0-23-15-38t-38-16h-750q-23 0-38 16t-16 38v892q0 23 16 38t38 16h500q22 0 49-11t42-27z m-248 136v-210h210q-5 16-12 23l-175 175q-6 7-23 12z m215-853v572h-232q-23 0-38 15t-16 38v233h-429v-858h715z m-72 250v-178h-571v107l107 107 71-71 215 214z m-464 108q-45 0-76 31t-31 76 31 76 76 31 76-31 31-76-31-76-76-31z" horiz-adv-x="857.1" />
+<glyph glyph-name="cog" unicode="&#xe84b;" d="m571 350q0 59-41 101t-101 42-101-42-42-101 42-101 101-42 101 42 41 101z m286 61v-124q0-7-4-13t-11-7l-104-16q-10-30-21-51 19-27 59-77 6-6 6-13t-5-13q-15-21-55-61t-53-39q-7 0-14 5l-77 60q-25-13-51-21-9-76-16-104-4-16-20-16h-124q-8 0-14 5t-6 12l-16 103q-27 9-50 21l-79-60q-6-5-14-5-8 0-14 6-70 64-92 94-4 5-4 13 0 6 5 12 8 12 28 37t30 40q-15 28-23 55l-102 15q-7 1-11 7t-5 13v124q0 7 5 13t10 7l104 16q8 25 22 51-23 32-60 77-6 7-6 14 0 5 5 12 15 20 55 60t53 40q7 0 15-5l77-60q24 13 50 21 9 76 17 104 3 15 20 15h124q7 0 13-4t7-12l15-103q28-9 50-21l80 60q5 5 13 5 7 0 14-5 72-67 92-95 4-5 4-13 0-6-4-12-9-12-29-38t-30-39q14-28 23-55l102-15q7-1 12-7t4-13z" horiz-adv-x="857.1" />
+<glyph glyph-name="cog-alt" unicode="&#xe84c;" d="m500 350q0 59-42 101t-101 42-101-42-42-101 42-101 101-42 101 42 42 101z m429-286q0 29-22 51t-50 21-50-21-21-51q0-29 21-50t50-21 51 21 21 50z m0 572q0 29-22 50t-50 21-50-21-21-50q0-30 21-51t50-21 51 21 21 51z m-215-235v-103q0-6-4-11t-9-6l-86-14q-6-19-18-42 19-27 50-64 4-6 4-11 0-7-4-11-13-17-46-50t-44-33q-6 0-11 4l-64 50q-21-11-43-17-6-60-13-87-4-13-17-13h-104q-6 0-11 4t-5 10l-13 85q-19 6-42 18l-66-50q-4-4-11-4-6 0-12 4-80 75-80 90 0 5 4 10 5 8 23 30t26 34q-13 24-20 46l-85 13q-5 1-9 5t-4 11v103q0 6 4 11t9 6l86 14q7 19 18 42-19 27-50 64-4 6-4 11 0 7 4 11 12 17 46 50t44 33q6 0 12-4l64-50q19 10 43 18 6 60 13 86 3 13 16 13h104q6 0 11-4t6-10l13-85q19-6 41-17l66 49q5 4 11 4 7 0 12-4 81-75 81-90 0-5-4-10-7-9-24-30t-25-34q13-27 19-46l85-12q5-2 9-6t4-11z m357-298v-78q0-9-83-17-6-15-16-29 28-63 28-77 0-2-2-4-68-40-69-40-5 0-26 27t-29 37q-11-1-17-1t-17 1q-7-11-29-37t-25-27q-1 0-69 40-3 2-3 4 0 14 29 77-10 14-17 29-83 8-83 17v78q0 9 83 18 7 16 17 29-29 63-29 77 0 2 3 4 2 1 19 11t33 19 17 9q4 0 25-26t29-38q12 1 17 1t17-1q28 40 51 63l4 1q2 0 69-39 2-2 2-4 0-14-28-77 9-13 16-29 83-9 83-18z m0 572v-78q0-9-83-18-6-15-16-29 28-63 28-77 0-2-2-4-68-39-69-39-5 0-26 26t-29 38q-11-1-17-1t-17 1q-7-12-29-38t-25-26q-1 0-69 39-3 2-3 4 0 14 29 77-10 14-17 29-83 9-83 18v78q0 9 83 17 7 16 17 29-29 63-29 77 0 2 3 4 2 1 19 11t33 19 17 9q4 0 25-26t29-38q12 2 17 2t17-2q28 40 51 63l4 1q2 0 69-39 2-2 2-4 0-14-28-77 9-13 16-29 83-8 83-17z" horiz-adv-x="1071.4" />
+<glyph glyph-name="wrench" unicode="&#xe84d;" d="m214 29q0 14-10 25t-25 10-26-10-10-25 10-26 26-10 25 10 10 26z m360 234l-381-381q-21-20-50-20-29 0-51 20l-59 61q-21 20-21 50 0 29 21 51l380 380q22-55 64-97t97-64z m353 243q0-22-12-59-27-75-92-122t-144-46q-104 0-177 73t-73 177 73 176 177 74q32 0 67-10t60-26q9-6 9-15t-9-16l-163-94v-125l108-60q2 2 44 27t75 45 40 20q8 0 13-5t4-14z" horiz-adv-x="928.6" />
+<glyph glyph-name="calendar" unicode="&#xe84e;" d="m71-79h161v161h-161v-161z m197 0h178v161h-178v-161z m-197 197h161v178h-161v-178z m197 0h178v178h-178v-178z m-197 214h161v161h-161v-161z m411-411h179v161h-179v-161z m-214 411h178v161h-178v-161z m428-411h161v161h-161v-161z m-214 197h179v178h-179v-178z m-196 482v161q0 7-6 12t-12 6h-36q-7 0-12-6t-6-12v-161q0-7 6-13t12-5h36q7 0 12 5t6 13z m410-482h161v178h-161v-178z m-214 214h179v161h-179v-161z m214 0h161v161h-161v-161z m18 268v161q0 7-5 12t-13 6h-35q-8 0-13-6t-5-12v-161q0-7 5-13t13-5h35q8 0 13 5t5 13z m215 36v-715q0-29-22-50t-50-21h-786q-29 0-50 21t-21 50v715q0 29 21 50t50 21h72v54q0 36 26 63t63 26h36q37 0 63-26t26-63v-54h214v54q0 36 27 63t63 26h35q37 0 63-26t27-63v-54h71q29 0 50-21t22-50z" horiz-adv-x="928.6" />
+<glyph glyph-name="calendar-empty" unicode="&#xe84f;" d="m71-79h786v572h-786v-572z m215 679v161q0 8-5 13t-13 5h-36q-8 0-13-5t-5-13v-161q0-8 5-13t13-5h36q8 0 13 5t5 13z m428 0v161q0 8-5 13t-13 5h-35q-8 0-13-5t-5-13v-161q0-8 5-13t13-5h35q8 0 13 5t5 13z m215 36v-715q0-29-22-50t-50-21h-786q-29 0-50 21t-21 50v715q0 29 21 50t50 21h72v54q0 36 26 63t63 26h36q37 0 63-26t26-63v-54h214v54q0 36 27 63t63 26h35q37 0 63-26t27-63v-54h71q29 0 50-21t22-50z" horiz-adv-x="928.6" />
+<glyph glyph-name="clock" unicode="&#xe852;" d="m500 546v-250q0-7-5-12t-13-5h-178q-8 0-13 5t-5 12v36q0 8 5 13t13 5h125v196q0 8 5 13t12 5h36q8 0 13-5t5-13z m232-196q0 83-41 152t-110 111-152 41-153-41-110-111-41-152 41-152 110-111 153-41 152 41 110 111 41 152z m125 0q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
+<glyph glyph-name="block" unicode="&#xe853;" d="m732 352q0 90-48 164l-421-420q76-50 166-50 62 0 118 25t96 65 65 97 24 119z m-557-167l421 421q-75 50-167 50-83 0-153-40t-110-112-41-152q0-91 50-167z m682 167q0-88-34-168t-91-137-137-92-166-34-167 34-137 92-91 137-34 168 34 167 91 137 137 91 167 34 166-34 137-91 91-137 34-167z" horiz-adv-x="857.1" />
+<glyph glyph-name="zoom-in" unicode="&#xe857;" d="m571 404v-36q0-7-5-13t-12-5h-125v-125q0-7-6-13t-12-5h-36q-7 0-13 5t-5 13v125h-125q-7 0-12 5t-6 13v36q0 7 6 12t12 5h125v125q0 8 5 13t13 5h36q7 0 12-5t6-13v-125h125q7 0 12-5t5-12z m72-18q0 103-74 176t-176 74-177-74-73-176 73-177 177-73 176 73 74 177z m286-465q0-29-21-50t-51-21q-30 0-50 21l-191 191q-100-69-223-69-80 0-153 31t-125 84-84 125-31 153 31 152 84 126 125 84 153 31 152-31 126-84 84-126 31-152q0-123-69-223l191-191q21-21 21-51z" horiz-adv-x="928.6" />
+<glyph glyph-name="zoom-out" unicode="&#xe858;" d="m571 404v-36q0-7-5-13t-12-5h-322q-7 0-12 5t-6 13v36q0 7 6 12t12 5h322q7 0 12-5t5-12z m72-18q0 103-74 176t-176 74-177-74-73-176 73-177 177-73 176 73 74 177z m286-465q0-29-21-50t-51-21q-30 0-50 21l-191 191q-100-69-223-69-80 0-153 31t-125 84-84 125-31 153 31 152 84 126 125 84 153 31 152-31 126-84 84-126 31-152q0-123-69-223l191-191q21-21 21-51z" horiz-adv-x="928.6" />
+<glyph glyph-name="down-circled2" unicode="&#xe859;" d="m625 332q0-7-6-13l-178-178q-6-5-12-5t-13 5l-179 178q-8 9-4 20 5 11 17 11h107v196q0 8 5 13t13 5h107q8 0 13-5t5-13v-196h107q8 0 13-5t5-13z m-196 322q-83 0-153-41t-110-111-41-152 41-152 110-111 153-41 152 41 110 111 41 152-41 152-110 111-152 41z m428-304q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
+<glyph glyph-name="up-circled2" unicode="&#xe85a;" d="m624 361q-5-11-17-11h-107v-196q0-8-5-13t-13-5h-107q-8 0-13 5t-5 13v196h-107q-8 0-13 5t-5 13q0 7 6 13l178 178q6 5 13 5t12-5l179-178q8-9 4-20z m-195 293q-83 0-153-41t-110-111-41-152 41-152 110-111 153-41 152 41 110 111 41 152-41 152-110 111-152 41z m428-304q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
+<glyph glyph-name="left-circled2" unicode="&#xe85b;" d="m643 404v-108q0-7-5-12t-13-5h-196v-108q0-7-5-12t-13-5q-7 0-14 5l-178 178q-5 5-5 13t5 13l179 178q5 5 13 5 7 0 12-5t6-12v-108h196q7 0 13-5t5-12z m89-54q0 83-41 152t-110 111-152 41-153-41-110-111-41-152 41-152 110-111 153-41 152 41 110 111 41 152z m125 0q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
+<glyph glyph-name="right-circled2" unicode="&#xe85c;" d="m643 350q0-8-5-13l-179-178q-5-5-13-5-7 0-12 5t-5 12v108h-197q-7 0-12 5t-6 12v108q0 7 6 12t12 5h197v108q0 7 5 12t12 5q7 0 14-5l178-178q5-5 5-13z m89 0q0 83-41 152t-110 111-152 41-153-41-110-111-41-152 41-152 110-111 153-41 152 41 110 111 41 152z m125 0q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
+<glyph glyph-name="down-dir" unicode="&#xe85d;" d="m571 457q0-14-10-25l-250-250q-11-11-25-11t-25 11l-250 250q-11 11-11 25t11 25 25 11h500q14 0 25-11t10-25z" horiz-adv-x="571.4" />
+<glyph glyph-name="up-dir" unicode="&#xe85e;" d="m571 171q0-14-10-25t-25-10h-500q-15 0-25 10t-11 25 11 26l250 250q10 10 25 10t25-10l250-250q10-11 10-26z" horiz-adv-x="571.4" />
+<glyph glyph-name="left-dir" unicode="&#xe85f;" d="m357 600v-500q0-14-10-25t-26-11-25 11l-250 250q-10 11-10 25t10 25l250 250q11 11 25 11t26-11 10-25z" horiz-adv-x="357.1" />
+<glyph glyph-name="right-dir" unicode="&#xe860;" d="m321 350q0-14-10-25l-250-250q-11-11-25-11t-25 11-11 25v500q0 15 11 25t25 11 25-11l250-250q10-10 10-25z" horiz-adv-x="357.1" />
+<glyph glyph-name="down-open" unicode="&#xe861;" d="m939 399l-414-413q-10-11-25-11t-25 11l-414 413q-11 11-11 26t11 25l92 92q11 11 26 11t25-11l296-296 296 296q11 11 25 11t26-11l92-92q11-11 11-25t-11-26z" horiz-adv-x="1000" />
+<glyph glyph-name="left-open" unicode="&#xe862;" d="m653 682l-296-296 296-297q11-10 11-25t-11-25l-92-93q-11-10-25-10t-25 10l-414 415q-11 10-11 25t11 25l414 414q10 10 25 10t25-10l92-93q11-10 11-25t-11-25z" horiz-adv-x="714.3" />
+<glyph glyph-name="right-open" unicode="&#xe863;" d="m618 361l-414-415q-11-10-25-10t-26 10l-92 93q-11 11-11 25t11 25l296 297-296 296q-11 11-11 25t11 25l92 93q11 10 26 10t25-10l414-414q10-11 10-25t-10-25z" horiz-adv-x="714.3" />
+<glyph glyph-name="up-open" unicode="&#xe864;" d="m939 107l-92-92q-11-10-26-10t-25 10l-296 297-296-297q-11-10-25-10t-26 10l-92 92q-11 11-11 26t11 25l414 414q11 10 25 10t25-10l414-414q11-11 11-25t-11-26z" horiz-adv-x="1000" />
+<glyph glyph-name="angle-left" unicode="&#xe865;" d="m350 546q0-7-6-12l-219-220 219-219q6-6 6-13t-6-13l-28-28q-5-5-12-5t-13 5l-260 260q-6 6-6 13t6 13l260 260q5 6 13 6t12-6l28-28q6-5 6-13z" horiz-adv-x="357.1" />
+<glyph glyph-name="angle-right" unicode="&#xe866;" d="m332 314q0-7-6-13l-260-260q-5-5-12-5t-13 5l-28 28q-6 6-6 13t6 13l219 219-219 220q-6 5-6 12t6 13l28 28q5 6 13 6t12-6l260-260q6-5 6-13z" horiz-adv-x="357.1" />
+<glyph glyph-name="angle-up" unicode="&#xe867;" d="m600 189q0-7-6-13l-28-27q-5-6-12-6t-13 6l-220 219-219-219q-5-6-13-6t-13 6l-27 27q-6 6-6 13t6 13l260 260q5 6 12 6t13-6l260-260q6-5 6-13z" horiz-adv-x="642.9" />
+<glyph glyph-name="angle-down" unicode="&#xe868;" d="m600 439q0-7-6-13l-260-260q-5-5-13-5t-12 5l-260 260q-6 6-6 13t6 13l27 28q6 6 13 6t13-6l219-219 220 219q5 6 13 6t12-6l28-28q6-5 6-13z" horiz-adv-x="642.9" />
+<glyph glyph-name="angle-circled-left" unicode="&#xe869;" d="m507 72l57 56q11 11 11 26t-11 25l-171 171 171 171q11 11 11 25t-11 25l-57 57q-10 11-25 11t-25-11l-253-253q-11-11-11-25t11-25l253-254q11-10 25-10t25 10z m350 278q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
+<glyph glyph-name="angle-circled-right" unicode="&#xe86a;" d="m400 72l253 253q11 11 11 25t-11 25l-253 253q-10 11-25 11t-25-11l-57-56q-11-11-11-26t11-25l171-171-171-171q-11-11-11-25t11-26l57-57q11-10 25-10t25 10z m457 278q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
+<glyph glyph-name="angle-circled-up" unicode="&#xe86b;" d="m650 214l57 57q11 11 11 25t-11 26l-253 253q-11 10-25 10t-26-10l-253-254q-10-10-10-25t10-25l57-57q11-10 25-10t25 10l172 172 171-172q11-10 25-10t25 10z m207 136q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
+<glyph glyph-name="angle-circled-down" unicode="&#xe86c;" d="m454 125l253 253q11 11 11 26t-11 25l-57 57q-10 10-25 10t-25-10l-171-172-172 172q-10 10-25 10t-25-10l-57-57q-10-11-10-25t10-26l253-253q11-10 26-10t25 10z m403 225q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
+<glyph glyph-name="angle-double-left" unicode="&#xe86d;" d="m350 82q0-7-6-13l-28-28q-5-5-12-5t-13 5l-260 260q-6 6-6 13t6 13l260 260q5 6 13 6t12-6l28-28q6-5 6-13t-6-12l-219-220 219-219q6-6 6-13z m214 0q0-7-5-13l-28-28q-6-5-13-5t-13 5l-260 260q-6 6-6 13t6 13l260 260q6 6 13 6t13-6l28-28q5-5 5-13t-5-12l-220-220 220-219q5-6 5-13z" horiz-adv-x="571.4" />
+<glyph glyph-name="angle-double-right" unicode="&#xe86e;" d="m332 314q0-7-6-13l-260-260q-5-5-12-5t-13 5l-28 28q-6 6-6 13t6 13l219 219-219 220q-6 5-6 12t6 13l28 28q5 6 13 6t12-6l260-260q6-5 6-13z m214 0q0-7-5-13l-260-260q-6-5-13-5t-13 5l-28 28q-5 6-5 13t5 13l219 219-219 220q-5 5-5 12t5 13l28 28q6 6 13 6t13-6l260-260q5-5 5-13z" horiz-adv-x="571.4" />
+<glyph glyph-name="angle-double-up" unicode="&#xe86f;" d="m600 118q0-7-6-13l-28-28q-5-5-12-5t-13 5l-220 219-219-219q-5-5-13-5t-13 5l-27 28q-6 6-6 13t6 13l260 260q5 5 12 5t13-5l260-260q6-6 6-13z m0 214q0-7-6-13l-28-28q-5-5-12-5t-13 5l-220 220-219-220q-5-5-13-5t-13 5l-27 28q-6 6-6 13t6 13l260 260q5 6 12 6t13-6l260-260q6-6 6-13z" horiz-adv-x="642.9" />
+<glyph glyph-name="angle-double-down" unicode="&#xe870;" d="m600 368q0-7-6-13l-260-260q-5-6-13-6t-12 6l-260 260q-6 6-6 13t6 13l27 28q6 5 13 5t13-5l219-220 220 220q5 5 13 5t12-5l28-28q6-6 6-13z m0 214q0-7-6-13l-260-260q-5-5-13-5t-12 5l-260 260q-6 6-6 13t6 13l27 28q6 5 13 5t13-5l219-220 220 220q5 5 13 5t12-5l28-28q6-6 6-13z" horiz-adv-x="642.9" />
+<glyph glyph-name="down-big" unicode="&#xe871;" d="m899 386q0-30-21-50l-363-364q-22-21-51-21-29 0-50 21l-363 364q-21 20-21 50 0 29 21 51l41 41q22 21 51 21 29 0 50-21l164-164v393q0 29 21 50t51 22h71q29 0 50-22t21-50v-393l164 164q21 21 51 21 29 0 50-21l42-42q21-21 21-50z" horiz-adv-x="928.6" />
+<glyph glyph-name="left-big" unicode="&#xe872;" d="m857 350v-71q0-30-18-51t-47-21h-393l164-164q21-20 21-50t-21-50l-42-43q-21-20-51-20-29 0-50 20l-364 364q-20 21-20 50 0 29 20 51l364 363q21 21 50 21 29 0 51-21l42-42q21-21 21-50t-21-51l-164-164h393q29 0 47-20t18-51z" horiz-adv-x="857.1" />
+<glyph glyph-name="right-big" unicode="&#xe873;" d="m821 314q0-30-20-50l-363-364q-22-20-51-20-29 0-50 20l-42 42q-22 21-22 51t22 51l163 163h-393q-29 0-47 21t-18 51v71q0 30 18 51t47 20h393l-163 164q-22 21-22 51t22 50l42 42q21 21 50 21 29 0 51-21l363-363q20-20 20-51z" horiz-adv-x="857.1" />
+<glyph glyph-name="up-big" unicode="&#xe874;" d="m899 308q0-28-21-50l-42-42q-21-21-50-21-30 0-51 21l-164 164v-393q0-29-20-47t-51-19h-71q-30 0-51 19t-21 47v393l-164-164q-20-21-50-21t-50 21l-42 42q-21 21-21 50 0 30 21 51l363 363q20 21 50 21 30 0 51-21l363-363q21-22 21-51z" horiz-adv-x="928.6" />
+<glyph glyph-name="left-circled" unicode="&#xe875;" d="m714 314v72q0 14-10 25t-25 10h-281l106 106q11 11 11 25t-11 25l-51 51q-10 10-25 10t-25-10l-202-202-51-51q-10-10-10-25t10-25l51-51 202-202q10-10 25-10t25 10l51 51q10 10 10 25t-10 25l-106 106h281q14 0 25 10t10 25z m143 36q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
+<glyph glyph-name="right-circled" unicode="&#xe876;" d="m717 350q0 15-10 25l-51 51-202 202q-10 10-25 10t-25-10l-51-51q-10-10-10-25t10-25l106-106h-280q-15 0-26-10t-10-25v-72q0-14 10-25t26-10h280l-106-106q-10-10-10-25t10-25l51-51q10-10 25-10t25 10l202 202 51 51q10 10 10 25z m140 0q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
+<glyph glyph-name="up-circled" unicode="&#xe877;" d="m717 351q0 15-11 25l-202 202-50 50q-10 11-25 11t-26-11l-50-50-202-202q-10-10-10-25t10-26l50-50q11-10 26-10t25 10l105 105v-280q0-14 11-25t25-11h71q15 0 25 11t11 25v280l105-105q11-11 26-11t25 11l50 50q11 11 11 26z m140-1q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
+<glyph glyph-name="down-circled" unicode="&#xe878;" d="m717 349q0 16-11 26l-50 50q-10 10-25 10t-26-10l-105-105v280q0 15-11 25t-25 11h-71q-15 0-25-11t-11-25v-280l-105 105q-11 11-25 11t-26-11l-50-50q-10-10-10-26t10-25l202-202 50-50q11-10 26-10t25 10l50 50 202 202q11 10 11 25z m140 1q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
+<glyph glyph-name="cw" unicode="&#xe879;" d="m857 707v-250q0-14-10-25t-26-11h-250q-23 0-32 23-10 22 7 38l77 77q-82 77-194 77-58 0-111-23t-91-61-62-91-22-111 22-111 62-91 91-61 111-23q66 0 125 29t100 82q4 6 13 7 8 0 14-5l76-77q5-4 6-11t-5-13q-60-74-147-114t-182-41q-87 0-167 34t-136 92-92 137-34 166 34 166 92 137 136 92 167 34q82 0 158-31t137-88l72 72q16 18 39 8 22-9 22-33z" horiz-adv-x="857.1" />
+<glyph glyph-name="ccw" unicode="&#xe87a;" d="m857 350q0-87-34-166t-91-137-137-92-166-34q-96 0-183 41t-147 114q-4 6-4 13t5 11l76 77q6 5 14 5 9-1 13-7 41-53 100-82t126-29q58 0 110 23t92 61 61 91 22 111-22 111-61 91-92 61-110 23q-55 0-105-20t-90-57l77-77q17-16 8-38-10-23-33-23h-250q-15 0-25 11t-11 25v250q0 24 22 33 22 10 39-8l72-72q60 57 137 88t159 31q87 0 166-34t137-92 91-137 34-166z" horiz-adv-x="857.1" />
+<glyph glyph-name="level-up" unicode="&#xe87c;" d="m568 514q-10-21-32-21h-107v-482q0-8-5-13t-13-5h-393q-12 0-16 10-5 11 2 19l89 108q5 6 14 6h179v357h-107q-23 0-33 21-9 20 5 37l179 215q10 12 27 12t28-12l178-215q15-17 5-37z" horiz-adv-x="571.4" />
+<glyph glyph-name="level-down" unicode="&#xe87d;" d="m18 707h393q7 0 12-5t6-13v-482h107q22 0 32-20t-5-39l-178-214q-11-13-28-13t-27 13l-179 214q-14 17-5 39 10 20 33 20h107v357h-179q-8 0-14 6l-89 108q-7 7-2 19 5 10 16 10z" horiz-adv-x="571.4" />
+<glyph glyph-name="shuffle" unicode="&#xe87e;" d="m372 582q-34-52-77-153-12 25-20 41t-23 35-28 32-36 19-45 8h-125q-8 0-13 5t-5 13v107q0 8 5 13t13 5h125q139 0 229-125z m628-446q0-8-5-13l-179-179q-5-5-12-5-8 0-13 6t-5 12v107q-18 0-48 0t-45-1-41 1-39 3-36 6-35 10-32 16-33 22-31 30-31 39q33 52 76 152 12-25 20-40t23-36 28-31 35-20 46-8h143v107q0 8 5 13t13 5q6 0 13-5l178-178q5-5 5-13z m0 500q0-8-5-13l-179-179q-5-5-12-5-8 0-13 6t-5 12v107h-143q-27 0-49-8t-38-25-29-35-25-43q-18-34-43-95-16-37-28-62t-30-59-36-55-41-47-50-38-60-23-71-10h-125q-8 0-13 5t-5 13v107q0 8 5 13t13 5h125q27 0 48 9t39 25 28 34 26 43q17 35 43 96 16 36 28 62t30 58 36 56 41 46 50 38 59 24 72 9h143v107q0 8 5 13t13 5q6 0 13-5l178-178q5-5 5-13z" horiz-adv-x="1000" />
+<glyph glyph-name="exchange" unicode="&#xe87f;" d="m1000 189v-107q0-7-5-12t-13-6h-768v-107q0-7-5-12t-13-6q-6 0-13 6l-178 178q-5 5-5 13 0 8 5 13l179 178q5 5 12 5 8 0 13-5t5-13v-107h768q7 0 13-5t5-13z m0 304q0-8-5-13l-179-179q-5-5-12-5-8 0-13 6t-5 12v107h-768q-7 0-13 6t-5 12v107q0 8 5 13t13 5h768v107q0 8 5 13t13 5q6 0 13-5l178-178q5-5 5-13z" horiz-adv-x="1000" />
+<glyph glyph-name="history" unicode="&#xe880;" d="m857 350q0-87-34-166t-91-137-137-92-166-34q-96 0-183 41t-147 114q-4 6-4 13t5 11l76 77q6 5 14 5 9-1 13-7 41-53 100-82t126-29q58 0 110 23t92 61 61 91 22 111-22 111-61 91-92 61-110 23q-55 0-105-20t-90-57l77-77q17-16 8-38-10-23-33-23h-250q-15 0-25 11t-11 25v250q0 24 22 33 22 10 39-8l72-72q60 57 137 88t159 31q87 0 166-34t137-92 91-137 34-166z m-357 161v-250q0-8-5-13t-13-5h-178q-8 0-13 5t-5 13v35q0 8 5 13t13 5h125v197q0 8 5 13t12 5h36q8 0 13-5t5-13z" horiz-adv-x="857.1" />
+<glyph glyph-name="expand" unicode="&#xe881;" d="m639 473q10-19-3-36l-178-250q-11-16-29-16t-29 16l-179 250q-13 17-3 36 10 20 32 20h357q22 0 32-20z m75-391v536q0 7-5 12t-13 6h-535q-7 0-13-6t-5-12v-536q0-7 5-12t13-6h535q8 0 13 6t5 12z m143 536v-536q0-66-47-113t-114-48h-535q-67 0-114 48t-47 113v536q0 66 47 113t114 48h535q67 0 114-48t47-113z" horiz-adv-x="857.1" />
+<glyph glyph-name="collapse" unicode="&#xe882;" d="m639 227q-10-20-32-20h-357q-22 0-32 20-10 19 3 37l179 250q10 15 29 15t29-15l178-250q13-18 3-37z m75-145v536q0 7-5 12t-13 6h-535q-7 0-13-6t-5-12v-536q0-7 5-12t13-6h535q8 0 13 6t5 12z m143 536v-536q0-66-47-113t-114-48h-535q-67 0-114 48t-47 113v536q0 66 47 113t114 48h535q67 0 114-48t47-113z" horiz-adv-x="857.1" />
+<glyph glyph-name="expand-right" unicode="&#xe883;" d="m607 350q0-18-15-29l-250-179q-17-12-37-2-19 9-19 31v358q0 22 19 31 20 10 37-2l250-179q15-11 15-29z m107-268v536q0 8-5 13t-13 5h-535q-8 0-13-5t-5-13v-536q0-8 5-13t13-5h535q8 0 13 5t5 13z m143 536v-536q0-66-47-113t-114-48h-535q-67 0-114 48t-47 113v536q0 66 47 113t114 48h535q67 0 114-48t47-113z" horiz-adv-x="857.1" />
+<glyph glyph-name="collapse-left" unicode="&#xe884;" d="m571 529v-358q0-14-10-25t-25-10q-11 0-21 6l-250 179q-15 11-15 29t15 29l250 179q10 6 21 6 14 0 25-10t10-25z m143-447v536q0 7-5 12t-13 6h-535q-7 0-13-6t-5-12v-536q0-7 5-12t13-6h535q8 0 13 6t5 12z m143 536v-536q0-66-47-113t-114-48h-535q-67 0-114 48t-47 113v536q0 66 47 113t114 48h535q67 0 114-48t47-113z" horiz-adv-x="857.1" />
+<glyph glyph-name="play" unicode="&#xe885;" d="m772 333l-741-412q-13-7-22-2t-9 20v822q0 14 9 20t22-2l741-412q13-7 13-17t-13-17z" horiz-adv-x="785.7" />
+<glyph glyph-name="play-circled2" unicode="&#xe886;" d="m661 350q0-21-18-31l-304-178q-8-5-18-5-8 0-17 4-18 11-18 31v358q0 20 18 31 18 10 35-1l304-178q18-10 18-31z m71 0q0 83-41 152t-110 111-152 41-153-41-110-111-41-152 41-152 110-111 153-41 152 41 110 111 41 152z m125 0q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
+<glyph glyph-name="play-circled" unicode="&#xe887;" d="m429 779q116 0 215-58t156-156 57-215-57-215-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58z m214-460q18 10 18 31t-18 31l-304 178q-17 11-35 1-18-11-18-31v-358q0-20 18-31 9-4 17-4 10 0 18 5z" horiz-adv-x="857.1" />
+<glyph glyph-name="stop" unicode="&#xe888;" d="m857 743v-786q0-14-10-25t-26-11h-785q-15 0-25 11t-11 25v786q0 14 11 25t25 11h785q15 0 26-11t10-25z" horiz-adv-x="857.1" />
+<glyph glyph-name="cloud" unicode="&#xe889;" d="m1071 207q0-89-62-151t-152-63h-607q-103 0-177 73t-73 177q0 74 40 135t104 91q-1 15-1 24 0 118 84 202t202 84q88 0 159-50t105-128q39 35 93 35 59 0 101-42t42-101q0-42-23-77 72-17 119-75t46-134z" horiz-adv-x="1071.4" />
+<glyph glyph-name="table" unicode="&#xe88a;" d="m286 82v107q0 8-5 13t-13 5h-179q-7 0-13-5t-5-13v-107q0-8 5-13t13-5h179q8 0 13 5t5 13z m0 214v108q0 7-5 12t-13 5h-179q-7 0-13-5t-5-12v-108q0-7 5-12t13-5h179q8 0 13 5t5 12z m285-214v107q0 8-5 13t-12 5h-179q-8 0-13-5t-5-13v-107q0-8 5-13t13-5h179q7 0 12 5t5 13z m-285 429v107q0 8-5 13t-13 5h-179q-7 0-13-5t-5-13v-107q0-8 5-13t13-5h179q8 0 13 5t5 13z m285-215v108q0 7-5 12t-12 5h-179q-8 0-13-5t-5-12v-108q0-7 5-12t13-5h179q7 0 12 5t5 12z m286-214v107q0 8-5 13t-13 5h-178q-8 0-13-5t-5-13v-107q0-8 5-13t13-5h178q8 0 13 5t5 13z m-286 429v107q0 8-5 13t-12 5h-179q-8 0-13-5t-5-13v-107q0-8 5-13t13-5h179q7 0 12 5t5 13z m286-215v108q0 7-5 12t-13 5h-178q-8 0-13-5t-5-12v-108q0-7 5-12t13-5h178q8 0 13 5t5 12z m0 215v107q0 8-5 13t-13 5h-178q-8 0-13-5t-5-13v-107q0-8 5-13t13-5h178q8 0 13 5t5 13z m72 178v-607q0-37-27-63t-63-26h-750q-36 0-63 26t-26 63v607q0 37 26 63t63 27h750q37 0 63-27t27-63z" horiz-adv-x="928.6" />
+<glyph glyph-name="off" unicode="&#xe88b;" d="m857 350q0-87-34-166t-91-137-137-92-166-34-167 34-136 92-92 137-34 166q0 102 45 191t126 151q24 18 54 14t46-28q18-23 14-53t-28-47q-54-41-84-101t-30-127q0-58 22-111t62-91 91-61 111-23 110 23 92 61 61 91 22 111q0 68-30 127t-84 101q-24 18-28 47t14 53q17 24 47 28t53-14q81-61 126-151t45-191z m-357 429v-358q0-29-21-50t-50-21-51 21-21 50v358q0 29 21 50t51 21 50-21 21-50z" horiz-adv-x="857.1" />
+<glyph glyph-name="check" unicode="&#xe88c;" d="m786 331v-177q0-67-47-114t-114-47h-464q-67 0-114 47t-47 114v464q0 66 47 113t114 48h464q35 0 65-14 9-4 10-13 2-10-5-16l-27-28q-6-5-13-5-2 0-5 1-13 3-25 3h-464q-37 0-63-26t-27-63v-464q0-37 27-63t63-27h464q37 0 63 27t26 63v141q0 8 5 13l36 35q6 6 13 6 3 0 7-2 11-4 11-16z m129 273l-455-454q-13-14-31-14t-32 14l-240 240q-14 13-14 31t14 32l61 62q14 13 32 13t32-13l147-147 361 361q13 13 31 13t32-13l62-61q13-14 13-32t-13-32z" horiz-adv-x="928.6" />
+<glyph glyph-name="asterisk" unicode="&#xe88e;" d="m827 264q26-14 33-43t-7-55l-35-61q-15-26-44-33t-54 7l-149 85v-171q0-29-21-50t-50-22h-71q-29 0-51 22t-21 50v171l-148-85q-26-15-55-7t-43 33l-36 61q-14 26-7 55t34 43l148 86-148 86q-26 14-34 43t7 55l36 61q15 26 43 33t55-7l148-85v171q0 29 21 50t51 22h71q29 0 50-22t21-50v-171l149 85q26 15 54 7t44-33l35-62q15-25 7-54t-33-43l-148-86z" horiz-adv-x="928.6" />
+<glyph glyph-name="chart-bar" unicode="&#xe88f;" d="m357 350v-286h-143v286h143z m214 286v-572h-142v572h142z m572-643v-72h-1143v858h71v-786h1072z m-357 500v-429h-143v429h143z m214 214v-643h-143v643h143z" horiz-adv-x="1142.9" />
+<glyph glyph-name="bug" unicode="&#xe890;" d="m911 314q0-14-11-25t-25-10h-125q0-96-37-162l116-117q10-11 10-25t-10-25q-10-11-25-11t-26 11l-110 110q-3-3-8-7t-24-16-36-21-46-16-54-7v500h-71v-500q-29 0-57 7t-49 19-36 22-25 18l-8 8-102-116q-11-12-27-12-13 0-24 9-11 10-11 25t8 26l113 127q-32 63-32 153h-125q-15 0-25 10t-11 25 11 25 25 11h125v164l-97 97q-11 10-11 25t11 25 25 10 25-10l97-97h471l96 97q11 10 25 10t26-10 10-25-10-25l-97-97v-164h125q15 0 25-11t11-25z m-268 322h-357q0 74 52 126t126 52 127-52 52-126z" horiz-adv-x="928.6" />
+<glyph glyph-name="certificate" unicode="&#xe891;" d="m768 350l77-75q17-16 11-39-7-23-29-29l-105-27 30-103q6-23-11-39-16-18-39-11l-104 30-27-105q-5-23-28-30-7-1-11-1-17 0-28 13l-75 77-76-77q-15-17-39-12-23 7-28 30l-27 105-104-30q-23-7-39 11-17 16-10 39l29 103-105 27q-22 6-29 29-6 23 11 39l77 75-77 75q-17 16-11 39 7 23 29 29l105 27-29 103q-7 23 10 39 16 18 39 11l104-29 27 104q5 23 28 29 23 7 39-11l76-77 75 77q16 17 39 11 23-6 28-29l27-104 104 29q23 7 39-11 17-16 11-39l-30-103 105-27q22-6 29-29 6-23-11-39z" horiz-adv-x="857.1" />
+<glyph glyph-name="tasks" unicode="&#xe892;" d="m571 64h358v72h-358v-72z m-214 286h572v71h-572v-71z m357 286h215v71h-215v-71z m286-465v-142q0-15-11-25t-25-11h-928q-15 0-25 11t-11 25v142q0 15 11 26t25 10h928q15 0 25-10t11-26z m0 286v-143q0-14-11-25t-25-10h-928q-15 0-25 10t-11 25v143q0 15 11 25t25 11h928q15 0 25-11t11-25z m0 286v-143q0-15-11-25t-25-11h-928q-15 0-25 11t-11 25v143q0 14 11 25t25 11h928q15 0 25-11t11-25z" horiz-adv-x="1000" />
+<glyph glyph-name="sort-up" unicode="&#xe893;" d="m571 457q0-14-10-25t-25-11h-500q-15 0-25 11t-11 25 11 25l250 250q10 11 25 11t25-11l250-250q10-10 10-25z" horiz-adv-x="571.4" />
+<glyph glyph-name="sort-down" unicode="&#xe894;" d="m571 243q0-15-10-25l-250-250q-11-11-25-11t-25 11l-250 250q-11 10-11 25t11 25 25 11h500q14 0 25-11t10-25z" horiz-adv-x="571.4" />
+<glyph glyph-name="sort" unicode="&#xe895;" d="m571 243q0-15-10-25l-250-250q-11-11-25-11t-25 11l-250 250q-11 10-11 25t11 25 25 11h500q14 0 25-11t10-25z m0 214q0-14-10-25t-25-11h-500q-15 0-25 11t-11 25 11 25l250 250q10 11 25 11t25-11l250-250q10-10 10-25z" horiz-adv-x="571.4" />
+<glyph glyph-name="gauge" unicode="&#xe896;" d="m214 207q0 30-21 51t-50 21-51-21-21-51 21-50 51-21 50 21 21 50z m107 250q0 30-20 51t-51 21-50-21-21-51 21-50 50-21 51 21 20 50z m239-268l57 213q3 14-5 27t-21 16-27-3-17-22l-56-213q-33-3-60-25t-35-55q-11-43 11-81t66-50 81 11 50 66q9 33-4 65t-40 51z m369 18q0 30-21 51t-51 21-50-21-21-51 21-50 50-21 51 21 21 50z m-358 357q0 30-20 51t-51 21-50-21-21-51 21-50 50-21 51 21 20 50z m250-107q0 30-20 51t-51 21-50-21-21-51 21-50 50-21 51 21 20 50z m179-250q0-145-79-269-10-17-30-17h-782q-20 0-30 17-79 123-79 269 0 102 40 194t106 160 160 107 194 39 194-39 160-107 106-160 40-194z" horiz-adv-x="1000" />
+<glyph glyph-name="spinner" unicode="&#xe897;" d="m277 100q0-33-24-57t-57-23q-33 0-56 23t-24 57 24 57 56 23q33 0 57-23t24-57z m241-107q0-30-21-51t-51-21-50 21-21 51 21 50 50 21 51-21 21-50z m-339 357q0-37-27-63t-63-26-63 26-26 63 26 63 63 26 63-26 27-63z m580-250q0-26-18-44t-45-18-44 18-18 44 18 44 44 19 45-19 18-44z m-464 500q0-41-29-69t-70-29-69 29-29 69 29 69 69 29 70-29 29-69z m259 107q0-45-32-76t-76-31-75 31-32 76 32 76 75 31 76-31 32-76z m303-357q0-22-15-38t-38-16-38 16-16 38 16 38 38 16 38-16 15-38z m-116 250q0-18-13-32t-32-13-31 13-13 32 13 31 31 14 32-14 13-31z" horiz-adv-x="875" />
+<glyph glyph-name="database" unicode="&#xe898;" d="m429 421q132 0 247 24t181 71v-95q0-38-57-71t-157-52-214-20-215 20-156 52-58 71v95q66-47 181-71t248-24z m0-428q132 0 247 24t181 71v-95q0-39-57-72t-157-52-214-19-215 19-156 52-58 72v95q66-47 181-71t248-24z m0 214q132 0 247 24t181 71v-95q0-38-57-71t-157-52-214-20-215 20-156 52-58 71v95q66-47 181-71t248-24z m0 643q116 0 214-19t157-52 57-72v-71q0-39-57-72t-157-52-214-19-215 19-156 52-58 72v71q0 39 58 72t156 52 215 19z" horiz-adv-x="857.1" />
+<glyph glyph-name="lifebuoy" unicode="&#xe899;" d="m500 850q102 0 194-40t160-106 106-160 40-194-40-194-106-160-160-106-194-40-194 40-160 106-106 160-40 194 40 194 106 160 160 106 194 40z m0-71q-106 0-201-51l108-108q46 16 93 16t93-16l108 108q-95 51-201 51z m-378-630l108 108q-16 46-16 93t16 93l-108 108q-51-95-51-201t51-201z m378-228q106 0 201 51l-108 108q-46-16-93-16t-93 16l-108-108q95-51 201-51z m0 215q89 0 152 63t62 151-62 152-152 62-151-62-63-152 63-151 151-63z m270 121l108-108q51 95 51 201t-51 201l-108-108q16-46 16-93t-16-93z" horiz-adv-x="1000" />
+<glyph glyph-name="cubes" unicode="&#xe89a;" d="m357-61l214 107v176l-214-92v-191z m-36 254l226 96-226 97-225-97z m608-254l214 107v176l-214-92v-191z m-36 254l225 96-225 97-226-97z m-250 163l214 92v149l-214-92v-149z m-36 212l246 105-246 106-246-106z m607-289v-233q0-20-10-37t-29-26l-250-125q-14-8-32-8t-32 8l-250 125q-3 1-4 2-1-1-4-2l-250-125q-14-8-32-8t-31 8l-250 125q-19 9-29 26t-11 37v233q0 21 12 39t32 26l242 104v223q0 22 12 39t31 27l250 107q13 6 28 6t28-6l250-107q20-9 32-27t12-39v-223l242-104q20-9 32-26t11-40z" horiz-adv-x="1285.7" />
+<glyph glyph-name="cube" unicode="&#xe89b;" d="m500-59l357 195v355l-357-130v-420z m-36 483l390 141-390 142-389-142z m465 140v-428q0-20-10-37t-28-26l-393-214q-15-9-34-9t-34 9l-393 214q-17 10-27 26t-10 37v428q0 23 13 41t34 26l393 143q12 5 24 5t25-5l393-143q21-8 34-26t13-41z" horiz-adv-x="1000" />
+<glyph glyph-name="bullseye" unicode="&#xe89c;" d="m571 350q0-59-41-101t-101-42-101 42-42 101 42 101 101 42 101-42 41-101z m72 0q0 89-63 152t-151 62-152-62-63-152 63-151 152-63 151 63 63 151z m71 0q0-118-83-202t-202-84-202 84-84 202 84 202 202 84 202-84 83-202z m72 0q0 73-29 139t-76 114-114 76-138 28-139-28-114-76-76-114-29-139 29-139 76-113 114-77 139-28 138 28 114 77 76 113 29 139z m71 0q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
+<glyph glyph-name="windows" unicode="&#xe89d;" d="m381 289v-364l-381 53v311h381z m0 414v-367h-381v315z m548-414v-439l-507 70v369h507z m0 490v-443h-507v373z" horiz-adv-x="928.6" />
+<glyph glyph-name="cancel-circled-1" unicode="&#xe89e;" d="m420 770q174 0 297-123t123-297-123-297-297-123-297 123-123 297 123 297 297 123z m86-420l154 154-86 86-154-152-152 152-88-86 154-154-154-152 88-86 152 152 154-152 86 86z" horiz-adv-x="840" />
+<glyph glyph-name="plus-1" unicode="&#xe8a0;" d="m550 400q30 0 30-50t-30-50l-210 0 0-210q0-30-50-30t-50 30l0 210-210 0q-30 0-30 50t30 50l210 0 0 210q0 30 50 30t50-30l0-210 210 0z" horiz-adv-x="580" />
+<glyph glyph-name="plus-circled-1" unicode="&#xe8a1;" d="m420 770q174 0 297-123t123-297-123-297-297-123-297 123-123 297 123 297 297 123z m52-470l200 0 0 102-200 0 0 202-102 0 0-202-202 0 0-102 202 0 0-202 102 0 0 202z" horiz-adv-x="840" />
+<glyph glyph-name="minus-1" unicode="&#xe8a3;" d="m550 400q30 0 30-50t-30-50l-520 0q-30 0-30 50t30 50l520 0z" horiz-adv-x="580" />
+<glyph glyph-name="minus-circled-1" unicode="&#xe8a4;" d="m420 770q174 0 297-123t123-297-123-297-297-123-297 123-123 297 123 297 297 123z m252-368l-504 0 0-102 504 0 0 102z" horiz-adv-x="840" />
+<glyph glyph-name="help-circled-1" unicode="&#xe8a7;" d="m454 810q190 2 326-130t140-322q2-190-131-327t-323-141q-190-2-327 131t-139 323q-4 190 130 327t324 139z m-2-740q30 0 49 19t19 47q2 30-17 49t-49 19l-2 0q-28 0-47-18t-21-46q0-30 19-49t47-21l2 0z m166 328q26 34 26 78 0 78-54 116-52 38-134 38-64 0-104-26-68-42-72-146l0-4 110 0 0 4q0 26 16 54 16 24 54 24 40 0 52-20 16-20 16-44 0-18-16-40-8-12-20-20l-6-4q-6-4-16-11t-20-15-21-17-17-17q-14-20-18-78l0-8 108 0 0 4q0 12 4 28 6 20 28 36l28 18q46 34 56 50z" horiz-adv-x="920" />
+<glyph glyph-name="heart-empty-1" unicode="&#xe8aa;" d="m790 642q70-64 70-156t-70-156l-360-330-360 330q-70 64-70 156t70 156q64 58 152 58t150-58l58-52 56 52q64 58 152 58t152-58z m-54-260q42 40 42 104 0 66-38 100-38 38-102 38-52 0-104-48l-104-92-106 92q-48 48-102 48-64 0-104-38-38-36-38-100 0-66 44-104l306-286z" horiz-adv-x="860" />
+<glyph glyph-name="mail-1" unicode="&#xe8ab;" d="m30 586q-32 18-28 40 2 14 26 14l846 0q38 0 20-32-8-14-24-22-14-6-192-102t-182-98q-16-10-46-10-28 0-46 10-4 2-182 98t-192 102z m850-100q20 10 20-10l0-368q0-16-17-32t-33-16l-800 0q-16 0-33 16t-17 32l0 368q0 20 20 10l384-200q18-10 46-10t46 10z" horiz-adv-x="900" />
+<glyph glyph-name="star-1" unicode="&#xe8ac;" d="m440 790l120-336 320 0-262-196 94-348-272 208-272-208 94 348-262 196 320 0z" horiz-adv-x="880" />
+<glyph glyph-name="star-empty-1" unicode="&#xe8ad;" d="m880 454l-262-196 94-348-272 208-272-208 94 348-262 196 320 0 120 336 120-336 320 0z m-440-238l150-124-62 178 144 114-176-4-56 202-54-202-176 4 142-114-62-178z" horiz-adv-x="880" />
+<glyph glyph-name="link-1" unicode="&#xe8ae;" d="m294 116q14 14 34 14t36-14q32-34 0-70l-42-40q-56-56-132-56-78 0-134 56t-56 132q0 78 56 134l148 148q70 68 144 77t128-43q16-16 16-36t-16-36q-36-32-70 0-50 48-132-34l-148-146q-26-26-26-64t26-62q26-26 63-26t63 26z m450 574q56-56 56-132 0-78-56-134l-158-158q-74-72-150-72-62 0-112 50-14 14-14 34t14 36q14 14 35 14t35-14q50-48 122 24l158 156q28 28 28 64 0 38-28 62-24 26-56 31t-60-21l-50-50q-16-14-36-14t-34 14q-34 34 0 70l50 50q54 54 127 51t129-61z" horiz-adv-x="800" />
+<glyph glyph-name="attach-1" unicode="&#xe8af;" d="m244-140q-102 0-170 72-72 70-74 166t84 190l496 496q80 80 174 54 44-12 79-47t47-79q26-96-54-176l-474-474q-40-40-88-46-48-4-80 28-30 24-27 74t47 92l332 334q24 26 50 0t0-50l-332-332q-44-44-20-70 12-8 24-6 24 4 46 26l474 474q50 50 34 108-16 60-76 76-54 14-108-36l-494-494q-66-76-64-143t52-117q50-48 117-50t141 62l496 494q24 24 50 0 26-22 0-48l-496-496q-82-82-186-82z" horiz-adv-x="939" />
+<glyph glyph-name="eye-1" unicode="&#xe8b2;" d="m500 630q92 0 177-25t141-62 99-77 63-71 20-45-20-44-63-71-99-78-141-62-177-25-177 25-141 62-99 78-63 71-20 44 20 45 63 71 99 77 141 62 177 25z m0-494q92 0 157 63t65 151q0 90-65 153t-157 63-157-63-65-153q0-88 65-151t157-63z m0 214q8-8 37-2t50 11 25-9q0-44-33-75t-79-31-78 31-32 75q0 46 32 77t78 31q14 0 10-23t-12-47 2-38z" horiz-adv-x="1000" />
+<glyph glyph-name="attention-1" unicode="&#xe8b3;" d="m957-24q10-16 0-34-10-16-30-16l-892 0q-18 0-28 16-13 18-2 34l446 782q8 18 30 18t30-18z m-420 50l0 100-110 0 0-100 110 0z m0 174l0 300-110 0 0-300 110 0z" horiz-adv-x="962" />
+<glyph glyph-name="doc-text-1" unicode="&#xe8b4;" d="m212 308l0 90 280 0 0-90-280 0z m388 492q42 0 71-29t29-71l0-700q0-40-29-70t-71-30l-500 0q-40 0-70 30t-30 70l0 700q0 42 30 71t70 29l500 0z m0-800l0 700-500 0 0-700 500 0z m-110 592l0-88-280 0 0 88 280 0z m0-392l0-88-280 0 0 88 280 0z" horiz-adv-x="700" />
+<glyph glyph-name="doc-text-inv-1" unicode="&#xe8b5;" d="m600 800q42 0 71-29t29-71l0-700q0-40-29-70t-71-30l-500 0q-40 0-70 30t-30 70l0 700q0 42 30 71t70 29l500 0z m-460-208l0-88 420 0 0 88-420 0z m420-480l0 88-420 0 0-88 420 0z m0 196l0 90-418 0 0-90 418 0z" horiz-adv-x="700" />
+<glyph glyph-name="share-1" unicode="&#xe8b7;" d="m650 200q62 0 106-43t44-107q0-62-44-106t-106-44-106 44-44 106q0 6 1 14t1 12l-260 156q-42-32-92-32-62 0-106 44t-44 106 44 106 106 44q54 0 92-30l260 156q0 4-1 12t-1 12q0 62 44 106t106 44 106-43 44-107q0-62-44-106t-106-44q-52 0-90 32l-262-156q2-8 2-26 0-16-2-24l262-156q36 30 90 30z" horiz-adv-x="800" />
+<glyph glyph-name="shareable" unicode="&#xe8b8;" d="m340 350q0 68 47 114t113 46 113-46 47-114q0-66-47-113t-113-47-113 47-47 113z m-114 60q-14-60-66-60l-160 0 0 120 118 0q40 124 145 202t237 78q164 0 284-116 16-18 16-43t-16-43q-18-16-43-16t-43 16q-78 82-198 82-100 0-176-62t-98-158z m614-60l160 0 0-120-118 0q-40-124-144-202t-238-78q-164 0-282 118-18 18-18 43t18 41q16 18 41 18t43-18q82-82 198-82 100 0 176 63t98 157q12 60 66 60z" horiz-adv-x="1000" />
+<glyph glyph-name="ccw-1" unicode="&#xe8cc;" d="m532 736q170 0 289-120t119-290-119-290-289-120q-142 0-252 88l70 74q84-60 182-60 126 0 216 90t90 218-90 218-216 90q-124 0-214-87t-92-211l142 0-184-204-184 204 124 0q2 166 122 283t286 117z" horiz-adv-x="940" />
+<glyph glyph-name="cw-1" unicode="&#xe8cd;" d="m408 760q168 0 287-116t123-282l122 0-184-206-184 206 144 0q-4 124-94 210t-214 86q-126 0-216-90t-90-218q0-126 90-216t216-90q104 0 182 60l70-76q-110-88-252-88-168 0-288 120t-120 290 120 290 288 120z" horiz-adv-x="940" />
+<glyph glyph-name="arrows-ccw" unicode="&#xe8ce;" d="m186 140l116 116 0-292-276 16 88 86q-116 122-114 290t120 288q100 100 240 116l4-102q-100-16-172-88-88-88-90-213t84-217z m332 598l276-16-88-86q116-122 114-290t-120-288q-96-98-240-118l-2 104q98 16 170 88 88 88 90 213t-84 217l-114-116z" horiz-adv-x="820" />
+<glyph glyph-name="play-1" unicode="&#xe8cf;" d="m486 376q14-10 14-26 0-14-14-24l-428-266q-24-16-41-6t-17 40l0 514q0 30 17 40t41-6z" horiz-adv-x="500" />
+<glyph glyph-name="pause" unicode="&#xe8d0;" d="m440 700q90 0 90-64l0-570q0-66-90-66t-90 66l0 570q0 64 90 64z m-350 0q90 0 90-64l0-570q0-66-90-66t-90 66l0 570q0 64 90 64z" horiz-adv-x="530" />
+<glyph glyph-name="record" unicode="&#xe8d1;" d="m350 700q146 0 248-102t102-248q0-144-102-247t-248-103-248 103-102 247q0 146 102 248t248 102z" horiz-adv-x="700" />
+<glyph glyph-name="stop-1" unicode="&#xe8d2;" d="m526 650q74 0 74-64l0-470q0-66-74-66l-450 0q-76 0-76 66l0 470q0 36 18 50t58 14l450 0z" horiz-adv-x="600" />
+<glyph glyph-name="switch" unicode="&#xe8d3;" d="m700 592l0-140-500 0 0-90-200 160 200 170 0-100 500 0z m300-420l-200-160 0 90-500 0 0 140 500 0 0 100z" horiz-adv-x="1000" />
+<glyph glyph-name="loop" unicode="&#xe8d4;" d="m800 540q42 0 71-29t29-71l0-290q0-40-29-70t-71-30l-700 0q-40 0-70 30t-30 70l0 290q0 42 30 71t70 29l250 0 0 110 200-180-200-180 0 110-210 0 0-210 620 0 0 210-150 0 0 140 190 0z" horiz-adv-x="900" />
+<glyph glyph-name="cloud-1" unicode="&#xe8d5;" d="m760 494q100 0 170-68t70-166-70-166-170-68l-578 0q-74 0-128 52t-54 124q0 74 53 126t129 52q2 0 10-1t10-1q-2 12-2 38 0 108 78 184t188 76q90 0 160-52t94-134q28 4 40 4z" horiz-adv-x="1000" />
+<glyph glyph-name="certificate-outline" unicode="&#xe8db;" d="m1019 395q22-15 22-44t-22-43l-96-64 51-104q14-26-3-49t-41-26l-115-7-7-117q-3-25-25-40t-50-2l-104 51-65-96q-16-24-43-24-27 0-43 24l-64 96-104-51q-26-14-49 2t-26 40l-7 117-117 7q-25 3-40 25t-2 50l51 104-96 64q-24 16-24 43t24 44l96 64-51 104q-14 27 2 50t40 25l117 7 7 115q3 25 26 41t49 3l104-51 64 96q13 21 43 21t43-21l65-96 104 51q26 14 50-3t25-41l7-115 115-7q25-3 41-25t3-50l-51-104z m-210-156q-9 17-4 36t21 30l70 46-70 47q-36 26-17 66l37 75-83 5q-20 1-34 15t-15 34l-5 83-75-37q-40-19-66 17l-47 70-46-70q-26-36-66-17l-75 37-5-83q-1-20-15-34t-34-15l-84-5 38-75q9-18 3-36t-22-30l-69-47 69-46q16-11 22-30t-3-36l-38-75 84-5q20-1 33-15t15-34l6-84 75 38q10 5 22 5 29 0 44-23l46-70 47 69q11 16 30 22t36-3l75-38 5 84q1 20 15 34t34 15l82 5z" horiz-adv-x="1041" />
+<glyph glyph-name="certificate-1" unicode="&#xe8dc;" d="m863 449l115-78q12-8 12-21t-12-21l-115-78 61-123q7-14-1-25t-20-13l-139-10-9-138q-1-12-12-20t-25-2l-124 62-78-116q-7-11-21-11t-21 11l-78 116-123-62q-14-6-25 2t-13 20l-10 139-137 9q-13 1-22 13t-1 25l63 123-117 78q-11 7-11 21t11 21l117 78-63 124q-7 12 1 24t22 13l137 9 10 139q1 12 13 20t25 1l123-61 78 116q7 11 21 11t21-11l78-116 124 61q13 7 25-1t12-20l9-139 139-9q12-1 20-12t1-25z" horiz-adv-x="990" />
+<glyph glyph-name="windows-1" unicode="&#xe8dd;" d="m0-43l105 371q35 20 86 31t83 13l34 1q50 0 104-10 101-20 144-61l-104-370q-36 28-79 45t-69 21l-26 4q-34 3-65 3-16 0-42-1t-84-14-87-33z m126 477l105 371q35 20 86 32t84 12l33 1q51 0 104-10 101-20 144-61l-104-371q-36 28-79 46t-69 20l-26 4q-35 3-64 3-16 0-42-1t-84-13-88-33z m431-513l104 371q37-28 81-45t68-21l25-4q34-3 65-3 16 0 43 2t84 13 86 32l-104-371q-35-20-86-31t-84-12l-33-2q-51 0-104 10-101 20-145 61z m120 475l104 370q37-28 81-45t68-21l25-4q34-3 65-3 16 0 43 2t83 13 87 32l-104-370q-35-20-86-31t-85-13l-33-2q-52 0-103 11-101 19-145 61z" horiz-adv-x="1233" />
+<glyph glyph-name="spin5" unicode="&#xe8df;" d="m462 850c-6 0-11-5-11-11l0-183 0 0c0-6 5-11 11-11l69 0c1 0 1 0 1 0 7 0 12 5 12 11l0 183 0 0c0 6-5 11-12 11l-69 0c0 0 0 0-1 0z m250-47c-4 1-8-2-10-5l-91-158 0 0c-4-6-2-13 4-16l60-35c0 0 0 0 0 0 6-3 13-1 16 4l91 158c3 6 2 13-4 16l-61 35c-1 1-3 1-5 1z m-428-2c-2 0-4-1-6-2l-61-35c-5-3-7-10-4-16l91-157c0 0 0 0 0 0 3-6 10-8 16-5l61 35c5 4 7 11 4 16l-91 157c0 1 0 1 0 1-2 4-6 6-10 6z m620-163c-2 0-4 0-6-1l-157-91c0 0 0 0 0 0-6-3-8-10-5-16l35-61c4-5 11-7 16-4l157 91c1 0 1 0 1 0 6 3 7 10 4 16l-35 61c-2 3-6 5-10 5z m-810-4c-5 0-9-2-11-6l-35-61c-3-5-1-12 4-15l158-92 0 0c6-3 13-1 16 5l35 60c0 0 0 0 0 0 3 6 1 13-4 16l-158 91c-2 1-4 2-5 2z m712-235l0 0c-6 0-11-5-11-11l0-69c0-1 0-1 0-1 0-7 5-12 11-12l183 0 0 0c6 0 11 5 11 12l0 69c0 0 0 0 0 1 0 6-5 11-11 11l-183 0z m-794-5l0 0c-7 0-12-5-12-12l0-69c0 0 0 0 0-1 0-6 5-11 12-11l182 0 0 0c6 0 11 5 11 11l0 69c0 1 0 1 0 1 0 7-5 12-11 12l-182 0z m772-153c-4 0-8-2-10-6l-34-60c-1 0-1 0-1 0-3-6-1-13 4-16l158-91c6-3 13-2 16 4l35 61c3 5 1 12-4 15l-158 91 0 0c-2 1-4 2-6 2z m-566-5c-1 0-3 0-5-1l-157-91c0 0-1 0-1 0-5-3-7-11-4-16l35-61c3-5 10-7 16-4l157 91c0 0 0 0 0 0 6 3 8 10 5 16l-35 61c-3 3-7 5-11 5z m468-121c-2 0-4 0-6-1l-61-35c-5-4-7-11-4-16l91-157c0-1 0-1 0-1 3-6 11-7 16-4l61 35c5 3 7 10 4 16l-91 157c0 0 0 0 0 0-2 4-6 6-10 6z m-367-3c-4 1-8-2-10-5l-91-158c-3-6-1-13 4-16l61-35c5-3 12-1 15 4l92 158 0 0c3 6 1 13-5 16l-60 34c0 1 0 1 0 1-2 1-4 1-6 1z m149-57c-7 0-12-5-12-11l0-183 0 0c0-6 5-11 12-11l69 0c0 0 0 0 1 0 6 0 11 5 11 11l0 183 0 0c0 6-5 11-11 11l-69 0c-1 0-1 0-1 0z" horiz-adv-x="1000" />
+<glyph glyph-name="spin2" unicode="&#xe8e0;" d="m46 144l0 0c0 0-1 0-1 0-8 18-15 37-21 55-6 19-11 38-15 58-19 99-8 203 35 298 3 6 10 8 15 5 1 0 2 0 2-1l0 0 80-59c5-3 6-9 4-14-5-12-9-25-12-38-4-12-7-26-9-39-11-67-3-137 23-201 2-5 0-10-4-13l0 0-80-56c-5-4-12-3-16 3-1 0-1 1-1 2l0 0z m120 574l0 0c0 1 0 1 0 1 15 13 30 25 46 37 16 11 33 22 51 31 89 50 192 72 297 60 6-1 10-6 10-13 0-1-1-1-1-2l0 0-31-94c-2-5-8-8-13-7-13 0-27 0-40 0-14-1-27-2-40-4-68-11-133-40-186-84-4-3-10-3-14 0l0 0-79 58c-5 3-6 11-2 16 0 0 1 1 2 1l0 0z m588 65l0 0c0 0 1 0 1 0 17-10 34-21 50-32 16-12 31-25 46-38 74-69 127-160 148-262 2-6-2-12-9-13-1 0-1 0-2 0l0 0-100 1c-5 0-10 4-11 9-3 13-8 26-12 38-5 12-10 25-17 36-31 61-78 113-137 150-5 3-6 8-5 13l0 0 31 92c2 6 9 9 15 7 1 0 2-1 2-1l0 0z m244-535l0 0c0 0 0 0 0 0-4-20-9-39-15-57-7-19-14-37-22-55-44-92-114-170-205-221-6-3-13-1-16 4 0 1-1 2-1 2l0 0-30 94c-2 6 1 12 6 14 11 7 22 15 32 23 11 9 21 18 30 27 49 48 84 109 101 176 2 5 6 8 11 8l0 0 98-1c6 0 11-5 11-11 0-1 0-2 0-3l0 0z m-438-395l0 0c0 0 0 0 0 0-20-2-40-3-60-3-20 0-40 1-59 4-102 12-198 54-276 125-5 4-5 11 0 16 0 0 1 1 1 1l0 0 81 58c5 3 12 2 16-2 10-8 20-16 32-23 11-7 22-14 34-20 62-31 131-45 200-41 6 0 10-3 12-8l0 0 29-92c2-6-1-12-7-14-1-1-2-1-3-1l0 0z" horiz-adv-x="1000" />
+<glyph glyph-name="picture" unicode="&#xe8e4;" d="m357 529q0-45-31-76t-76-32-76 32-31 76 31 75 76 32 76-32 31-75z m572-215v-250h-786v107l178 179 90-89 285 285z m53 393h-893q-7 0-12-5t-6-13v-678q0-8 6-13t12-5h893q7 0 13 5t5 13v678q0 7-5 13t-13 5z m89-18v-678q0-37-26-63t-63-27h-893q-36 0-63 27t-26 63v678q0 37 26 63t63 27h893q37 0 63-27t26-63z" horiz-adv-x="1071.4" />
+<glyph glyph-name="menu" unicode="&#xe8e5;" d="m857 100v-71q0-15-10-25t-26-11h-785q-15 0-25 11t-11 25v71q0 15 11 25t25 11h785q15 0 26-11t10-25z m0 286v-72q0-14-10-25t-26-10h-785q-15 0-25 10t-11 25v72q0 14 11 25t25 10h785q15 0 26-10t10-25z m0 285v-71q0-15-10-25t-26-11h-785q-15 0-25 11t-11 25v71q0 15 11 26t25 10h785q15 0 26-10t10-26z" horiz-adv-x="857.1" />
+<glyph glyph-name="sliders" unicode="&#xe8e6;" d="m196 64v-71h-196v71h196z m197 72q14 0 25-11t11-25v-143q0-14-11-25t-25-11h-143q-14 0-25 11t-11 25v143q0 15 11 25t25 11h143z m89 214v-71h-482v71h482z m-357 286v-72h-125v72h125z m732-572v-71h-411v71h411z m-536 643q15 0 26-10t10-26v-142q0-15-10-26t-26-10h-142q-15 0-26 10t-10 26v142q0 15 10 26t26 10h142z m358-286q14 0 25-10t10-25v-143q0-15-10-25t-25-11h-143q-15 0-25 11t-11 25v143q0 14 11 25t25 10h143z m178-71v-71h-125v71h125z m0 286v-72h-482v72h482z" horiz-adv-x="857.1" />
+<glyph glyph-name="list-alt" unicode="&#xe8e7;" d="m214 189v-35q0-8-5-13t-13-5h-35q-7 0-13 5t-5 13v35q0 8 5 13t13 5h35q8 0 13-5t5-13z m0 143v-36q0-7-5-12t-13-5h-35q-7 0-13 5t-5 12v36q0 7 5 13t13 5h35q8 0 13-5t5-13z m0 143v-36q0-7-5-12t-13-6h-35q-7 0-13 6t-5 12v36q0 7 5 13t13 5h35q8 0 13-5t5-13z m643-286v-35q0-8-5-13t-13-5h-535q-8 0-13 5t-5 13v35q0 8 5 13t13 5h535q8 0 13-5t5-13z m0 143v-36q0-7-5-12t-13-5h-535q-8 0-13 5t-5 12v36q0 7 5 13t13 5h535q8 0 13-5t5-13z m0 143v-36q0-7-5-12t-13-6h-535q-8 0-13 6t-5 12v36q0 7 5 13t13 5h535q8 0 13-5t5-13z m72-393v464q0 8-6 13t-12 5h-822q-7 0-12-5t-6-13v-464q0-7 6-12t12-6h822q7 0 12 6t6 12z m71 607v-607q0-37-26-63t-63-26h-822q-36 0-63 26t-26 63v607q0 37 26 63t63 27h822q37 0 63-27t26-63z" horiz-adv-x="1000" />
+<glyph glyph-name="ajust" unicode="&#xe8e8;" d="m429 46v608q-83 0-153-41t-110-111-41-152 41-152 110-111 153-41z m428 304q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
+<glyph glyph-name="circle" unicode="&#xe8e9;" d="m857 350q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
+<glyph glyph-name="circle-empty" unicode="&#xe8ea;" d="m429 654q-83 0-153-41t-110-111-41-152 41-152 110-111 153-41 152 41 110 111 41 152-41 152-110 111-152 41z m428-304q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
+<glyph glyph-name="circle-notch" unicode="&#xe8ec;" d="m1000 350q0-102-40-194t-106-160-160-106-194-40-194 40-160 106-106 160-40 194q0 124 56 231t155 177 218 87v-145q-124-25-205-124t-81-226q0-73 28-139t77-114 113-76 139-28 139 28 114 76 76 114 28 139q0 128-81 226t-205 124v145q120-17 218-87t155-177 56-231z" horiz-adv-x="1000" />
+<glyph glyph-name="fork" unicode="&#xe8ed;" d="m161 29q0 22-16 38t-38 15-38-15-15-38 15-38 38-16 38 16 16 38z m0 642q0 23-16 38t-38 16-38-16-15-38 15-38 38-15 38 15 16 38z m357-71q0 22-16 38t-38 16-38-16-15-38 15-38 38-16 38 16 16 38z m53 0q0-29-14-54t-39-39q-1-160-126-231-38-21-114-45-71-22-94-39t-23-56v-15q24-14 39-39t14-53q0-45-31-76t-76-32-76 32-31 76q0 29 15 53t39 39v458q-25 14-39 39t-15 53q0 45 31 76t76 32 76-32 31-76q0-29-14-53t-39-39v-278q30 15 86 32 30 10 49 17t39 17 33 22 22 29 16 38 5 51q-25 14-39 39t-15 54q0 45 31 76t76 31 76-31 31-76z" horiz-adv-x="571.4" />
+<glyph glyph-name="sitemap" unicode="&#xe8ee;" d="m1000 154v-179q0-22-16-38t-38-16h-178q-22 0-38 16t-16 38v179q0 22 16 38t38 15h53v107h-285v-107h53q23 0 38-15t16-38v-179q0-22-16-38t-38-16h-178q-23 0-38 16t-16 38v179q0 22 16 38t38 15h53v107h-285v-107h53q22 0 38-15t16-38v-179q0-22-16-38t-38-16h-178q-23 0-38 16t-16 38v179q0 22 16 38t38 15h53v107q0 29 21 51t51 21h285v107h-53q-23 0-38 15t-16 38v179q0 22 16 38t38 16h178q23 0 38-16t16-38v-179q0-22-16-38t-38-15h-53v-107h285q29 0 51-21t21-51v-107h53q23 0 38-15t16-38z" horiz-adv-x="1000" />
+<glyph glyph-name="stethoscope" unicode="&#xe8ef;" d="m714 457q0 15-10 25t-25 11-26-11-10-25 10-25 26-11 25 11 10 25z m72 0q0-34-20-62t-52-39v-220q0-89-73-152t-177-63-176 63-74 152v73q-91 12-153 72t-61 140v286q0 15 11 25t25 11q3 0 9-1 9 16 26 27t36 10q30 0 51-21t21-51-21-50-51-21q-18 0-36 10v-225q0-59 53-101t126-41 126 41 53 101v225q-18-10-36-10-30 0-51 21t-21 50 21 51 51 21q19 0 36-10t26-27q6 1 9 1 15 0 25-11t11-25v-286q0-80-61-140t-153-72v-73q0-59 52-101t126-42 126 42 53 101v220q-32 12-52 39t-20 62q0 45 32 76t76 31 75-31 32-76z" horiz-adv-x="785.7" />
+<glyph glyph-name="shield" unicode="&#xe8f0;" d="m607 314v357h-250v-634q67 35 119 76 131 103 131 201z m107 429v-429q0-48-18-95t-47-84-66-71-70-57-68-43-50-28-23-11q-7-4-15-4t-14 4q-9 4-24 11t-50 28-68 43-70 57-66 71-46 84-19 95v429q0 14 11 25t25 11h643q14 0 25-11t10-25z" horiz-adv-x="714.3" />
+<glyph glyph-name="heart-1" unicode="&#xe8f1;" d="m790 644q70-64 70-156t-70-158l-360-330-360 330q-70 66-70 158t70 156q62 58 151 58t153-58l56-52 58 52q62 58 150 58t152-58z" horiz-adv-x="860" />
+<glyph glyph-name="search-1" unicode="&#xe8f2;" d="m772 78q30-34 6-62l-46-46q-36-32-68 0l-190 190q-74-42-156-42-128 0-223 95t-95 223 90 219 218 91 224-95 96-223q0-88-46-162z m-678 358q0-88 68-156t156-68 151 63 63 153q0 88-68 155t-156 67-151-63-63-151z" horiz-adv-x="789" />
+<glyph glyph-name="menu-1" unicode="&#xe8f3;" d="m650 400q22 0 36-15t14-35-15-35-35-15l-600 0q-20 0-35 15t-15 35 14 35 36 15l600 0z m-600 100q-20 0-35 15t-15 35 14 35 36 15l600 0q22 0 36-15t14-35-15-35-35-15l-600 0z m600-300q22 0 36-15t14-35-15-35-35-15l-600 0q-20 0-35 15t-15 35 14 35 36 15l600 0z" horiz-adv-x="700" />
+<glyph glyph-name="back" unicode="&#xe8f6;" d="m750 540q40 0 70-29t30-71l0-290q0-40-30-70t-70-30l-690 0 0 140 650 0 0 210-500 0 0-110-210 180 210 180 0-110 540 0z" horiz-adv-x="850" />
+<glyph glyph-name="home-1" unicode="&#xe8f7;" d="m888 336q16-16 11-27t-27-11l-84 0 0-310q0-14-1-21t-8-13-23-6l-204 0 0 310-204 0 0-310-194 0q-28 0-35 10t-7 30l0 310-84 0q-22 0-27 11t11 27l400 402q16 16 38 16t38-16z" horiz-adv-x="900" />
+<glyph glyph-name="pencil-1" unicode="&#xe8f8;" d="m718 680q32-32 47-64t15-48l0-16-252-252-290-288-238-52 50 240 290 288 252 252q54 12 126-60z m-494-640l24 24q-2 44-52 94-22 22-45 35t-35 13l-14 2-22-24-18-80q28-16 46-34 24-24 36-48z" horiz-adv-x="780" />
+<glyph glyph-name="location-1" unicode="&#xe8f9;" d="m250 750q104 0 177-73t73-177q0-106-62-243t-126-223l-62-84q-10 12-27 35t-60 89-76 130-60 147-27 149q0 104 73 177t177 73z m0-388q56 0 96 40t40 96-40 95-96 39-95-39-39-95 39-96 95-40z" horiz-adv-x="500" />
+<glyph glyph-name="logout-1" unicode="&#xe8fb;" d="m502 0l0 100 98 0 0-100q0-40-29-70t-71-30l-400 0q-40 0-70 30t-30 70l0 700q0 42 30 71t70 29l400 0q42 0 71-29t29-71l0-150-98 0 0 150-402 0 0-700 402 0z m398 326l-198-196 0 120-450 0 0 150 450 0 0 120z" horiz-adv-x="900" />
+<glyph glyph-name="login-1" unicode="&#xe8fc;" d="m800 800q42 0 71-29t29-71l0-700q0-40-29-70t-71-30l-450 0q-40 0-69 30t-29 70l0 100 98 0 0-100 450 0 0 700-450 0 0-150-98 0 0 150q0 42 29 71t69 29l450 0z m-350-670l0 120-450 0 0 150 450 0 0 120 200-194z" horiz-adv-x="900" />
+<glyph glyph-name="publish" unicode="&#xe8fd;" d="m900 800q42 0 71-30t29-70l0-600q0-42-29-71t-71-29l-198 0 0 98 200 0 0 462-802 0 0-462 200 0 0-98-200 0q-40 0-70 29t-30 71l0 600q0 40 30 70t70 30l800 0z m-770-168q38 0 38 38 0 16-11 26t-27 10-27-11-11-25q0-16 11-27t27-11z m100 0q38 0 38 38 0 16-11 26t-27 10-27-11-11-25q0-16 11-27t27-11z m672 6l0 62-602 0 0-62 602 0z m-404-198l242-240-150 0 0-300-184 0 0 300-150 0z" horiz-adv-x="1000" />
+<glyph glyph-name="window" unicode="&#xe8fe;" d="m900 750q42 0 71-30t29-70l0-600q0-42-29-71t-71-29l-800 0q-40 0-70 29t-30 71l0 600q0 40 30 70t70 30l800 0z m-670-94q-16 0-27-11t-11-25q0-16 11-27t27-11q38 0 38 38 0 16-11 26t-27 10z m-138-36q0-16 11-27t27-11q38 0 38 38 0 16-11 26t-27 10-27-11-11-25z m810-570l0 460-802 0 0-460 802 0z m0 540l0 60-602 0 0-60 602 0z" horiz-adv-x="1000" />
+<glyph glyph-name="chart-pie" unicode="&#xe8ff;" d="m368 770l0-368-368 0q18 146 121 249t247 119z m106 0q156-20 261-139t105-279q0-174-123-298t-299-124q-160 0-278 105t-140 263l424 0q20 0 35 14t15 36l0 422z" horiz-adv-x="840" />
+<glyph glyph-name="chart-line" unicode="&#xe900;" d="m34 284q-42 10-32 56 10 42 54 32l98-24-52-80z m890-12q14 12 33 11t31-15q32-32-2-64l-252-226q-12-12-30-12-14 0-28 10l-286 220-54 14 50 80 36-8q12-4 16-8l264-204z m-490 220l-350-550q-12-22-38-22-12 0-24 8-16 10-20 29t6 33l374 588q8 16 28 20 18 6 36-6l246-156 226 326q10 16 28 19t34-9q38-24 12-62l-252-362q-24-36-62-12z" horiz-adv-x="1003" />
+<glyph glyph-name="chart-area" unicode="&#xe901;" d="m964 732q16 22 16-4l0-768-964 0q-12 0-15 7t5 17l230 288q20 22 40 2l74-66q10-8 21-7t17 11l158 238q16 26 38 4l112-104q20-20 38 4z" horiz-adv-x="980" />
+<glyph glyph-name="chart-bar-1" unicode="&#xe902;" d="m750 800q22 0 36-15t14-35l0-850-200 0 0 850q0 50 40 50l110 0z m-300-300q22 0 36-15t14-35l0-550-200 0 0 550q0 50 40 50l110 0z m-300-300q22 0 36-15t14-35l0-250-200 0 0 250q0 50 40 50l110 0z" horiz-adv-x="800" />
+<glyph glyph-name="air" unicode="&#xe905;" d="m85 534q-16-14-36-12t-34 18q-14 14-12 36t18 36q48 40 79 60t89 40 129 4 159-66 155-53 100 16 89 67q38 30 70-6 32-40-6-72-122-110-234-110-100 0-222 70-68 38-119 52t-93 0-65-29-67-51z m736-110q38 32 70-6 32-40-6-72-40-34-65-53t-72-38-97-19q-96 0-222 70-68 38-119 52t-93 0-65-29-67-51q-14-14-35-12t-35 18q-32 40 6 72 38 34 60 50t69 38 88 23 105-15 134-56q68-38 119-52t93 0 65 29 67 51z m0-256q38 32 70-6 14-14 12-36t-18-36q-40-34-65-53t-72-38-97-19q-96 0-222 70-68 38-119 52t-93 1-66-29-66-52q-14-14-35-12t-35 18q-32 40 6 72 38 34 60 50t69 38 88 23 105-15 134-56q68-38 119-52t93 0 65 29 67 51z" horiz-adv-x="905" />
+<glyph glyph-name="database-1" unicode="&#xe906;" d="m686 208q14 20 14-2l0-100q0-74-104-135t-246-61q-140 0-245 61t-105 135l0 100q0 8 4 10t10-8q32-52 125-86t211-34 211 34 125 86z m2 254q8 16 12 0l0-116q0-68-102-114t-248-46q-144 0-247 46t-103 114l0 116q0 20 14 0 30-46 124-75t212-29 212 29 126 75z m-338 328q144 0 247-39t103-93l0-64q0-58-103-99t-247-41-247 41-103 99l0 64q0 54 103 93t247 39z" horiz-adv-x="700" />
+<glyph glyph-name="flow-cascade" unicode="&#xe907;" d="m520 120q50 0 85-35t35-85-35-85-85-35q-80 0-110 74l-164 0q-88 0-131 54t-43 118l0 464q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-114q0-78 78-78l164 0q30 72 110 72 50 0 85-35t35-85-35-85-85-35q-80 0-110 74l-164 0q-42 0-78 16l0-194q0-78 78-78l164 0q30 72 110 72z m0 300q-28 0-49-20t-21-50q0-28 21-48t49-20 49 20 21 48q0 30-21 50t-49 20z m-470 280q0-28 21-48t49-20 49 20 21 48q0 30-21 50t-49 20-49-20-21-50z m470-768q28 0 49 20t21 48q0 30-21 50t-49 20-49-20-21-50q0-28 21-48t49-20z" horiz-adv-x="640" />
+<glyph glyph-name="flow-tree" unicode="&#xe908;" d="m868 112q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 114q0 78-76 78l-100 0q-44 0-78 12l0-204q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 204q-30-12-76-12l-100 0q-34 0-53-19t-22-33-3-26l0-114q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 114q0 64 43 118t131 54l100 0q76 0 76 52l0 140q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-140q0-52 78-52l100 0q86 0 129-54t43-118l0-114z m-678-112q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20 49 20 21 48z m212 700q0-28 20-48t48-20 49 20 21 48q0 30-21 50t-49 20-48-20-20-50z m138-700q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20 49 20 21 48z m280-68q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z" horiz-adv-x="940" />
+<glyph glyph-name="flow-line" unicode="&#xe909;" d="m168 162q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 378q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-378z m-116 488q0-28 20-48t48-20 49 20 21 48q0 30-21 50t-49 20-48-20-20-50z m68-668q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z" horiz-adv-x="240" />
+<glyph glyph-name="flow-branch" unicode="&#xe90a;" d="m640 650q0-80-74-110-6-58-28-101t-61-69-68-38-75-26q-42-14-63-22t-47-24-38-40-16-60q70-30 70-110 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 378q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-204q40 30 138 60 58 18 84 29t51 41 29 76q-70 32-70 108 0 50 35 85t85 35 85-35 35-85z m-588 0q0-28 20-48t48-20 49 20 21 48q0 30-21 50t-49 20-48-20-20-50z m68-668q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z m400 600q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z" horiz-adv-x="640" />
+<glyph glyph-name="flow-parallel-1" unicode="&#xe90f;" d="m240 650q0-76-72-110l0-378q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 378q-72 34-72 110 0 50 35 85t85 35 85-35 35-85z m-50-600q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20 49 20 21 48z m-70 532q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z m448-420q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 378q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-378z m-116 488q0-28 20-48t48-20 49 20 21 48q0 30-21 50t-49 20-48-20-20-50z m68-668q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z" horiz-adv-x="640" />
+<glyph glyph-name="dot" unicode="&#xe910;" d="m110 460q46 0 78-32t32-78q0-44-32-77t-78-33-78 33-32 77q0 46 32 78t78 32z" horiz-adv-x="220" />
+<glyph glyph-name="dot-3" unicode="&#xe911;" d="m110 460q46 0 78-32t32-78q0-44-32-77t-78-33-78 33-32 77q0 46 32 78t78 32z m350 0q46 0 78-32t32-78q0-44-33-77t-77-33-77 33-33 77q0 46 32 78t78 32z m350 0q46 0 78-32t32-78q0-44-32-77t-78-33-78 33-32 77q0 46 32 78t78 32z" horiz-adv-x="920" />
+<glyph glyph-name="cd" unicode="&#xe912;" d="m460 810q190 0 325-135t135-325-135-325-325-135-325 135-135 325 135 325 325 135z m0-610q62 0 106 44t44 106q0 64-43 107t-107 43q-62 0-106-44t-44-106 44-106 106-44z" horiz-adv-x="920" />
+<glyph glyph-name="back-in-time" unicode="&#xe913;" d="m532 760q170 0 289-120t119-290-119-290-289-120q-138 0-252 88l70 76q82-60 182-60 126 0 216 90t90 216q0 128-90 218t-216 90q-124 0-213-86t-93-210l142 0-184-206-184 206 124 0q4 166 123 282t285 116z m-36-190l70 0 0-204 130-130-50-50-150 150 0 234z" horiz-adv-x="940" />
+<glyph glyph-name="list" unicode="&#xe914;" d="m100 200q20 0 35-15t15-35-15-35-35-15l-50 0q-20 0-35 15t-15 35 14 35 36 15l50 0z m0 200q20 0 35-15t15-35-15-35-35-15l-50 0q-20 0-35 15t-15 35 14 35 36 15l50 0z m0 200q20 0 35-15t15-35-15-35-35-15l-50 0q-20 0-35 15t-15 35 14 35 36 15l50 0z m200-100q-20 0-35 15t-15 35 15 35 35 15l350 0q22 0 36-15t14-35-15-35-35-15l-350 0z m350-100q22 0 36-15t14-35-15-35-35-15l-350 0q-20 0-35 15t-15 35 15 35 35 15l350 0z m0-200q22 0 36-15t14-35-15-35-35-15l-350 0q-20 0-35 15t-15 35 15 35 35 15l350 0z" horiz-adv-x="700" />
+<glyph glyph-name="list-add" unicode="&#xe915;" d="m350 400q22 0 36-15t14-35-15-35-35-15l-300 0q-20 0-35 15t-15 35 14 35 36 15l300 0z m0-200q22 0 36-15t14-35-15-35-35-15l-300 0q-20 0-35 15t-15 35 14 35 36 15l300 0z m620 200q30 0 30-50t-30-50l-170 0 0-170q0-30-50-30t-50 30l0 170-164 0q-30 0-30 50t30 50l164 0 0 170q0 30 50 30t50-30l0-170 170 0z m-620 200q22 0 36-15t14-35-15-35-35-15l-300 0q-20 0-35 15t-15 35 14 35 36 15l300 0z" horiz-adv-x="1000" />
+<glyph glyph-name="progress-0" unicode="&#xe919;" d="m1000 450l0-250q0-42-29-71t-71-29l-800 0q-40 0-70 29t-30 71l0 300q0 40 30 70t70 30l800 0q42 0 71-30t29-70l0-50z m-100-250l0 300-800 0 0-300 800 0z" horiz-adv-x="1000" />
+<glyph glyph-name="pencil-2" unicode="&#xe91d;" d="m0-143l68 343 274-273z m137 392l422 422 259-260-421-422z m531 494q2 39 31 69t69 31 66-26l131-130q25-26 24-66t-30-69-69-30-66 24l-131 131q-27 27-25 66z" horiz-adv-x="989" />
+<glyph glyph-name="cog-2" unicode="&#xe91f;" d="m0 272l0 156 150 16q14 45 38 88l-96 117 109 109 117-95q41 23 88 37l16 150 156 0 16-150q45-14 88-37l117 95 109-109-96-117q24-43 38-88l150-16 0-156-150-16q-14-47-38-88l96-117-109-109-117 96q-43-24-88-38l-16-150-156 0-16 150q-47 14-88 38l-117-96-109 109 96 117q-24 41-38 88z m355 78q0-60 42-102t103-42 103 42 42 102-42 103-103 42-103-42-42-103z" horiz-adv-x="1000" />
+<glyph glyph-name="cog-circled" unicode="&#xe920;" d="m0 350q0 207 147 354t353 146 354-146 146-354-146-354-354-146-353 146-147 354z m195-47l92-10q8-29 22-52l-59-73 68-68 73 59q23-14 52-22l10-92 94 0 10 92q29 8 52 22l73-59 68 68-59 73q14 23 22 52l92 10 0 94-92 10q-8 29-22 52l59 73-68 68-73-59q-23 14-52 22l-10 92-94 0-10-92q-29-8-52-22l-73 59-68-68 59-73q-14-23-22-52l-92-10 0-94z m217 47q0 37 26 63t62 25 63-25 25-63-25-62-63-26-62 26-26 62z" horiz-adv-x="1000" />
+<glyph glyph-name="cogs" unicode="&#xe921;" d="m0 245l0 97 94 8q8 30 23 55l-60 74 68 69 74-61q26 16 55 23l8 94 97 0 10-94q29-7 55-23l74 61 68-69-60-74q16-25 23-55l94-8 0-97-94-10q-7-29-23-55l60-72-68-70-74 60q-26-15-55-23l-10-94-97 0-8 94q-29 8-55 23l-74-60-68 70 60 72q-15 26-23 55z m221 49q0-37 26-64t64-26 63 26 26 64-26 63-63 26-64-26-26-63z m318 238l8 72 70-2q8 22 20 39l-37 57 54 45 49-49q20 10 41 14l14 66 72-8-2-68q22-8 39-22l57 39 45-54-49-49q10-20 12-43l68-14-8-70-68 0q-8-20-22-37l39-59-56-45-47 49q-22-8-43-12l-14-66-70 6 0 70q-20 8-37 20l-59-37-45 54 49 49q-8 20-12 41z m31-446l6 51 49 0q6 16 14 28l-26 43 37 33 36-37q13 7 29 9l10 49 48-6 0-48q16-6 28-16l41 27 31-41-35-35q6-14 10-29l47-12-6-51-49 0q-4-15-14-27l28-43-40-33-35 37q-13-8-29-10l-10-49-49 6 0 51q-13 4-27 14l-41-28-31 41 35 35q-6 14-8 30z m118 14q-4-21 8-36t32-18 34 10 17 33-10 36-31 18l-6 0q-17 0-31-13t-13-30z m17 451q-4-27 14-49t45-24 48 15 23 45-14 47-44 25l-7 0q-26 0-44-17t-21-42z" horiz-adv-x="1000" />
+<glyph glyph-name="calendar-1" unicode="&#xe924;" d="m0-150l0 649 893 0 0-649-893 0z m0 705l0 221 109 0 0-141 200 0 0 141 275 0 0-141 199 0 0 141 110 0 0-221-893 0z m168 139l0 156 82 0 0-156-82 0z m59-619q0-112 123-112 47 0 84 32 39 31 39 80 0 68-78 90 48 15 64 48 12 28-2 73-27 62-107 62-51 0-86-26t-37-77l72 0q0 45 49 46 43 0 45-52 0-49-84-47l0-57q48 0 68-8 23-11 23-46 0-57-54-61-43 0-47 55l-72 0z m281 146q49 14 88 47l0-297 70 0 0 371-64 0q-38-37-94-58l0-63z m135 473l0 156 82 0 0-156-82 0z" horiz-adv-x="893" />
+<glyph glyph-name="doc-new" unicode="&#xe925;" d="m0-150l0 818 188 182 519 0 0-348-86 0 0 260-369 0 0-156-166 0 0-668 418 0 0-88-504 0z m373 207l0 162 209 0 0 207 160 0 0-207 207 0 0-162-207 0 0-207-160 0 0 207-209 0z" horiz-adv-x="949" />
+</font>
+</defs>
+</svg>
\ No newline at end of file
diff --git a/ui/new-ui-samples/fonts/fontello.ttf b/ui/new-ui-samples/fonts/fontello.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..c1167906ee073765a9d01aead457c4b25c530735
GIT binary patch
literal 42532
zcmdqKe|%KcnLj?~-kE#v+?mYW`E_TQOoqv1G800WB$LTZOhODHh8RMO0ck)Qkp at IS
zq>9KYP%GA=r9fHBT1s7MsrBWrDrog%t?gQLsioF+TkLM#uC?86XkF at dt!pW{eBRHw
zGsy&@+RyjDuaZ0Wo_p at O&w0*sp7Z=V&$Td%#p1HuW)UsRFI!lj>1glsqU3G-E&jxH
zS8v$+ at i&Go7S?UC2(_Qsv at wQq{I|aj2X)nkYp&a|XU`H`w^%HW4cA<K;|7##xK7|#
zxn|wpta|wQy~ivT5#^r=tzLQcsI6c6y2Y|%2kz%qqd>XMHXYaB!*ycybsIMy{!g4)
zcKjO8^sc-96IUnSwmxF9?8N)n1J_->c>}x4xyfSr{7+CRw*KntRv!OKID+eU0pE`{
zTz})n<%tzPw^;TZwOH&U8*W&+;osJZpRriJ{vhh#YGGm at +heg=6yX-(Ih5=)f7zRs
zMkb&Ii%mr7dHx$*b;+oubIfwGS{ypN#<EmgWqAnI2zTax^c?*~%rch172S<ktW3dg
zhb3mQTA~)qSZJ(rY{pn-?2 at s|#ukp<GPZN<zOjR2hsM4!_RX=U#-17b>Da%Gy*c*V
zvHuzS(@Ei^dNOcw+R2KOl_#suo<%#BG0RwNEHPF;mK&QtHZ=CJu`Oe}#_k{c8lHb>
z?C{vrW5>sSKKAcpzaD#g?7gu+pR}EH^XI3ZOwjWo7Caq%KlnevcY?nQo(%pb_#eSv
z2Y(fOEBI#c7r{4zKMx)Yen0p^@Vmk1gU<!O9sEDRr-Fxr-wZw$e59nW1jhfve at yy+
zc<BFskATk3J|X%<r)9dO#-coxjJpJ3*34?ZR8<*IHfK9*!Aw-hbO=qEs7>@s at ni>!
zGSNFU*9grWvO2xdWNW1 at S=Zm!*ASQEEj1CpDm}UF@!PDMpV`zkcVJ*{w52Q85)TWZ
zXbAuGWVW at Vot+rohC0F)i+FY%@4rfPSlpJprQ4!DJ*RD^&moF{p*fqJ$>LH4^XqLa
zlk;WMtST-`)0y6s$#<}f9`H-Div<Jb{cP at H)*%M{E*4J<xE*EeT~%4DsQj?IV_D;l
zdG at kCt7NxDt6OUI@~U>mZ-u-OHR^Z1e#1*+$JR@?JooOi+lGpdsq9mYi_$l{)Vx(r
zmPfsTuv6<y`q8L2?$D%gq-N-*qZ>CK{Vg3p9>UqPXV-`a#WIUxsRTZ!IV2JIWPn|Y
zvJS?8!g?lE5s22P5cJDIUD$rl at qN}^KiSFRb*=vIj@~-BcXg-GzHZl{of}%jOTHUm
zw_meY*!S|i(oSQ4MQz}_mvpSz^VMDJTdiHI_AR(|^t%CK7M8Q$5f=cDilqYY4VK9?
zj=pTt#iBxv`DG@>Q!LG9vurNkl+lAsKV92eC)9K#g)98VDZR~ad@>NNtvFfH8(_Qr
z!f>=!NOmTq2IF6%0pnBvg at N9Rv5H!T%TMB!^iCXF*>SwngLjtMtrmJ`MkhMS<|>OP
z>(iZ`%Q`#R&U9zjQv4q8T-rqi{Aj}dgm@)jPgv%mor`NUE8)x^aAClcDH*L1*dPL3
za)bPuGPykdr)wW*07R0+*e9#vl8pc9GT+>RT6!>_%jn|##IL_}`MvGEj)<<iPP=r$
zzMy6_-*<aT3fi0)XqR6zONTbhHw&+qoh<R2FI~Q$9tts=$o4(kaZ#^>Kdwg{3#x1S
zI at FdjCwm4@Qo#cATCx@@5^AiVg(pA at 4sc(mC19CtDeF`lqCU-G6)e_SGlP}Q^gp^d
zn^h8pxR~C-@<i2DIM4)4(cOG=HWzI2WOGfx=ydd74xn!**t>?4y}Lw at 8DAE*`(s`~
zkA!-h($<(hKBh<6R`j8BW+E0~HwSa>E8HPgHLFA3ed0t+Ut-+s_6wnK$f|k9WR;-}
z6gs7`x=zL#^jOGsg_hHIchK-o%+G|S5o43CDYs*6s<ZVhpTi*;ce4~7B>!|K(?QQ%
z%z|{t<x8fb at M(4BN>y!Aqxf}1)r`Y|Uq?ob;unQY>d#81-<vMFTj40y!s*oO&zDX*
zD`<a>I3^BR>{#vnmJs1Nr2D;PDkD4xJe6{#r_z)6u;!**P!FV7(9ZHfS-A6%@q%#w
zq4DifsxsBZuHR~WfoYvvJNJoWhsKw)iw}+e4O_cOh@~1I=QjlvH~C!qlek1UiZ^uv
zC+!ixNv|}=FqTBK7_xj54m8j59+O7%sU$cQ3ljNyvdL6cJe$k`g at r<0_ at cx3Cr8wO
z+U;kcG=J2=>K#W%<{rjK;y-~Y%HirP%O#$aR6!_~%pGAPE{E}|>USU1T_^DDK_YP!
zJY{U2JEAHMyHqACc#Q49(^f&T7D`5Fe1W?^iED-LTT*6U>Rd97uU~hA9A$K+8H7hO
zEfC~IfLfA0ejUAt3MN}IyKFL+LYLV}!Gw422;f)LBCrMU1xXMj>TE=(`Qti`DTKbJ
z1+UFzx3ZDBY{wMHjm;+HtnU0hB|1HO_Ac=uvB^?y$zn_z5+NEB0M)^CS|Ng!nVfkg
z(*(oZ@?~?G=?uNYgz^xh at PmrMoRbY*X%_MdK5wX at Gs8ArG5%kRHXo?(3SCQ=>qA}j
zq5lod3H>3o=+erxkePm|C&a>9;e631wwXO!Ssz@(hASI{x+>$r^&vd_ztg7uAw)cZ
z<C}Pb8!K+T<zk}M_Uz26h~FWCR#{=<6E<nO6MrLMId*aVq4yuHix_WJ)Yew8C|LEB
zi$6}ensO0*ogSeB+kJvR$B#zK`O6{B at _vk!^y4ziRhH{5pR(+>1Uvno+rH(-wV$|h
zQUBbwrkRO|&tbKLsHiW6$pP}wJ-7xr6()<>x6=F6S7PQgnTP`E`h4{XH`LyR>T}%T
zesQg!Yu;WorXLPQ8IHsNCr;VQiHl&=I52Uc$EMt2t0o^Tsf7khZj>~>e;v4TEU*sE
zM47afeu8W1^~R4%?g$CoiRpAOj{milm@@G&XbloB=JvT`<mq%>xo~n^q>nf*d@%x^
z3pDtFaVgx-7iiX8yi6Kq7r?XdGM1{7d;o-CFgl(u!Sp%zfX0%V|KBh<1xe6~&c2K_
zx)U0abfnzQNbYbmA7o1xtH+8)LU7)fqGL6f#B^rU#e?o2HZW(v`RCJR0Viwtp=&w|
zZF9t&TUjW^PCDH$8YiuaLu2wCcgSAVs<7aTZfC$&V+4anjg9kM^PP4}EqGP6N9HnO
zzMi>RP|gQ^1qiCZjm`^!aLdELTXXH(56}4Le>Mn~pn85-;$N@&=})V^{=4h1XNL=5
zMJ at mo(F at 70)_Sa?9!tj325EdT<}~Q#<4YFJo7-_wbIdObpclqxaXyO`faNoJDd2}x
z%Lg3l0xb(2j8^|l)EXpl7m^_6re8|44neok6i%jc&Dj*Bcr1pQ)I^o}OIzp9>SUK#
zYr86w)uOPSl#K2{W_4;YXc<x>-8<MbZH6XSwIpMji;cguXwxG6V|Q^~;>las+>Z48
zi<Zt3tE(%!Ypj>dE8HIuyX)#+)WfVSpbZ#Tb`1=4K`Uv=CiPGxEa+NT6`+^2bVY>S
zZPef*<M&Ip3AcP}vvkKl&rGv!an67iC<}#H;dWu&r1d6KSa0fLA7Q-#RzN@`9oI9+
z1hlr&@SbPA*|b0OzrnfCjQO%Nrva-@`U1<%CiZqEDhL07g(-Ng at nB^`LnRwtA553X
zZW`AK!hVJ1a~5}r7$Y&8#`;~NEIoSZ9m`vU_GLSE-8s_QI&vplSt5}M-)~ud$KE?e
z+O64DTlQ~R-C+EEsR&l0$0?9><Iv-#PjlNP0eT$KKpH*QQ_wA=41+%P#X{TA<{@G6
z#>IOU?i>^r?Re<U#nypc?8=h2vk`M#{y4Pr(9R)#FkYSVe#~Q-JPrx>;_cEAkCo43
zQ|C!$O}v}P7Z16Om{zA5zjeF&@q37^$Fbin=(=Xa+-|1RrKWwIU9aJnnl)u4Utz6N
zo{IQPJXRJYAxIVwl9E9TDOZ{yQV<&yK4~;?d567Poy~3;nQJtVG{j!*S}uG)TU~N<
z$;6!zwwzmT&i<XaORVO4RS>ugc->BpOHUSjO2c2?uUm6k(kca;o0^+E%n7kWHQqCJ
z81LTv64PIL$@uL{kKA+<`}lLrX}pW#_n7+J&ZELH=07GJ{imCLYJ7|L>j`lQ`sIh_
zr94$R%_ouU$4tRqo)ql$4ACpeAtVh_=h!y(F;%_D5pfuQ-URvmB2_)+h_K&`%pE^T
zy%d6TN4BC0zk at 0c2h~01VDFEQb)lDYgb at 937}f~e0fWPmCSK^bb6yDD-_-mwInFXf
zE{vu`5*M(lc!;714zLpspmD02iht~8-Sztlrb^5$%={%p;o*Emt&lEfD at nY`53>!Y
z$s9n3 at 3?ek`~h;Yo4Nh&OV+b!Z7bxZmO5s<wcZ>9tewJE at WQyI31iTZD)+lNJttFS
zdEg6!BxC)~v20R~gAGPm4x$Rgdz)XDtg%EYna$_wm^Fwc<BHqjdtcofzwL_oZ!+tf
z#{bbAJ)@egbvIz0_!q~3 at xJk|#`^;f#{g4Uk|_fY)_TXB*14<q?p-~%b<Q0(?AXCB
zMb*(uoG!tuHgs#peZEic-~VY}(tq22;l6EtZvQ*`r05nEOAd3uE?^Fj9S3SZv0x}7
z02=3UiIfsjLbAAmI8RC&Zb9<p(Br1)9-cG5#TdAF%j2DF$QIWm<FUGpL#&oPQI$@l
zS;BbE<<oT6e at F?p?LVqIXEnyzCHVz&hV$%j=Qp=pY&>Su;x at K$=AxTs8kf-{Rjk{k
z$KAh{Q2rnB#&jo|$YE~58p(C!A&h?zR5;smg=K|hz2z25pwoNvC)cgIYWVU?FPaex
z2i%IF%$k`ehRG+i?uS^93z81OTTD^W6zpt8Nj{Y~HBr)5p*ibJp43&7=x>2D(5gfN
zjcFMnG13&cVL&K(-5+<`Tu$3=$>mt0Y6??b&TXm!-G(287aE4rpG`mObl!QdJMA8F
zyT7FR9naMp-}ubEU?@YHhHK}y>+6T=@2r2;$*xnCBlIW^(9}5b{t8X2wq0od^Sf=T
zX4_>`T@}Sj>P at JPYJ+prm)AFZ+u>Kg<aS at K)w%b7#_4#jfeoo&((u+g?Mrt$o!@Tw
zOnN9?|7~X%Jp at o$O%YCY*>0P|B~jaCAwK)8c&~UV?7|mWmV(9yI%ZUctYmxRs=W-^
zY&zJtjM)aGRYAE2xdU|tm0!=~Q)vN105c)#!q8MuqO$oEC#fQeVd&zEpIGPKsHHVs
zbTT2PD=wE+_h~n}XK6!jW3&546IUDEX-`m8t<j*}<r0Hl_AbZnjp at e5hR@b-G_iO?
zec|fiAe!{*q9(ZkuvN9{p0s--p@;pwuH9(jWuqG{x?FaM-Bwi$dW>BhlQ-6XwxO{R
zP2Ncu+nC;AUU9zkzWBGoi{Q2y at TID-i}NM0!BkaqRe<=A#}3^d7AMRwJ4|{+P`Nx`
zWq=P-Fe(_}5xvmLcavVu=HUM=ahoj2He;Ky4UgKYtb&bw!Q0^5!A+63*aTK%{L!tm
z6DRx{c#~qh&k{3iOk`cg^Qb$+rdip5+kL}zL_NP+WpfqQC$<VaG|G8sZIw>CFITsU
zVtEr8l1!@vsM-T<NCcUawl$#*t at LZguej-<s*3**%vEl^S9k3uC4INsKRS=!pyLVM
zWnLKH)rFhZ^76H)hB-ZH(<OM?Kvyl9+IU!*u<2s4#B?hdc7e(X6R&uV$=6mQp9pQL
zoGVPY=4R^sX<3~&Y2ckAt_&@K%^^yaaB_qnRdxpF=INVLWCwG7KM1*ZhUH at z>&si6
ze5`?>iS--^lfl%vb<wncnDzv+L+U=6xGXn=$P$@Jz)RC&D%&BqG3X6g5s1Tz-l7Pw
z3kDtc%;`33$Ao;KYA$>5juWa|mh~l1b#_e?%4ECEDaArw$iLo1O=thAwk5hOyBsGR
ztaeX9k{Dr5$t}8l!h}3=v%@C4>?%`FI7EAB?WGI8T_(Z4VQ<a#O)pQk)HWnyx^r#F
zE}|W{s;KX#43OY<lg1f-E(4gxJq%3TW%bMcAl8d~E|rAYy(z%2&J_rR#-k3$QBPgh
z`kvNsNc^~@Sj947T3dKzfS_hgrINwhM<EQn=<x-Y>hWB*Cs(y{tHf-s7w1-lmjE<&
z*Hj?^GzIw%a4v<Pq8e-4G%nwn=H)zb8qhH<yum!VEJ(dh#Z$6QJV*FO-|E%(tYPd2
zO+E8hub$u2^aHkf-zs6vrSouxQWjjZcg>nhW#?!EP8vp?a^GrU-JW#}r!Ewh;wXug
zRe1^)4UOg(On7lQmCL5`z)lB)r9J2m%6vs7bOj+1=x|${BRL5#_cW&CpJnW`@pPtJ
z=w05+*qv4B#vT+`-N|}Z^z1H0)zghVta7ehvCpkURiQg$wa<;AQf#i>if7obr=p6}
zvb6!8l}gK8z?x6`O8hw>OV;Fp^MMpJQx$=!xsuMRCm1(aS92vv1E!=$2Il}V4B=%}
z89!-*917DOO?c%9bl$^u-L;m at vD=nd*-9#L98vt*TH|>tQ57L%<qv>0I22V7t&mhN
z)63NpPUi_V0yZM8lYZs0pC~IkVUOr1<h3>!Z3WRLD57x~%!K!cHGsE~y-azk9Hyiq
zZ!0h_GX3}<A9B->m at JrfCYhE8GCgrHa8tkgh)dtUl{2fYDDev&#zOjavqy`(>yMzb
z{{b&>1A`>@HP%%4o#*<a at XlPymrW5Llchk=ujf%BG98poVlrk5EWN-PnASR3<p-wP
zWce0Zw%MKXH40?ZNBjXb<~#F%H*SXt{ir>jj4xb6ED8tae4R1LDoIx5tW9B(pq)8Y
zRps$AzgATxdOd!~dnTVH`Q3>XJPlZDE2n9ag>){g#zo%gD=<~qJ;`cY3b)VnoUunY
zzH~!T-TDVrhEIe!<+bn(sFF>&Rk2B`Y6r-oqu}U*w`;t264ZZWOJ&h!6J_H8Nr7%e
zb5&>uTna4Y%2T>aA{vC03|SL1BJY<mTtJdY0w<*RM@>C_m-mPEL^3HK_dfXcgY3Ud
zm9K4f${6(Ox|cnkn!V{k@|=@h>j}|Ypow~{Fmo-}ke%YH{?7JX<IE}$iAZ(|%sdk7
ziWY2A(Eif34?Y6O at G!f=PuG-6rmC<&V-esDar*|QPGP+SBgBY9ro at 3oRV6{=hQsd3
z(_N};mda|c;ZziXy(%b*ao6c`tL+KN%6_LRxdPkf%h at 9-dmSv1bxP_{;QwjkyVN9`
zL&po88>50}{P#}3s``bMb8L*+7UGTLzfX5}r3D{{<l}(|i~2vV0&QI0TLXP>$l|kv
zEmfeG%JP8UEfc-a95*$*R6)ZF!plS=jgLB=YOeH%O`0AJj(fSmj=ihr+<mXv<ZntZ
zjiJO?C~VWRq490}uDAt1x|V!RlfNmSd0c3Z22Y-OfMBp;>`Y(Hbm&#pm|^V}cc-&C
zTVIo?s*D9?8xb!glmal|L=d#NYnPEo6%6E>+^mVoO~E|GFp|bRm7pT#DO`xA8JAlN
zjep``{Mwz<3C3jQyl;HN`0_Wtaoyu501%7nLh|)!a7@?&>*7)l`28^*I%LlMYfX>o
zPX}-Q2HX0L7al)(5>lh_<=uMD7!bCP(ZzoBh3K#ppG}~{g+zya-L2Vl(nK!N;YUC&
zoDpR1hp*d|Ic$^XB%n2&d;KAU0WxHFamu+FwDjfTS!pSF^M{TY`xWsnPQ^<m3A=>G
z`CK<~An~~#bTe*a@{qa}w1F>TPI1eDNmoK!ner>lf+v9J`blbfUdY0`rTkhh^8&l$
zNBCfHDw?1fqFZ`LjitrXOElBno~=tn{7y*4z%d*=9z7^deH;8##QiXLxrhl2lMm=G
zUW-kD?)@?)IR(7f^_YY}<x~VtqS!1KdgU_ehVc)jJuqH{i*}XC3edveC5kxxyDDms
z4yGPlN=r*&d0lV$8_R8^2XDP~)Aj3DeEiCRyh&5ggFgyQ0VgCAL2#`i0X3O|_(~>a
zEL+6B$P-F_^fXQ}wNOuz1Cp%6u;OAqDG2)j?#5 at cR5m5z1iXM+uqCTVy7>?SWRG|&
zDq}+)yTX{5DDRKoy8McaBD+LMu;tQ<ja5uf`pXnW@;J+66|9TN(~bX*)>qWLZkHLv
z1o$`Qp8kbQvd at gTV;WoT>Z~nSgpWY8^IaZmd6~w9fbK1;+-sGXAi07qVJxGp{^I_g
z^x}xFIKx=1yHi&h|6Mj8)~){zW~_ce7s;#YRE*C at -8Q9qc0<Q>*`;yQqUmFv<eit3
z-!7Ff$AkQKA7zdQntV+ at puD*W^c}=Gw6Z{xjF^V1RGPuKC7S18yG_j>g5b8)vf*AU
zkPFAK(7WWy)Hg6Dh0Dt?z8oD9;3F3EnU8?6ciW8J%<XX5Z7$}w8vo5c+1B<)hs)`N
zKbAEZua+rRr_<&5W1H!}ETvP9huPJC6&~^d^gG`n$W8vJFr5Jf%~dIQ%Lx}QNNH6m
zjsRQ+<qyHagI}p_6*0naYg>i(nO{q;U6(vC<01h=%|uaZtNm(n&2=A+f$eQ=ORbQ|
z1j%X at m$tRtdtX}{q*syIBzXy47S^rF at y}bjhzGT{WD0#J9`q4tfcL$b;+F&niE#He
zdGb}b#$1GY`60bM_;j{^X0W=B)mD|ydL{dXuDKPS>2dEz>fguh&fY7#G_}om`M^Ha
zH!I_T3%9r)Pxh-8D>C|3KeP6)>sNK4vN<2j+e~kd|HFDBY#)Dd?Y!5Gw`O&8EbZv{
z at E)8#ymsxp6Z5F@(hk7QWlZRUDrC&nkTEZhO~{ytqRHgQ_yJ3ltOub5LN@^S0`D?|
zgPI}Q!LElR?6Y8mpf=1t2oX?<@`XZD*@-!FZGx6E`2K>_7?cUph$fsCETYJ(Rfn%e
zvbhJ#WO>1~uwAxlTNI~O9=uG_q#oUBQ)*PVvI at p#)wWu31*^@v%7ReXu85v3WDbbv
zgEqI^>$h6lT=rEEy$ddn&2(3b2Ff#%O9~7!TYH((AJJ6#8oRUICUr(_F3Fj3N6Ot0
z*?HY*;n*zMDf<V_s%}N$Rc&)4sJehxG-a0?;On~-`18Vtb*trR%m0w<^5zR)zw;AK
z(*l}9;=aD3&~BqhGUz$ba;OM?oE!yGl;D__mJi|>_KzZpNs#$a6hk1TVIv&F5Q`z>
z6N9%MPeHlDu%Ste5?aIf-~vrT2oL6iXxyAf7$?LQOg at Wsi=MsUqZr!KXW6?2zu}|g
z4nU9`cMIV6XNqmH<n&FqTFbf|lC3kKOR}|WwWOB$f?d`!Y0zp*C}r{$HU$-B2UT=-
ztCG~|3rVs_6<L{2 at 3NKIF1Lm}N|}V3Y~?~pjR at V$7N~GI9dexre`AFzFI*_A6=GIn
z)>_5mi3F{}Tp?mdaiMmt!fRVUP}!+ECu<j}=vNhp^qUSRh_D2Qw%XbsT?1fTzF>K^
z<g|LatQm*YUS6h1SAdwT*7<ImO{sH+bci$ZxiwX#J<Mx58qJ!~Kv}uZDJaH|2keU5
zbul7HYs#w`b7WbKAmG}q*az%(t&HwO?O8-K)dX3JZk1_vp$YfQr&4swndNs}ZaW at Q
zCLcnh6Avj|m)RuV&vi^c*L|l?^MYid%j9{?Bj~f*4Cl$_K}*#p7a*GkXoaS6fW{o!
z=LtXb0B>AlYmDuIR=o{@j$8Ca>|SU2?U#}FCDt>|ZvWakp>}?yTdhE7l{e=1pEkDp
z{j>dTI@^+8^ly6g{1LYI)jfh=lf3fC)^=gqEWZj10_g__#f5-YhJV8iy(@^hHXXWG
z6QW()5dCwR<wi?YXKeYx`Q07utu64p)x=}bNSMOcG?!CVB*Y535i5x0k^WL8zYr4m
zb at 7+1r!ay*iZjg-#d3NMF@*dc1=EtLf at 0E&#!WI(@&K9&JYk*%DZ+5x!GkXzKKx?w
z$i95!$ce*;*&_!Jo;Y&ks8fO<3-co#zs!qH96abX<yjJHU$2XtIYn-_-fVTEI(s6Q
zsDia~UPbL?2M-=h96o$Fad7<T!P9g|9A*s%d1D8`>{KI(dj}7$Eh(xSZ>FY%A6C at n
z5^z9N=L$cySPM+q%*3+~xSdC`SvEC2=#~p{mYz!L|D??sv~kY$N5Y5bJ#*^yNj-=?
z@=<y#w68r#a{koAU+U1L{oD^56xnrVR!<LUWP>V(I1wx5!^U-D3LPbvJ}Zs5q~K at n
z_1VfbxUr$TA1J!lZ!Ow-5a}$$VMgaQjsnW#3-4Ye4DR~sE;!=vURYu!7ZDrsIBW+R
zBEP)cb`T3XRV(+0!i at -xpaYJKWK|q2+F$K=32Bkyn}s(Tj4S(>c5E2TjK9XdK7Scp
z{7iVG`-b};`Raxqp=;xPk0037$(AqeGnQpCgEw5uzMdJ}GkE2d!}s5S+nWwNxqowq
z)VGe?4hROCPi1(2o#hhXWp;gSiu)A^FDcUkK=HENVo{1ABIn>=jKPMXZYvS96M?ft
z)>|>oIKf5lM09p-`+1|Y?=hbO<tpY=TWP$vs?$C+YMX3$#Xh;A+cu(4Gs<-{{+;)U
z%paJOWE=QU_>Jc|<gDwX!pyt);b2bEBY9{E#&k_I<RU-egu8E&8o@;1T)IH0$0w!3
zl2bmS*qv*+=LVL>qZf|)=$EC#HXAI=M4HM`m9<_l{^R^G`Xqu820V}lS^juzZqXxo
zAs9CxD7*+9z;)S<DF1k27_W5{fODI$vhZI8W4v4=znBRipd>Au0|-l3fo4BAwT113
z4Yv&B9I?4oc2sr_UtoH(dtiRXKigrOhCdjh)!7%G<HfxgAz0=z80Y#Kh)bOuXA^%!
zkDT|A+klAjd;oI5UgY%nqUr*qOD+W9h*E%y4CN-I%7q{->~Rv>*?(b|m~=!n<9r}7
za=h_r0+ah`c$ZEiSf9NM+x`z+ILAK(|6{FSwC_l0V?QvTFT_ZsDkohcLYv=hI1wN3
zJdNm;)9S<IABZ|mt7x|Hes&G~D`j}UL!>w(ETxmf##Z`cc3wFW5{3;Y{2m2x%soqN
z4q{3OcE=>_WTEbW_grUl2zJ^~a2g5#0ZyGTVKIGR|0#Y;n1Og5^qpXb-<gMZkR*ec
zcGIULK5VQ2=*9|%V;Ms2Sq-akM4ZbUY`5_Vhl70uWy>56<7X&F1-?h@?DvFw#kss)
zw at mE{W;8T~j+icO-7kE8;t>b6&F;fXmN|rnjGq~=<MiXI%Kjd|D93r!g!g;G#$vlg
zc!|RE_5ztxREn?$%@KeO_`ZKu0Qx?aU29y8mN1rV2KB&!7f?kLkHABZ2`?W*(&q>n
zym3MXIb0v6?gP4?6<WWK+PcrNb{Qa at 0hj^32`+E8Fg_!~<z at _7F&30dizb>2s9+<~
z&wnmSq)!=VB#Bw!l#fV4T(-UOb7*N1n~hoViv!M!G}B*fcQQ83oa at j+`S4-*`_Ud6
zjYx&|;p>NSqgAG2TLex1{0;Lqt_$r7!|W%MF>ggL9?(&O31OJS`o_<}1IjtP9Jueu
z60WEx<ppSYvnC$U?r(Uz&PjNQ8VJ<suo%+hN4t1Jvl0 at h2|!1PU{9L>b0kdk1=DU~
zF9}5mDo;(H=5vrQkNcV at c9WQ4Ciw~X7475t^F<EF!w(~d4CFQLaE#M9j+6*7y)76>
zREQwTjNdgd!od>p<$Uih at pDhzzcTgRd+3FDZxIA~_YX?nP0*lD5d<ef;V$%UlIN7C
zuy%g%-Gyy4r4pQQx7i!#xEX2p2s-$$C2u}~kUF|&5Ok{g$Rq0B(k_?ux%gf)zHb86
z6Twh=1|r+!wz-$k9YXcPkC-iwJEH6>B`@BJg2Edq1Q0O%uJpyQ&0w&zoZe at mzwt0^
z^cZK->^Zk8auh^6>%sGuVuqbFyNFIt at Ht>kIglIX*&A=zhGaS^nQ)pFvrs;7DYqNp
z5TAf874{Hp=0=ut=OcFK6<Er}h=u&iv-E at waB-M^{&RD#f-PKN>MG}-&?er7g->AK
z5#9>0oqtX at bG-5R@DHEq=biqWIEqT3r5^m47Xqyu)x^P2NW;m;bXeF}fUPj5#eIcS
z`9gDHx8c;%3vi3`vycshB4Sk&;|zcR95KSFh2}c*W07J=qgWSx=i^u8(}Xw`pnX1I
zT;leC at kPBAhd^Kkeh<|~p_m>Dv;}Ih*)r-k?tv9x9n||7fxsblm${MV=0gG81|BFD
zWe4_u{THID at jeI101(}(DnGbVV2~iWi%Sv}hWU6~z_`cnXX{{Ts5RS8u#tJu+C%<!
z|IES-ww7MhsvoK;zN;DUqP~SE`)1NA)B{olgO!uyDK`6g-)eRJYsSqLi9`jv>uWmR
z)~d6$e%4C8^ZRQ9?SZeM*U?&bDA0~e-~u59yl+p4+lBu$-^cq_pfvL1L9ya7>m?)y
zT-E|{hiax5x`DRvqIMhtEF0n7Bsf?y!tUZIY@=H=07O?4YeEIz3z4eiYXU41Nx5=@
zQB8y%BJvPEyeUlbWr%D4xyIq3t%YEQ#HyQAbq$;5(sz~cEY{i!L2eCrHSSU+)TKw(
z_?xEit_gUed=A#c!<;{qggnBTNE^!Xl at r??rvmh&2^fqq1o9z_FSN#d*SNZ~6rvIL
zBoJ;6oeBH6>MjMT1V=@fyywD1s|TE&um- at gbDrIoKXRPGPRlbY_FYERYt7KTYjK)!
zOo8Ysw|d6Gt7cU7T4RjD{#fW*?9+6(rhs%Fn8LJ{7ehnM?TrYOD_LS7IZPS2AMxFv
z6Tn2Ac;^|wbY?0{AJ<d at hJ|?4jxk2is4+YGaz at pr0L9K4g;=%*%#|6Hg?UMeAKx8}
z-3KC>zDU%@o<A}sr?C%$)GP$?iA%5zIOy{%7~0UfroX{jvuH&}*QOa(kJN7yr1r<I
z`q=#&daa$C at 4a&9-r2p{EaCgux;RT)upr&PX5*UvbZaw0*cMn_Qr{r!-gw_*_igOP
zmSL~2IHxF1rx9?~nRD1BkdcCONFCll*iXc?0NY(q=b9=hS<?|hMB8b^C9sz)UjA6S
z73nHG))|}TwyqvTSbP7v>ql!AAc~GQjMjO2+xHKB?7od%Yy`*dp-Ux~b%BjZ&8-Ch
zYpNG$v#{4P<n#7k)BzBQr8Cg`pM);>QNn;tmk4J7pkN)ukhLMQg79Ywd at ZUD-PpL<
zX_uGS>_^rHeXb*F+;P|~2mu4}mH}m*#8%GmyzX?q?kTqagwTckrPRK|g7$r6%b<X=
zg4#wt7Q6#2CFf;#L1kPE-Q%z$t{y=gV{q*eMOq at O!uRpoXpN5o#XP#7t(4ZuJk}Jv
z`1{!7)(NXr-ttN4tk(_B2%2&FlAJ;mCZIR1Wf{|0!IfAEE+1PemycTEcSH;l)&vh{
zbNsGLfbYO1U<a&F at _2`khsC(VHt_`87 at z4^qT#e|8hkz{yu#JqhG;aLDoclI!iloV
znNBSlt_$tvN-)2 at ySy$Ic6z62p at ervFxQndpDwRW_%%;B;!Gscxy~B%0ih?ma)y=+
zI|Xi$7=KYg6HaNZfFL|o)%B!5J31{|>-P(=q(F~mZx<?P at x-+F?CMN+pdPklGtYrH
zmY7yGyCdA$PzQ&)`2dX(?VbI;cv5(RTcDJuW>t9j9&fB^awQ!mwc855oE0&J)ra<`
zH&Fl%UslHuA!vckx at ehz-P_4{r^o3`RYVKN!*?jQjQ(IV;bsYCE!5Nk=;)rJ7NIl!
zeCFKgflSoZTxZH_f5rSEU!ZCIDKQEDm6OUiFvXhsk>^++-*5tR_=_-M0oN3BZ^qkF
z%w8SY`zoh-?A*puoDgKj at DT^4m4>!jW6AqK6zQkbvcryq<4BobXDjt9C^VB}SO_8r
ztu%m?{fp0YTGLK at QpQRl#4R%8wCUd|M5l(1UH~?Q!9G>ZodpFh5d3i1bmPmqzwC&b
zR1cTUxiD<M@~6C~-R{%gLw^~v^W!a~nRp{|<UxLz#e_Es_dzt9PT at Wuz}r=BU?Sx?
z?FJtkKS_4Q4`OV@>p0@{>1>tma~^RRZwVo)H$H}=5Sxm$$?-JzbE{ADm?Uni2NNZ~
zGw1POcON>WFg!U_LWk;r>~dkO2_9oVWErqijKAbJG9Q9Gl2;!RJ)#djDCvk?u)}bS
zaWjc^yu8foEffBuj4d!mWz{X_TnK_0l_z3MDL;z~o~s(rYc)CAOq-x=gFa`rW4n+g
z at QYsKRmE%fCOoXcJMV%<z<_$#W_9 at 4Du2LnSPfjz0BFjKX3T3C{2=6&c)VFjyeqb^
zrK*!e0T6`pQ({}$pcmkH5`af34Q4g6YOQ+M5%3%P{SGTkD+M`tDf;cEb*pISGowIF
zdprpYXMWG664B$<h5tNrisU8HOOeE|GoJmEmExAm at w|(k$6hR%I3`pPihCuogAQ<1
zW7A6gmZjqduepZ}cCrUI4eyGla&3!(y(2$fvW4wk-FHjWZQu0Z=s?w?w%RJsM!=_1
z`#iTuF^|CH{`<eTOzYGS{O#wq-%5M%7tW_W_&g?71rP<l7fG-rEn;a*l3%QNZ9B&=
zMuPZXx__bi#iTvw-Y>qdc)#d(LqZI5Um;>?k8nn2?tChqGPuMGC93hOk~*a~C=j=}
z(aCsg@`2Lw$r`=6#JHC`6NOXN*~yGQzkm_ijN1M&Rw2Ibs_dzW(;t7-+rOB2<k|6q
z*a2ECTt(YGiaHO)+|=+r7n!=U;+h75l;|S|7d53e!j?kHy#$Xo;={068m2HZHYW*N
zq*ii2+WJ0m>E)qz&8viR?RA5zHjge!itV|OQq>;3e5vte3Sg*huQ8V_h<zVhb+`j{
zgYBLfo99B*O+!9x?cP-DZEaAzv!7(Wlw=6`BUa(a<81!K{p at MJpP-}hgL`8tGXM-c
znD)RB at 8#)1z<V*)STQKJ$v0s}AvvLFrk>aj!(Oe5+C{lsk_EBMS+X(KmO$Ku)$wWL
zqOyeR9hYmiE8+TEb}cSC%GmrTCN{yitUj1Hm^iTu=JSfJN)oKhX0*Co at 9_F%^k5lU
zD9r6q%*|%Z&6Ja5Ug`jC_$P4(5 at WtumJk+1X@!7!O3*T$oaAIfsDSa4f?E;#BDRHH
zt}1uyv at h0H%&Vwl_k>#kpsW0zd%~JK;ch9vhuamt7;e$3+}gBznBr;;&&D%XJj_iB
z4_|@O*?4I2;`7|-n1&me>OA)B3G2;(m*NP at EFRck5ToVux?K*t&B`nkd*-R~@V`K%
z2it*hRZS%;ce9ndgqQz(*F52eINi-gjJMF&==f2geSB-Lxb(~^q!C)k9z8L>RoISq
zk-YVNakrSZ%z+<WdFqm`jLPj}aIaFXD(>n)7-tn)2eFd<3FyK&C*gFZJ-JPYuHw=l
zw0EAaiQHJMlGE#M-L<uPqY7`zdc~HEw@#Z^(Nc>!yUL-J>B=W#*q9-N%C=tZfCJ=e
z_WE+<Ua~4zqty7L at nzb?(~4zpdDl&FkvP`N){qy at 5qMZaenr{n^hF(?x_GHS>Su?p
zMmjI`>Z|c0_3A at 9%VGx*;gOyF^Vvtm5%{p at V%#$U8h6YyvO>yG2q-*^)DT&s_(M7t
z20z8gAeo0k#&t(N{`nkj^aA0_qGf at nOusfNd9>i_a$8WgdK~ln-JzhZe05Os$Q9S>
zWu67RPK9jNNo)P{wX}I(iqd^Hf&!`hnxN*Dqt^yyR)!~Ra`4)y?A3zTluK!C{$!1c
z)xk0^Dma6yD<<yqcyu%0hZ%2D4hu#b#dPHxYNiJ at GnRz%eIV;p3V+pz3*iKhRf+UX
z$eBDx3gk|HP5Y~h`DcnwXt>T+8T(IwdXBP{ufL8Mde at od<{EfE|GD5*XYYx5ug at DF
z+r_KxBFhNl+j9JF>@0-yL*qYuuOW>U_tU`+#r=FFvzVdr6I++g_0z%8#~o+z^+C`k
zndhhQ69y-JZACk3VPDfZe!~B8!}W$oK|iKl>MT9a-%t6}rg_YLM+IA0p$+Uh2E!`>
zX{zgSsw1)V4aZ7hmAOtZ1|6C5s8MV~Gcq&|T6~>af7k4mZ2ipSbX{{`+b9oiLhzk{
zWO&HbhnbuU=5t6b$CEW7C=W|V68qB3TeRWEtTS<fpf~_bA#@!AEDI+J8Q`u%7C37<
z*YLZGL at gW<TPkykqi(pb%pPWov2+M^EotN4LY?;tzu&w}^`H5JU%hPbj^~a&cgNt5
zqqV#$(+el>{L~eeoZ3&ty2_dTq4dnk&gx>7PZv%uEByZA3tK#%TlcPdX2-z5j%R4D
zDv)m|CmeDD04KCt#l*@yiihu+)85jA(2saU$WL*Kh=+%8l@`Eof?!azRD!y&PSO at E
zIw_R65a*erSg=Au3iB48!Z^Ybgogsi#UW%m8~(f4>xXl_IU&=Z5qc82xRA`$80pp_
zWXTx77NO4J4xwvNH=7krM}>H8d{a0X5+d>FXk`OScc;^zFLw7*tp0u3tntfmB9To9
zHSCQU)I__`(q+cK8taknr!E%zwKpP!YIG at Hh-tbKGJ*?M<~r<)M@&=mtYoDQ$(7>G
zVaGy>8i4{=qs(Vs!Gpsu^XJ^8jB(t*Ls6~({Lwpp({;nKU%$Lw?E1}TE_A-}=qACe
zwDBnWdPDtH$*!bO+fj2>eS@(Gm#MB~vMYtF6I1R9+fh2tyh%S8O9^(lHR5m47tJya
z9x#eA=6tE8xqfDKe0tdLQ7p7iCKDB10#+4dag5V;act*AbS~}h^fT-;hq58-=o=yq
z1id;4F&|qz*}I^ce(R#!zIXI{w=J^v?|5d_nyc2ON7C!AG9v3VZCw+4v{<mFnAL at S
zVqH_yI!zoZ&~D*p9?I~*_}%97KQX>z7Q9}_XL-}QtA0Xlqfazv*I2)cK9$Dyb<v#7
zM at wV(FlTL$CQ|v7%nHA$;x&Ygf(?uukXU+(VaQ;{rmh`jd=I(IR-QPKc<ZfSigWP$
z%U`|~!q0o}y(eDb_nn5waat5a{Fa^e`B}*Shmh}dS+wl5KlBHGh|OO6__B+aUwyUl
z)xyc#WnWx&@wIE#7 at JP|<MyqJvXwD9+T;F{frPU9-}Sh<R+84*6M=tUZI1`JU4Y`Q
zO!;FvbilBS!V+N at uvL3(sadRy#8R#eR;L+H5mJrOvq4;am#s9uoM3kvw-~pIi~U|?
z9!$E8n?3$;0J(ERW$dm%xb6Gw6SrUd`CYr1u?P^Iu-i|lNL%<wFrn<W*>)=l;M+D~
zmpA#rOzZ-J4Afkonr`v{l7WizI#|ehnV&3xZI#Tw9pV%dbTRWxPa%QOr4O8XKzQi4
z5A`7Z&8{8GFhP;@=Jpl2OQ)Fa3mX%Q#B>FACBFUOgPSOQPDzrS1ygL(#TZ2shon_v
zK9 at P|3dwIYpCPX?>_43N-D+%S_!AErHuh)yRT}p+vpl;G84BBsea59d?33)b#wF|~
zQ)YWs>=gy at N<Y>rELEmXtZPy%spS}GFC_<Mgh=Pvp~v2P&p7nnd(66j@&0><_wOIR
zcmHBhFw2&`XDr*l_}+VQhmOEI)=|8mTeuCetI`pT+lMoL@^@il5E2+tAW)`)3CU>m
zwb9q;!1kEGbn!vhd}UK%qb)F$P9e|~XqtfStz*Ylz5Md35~ynF`sGP at kT+QdJObI1
zS;mhwE!#vejK3d^0)SC2#};wo1Wp`gZc?lV1)Nj{Dkt8 at 9x@d6e#z_htfFp<XV0A7
zBkmXLfL9%{y6V&Ua_o^Idl=L>FL<<I0q1SbaSd69q0Wc=FNlGJB#AvO2v0Y|(P@(7
z-$W^<HhbxLhNLR*8Fv_`B<6fBngsMh1jopO;Wa~@HQm<rnl|9nG{vc_YQO<w{yM9q
zN77=gfLt;BF_mp$-tlNM5=|!XC$Qdl-9Uf1cD2<Sj)eUFkXLsqZdt)5EPpGu at MwO`
z8>ivqom+;S)3nDKd4K$Nu76^u1cl{r7by-tFj#bk at _SO3{6Qw_Jw3*~#=Si~osW04
zwsbzO)+Upk+3e~y4X{`z>sUs(z4Mt)<6Eo`Kdr6VY^(7?&F#o=wQN~KGI4v-c#B>w
zoHc;lJ)kL)c95&qS4R03e2}nVvLi9Pz!hyd+LVgHB^y)F25U|<W)(u>K+>yduEXEb
zTD{*oEOz_j+L<@CxS!qTZSe|y$hQ%5Dbn&4s=8wNi0U`?XffEkH~7_K+yu*I!w19-
zqK;Tr>4=rnkgw9_tH!@d_RMD1X`CK0-Z9=8F;25iQ8ykxY8-m?RkrM?NzcV+eSqEV
zz at 9YFL*eOiCI?e_%(fJ^E^R1nX7lFF`#SbK-jaKKR|k8k*dQA;9zV6^@D0|NU$)+G
z*c_X)uZS_>53mlmqy4tHnU9l5iLgSd77PIxD(ELDz=n)GLY;6%+BdYUpbqlNLTRPi
zq{8HMWG1Kq3Tj*SZ)mxv=boIVCE}T(d&1eiFnhbD<-WfDj*Kf(>&o=r7m0*ABN?s6
z6_00fdpEjV at kC9_hW#z~bbGTJHPSG&H{72I3#(f8x7^p8an(d!4ZQ~<eW9=#&QSGC
zPNFd;U))CV8F4xHdC7$1U>r~(^aDB*6fS7n(5rBXQ{>FRRt}bfKMWU9p-}qns_tIv
zV)oA9NL`OJJZL0qmdBz}9qSKe!^V?!AtyE{uz$_O+H*O>+hrZSvyZ()x3r<1y*=L>
z!GmFEPu+5QP>qE~YuP|J8^VKOMX=I?n>1I(@b=%i!rIABh0^pOt#zQyF<}!pDal>x
z(=~}{0kyEFUi7=fcv{SMh?w^fs)7Ezj^V&M1Kc-dTv+gyJ+xtQP0ivB4?R;nS+?x<
z+n>4p_GL<It+fkjkJBzi6E<b~20J3{Lw%V{-%xv`W3UgfY&*OS|4t}Q)m29uozloY
zL44 at +*>8#eh`dftp5In|+Us$ZA(;Z!U)_}Ffw4@`2S%EQUM_w|_507<;Z at 5V?0Kb5
z39nzjKBUDpuO_;@-tolf=wqzT_zAZw91xxpW9W5pX9CvLipaE3z>m;MvMczSD+4|X
zoS2x0xhB3&VZRr{-%nU*U2SV?t>LU`hmDC+65nZzu at L^UOP8{@TWiO=>5lMRZR?pg
zh3Ce*g~8!rWApH^8Mkk~zqm63Ya+edgCquA#+~}!Al~NzJk|IUh9}=z!wwnC at HZmH
zN?-RX-V+-hKDu-%a7g;#0WpTYrZDGu97VO6KLoN?Gu#{I00yBvp at 8mSKG`tMY&qfX
zj^W`g!-8?9HiNT{ToSttQ83(*O&X`M$x=!jTf7aIl4d;+!;R<xt7h#OMp^8D5?2l&
z6q3tOuYj&jVJ)e!P;6~gR8#qW6~u3tkfh+HYHlK*FQ4CJO^Zvmra%>?!N%m~>j^oq
zb8OMb9V7U6gDZRgrkdC8IJ8;QyczGn=FxkFL6p3D=b=qrua at x+Z5+K<ce0W0Wy|gy
z8QIppdCP%~sHkZ}TMpoSlQ*Mzy+hkZ+KJ8xM~{e)2ybGSN|7(pdWn})h7+WlgKe)#
zP60&0|In#Z5A9mtvuMS(C!ak1q_FFmXSN9M2yeb)Jo3(PU;C5H^5kP%jvs&Ew}p0(
zqTTm-yIyn6Mk)%ll!oaUj+zXTrC<ags@(hFDeEoIJhR7&MxWfadZ1_ht_R<FM|gki
zfmdGH^2n3MlkNS(@32Mh5WHAN&K?zWXqR*(<e6~Wi5DXhqB@`Sf};e<hRSTRPX1hY
zdplT4es-hr_V7mQrqP|&(cWPz`zrI(<?=nk3S2I}VdqBU4Q=r)Y;g0awo2<AKFv<!
z(s+FH3jb=lT(;4aiP*csUhYr9=4J4IPzp1hP(k(^m&;fbipN82GXgq{_cT~>g{Z%n
zOAvs2vGz{Mna(npVR5W-mBkbG%+e=~GfSTop6eWcsjEw9?JWM9?-!oqZIq4^m-R;W
z9zSlpas0UO+;QU<ue`$I#|!m`g}cE&ChFsTSXfC`ZxUR6eMU!rqDHv8)2Qw0VkZ*F
z48+$u&I_M}WeNH0pDI&qW?rPqKq?<#ax-Nw7oIbm$Bv1yW0Z_s7~Hw^{)a}5W%n=L
zIcmOFyaVqg- at nI{9j8obNRL4oTnkCio5dK-Xp>u<K6dOiVck9<0><(S&RF8Lt?QqB
za{X(s?JUTom`jIX2Zc<^<0<%zg`j}$1Sh;J!uz8;caDxf-?wf}zh5}8e(BCogq_-P
zbjRwws|9Cx-My=aAeVDlak14Su7Xy26Z*M!L7MXW at MV?kgF+z_EExrp^-#GB(ST$Z
zgw>!B4NF!*q_=bnrnQjU4(W-)A8l+ljg4e##u`YE(JoWdq(~`K#Xsx%@+Mb2bfYZR
zMOM$za$4u=a9Wganief<S{@4FW-N4*ET+S&JImV3=By4kF!{!5v9hKc?5ft&lkin9
z^hcO&eoeSO9j=*gV-f$Nq}{1qa*5`&Cl~p{f;3-sR=Cskj--d*9%7$!x4O>%8o<!0
z<vg9M%hQ7Sn&p8&34m{Sl8$tJ;XMnheTfnXya{K0y7-bsNn5a|00O`x+9F<az4!}p
z0dOuIsrS$v;^A|D6~Y5NkVm}gMyK<}*|O&R95S-GwhYJ-dEi#;)Kl*&^C}nL<Z#?{
zv8=i7Qdy|%R(^9!S;+o5rzW$17*N8BS@&+ICUtCdI5vWhQ$rJVogv06&!(FbZ$Tfp
zPG|im*Z_Q3RobwZ59?R|?3NkPX{rtDSHMT33T7S at DSsZgxr>!UdTYv0En_~S25>=a
z;1Y>W!0gLm+dH at H+NxDCh-E8hu1+ithvU<=?8d86R$1B9TqvumKpFeO>gwUpG~CbK
zP_epjzki}^!*rCzE3-{2XR;gpy1-Qb3}aU$j-Bs9nEe1{Azt+PNJ2nSX#BVAMt;|-
z2aL}n+CV_I87sSCqHGr$5gdqfa*|Di=iw)xWFxHXi!3WGn=GHTe97{N<vW%iSt>fi
z-+%te#}4iP!j9W+Ucc(&SM+zcWoE>td2ALZ2mopmWhiRQ<(situ^~tT?sV4BNFpup
zXCo`g<aM@@mozle7eRpM#)&%Qp1By$@q$LQ>Tg85Xte?D+Nhv`UW5X)k)mefg+_AZ
z^q~T*xuuPmZ}vAvF`#I*0k1ZJ({sE4?O?H?MjNPE+G@#OLDqZq66U~0*h~H-S+BI&
z+f at n2*@AJoD9%=_S4t`!MPa2Ve#LIBlI>q%c3YKr=EsUyB?#90RH at 3U+$RbzQA<zL
z;Y>X>_boaV1|(~o;XZ0nWpVr;1 at S8oO@t~*rRHqx74tQs-OAr%+zlwK%51A$SZ1}i
zi+ed}$PP(hibI80;63$BD!dzQBacL(L4r^E8Y_Se;B8i^*cf^y{BEMVXw!yX7n*jk
zFG+>2<JDJUpWu~(%0Z$w{)X|67vPpe^WA3m<BVN22^R4U8)V^YVM`pwir<E8eK#WC
zJY?2SZ at zxTqMmFrtU_kZH&(%r2IT^hc?O>?ph!RDJSF`p6>s)6W*aflNQnwi36ea~
zeKNiwrFC^<6Vwy@(~&9^`U?Gn62)8cH8wP&D%DP9k)#4`&_Ap=NT`Z?(6`LmT*ZkZ
zH#SHJ2KO{`dL@@9CP2*|lttMgDh|IW4<gaYX1$?&?%!RevguZPO~BW5RgElPW at Vxv
z^s{h--qNoLj#Y|ibE(0eI$4-5C^q3;$>*$GjeX_#u#4h}l~p&DiOLF<8GX_AiUm8{
zWO>LgyDPo*E3<a7LPR>XJ&}BL{@?Z5Agi|7?B0~WX;p(_Ymp!>bueF*D>>aRID`=-
z%@CEDl~!vjD2B~(SNXG_S%4%MOz~HH()|&evJ78BVdE#G`SMFXnX)Rvh-!6&%Mwd7
zcvLlR5Uuu$n`L{ORdVX~U_exskrrWo2L-tXC?A*^tpGk*m%#p9RpPd6*ru^?!&DDJ
zARlDa1s^iS?;vXsPpr%%CyFrwE6p?zLi?FhhnK=a8a=a}$2E!c%@g(VZ1tJ#+^;Wg
zt<DObS+LSC?(8&-(`%0`VHF1vShJM;`oaUU(>K19r(hHwFkSOpPXCj*6yNqJ#`DZf
zU~@agyG+Ta3D=ki^KH>pMy at luCNPVxv~%J^5C~inEi(10B(Em?U=#}M=K;a+kQFm-
zqKN39zPo_<F~B#ev(Z;1=E7Tx?=D=@J*TrHpH5EdaQN;*K2X&RWruQ06~o{zCRF=S
zPQM~@TT)*jfm1kN5Job(CO<guiw*UBsCV=zy9<6RGaKlb5#72~Tw<);%43|lKTqQu
z?h5`q7n`$ns}b#-H?JgtC_6E49*g$&jvt*j4<D`3%*W_xyj6UTQuWO<tC at bF4}Qad
zzB2(o(3Tt5;Tsb?z6FDXX+?cCJ4qd(z0u7j*H~KkwdvqTN69md`($9E5K+(@zhAtj
zL8a$uQ0YEh7vsx{F%A at 8M)iyFD<`leoQRO8bvo}UZQh&=JiE|&uTwhnvPslAZ07|@
zzig6pt~&djiM&yt#TI4k-KH1PDc_BcbK_q>w8r)9Rhk1v1CIn;IVC`4GA3Ux*pqoq
zuWAq9)H`Kk)}!XeSb>!o$kW1dz6F*wlvuzi&e;6U7wI5K at rmWWWXqAbq@)2hQt}{Z
zei9xh{72C9U>+d({QP^2SplZ=q>&ePU2tzM$)l^qlaNO%0bd!{>0s=k)W%@(fhnOl
z%?QaJE4Yj{yma%HuePkXZQpI9S>dZ&HXpr#jT9YHE4G~2>G{I6mp)bS3|xBK(eM{M
zJ5SI&CfV_Ep$+*=O at GD!$&M{`A-~%x3y>YnBo^f7Eqpi(`B%)WD{yL%i4 at Ba7#}v<
zgLi_~^Bycc0F^S6%N{I!Hd>2_sUC!5QHV4|gu*Yorf`yvOk-P<{qxcxe3)!$M>I4o
zLcft|(UxekChT<yW<iC{pSLE2eL?Q$v?Ah}yDRmIjO+e+fsh_gxm}qEG1{3G4Q}>w
z$p!N4d+>#=P`ozk%2dGJY0Caj at b8jb0bF<S*to(p<<qPQ_8m-3grsqP#d%PntjNO(
zWi%%zH~X89APoTKDgQ*4I9B*VOSAE-W-RK(?~BkSePqQ<71&%0FWZ#ctOCJ2DA|96
zYT>}vu8jsSaDl2*Zq`QE!r((O)s&->#&-ZT8+A|p4jhdl`bQiVatAGJnIH)nFgzi}
z4TAGJ at TE4giJ*(<7c at mPCnD~^0EB0_l}dQIki4X?CPw*3uG|9sN0jVwA6(B-uNMhz
zy<R%?#qE-aD2rQ`t-fb9i`Bq&&3<5h15EI{<1LOimTcR$<WlG6K^8?drs+InO#NjW
z(m~ArrAjemeh(Tq-WuHOyc8a=wl|zPd{7L-$@S+agdbvkm$*NnLPLgF%ukpiVXFd%
zbaCINjWPfdj}@*uJvY03ZKAcWt0(H#q>#I(tFJXK=q_P9cz-KfIeur=jB5n9v9MvJ
zuRC3%$ySG4Ti4UOyuO&H74sFgiDkm`Sf{~HxDDVO|HY)YqT_I9OKZpD!X2H at bdhtS
ztKgg{!2W_57k<m53=mIB`2?}nlduRem>Z>H6r+hRVwomi(Hae<6S3#}hHiTvX0Gq0
zjnIzAx8dJFJd%#Zp09nLS-$oBZNq&J4e!`?_|9$I_6H<ACk(@06okh^eL51-oL1AO
zOqNEhAHYmAKLS4}!8Z*i%7wf2NYp?6pg$VX=}#D@>&Y^<Ct4H5zftqY_=)*jw37_M
z{-Oa#?kV<{X4r1XiX)sN^UC;uaJS)n?X{x8W#?;TY#|gg_`r^fJK&EX8%{{!wk}Ld
z3 at YOz3=B2X4iRpF7B_3EzDRIs$B(}daV^qSjqO23cQ&Z$#>+03ljV$;vB at o`YizGp
zw1=JjndlVW0d9!5V at oi7e+-<hg2_zIL%c=^0C-td3YoVcXbZ2zqGya>oXW8HnVhjS
zBxLk7Hrab4-jGvxFxIJQXN)(q at 37bz=Xgt~E~DeilY^Q!gpY5*?{)SS7^zOdUKqr?
zd~Uvu_<(D{&C*s(sR^_G>D7C;batrm#a+3*t6K&KHw+92r}n;PoLaodnZDz;2f9}8
zHMUUchC$x$0r3vlmV?+ehq*qj%!WQxHX~IwA6#x_!@yRsD&$cu7|z&xD`4H)z^z+*
zYFk$r>&4hhMhAOgbhKzNZ>`<8Z at ioJ9NoNcbAeV%-%}AX*TG5i{A^_B#+U9OuYsOm
zy2t-P)2?Q8)U>W(FBlywT5Cq>Eil;?t!<;D!gKrf)wYhWz<XXW;|&jhKU05V$ca7+
zQL50f8q<^%E`pbmuibnp8LZ*8hK-v0=%5N^-~lylx`h+6)+5Oum_e0z2buU at I(Ft4
z$Bt1Sqe(rc>l^t|czpbUm;SKtnSEjm^!OkU!d@{lK#?$9)Ba#m^XpOFJW3rMFTG>@
zgyAE+Cak7i-3|Jwf*oci!8)U+I#C%xI;Ij>X`1no2u{EUpKX%~F!yNyQWL~8ZxVR7
zYxpKiQr}O9m at d|y`GpuCe?T~8!e>G at VuF>>IB?_7u;WHnh_rKiI?<cygSNt3tULuv
zv6&mS5+Vh11%f!h|DohGvkk@`?<=Pdy!PJX_rI+(Om$H(_UwH{^Pjr^vG-rQFG3+{
z at B_V%96V<bzessd8^A|u%fVY|uL1c^@%_bW3LFOKg2ld?zI_q2(T52NemANCixf0l
z5qfZ~s at AQ@BGNzUjK$A5y|7uomCGcs+h4)=V!rAOJDnO*$8J*mUhjKvsR?XCIulB=
zh?=fdLxWbQ;EKiGa;k5*1{JIIID26HUv))Ix`ciW+TQ`zqe;$C(%6^4ydz)W&%~dA
zhfv-MXpkTucy>u at _5mhtLcvd7JgS{(cS_1{{Qf>wm+sT_4Suiih8`ZbxKu3O{w_sO
zPlff>{t(yGOn;6kKdDb6*(ZGb<eMkbtny@=pw~>C(9}bSz$ra)tmgTNgBXkY&paj$
zWxzE3<Nu2IE;>1VIs;t){_NZ0mxVV#RXKc<M1A_QiyLByy#lT!igWD{5QRrUpcFI;
z{^VjdxH4&162E|@IF;-WX=@))j%pCt&U^0)ttMjC8ag)adi>5VeAg<Lyk*1aE#0dY
zrG+PxoynTaNM`vqx~y~6x?=rxBSW|K at XKV(Wz{BbH`GqOjm6X&t#j4X)Wk-mWJ5Gj
z6I<Vtj6|Y)V*{~xGRe;q)IwLRPKedetv6yxSDnke8IGNEljslh`~dugI at XgIxPtn0
zs<K??@etKHlFVYJnnbw)eK``}cmYt5$zf0?YY30IUNwI6nj*!Xef!zCVkJ+7EBf5q
z&l#`mdF2)3%~xJ|)vu5C-EvFcsA5&K-Q6ssX&d3g>fY%0r(0Xurh!~%>(EeZXKny+
zku1GKxJ}IR$g*~1hJq|TXLf6 at ex_!HEX^H#7#Gf?O!poZ^nkyOCk~`ph+B}kaP1 at 3
zK<hlxq?yY-U^f|>pk#V_GK0}W!;5=+Mtgb(4n+qGCAA5<h}71$)Ycj<I=0lZ6Xx}1
z)a_f>$zF~3Q|<ov4FmLepZ3B)FRQC*t-(JQiqKEZnYYYq^a)0C>@j}?eVS|O2mOs8
z!#VicC$3sHyzsKVp1c)2xSE80 at U$$HU1&q8z~nUv&ZHnrmT+}=HrEv}EzIuYgsT<Q
zSEPbBdrFa|90|5!&&5&R;r`LOI6sM|N8?F}pDrFA?dK;0ql*`hFRg8<scEVG3I1?)
zw|Rxm(N)cc_y8eb00?j%FP<NFCL_)pidQ#uuFLK$;%R4gUFTa-ju+u)CVs|~<~1*D
z#qM~MCZDyugV-k at A||Rqla&==&_3pAexmc9i9t_I^s?Bw2RZosu+fCO+l2S4MX1;<
zMUd7P!04G6CQf_Lg7$=o_*Br|+>2XtP4!`oeAvi4DAK?4023fCk~d*PrtAXxi-1iM
z-fewS-9T%)wl*8G_7LfDXlquqW;6VH{K+YRvq#Jh2zL)gTNh_TE|(T-NSMSr5TESL
z at o3bmx2I#AE~oYkYc3~DGf$}5KNG(fA at A*c3u4OW&FyT@))KPu4LdMJzw9};i#$;%
z^-G-S)45eZh#wr1cgzk_FEb_$^_V?kZ(L}wguDCW#+~Pk*!ZRb`81flF_xWE0kiSk
zA?137<qiH#>w>S8<U=0cQT&WGeZIPDX(#bR5a7Lq?_Y;OdlPHW#50ik%!emVimlMc
zu!p<&N3r?Gu?wx5Z5Q5P%B*|wji%aj{l%OIYZQNG&R2H)dFC?yfXJ{vFxT at u`e0bB
zEfyeB%r$=B at V3PWPvG)u(H~EKbL_I1h!+GS<i37twBYLxHU)xm%Jlf(eM8UCD0%!3
zTgl^ZJ#~A}?U{YT``qo{-wyx$BU at g1<$<y1kE58-!-IiJbRYU!!#tuNP)|cm!c>Gn
zKY79vStlX5Ug$hnq96sRenD}vm7I_Iqfvi`)Fd1}aE5OxBffv6s6QEBoxC>BkD0pD
z)SrT4Rro2~L*K}EOtC_yUN;l_&oTEK>T05-+|k at GfvXh8>hlCpnroD)2$}#IKcQZ*
zIs(=_7w?Tm9~wOrjUIvoKUrMV|B675K19{%FbOJ+c>z}XLbmdh*W)<%8%Ly?2SiBo
z;#g~~DFKu2FnZ=q_5wZ?PhZC)shA{h1P at VjSff4(A8tQdm%xA3rxDQtgFkq0z{f<p
z*n#ZcQ0n1Q>t@~`u?LuFTnPtx>tJ~MG=41K%|2%Qo^`PYj5Eek;SZ^Hq5SsnV5=}~
zd$~#brav(SX&2uf$6g`mRi0*qc0js?=Z!os_>MRHeF0d+K&6NrgkvU!aO-3$Z?aSu
z+vf@`zwV|P_1Xb#*36r(TOM-lGmB=<LQ(w;Ui70yw=BXxR;YAUkSYbQy6&dZN`>cU
z)Q_|;TC{nwz~jZZKWZW7X9K>XhHqUpCB4|k1~{{z5F{YAkRXoWTR_=FK`HqZAg3JE
z2+M`Lu?mnQIv0=!=~L7$A&Kw*9bh$9<4t3k at z!^jDXzBeOM?~ah*}Z6w7bovEIUup
zzhrxJ*7RT<8~HIy3dS#t5#tvEOWyyNo|$N-9&VC`fwa_W^80T=_miMWHCTo%w^=@C
z*+=vBZ+Gvw<K|CX)>e-}z<iwz#rz`<LI)xyq-u;;p+3f|FlaJ-Z|0z-;4<ZdCg$Nk
zH3v5s_zU&&*zAH&E<tdUe3Pdmio3nLFI=HqtyYBly4y8*WJK0 at k$Sbli`>emve?d%
z>uq73N{`~K&Ncc2u3ka+Tr{gu6}pvf#g%HQ*8{E|zo%_hqhhU=8YLxMohZ}P2F*ER
zdX;3Yml~~Vq^1f*jb$z>5-zcZY9dnDD|sSbYa&-`jYZ^e;*VD=(P at 2`%r*g;eM#T6
zD2J`Lr`@fL5V$?P;fl6u>@gW=u(tfL2#2+c!vWZW6L54%MR1M5Ce1msvRW1zr3OhY
zpHby<JDc28q at bt?u%Sqs7KlpWni#zLhs*1%@s=d^m4F|^N57TtTcD^r+G*6q`SHbV
z7gYv48pWeye4(CspxYyi8MavbR^w0fBTx$w&WNPKr@$!Da8nj$OMfbWcm}NGSUO;b
z#`mQp*+<p4p4oogG3NWn_2V;#g16RJrv`vOSNUL5kI>sVQ&`mC59VfC|EV$6)0u4f
z?9e{puJN0NfB3i0<G+9V+<^n*U)&Iz-q@|XD`8pAHqBz$#{b*d)d#n69rs&&6X2Ic
zOO^y#J_ at 2fh&z&?DT$&fnFdJFwq%ErWf_na8^^<efC%Cc;2=uwWa>Chs<4XFI!@}k
zuB*C9>ol%=pg$_RZtJ>f>bh=i>kqfnN&H8qlgUhHJe`c&>10}^zkPRrNPRRjq4aL|
z?c29+ci+Cf4;=73dqa`fUf-T4J9{tvGu8Um(lgIKE6!&py|2QicH9^9=K~%-pW(-z
zdT}3!ry(fYcd-?CPJw45Z+e2qE`99}>G>~yc>ewO&wtZ9{Mw~&k?-06&86Re{(b)M
zJUhd+K+glCFFf2e{-09B`x8!iAG~&ocYXmpbP{)n$ME(?9#ygD5!3m-7VnXtpOlXK
z`3nArz7L(ZphTN<xX6;c_;D0(2Iag1Jy?1x>w>4*{vDT(`*GnuD84~JZeu<!O}S4v
zb<blfXl at _wM~2JKv}RvGmM7X+4(c9k_t4VQrLE+ at 7A|yJF;<JGNn0^qa||Ab$8C=7
zc^6}&usuyW+am0_PXAW>N}E>V*XbvGc0JpgbL94I*~WF(9^WY!XBy<NEzKfi&x7u^
zaYP7Ov;Upoodj(K^gfOH36#fCDsGVhzl*|pzKuR_I>pO$roHHv5%}v<w5 at S@(r!D;
z0-ulV`55p+m(DbfA=by$v4y*J5d%C1`iePW-S8V|tOM4YqbJ_`;c<n|?pQ*vJ3;$*
z6kIF_UBBY$^(gAlS^5vufpd|502<rQ1#Ln;kIUtUE^O96kNT_V!+#Uf3(~*gX>pQX
z@^pJ<J<oV0Z_azcx5 at X3|55)Nfk5Edz$f^GG#7j__-^o0Xd-kj^y9XPwoBo2;U7i%
zBagL9?MK_6Z2w8eOvl-dkMR)Yc;|n0jdnfPEo0Nx at 7?g!n)Pd*>XCX*^!(4-6Kh{u
zH at og#Z1Q*PrnlCwS)W_~+J?Y}^oG+Lp5E}<hL1LSHV$k&zVXW&mp6VK4M%rJt>|*}
zlTH1bPH+1D%{SgWd-F3lf3P{Ud1CX~%@=RkbW8r0Wm%Gk<ZQ2}cc%BkmcW*yTh4F!
zX{<Yzj-89W82iE2H~PB!9_hQdEwt^_wjXalw7s<b-1fJ39NO{T&f%TU_OIzb+W$)b
zkK*0&p?Er8ia!zmnKGt4qCBm<qbllI^`d%dVE=$M at XBCdaCq>c!Dj|94F2ojPlq~(
z28NCgJ(d_xJU6`U*7V5m$k~y9*)_8}ynAH#k=>8)esj;*o)<^AjGh>MbaZ+2lfB)0
zC-$D&`~2RI#=>LSv6sd^x^4Kj6StikUpGEG{@%XqzVrLL_n+PW-2M;t|Lpdm+n>Ar
z(}~R!_fDL at BXq}qCufuAFh_h(by4~hpVaW52c;YD?MTu{1Q9O&)<_?>^5ia1oVzeW
zUft#59(><tpNo4zpLB5_ at Ix-{$7cvfT|5B#!!91iGvPTGkKmm5B(7Y^hc_vtlhU_c
zoFweF>f#;=FMqkX7j)IdeZcp*xL;aF_qccfblt_n(lM&JctqMpf1ffdXR5`yf+g=r
z?UaXy5+m~L8QBD>Sk_9iR<{afwI)x<d9!R8rII<In+r|+h%r|$Y1L-636B}oTG1 at a
ziGiUeY1$|oRn0PTEWLJWZrHN&a=vOV$Ol}xa;0jXG<0jAU|E&1!NF!v9uE(hOsRtH
zrm9jAt|~~DB;&^^Qh4|;OT)MjOyDB`85=X7!O?WNirAn^lS-gycx~1~FK(%!K7o=)
ztqiIGjuP+zNyl;FD*6#{%%Oh?QmR+AUMb}mxOt4CkS;^70cdw6*EG1wf>RS3<e-nE
zdkwE6&cPxJ|MEi1s?bW74hV^t^_AfdZaWD%I=BafS1eG+q(S_<a?GZEh$@b7{tG+c
zsw2J at hwZJrgrBD%?9GY|zuWMpTm(B~cHl8`7j at GOw1#@<Mp}!nB;Q2qX#;J<o1>e=
zC;qpPOue*)Vzia|aI3H#zwf*gJ9EcLAr&vN;q639&@lGM8=+nJrr91E#Y=Q!*gbC?
zA1U)2sS|Vu@@0x9X^IZeG~G#e(cN^A4$(byFMWn)=rA3j`{*d$Psiv1N>hf8(}Q$^
zK1&bL!;~eBW=W?U8I-3vDo~M5(ma)Dfy!i31z%09QjILC(<xfS&h%&K5&9K8gZMnQ
zjsI18l)gZZ(HH4)`VxJaevQu3S7?cTozBr$=?VH8{RaIeJxO1ur|28>P5Lc*ntq#}
zq2Iwx(eKi8^m}xkejl&x{{elAzKwgzKcW}tJM_o&U3!uJgkGXQC7T+wOfS<b^eVkZ
ze?}MRb$WyToZh6rpueQQqPOU;>23NO`X2o)eV_i0-oab1 at 6tced-RX=PxL;0Kp)aY
zU%h5j+Y3giqUyz}UNUllnxR$og4fdK{5jK7hugGj)m*Hp`l7#5EtaiLT`TKGsmUKQ
zaz#tkN|wK5VzCEsH0xF<XD*gYrj`p?1r=+1&hS`;AmhcF<*Qj*HOvRqSg2TM{H#PR
zP_J- at h@*#U6^i8uE8yzoG3Pt<f}zhlebhuyFPW$fhs}Al_PM%NHFDlcvFtU at 7y-?)
zG`$e0mrKR+yiXho=7QlXmh)yiADU7F#_5V#wZaY%X4DE0)gg{exxuPoEgFW^0l7xm
zLQ-PRwpQ(i7S at y-f^Hf!`mL%~D|mCJ?n9};FS=?Or>!6(#qz24CV?xVe6eJxm0Z3}
zAd6--7Z#Xt8XoU*TFphHS}`#ZPE&C~n=`z+ITu7>wE~M(qpTM~x>hpEIjxHMauC<q
z!fpOpc3$ui(_Fy7AptRM9XxGK8-^qGR#Xgkl#G09E`~cru5U4l*;aGKD&~+uNH7Cw
zbNCn&lFf=yZWE1+g`HMLgXkzoT6qpGV3vr33Z9UI*DGNMVPR_=)C~{OrDrusbnRYE
zt5>e*$D(d%O0CbjgS$*QQ&5DUu2oF+%IZ!m#&N at Jan7+Hh-*JE_6$J#N;h^m_PZ8@
zFMAt7ad{d%`l46Y7a{W$Rvld6Aj}f173%qX$p|4n3Q*4o7O=d`>KP7et(*(#W~roA
zYDT+LSH*xGO{(yjuTs*^bnu}yo$V`YSgdBnkD#gN{FVm)c+Gs?FIHkmt64_1SetLd
z=v7Od)vDgv`dmaes#Y;y!~!tTr8Zv+*09E)dYgc(xsNgboK}a<HLO~k)<ZcB^0k@~
zDi!m_Y~4KL*Xy%J&Bw>kY`s*fVQB{!i)9F?b+67sY9df6)oW^^Q-EerB!UaYGLyR;
z*rIo?OnGXeqkyDmH8V?KK`WLZQDmq@`{hIh8s`!`E^!i!n(#v<H4(YI{uANWf=+a{
zP^@hvEGMTV+5}`*`Z2F+!pDbjGt26WumqEl at K-eC#X!~2kp`fPSz(nHi<VySl}xk3
z`LCW+6Fn>3tzr#BL!)CQEz#!s3^Li*yToxgSSjjOy=wRtjB-6#D;0A{!ti~~$>!S0
zdd&(r4r_OS<DX`wY_cYKvpOHF6)j^yt3(hExX!ETSjmA}p=gwHLC3L)kaJdn1w0yT
zp4IgE0Ow>l6YF1RhliU<6Ex>E0;h?y3Sb2*u~;hv99!Ios}zl}6MJm6iz0n%kyb>i
z39nYHhMU2qCff5Qb5Yf`ny%%HHc_#vhKsS7h at j0@ahfZ13B00JwNeSIFM&jEiPPe(
z9zEC2Mj(BvRuShG_MGd!TrP~u(7CEntEodx^M?JLpob%TbmPzmycTZd=Y%*Zl#NAk
zEk)wjft<Su_u|Ty6xo*UPfulJ`QQbq^YB4CaNqH?JrcEdWU_gA>Hf6s>C;{h;kH26
zW3$oTUR%o8QYtpNj5~u=HmTaA*m5?n+8#yD$@W__wr|_<<sB4GP3cod9!&SfdZSBe
z*`Aq6_u3PgsBDiiHk!%E4Tnj~**idTYqCAW?L*A@)=XN45=)wFhiB4RP-JckGq#(t
z-Pve1lgUJFif1x0TbfB5nT%?C6?saweSI1f@~39fwm+7%1F<C3&)AezZJ!c at UUIJC
zpH0f#;tbA5Tgp!9wzt0*^pw0LFF|%=$lnLE4yUs-QSC at 39m}9~;=VMRqHL5qvTFMk
zJD7?u<5E_*CV*-z8H0;sNzL}m=55k3zU}W<?I3=)21-U!`URgf3l^w3k<Bnmc2X!A
zQkH`eDK(Ys?`=7|O<C>yup@=yP$312v+~qZOyh|Vo|2;MO<Rsa$)=XJw=bqmIzvRR
z)7{>RUg+F1ZDpr+j+t0;ITH3xrF)~X-b{b5YIi6Nk7vrxX_KnmslWhPw%b#8vt2-9
z$&B5>wIir?pr+bg5YsJOBEthZ)V4cQS$Qcd+nsQlYIiFKkER>G++=2}-C at K|tM(1b
z!Nci;_c_F9FX%mjzD8+CU8(!ijjpbgO<L0KigS=6bd!yCK6Kz<(>lzAw{Irh;K+ru
zl1rFg9=5+XhHgzf>a=qg#6GuXV97M}pUz?uS54J*Ca{4=pfR`@(X at XVd#Z|P=uxDG
z<e55}w!30UdCHC;D8rbyY*Nl*_*c8JWp1aGOfF>`YXWh*8jo&)n{I?{J#p1ut2Bt=
zI{2C4O-jSdaJ|y-G2Eau{0uiLjR3=_(g-r#q%=YdZ&n&@3^yy1-4XvK6uAY8Y=!_C
ziZJYjA`G`c5r#1+!f-1TVb}*n7;b|i47WoOhC84L!<~veF5<jjf&JZCIfY5c@}y~i
z_D&9}xMKIm?S3p51(7<9kh<o2iD{!T&Q<>}2jWGw)z%!)I$P<t at yk`h%L6ODvbt$d
zk#`9_hrmNqS1(s&forP8bZOlyBGpdrkBv6)Gl{Sy0lT5-HM?XHwc4m^4=V#VjjQ&p
zzlaqPrh|P1Qz5PElLzE!UYT&=T}w;Tv1w$2G;%g_9+vB^yfG-o--Q&i4$+VQg2ir2
z#f_zbm at JPkLDufe&GLXF!}dWYxMVxai+SR3`el#om7_0vws|*ZlAPc|NR=25BgPJ3
zX<-&uuM;e4iaVLylgj2|wl}5akYhY4EebrF!NR<<j|P>Hbz=v#(P#`K9DrQ_Vid@`
z#vo9HGocTw8@~4=kdU{p&;$}SbnX*M;E2-*r?AUoAxieJ4`ht)-{$%tHV)T}3bGx-
z>XqdKv1uNRXKSx;85`hwR63d-kjHW2V~t%Rgk5%dpbxdX(9}A$IumtuaAjle%s at xg
z9&<HFHK!)a=iVz#Y)<8EN=zPLuN^?v9nTCj at LCNP-gt|Q*}P2N*CGq<X4h3b`xSdv
zyxFo!=<SNVJHCV%;$T_Aa=dC_Ov`{B$M_S%T^xW-?{aX(uqp<yNE{vSK(auBZbfR-
z-d`Mw)7J`&Unct4Z=6 at gW24dD74zMjadk|xGn!6KvHiX5c~;T2qh<0WOkV3OPMpfI
z4toad1lHozb?66>Yw5-wdl)>^iai2wCwpxQew7d4oYnNxT?&VzeJ9*{w}KzSxdX^S
zAjHTaWtjx!9w35pFY_eP^cm)1WQKVdIm|qa9ATdQK<;B6MvgKMBlj~8BgdF$0>}f*
z!$_KW7|AdXBgdI11>`~IVdMn!F!EXEVdNp^xgE&E%)>~Qc^J`{hml#u-qUik&K3JM
zkaGeX2WE(P0(l=QdBq-WanEr at a2Eu|+(m&g>q*7l+hU#PieN1Xj9C{1#;j$<9&53h
zToJ4lfidgn1jejY1z)T1G_Q=3aXVz#-mNpI`BbAyxX6Cz2rfYA2_$9bvbxfc{7GCe
z^gA%L3cilBN1LFym{*!?Y^Ae at aj|$d-SFln8{4?{M(9yIo1ZwV<BAC^xF*gtr1t&`
P^z$#-zOUl!Fe&{XToHil

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/fonts/fontello.woff b/ui/new-ui-samples/fonts/fontello.woff
new file mode 100644
index 0000000000000000000000000000000000000000..e0007cf3c54b81e62aeaeec8976b8feb2e5a21c0
GIT binary patch
literal 24196
zcmY&<V~{31)MaDZoVIP-wr$(CZ9i?>wx>01+qP|f^X`5>c5l_G<eoY=xs_BUl}h3+
zFD3>A4D`?RLV)1^D@#fKum4~D|2KJMdL|$sV3B|9e^BG&kwP-IHFWsLMf~&kfPg@#
z5_LB<jNM!a{?%>%anSz at ATtMZ+kcz~5D-{05D<(*L_&h5xuNsFSV-7^8p!_zqPdNy
z**_Nr2uS)B2q+YzswZ*O!qm_N2uS5W9qT`^fyscESo|aZasTB(@DC)A0buwRwl4qL
zSNW#}Mgjr?m1sNx0<y6;{-;y@#{-xC2eQjw)wYHn|N2$`FYf;UI1<*)&d}EMA1Cln
z<NhztsmUBH90z-67a$;w_J2A5YXeHpfW&CS!O8SrtRBw4*nfH;?=5T4P>*b51CwW?
z?7qJ7zJ8UV=J3G40tg{yJ_8056C(oyBLh>jK4_469c2t0J%(--Q~3A1A;h8V;d*F_
zNytP{psgF2DUa->cwXrNN0iW;I+o%R$~d8nf!+d22MZf(CrGE$E)jgfcSuE)U%#P(
zOh}+xSen_^qLYW5s|XPb)B3;9#U0N3c+;49AmTD&H*U>n2JHx=lrauPB!>LgoKown
zF)i<D6bwRDrEKbl;JtAiBr>R2?b?f`sC9dMC&_)+nfWd}^KPErr!Y8)&@>B2u`X;H
zr|3Qy{Y65RYc1~t!rl4ao{Ht+UOD66eYj4=_0P|R?VbLdYU1*qDcWvbsL|@4DWO|c
z7IaR#mR3?xU5JeQ)h(isiCMq>d4k};vt9f*SpTniWY?%!IwOlC<}4Xbu<->UAh88%
z4m-uTsijXqA`V|lq3z<_r(6of=}Nm at N6UYLe`V?cQ~>s$&E0sos|Mt%Dil&*r7u at 9
zFBiFbNwbNAdK&S?n?97Kt!$PiCz2BEHd=A}!fR_Vl*%&SbP+)oEsH%@93(_Yft9YI
zq(Q4Mqw^#O!tqR6t)zdfl<dwV-Pf=X&THPE7iJaXwxCE^vkHVS0JIeY<w&ATSAaw|
z+P_Qsl3IHw)RR6-u%tn!B#FaWhOqI6<_9rqm^H(0IHCaARBX{G5oVqUqWDHFqdXl(
zL4mh?OeMWHmO`Hpd;qF<@&dHum|Nz~3n~8@?sPB7zE^Z3Da5ycn+b$>8TA{{{5teO
zX^xF}LDa2_FZm#GR?>OirJ~+~#jcxZDftv+>bQD>#v7FBGs2kFp3it157ts*a5khC
zy|a=2J$y5sxJ;xq*=W#poLofyby{}8s_}dK>%kvg8g#;6qa3MEaZ>GwVw8qWnIyKq
zI3p4pMN<~N#AUMYxoG!k4SVITPNmJ8CCj-Pb8EumYO>1 at Jy<FhWJ=|(ijU`#!4;*r
zka><*fRpj(Na|V}G6%<tENz&LNdOA at q0W|65vJs+EMRjynR8iPhMCqYg`$}}3NyT3
z^7eM2S=_v3SAG1}pXRPqrNMs~a&qBErF=5oIwa>h{k+2b$?k-gL8t(<Y=4u7gj at X}
zj*g6_;|8ojZC-L8s84;LMMjGQU$JlT=$9zLWJ1$b6=1fSms at Bi7Om8xRZPyi2xY1D
zmn}hLIpKYc^@lmW>oPE<WuSI$2G7=hr{#7$la8{4Z<^`GAG=yL=mt#N%$%`IJp1Mx
zulnUL at N7JA;Tl?BxFlbNbJ5m+Nt7Ae&|3&5U333(`W>j#2aXh2?}`YyAq^Q)BSc_>
z{u^?G2*j`}L}1k~MqrhW7_l|2r8?7($`Xegc>+i at 0<?(pdeqd8N?m!Z1gSP!tc>lD
z(y6Mr&_nHu8uV))z+N5LBG4(a{23)#>!Xr#5MOKIxiHuP5~u3#?W~iBj9}WU at v3~=
zyPjEDtX}PD;)Lo+JezbNvO<O$Uwd}nQ7OLi6CDL_9q0#If(Rq3nF`mFk#MV6wx9r~
zbA-r@&5W?})M+|3v-g>WK?rl|_sNce1+y6}rzxp<Wl*=Y5^vhk260qRu90ZeGkKxC
z7acPx^&x6T>CJcV*@wzNm10;0r&F^#<&E@^a3*^%gV=^@8eAMZl0ncAXpF~T-;+c@
zBBR?9xK5c}AJ}a$Nx6CxBCKMceB|I=;ENZV>~F1pIf{uYi}-5$EVg>lq;RiY9T-C1
zySO5tN+>(jUJ)Qod=zGNYp7GRA;u(^Ust{gH_;e{fG at u3E){1=@FwxQN?e at 3=8sU$
zV#n7wh20MK7i5s2rP23uPsV<JvU^LSshTaQavN5P@=E64p(^;TsiJG|ku`FsWtJ@$
z`OU|kQq{KL;0{g1s|}pw5*fPki@)&L<r7mSv*)HdiQ8 at n3^WY+I|ZoNKk6 at zuRQ9N
z&_xFle{#z4i)M^q?-4ls#h<`VPZ(u7!jezC(~$G*Hvg_M=?>{u=k4$GRks|Qonbi$
zFTkaTS8L&Rj>GwsfphWBZ^k_$-ZorA-vJpQ_Zi(rUTY0MPzK!j4CCPMIv+DwFopM{
zIb+x`o5LA|bHci1{56Q at gzYhy=ITqEG(=<y7aYU^mrq9q;xUB}u1o*BYkkb{8pino
z-1E;*=Y&N%W>{Tuv8Hg2Mt4Ckw^cwr?R!K<d#UGGRKaZQJqR`Qw?}O9XNaiax9a3A
z{vL!8{#qj_{Wd~W_Fr-_m-vcB4}0$tl==EgP|CMJKkSszuP at dk9SS;5$Cmf-GWY>8
zfF;oSZ{G+0`2j-k$S(N<=Yu?w!BCr_dsVA;Z$(<;W~zzy-bfMxu$4 at Wv5jGjbBuAs
zIZzNT7cM7+R}g|C)B$0E(~(kwPL}4BvZO0!nWEPh5A^wTX89v65m(A0=}dXn($Q_X
zegR+;ckW=ZKVQ#!$yiIFLAFTT!LQ!RiO=ygJI*lAt;=XJh(0R9XTTda%rKMG3K`k|
z4Rw&gY=uIH6*q|OY^z3#Jea|jJ at u<5W<Ye`mLdY<rH^Ne-9EszJ^1dpo>gySV?h~z
zk63mrfXIow757i<*5_eqoTsnvLy#=)TWJLTM-bnu@<GROtD1|O1@>XTHqE3svceB*
z%+`K03QZ2$U1SF>Gml#sFb0<M9VW$qDzT`oU`982n%ErVjI6K~o3e#4=2DeIcL+-z
zAa`O$&^D%2f+BG^0Y~K2S5bpF;<2&JR`c)lTWb_vYLjL#t1M*;)q0dg;tVcgaMVEy
z+)N(#pSZ50!w-2|Y>FPTLV9-CQv1|FkcpA1AiKI9!nP4q2?y~@rV|7b2s^G8$AgNU
zr05}|eth4 at Ijds^Wy9YzhNm-9+#>@1L;*Q4g=``DFc*mEqy&wE)s)?(`&aIHYctn=
zuIN#VY}EW%9WDMl7Tk8aT_2;hPqLGy{P%?$bsOO?y$%5zCHU2Hp8hVH8|QysuJl$W
z-Ky7nZ<hi1o&|asBlt`(1^8gntcz8uw<b8e9ql1O9Puc4j(}fMMQapk^d`)eVT%na
z&a`r^LwBlCetNcwkMy3w73XbLU4Ja%gTjL-aqQzApWb^R{=9qAi+FWa&8U_k{^~t!
zndRD>kC_(8p(}417}k==!A#keq{FA<tCntSqqnvf at 0!2DmEQ9!^|geE%vT3}#%E9m
zy=0v5p)i+IGLy`s)Pn-&$=xkL1Yv`19Onf7YRvEf{!XfgZ~#gmfj7pF7vsSDPBJKH
zfCGr3-D9R`B7R)8)$+`)+ai=#vXE7*wlZ)kop$i{TdG0CG!&1DUG}|$i5<dqgAVz<
z)KDWNrumGH=YPq!Or5tbtSkli8p<}7$=Xyp<daWDgo>pbPsJ2lYxITU1JSM0#ta$W
zX_;wLtq;BDi?=qd4oqhkgkq2VP+01w8$^UGvZ)Yg;67m?GYBfd#CCM2x*pwYp3Yg$
z`fbD5az}5k;GTYwT1ot{ZP$iuYQVjA;%qJ_a5>7s71qp#J!3W`pl?+l<*0M|QgAiJ
z?l?c&Naz;sT&mR1+!&j#aO#ODfQxXoJGWdxE>#icxuj&PzcefQ&`r;zmjDlw<y1HR
zeov?p4&~9=|4lBH08=I-%+pbx!6`wU=2KupwO<!OtsZ5h20O5Yhr;Z}y?KSn2<aX%
z8P!XX<!3KN(z32M2^O#XSD!x5g=Tlg>KKRFph43l+UO48_goRxB_vXu_otQt-z`)Z
z4Bcw-m~|;jAQKLi1#ibu#2<Xe+r)@F4U(K|7Eb%go}k0m`or&d6A*c1F%5|96|`pC
zQz+b{kR2o<QS$j>Zu*rMl(}9YuLT+vSZ5N~uYr_pOVR{OXOfGm10IKl<e0A at L40~K
zK7>3cL6;j&$3m?7DckkU?5%+5Oa;jx3$?D8^R;-}ZOo8(i$E;Mp_U~4whART*p9($
zj{zs`_GPN*h^JQ4bbD<WG>LeZ-s8DlPqAvN14iFxZ9(2WWfaJ292Uz7YpWTY*FqB0
zx+uj{@>7XC3kWY|>5R!ZS+Y<Gnq*2V1nCph*)|ETPnQ*=cKpp1ppQrogzt>uT-*Sh
zGKp^qTZ-7s8oQ-7He9&pX>o!w`ZNW8SpK|E%X)g9GZ`$itYkVS$bD|i$3zCCf~_<L
zT at cFbNj#VY1 at 1hNG+|y!Xn`w3fli15ZNP|l;^8Zf^|rZs at VwM!K3iHv_U-NPP|yj#
z^F-1<y`p&X(c9C}^Wqbn7QVp2eC3pe at Mikp>43Z*lMB6KSv9B7j<+KA1hM?KyY-{3
z`Ib9lw0oXMDeEv0rEQ)e?9jr>PK>2+3A;<hM9z06%e2KyR^RMS_!)T?zX<-=R;gTJ
zh4M>@m-Mzwn%uGuAnqjSJv}etwUkANXCIg$w(eM4jjOIv+puZy)@T|pYOUVW>N^o@
z-Q)0NaMPW78Kco>Y;GH%lH7=y6ujF7GY~m%!nm%M8z-|aH}DH|j`TjM^{3@?h_tR<
z4P^xh1-4?OnIMRoFrY-dxe;YH=)FL?Bwsa&KJ_RwQ$g*uzeONLc)LYG2GP-aR90Kq
z>6D*Vy1#*ygumm|oX?t!BzYfrr9C<hP^H`HHFwzVkmsZ`VCMCT^kq|uE|VRTX&6+L
zc5eO&LZfQGfVkYeE3!9lX(4s`qc1OaM)J$|5oB`2O?q?yx2};;Xe4J8w7Vqa9MO;$
z%Na~QNXHsF#6Uy!xc-6sX>`x^)3kcvLg0xXP)fMN<~`bg`X+R08~(ugWvf;{5wX({
z>>gbm(0q~&U&mTuotfLLlxe+a*;E{$w$$!1PK<V*fNbd__>hh$LYx)=v~xd;ucrSq
zExhn^wc`R3O{RyFI{H$`|Ks`S?ccr!?lSp{+5svbvIlWHr6$;Q(R55hD*#*HW_RKw
z4R$(jg{_LQ_!i?9Owoq&&;U#zR3`9&Y81x-5q-3AHf;1f52_K12}7U{I8?fbty&Ap
zY6$slSO=utL*s=hQYjToItzW$Mm(*dBF>>ZtbZdiVQwv6BOC{WGB~=V>!XXRY{I9R
z5-*XI<?eI0RPa^UT}g9)kk&#^+pE92ggGNK)4 at FPk4;Yo-=xd(GGE!dVyOD{Lf!T0
z#RX7BF(taXFEGEFX>Wueo#i>?E-&q2sNh$;bnBir-p=IJYa6EJ;@IR>(jQble5Rx+
z*Q9E8Oy at rpaK2Gb;9g*1 at +Cw8(JWnaqG2yY7gMFdJwH`b3*YKR6Vsbs8m{wc8g^_2
z?gI&$-Uw)9S6*L%4!*t^a5W3_rrlXGrXamUh~GG(B;dmlV<m=PbjYcA9X=!XWSgBf
zC)eCzSy|yX0 at M>6OrJIj_qZQ!ux*VUs at m{&m^CXuhEbc$lp|1mXJP_zS!!p^j_HIC
zk<rBkM^+#v69hqmd0LEin5#Si==M6@?sK(%Jnawt+-Oa{U2{vOEk%Y!2R|(J7o)Yn
zUUT}nO8i8SlQ{hl`EJ+k(W0V$G=ckOz1TT3IF9Fp9cs(|H!jZuUyxc5D|+N=s+tI#
zITECTn%{Vxf?-`HgT$UPTvR-0w-{d-Y at CD`mIjIYnG-0Py5N|D`tui*y}^35V at Iv9
zGYc0`>>+yB8gY43OUa~klqIl5N3*cyH#ZquGH at wXET__S8)x~xXXC&*iF at h_Ds1#4
znsU~YY-YNnz&7FK{`ohHJH2n7#e6^A-ybLVJ!fQ(Z%LyCy$Eyo1b2tE%C9U+atF%%
zU1uln2c?@Wzt&5D-06AHY9Ad!UWCDoXXKflt-^Ny9m6=9;e6##%-2BOzUZ?8{PReo
z%C3MPyY at Vh?UPy!Y`1UKMun6KqPOJkb6blL$fp5n(?fjg8X$kIx^WHawdX_7sMw at n
z1fSVSeq?eJVZ)e;pu%XR>nqzK#Zb!wG8}+e;1$vK5VoqN{Hw)?!m~Yw>jDLFs8q at v
zI-zSwY-9`}Yw(Gkcso87lmOp&4ry|SD%oi@!u=}D4s5b568_dXjNtWd`!x(8zopTJ
z^Z67 at I4Jo>kVPH@#+XL_1|^DjaNq+oVTgD(9{x`7jDs6Oy3--lkJf-ojj6JWzV!Cg
zKWwc+>yBJyfBKPcb&nmb+|)$480_8nctm*8KgWMwyYiI~a3pzLQ+$Z)n0gR<xx&s_
z;c*`c%i*3oN^m`73J=*b at -6cjK6o4N57xgMOxb|n_im*e)^ZDSWC|ihaPA8O6pR!o
z6XeZN>;;}cigUOSg&ZQOSg1v at P|6jAiwtwJxC<t2vzt%Mxv?0;j%I&bTnz&!3-L#k
z8e5_)$V=gArhF$wbJqM|+UBhx3Z|i=P2*DK8(;mjo5p>YtHx=}6=DXnPtDd5)QKpT
z6^mu}9ua)=6T_XkQ4k?GOXqWVU at YTs8+gH*99Gd#(_GNBX>?y*XZ1F_EwKu#>+xB8
zjo!FIYov1)2|$wN%vKi8DH7;_&!PpBGGZWE1Cr!XU?r0!st7o%BJz?|4_ryd1=L6n
zu86vf86q)NsjIH#y{i-dc7`WiN{eU;6dtaUL61Q4^@H&%^Cx^;y;FuC#DPvXJNKP^
zrk1bDFQ4uFY=8<VfSX_r#Q9fNVV8FmT~k857gFGm*A0LjqDOW21{R85*irmkcvlzN
zY}ulgoEwqdkp&+9{x~VAtFHPX?;`S>IO|rbb;bMC4*xRY#X{^Q6|QNyZ at YHj_^$Z2
zUjRMp^mlSeNCQ$yrWv55+c0jC#-YsGe^s6YK6aAsW1470ap<nI^;#Wa3iClg0a`7w
z6zK6xw{<P2*aYpwcIy4DC{fI42+K at jkB8dDr!Il<vR^o24gOW*YL~pwIL?6xUlByo
zP$}Ls$El3xaGsUJj^*1jm*Hj^GYZa{MZ%bg{YT#WW!Obn_)GnQ4eL*P!89yyu^_-M
z1;9xTG#OQWF2&8BcrEyoKhBQz)i?)5DwPQLDxhY<lGc;;d>HGhUt at 0(AaqT at +sgQ7
z0aCH^k?_I&l{3E;GhbS<SL7@)8nI}&JZ+XR4bH?nmq8c`d%y5k!9CczRuW^a7}i`$
zP<3axM3n{I=MGZCeR|vZ#-r_RCF{5m^?O*?c2iO%wta(9^5V~-%G_F06l}BPEWb#@
znc84J{Fmh at _ZC%C`OMkotteA|ucm3r<P%g42o_c`3k#|$6upx2aBHxE-teq7T|0y6
zJo3 at LI#uI0cBNN@*ja2Jj%(#sWpg;>nRoX1s86Oqt$Az~)fvCioviig0oEv6C_2Gy
zGmsvusnYLWh5572an!Ea6jD at r=fLq5u25OTw{FfoENn{5lcBdH=xxf&@jj#o$V3zm
z4!JraEPW%f2z$AuwM?eB0MpJR=UIPsHttgm?}=sSQwBZ8mgo{y{LZ*jLRAF$avIg(
zTO7qCp#3t;-LN+_fl!cH6((Q|cL3Px6nBF2FbnmDnh~&wW}_wdbd+4KdK%C2wqhi;
zN7hn*sE^&Q|5k&E_f2IgDb<YhbCX;0y7oRgPIi)`mqTP;`<mSmX;#EwliTpIw)5M7
zf8{RXO(W}xcd2SgmeNy0!nwvl6QhD$pVBbsAO-#ggKhy&K*45kV1z{V05z6k#|iSC
z5cas2<*85 at 5PNpxhJ1$=_p&SNhwtPGXP_ySgK4yXd%Qqw<56}$cUb_Y$Mn%$Y9+v@
zmKtBTBSl#4tiyBZn-mDE)0ryC;MN`JL}}QtBCw?<@!mbmt3!Z7HW|@gqZ4}2L@;DP
zgrr|NGq`t$nak_ND#S1QN{fN3GoSjyn5EMnRnPa$$0JCixMsV}>*=W5xEK%bTpY(|
zhC;8)oi<1uifH140-n0+7DHm1X(@0R`8OY6h7?*QIZ|3enI*Tjyts>H7c#*2PG?n-
z-i5W8SYPzC3gA+T>`s3pb{c2VSpZX5<ep!Ps_Q-8bsiZ;hmvcKZ1XUXfa-3hvC)la
z0zK8#a0~x_HS$)$-}K}WO=^<?QIEEt%j6B8PdeUNC@?Ku2#Nm`Hl{2a=>W=V0gEjU
zro4Aa`U|v|02<j|I}kw>0{}&j1Ht)_4tLC(Y28F;IQQ=sgP)G#9_z~zi5PlyWF9?$
zWz{gnL}OQ_PN8bB34TPA5y&J&d*Vy1F{h at S!y2aC{Ec-P`nTb56qp!)DVn9WZ{$nu
z{i<|xjm*=5VYwMouEBn(m3g8?M?e`laDHjjLwhmarc~sTT7;rQR!_uc&MAQC>K!@e
z=?8??K?nh<r;bpwhJ&tI{5P)MK$3I<WbT7i6f_FaOh7$^4^=_O9S9K`l~D8YJ<%V6
zx$%d#+wP^~-8$p|abJzQD8iZ7uj>dnkyCLSfQQMPl~Cbs5KbN8U<1wwG`=R-prPld
z56ig|v1ptaW}CEPluPPv38>mFOJ63m`gnHeZMgtLbn}Aoz?3&Xc-sg;(<vZ!#-2iH
z#{ajckSy*e76_9$svT-|HpM!S$*>)gY`ct$e9(KH1?7xJ4Q$=c3{()Kz5{g%m at k7_
z<)EPzXmnBruus{*Ux&H=!ftG@!Gs0(E`Ouwp at UD%7tkA?fbR{&H!U;rN58hp&bhh4
zOIZXSgYy=@zIJJ^8nnL0i-_F)%<bo8pT98_1W<o5qgf3vqOfePkO%P8SHXCE*kF?|
zO_A?JP|z$YFPKQXLaLheKnO{!2Uv_ug#;BN0Mh{zxnm<+MD{%QMs3%Kzhd-;gYtJc
z)rPeE`x;IW3KQ7J*mS4y<W{YgjIC-CJbrOKL4ApnAWf03Nb_6}ud?2WhZ99X>v66`
zCAj`x<hUDgF&D at 3ra;Vl0as9X>y{WYwj$RAX}@ZCrB&=pb4XEly#J*?io?DJmLzA{
z%`UBh6(8*cZ-}0hvXsxZS8B!a*puo0+--F91MvRF89a@?W#c at _S`|~ypmk6_dZlLi
ziT`|6+{9Yk#_P at NGoW3wDh<?81!b;Y+P86MIX+Kpu;3`ZQ<GY4A!3Ln6B!f}8kx+R
z;Zj7q)2x}rD2b9%$Eb(wm;`dRQPM8|i3z&XHrFF%82<av`{VnyvGend9-j*q5Fobu
zYAtw$vkmf=HotNmnz{u``%zOJwn*Nb)f?aH_mfd%-wUTx^nJx^rFZjpV+PPCh>S4t
z!3^Wk9<ggEZ|+Qo%g&Yd;gWN~s8X_2N>($+^(LeGg&xLl$N&U4mxH2h2d?w(c2~iJ
zX7NBChw%<qpo<cnrh_s9_m=YvEPm2?ETY1`Pqd$E2G)s at JMXfoMED7A){g*m-Z=)&
z6YDI27_xJZYInL7d62}A;!vs~K0j}AM#izQmRS`Gh63R*q(I1ELZ at n6x(x1vRp2*k
zoor<emwQzgmO&%%Vi<~;2cmZx7VWwlI at 6w2M=&+}Q_>CgK4B%HuX at RNcVj%n_w_*$
zNsKNGPd8Fhl4>mg{f#|gD+0gmby14FT=V+5<O>E`79t<6JWC!z4l>Ltg|X-nMBK)e
zT;!t at s38=I%NtuxiF at CV)PF}cj!ts8*X$GM&<0qe07x_33LIKe^kc;%T^}POBJy6=
z!iR(FumKa2sV!l5xW1`k2Bu-aYd=`_M^%;$r9cbr>cm0o{hAMbwS52iby1mAx90K7
z1|%%Kc3U)}X$q1<m`RJSrL6MTC#8d1;Gt0!l}X5-$}Xbr_#?z)lA1Au35v?Bg^d(F
z90jm&e6)+{!KL>f6&eNRQ~zezDuWb4HP!HZf8Nt(Xx65SjncbB8P(`Zumfk(h7D4q
zVUPMer#SDX+-iu<Zbp~@>swf*4E70UITYDq#h^&0Vdm}>+s_bqJ4qVsbF%{H-vjO5
zV at r`Yf78?ZsZVqw$8d>D6W&mGpZ%hHAULlQr>F=+mwq68D at u;!-NyF%?5HbO^lK3{
z!i5`uDvpr87`l#`pM?8iuIQQ#`Ko^1v7nIli}atuK&5a21!4U_{kiRPSDJ#2VK8Eh
z);9NH?=iFeoPE^92*YB8T}kYu?|F~T+XUUv)=F(85=2QgO>J$)X)h}QYgY%?<n)7r
zN}VGp+5(e?C=i^I#caA-o|%0X+wToI2!VMp(*;8c>ww%pB5!`aMef+f)RLu at 60I`p
zN&gTV>9$&Fj`&b+xp`m{e_6t9TrKQ%u;@L_$Z%YvQMRa>t3|0cnyu}`te9D@#j<a2
z$VaUXqZEHDPTjpio~g<B$^2fPY;7&EwawcMYB085p5*7wGtpZ&qZ~Jp#{5ljLIGG4
zCdE at 0>N7?H2L6Smw<G}lYb}677d0ms3wf~&vi1&#FhqrhsPnf`3lnkVsGbuOk+dcu
zf^qS0d|;~IDKTgi1h++nTS<r2)8Ej!`Wk0#ch%jZ4x_5;sM(XQ71gQ|QF4Z;^Z}3z
zR1#XT0CkPihmBvuEurP0AXdFgWA4;68$@erz!$ceJZwoSoToM84oD|g;>*j>1?&XT
zpRR1;RVmg8TBOqeNASw*zQ%>_l<!%Y?SASnF|{&++3ICa;L*+mGZv3DI2&AN&d0nB
zCDV?j`;a4lsGIv^=AEtsm^G<7o0IaIy3uBBXO*5%@-PuFL7UyOXUE4v-%XCSp%BNn
zLAqzEW{LTc2pOncIan<>65xRpMU!j`?a}*Rz!Zs{UX}{&jPXDO>Tg~3b^v$!H>ySL
zZ#u7?W^6v8N#KfOEt743LJf3h_!*Yen$vpcWw*NVJDVX2ay5@;_|~8c^BTs2px$vR
z0kLg4CN3_~IO~^Jj$A at a#Zd99dNqwY6JNT5px|taBO*E2T{)8{wGCXio>ajcnU+y{
zt-<Ie896Z<DTfXatmu=y0Jy at bP0GMyGyc>yLM}3A^oCRRr4|m(8m^Q9>D~E6sjo*a
zAhCN3Ro3iaSJ!$>?iDRnLI-tVriM$9vL&iTE+49T=Fd=0(Sjv;=XLCuY(aa`l#xKN
zuM)nj-Q;5l4Du=~#Ksc^Bx6W!Fzvi4GWCSyeA*KMii(0?l9dUz959x{+E9syqogru
zHn)ikZ%8OwUXuBZlVrzwRK`>)&pB#mt;*P%f$uyZe#<DVbBL9U<v??mCNY+mq{i^g
z=hYxi0o+7IOYd&>P3!wlg|z1cT)X9+U(iOrP_C-$Haoh}$}j_R4O&6ngrb-WZPep7
zC8DC*(7`_i%QP5bA9~x-s2R==f3>w8k7PuDoh=Ia3ZerycZW(;;YEWx+hV1lLKCzh
z#m8XN&OOiGi^6biXk}&H6F`Ux^#|m&*Nr6#qi~>UXEU2y)Y~NJ7hcBEwIg3qy3X8V
zokOam_8OG_W@{6`oh3`j5|NZ_p;)4@=Cd69>+rqzcLtaHS?4aQ$M^Gf&3I(?Z#Y68
zuis~KFsK+B=8FA7c~dw-7o1<Jj$Rd9Odh#e+qI5tHJLjbesoYVcQ2Rg(B9v0<B>Sr
zXxv;5SC1GSqY;HKL#<Uq0)s-l at aDhaE6Jiuax963xAK+BZyI<<R`<uWs{2zhe$N6s
z)8ssobd0jj_oaCy)H>|~O+E$AcV*`Y!@PdqEs}c>yq}g@(b_9GWErJ;-&(<BPbX2N
zGLGJ2Q!IHhE(#V=FiDnXvk?~*jAumyVAC at ynms8}*eBrEoxK)%y)B#d_?XN`0Of?Y
z$-*vh$DivDH{t0nv=qy+jCj8HQ;J)t#v$+vusPfimhe#}ZworX$w=E(sp?39!W1mg
z0n4yg_Jfs+rz-EX)|#6cneL#THiNZ7-7m=A?T)?e at Eh%&P;Rzu=f~Mnw`L#9_#T?1
zvmFQCcfC at 7`=2Fsgsm>%M0Q**M+ax at m8R5l`1C}3*F`1k4p at V9-83nMuAseh(|20b
zsMfeKJfgp4U#j?*Xn-B5gtfp{rREJORCbbC-TP^|7QIF854!_e0p)%V>#Dh{l)Tdx
z-EA`R(N?(G(lgb{y&t`6HBlGPJjmW}mQWm5AFXuC`aIZU5<aU%7!4ny9N2e~R7Rf?
z3P8@~g;gPvG2Pzz9qBd3$!<Ih+X$9bb6~G>+VlJAQHQbG1!I<!f-(nb;j#3)zYdNV
zg1Euqc&RLlQlo?(^zhTN<SvlTn3vA$iu7NPKU=@1E&HNA^Pq+$QfQKoThudHGUWCz
zN6Of?<){w}1`gE9BINGk3Z!N1U0$^GLijHjt6=#7`qa}sk2v%LCryhQOhEcuj}`(M
zI46=jW?bvV$n;<YV3(Xx at iUP~0-c9SK=3eRIzCWJdrF9zethkyUu~j|4kMyyDSP>h
zvIb-^YoO1JT~q}xq^MsSLFTV83Sa-`mDr;f>}%Cy=MfNKsm2t!i#Aljoek|46DjB@
z;}fw85%kRXJBsx}d}WU|720EGnm~AphttNQ1gUXu5*QzE9yig7y`OO>C%SFE^D3!6
zNwo~__fJR%5g5vS^kCJ7MF?=TA?OGFu_F)eG8nR(c1C!T8M7_dr0_d5kgmRA8+{Xm
zXtIc;cVEL~-1Dh^{l=U-fnCN{?GH#Hp>ROz$IL4bbA0N>p=8JEZJ3<G^B4u1|DVUG
zoaET+-;#o_f?w$G*0-;oiXuNi?h)Z9`9n1B#toZ9-N~d)sDWf)bz%FE0dC2Q{)QmF
z at e#Evb)kv*Y%Dp=eekFWF{O1Y2kq94n^;8F$<XW*rg%i8z%IQE(!JryuJOK8OaU%j
zeKeV at m_wNd%rSK=KBG}R`RgN{AaKsT at 2DfcJ*DtZI0m&$+4}Y%?R~%02};1K)dmM}
z>27ss+S)X(i|sQ5St6C>^YthYpy3?M-k4xa^UZQav_TaP>-5+Y33akzgin{ooTAlu
z{G{Y}38618dO@%hME6Siz7kF<V=^mcEG!#JoczTnTy-YXY7Jyk2=But6XnX8@`-T+
za~Xh2a}=zk-}I372`PBkYUYjU*D|HMBxULnDQhGBGfdm~9}~9tU}mic?D7Z>ICR8B
zI<pK22!;FjCM1>&Lt2~$908pZmz&Bjbuu;H^c4xO4H*Opo&Gv{>=g+2D1r`?oi1C@
zTgc$nCnFbZZBsG at h3=R&jxrdzZV19>y);#Cmo&t(?A at 1mej1zZ{d&zX7k~1nOuv0u
zk7WJ)22Rhz at z|tt>mlac$EmiVf1AY?0{_J?ZBE;lkK6x%Eoa|%SID{=p at 7cNUKces
z4AW)kf<((Haqf#?IbOS{(}sA3A<Lc|pgE++(hi|j3ZmU}m%ZNVaNx7bGfd5G0ntGz
z)&Ck#uL61{Ev<F9gR<>o3+ZJ*ZH=Be8=hfWpvUTn>;=-A4@&cB(w>q4!Bk(rU=LxJ
z!(E782pyggqNS4)T7E!}V+MLu;?$)S!@8K1o^(66AH;ppiP6iT<Izh4hHl!b@>jME
zi(cWzy%tvzL|lsV(C((B at 8m5%b@%>bK^yV1 at MoL&RL;0<a!R~A!REd2(j;~Fr&T5C
z{j&U&`tdFWWS}pRLE32P_<~mN%T83#`p=ZrI0biD*a?KPc(R&lSVq8dLiW at -z@(v8
ztUS7T%71U&FcY-pmc)xG7TQ)@O0~CYM+Y}rwTQd7s*+NxJ}6W20)_O*_Q?-j3s<Iq
zcv}rpNS}g~KkMqXH|G7)^fP6`p(CH~!juBSS2EL;gmcOUJQ)nNWnd`U33y!w1R at Gz
zHpdJ<0SzQU*+PYN3kCqWz#91abH5k=TLKB*ywr}y2Y9vRN6WS?sU}nami*LA$dR=&
zd2#E=$IO|X!Ko at R#w=C_dDw1nN$PpOnM>l12lGyuhaQv!XD=eypHOH0ngcaIFV$dn
zhBMGT8DQU{xDwKC4SjNv{cAw7fO$I$F()nmKs0?5eLy7N0hJXKea-hx`J){pBrhF!
z-1pC3r#tUf7$;bvb at qOHj@eYi{?j|>zF at G=N)m3`JW2xHvivhsx=tzCcuG2x4|<=7
zn}2Em6i5EFV}PX(l}uimC<yF5=62W#B#Y4~xGg67QAK0Fc;^{{GD15yZw%QJsf#;9
zgg30B?{78kh=?-yz);3#sJ|qthm2DPS{(H~p04)1SvWd#%MF%X7yDi{>DIoFnKN5m
zJz2IpKD+0EpiNyz8Lw-Mk~x(0I_cNCe;i%yJ39cv%c0eSPme{@u`fJcGsDxZnp<}A
zj&i at -v4Co|jNzrzBa~d0E3ww*H;0QEAJa=ypVefAMI`YCCljaPUg-3`EvT)pj&v>`
zWgjxdKa at GPx}L)TheB!M#Molix?4365Pa at 4!|*JyE7O4!oRPW~qB_P+PzH@=1w6_r
z!#;TKFV$>7fW{JrIR9bX7>hel8>(<v&$Y!cU<cZWbdRV;#ia6DLNxpESbd`wT>T=?
z;sc{Wzsbl3bp+ at _b&ZLFlm*>7PMo at qsH1<&>8`oun;T5>4OA9hdFiSe!#RP}FZNDk
zkzrN=w)i#TeaA5}E9*FzO(ea+8KIW`;&6_r4i&JP!{z(RvxR#a=Qzu at c3QBBGy$_O
zqaT;4+l7-?kxWUM&h}KO1|3`}ZR9thgc5Bv$qk*P3Z!FBy#YCry~dRdhrsp%4Qc!Q
zSO8`e;$xYr at ZJOKClRXmMX;cMA<>oeyD{n>COqe9-P2Wp5QFTtvMTmH_hw2X{c&#X
z5%>P^hH6DRQP(H1I8Eww8+k0cgSy?33+J`FK_wvFLoR>_XA>(1lO(DVOWlb$r9ZjQ
zKmu$G^N+Dv0&&Cm=w+r%S=;oDa;!7_W`TyOi(6LjpB^?6;sdZ~PqY4}$&FVC6;M(h
zwx)Gc>NkX>iDDOR*|a7j`Ow%uXKVFqgp-_#>GcsH>NZryd$<vNvKr+*kqxtEUkR_N
z0DSXG(hydH(#-t7_)C8jP94 at Z&p=kWu&m*F4wxtNGNUPF`45Wc5oG5|{mwa;na!vo
z@`~*6Q1r=tpRFQ$=ylE-6>+5<g%DZ8!W9%6=hJJ4 at gIo38Z{gz at tW}K6jYj({zSE#
z&EpMc6396ci2htV#*W>mQy0_?@>K#d2(rF$IXnW>u7(Ve5$}9y5<x2;-b_|izBVeA
z9Cc!%N2reVuv&L0pkC4!IFI at 6R|vZ}Z1~pH=4I!`f!XHm2XjU)m^MB6z&BXsP9sCC
zCp*FdM7Q$!mW}_~eK>}Ti&m+`AGGWG!+c2eL^?YR6;$NQ4w$|YMae7VkyQ4QdV at tN
zhrgElDYdmw$aP6{3O9q^IGySJrTZdqfDw>0{Nxm!@ew)!Je>#*4|&kI<@a}2gcm$1
zu|jbxs_wa|@BUN^z&!odb7ArvBkW63s%=W9QB5Ujt_#ChkMTRHSsaiaZ_txMewA(e
zZrp9{Fs4(v$@P~c%~$6!GrfY=D)G1)5xF5n4QQV{SweX1J2@`z)y(Lnc8HA3<md+?
zl9#`;75%aU8bJm12yrr3<0UU0G<K^i#8<hjZkgQ4j<L?jrMG$)Frieh8$IwZ)`2>3
zs(kGoo<a7DbVQan`o;1zLvyEH8}vdtJj<N8M|W6$w#LANoFTFo98t5;=(2z7>R$Bi
z_Sjciumuq5F;%$0^Rpa7YqoDbNzGqqJqrZ%oEk_|ov%aQMizfko<Pc6_x?agn|67f
z-t at G7sWn3Q&w(_qWW5hYCCN<=2|Gu8XnU at D1?s}Gem^}*AN8tuHT1w-*@f=+4CGVb
zlv&tc`cUx|S^?ONMZVb6Bnary*}2Z_b$R^m=X2s^+biba^6JK9b6+3C<_xucEbmeB
zN2KEEeb*1!r5xpDacai|SyvKpv647=fF2?*J4P4(y?|g5FbKl0FRnPWAg&Xd(W3&|
zlSmR43L0Hym+_j=8NlnY*F|W0l+v%dMDuxDUjJ6j5(ht!vEC*Z(QctmJKrILhpkvH
zZZPRjeC$viStqDlKF{p&#H;VL)ac6OW-r;CdJ6J>hFX-p6sWLjhORx{#xOFMU-<fE
z3x~ghjXVuxASd$DC-PUhbwpvjtO8G^2fezy)J@(lG8WtxR)6R&y}}{cHl}5mBiHas
zf6iQWu-Ki{vK1xi8(tS7uob#_7otR#0qJ57L~StHt=~ttUW{{+sA`)=@@D=M^>7H9
zqCb0sc(zn5Jqrq=kWTK<A*pj8fD|g0TlCR!od2r<77 at _D$)g%;-~r?}9hr{SOCp*x
zm9itFI#X9G>i&@hEKqTN-SySTd~8$MnRSlZb7r4dB-e3oM<Oxxy>>gTilCS>AgnHU
zY2#sew;xT?tSTflCw>8OIrWG`xUFR9sM$RzK5^hC<(8Eqind>L6xDe;gY9N|rVIyF
zvl*;*Jxu?3H2wBU?k!=V;SaNpmCX^VP2TFpEIl$)^ztNn3TQ&szH?isJJ&QrNNSxd
zF=y0W2K=V9bBd&BU{+Fwpl4L1z)eUw&4W$S>SmOBIW)sYb{vNb8v{_yN)E<^4xs42
zl+Q0`#ug$q*CAKmNjM*Uo|mFbPN}+e2%+|%tV_v}R<3&0=)$emiPq7!LHJZV&<>va
z&-co*-Ld>_Z0kNC^A>2SJJ8J2CNd|G<P$|?<KhwgNIRiX4T9!!s=-hhw5|({8nlit
zr&wX;vKl4we>?qcmJR?;>Nvop$8?VkkkHYWl!oOe&L#d1KeU4P3n~O2rCdNv!99CL
ze$gb)0Pq-Vo>nT<Avn=#V%IcU at mw_0pSr%YSTB{6b-kWnEJ3dbWtL^K-xnWkgE_5B
zoCJ~J!U_LUcg-Q|dfR=%il^Fzqps7%Kiq0`(?v~7MVC1)$6KP>Oz1C&RZE+nnEqh+
zl&utCvM1!z4Shdkk!ACd9QDNC8+HKkV;yuq3~J)#LFb$Zre_v9Kx>xb_du&ZLD70!
zw>HU}dUY~}>rUII!?e2L<Nj%RLq2g^NZ%4+4mxec8R`fZA<Wo5ZOuu{f&W=4&Y5=b
z?=8-O|4Ppt6t(d!t+_mDN3~39ZEeJr3yt4^`dOizR|oc2Q6>v|vHUu`43SFvql0dp
z3TQ_xt|%R;07_kP=)_UWoiB1GAWr)F9&9U^n>Raa^H at LHj$4!M=)}CUth6~{l+Vc`
z(m_1oU7TZ#xYr`g6T{)Hj)Xz- at AQymgi5(j#*5(ANq_HeF-(Y=&Lr>i{q1MNrT-JI
z8FPuiAiLLXP=|Y7QU5k)q`~E2tE|OuaQxQS{d0g?$n>2{q&L at laCnx){jLvPYN1w~
ziE#6+bMFlQb|PczAy!AvOT4M4Jb91$um}C{J<Q(PuG4m{{d73p(~~2g*g-Yhv``Dq
zCGtL~f1dI-h~HyvXRX{ymlC1!fwEslp>RwU8 at ZH?$2J$HVv?;YA&*BnECES at atFqY
zP at K+_5!5Z)=yAb4&#|EQ!#||PpL{cYAY%{iK6L*ZXNKg-<v{@1?h2Hz$+sNN9oDTd
zqu&KlTnQli-Hrf3)DLjrm2xj#(5Gj6anktmcH;b6`PQI8|10_U?xG|@ZFkP_ssH3^
zMWKQX{k4qS*Hb($Dw9`Q6(~;ds&1W)yTZYYrxxf;>bKm-<r$d;C&dB|7=Z--kq!=p
zK^lv699qNy`W}tjakb(2+CX1s#O?jqkmj}LX at SBHj4hjeIlrilbRTrAr1g~5{lf>@
zFCxyf4G5TBqqOwk9-L-J8jH=PE)v%EL$C$Vrlc}FF_yYiR5aL$$(m&9J3 at uf0VB^S
zpq0nY5t($gt3?!nY)RJU!>-Ba?y6c~k78=n%mqxHsDk}L&{&v&-+rDc`+jQ`Y;`|L
zs#4Q$V&l!$^Nz*Spq{Y)ca>%|c)njjcM4<OwARAJY_MPJnUz;UFSBWC;;;Hs at cS;)
zGxtaqQ9P;<!`Y4XgV;j3!(JaEqbby&;|6b1liC3}QYc9Lm{$=N`@8A4ax8X+i!hrH
zfLTOV at +INH;%Kd at p>6w}l^OlI_xnkkuif{yA7WB9${bcBjuD*Mp$_ALVzjLL<RM1&
z7xgg8j&~Hol%BK8TK3V3Ue%5{-=y~Ql&N#A{vWNK$5x~UThx#mNI(^BVfR%mRMC%k
zY=kw3T`cYK7k^P}gxNJVw at oeef&loVbg?A?sFt<P@}P{0U at WKzR<$JYIP!Aesb(ZH
zmR5y7ci8o;{hYli8nxY*nfYeL&ZW|)o=e$Z^}y at LckNtJ{dV8!755vlcLD*IWixK-
zu<lbsTC&Rqtrtkf0nn5jdg0T4SZU-fcD1y0vsobPH9_V~&vR2lCZgDi_qJF{oy)@v
zx(A?wi5q@@e!trn1UFWMod)j{ru6&?_scF{(eL}{Y|#ZJk<uzQ-rGKI1fKdxoIGVW
ziRl5#PD?i_d?cU1H=VtDs1SeR2h3O2L+CE4mzsCCdt>+uwMX>V(5EhJMc}O>f6$iG
zkEe;Q*|gc4r- at lv@R?_ng(-t`7-}AH=@dfbDkk)(2~QD+xD}6 at eAHQhIRC2v|9wA1
z1aJH6ZeT$$L^wQ-&ZGgc-5SJuV{kMAP5_D%?Hh>8{svHQ#{tt4f;q~-k9b5Wi}<5u
zhE>Qx|1LFgT>{Ly_2$^oLA at tc>3~>kU%~-Ox2ApTuMO=o`8uz?P*qcf5{cJPNsn2*
zQ_*XVR*c)e%+v`a3^G1gaNqy{<r7!FUe{F+AC&jsB;UJyx_pF*%8jn^+bQfH3wq~-
ziclt%g!&<JXw}3isYgSC;SNKY1~3YH<Ly;F7@>G_dABUlQL##zwO4z)3kRZea{U-m
zaSNUwmPF1kP~ULBT;aH+ehz_nPzN}kU47o!+)I;{F{eD?RIqTWC_QfS25U_ at xZ(_y
zWquYt<T<p%T*zV2eh*kb3|Dch53jEZ#ndMVpQwH3D){~}7`m){7MN;bH52z at iwV=z
zy(E|Trdth-2E{jJRge8tWd_++Jc9aJjD0eJ%wmfO#jegr(D%UF+UFwMDcLLWAr+qO
z+=<xQ+L<=;gBFTldwc&zU4NXXzM2lsH0$L&$!)yI6?$zo{P-=rl^v$XDXzs{bcZMh
z?g8V>vY^pqyxsc1ArhN*Nz at w8n_}%+GganLgNPx%Qu=E&le5(Wr>2iPW0^7}z{pNA
zF?8qD*5NR(ohq~>NSjY6MXd%O4b{6ICraX+mne^{YJD<$cb?`<IU4pZqO{{Ea;uls
zE`3byX3Y9igW;F%*Os9#YzuRx-(#}h;ZfQg)8Dp&$65#j_jRz&n?av0=sT at KpeEXa
zyUF)^BR2c(?q1uQxzf+ME!)#Kqrh@~elNd?2DnQY`g-iRjQf>n8OUC9C=IQG&(sJ<
zJaR$OO4pgW1tG(70Y1W1*24WlGjk%}Bx64nBQmg#P_4qqaWzp#N+{g~E3WpQv+LTf
zhen)e6Y%Tj6R*$HoYGQnFRu+IB?3~@&Ksy-K39P;*~vrz8NVGd$*93Z*$V`=t*x`^
zvEqdHK;Q4}82mabu2mO#cQGmOlJ{%jK)gKtM{|j1ncSxI*7n%Rq)8{MhkZ$W>)!#D
zKr$8ykUEDHie5U<JWiQf1o3wwI3R*H!#%x~O<B4z+gJFtS5B`VPaaO56r)Rpdiv9K
zdF4->IDDvIOvqMKC$8=g+)m;MUTGv_pk19^-<}wHkKCPBX-Viq3HBtR at 1LCb-KXdb
z(t4XD(wJLY-XqYhxH&H+W6>rxpqo75?7%IRrC!G-)$`Pu-shO2MnslmE5m)=>~6y-
zDj4twkX<%nL16Z4!58S{Nzp6(uO at efYmFQB{`b!tX;4#?t;U+(-dac|-INOpJ7^ZT
zr(-5w;98)zU%WsQt;QR>H`Tj{C0YX*r5A8qEYEWXlf6tKiGT;&A at WVS3Lz3Ux+<&N
zhefm-U?DA_j_kLBa*6})O`}j;UfM<IZ`X_Ex5J3bRLrrf+=$p1o+zs)^$NW`M82_*
z@}2GmX5i(;bAghXs)#VX{soL at uZV-e;vRD86>|G_z^9&QPfNw|aq_i9Yb)6qV9@>a
zBmu#%qeOa+d#WN*E-^^HG;?HUker;$@n<%n$J1g|13C6Rnw!`_mc+HoB(63ReX&Z=
zmoA_T+|R?JahZgxkUn^a0hy}q+O(XUg~i3{Ov!l~-$+P7z3^0A(Ks6)q+88c_6+DZ
zVlGxJt_?$8HN#Z3r;qx^>})Dwb$l7q?P6*?F`Dq8f;L at kykSiH>e<i+!RXj!0V2sS
zga)P!wqK3~!a^b(C at fd#^dNdUWhc(aJL?t-Xt57>G4G>vC79)m(l%-?e#o|3Ax&m~
z6dT*3a!FI?PCIlxSvb0lF}~R(I=tCQ_17FtnrOP1uY0D5AsqMzyM0CgvUY9RjtDk5
zocUa{4kwMK?yv~<)?3|2vtpwZ6QJ7g{SRdBVs2d!t#EB<XZwFA|Gvs%L=)+fT#%~B
z$#INL1l;<h$^%7cc;0@#LAcjlVCghm4MsK~d%Psc+x6e<v+pe7`?;5wJ^gCT_HdcV
zV1D`8rg=e0{vf1Xu}!T4B+i$+Xh6pR(M&+#am;MrA0~NgQalc}&h^x~cHw)x=zi{X
zeCYc)PW&Z*M6UTGd{fx(KIQsrd`h?@ET)#rHUw=37_So19aMBK0v=V<GiB8odGI!G
zH*dYXm$@0R#nKp!dxmE;=PN<jf8>1!4N13MZ(a1=+5L*P*y|~xN9v9cTfhi;F3w)3
zASUUsCbp3G;M*O)t}H^$v^<?CdE}m0jPOqM8-HD9(}6!Bg<x2)#3PkJXS4oUj*}VJ
z6lj6?)~o$BAXmpr2w&d|B+n+#qo)Xzy$$__48bKaRgq6FxejyN{W#|PJ%jo65cA)k
zGJO#Mv#7tE5BhApl3zJE8Cs6I#`)RYhL^FVk9t?``Kf at paUfE4KodDlc1chll?L3F
z{c0A4$8ULg`Vn&1k+TJvQx?t`oR=FdubW`v_eSruYb?eu7k7a_gU>fi9wU^>SncAm
z5S6IlWC>6JOk0_qhJ`Zye(RS5AelRM3d6|a%#|FDhU*k{H`Ey~p73~uAC(RlG(^gj
zgvdl!Fn^9l>y^>L1zv0Q7pm9U&XO)4U>CoWikzYkv4+3B&wZyr*0mkcn&?f?#q(MD
zIo4>Uros45N?!zQ@<F6&9=L2OL7c+$5pbaf!?V!)1Wrc6+7hnehj0(#Y;4%$Vue<v
z5LK8E!kAQ|P9{_j=&HK8DMUTko~3LIT<X&kS4H0}e|J<ct4HZx-Ut{EyCTi!zvrH#
zmZLg~zP$!_G%zbi?dl_))YT`In<StJE`o}C>8|AI>I(yyFxof|C+L!JTVM0{M>av`
z6t84f)(+ at 0c>;QlZBps<;QD6iPIRw|R4r{(nl>+JL2q5vH*;&5FEmvSB2xr+<2cXf
zhory{)M_Sv0V72>AA=vmnGrs6x_3{To*MC6hkI8LBREgR!jHr at d9K~DVk?!<`uYUi
zbg3#ec$kN3r#mNY`7Pk+rCy@|>h{$#+e-$_KQe`n=XxKZ{Q5_|(}a)L+19VH1LKl{
zq&#u?M3`sDB1^QQm~cOsJKec}uiAsE_5U<wl|oR9Qgga*3yY=LV4Fcw%}yz*4w4rz
zu)=#nvduCVL&NqX6FjS)9yqT2PXPHH2I5Cog at 7$vIb$@o*zb=_lXDxdg}87y+i1o`
zt04}3W3*<-R|)C)4b`J&dT%Li{WOS+gmc-IGtiBSijk;H*LMdZEX!a&`Z2`$Xw=sO
zF$__ at iQl6eX)3FF^{*=`!lHs%w4oHY8w$a8j|Hep at oX1jlWefevkY2RS~gj}YWbGs
zVapFKKebf1`=5RK#G^+Jeq-ltH?Ldu`Kx+6TQbu_l`gBrK^=Cy<b<Mze4#O(h}LU_
z!JUTc8wg8F#DU0^aIS&I)HjeXf<Qkvl=7%FqTYyTAp0R3pj;@m9?GQ=^<E<a%1Dq`
zB4#1^xLF3Qx#fizH7gB4M60fcstw at Od=VDSfWAI!Kp#ObiU^69Av;3$%l^!<S6gkZ
zA_v#mSih2CW((}qoJg(=Udb at uv9VF!_8nxiMw#)K1SX0xdymLPS>YZAKTk?}f?USy
zNO6yoN8HD;5d`Uwi)3ad{uMLd0oDXZIgu1+MK2oFFgBLn^t%8GR+!D&@G{oc%Iu?{
zAp=Ziz^no;b%-<ThAS!+NZ{kXi%hWLYGt`%VbC)Chf;H)OzULPcJwXIY&zt=8e7rT
zSY(T3{0*W7n{acCQMb|j2tu<a!J at V>;DxVee$NcSir- at SoaIK#9>TMJW%CUy2D@@`
zzX&{Qp&^>4!UZ{A+N;qsxj2=|Pl-sQry<wSMhGs*<|HP{(R8AGE99~@4cQ<vB$Na(
zx{^QR0}UCkr=h+<qJD#1A{R9dQ6cB3WMMWVNaG at AZYtssH7wu<&jBzFHz&D57{u&;
zp5g6`U{@Hv-^QcOYJJtbzrR96(^y;5>&ae|<oPRD#9-Wu{Pk*6uZ-=h1jZ_fT30QP
zr(wa0-{(Az at Mx#Vp&%Aqp^BPp1tY8wk=_$*tzNjRh35xsyff^sTbZ*l)r^Sn-asL^
z;P1Pwz^k at cZSI7UT~#kwn>b*X+K?wI#i!Y at 9S@VET7(&4mTd-%L35o^CHJ=rMFt^3
zsd1%y16E;~6+#nl2Mbk~eJQ~TcvxiZ{)*Vr47 at 7p8yMC$r;)d{u$)7+X<kNHMx+Si
zJ1A@&)!iB13P2}oW79OJ$WdLkA|c}haC(RYsxfWI#D6DY9<0ol`v|Nwj)B0f<L8ep
zMb#)czMVS2Fmw~<mARVn?bNQ%Y^}***UUEDvADfm*T>czUxKO+i^9ZG>i2U$@9<14
zrS at WczhRm;&;4DBPnG<6X2hyI4tgeP`FWaQ;{eS>ndywVz?61 at e+c?3p|W!|RU~&)
z(-FNQsh9!*g8w$d-w5EFl-Y>)$2`k?^4*2YI_I{x71HrZ8O{dt!5eL?G0u-Fy1~sM
zUG0H*a%VF1jPgYBQ!~g2mp%z#g?t{!cj^?nlb)$ZF6Z>%)~(DEedSi#nB9h_^ZS$b
zJPFO+x>XOh&!1m*fG9dUe?AI!cTb#}KOb)|zDBP4TgCT?O>n-E&9DPq{5uogcK4PW
z*M8yZLF(TUBmOPqd|=bpuVA|QHI{|RM()Ovfq(Lw5#`_0Xe<kBW|%Jv7yZllGAFKb
z|CO_%5T&ju#>ViAJd(|ula6PXdhT{`<1ZLUo#(}FK<O6 at l+M@Wepos;>Z`_CQl#jw
z7I)*54fMbK#2h!Em+9G6_0(l-<rD{%N#AbX)F;z3y=q)^!|c>E<Bg567?ml=(|9 at E
z{fg?#G~lRICXqpGjNt=aDu`J!MZ<n6Uvr10lE`^7XP#q!vHiP6m at cwe7w`US=f{6E
z%DfHyXc*wDup00&<Y;5^Nv0{TIE_KfoHI>E>z}`Q%Y98NZrgv`NDkk(W%H>GXt-#Q
zTCwHqF4s3IpZ~IH8MyqmQ~qzbcAd4DyyH>a!Z=KOMjxSxO|?G7>EJP2Jj4RikDk#@
z-`3)(D+PrfvI5IcHDP`U?IZ-r1xpY4+5o{<7c6~NvKA4ddN@=Y!h!k#Ht*;<^Pv!^
zL|fy%^V2>ke`#CLR~aDpKxMEg7*G1$5;h{LRhpfR;r$x5bF%)lVXjoGGt#~Dy*@RP
za7vi~A+$59>z(L at vVi`3r%RL+UnCWjGSxHN+KRq)WKLfNeceHQ<H}rgwQOUU?tL!%
z%t$e=NW;uHGAAcD`x~z$$bqIR{X`aX&iv#^qyC%5($`sx;N+J`8dE`3JtY}cSJ#4M
z8a#NM<bn%YvnHrrA^=&Zgj2yaLBoH5oKZ=}w~y?-b58vZ92rIP_;TPo2=T~hgvlT$
zvPKeKMQuZ~k)f5+Oh-Yw4ALWI3-AurQsEcO!%KRSA#(o6)mzAd!r3C8U at 8@KyI1d9
z?RJw#PsGMCKwWQHHhT9c3MJcz+R%@UZ-8ON8ELY=zGU0BC6_xk_oE;=sajU4%b57<
zmO<P<``04zAyZsr|HWJVn;n<83=X!u?#M^!aGK|R{shL8qxOVqnL*faNy--pg_Njm
z(^_<##Mg|?%WYp1Ywqdj3OZ%Z=j`g}X^vo3!rOuNH=~skcSNUOhn at PO`r)3=bW-M7
zJD;lU>Rw(~Jf{_zHjJmKf2NH^AGcpjS}WR)wKp}l9mPA^pX?yUi4M~^VZ#0l6T!cy
zvru@<rx<$`3A0GgScuE{5HaG^kd7yFkYR(qbS(6A&%kX at pFoy>PV2s%N4LRWUnGzY
zg`Q45jVzBpecMpagF`#F9lK+j#n36^lX!@paZk?92>4_NYv`0G^%jj0a|b)bxXR-3
zU1}hxOgx|j11kC9ArhX9LwkeCApDIOH~m%PUhJa*e3wNg`=qDnUx at C8XmRj)qF$Nk
z!*}V9S6(S9Tz0)elr4rHfBd5}%uf6s)#3OA+Rt=@h=k|}(;Z=CK_wb!X0t4+gIJQ!
zoOvc74XUDy_R6&~>X%jh1xa$Cy#9ispu8%heRApB8oyv1_+985Lfb1nc4F_KhHoD6
z1sF(FAdGl4;Y7g0Yxu=ba9n at md<I3v^ZHUB&ZudJq`Cucp94P-YM144{mtCFC^YVv
zX!6x&R6q9h%Wj{~w5_1`@p+2`;~+fdadO4)6=Ek!voNJfYW=a%eOubw#K_`~{Jznq
z{{HoSefa#oSM>9X2Oa4hx82_{x=-IiV%PW6at|>(m=Kg2By+v8!V2Yv8?$9zlE&$t
zQF1J!p*TYytbop5PqkZnQ_U;%bxi1ay$wAxGE&rFH>dXRpXfwgr#A23Z1z=oJ=H$b
z_qn7~n~k#GuqzDw8dT_^)o6xZO>av!uRzb}Z7Z6SBcztolgjdu5qxt0{#5hC3aIB9
z!{6`_&}ULl$THnB(~=`HRzsQ`3KxJ%t))td!rB#fWxdg&jy}_9bYQmlK(zJK5b+m`
zGCK$;&z~ND<Me4#aWJliRCOc0;-eGyKmXqTC-*ZUz{dxmL(q$Q2D%6jC0iee%ZeIQ
zjVssI_WZm0tK=(W2CRl&-3j;;wInPv2&~hSHL-9&k;`G7v?G+@<4bT-n+8B?fH?jp
z0q=HMRpq#PkX%A4lNx`6iA>y&&l~U=kPRDP#bgTH#FOZZp2LCG)*@~jHfYx3hVc at u
z=GmxWp#MS2c>?_>UyniS^}X&F#}2*n!O?r)Q4vgQ2J3tGy(lZ^?|t;cSMCX at h8^g`
zkB&0qj7-l#ttaO_R{?D$dks9)JCU!+8)9xWlBglyzR;{T8lZMJlEXv9UY-FtI3<d;
zD{@R;iaSD)afe$1(w@)694r#__x1Z6euqOAM6^jz-0lzF5 at T}QKkkd8fS68+zJAt$
zrBLWChxoeGFR<(xbpOOJRY8nPxK{@0?-1&eIfpN<?~nNmTi`F4SAm9*^BO>cB=&Q!
zi*U`Jys1KgTY)(xkGDEF;dhGCBdXjzvbtVz<JVRHghdizT~;~-ES~qPql%BpX@)(=
z;Ge`NR5#J3Gv;tdUAZh%_CTgyE{o5rfz!#SOBW^-RK_1=1~Nc2m5E>CIDHr!%RpcM
z at uPQ`Z{ybitMb67h)-NGr#|E+XSH}Z;^*3iiGxX=xQ@~emXI~C@?=*M4e(q%5pQG2
z)+FfiJay;3XxdeBGQi69Z5wwVy`!Tk9ty>8SwC`1=c>UpJ`rz^Co{vD<=aTGR!T{s
z-rC`T+q!5l9+FtOlw6;hnhc968?2R*$z*7Ri`NHZ$<Vs4cpwnm7wQW|;&J*MBPDc%
zYH=t at g0F|-Qmtep`a>5anzHfz_#~s!FA&XyK1qbDRO$~=lP8>6$l%`ym+HwAUW`W2
zFfw>IBL{v|dRhP7D*_jK>Yb+|0!u6vQt;$EC-oQizWAd4=8G at Btf(VBx7^Y*BCukv
zvlC at xd1L3YWt|%pCEeVNHudG(n+FD(+w*-UFTE4r#^k7HS*ztT!b{Jc-JGwRA+xM$
z=!3qeG|DjV!Gi8pTIjYMGbusC9^<gXTpSgbdsJKzu#oBM%Jc`13 at z^N8tLlpI}+?S
zV^T2^2&7U?sgy2}Yf}oHHNu-AZ_nCx^m3$^<nE1Z=p(Q9$j|h3quOM168?}cKyJzL
zw~Vk!*LE at wL!0JVdIA52E!Ppc_JwPf4K2E&r>nqP36oO%3{hhanBs(YGEA6cA|RCI
zAPn+sG^P3QU at e~S=qWbXQ#$dn*m7osHn?}BHbNhQ>5)jBqmPS+MtY6j7+Jh{Vri-=
znQThEnj}4tyvqnd<47pEKGH`zpbt90ai;iu#t{!VHk4A@*XDK=`)OBhZTnk6+AsJQ
zM*mF2jc~HmO~yBDEbju1^;iOy8giz2wO^%YQx!^$pB(f=sg=dXJwU;ymyHJ8od&%3
z6`?}66hT^Ng3&cuKf%4H0QYdoKNWCq-kj!qw$3k8-4-t~<nJQDcnK9L7(wgD0GmX-
z+j_X#zUFi)mGiM(C1{f?nsXT%o;WcDaP+Wo$9MGyn-}MNk|c-fV+OL8x8_VR=vG_P
zAsU?8GFaKn7ILNb8T~uU(qUOZd^hLMYj4e^NN2mq8Rs5_cU{;-rie*QsZF11NZ#!(
zjY-D9p)Rv!uU~4g at LjzT{f-MpY+{p%KJ`Xx^kttsq?Bj2yiUJqZQ4pb7k<W?e7?G4
zX}jqwa=`rl^^`T}<KMu(=*O^!I_SN;)bgvzL+oP?FsTde#gqoimPvFu^E8t5_w*h5
zdq{ekdLIlisbU1$f~1LihPEvp+A>7TEZXCV-8|r%^o=Xp`g4=Eel6?O_=I8cziUI+
zzzDJUA7hEdpFMwj*X^18_(N*;?`=JypLlr7i!a`P?&&iSO}dA>K=vVDYnV^)2e79;
z88ZYSz at Gx?9^)Ha*-JfZWdf47OhB at hJ&!2CppqeCQRX5~W8?`97v(4YzR9rheA<wm
zrrt)T+)fw8D>C<~9olHy3`>E2- at 7&$ByD1+3U}o&)?CDavZgHE1n5;N+|^D#GY5jf
z2S<(sgGYdaFUzubD$pYjl5FHM32MofKSVu<gvZ=2`-S_sNY8p1;DecSMGlzA4kP1l
zqG!ekzYEJ1#1YP0f3-+^zr?)3^g`(z&<F7eS>#wm at Zak}jE!l-z}88)4#hi>`={uB
z#OPNeCvNWdZ?B}+sy*m)`X5mTx?dmHm*V#lt+?uTe}6Ns++Jldzb!!Qi3#9#g~!sV
zAlZxLYAoan33}WwvAh&Ca$2yL=Xk(U<M?#qVjWKu48kIz{gQ9_7jK$gCm)h$&baA|
z%YD**BWlJ>h^m`TqkcMg%OLzAGt)I1$)sH~HPilLQNyi+gPRv)>Mus^QHx-H)&q4E
zpJ>X)-Msm&M&cpLS_mV~YvcoTS>lvZNDvQifU=MvAEAp9-xOXWo&n at j)Dn)PI68!q
ztp29HOn>V~%LJ*V^Kz|P92Tp!%R5^nVcA8Z{yo>7XVd+)X!s=*$NC%ku>J-{@q7Q;
zJEf?)njEh0OLNTzy?-3~oTGg{WVy}qHOqc7U;l2;&K);@;fj_z7zB=d==4($LK{va
zt_HH2`5~*BpN|&vCmPNCOd(s!=lv`B3RH_m4;k at HJ`M}c*3KS(wQ#Li?eFPqmHFXe
zUZzpvwE~TD3SZ9kW^lf{3AGDdf}<wipm?Qjth#2+Y!Gp$&?!iXraILtbt$fvnGFJ4
z!!>Y%za~~8i}kW&`m`v=)^QE27)VATs-Z$6QTQ^}mke-zH|Gkt*;qcsh621l_NQxw
zU}eu`vkgFIU)EC at q_A~&0U*N!+^%kabxTbiXZq^drk at nyU^^%r0Gn2Vqk}7gtM_MR
z$Bb|dj~lppPOO?9m7I>OlSBy+l?B)!O0M(<Ie#*Q{peU#EgNZya}o2KC0psf1>$u_
zc$N-IkLR?^3VU5L at kfX8^-_5_>!o^ExYxjsQOHNY8gq#}`4kvA-X)tWWHcq=HT;}m
z>BtvcSr?3!hh*P6zWs}*k>_96P0Se3Zmp|H^g;hgRsGp6+}$t(57sMMeg^xqhD29;
zyy>e0`|+I<H{*Z#kFUeO|M=RWLlfUzADY(CsXD`fnQgi3Oq6TDvjlr|7F*aSh4t6a
zjWu3$@X#TXPCN!}av0wmk}+A&ysknR#J{kY{1W6dsotzN>Wwy@#Qb7?&;97W?LWKs
zrI+sA&tx9gk0AEY#K_P~_q{~^EdLLMUECjdoMT{QU|;}Z;fSdg@%%Pl8Mv8W07V!s
zY%7}up?$LczyBY`a*;U=$mL*Q0*L|uSRf580001ZoMT{QU|<gVpT!Wx%F4j-|1Qf#
z2A~KExC8)qw*{zpoMV2$z`!gB#F0R}075faq4JquAn{j1=@(GE0D at Wcp>mN(dO+s(
zLCtJJ5?g at 4jHzgLK{3cYupHEGCTk>jzCcxr3xnN+WEWfxogay?1B5~L!t7=`1;HRT
zOdRAFuzzsqhs&eeiNl>Reef{FrcRInyWf!f!%~JCXK?qx%+5y0v9hAYs|Qe>3o6Y#
z1BhdQxCMv{pjZKjS3~t40;=5u!C-Na*cvD{0fyBVpqvm?O$1cF1wylc{BsXTUqtvD
z>?h>(6N$=)`$G^KCm^?pLhTQNn#}{T7tC%!3R94OUIXzJs9QUs?rMOzm*E414Z;j}
zpnjhLkpr6#Gv_W68-#0tcq;<~0R3-lF#rGn00000Kme!!<N+Q5LIJJ<5CUQXngaj>
zWCOSa90cwKfCah+1_qo4?gu0XWCxN5$_M at kKnRQo<_SOv{tAo=;tMJZf(!r*R1A^~
z=nYT}hz;HjDh^r>_76A at o)91qQV_%uloA*cloJ3GToe2iTotYsViw956c<((z!(x3
zWEi#?1{qixco~=(wi(tM0vawFS{jBLvKrnS3L7>XbQ`i8?i?x{cpSzZ6dht6njO#{
z2p&Klh#t}(93N&MvLFB;Fd$$d0wGW#xFQB3R3e}v@*@x<SR;%htRvhcx+M at LdL_~(
z2qtzW<|j-iY$uE-!YE8A%qcP{oGKD3R4TM8;wum<Fe_LqY%7i{`YbvudMubM$So`_
zh%M4B{w_W)bS|_n1}`!%UN4$2xG&l- at -PlCE-+d!f-yWXo-!sgSTr&;h&0$WP&NuS
zG&WK;gf_f4IybC1A~;+)fH<-^?l}-SKsk0fqB+(&3OZmqt~%B`GCN#5j64=RVm!<}
zU_GEd5I%@Lo<7h%`adu~o<H<J9zae&pg{;h_(Ebri~s-t0RR91(g5 at T4*&oF00062
z000mGa{vGUGz)M50001ZoOO`PYQjJihX3)>i$Ysk=(e*eN@=`cH-aEobklC6xGgcp
zBoZ?+83kXX at 6d<oOY~X#n~bF>O_<DgzBzN|WB^>_8v^<B#F4YW8KayFI7QELk^b3o
ziTq- at j4IwNpU}TsuHXTI<tlFQ!3v^u&S-&8%K}&8(sBV8;?8oB{?T%Y+_PN9t$4M3
zLho6wU?Nh>RosiOfm&^K6of|B26fqPwmNdUm5M4#+*rD66Dpm`zMQMX_;IWpPc8R6
z_Jeio>V3GMC%#T2mB^OU+^dnF_}Vr8Y*#(q1Z`vHa<0`<4sC{9X|?b@<Albnx{b!)
z^DuzI3R`GIys8ie5;fX7=Qf&Xp+lN7LozeZijcrXOygqB9bvYTGVXKC86~tnGh(s>
zkKg5yACm&^k6A?@tsce`((a5X^OAiz?CvmYL`t$uH?y<f-cxLNTAS8z*RD&QbtN%8
zs3CbDyR`+4NAF~}VraW)@crliegNHHgi8Q;oNZMHn=C~Y-Ln(AC+)rfNLC4oK*Q at H
zX8|P#1(h6Xx@)G3>FH{!s^9FAvnU8C83h3qP*8HtQF3^{h+EY&v%7rE_f6HQTUEF3
zJvY?c{9O5K&VB!H%iJ91Q9%_o)ZxKL15LEhMh6R6#5%0U25iJu*c#j52iO+dVSDU=
z9kCO3#t-o${204nSL}w}@e}+Md*El-6MJEA1lR}rViQ7iu^;xw0XPr`;b0tsLva`m
z#}POZN8#r<8pq&R`~ttkaX20);6$8+lW_`8#c4PlzrwF^2F}E9 at LT*2XW?v|gL82n
z&c_9~5EtQMF!T^121g$QBoMd+L!=lXgG7!?p`c+<U^B*8!ZI$y<+uV@;woH?Yj7>D
z!}YiUH{vGz9yj9;_#<w?t at sme!|k{Of5u;MC+@=CxCi&*KHQH7 at K^i|58@&G9S`FX
zJc at tdpZFIZ!{c}Y|HgmtB%Z>5 at jpC`XYeeZ!}E9nFXAP<j92g~Uc>8n18?Fjyp4D8
zF5biY_y8Z`Bm5s9;}d*}&+s|Ez?b+6U*j8WsTP{6cEZy<h=ht#9 at jNzDoQGb4QjD8
zLASw_l4Bi2<65pnW)>orMLeCJ_jxQ#z*197<v?V08f9VpSdOz)ve-9CkTNyk^Cs~u
z7TQ#`VXA3|fRA#sT(d^#dXd`;tx|7b5|Op60h8~{%V8%<cr+~U1fdtDl2+ZO90vN*
zf+-$Xa*<W|GOsgZSd`R at EEU<X>V`y)cvWP5*|x*XTfUS_Wt!#W+|UWB>bP;L*Hhe#
zIX4~B%QGWnW=}R|tMx1LDJx_fvx1sYOed9CMpgQ2;w1_UUoxHrBHP at a3hct~3-UaV
z`wa)iQpHV&_!2R`SnkR(SGlA>lv`rN2D}o<fk%I9R(-5^7A1bfQl7<3Elk0LY)4zI
zXGiZcDM$2S-^~=Zjt$$?hi<EwWkt7>^8PFq-328E$;#42JBWp%7~08qhY2*wa~8QH
zGUr*tZCcbUcP;ejq7$)fKu*~strEI3eu;~GvTv1bDB;8gcV**Rk-NHXt*pqubI+<;
zKh;|FCLiChM&cALt`Qaa+DleVNkdNzO8*H={3m3Yp{c!^#?BfRn=5R$SBGIf8dsud
zOgcAH)e!|Hutz+d6#ah6eaer7%;8=_<t5d!O>36Lek9YB<(jw4b?HcFDs`S#^OP-j
z>@W*wd-aNnRpvHninwMNxmuC^e$7>)&$Qu6=wXAtPSw+6s?sY4t%xfl`hp68(-l3`
zp0>qR<PA4l%c~aE2CN{PHC1iKl^-+G&ouW_(dWHFQmPg`uB&$RdqtXRDs68pGE$(|
zt?fcVSkKc!2jPO7W>Rk?GAmvz=b3zAb;}FFPQtANlg?5fF_F^bI#k$RX;dV$y(9?z
zvcUvljZ6x{)=K?{%~?T*3#)6JY$<z6*l at F@vPN+Y!m1sb(=Hp0>yG}gmNV*$b;ToU
z19ck(YtmSlD5<7W=AMg55N=#Wx2<8akat$g!p4L%(rLLqz>Qrm7m+Cxua0<Dcsdm^
zHDTZOXV(VVC51NilA-pbCp!|Ri%eQe`ce%&Ees#AyhZ6?5~(Aq<ho7-Ph+nnHuTF^
z#d1quBcFRL8rE%3rah|r$P(V1HcgV1&j^v`UKN^iDl?&zdg;p~<8r~9C9+;mpe468
z%g7+CFrk{$<f3@?Q#lSIrXv>fhFciLC&;R4In+~>V9BDxIa4f6DceG7<i<UV`^`sj
z+d4t94UC|-#WFXcFOHkJk^{xH4mM5Q>(*?8?zZeWtu4a3IqT1%dlWK0o}2p?pl$?}
z0001ZoMZ6b!EhodVk0ACU*rbHog54t49Nu>8Cab*GB9XCXbu#5Cj$cmCo+qf!DXWg
zV at F`b28WJ_jm#-78`VI(T^tPzj4Tcv$srLSC6Pd|k%32R2jl<N4J^GInHXFE2h$?B
G0002s37CTb

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/fonts/glyphicons-halflings-regular.eot b/ui/new-ui-samples/fonts/glyphicons-halflings-regular.eot
new file mode 100644
index 0000000000000000000000000000000000000000..b93a4953fff68df523aa7656497ee339d6026d64
GIT binary patch
literal 20127
zcma%hV{j!vx9y2-`@~L8?1^pLwlPU2wr$&<*tR|KBoo`2;LUg6eW-eW-tKDb)vH%`
z^`A!Vd<6hNSRMcX|Cb;E|1qflDggj6Kmr)xA10^t-vIc3*Z+F{r%|K(GyE^?|I{=9
zNq`(c8=wS`0!RZy0g3<xfGPm^&oc(t0WAJyYk&j565#r82r at tgVE(V|{tq<<xco!B
z02==gmw&z10LOnkAb<tH1OWX at JOI9bn*UMykN1D0R{xl80Mq~Cd;ISaOaQKbJU)Q^
zKV{p0n*ZTg{L}i+{3Za_e=Uyx%G?09e;&`jxw-$pR}TDt)(rrNs7n5?o%-LK0RgDo
z0?1<k<naI!SC})WF>{M(8^tv41d}oRU?8#IBFtJy*9zAN5dcxqGlMZGL>GG%R#)4J
zDJ2;)4*E1pyHia%>lMv3X7Q`UoFyoB@|xvh^)kOE3)IL&0(G&i;g08s>c%~pHkN&6
z($7!kyv|A2DsV2mq-5Ku)D#$Kn$CzqD-wm5Q*OtEOEZe^&T$<q%?GPI*ug?*jFCZ7
zl1X3>xIb0NUL<TDAlC~xMcGnHsPe)Gh+nESIamgk2)5Ql^6QPK&XkQ+!qk}`TYc#I
zf~KwkK>}$)W)Ck`6oter6KcQG9Zcy>lXip)%e&!lQgtQ*N`#abOlytt!&i3fo)cKV
zP0BWmLxS1gQv(r_r|?9>rR0ZeEJPx;Vi|h1!Eo*dohr<W65y|5+tpvz!HDS=Q}DgN
z;O&E^rmV416<Hj_N10HwLk^Lwyhx2j;kDE at F*S-tuqy|n(-6~PPF09Xvxq56At8OG
z4-2Gj5=K^(f;q at WOp+9uP|<!09J~a(Y%m)hsl;TbWEvvuQ7(qWx_eKYE at rH9B(V+`
zF8+p6+N8}}{zS_o7#)%b=2DFYa}JT{_i@;_#xxEDZ)+D4Lz{Pv;LE}#`N2bQP*W;6
z(wPX2S3Zb<sNz$mW_!uE^K&d`O<hkRPv<3DnX$`Y*)_qR>&^lJgqJZns>&vexP at fs
zkPv93Nyw$-kM5Mw^{@wPU47Y1dSkiHyl3dtHLwV&6Tm1iv{ve;sYA}Z&kmH802s9Z
zyJEn+cfl7yFu#1^#DbtP7k&aR06|n{LnYFYEphKd at dJEq@)s#S)UA&8VJY at S2+{~>
z(4?M();zvayyd^j`@4>xCqH|Au>Sfzb$mEOcD7e4z8pPVRTiMUWiw;|gXHw7LS#U<
zsT(}Z5SJ)CRMXloh$qPnK77w_)ctHmgh}QAe<2S{DU^`!uwptCoq!Owz$u6bF)vnb
zL`bM$%>baN7l#)vtS3y6h*2?xC<XQJNpZVS!tVtuR(<D$%K=CTVlwa)G)}qDJup|w
z!YRUAk-}+0)MFG#RuE2vlb~4*bP&)ex6`$^%6ySxf}MiQja9&+C4)UgIK)TIHVp>k
z>w+s)@`O4(4_<t2L?B1i*y6fuRi+P?QZCG2j9(btWTetUT at 0Q|8XO(SqEH6LSB!2L
z<;M1lya0G`cm9UEex~so>I{L-!+b%)NZcQ&ND=2lyP+xI#9OzsiY8$c)ys-MI?TG6
zEP6f=vuLo!G>J7F4v|s#lJ+7A`^nEQScH3e?B_jC&{<S at 1dd<&?JtuP at v(wA>sj>m
zYD?!1z4nDG_Afi$!J(<{>z{~Q)$SaXWjj~%ZvF152Hd^VoG14rFykR=_TO)mCn&K$
z-TfZ!vMBvnToyBoKRkD{3=&=qD|L!vb#jf1f}2338z)e)g>7#NPe!FoaY*jY{f)<G
z+9IWTnFJO0p&^rK`xODpSZARax-jN9(N|ZWyg~(MGSuQYzXBQR*+_`oO>Bf>ohk-K
z4{>fVS}ZCicCqgLuYR_fYx2;*-4k>kffuywghn?15s1dIOOYfl+XLf5w?wtU2Og*f
z%X5x`H55F6g1>m~%F`655-W1wFJtY>>qNSdVT`M`1Mlh!5Q6#3j={n5#za;!X&^OJ
zgq;d4UJV-F>gg?c3Y?d=kvn3e<VW2IarGgIy4I@#ozBH$Q(a($^uvXS?@=l>V)Jb^
zO5vg0G0yN0%}xy#(6oTDSVw8l=_*2k;zTP?+N=*18H5wp`s90K-C67q{W3d8vQGmr
zhpW^>1HEQV2TG#8_P_0q91h8QgHT~8=-Ij5snJ3cj?Jn5_66uV=*pq(j}yHn<uy|J
zh=_`9%JG63kQPJ-Et!mF@={HFp+sB-S+XTFvdzD^x19Lbj{TXx=?FGKvX;|1-3-zU
zl2DyEls20Izb)isO0?xrx(b1`<I3ZDSNBd*<5l=jC`?Re`XCFaI(ny#9KlP!NYbU=
z^;IWB5he_V3}{Xdl1>f$<x%N5|7+dpJoB>Ft;5VVC?bz%9X31asJeQF2jEa47H#j`
zk<KNJ>&uxf3t?g!tltVP|B#G_UfDD}`<#B#iY^i>oDd-LGF}A at Fno~dR72c&hs6bR
z2F}9(i8+PR%R|~FV$;Ke^Q_E_B<teU&M|M>c;$)xN4Ti>Lgg4vaip!%M<tZtx+eW>
z06oxAF_*)LH57w|gCW3SwoEHwjO{}}U=pKhjKSZ{u!K<P`9nrZXY)DCi*vvJQDx`q
za_kyA2Qus4JQ%8kM3_Gd%I1O+cF3~V6=ZM1u9*Ea+iXPId}M`kd7I1T0d7Zx)Wa&?
z{PLQlHM^=&Y!og~I(XQ;5lJScjK~IrV<F7J6v`iM&M1#EkRsHYX8V%Dip>?1zm1q?
zXyA6y@)}_sONiJopF}_}(~}d4FDyp|(@w}Vb;Fl5bZL%{1`}gdw#i{KMjp2 at Fb9pg
ziO|u7qP{$kxH$qh8%L+)AvwZNgUT6^zsZq-MRyZid{D?t`f|KzSAD~C?WT3d0rO`0
z=qQ6{)&UXXuHY{9g|P7l_nd-%eh}4%VVaK#Nik*tOu9lBM$<%FS@`NwGEbP0&;Xbo
zObCq=y%a`jSJmx_uTLa{@2@}^&F<l?4N8$IoqA~y`|!rgD24&AtvbWWlPF%K!I`Fp
zMCDiMrV(MWM2!hiB6=^)Er#O8q+%t)I4l3iuF$d;cBXqGAn?Z0Z*?MZRuh=zmPo~-
z_rOvv7sERj79T<uPMWCHIto at agn)X&#=QQyY*6wt){yHQ7~yFoEezd#C<dQF+u)2-
zEIMy-5P*TYpqPxY25dY9J+f-E^3<^@G(=jU{U&hQ3#o`a)dOUR&JT?mTRlBfHE<p|
zO&J|*26{JJ28qC1saVtkQ1WW^G58Smr^%f>4c%z6oe-TN&idjv+8E|$FHOvBqg5hT
zMB=7SHq`_-E?5g=()*!V>rIa&LcX(RU}aLm*38U_V$C_g4)7GrW5$GnvTwJZdBmy6
z*X)wi3=R8L=esOhY0a&eH`^fSpUHV8h$J1|o^3fKO<edeL`~4AS}?bGhbI at wd%7ob
z;HUsAzX8f<5Tcj`x1L`~p_%qxb{Gobu+`2Hh*bfnN at EZ$w1F5i32YXO9vreTkznl=
zRv&F3;kE3d at _Cys2UVvUxUU=oDO~U>|9QzaiKu>yZ9wmRkW?HTkc<*v7i*ylJ#u#j
zD1-n&{B`04oG>0Jn{5PKP*4Qsz{~`VVA3578gA+JUkiPc$Iq!^K|}*p_z3(-c&5z@
zKxmdNpp2&wg&%xL<cX5MdFnpzW;X?cI|~qZbhDWm)F_t}i=(x><xZ|=$k6lbFWo~R
z1yEA-t+BaHz`?1Zi{N`F<t?_rS*zpAEN-Lg7L9qKTVj|Ih7gOmTvLqTlA1e51SXNm
zeA`1UhC`&)%k?V^ii%`|O+coBH9$HjP#Fy1CjYhyW0DPZC>3xZNzG-5Xt7jnI@{?c
z25=M>-VF|;an2Os$Nn%HgQz7m(ujC}Ii0Oesa(y#8>D+P*_m^X##E|h$M6tJr%#=P
zWP*)Px>7z`E~U^2LNCNiy%Z7!!6RI%6fF@#ZY3z`CK91}^J<kz;gXvl4j_QvxfXmA
ze1j4n*Hru_ge<*I;p<wHXN`XVFAk2bTG~Vl5{?nXF6K!!HeqOu6_U-movw7Gx`O<C
zM~<jbZlSC}oXeAQr_Y8Tq)(9YogPgPY{6ELohD$98O2Fj5_M2=J84FuR#dyoS!A-|
z*c)!)9^dk4^<2$Ks79AAMW;%o-!%g7j{1(Pnwwy1tca#dUTE1+4y#<A6VSeCR)wQ`
zCEFu?oS$y=05cpTr}VLe+YU$GFp$#&tfXaK<ia*q3-&+6KDQP!)!Ru(yh0c}7za6=
ziFP^Nq3))g21c{b{ESQRdZN3Xnpa8jUP0DA2r&uofBU7TtM^7^s}7#&aUnGsvE`fu
z>$F!EB0YF1je9<lP78|=Z6bmMhpLsL)Tz)Cn&pP#eF?{kB>hJKU7!S5MnXV{+#K;y
zF~s*H%p at vj&-ru7#(F2L+_;IH46X(z{~HTfcThqD%b{>~u at lSc<+f5#xgt9L7$gSK
ziDJ6D*R%4&YeUB at yu@4+&70MBNTnjRyqMRd+@&lU#rV%0t3OmouhC`mkN}pL>tXin
zY*p)mt=}$EGT2E<4Q>E2`6)gZ`QJhGDNpI}bZL9}m+R>q?l`OzFjW?)Y)P`fUH(_4
zCb?sm1=DD0+Q5v}BW#0n5;Nm(@RTEa3(Y17H2H67La+>ptQHJ at WMy2xRQT$|7l`8c
zYHCxYw2o-rI?(fR2-%}pbs$I%w_&LPYE{4bo}vRoAW>3!SY_zH3`ofx3F1PsQ?&iq
z*BRG>?<6%z=x#`NhlEq{K~&rU7Kc7Y-90aRnoj~rVoKae)L$3^z*Utppk?I`)CX&&
zZ^@Go<Q-E-9qdDk;`1UZ+I6D_?B at 62xgSC03f%4S8VtH3(P3D_6<1>9fm&fN`b`XY
zt0xE5aw4t at qTg_k=!-5LXU+_~DlW?53!afv6W(k at FPPX-`nA!FBMp7b!ODbL1zh58
z*69I}P_-?qSLKj}JW7gP!la}K at M}L>v?rDD!DY-tu+onu9kLoJz20M4urX_xf2dfZ
zORd9Zp&28_ff=wdMpXi%IiTTNegC}~RLkdYjA39kWqlA?jO~o1`*B&85Hd%VPkYZT
z48MPe62;TOq#c%H(`wX5(Bu>nlh4Fbd*Npasdhh?oRy8a;NB2(eb}6DgwXtx=n}fE
zx67rYw=(s0r?EsPjaya}^Qc-_UT5|*@|$Q}*|>V3O~USkIe6a0_>vd~6kHuP8=m}_
zo2IGKbv;yA+TBtlCpnw)8hDn&eq?26gN$Bh;SdxaS04Fsaih_Cfb98s39xbv)=mS0
z6M<@pM2#pe32w*lYSWG>DYqB95XhgAA)*9dOxHr{t)er0Xugoy)!Vz#2C3FaUMzYl
zCxy{igFB901*<tiyD63(hW(uERHv;@J~7F`;-e`O5Ld!(Fl>R2*F4>grPF}+G`;Yh
zGi at nRjWyG3mR(BVOeBPOF=_&}2IWT%)pqdNAcL{eP`L*^FDv#Rzq<iCP<KO7gjv}{
z^5ElYuo)cUV9?9{6e*c7eWVK at LCOKKaBR<2_;6r+GhH1i-~$};rNpE_D*2ZJ=O+cz
zyj}kfz8;}sw88^SYgzvxpkB>l5U&Suq_X%JfR_lC!S|y|xd5mQ0{0!G#9hV46S~A`
z0B!{yI-4FZEtol5)mNWXcX(`x&Pc*&gh4k{w%0S#EI>rqqlH2xv7mR=9XNCI$V#NG
z4wb- at u{PfQP;tTbzK>(DF(~bKp3;L1-A*HS!VB)Ae>Acnvde15Anb`h;I&0)aZBS6
z55ZS7mL5Wp!LCt45^{2_70<L`Ib`SKM1Oi<HkO)Y>YiI_Py=X{I3>$Px5Ez0ahLQ+
z9EWUWSyzA|+g-Axp*Lx-M{!ReQO07EG7r4^)K(xbj@%ZU=0tBC5shl)1a!ifM5OkF
z0<aV&1|hwix;hV`l{C+KeqEjnn at aQGS~k&rcJ^K626yC8@~#qf$xT7;xJLzv3M&rA
z)MirFFpng+&}hRJHKQ6_3l{ABCJLmIrj8g#cem2@!i;W7Q+}Wr^IrTp((?iq1h?Cq
z7Z^k%ps^N^e})9!YkyNa0;x`m&~<4yTQHl1+dFNY1CE<&_PZ=1v!ch(qU_a1lHd~T
zC&a1>w2xQ-<+r-h1fi7B6waX15|*GGqfva)S)dVcgea`lQ~SQ$KXPR+(3Tn2I2R<0
z9tK`L*pa^+*n%>tZPiqt{_`%v?Bb7CR-!GhMON_Fbs0$#|H}G?rW|{q5fQhvw!FxI
zs-5ZK>hAbnCS#ZQVi5K0X3PjL1JRdQO+&)*!oRCqB{wen60P6!7bGiWn at vD|+E at Xq
zb!!_WiU^I|@1M}Hz6fN-m04x=><rLlCfwyIrOU}U)<7QivZH0Rm_-}Sg~$eCMDR*Z
zx`cVPn__}6Q+CU!>Exm{b@>UCW|c8<K+|Vc^j#>vC`aNbt<B+h3ox;kC6?34Wa#|Y
zXq?n at d6k6MUBqn%SYLX5^>A at KCHujh^2RWZC}iYhL^<*Z93chIBJYU&w>$CGZDR<q
ztx<5t>cHuIgF&oyesDZ#&mA;?wxx4Cm#c0V$xYG?9OL(Smh}#fFuX(K;otJmvRP{h
ze^f-qv;)HKC7geB92_ at 3a9@M<H_?qNxE&=>GijS(hNNVd%-rZ;%@F_f7?Fjinbe1(
zn#jQ*jKZTqE+AUTEd3y6t>*=;AO##cmdwU4gc2&rT8l`rtKW2JF<`_M#p>cj+)yCG
zgKF)y8jrfxTjGO&ccm8RU>qn|HxQ7Z#sUo$q)P5H%8iBF$({0Ya51-rA@!I<SEC1_
zHUdTwrTB3a?*}j?j1(f*^9G0kG<5JX4 at l|rR&H;`Qa2VcYZ3UxZL+D>t#NHN8MxqK
zrYyl_&=}WVfQ?+ykV4*@F6)=u_~3BebR2G2>>mKaEBPm<p!ix>SW3(qYGGXj??m3L
zHec{@jWCsSD8`xUy0pqT?Sw0oD?AUK*WxZn#D>-$`eI+IT)6ki>ic}W)t$V32^ITD
zR497 at LO}S|re%A+#vdv-?fXsQGVnP?QB_d0cGE+U84Q=aM=XrOwGFN3`Lpl at P0fL$
zKN1PqOwojH*($uaQFh8_)H#>Acl&UBSZ>!2W1Dinei`R4dJGX$;~60X=|SG6#jci}
z&t4*dVDR*;+6Y(G{KGj1B2!qjvDYOyPC}%hnPbJ at g(4yBJrViG1#$$X75y+Ul1{%x
zBAuD}Q at w?MFNqF-m39FGpq7RGI?%Bvyyig&oGv)lR>d<`Bqh=p>urib5DE;u$c|$J
zwim~nPb19t?LJZsm{<(Iyyt@~H!a4yywmHKW&=1r5+oj*Fx6c89heW@(2R`i!Uiy*
zp)=`Vr8sR!)KChE-6SEIy<Vn-l!RzPhNVxOkQU85Nng*5JUtkAg)b6wP&$wmih=Au
zKs;dHW6q)pI2VT$E`W=7aAbKSJnb;$l%#?edH=)1)avHvVH)345mJ;(*l$Ed1MA<a
z72%vbZD4`I;B-RS=m{iM`7(#1x>i(dvG3<1KoVt>kGV=zZiG<Y+hj@$zd#Q#=4iVE
z)x-IdMbP%iC;0pg$QUoVt(A;lO{-jJjH=;buR+E#0Eulb^`hidN&<0Z-tju^RGPcG
z(C4$AS6l7m-h>7LGonH1+~yOK-`g0)r#+O|Q>)a`I2FVW%wr3lhO(P{ksNQuR!G_d
zeTx(M!%brW_vS9?IF>bzZ2A3mWX-MEaOk^V|4d38{1D|KOlZSjBKrj7Fgf^>JyL0k
zLoI$adZJ0T+8i_Idsuj}C;6jgx9LY#Ukh;!8eJ^B1N}q=Gn4onF*a2vY7~`x$r at rJ
z`*hi&Z2lazgu{&nz>gjd>#eq*IFlXed(%$s5!HR<!{AgXHWD~USVRvxKdGTp>XKNm
zDZld+DwDI`O6hyn2uJ)F^{^;ESf9sjJ)wMSKD~R=DqPBHyP!?cGAvL<1|7K-(=?VO
zGcKcF1spUa+ki<qEk7@%dE~%eGpEl!oK*hA!YE+isq^GFdJ#{KfWIULzmRCaF}4(*
z-$*W)k94bSp|#5~htGbQ<~v1feWKv$%wM~TX}E><`6K#@QxOTsd847N8WSWztG~?~
z!gUJn>z0O=_)VCE|56hkT~n5xXTp}Ucx$Ii%bQ{5;-a4~I2e|{l9ur#*ghd*hSqO=
z)GD at ev^w&5%k}YYB~!A%3*XbPPU-N6&3Lp1LxyP@|C<{qcn&?l54+zyMk&I3YDT|E
z{lXH-e?C{huu<@~li+73lMOk&k)3s7Asn$t6!PtXJV!RkA`qdo4|OC_a?vR!kE_}k
zK5R9KB%V at R7gt@9=TGL{=#r2gl!@3G;k-6sXp&E4u20DgvbY$iE**Xqj3TyxK>3AU
z!b9}NXuINqt>Htt6fXIy5mj7oZ{A&$XJ&thR5ySE{mkxq_YooME#VCHm2+3D!f`{)
zvR^WSjy_h4v^|!RJV-RaIT2Ctv=)UMMn at fAgjQV$2G+4?&dGA8vK35c-8r<daDqE-
zlIJCF%-7v?-xOAOA*Z$Wv;j3$ldn=}pR52aU>)z9Qqa=%k(FU)?iec14<^olkOU3p
zF-6`zHiDKPafKK<gsO-HjX!gIc-J at mlI}lqM!qAHMA?>^USUU+D01>C&Wh{{q?>5m
zGQp|z*+#>IIo=|ae8CtrN@@t~uLFOeT{}vX(IY*;>wAU=u1Qo4c+a&R);$^VCr>;!
zv4L{`lHgc9$BeM)pQ#XA_(Q#=_i<x#Kw|T_b{oltLKCCP2b6F_+)lx3b*Vc?@JD8p
z>SZL4>L~8Hx}NmOC$&*Q*bq|9Aq}rWgFnMDl~d*;7c44GipcpH9PWaBy-G$*MI^F0
z?Tdxir1D<2ui+Q#^c4?uKvq=p>)lq56<F6-{L-8bs~8_dC8J3p4CdV*Iq;6IOvBJh
z^E(Ti1wkp{O6qebTnBYm)da^xs3^-TV5tGhoGrFBA^b?UK`APfD~Y+F8!rz at iSNu3
zFO1o9o^S3!%nw&2bpBxHF!V{IaC(n}+(HqYMb(3!l`YX-ru;2?$oSZD;K6*RvAS8r
zf1jgZer>=Eb|N^qz~w7rsZu)@E4$;~snz+wIxi+980O6M#RmtgLYh@|2}9BiHSpTs
zacjGKvwkUwR3lwTSsCHlwb&*(onU;)$yvdhikonn|B44JMgs*&Lo!jn`6AE>XvBiO
z*LKNX3FVz9yLcsnmL!cRVO_qv=yIM#X|u&}#f%_?Tj0>8)8P_0r0!AjWNw;S44tst
zv+NXY1{zRLf9OYMr6H-z?4CF$Y%MdbpFIN at a-LEnmkcOF>h16cH_;A|e)pJTuCJ4O
zY7!4FxT4>4aFT8a92}84>q0&?46h>&0Vv0p>u~k&qd5$C1A6Q$I4V(5X~6{15;PD@
ze6!s9xh#^QI`J+%8*=^(-!P!@9%~buBmN2VSAp at TOo6}C?az+ALP8~&a0FWZk*F5N
z^8P8IREnN`N0i@>O0?{i-FoFShYbUB`D7O4HB`Im2{yzXmyrg$k>cY6A@>bf7i3n0
z5y&cf2#`zctT>dz+hNF&+d3g;2)U!#vsb-%LC+pqKRTiiSn#FH#e!bVwR1nAf*TG^
z!RKcCy$P>?Sfq6n<%M{T0I8?p at HlgwC!<R%oqdMv88ghhaN5z;w29c{kLz0?InueY
zuDv#J^DHLyGoyzt8(sCID)#E6<WCYlz7uC1Xvs8QhV{45h-M4rLYe7xw;{g462-zX
zIV>HoWO>~mT+X<{Ylm+$Vtj9};H3$EB}P2wR$3y!TO#$iY8eO-!}+F&jMu4%E6S>m
zB(N4w9O at 2=<`WNJay5PwP8javDp~o~xkSbd4t4t8)<Wt_Xc73S;VOmD#Fsb|nTsJs
z59;v?-{=r}I{BDxTN)Iz2&5m`sG^%wjY0*@1I`W29gtM7#wwIQTHvQhS2gB?6J62R
zJXy=)7L1!%o4(?3j6J3Pc%v5LFvsR9gKoej%77dCetZylr9&mT=u=p$Kn1Z^C3ySy
z3|Tg>9jqu at bHmJHq=MV~Pt|(TghCA}fhMS?s-{klV>~=VrT$nsp7mf{?cze~KKOD4
z_1Y!F)*7^W+BBTt1R2h4f1X4Oy2%?=IMhZU8c{qk3xI1=!na*Sg<=A$?K=Y=GUR9@
zQ(ylIm4Lgm>pt#%p`zHxok%vx_=8Fap1|?OM02|N%X-g5_#S~sT at A!x&8k#wVI2lo
z1Uyj{tDQRpb*>c}mjU^gYA9{7mNhFAlM=wZkXcA#MHXWMEs^3>p9X)Oa?dx7b%N*y
zLz at K^%1JaArjgri;8ptNHwz1<0y8tcURSbHsm=26^@CYJ3hwMaE<khA9_uuFNLm1L
zw+Fp#304~-S;vdG5Nug~K2qs}yD1rrg&9Fcvifn at KphT~L22BKMX?U^9@?Ph`>vC7
z3Wi- at AaXIQ)%F6#i@%M>?Mw7$6(kW@?et at wbk-APcvMCC{>iew#vkZej8%9h0JSc?
zCb~K|!9cBU+))^q*co(E^9jRl7gR4Jihyqa(Z(P&ID#TPyysVNL7(^;?Gan!OU>au
zN}miBc&XX-M$mSv%3xs)bh>Jq9#aD_l|zO?I+p4_5qI0Ms*OZyyxA`sXcyiy>-{YN
zA70%HmibZYcHW&YOHk6S&PQ+$rJ3(utuUra3V0~@=_~QZy&nc~)AS>v&<6$gErZC3
zcbC=eVkV4Vu0#}E*r=&{X)<H<fOshUJUO>Kgq|8MGCh(wsH4geLj@#8EGYa})K2;n
z{1~=ghoz=9TSCxgzr5x3 at sQZZ0FZ+t{?klSI_IZa16pSx6*;=O%n!uXVZ at 1IL;JEV
zfOS&yyfE9dtS*^jmgt6>jQDOIJM5Gx#Y2eAcC3l^lmoJ{o0T>IHpEC<k{}Rs{I at x*
zb<od>TbfYgPI4#LZq0<d#zAXFmb<Y9lgw&{$vCxBQ~RnTL=zZ7D-RwUE3~Z#wraN%
z_E{llZ?GrX#>PKqnPC<SBsRloBYG4ZO7Eeh-Bv2C$rMVb at bcKn3t2`<&0ke8{h|+|
z29&HD`tAtGV2ZA(;c{wT$(NWY+fHTL0b7Km+3IMcIX(?D)PQ;HB*^`ex$kl}K>D}_
zyKxz;(`fE0z~nA1s?d{X2!#ZP8wUHzFSOoTWQrk%;wCnBV_3D%3 at EC|u$Ao)tO|AO
z$4&aa!wbf}rbNc<V}`mLC?8U0y^+E9xuE>P{6=ajgg(`p5kTeu$ji20`zw)X1SH*x
zN?T36{d9TY*S896Ijc^!35LLUByY4QO=ARCQ#MMCjudFc7s!z%P$6DESz%zZ#>H|i
zw3Mc at v4~{Eke;FWs`5i at ifeYPh-Sb#vCa#qJPL|&quSKF%sp8*n#t?vIE7kFWjNFh
zJC at u^bRQ^?ra|%39Ux^Dn4I}QICyDKF0mpe+Bk}!lFlqS^WpYm&xwIYxUoS-rJ)N9
z1Tz*6Rl9;x`4lwS1cgW^H_M*)Dt*DX*W?ArBf?-t|1~ge&S}xM0K;U9Ibf{okZHf~
z#4v4qc6s6Zgm8iKch5VMbQc~_V-ZviirnKCi*ouN^c_2lo&-M;YSA>W>>^5tlXObg
zacX$k0=9Tf$Eg+#9k6yV(R5-&F{=DHP8!yvSQ`Y~XRnUx@{O$-bGCksk~3&qH^dqX
zkf+ZZ?Nv5u>LBM at 2?k%k&_aUb5Xjqf#!&7%zN#VZwmv65ezo^Y4S#(ed0yUn4tFOB
zh1f1SJ6_s?a{)u6VdwUC!Hv=8`%T9(^c`2hc9nt$(q{Dm2X)dK49ba+KEheQ;7^0)
ziFKw$%EHy_B1)M>=yK^=Z$U-LT36yX<F=`VawpD(xy$9hZLKdS9NJ`Zn_|f^uS`)c
z-Rl}C$-9t=SeW=txVx%`NS&LLwx4tQT at F-lQnBqQ-sOH}Jc&bP at MTU&SQLci>>EKT
zvD8IAom2&2?bTmX at _PBR4W|p?6?LQ+&UMzXxqHC5VHzf at Eb1u)kwyfy+NOM8Wa2y@
zNNDL0PE$F;yFyf^jy&RGwDXQwYw6yz>OMWvJt98X@;yr<mIFkh{a&op3>!*RQDBE-
zE*l*u=($Zi1}0-Y4lGaK?J$yQjgb<Bq)i+tJ7(x$;ieC4!=clV5G5IPlSyhAR$E4=
z$1c&+)JfppzZ*VSL$xH3n1^iI1K%)!-^sJU%xwj7WT8t7w6499b3QQ%J+gW)4)JMb
z8GVT`4`(VvLA^xbTV6K2V_8Mv*?gDDUBYV!P-qg?Dq*YIhGKXu$p#?E9&(-}opTbz
zZ#J#VgX+|T3gSW)eF}>+*ljUvNQ!;QYAoCq@>70=sJ{o{^21^?zT at r~hhf&O;Qiq+
ziGQQLG*D at 5;LZ%09mwMiE4Q{IPUx-emo*;a6#DrmWr(zY27d at ezre)Z1BGZdo&pXn
z+);gOFelKDmnjq#8dL7CTiVH)dHOqWi~uE|NM^QI3EqxE6+_n>IW67~UB#J==QOGF
zp_S)c8TJ}uiaEiaER}MyB(grNn=2m&0yztA=!%3xUREyuG_jmadN*D&1nxvjZ6^+2
zORi7iX1iPi$tKasppaR9$a3IUmrrX)m*)fg1>H+$KpqeB*G>AQV((-G{}h=qItj|d
zz~{5@{?&Dab6;0c7!!%Se>w($RmlG7Jlv_zV3Ru8b2rugY0MVPOOYGlokI7%nhIy&
z-B&wE=lh2dtD!F?noD{z^O1~Tq4MhxvchzuT_oF3-t4YyA*MJ*n&+1X3<j>~6quEN
z at m~aEp=b2~mP+}TUP^FmkRS_PDMA{B<dV*k52^3iWFIaXBr1MC#nA4rRMbI6g1e0>
zaSy(P=$T~R!yc^Ye0*pl5xcpm_JWI;@-di+nruhqZ4gy7cq-)I&s&Bt3BkgT(Zdjf
zTvvv0)8xzntEtp4iXm}~cT+pi5k{w{(Z at l2XU9lHr4Vy~3ycA_T?V(QS{qwt?v|}k
z_ST!s;C4!jyV5)^6xC#v!o<DVtBeh%T7qnQl{H-3DV=+H*Qr*Tk6W^hU(ZD0kJnpt
z6l*<^aakgBhlA+xpS}v`t7iyV?zu_V<U{&GBzBLYIuzDQe~f#6w^zD>*uS%a-jQ6<
z)>o?z7=+zNNtIz1*F_HJ(w@=`E+T|9TqhC(g7kKDc8z~?RbKQ)LRMn7A1p*PcX2YR
zUAr{);~c7I#3Ssv<0i-Woj0&Z4a!u|@Xt2J1>N-|ED<3$o2V?OwL4oQ%$@!zLamVz
zB)K&Ik^~GOmDAa143{I4?XUk1<3-k{<%?&OID&>Ud%z*Rkt*)mko0RwC2=qFf-^OV
z=d at 47?tY=A;=2VAh0mF(3x;!#X!%{|vn;U2XW{(nu5b&8kOr)Kop3-5_xnK5oO_3y
z!EaIb{r%D{7zwtGgFVri4_!yUIGwR(xEV3YWSI_+E}Gdl>TINWsIrfj+7DE?xp+5^
zlr3pM-Cbse*WGKOd3+*Qen^*uHk)+EpH-{u at i%y}Z!YSid<}~kA*IRSk|nf+I1N=2
zIKi+&ej%Al-M5`cP^XU>9A(m7G>58>o|}j0ZWbMg&x`*$B9j#Rnyo0#=BMLdo%=ks
zLa3(2EinQLXQ(3zDe7Bce%Oszu%?8PO648TNst4SMFvj=+{b%)ELyB!0`B?9R6<HO
z0ZCx8TWpL$G_aCzv{2o6N{#z3g%x>aO{i-63|s@|raSQGL~s)9R#J#duFaTSZ2M{X
z1?YuM*a!!|jP^QJ(hAisJuPOM`8Y-Hzl~%d at latwj}t&0{DNNC+zJARnuQfiN`HQ#
z?boY_2?*q;Qk)LUB)s8(Lz5elaW56p&fDH*AWAq7Zrbeq1!?FBGYHCnFgRu5y1jwD
zc|yBz+UW|X`zDsc{W~8m<GsO<mO_1`^L`RbrG?Z6Us2*=^_x$`JV{a_LYEsuJtJYL
ziPBF7dm}M2=6vrP;RB?Z6!7)Zvt4B!$rUPf{RA&_8%VD|7)NrR9*=&gO*sOzLhB*~
z^{cR)lY*pt9GGm(POd`WZo!H=s$8fLl_}-xnV5A+4*BbLUMGLAzH|i9_k(p_(`_J-
zjFFqtuzWuLa;BGl;mNUQM^&@rL-- at GcC@@A*GDUdTjOrweNe5I+671K_l#WVI|@LM
z6mSs at 4|l^kTD;Gvy}KaDi)#o4AD~D*LX at 4{{bfG+FoqQ?-6%VkN)4{7vy<hZ9gNX|
zQxtE>$sh at VVnZD$lLnKlq at Hg^;ky!}ZuPdKNi2BI70;hrpvaA4+Q_+K)I@|)q1N-H
zrycZU`*YUW``Qi^`bDX-j7j^&bO+-Xg$cz2#i##($uyW{Nl&{DK{=lLWV<rkzZltE
zVX#Q at q!0kD+4jwZ#haJNHLSu>3|=<&si||2)l=8^8_z+Vho-#5LB0EqQ3v5U#*DF7
zxT)1j^`m+lW}p$>WSIG1eZ>L|YR- at Feu!YNWiw*IZYh03mq+2QVtQ}1ezRJM?0PA<
z;mK(J5 at N8>u@<6Y$QAHWNE};rR|)U_&bv8dsnsza7{=zD1VBcxrALqnOf-qW(zzTn
zTAp|pEo#FsQ$~*$j|~Q;$Zy&Liu9OM;VF@#_&*nL!N2hH!Q6l*OeTxq!l>dEc{;Hw
zCQni{iN%jHU*C;?M-VUaXxf0FEJ_G=C8)C-wD!DvhY+qQ#FT3}Th8;GgV&AV94F`D
ztT6=w_Xm8)*)dBnDkZd~UWL|W=Gl<gto;(*wC9U9tZbpA!j<N3*HCbtKUlby_Vyr4
z!?d@=(#f`*(ud3VsGC{9IRi#5(w*FK!J}~s9(p0ap?ykZJBp1cTUR*jPbbAP&K)BP
zDUly$`B#Sn(aWroZGbyL&=Dg67A>u!$hc|1w7_7l!3MAt95oIp4Xp{M%clu&TXehO
z+L-1#{mjkpTF@?|w1P98OCky~S%@OR&o75P<Wn%&Jm$EVDF7;}E<;f25{W=vmcPFf
zmJVk81ZR1bRmlb|#0}DPdayCjq(27hQh>&ZHvC}Y=(2_{ib(-Al_7aZ^U?s34#H}=
zGfFi5%KnFVCKtdO^>Htpb07#BeCXMDO8U}crpe1Gm`>Q=6qB4i=nLoLZ%p$TY=OcP
z)r}Et-Ed??u~f09d3Nx3bS at ja!fV(Dfa5lXxRs#;8?Y8G+Qvz+iv7fiRkL3liip})
z&G0u8RdEC9c$$rdU53=<QkS9aMArWJ!P8{(D~hr9YfM2Q0nl|;=ukHlQj%<P$wYfa
z?$=heR#}yGJkpA2LI#>MH`p!Jn|DHjhOxHK$tW_pw9wCTf0Eo<){HoN=zG!!Gq4z4
z7PwGh)V<N7ESN6`*^`^Q73fj(wcMs7=5Iu(yJo at Q_F?W?yk3)SdLai+cM6GrKPrjs
za_NJm=uOAmRL5F_{*Yjb_BZNY?)kCB%$WE8;A{ZK>NPXW-cE#MtofE`-$9~nmmj}m
zlzZscQ2+Jq%gaB9rMgVJkbhup0Ggpb)&L01T=%>n7-?v at I8!Q(p&+!fd+Y^Pu9l+u
zek(_$^HYFVRRIFt at 0Fp52g5Q#I`tC3li`;UtDLP*rA{-#Yoa5qp{cD)QYhldihWe+
zG~zuaqLY~$-1sjh2lkbXCX;lq+p~!2Z=76cvuQe*Fl>IFwpUBP+d^<W!tp~MwxCaj
zHBQw{tTF&?2^15<bHvmlCS|A$khwaGVZw*2lw&_pOQz;LcFj at Ysq%CZ)?t&74A|dB
z4WL~cZpG-0G^KuK)}aNOTySm-Lt#QyW&mN^>&E4BGc<j4bbw_-4Ttv5`+q&kCfaBq
z#Rl}~m+g*DG5=zM=t?z8cf%Vr>{m#l%Kuo6#{XGoRyFc%Hqhf|%nYd<;yiC>tyEyk
z4I+a<QbTvlzlVm5v2!^bF)s*0Cw+t*kzz%N#&QZ42CimT6ySz~?+nd>`(%%Ie=-*n
z-{mg=j&t12)LH3R?@-B1tEb7FLMePI1HK0`Ae@#)KcS%!Qt9p4_fmBl5zhO10n401
zBSfnfJ;?_r{%R)hh}BBNSl=$BiAKbuWrNGQUZ)+0=Mt&5!X*D at yGCSaMNY&@`;^a4
z;v=%D_!K!WXV1!3%4P-M*s%V2b#2jF2bk!)#2GLVuGKd#vNpRMyg`kstw0GQ8@^k^
zuqK5uR<>FeRZ#3{%!|4X!hh7hgirQ at Mwg%%ez8pF!N$xhMNQN((yS(F2-OfduxxKE
zxY#7O(VGfNuLv-ImAw5+h at gwn%!ER;*Q+001;W7W^waWT%@(T+5k!c3A-j)a8y11t
zx4~rSN0s$M8HEOzkcWW4YbKK9GQez2XJ|Nq?TFy;jmGbg;`m&%U4hIiarKmdTHt#l
zL=H;ZHE?fYxKQQXKnC+K!TAU}r086{4m}r()-QaFmU(qWhJlc$eas&y<Oz%^3FaFm
z1?*33BSANpZbOjV<(WE=T(DuY)_XOR{Jho+f)Z}g61HjnqKKN*8E0S?ATVoi0{#On
zGn at 2R)R+{|FLX_EYm8{*=&UqzSkXCnZ)vWGS!9t02v^*;nhYk{U}PXVkPhlRc3UH{
zA-5Xc>?=H9EYQy8N$8^bni9TpD<bzO7YS=tCt}zYcl)|7!PRQIoif~D7yjeqW#(B3
zmpkmPyyRt85TQV!liLz!S at Olwr9!I#6DL45xU1kD`j8+MN!ST75vIA5J=~k_se^q#
zaC@(uVW_ra*o|Fs!(sX4Ik6k-(M%QP2;-Z at Rf=+&=pE`Dv8K9?k1Fg2pF%vW*HO>p
zkA^WRs?KgYgjxX4T6?`SMs$`s3vlut(YU~f2F+id(Rf_)$BIMibk9lACI~LA+i7xn
z%-+=DHV*0TCTJp~-|$VZ at g2vmd*|2QXV;HeTzt530KyK>v&253N1l}bP_J#UjLy4)
zBJili9#-ey8Kj(dxmW^ctorxd;te|xo)%46l%5qE-YhAjP`Cc03vT)vV&GAV%#Cgb
zX~2}uWNvh`2<*AuxuJpq>SyNtZwzuU)r@@dqC at v=Ocd(HnnzytN+M&|Qi#f4Q8D=h
ziE<3ziFW%+!yy(q{il8H44g^5{_+pH60Mx5Z*FgC_3hKxmeJ+wVuX?T#ZfOOD3E4C
zRJsj#wA at 3uvwZwHKKGN{{Ag+8^cs?S4N at 6(Wkd$CkoCst(Z&hp+l=ffZ?2m%%ffI3
zdV7coR`R+*dPbNx=*ivWeNJK=Iy_vKd`-_Hng{l?hmp=|T3U&epbmgXXWs9ySE|=G
zeQ|^ioL}tve<e`!rDYCFUej_ysJ2z(4AIN3g4xGaB0&Y<^`&A^@AOml<{gmBP!-y6
z!IsbSiZ8eH@;)gbXcV?N4*>N{s72_&h+F+W;G}?;?_s at h5>DX(rp#eaZ!E=NivgLI
zWykLKev+}sHH41NCRm7W>K+_qdoJ8x9o5Cf!)|qLtF7Izxk*p|fX8UqEY)_sI_45O
zL2u>x=r5xLE%s|d%MO>zU%KV6QKFiEeo12g#bhei4!Hm+`~Fo~4h|BJ)%ENxy9)Up
zOxupSf1QZWun=)gF{L0YWJ<(r0?$bPFANrmphJ>kG`&7E+RgrWQi}ZS#-CQJ*i#8j
zM_A0?w at 4Mq@xvk^>QSvEU|VYQoVI=TaOrsLTa`RZfe8{9F~mM{L+C`9YP9?Okn<Y+
zQ`?h`EW57j4Qxm_DjacY`kEKG93n7#6{CBssPbH&1L2KSo|Htm*KD+0p<wD8e>Lw|
zmkvz>cS6`pF0FYeLdY%>u&XpPj5$*iYkj=m7wMzHqzZ5SG~$i_^f at QEPEC+<2nf-{
zE7W+n%)q$!5 at 2pBuXMxhUSi*%F>e_g!$T-_`ovjBh(3jK9Q^~OR{)}!0}vdTE^M+m
z9QWsA?xG>EW;U~5gEuKR)Ubfi&YWnXV;3H6Zt^NE725*`;lpSK4HS1sN?{~9a4JkD
z%}23oAovytUKfRN87XTH2c=kq1)O<qRzRUy={bH%*8V=pA##jg=-EE6(Lotu<IYEm
zZ71>5(fH_M3M-o{{@&~KD`~TRot-gqg7Q2U2o-iiF}K>m?CokhmO<lc^{s0_OssMw
zc*3nzZ5WN~$;I6TzaKlN9W+6*SX5vHzSUyIfdtNx5K}gB*a}Ei-T%?Pusx0i{k6zW
zVCCXrjNT1#YIkZ%s$(OfAJ`FBR*66B?{y$nkK6iXlBVVr at 2#yGM6%0i_(U5#>DaLB
z1p6(6JYGntNOg(s!(>ZU&lzDf+Ur)^Lirm%*}Z>T)9)fAZ9>k(kvnM;ab$ptA=hoh
zVgsVaveXbMpm{|4*d<0>?l_JUFOO8A3xNLQOh%nVXjYI6X8h?a at 6kDe5-m&;M0xqx
z+1U$s>(P9P)f0!{z%M at E7|9nn#IWgEx6A6JNJ(7dk`%6$3@!C!l;JK-p2?gg+W|d-
ziEzgk$w7k48NMqg$CM*4O~Abj3+_yUKTyK1p6GDsGEs;}=E_q>^LI-~pym$qhXPJf
z2`!PJDp4l(TTm#|n at bN!j;-FFOM__eLl!6{*}z=)UAcGYloj?bv!-XY1TA6Xz;82J
zLRaF{8ayzGa|}c--}|^xh)xgX>6R(sZD|Z|qX50gu=d`gEwHqC at WYU7{%<5VOnf9+
zB<I4+b1=sZ53G|-kvYcPViY)E5R#f6q2$x?f020VY)3|@p~2oGrySSwa~uPN4nC&g
zX!I>@FX?|UL%`8EIAe!*UdYl|6wRz6Y>(#8x92$#y}wMeE|ZM2X*c}dKJ^4NIf;Fm
zNwzq%QcO?$NR-7`su!*$dlIKo2y(N;qgH at 1|8QNo$0wbyyJ2^}$iZ>M{BhBjTdMjK
z>gPEzgX4;g3$rU?jvDeOq`X=>)zdt|jk1Lv3u~bjHI=EGLfIR&+K3ldcc4D&Um&04
z3^F*}WaxR(ZyaB>DlmF_UP at +Q*h$&nsOB#gwLt{1#F4i-{A5J@`>B9@{^i?g_Ce&O
z<<}_We-RUFU&&MHa1#t56u<quT+%|#XvIpRJ?co{{tU0{tvlHG=;UJAM%ZgS1Wk*<
zbzK}T;?L5YLE4NLu9J0u#X!J<y<O?uV#gKBNVOZ at 7SW<kFyslWRX at _C90;+zxGfEz
zb5V;-W-;gzJ|=>_oM(Ljn7djja!T|gcxSoR=)@?owC*NkDarpBj=W4}=i1@)@L|C)
zQKA+o<(pMVp*Su(`zBC0l1yTa$MRfQ#uby|$mlOM<xEsq_18&vqMDMD7Zoz%Fkm7A
z3)Py9=vTp8h$K)n9Uvzc$sVOT&zol^a%bZk8R4Y8^rZSJmY_uRt<`DC1F!?x#33tZ
ze&XW>s=G`4J|?apMzKei%jZql#gP at IkOaOjB7MJM=@1j(&!jNnyVkn5;4lvro1!vq
ztXiV8HYj5%)r1PPpIOj)f!><jg)vV+x8*ZL<Q!-CP7F3VXp#~OA}`YkX&1&s!htsT
z^$c2`mPAtTVX<qUk`r6!8Vb=Uc23%M)2;P#-xg0%R+ozayS`Bp$+go_wMt83+CODc
z2B}|cG;*tiKwHPYIq{X<`rJQAk*7&QC at O%H3Z553ow$9gREC4~b(*v-N%(bN;Y at mL
zsmAcMVly_+3OO{6?K&3Aei;$vMv!82h}`Bdn#~L=J)xK(4o*51?I7`(&5m9X))pa;
zLPfmH5<-xa-W%$*L{V<;N$-)VdNT!&jA&vHrEgBjjo5UU0If7Vhz3vkcHNAY5aT+C
zc5euR<}4<-qaBP_Zef)X2|HW=07DGXb>pc^3#LvfZ(hz}C at -3R(Cx7R427*Fwd!XO
z4~j&IkPHcBm0h_|iG;ZNrYdJ4HI!$rSyo&sibmwIgm1|J#g6%>=ML1r!kcEhm(XY&
zD at mIJt;!O%WP7CE&wwE3?1-dt;RTHdm~LvP7K`ccWXkZ0kfFa2S;wGtx_a}S2lslw
z$<4^Jg-n#Ypc(3t2N67Juasu=h)j&UNTPNDil4MQMTlnI81kY46uMH5B^U{~nmc6+
z9>(lGhhvRK9ITfpAD!XQ&BPphL3p8B4PVBN0NF6U49;ZA0Tr75AgGw7(S=Yio+xg_
zepZ*?V#KD;sHH+15ix&yCs0eSB-Z%D%uujlXvT#V$Rz@$+w!u#3GIo*AwMI#Bm^oO
zLr1e}k5W~G0xaO!C%Mb{sarxWZ4%Dn9vG`KHmPC9GWZwOOm11XJp#o0-P-${3m4g(
z6~)X9FXw%Xm~&99tj>a-ri})ZcnsfJtc10F at t9xF5vq6E)X!iUXHq-ohlO`gQdS&k
zZl})3k||u)!_=nNlvMbz%AuIr89l#I$;rG}qvDGiK?xTd5HzMQkw*p$YvFLGyQM!J
zNC^gD!kP{A84nGosi~@MLKqWQNacfs7O$dkZtm4-BZ~iA8xWZPkTK!Hp<LTap+x4*
zUK;Ha0;Jc=$HCCwcHw+aadnOZR281fO)q}D^z9=|qH9;-;e${xK|?9elJ8=LaM<65
zE6;>A5zr!9Z&+icfAJ1)NWkTd!-9`NWU>9uXXUr;`Js#NbKFgrNhTcY4GNv*71}}T
zFJh?>=EcbUd2<|fiL+H=wMw8hbX6?+_cl4XnCB#ddwdG><R|vBc*yG=?!<`t>bki*
zt*&6Dy&EIPluL at A3_;R%)shA-tDQA1!Tw4ffBRyy;2n)vm_JV06(4O<t|JggQ(KZT
zsYO62-6u^^mX>r&QAOKNZB5f(MVC}&_!B>098R{Simr!UG}?CW1Ah+X+0#~0`X)od
zLYablwmFxN21L))!_zc`IfzWi<Gu||u|EiUx`=l}NMzvxMP68pmmwjICH*y4{3)P@
z%y44Q*AVc4<$z9 at nMeRAeVJ+>`5>MxPe(Dm<mb5oz44!o-XIzF2v`EK`q7j%sCMv2
zL>jjO1}HHt7TJtAW+VXHt!aKZk>y6PoMsbDXRJnov;D~Ur~2R_7(Xr)aa%wJwZh<i
zvMmaF%EvU)a6S{Gh%whrx at S36i|iv5oL=QhR4YK<CK74 at mwN~dH00RX{_e6r+#l%j
z7OK<7e3kn;@H(@8>S3gr7IGgt%@;`jpL at gyc6bGCVx!9CE7NgIbUNZ!Ur1RHror0~
zr(j$^yM4j`#c2KxSP61;(Tk^pe7b~}LWj~SZC=MEpdKf;B at on9=?_n|R|0q;Y*1_@
z>nGq>)&q!;u-8H)WCwtL<LrD$x{Fa((5#4K!l=^|krt6e2?!PZN=Rmwt*1$d&$Q{J
zCgeI0rGg+wn3iR*eck$cFmbQ~E3GYxr&dJb(4{lgPt?n#^<GT#&j{om5`|wE6bW}}
ze{Pav1oDZnak%Fz$PD1ZH8xBo#FnqUG6u>&7F4vbnnfSAlK1mwnRq2&gZrEr!b1MA
z(3%vAbh3aU-IX`d7b at q`-WiT6eitu}ZH9x#d&qx}?CtDuAXak%5<-P!{a`V=$|XmJ
zUn at 4lX6#ulB at a=&-9HG)a>KkH=jE7>&S&N~0X0zD=Q=t|7w;kuh#cU=NN7gBGbQTT
z;?<kJaO{>bdSt8V&IIi}<ThZP?O{MP;s77svl-cIdCj)d-BZGJap1Ull?cz;BdUt4
zMAS0={#2iyI>sDTzA0dkU}Z-Qvg;RDe8v>468p3*&hbG<I%;HTx8<Z&Ih at Xrl%AO4
zEZ252P#-|8MJE+L5IXho^0!PtBR61%3tAJ8RP$~a8%~<+5(4Lyh@;kvSLVbDc4PRn
z?4(9&{Rpo>T1I3hi9hh~Z(!H}{+>eUyF)H&gdrX=k$aB%J6I<Mis<6rrEG;E4zw&M
zYsQ6$FFc_^cwkYGT9ds?4^G_w2+$2L@}W#bXUf0JW}7J?EgbIp`jFFailmTZXuEyM
z?LcqfTM!s>;6+^^kn1mL+E+?A!A}@xV(Qa at M%HD5C at +-4Mb4lI=Xp=@9+^x+jhtOc
zYgF2aVa(uSR*n(O)e6tf3JEg2xs#dJfhEmi1iOmDYWk|wXNHU?g23^IGKB&yHnsm7
zm_+;p?YpA#N*7vXCkeN2LTNG`{QDa#U3fcFz7SB)83=<8rF)|udrEbrZL$o6W?oDR
zQx!178Ih9B#D9Ko$H(jD{4MME&<|6%MPu|TfOc#E0B}!j^MMpV69D#h2`vsEQ{(?c
zJ3Lh!3&=yS5fWL~;1wCZ?)%nmK`Eqgcu)O6rD^3%ijcxL50^z?OI(LaVDvfL0#zjZ
z2?cPvC$QCzpxpt5jMFp05OxhK0F!Q<m=7hVYzR||ecS~Bi9y8}>`rPhDi5)y=-0C}
zIM~ku&S at pl1&0=jl+rlS<4`riV~LC-#pqNde at 44MB(j%)On$0Ko(@q?4`1?4149Z_
zZi!5aU at 2vM$dHR6WSZpj+VboK+>u-CbNi7*lw4K^ZxxM#24_Yc`<w`lM<_9<AjZra
zPf9|W$q at ib+eT6)aN(T>jvb9NPVi75L+MlM^U~`;a7`4H0L|TYK>%hfEfXLsu1JGM
zbh|8{wuc7ucV+`Ys1kqxsj`dajwyM;^X^`)#<+a~$WFy8b2t_RS{8yNYKKlnv+>vB
zX(QTf$kqrJ;%I at EwEs{cIcH at Z3|#^S at M+5jsP<^`@8^I4_8MlBb`~cE^n+{{;qW2q
z=p1=&+fUo%T{GhVX@;56kH8K_%?X=;$OTYqW1L*)hzelm^$*?_K;9JyIWhsn4SK(|
zSmXLTUE8VQX{se#8#Rj*lz`xHtT<61V~fb;WZUpu(M)f#<N`ZtP}(nwt at v*JXMv*g
zTjkPmLef!CJNB3?7*>;I+2_zR+)y5Jv?l`CxAinx|EY!`IJ*x9_gf_k&Gx2alL!hK
zUWj1T_pk|?iv}4EP#PZvYD_-LpzU!NfcL<ZIyO_4myXe0OU}<Cprr_|XIrM73FXg`
zNRt~K9+=_-Laa5&Rt6kJaobEvjFnh>L%fK&r$W8O1KH9c2&GV~N#T$kaXGvAOl)|T
zuF9%6(i=Y3q?X%VK-D2YIY<MPA*$`<$Z)_O$(a?^Bnjd_-qk6atAX5(s0D1W1}`G9
zl)%h^mai+5Kwy1+I$Zaauh0oNm3mQUQ=`8aEAo=0zrm72grj|c8&W!-^+^6zMgm-+
zSpJe{_P`h~;t1=21VLIQ5n~@Q5Y=~VMN|L<mJfGW44?>FPH3f|g$TrXW->&^Ab`WT
z7>Oo!u1u40?jAJ8H<j_H`^tLy at LZ5-N)dU$=t?bXuTI1>y`bv}qb<AzbCJ<X7c~}%
z50 at S(*;X)_P8TrUWZGQQn`AI#Eve&0+FNaAqg<m^ZNYdEveME+t5Q5DV5-rT<{g7@
zG+rSFooLii=nDW~qWOU#YzUJee#V*XI!cGhpz&<{SF!$pIm@`rT3A99J?qG9DPU at z
z9jawkO0(cqfU^RIM<K3r*yl0SKgPT>gs8)cF0&qeVjD?e+3Ggn1Im>K77ZSpbU*08
zfZkIFcv?y)!*B{|>nx at cE{KoutP+seQU?bCGE`tS0GKUO3PN~t=2u7q_6$l;uw^4c
zVu^f{uaqsZ{*a-N?2B8ngrLS8<WR!m{e>E&s6}Xtv9rR9C^b`@q8*iH)pFz<!x=AK
zf6E-O(MiUN4a^nRWR%`TBl at CGu2cFmmpRkBUAPvyvw&qDg1_6Y)ycUoITv4yV(Mk5
z=Dtmg6tsakVjdG2BV~=LD3YcTEr=j6ou|^*Qem;+#vOz?`MQ>f1|kCfiLw6u{Z%aC
z!X^5CzF6qofFJgkl<Rtc72CagCpKF^gmhb1CH>JV3oc|Qc2XdFl+y5M9*P8}A>Kh{
zWRgRwMSZ(?Jw;m%0etU5BsWT-Dj-5F;Q$OQJrQd+lv`i6>MhVo^p*^w6{~=fhe|bN
z*37oV0kji)4an^%3ABbg5RC;CS50 at PV5_hKfXjYx+(DqQdKC^JIEMo6X66$qDdLRc
z!YJPSKnbY`#Ht6`g at xGzJmKzz<St<)P9XB^ZWQT2VtTE^8HdQx8o;%`J{lUpkn0!&
z^d*IdfCW?sDnD#zV!vee5Xd}&#I at u4z;`)LVXVayyf`~NUMeM>n|abYbP+_Q(v?~~
z96%cd{E0BCsH^0HaWt{y(Cuto4VE7jhB1Z??#UaU(*R&Eo+J`UN+8mcb51F|I|n*J
zJCZ3R*OdyeS9hWkc_mA7-br>3Tw=CX2bl(=TpVt#WP8Bg^vE_9bP&6ccAf3lFMgr`
z{3=h@?Ftb$RTe&@IQtiJf<Z$(x)W;Yibdk0Eou)O=h)|ox2XJhbM7gDjm$)%o0c)W
z!;CM_%5jr$Dk{vl7{DX~*^!MCEDILf;SGbcLK^kRyl}+&4r>V;O&4fzh)e1>7seG;
z=%mA4 at c7{aXeJnhEg2J at Bm;=)j=O=cl#^NNkQ<{r;Bm|8Hg}bJ-S^g4`|itx)~!LN
zXtL}?f1Hs6UQ+f0-X6&TBCW=A4>bU0{rv8C4T!(wD-h>VCK4YJk`6C9$by!fxOYw-
zV#n+0{E(0ttq<e;u-JNg<=7mR)Baf(#XbsMPDR?mv12UXo+AuGM*TW4&Dbw3MHmyv
zzQ)3g$Jc}F5k_3<jP&G5r+akl<UzYyi9?xB4hK at h8+B`?3~Bn5^eKgTbZcatPPir(
zn|7xaL9v;L3{V1l&DQSp%TOnp^O8OS$m-yD0^r7mU at qJQ<RvUSI at G_}IuDMi8mq0p
z?O{gor*9fmQL7Mrb|ducn%AQOk at nhAYv{%&-E+j$)7Bpd*!L2Cg%7pf&3ZLxA5Fwj
z%8~}*Sw2G<h3E&$jhO(1=)P&U%mN)4Rk5JcPDUdUN*FM8j0Mg^@Z|6~Ym*2e3TCV6
z?5B1NxqE*aMe#2m&+Fz%OG!n`J`B2Ww|QiS6U=1^3d+6`ls$U%hB`nu)=J>_#16B}
ze8$E#X9o{B!0vbq#WUwmv5Xz6{(!^~+}sBW{xctdNHL4^vDk!0E}(g|W_q;jR|ZK<
z8w>H-8G{%R#%f!E7cO_^B?yFRKLOH)RT9GJsb+kAKq~}WIF)NRLwKZ^Q;>!2MNa|}
z-mh?=B;*&D{Nd-mQRcfVnHkChI=DRHU4ga%xJ%+QkBd|-d9uRI76 at BT(bjsjwS+r)
zvx=lGNLv1?SzZ;P)Gnn>04fO7Culg*?LmbEF0fATG8S@)oJ>NT3pYAXa*vX!eUTDF
ziBrp(QyDqr0ZMTr?4uG_Nqs6f%S0g?h`1vO5fo=5S&u#wI2d4+3hWiolEU!=3_oFo
zfie<EEFWI+<HRR}kMBRY{{xT?Ubu+n1E+3-XyZ at DlC1|CziB+t8LH;pSr1_{$txb2
z{LD6Cutu at sVLZ$sgxfHzi88%ifnz%FWxPwItQ=UFSeRQ?XX#H8uXPtSY1Da8V^-Nz
zx}G&3QUOW&pFuYAPt>?+4W#`;1dd#X at g9Yj<53S<6OB!TM8w8})7k-$&q5(smc%;r
z(BlXkTp`C47+%4JA{2X}MIaPbVF!35P#p;u7+fR*46{T+LR8+<Ms(<(ewo92Plp}^
z0K5%%0PpyoHDM$82Vjt^Jp>j25oduCfDzDv6R-hU{TVVo9fz?^N3ShMt!t0NsH)pB
zRK8-S{Dn*y3b|k^*?_B70<2gHt==l7c&cT>r`C#{S}J2;s#d{M)ncW(#Y$C*lByLQ
z&?+{dR7*gpdT~(1;<m}fXp at S^XBCFbD&Le<rzooSQB^d8r#S^ok_xS36-~w}kc?Ej
z7^zYrQY=EF$c06)iin^U556ixd{lb)^l<R>M(FfF==3z`^eW)=5a9RqvF-)2?S-(G
zhS;p(u~_qBum*q}On@$#08}ynd0+spzyVco0%G6;<-i5&016cV5UKzhQ~)fX03|>L
z8ej+HzzgVr6_5ZUpa4HW0Ca!=r1%*}Oo;2no&Zz8DfR)L!@r<<lmB!F&$32&71xdc
zAQ}KMGyqI!0F2N8;eY{y00CwIf0+QV$OUD<C at ujha0p9)KwJUh;0%`lShxaZKm`>5
z2viSZpmvo5XqXyAz{Ms7`7kX>fnr1gi4X~7KpznRT0{Xc5Cfz at 43PjBMBoH@z_{~(
z(Wd}IPJ9hH+%)Fc)0!hrV+(A;76rhtI|YHbEDeERV~Ya>SQg^IvlazFkSK(KG9&{q
zkPIR~EeQaaBmwA<20}m<i2yt#0ML*D!NB+q2RLvyLxH9o41nNb1p??O7J)#e3I!NY
z1wlX)g#bnj0Jty$0KoMI0Cb7`0i50h9gE~g7Om;jPg0kO>BO?)N$(z1 at p)5?%}rM|
zGF()~Z&Kx at OIDRI$d0T8;JX at vj3^2%pd_+ at l9~a4lntZ;AvUIjqIZbuNTR6 at hNJoV
zk4F;ut)LN4ARuyn2M6F~eg-e#UH%2P;8uPGFW^vq1vj8mdIayFOZo(tphk8C7hpT~
z1Fv8?b_LNR3QD9J+!v=p%}#<WkmT3SAH~zHvL~<r009F5U;qFWp(o;x5Q1O?TufB{
c at Yw=E7;q9obAc&xg(1}n;wTCO(gbOOU|30r`2YX_

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/fonts/glyphicons-halflings-regular.svg b/ui/new-ui-samples/fonts/glyphicons-halflings-regular.svg
new file mode 100644
index 0000000..94fb549
--- /dev/null
+++ b/ui/new-ui-samples/fonts/glyphicons-halflings-regular.svg
@@ -0,0 +1,288 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
+<font-face units-per-em="1200" ascent="960" descent="-240" />
+<missing-glyph horiz-adv-x="500" />
+<glyph horiz-adv-x="0" />
+<glyph horiz-adv-x="400" />
+<glyph unicode=" " />
+<glyph unicode="*" d="M600 1100q15 0 34 -1.5t30 -3.5l11 -1q10 -2 17.5 -10.5t7.5 -18.5v-224l158 158q7 7 18 8t19 -6l106 -106q7 -8 6 -19t-8 -18l-158 -158h224q10 0 18.5 -7.5t10.5 -17.5q6 -41 6 -75q0 -15 -1.5 -34t-3.5 -30l-1 -11q-2 -10 -10.5 -17.5t-18.5 -7.5h-224l158 -158 q7 -7 8 -18t-6 -19l-106 -106q-8 -7 -19 -6t-18 8l-158 158v-224q0 -10 -7.5 -18.5t-17.5 -10.5q-41 -6 -75 -6q-15 0 -34 1.5t-30 3.5l-11 1q-10 2 -17.5 10.5t-7.5 18.5v224l-158 -158q-7 -7 -18 -8t-19 6l-106 106q-7 8 -6 19t8 18l158 158h-224q-10 0 -18.5 7.5 t-10.5 17.5q-6 41 -6 75q0 15 1.5 34t3.5 30l1 11q2 10 10.5 17.5t18.5 7.5h224l-158 158q-7 7 -8 18t6 19l106 106q8 7 19 6t18 -8l158 -158v224q0 10 7.5 18.5t17.5 10.5q41 6 75 6z" />
+<glyph unicode="+" d="M450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-350h350q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-350v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v350h-350q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5 h350v350q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xa0;" />
+<glyph unicode="&#xa5;" d="M825 1100h250q10 0 12.5 -5t-5.5 -13l-364 -364q-6 -6 -11 -18h268q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-100h275q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-174q0 -11 -7.5 -18.5t-18.5 -7.5h-148q-11 0 -18.5 7.5t-7.5 18.5v174 h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h125v100h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h118q-5 12 -11 18l-364 364q-8 8 -5.5 13t12.5 5h250q25 0 43 -18l164 -164q8 -8 18 -8t18 8l164 164q18 18 43 18z" />
+<glyph unicode="&#x2000;" horiz-adv-x="650" />
+<glyph unicode="&#x2001;" horiz-adv-x="1300" />
+<glyph unicode="&#x2002;" horiz-adv-x="650" />
+<glyph unicode="&#x2003;" horiz-adv-x="1300" />
+<glyph unicode="&#x2004;" horiz-adv-x="433" />
+<glyph unicode="&#x2005;" horiz-adv-x="325" />
+<glyph unicode="&#x2006;" horiz-adv-x="216" />
+<glyph unicode="&#x2007;" horiz-adv-x="216" />
+<glyph unicode="&#x2008;" horiz-adv-x="162" />
+<glyph unicode="&#x2009;" horiz-adv-x="260" />
+<glyph unicode="&#x200a;" horiz-adv-x="72" />
+<glyph unicode="&#x202f;" horiz-adv-x="260" />
+<glyph unicode="&#x205f;" horiz-adv-x="325" />
+<glyph unicode="&#x20ac;" d="M744 1198q242 0 354 -189q60 -104 66 -209h-181q0 45 -17.5 82.5t-43.5 61.5t-58 40.5t-60.5 24t-51.5 7.5q-19 0 -40.5 -5.5t-49.5 -20.5t-53 -38t-49 -62.5t-39 -89.5h379l-100 -100h-300q-6 -50 -6 -100h406l-100 -100h-300q9 -74 33 -132t52.5 -91t61.5 -54.5t59 -29 t47 -7.5q22 0 50.5 7.5t60.5 24.5t58 41t43.5 61t17.5 80h174q-30 -171 -128 -278q-107 -117 -274 -117q-206 0 -324 158q-36 48 -69 133t-45 204h-217l100 100h112q1 47 6 100h-218l100 100h134q20 87 51 153.5t62 103.5q117 141 297 141z" />
+<glyph unicode="&#x20bd;" d="M428 1200h350q67 0 120 -13t86 -31t57 -49.5t35 -56.5t17 -64.5t6.5 -60.5t0.5 -57v-16.5v-16.5q0 -36 -0.5 -57t-6.5 -61t-17 -65t-35 -57t-57 -50.5t-86 -31.5t-120 -13h-178l-2 -100h288q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-138v-175q0 -11 -5.5 -18 t-15.5 -7h-149q-10 0 -17.5 7.5t-7.5 17.5v175h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v100h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v475q0 10 7.5 17.5t17.5 7.5zM600 1000v-300h203q64 0 86.5 33t22.5 119q0 84 -22.5 116t-86.5 32h-203z" />
+<glyph unicode="&#x2212;" d="M250 700h800q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#x231b;" d="M1000 1200v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-50v-100q0 -91 -49.5 -165.5t-130.5 -109.5q81 -35 130.5 -109.5t49.5 -165.5v-150h50q21 0 35.5 -14.5t14.5 -35.5v-150h-800v150q0 21 14.5 35.5t35.5 14.5h50v150q0 91 49.5 165.5t130.5 109.5q-81 35 -130.5 109.5 t-49.5 165.5v100h-50q-21 0 -35.5 14.5t-14.5 35.5v150h800zM400 1000v-100q0 -60 32.5 -109.5t87.5 -73.5q28 -12 44 -37t16 -55t-16 -55t-44 -37q-55 -24 -87.5 -73.5t-32.5 -109.5v-150h400v150q0 60 -32.5 109.5t-87.5 73.5q-28 12 -44 37t-16 55t16 55t44 37 q55 24 87.5 73.5t32.5 109.5v100h-400z" />
+<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
+<glyph unicode="&#x2601;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -206.5q0 -121 -85 -207.5t-205 -86.5h-750q-79 0 -135.5 57t-56.5 137q0 69 42.5 122.5t108.5 67.5q-2 12 -2 37q0 153 108 260.5t260 107.5z" />
+<glyph unicode="&#x26fa;" d="M774 1193.5q16 -9.5 20.5 -27t-5.5 -33.5l-136 -187l467 -746h30q20 0 35 -18.5t15 -39.5v-42h-1200v42q0 21 15 39.5t35 18.5h30l468 746l-135 183q-10 16 -5.5 34t20.5 28t34 5.5t28 -20.5l111 -148l112 150q9 16 27 20.5t34 -5zM600 200h377l-182 112l-195 534v-646z " />
+<glyph unicode="&#x2709;" d="M25 1100h1150q10 0 12.5 -5t-5.5 -13l-564 -567q-8 -8 -18 -8t-18 8l-564 567q-8 8 -5.5 13t12.5 5zM18 882l264 -264q8 -8 8 -18t-8 -18l-264 -264q-8 -8 -13 -5.5t-5 12.5v550q0 10 5 12.5t13 -5.5zM918 618l264 264q8 8 13 5.5t5 -12.5v-550q0 -10 -5 -12.5t-13 5.5 l-264 264q-8 8 -8 18t8 18zM818 482l364 -364q8 -8 5.5 -13t-12.5 -5h-1150q-10 0 -12.5 5t5.5 13l364 364q8 8 18 8t18 -8l164 -164q8 -8 18 -8t18 8l164 164q8 8 18 8t18 -8z" />
+<glyph unicode="&#x270f;" d="M1011 1210q19 0 33 -13l153 -153q13 -14 13 -33t-13 -33l-99 -92l-214 214l95 96q13 14 32 14zM1013 800l-615 -614l-214 214l614 614zM317 96l-333 -112l110 335z" />
+<glyph unicode="&#xe001;" d="M700 650v-550h250q21 0 35.5 -14.5t14.5 -35.5v-50h-800v50q0 21 14.5 35.5t35.5 14.5h250v550l-500 550h1200z" />
+<glyph unicode="&#xe002;" d="M368 1017l645 163q39 15 63 0t24 -49v-831q0 -55 -41.5 -95.5t-111.5 -63.5q-79 -25 -147 -4.5t-86 75t25.5 111.5t122.5 82q72 24 138 8v521l-600 -155v-606q0 -42 -44 -90t-109 -69q-79 -26 -147 -5.5t-86 75.5t25.5 111.5t122.5 82.5q72 24 138 7v639q0 38 14.5 59 t53.5 34z" />
+<glyph unicode="&#xe003;" d="M500 1191q100 0 191 -39t156.5 -104.5t104.5 -156.5t39 -191l-1 -2l1 -5q0 -141 -78 -262l275 -274q23 -26 22.5 -44.5t-22.5 -42.5l-59 -58q-26 -20 -46.5 -20t-39.5 20l-275 274q-119 -77 -261 -77l-5 1l-2 -1q-100 0 -191 39t-156.5 104.5t-104.5 156.5t-39 191 t39 191t104.5 156.5t156.5 104.5t191 39zM500 1022q-88 0 -162 -43t-117 -117t-43 -162t43 -162t117 -117t162 -43t162 43t117 117t43 162t-43 162t-117 117t-162 43z" />
+<glyph unicode="&#xe005;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104z" />
+<glyph unicode="&#xe006;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429z" />
+<glyph unicode="&#xe007;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429zM477 700h-240l197 -142l-74 -226 l193 139l195 -140l-74 229l192 140h-234l-78 211z" />
+<glyph unicode="&#xe008;" d="M600 1200q124 0 212 -88t88 -212v-250q0 -46 -31 -98t-69 -52v-75q0 -10 6 -21.5t15 -17.5l358 -230q9 -5 15 -16.5t6 -21.5v-93q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v93q0 10 6 21.5t15 16.5l358 230q9 6 15 17.5t6 21.5v75q-38 0 -69 52 t-31 98v250q0 124 88 212t212 88z" />
+<glyph unicode="&#xe009;" d="M25 1100h1150q10 0 17.5 -7.5t7.5 -17.5v-1050q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v1050q0 10 7.5 17.5t17.5 7.5zM100 1000v-100h100v100h-100zM875 1000h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5t17.5 -7.5h550 q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM1000 1000v-100h100v100h-100zM100 800v-100h100v100h-100zM1000 800v-100h100v100h-100zM100 600v-100h100v100h-100zM1000 600v-100h100v100h-100zM875 500h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5 t17.5 -7.5h550q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM100 400v-100h100v100h-100zM1000 400v-100h100v100h-100zM100 200v-100h100v100h-100zM1000 200v-100h100v100h-100z" />
+<glyph unicode="&#xe010;" d="M50 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM50 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe011;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM850 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 700h200q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5 t35.5 14.5z" />
+<glyph unicode="&#xe012;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h700q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe013;" d="M465 477l571 571q8 8 18 8t17 -8l177 -177q8 -7 8 -17t-8 -18l-783 -784q-7 -8 -17.5 -8t-17.5 8l-384 384q-8 8 -8 18t8 17l177 177q7 8 17 8t18 -8l171 -171q7 -7 18 -7t18 7z" />
+<glyph unicode="&#xe014;" d="M904 1083l178 -179q8 -8 8 -18.5t-8 -17.5l-267 -268l267 -268q8 -7 8 -17.5t-8 -18.5l-178 -178q-8 -8 -18.5 -8t-17.5 8l-268 267l-268 -267q-7 -8 -17.5 -8t-18.5 8l-178 178q-8 8 -8 18.5t8 17.5l267 268l-267 268q-8 7 -8 17.5t8 18.5l178 178q8 8 18.5 8t17.5 -8 l268 -267l268 268q7 7 17.5 7t18.5 -7z" />
+<glyph unicode="&#xe015;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM425 900h150q10 0 17.5 -7.5t7.5 -17.5v-75h75q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5 t-17.5 -7.5h-75v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-75q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v75q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe016;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM325 800h350q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-350q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe017;" d="M550 1200h100q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM800 975v166q167 -62 272 -209.5t105 -331.5q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5 t-184.5 123t-123 184.5t-45.5 224q0 184 105 331.5t272 209.5v-166q-103 -55 -165 -155t-62 -220q0 -116 57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5q0 120 -62 220t-165 155z" />
+<glyph unicode="&#xe018;" d="M1025 1200h150q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM725 800h150q10 0 17.5 -7.5t7.5 -17.5v-750q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v750 q0 10 7.5 17.5t17.5 7.5zM425 500h150q10 0 17.5 -7.5t7.5 -17.5v-450q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v450q0 10 7.5 17.5t17.5 7.5zM125 300h150q10 0 17.5 -7.5t7.5 -17.5v-250q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5 v250q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe019;" d="M600 1174q33 0 74 -5l38 -152l5 -1q49 -14 94 -39l5 -2l134 80q61 -48 104 -105l-80 -134l3 -5q25 -44 39 -93l1 -6l152 -38q5 -43 5 -73q0 -34 -5 -74l-152 -38l-1 -6q-15 -49 -39 -93l-3 -5l80 -134q-48 -61 -104 -105l-134 81l-5 -3q-44 -25 -94 -39l-5 -2l-38 -151 q-43 -5 -74 -5q-33 0 -74 5l-38 151l-5 2q-49 14 -94 39l-5 3l-134 -81q-60 48 -104 105l80 134l-3 5q-25 45 -38 93l-2 6l-151 38q-6 42 -6 74q0 33 6 73l151 38l2 6q13 48 38 93l3 5l-80 134q47 61 105 105l133 -80l5 2q45 25 94 39l5 1l38 152q43 5 74 5zM600 815 q-89 0 -152 -63t-63 -151.5t63 -151.5t152 -63t152 63t63 151.5t-63 151.5t-152 63z" />
+<glyph unicode="&#xe020;" d="M500 1300h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-75h-1100v75q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5zM500 1200v-100h300v100h-300zM1100 900v-800q0 -41 -29.5 -70.5t-70.5 -29.5h-700q-41 0 -70.5 29.5t-29.5 70.5 v800h900zM300 800v-700h100v700h-100zM500 800v-700h100v700h-100zM700 800v-700h100v700h-100zM900 800v-700h100v700h-100z" />
+<glyph unicode="&#xe021;" d="M18 618l620 608q8 7 18.5 7t17.5 -7l608 -608q8 -8 5.5 -13t-12.5 -5h-175v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v375h-300v-375q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v575h-175q-10 0 -12.5 5t5.5 13z" />
+<glyph unicode="&#xe022;" d="M600 1200v-400q0 -41 29.5 -70.5t70.5 -29.5h300v-650q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5h450zM1000 800h-250q-21 0 -35.5 14.5t-14.5 35.5v250z" />
+<glyph unicode="&#xe023;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h50q10 0 17.5 -7.5t7.5 -17.5v-275h175q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe024;" d="M1300 0h-538l-41 400h-242l-41 -400h-538l431 1200h209l-21 -300h162l-20 300h208zM515 800l-27 -300h224l-27 300h-170z" />
+<glyph unicode="&#xe025;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-450h191q20 0 25.5 -11.5t-7.5 -27.5l-327 -400q-13 -16 -32 -16t-32 16l-327 400q-13 16 -7.5 27.5t25.5 11.5h191v450q0 21 14.5 35.5t35.5 14.5zM1125 400h50q10 0 17.5 -7.5t7.5 -17.5v-350q0 -10 -7.5 -17.5t-17.5 -7.5 h-1050q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h50q10 0 17.5 -7.5t7.5 -17.5v-175h900v175q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe026;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -275q-13 -16 -32 -16t-32 16l-223 275q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z " />
+<glyph unicode="&#xe027;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM632 914l223 -275q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5l223 275q13 16 32 16 t32 -16z" />
+<glyph unicode="&#xe028;" d="M225 1200h750q10 0 19.5 -7t12.5 -17l186 -652q7 -24 7 -49v-425q0 -12 -4 -27t-9 -17q-12 -6 -37 -6h-1100q-12 0 -27 4t-17 8q-6 13 -6 38l1 425q0 25 7 49l185 652q3 10 12.5 17t19.5 7zM878 1000h-556q-10 0 -19 -7t-11 -18l-87 -450q-2 -11 4 -18t16 -7h150 q10 0 19.5 -7t11.5 -17l38 -152q2 -10 11.5 -17t19.5 -7h250q10 0 19.5 7t11.5 17l38 152q2 10 11.5 17t19.5 7h150q10 0 16 7t4 18l-87 450q-2 11 -11 18t-19 7z" />
+<glyph unicode="&#xe029;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM540 820l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
+<glyph unicode="&#xe030;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-362q0 -10 -7.5 -17.5t-17.5 -7.5h-362q-11 0 -13 5.5t5 12.5l133 133q-109 76 -238 76q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5h150q0 -117 -45.5 -224 t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117z" />
+<glyph unicode="&#xe031;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-361q0 -11 -7.5 -18.5t-18.5 -7.5h-361q-11 0 -13 5.5t5 12.5l134 134q-110 75 -239 75q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5h-150q0 117 45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117zM1027 600h150 q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5q-192 0 -348 118l-134 -134q-7 -8 -12.5 -5.5t-5.5 12.5v360q0 11 7.5 18.5t18.5 7.5h360q10 0 12.5 -5.5t-5.5 -12.5l-133 -133q110 -76 240 -76q116 0 214.5 57t155.5 155.5t57 214.5z" />
+<glyph unicode="&#xe032;" d="M125 1200h1050q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-1050q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM1075 1000h-850q-10 0 -17.5 -7.5t-7.5 -17.5v-850q0 -10 7.5 -17.5t17.5 -7.5h850q10 0 17.5 7.5t7.5 17.5v850 q0 10 -7.5 17.5t-17.5 7.5zM325 900h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 900h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 700h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 700h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 500h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 500h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 300h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 300h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe033;" d="M900 800v200q0 83 -58.5 141.5t-141.5 58.5h-300q-82 0 -141 -59t-59 -141v-200h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h900q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-100zM400 800v150q0 21 15 35.5t35 14.5h200 q20 0 35 -14.5t15 -35.5v-150h-300z" />
+<glyph unicode="&#xe034;" d="M125 1100h50q10 0 17.5 -7.5t7.5 -17.5v-1075h-100v1075q0 10 7.5 17.5t17.5 7.5zM1075 1052q4 0 9 -2q16 -6 16 -23v-421q0 -6 -3 -12q-33 -59 -66.5 -99t-65.5 -58t-56.5 -24.5t-52.5 -6.5q-26 0 -57.5 6.5t-52.5 13.5t-60 21q-41 15 -63 22.5t-57.5 15t-65.5 7.5 q-85 0 -160 -57q-7 -5 -15 -5q-6 0 -11 3q-14 7 -14 22v438q22 55 82 98.5t119 46.5q23 2 43 0.5t43 -7t32.5 -8.5t38 -13t32.5 -11q41 -14 63.5 -21t57 -14t63.5 -7q103 0 183 87q7 8 18 8z" />
+<glyph unicode="&#xe035;" d="M600 1175q116 0 227 -49.5t192.5 -131t131 -192.5t49.5 -227v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v300q0 127 -70.5 231.5t-184.5 161.5t-245 57t-245 -57t-184.5 -161.5t-70.5 -231.5v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50 q-10 0 -17.5 7.5t-7.5 17.5v300q0 116 49.5 227t131 192.5t192.5 131t227 49.5zM220 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460q0 8 6 14t14 6zM820 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460 q0 8 6 14t14 6z" />
+<glyph unicode="&#xe036;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM900 668l120 120q7 7 17 7t17 -7l34 -34q7 -7 7 -17t-7 -17l-120 -120l120 -120q7 -7 7 -17 t-7 -17l-34 -34q-7 -7 -17 -7t-17 7l-120 119l-120 -119q-7 -7 -17 -7t-17 7l-34 34q-7 7 -7 17t7 17l119 120l-119 120q-7 7 -7 17t7 17l34 34q7 8 17 8t17 -8z" />
+<glyph unicode="&#xe037;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6 l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238q-6 8 -4.5 18t9.5 17l29 22q7 5 15 5z" />
+<glyph unicode="&#xe038;" d="M967 1004h3q11 -1 17 -10q135 -179 135 -396q0 -105 -34 -206.5t-98 -185.5q-7 -9 -17 -10h-3q-9 0 -16 6l-42 34q-8 6 -9 16t5 18q111 150 111 328q0 90 -29.5 176t-84.5 157q-6 9 -5 19t10 16l42 33q7 5 15 5zM321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5 t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238 q-6 8 -4.5 18.5t9.5 16.5l29 22q7 5 15 5z" />
+<glyph unicode="&#xe039;" d="M500 900h100v-100h-100v-100h-400v-100h-100v600h500v-300zM1200 700h-200v-100h200v-200h-300v300h-200v300h-100v200h600v-500zM100 1100v-300h300v300h-300zM800 1100v-300h300v300h-300zM300 900h-100v100h100v-100zM1000 900h-100v100h100v-100zM300 500h200v-500 h-500v500h200v100h100v-100zM800 300h200v-100h-100v-100h-200v100h-100v100h100v200h-200v100h300v-300zM100 400v-300h300v300h-300zM300 200h-100v100h100v-100zM1200 200h-100v100h100v-100zM700 0h-100v100h100v-100zM1200 0h-300v100h300v-100z" />
+<glyph unicode="&#xe040;" d="M100 200h-100v1000h100v-1000zM300 200h-100v1000h100v-1000zM700 200h-200v1000h200v-1000zM900 200h-100v1000h100v-1000zM1200 200h-200v1000h200v-1000zM400 0h-300v100h300v-100zM600 0h-100v91h100v-91zM800 0h-100v91h100v-91zM1100 0h-200v91h200v-91z" />
+<glyph unicode="&#xe041;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
+<glyph unicode="&#xe042;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM800 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-56 56l424 426l-700 700h150zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5 t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
+<glyph unicode="&#xe043;" d="M300 1200h825q75 0 75 -75v-900q0 -25 -18 -43l-64 -64q-8 -8 -13 -5.5t-5 12.5v950q0 10 -7.5 17.5t-17.5 7.5h-700q-25 0 -43 -18l-64 -64q-8 -8 -5.5 -13t12.5 -5h700q10 0 17.5 -7.5t7.5 -17.5v-950q0 -10 -7.5 -17.5t-17.5 -7.5h-850q-10 0 -17.5 7.5t-7.5 17.5v975 q0 25 18 43l139 139q18 18 43 18z" />
+<glyph unicode="&#xe044;" d="M250 1200h800q21 0 35.5 -14.5t14.5 -35.5v-1150l-450 444l-450 -445v1151q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe045;" d="M822 1200h-444q-11 0 -19 -7.5t-9 -17.5l-78 -301q-7 -24 7 -45l57 -108q6 -9 17.5 -15t21.5 -6h450q10 0 21.5 6t17.5 15l62 108q14 21 7 45l-83 301q-1 10 -9 17.5t-19 7.5zM1175 800h-150q-10 0 -21 -6.5t-15 -15.5l-78 -156q-4 -9 -15 -15.5t-21 -6.5h-550 q-10 0 -21 6.5t-15 15.5l-78 156q-4 9 -15 15.5t-21 6.5h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-650q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h750q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5 t7.5 17.5v650q0 10 -7.5 17.5t-17.5 7.5zM850 200h-500q-10 0 -19.5 -7t-11.5 -17l-38 -152q-2 -10 3.5 -17t15.5 -7h600q10 0 15.5 7t3.5 17l-38 152q-2 10 -11.5 17t-19.5 7z" />
+<glyph unicode="&#xe046;" d="M500 1100h200q56 0 102.5 -20.5t72.5 -50t44 -59t25 -50.5l6 -20h150q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5h150q2 8 6.5 21.5t24 48t45 61t72 48t102.5 21.5zM900 800v-100 h100v100h-100zM600 730q-95 0 -162.5 -67.5t-67.5 -162.5t67.5 -162.5t162.5 -67.5t162.5 67.5t67.5 162.5t-67.5 162.5t-162.5 67.5zM600 603q43 0 73 -30t30 -73t-30 -73t-73 -30t-73 30t-30 73t30 73t73 30z" />
+<glyph unicode="&#xe047;" d="M681 1199l385 -998q20 -50 60 -92q18 -19 36.5 -29.5t27.5 -11.5l10 -2v-66h-417v66q53 0 75 43.5t5 88.5l-82 222h-391q-58 -145 -92 -234q-11 -34 -6.5 -57t25.5 -37t46 -20t55 -6v-66h-365v66q56 24 84 52q12 12 25 30.5t20 31.5l7 13l399 1006h93zM416 521h340 l-162 457z" />
+<glyph unicode="&#xe048;" d="M753 641q5 -1 14.5 -4.5t36 -15.5t50.5 -26.5t53.5 -40t50.5 -54.5t35.5 -70t14.5 -87q0 -67 -27.5 -125.5t-71.5 -97.5t-98.5 -66.5t-108.5 -40.5t-102 -13h-500v89q41 7 70.5 32.5t29.5 65.5v827q0 24 -0.5 34t-3.5 24t-8.5 19.5t-17 13.5t-28 12.5t-42.5 11.5v71 l471 -1q57 0 115.5 -20.5t108 -57t80.5 -94t31 -124.5q0 -51 -15.5 -96.5t-38 -74.5t-45 -50.5t-38.5 -30.5zM400 700h139q78 0 130.5 48.5t52.5 122.5q0 41 -8.5 70.5t-29.5 55.5t-62.5 39.5t-103.5 13.5h-118v-350zM400 200h216q80 0 121 50.5t41 130.5q0 90 -62.5 154.5 t-156.5 64.5h-159v-400z" />
+<glyph unicode="&#xe049;" d="M877 1200l2 -57q-83 -19 -116 -45.5t-40 -66.5l-132 -839q-9 -49 13 -69t96 -26v-97h-500v97q186 16 200 98l173 832q3 17 3 30t-1.5 22.5t-9 17.5t-13.5 12.5t-21.5 10t-26 8.5t-33.5 10q-13 3 -19 5v57h425z" />
+<glyph unicode="&#xe050;" d="M1300 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM175 1000h-75v-800h75l-125 -167l-125 167h75v800h-75l125 167z" />
+<glyph unicode="&#xe051;" d="M1100 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-650q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v650h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM1167 50l-167 -125v75h-800v-75l-167 125l167 125v-75h800v75z" />
+<glyph unicode="&#xe052;" d="M50 1100h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe053;" d="M250 1100h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM250 500h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe054;" d="M500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000 q-21 0 -35.5 14.5t-14.5 35.5zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5zM0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5z" />
+<glyph unicode="&#xe055;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe056;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 1100h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 800h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 500h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 500h800q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 200h800 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe057;" d="M400 0h-100v1100h100v-1100zM550 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM267 550l-167 -125v75h-200v100h200v75zM550 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe058;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM900 0h-100v1100h100v-1100zM50 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM1100 600h200v-100h-200v-75l-167 125l167 125v-75zM50 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe059;" d="M75 1000h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53v650q0 31 22 53t53 22zM1200 300l-300 300l300 300v-600z" />
+<glyph unicode="&#xe060;" d="M44 1100h1112q18 0 31 -13t13 -31v-1012q0 -18 -13 -31t-31 -13h-1112q-18 0 -31 13t-13 31v1012q0 18 13 31t31 13zM100 1000v-737l247 182l298 -131l-74 156l293 318l236 -288v500h-1000zM342 884q56 0 95 -39t39 -94.5t-39 -95t-95 -39.5t-95 39.5t-39 95t39 94.5 t95 39z" />
+<glyph unicode="&#xe062;" d="M648 1169q117 0 216 -60t156.5 -161t57.5 -218q0 -115 -70 -258q-69 -109 -158 -225.5t-143 -179.5l-54 -62q-9 8 -25.5 24.5t-63.5 67.5t-91 103t-98.5 128t-95.5 148q-60 132 -60 249q0 88 34 169.5t91.5 142t137 96.5t166.5 36zM652.5 974q-91.5 0 -156.5 -65 t-65 -157t65 -156.5t156.5 -64.5t156.5 64.5t65 156.5t-65 157t-156.5 65z" />
+<glyph unicode="&#xe063;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 173v854q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57z" />
+<glyph unicode="&#xe064;" d="M554 1295q21 -72 57.5 -143.5t76 -130t83 -118t82.5 -117t70 -116t49.5 -126t18.5 -136.5q0 -71 -25.5 -135t-68.5 -111t-99 -82t-118.5 -54t-125.5 -23q-84 5 -161.5 34t-139.5 78.5t-99 125t-37 164.5q0 69 18 136.5t49.5 126.5t69.5 116.5t81.5 117.5t83.5 119 t76.5 131t58.5 143zM344 710q-23 -33 -43.5 -70.5t-40.5 -102.5t-17 -123q1 -37 14.5 -69.5t30 -52t41 -37t38.5 -24.5t33 -15q21 -7 32 -1t13 22l6 34q2 10 -2.5 22t-13.5 19q-5 4 -14 12t-29.5 40.5t-32.5 73.5q-26 89 6 271q2 11 -6 11q-8 1 -15 -10z" />
+<glyph unicode="&#xe065;" d="M1000 1013l108 115q2 1 5 2t13 2t20.5 -1t25 -9.5t28.5 -21.5q22 -22 27 -43t0 -32l-6 -10l-108 -115zM350 1100h400q50 0 105 -13l-187 -187h-368q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v182l200 200v-332 q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM1009 803l-362 -362l-161 -50l55 170l355 355z" />
+<glyph unicode="&#xe066;" d="M350 1100h361q-164 -146 -216 -200h-195q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-103q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M824 1073l339 -301q8 -7 8 -17.5t-8 -17.5l-340 -306q-7 -6 -12.5 -4t-6.5 11v203q-26 1 -54.5 0t-78.5 -7.5t-92 -17.5t-86 -35t-70 -57q10 59 33 108t51.5 81.5t65 58.5t68.5 40.5t67 24.5t56 13.5t40 4.5v210q1 10 6.5 12.5t13.5 -4.5z" />
+<glyph unicode="&#xe067;" d="M350 1100h350q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-219q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M643 639l395 395q7 7 17.5 7t17.5 -7l101 -101q7 -7 7 -17.5t-7 -17.5l-531 -532q-7 -7 -17.5 -7t-17.5 7l-248 248q-7 7 -7 17.5t7 17.5l101 101q7 7 17.5 7t17.5 -7l111 -111q8 -7 18 -7t18 7z" />
+<glyph unicode="&#xe068;" d="M318 918l264 264q8 8 18 8t18 -8l260 -264q7 -8 4.5 -13t-12.5 -5h-170v-200h200v173q0 10 5 12t13 -5l264 -260q8 -7 8 -17.5t-8 -17.5l-264 -265q-8 -7 -13 -5t-5 12v173h-200v-200h170q10 0 12.5 -5t-4.5 -13l-260 -264q-8 -8 -18 -8t-18 8l-264 264q-8 8 -5.5 13 t12.5 5h175v200h-200v-173q0 -10 -5 -12t-13 5l-264 265q-8 7 -8 17.5t8 17.5l264 260q8 7 13 5t5 -12v-173h200v200h-175q-10 0 -12.5 5t5.5 13z" />
+<glyph unicode="&#xe069;" d="M250 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe070;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5 t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe071;" d="M1200 1050v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-492 480q-15 14 -15 35t15 35l492 480q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25z" />
+<glyph unicode="&#xe072;" d="M243 1074l814 -498q18 -11 18 -26t-18 -26l-814 -498q-18 -11 -30.5 -4t-12.5 28v1000q0 21 12.5 28t30.5 -4z" />
+<glyph unicode="&#xe073;" d="M250 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM650 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800 q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe074;" d="M1100 950v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5z" />
+<glyph unicode="&#xe075;" d="M500 612v438q0 21 10.5 25t25.5 -10l492 -480q15 -14 15 -35t-15 -35l-492 -480q-15 -14 -25.5 -10t-10.5 25v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10z" />
+<glyph unicode="&#xe076;" d="M1048 1102l100 1q20 0 35 -14.5t15 -35.5l5 -1000q0 -21 -14.5 -35.5t-35.5 -14.5l-100 -1q-21 0 -35.5 14.5t-14.5 35.5l-2 437l-463 -454q-14 -15 -24.5 -10.5t-10.5 25.5l-2 437l-462 -455q-15 -14 -25.5 -9.5t-10.5 24.5l-5 1000q0 21 10.5 25.5t25.5 -10.5l466 -450 l-2 438q0 20 10.5 24.5t25.5 -9.5l466 -451l-2 438q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe077;" d="M850 1100h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10l464 -453v438q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe078;" d="M686 1081l501 -540q15 -15 10.5 -26t-26.5 -11h-1042q-22 0 -26.5 11t10.5 26l501 540q15 15 36 15t36 -15zM150 400h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe079;" d="M885 900l-352 -353l352 -353l-197 -198l-552 552l552 550z" />
+<glyph unicode="&#xe080;" d="M1064 547l-551 -551l-198 198l353 353l-353 353l198 198z" />
+<glyph unicode="&#xe081;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM650 900h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-150 q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5h150v-150q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v150h150q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-150v150q0 21 -14.5 35.5t-35.5 14.5z" />
+<glyph unicode="&#xe082;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM850 700h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5 t35.5 -14.5h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5z" />
+<glyph unicode="&#xe083;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM741.5 913q-12.5 0 -21.5 -9l-120 -120l-120 120q-9 9 -21.5 9 t-21.5 -9l-141 -141q-9 -9 -9 -21.5t9 -21.5l120 -120l-120 -120q-9 -9 -9 -21.5t9 -21.5l141 -141q9 -9 21.5 -9t21.5 9l120 120l120 -120q9 -9 21.5 -9t21.5 9l141 141q9 9 9 21.5t-9 21.5l-120 120l120 120q9 9 9 21.5t-9 21.5l-141 141q-9 9 -21.5 9z" />
+<glyph unicode="&#xe084;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM546 623l-84 85q-7 7 -17.5 7t-18.5 -7l-139 -139q-7 -8 -7 -18t7 -18 l242 -241q7 -8 17.5 -8t17.5 8l375 375q7 7 7 17.5t-7 18.5l-139 139q-7 7 -17.5 7t-17.5 -7z" />
+<glyph unicode="&#xe085;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM588 941q-29 0 -59 -5.5t-63 -20.5t-58 -38.5t-41.5 -63t-16.5 -89.5 q0 -25 20 -25h131q30 -5 35 11q6 20 20.5 28t45.5 8q20 0 31.5 -10.5t11.5 -28.5q0 -23 -7 -34t-26 -18q-1 0 -13.5 -4t-19.5 -7.5t-20 -10.5t-22 -17t-18.5 -24t-15.5 -35t-8 -46q-1 -8 5.5 -16.5t20.5 -8.5h173q7 0 22 8t35 28t37.5 48t29.5 74t12 100q0 47 -17 83 t-42.5 57t-59.5 34.5t-64 18t-59 4.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe086;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM675 1000h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5 t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5zM675 700h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h75v-200h-75q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h350q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5 t-17.5 7.5h-75v275q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe087;" d="M525 1200h150q10 0 17.5 -7.5t7.5 -17.5v-194q103 -27 178.5 -102.5t102.5 -178.5h194q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-194q-27 -103 -102.5 -178.5t-178.5 -102.5v-194q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v194 q-103 27 -178.5 102.5t-102.5 178.5h-194q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h194q27 103 102.5 178.5t178.5 102.5v194q0 10 7.5 17.5t17.5 7.5zM700 893v-168q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v168q-68 -23 -119 -74 t-74 -119h168q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-168q23 -68 74 -119t119 -74v168q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-168q68 23 119 74t74 119h-168q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h168 q-23 68 -74 119t-119 74z" />
+<glyph unicode="&#xe088;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM759 823l64 -64q7 -7 7 -17.5t-7 -17.5l-124 -124l124 -124q7 -7 7 -17.5t-7 -17.5l-64 -64q-7 -7 -17.5 -7t-17.5 7l-124 124l-124 -124q-7 -7 -17.5 -7t-17.5 7l-64 64 q-7 7 -7 17.5t7 17.5l124 124l-124 124q-7 7 -7 17.5t7 17.5l64 64q7 7 17.5 7t17.5 -7l124 -124l124 124q7 7 17.5 7t17.5 -7z" />
+<glyph unicode="&#xe089;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM782 788l106 -106q7 -7 7 -17.5t-7 -17.5l-320 -321q-8 -7 -18 -7t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l197 197q7 7 17.5 7t17.5 -7z" />
+<glyph unicode="&#xe090;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5q0 -120 65 -225 l587 587q-105 65 -225 65zM965 819l-584 -584q104 -62 219 -62q116 0 214.5 57t155.5 155.5t57 214.5q0 115 -62 219z" />
+<glyph unicode="&#xe091;" d="M39 582l522 427q16 13 27.5 8t11.5 -26v-291h550q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-550v-291q0 -21 -11.5 -26t-27.5 8l-522 427q-16 13 -16 32t16 32z" />
+<glyph unicode="&#xe092;" d="M639 1009l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291h-550q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h550v291q0 21 11.5 26t27.5 -8z" />
+<glyph unicode="&#xe093;" d="M682 1161l427 -522q13 -16 8 -27.5t-26 -11.5h-291v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v550h-291q-21 0 -26 11.5t8 27.5l427 522q13 16 32 16t32 -16z" />
+<glyph unicode="&#xe094;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-550h291q21 0 26 -11.5t-8 -27.5l-427 -522q-13 -16 -32 -16t-32 16l-427 522q-13 16 -8 27.5t26 11.5h291v550q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe095;" d="M639 1109l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291q-94 -2 -182 -20t-170.5 -52t-147 -92.5t-100.5 -135.5q5 105 27 193.5t67.5 167t113 135t167 91.5t225.5 42v262q0 21 11.5 26t27.5 -8z" />
+<glyph unicode="&#xe096;" d="M850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5zM350 0h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249 q8 7 18 7t18 -7l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5z" />
+<glyph unicode="&#xe097;" d="M1014 1120l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249q8 7 18 7t18 -7zM250 600h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5z" />
+<glyph unicode="&#xe101;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM704 900h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5 t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe102;" d="M260 1200q9 0 19 -2t15 -4l5 -2q22 -10 44 -23l196 -118q21 -13 36 -24q29 -21 37 -12q11 13 49 35l196 118q22 13 45 23q17 7 38 7q23 0 47 -16.5t37 -33.5l13 -16q14 -21 18 -45l25 -123l8 -44q1 -9 8.5 -14.5t17.5 -5.5h61q10 0 17.5 -7.5t7.5 -17.5v-50 q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 -7.5t-7.5 -17.5v-175h-400v300h-200v-300h-400v175q0 10 -7.5 17.5t-17.5 7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5h61q11 0 18 3t7 8q0 4 9 52l25 128q5 25 19 45q2 3 5 7t13.5 15t21.5 19.5t26.5 15.5 t29.5 7zM915 1079l-166 -162q-7 -7 -5 -12t12 -5h219q10 0 15 7t2 17l-51 149q-3 10 -11 12t-15 -6zM463 917l-177 157q-8 7 -16 5t-11 -12l-51 -143q-3 -10 2 -17t15 -7h231q11 0 12.5 5t-5.5 12zM500 0h-375q-10 0 -17.5 7.5t-7.5 17.5v375h400v-400zM1100 400v-375 q0 -10 -7.5 -17.5t-17.5 -7.5h-375v400h400z" />
+<glyph unicode="&#xe103;" d="M1165 1190q8 3 21 -6.5t13 -17.5q-2 -178 -24.5 -323.5t-55.5 -245.5t-87 -174.5t-102.5 -118.5t-118 -68.5t-118.5 -33t-120 -4.5t-105 9.5t-90 16.5q-61 12 -78 11q-4 1 -12.5 0t-34 -14.5t-52.5 -40.5l-153 -153q-26 -24 -37 -14.5t-11 43.5q0 64 42 102q8 8 50.5 45 t66.5 58q19 17 35 47t13 61q-9 55 -10 102.5t7 111t37 130t78 129.5q39 51 80 88t89.5 63.5t94.5 45t113.5 36t129 31t157.5 37t182 47.5zM1116 1098q-8 9 -22.5 -3t-45.5 -50q-38 -47 -119 -103.5t-142 -89.5l-62 -33q-56 -30 -102 -57t-104 -68t-102.5 -80.5t-85.5 -91 t-64 -104.5q-24 -56 -31 -86t2 -32t31.5 17.5t55.5 59.5q25 30 94 75.5t125.5 77.5t147.5 81q70 37 118.5 69t102 79.5t99 111t86.5 148.5q22 50 24 60t-6 19z" />
+<glyph unicode="&#xe104;" d="M653 1231q-39 -67 -54.5 -131t-10.5 -114.5t24.5 -96.5t47.5 -80t63.5 -62.5t68.5 -46.5t65 -30q-4 7 -17.5 35t-18.5 39.5t-17 39.5t-17 43t-13 42t-9.5 44.5t-2 42t4 43t13.5 39t23 38.5q96 -42 165 -107.5t105 -138t52 -156t13 -159t-19 -149.5q-13 -55 -44 -106.5 t-68 -87t-78.5 -64.5t-72.5 -45t-53 -22q-72 -22 -127 -11q-31 6 -13 19q6 3 17 7q13 5 32.5 21t41 44t38.5 63.5t21.5 81.5t-6.5 94.5t-50 107t-104 115.5q10 -104 -0.5 -189t-37 -140.5t-65 -93t-84 -52t-93.5 -11t-95 24.5q-80 36 -131.5 114t-53.5 171q-2 23 0 49.5 t4.5 52.5t13.5 56t27.5 60t46 64.5t69.5 68.5q-8 -53 -5 -102.5t17.5 -90t34 -68.5t44.5 -39t49 -2q31 13 38.5 36t-4.5 55t-29 64.5t-36 75t-26 75.5q-15 85 2 161.5t53.5 128.5t85.5 92.5t93.5 61t81.5 25.5z" />
+<glyph unicode="&#xe105;" d="M600 1094q82 0 160.5 -22.5t140 -59t116.5 -82.5t94.5 -95t68 -95t42.5 -82.5t14 -57.5t-14 -57.5t-43 -82.5t-68.5 -95t-94.5 -95t-116.5 -82.5t-140 -59t-159.5 -22.5t-159.5 22.5t-140 59t-116.5 82.5t-94.5 95t-68.5 95t-43 82.5t-14 57.5t14 57.5t42.5 82.5t68 95 t94.5 95t116.5 82.5t140 59t160.5 22.5zM888 829q-15 15 -18 12t5 -22q25 -57 25 -119q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 59 23 114q8 19 4.5 22t-17.5 -12q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q22 -36 47 -71t70 -82t92.5 -81t113 -58.5t133.5 -24.5 t133.5 24t113 58.5t92.5 81.5t70 81.5t47 70.5q11 18 9 42.5t-14 41.5q-90 117 -163 189zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l35 34q14 15 12.5 33.5t-16.5 33.5q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
+<glyph unicode="&#xe106;" d="M592 0h-148l31 120q-91 20 -175.5 68.5t-143.5 106.5t-103.5 119t-66.5 110t-22 76q0 21 14 57.5t42.5 82.5t68 95t94.5 95t116.5 82.5t140 59t160.5 22.5q61 0 126 -15l32 121h148zM944 770l47 181q108 -85 176.5 -192t68.5 -159q0 -26 -19.5 -71t-59.5 -102t-93 -112 t-129 -104.5t-158 -75.5l46 173q77 49 136 117t97 131q11 18 9 42.5t-14 41.5q-54 70 -107 130zM310 824q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q18 -30 39 -60t57 -70.5t74 -73t90 -61t105 -41.5l41 154q-107 18 -178.5 101.5t-71.5 193.5q0 59 23 114q8 19 4.5 22 t-17.5 -12zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l12 11l22 86l-3 4q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
+<glyph unicode="&#xe107;" d="M-90 100l642 1066q20 31 48 28.5t48 -35.5l642 -1056q21 -32 7.5 -67.5t-50.5 -35.5h-1294q-37 0 -50.5 34t7.5 66zM155 200h345v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h345l-445 723zM496 700h208q20 0 32 -14.5t8 -34.5l-58 -252 q-4 -20 -21.5 -34.5t-37.5 -14.5h-54q-20 0 -37.5 14.5t-21.5 34.5l-58 252q-4 20 8 34.5t32 14.5z" />
+<glyph unicode="&#xe108;" d="M650 1200q62 0 106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -93 100 -113v-64q0 -21 -13 -29t-32 1l-205 128l-205 -128q-19 -9 -32 -1t-13 29v64q0 20 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5v41 q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44z" />
+<glyph unicode="&#xe109;" d="M850 1200h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-150h-1100v150q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-50h500v50q0 21 14.5 35.5t35.5 14.5zM1100 800v-750q0 -21 -14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v750h1100zM100 600v-100h100v100h-100zM300 600v-100h100v100h-100zM500 600v-100h100v100h-100zM700 600v-100h100v100h-100zM900 600v-100h100v100h-100zM100 400v-100h100v100h-100zM300 400v-100h100v100h-100zM500 400 v-100h100v100h-100zM700 400v-100h100v100h-100zM900 400v-100h100v100h-100zM100 200v-100h100v100h-100zM300 200v-100h100v100h-100zM500 200v-100h100v100h-100zM700 200v-100h100v100h-100zM900 200v-100h100v100h-100z" />
+<glyph unicode="&#xe110;" d="M1135 1165l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-159l-600 -600h-291q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h209l600 600h241v150q0 21 10.5 25t24.5 -10zM522 819l-141 -141l-122 122h-209q-21 0 -35.5 14.5 t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h291zM1135 565l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-241l-181 181l141 141l122 -122h159v150q0 21 10.5 25t24.5 -10z" />
+<glyph unicode="&#xe111;" d="M100 1100h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5z" />
+<glyph unicode="&#xe112;" d="M150 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM850 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM1100 800v-300q0 -41 -3 -77.5t-15 -89.5t-32 -96t-58 -89t-89 -77t-129 -51t-174 -20t-174 20 t-129 51t-89 77t-58 89t-32 96t-15 89.5t-3 77.5v300h300v-250v-27v-42.5t1.5 -41t5 -38t10 -35t16.5 -30t25.5 -24.5t35 -19t46.5 -12t60 -4t60 4.5t46.5 12.5t35 19.5t25 25.5t17 30.5t10 35t5 38t2 40.5t-0.5 42v25v250h300z" />
+<glyph unicode="&#xe113;" d="M1100 411l-198 -199l-353 353l-353 -353l-197 199l551 551z" />
+<glyph unicode="&#xe114;" d="M1101 789l-550 -551l-551 551l198 199l353 -353l353 353z" />
+<glyph unicode="&#xe115;" d="M404 1000h746q21 0 35.5 -14.5t14.5 -35.5v-551h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v401h-381zM135 984l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-400h385l215 -200h-750q-21 0 -35.5 14.5 t-14.5 35.5v550h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe116;" d="M56 1200h94q17 0 31 -11t18 -27l38 -162h896q24 0 39 -18.5t10 -42.5l-100 -475q-5 -21 -27 -42.5t-55 -21.5h-633l48 -200h535q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-50q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-300v-50 q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-31q-18 0 -32.5 10t-20.5 19l-5 10l-201 961h-54q-20 0 -35 14.5t-15 35.5t15 35.5t35 14.5z" />
+<glyph unicode="&#xe117;" d="M1200 1000v-100h-1200v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500zM0 800h1200v-800h-1200v800z" />
+<glyph unicode="&#xe118;" d="M200 800l-200 -400v600h200q0 41 29.5 70.5t70.5 29.5h300q42 0 71 -29.5t29 -70.5h500v-200h-1000zM1500 700l-300 -700h-1200l300 700h1200z" />
+<glyph unicode="&#xe119;" d="M635 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-601h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v601h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe120;" d="M936 864l249 -229q14 -15 14 -35.5t-14 -35.5l-249 -229q-15 -15 -25.5 -10.5t-10.5 24.5v151h-600v-151q0 -20 -10.5 -24.5t-25.5 10.5l-249 229q-14 15 -14 35.5t14 35.5l249 229q15 15 25.5 10.5t10.5 -25.5v-149h600v149q0 21 10.5 25.5t25.5 -10.5z" />
+<glyph unicode="&#xe121;" d="M1169 400l-172 732q-5 23 -23 45.5t-38 22.5h-672q-20 0 -38 -20t-23 -41l-172 -739h1138zM1100 300h-1000q-41 0 -70.5 -29.5t-29.5 -70.5v-100q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v100q0 41 -29.5 70.5t-70.5 29.5zM800 100v100h100v-100h-100 zM1000 100v100h100v-100h-100z" />
+<glyph unicode="&#xe122;" d="M1150 1100q21 0 35.5 -14.5t14.5 -35.5v-850q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v850q0 21 14.5 35.5t35.5 14.5zM1000 200l-675 200h-38l47 -276q3 -16 -5.5 -20t-29.5 -4h-7h-84q-20 0 -34.5 14t-18.5 35q-55 337 -55 351v250v6q0 16 1 23.5t6.5 14 t17.5 6.5h200l675 250v-850zM0 750v-250q-4 0 -11 0.5t-24 6t-30 15t-24 30t-11 48.5v50q0 26 10.5 46t25 30t29 16t25.5 7z" />
+<glyph unicode="&#xe123;" d="M553 1200h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q19 0 33 -14.5t14 -35t-13 -40.5t-31 -27q-8 -4 -23 -9.5t-65 -19.5t-103 -25t-132.5 -20t-158.5 -9q-57 0 -115 5t-104 12t-88.5 15.5t-73.5 17.5t-54.5 16t-35.5 12l-11 4 q-18 8 -31 28t-13 40.5t14 35t33 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3.5 32t28.5 13zM498 110q50 -6 102 -6q53 0 102 6q-12 -49 -39.5 -79.5t-62.5 -30.5t-63 30.5t-39 79.5z" />
+<glyph unicode="&#xe124;" d="M800 946l224 78l-78 -224l234 -45l-180 -155l180 -155l-234 -45l78 -224l-224 78l-45 -234l-155 180l-155 -180l-45 234l-224 -78l78 224l-234 45l180 155l-180 155l234 45l-78 224l224 -78l45 234l155 -180l155 180z" />
+<glyph unicode="&#xe125;" d="M650 1200h50q40 0 70 -40.5t30 -84.5v-150l-28 -125h328q40 0 70 -40.5t30 -84.5v-100q0 -45 -29 -74l-238 -344q-16 -24 -38 -40.5t-45 -16.5h-250q-7 0 -42 25t-66 50l-31 25h-61q-45 0 -72.5 18t-27.5 57v400q0 36 20 63l145 196l96 198q13 28 37.5 48t51.5 20z M650 1100l-100 -212l-150 -213v-375h100l136 -100h214l250 375v125h-450l50 225v175h-50zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe126;" d="M600 1100h250q23 0 45 -16.5t38 -40.5l238 -344q29 -29 29 -74v-100q0 -44 -30 -84.5t-70 -40.5h-328q28 -118 28 -125v-150q0 -44 -30 -84.5t-70 -40.5h-50q-27 0 -51.5 20t-37.5 48l-96 198l-145 196q-20 27 -20 63v400q0 39 27.5 57t72.5 18h61q124 100 139 100z M50 1000h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM636 1000l-136 -100h-100v-375l150 -213l100 -212h50v175l-50 225h450v125l-250 375h-214z" />
+<glyph unicode="&#xe127;" d="M356 873l363 230q31 16 53 -6l110 -112q13 -13 13.5 -32t-11.5 -34l-84 -121h302q84 0 138 -38t54 -110t-55 -111t-139 -39h-106l-131 -339q-6 -21 -19.5 -41t-28.5 -20h-342q-7 0 -90 81t-83 94v525q0 17 14 35.5t28 28.5zM400 792v-503l100 -89h293l131 339 q6 21 19.5 41t28.5 20h203q21 0 30.5 25t0.5 50t-31 25h-456h-7h-6h-5.5t-6 0.5t-5 1.5t-5 2t-4 2.5t-4 4t-2.5 4.5q-12 25 5 47l146 183l-86 83zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500 q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe128;" d="M475 1103l366 -230q2 -1 6 -3.5t14 -10.5t18 -16.5t14.5 -20t6.5 -22.5v-525q0 -13 -86 -94t-93 -81h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-85 0 -139.5 39t-54.5 111t54 110t138 38h302l-85 121q-11 15 -10.5 34t13.5 32l110 112q22 22 53 6zM370 945l146 -183 q17 -22 5 -47q-2 -2 -3.5 -4.5t-4 -4t-4 -2.5t-5 -2t-5 -1.5t-6 -0.5h-6h-6.5h-6h-475v-100h221q15 0 29 -20t20 -41l130 -339h294l106 89v503l-342 236zM1050 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5 v500q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe129;" d="M550 1294q72 0 111 -55t39 -139v-106l339 -131q21 -6 41 -19.5t20 -28.5v-342q0 -7 -81 -90t-94 -83h-525q-17 0 -35.5 14t-28.5 28l-9 14l-230 363q-16 31 6 53l112 110q13 13 32 13.5t34 -11.5l121 -84v302q0 84 38 138t110 54zM600 972v203q0 21 -25 30.5t-50 0.5 t-25 -31v-456v-7v-6v-5.5t-0.5 -6t-1.5 -5t-2 -5t-2.5 -4t-4 -4t-4.5 -2.5q-25 -12 -47 5l-183 146l-83 -86l236 -339h503l89 100v293l-339 131q-21 6 -41 19.5t-20 28.5zM450 200h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe130;" d="M350 1100h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5zM600 306v-106q0 -84 -39 -139t-111 -55t-110 54t-38 138v302l-121 -84q-15 -12 -34 -11.5t-32 13.5l-112 110 q-22 22 -6 53l230 363q1 2 3.5 6t10.5 13.5t16.5 17t20 13.5t22.5 6h525q13 0 94 -83t81 -90v-342q0 -15 -20 -28.5t-41 -19.5zM308 900l-236 -339l83 -86l183 146q22 17 47 5q2 -1 4.5 -2.5t4 -4t2.5 -4t2 -5t1.5 -5t0.5 -6v-5.5v-6v-7v-456q0 -22 25 -31t50 0.5t25 30.5 v203q0 15 20 28.5t41 19.5l339 131v293l-89 100h-503z" />
+<glyph unicode="&#xe131;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM914 632l-275 223q-16 13 -27.5 8t-11.5 -26v-137h-275 q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h275v-137q0 -21 11.5 -26t27.5 8l275 223q16 13 16 32t-16 32z" />
+<glyph unicode="&#xe132;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM561 855l-275 -223q-16 -13 -16 -32t16 -32l275 -223q16 -13 27.5 -8 t11.5 26v137h275q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5h-275v137q0 21 -11.5 26t-27.5 -8z" />
+<glyph unicode="&#xe133;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM855 639l-223 275q-13 16 -32 16t-32 -16l-223 -275q-13 -16 -8 -27.5 t26 -11.5h137v-275q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v275h137q21 0 26 11.5t-8 27.5z" />
+<glyph unicode="&#xe134;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM675 900h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-275h-137q-21 0 -26 -11.5 t8 -27.5l223 -275q13 -16 32 -16t32 16l223 275q13 16 8 27.5t-26 11.5h-137v275q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe135;" d="M600 1176q116 0 222.5 -46t184 -123.5t123.5 -184t46 -222.5t-46 -222.5t-123.5 -184t-184 -123.5t-222.5 -46t-222.5 46t-184 123.5t-123.5 184t-46 222.5t46 222.5t123.5 184t184 123.5t222.5 46zM627 1101q-15 -12 -36.5 -20.5t-35.5 -12t-43 -8t-39 -6.5 q-15 -3 -45.5 0t-45.5 -2q-20 -7 -51.5 -26.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79q-9 -34 5 -93t8 -87q0 -9 17 -44.5t16 -59.5q12 0 23 -5t23.5 -15t19.5 -14q16 -8 33 -15t40.5 -15t34.5 -12q21 -9 52.5 -32t60 -38t57.5 -11 q7 -15 -3 -34t-22.5 -40t-9.5 -38q13 -21 23 -34.5t27.5 -27.5t36.5 -18q0 -7 -3.5 -16t-3.5 -14t5 -17q104 -2 221 112q30 29 46.5 47t34.5 49t21 63q-13 8 -37 8.5t-36 7.5q-15 7 -49.5 15t-51.5 19q-18 0 -41 -0.5t-43 -1.5t-42 -6.5t-38 -16.5q-51 -35 -66 -12 q-4 1 -3.5 25.5t0.5 25.5q-6 13 -26.5 17.5t-24.5 6.5q1 15 -0.5 30.5t-7 28t-18.5 11.5t-31 -21q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q7 -12 18 -24t21.5 -20.5t20 -15t15.5 -10.5l5 -3q2 12 7.5 30.5t8 34.5t-0.5 32q-3 18 3.5 29 t18 22.5t15.5 24.5q6 14 10.5 35t8 31t15.5 22.5t34 22.5q-6 18 10 36q8 0 24 -1.5t24.5 -1.5t20 4.5t20.5 15.5q-10 23 -31 42.5t-37.5 29.5t-49 27t-43.5 23q0 1 2 8t3 11.5t1.5 10.5t-1 9.5t-4.5 4.5q31 -13 58.5 -14.5t38.5 2.5l12 5q5 28 -9.5 46t-36.5 24t-50 15 t-41 20q-18 -4 -37 0zM613 994q0 -17 8 -42t17 -45t9 -23q-8 1 -39.5 5.5t-52.5 10t-37 16.5q3 11 16 29.5t16 25.5q10 -10 19 -10t14 6t13.5 14.5t16.5 12.5z" />
+<glyph unicode="&#xe136;" d="M756 1157q164 92 306 -9l-259 -138l145 -232l251 126q6 -89 -34 -156.5t-117 -110.5q-60 -34 -127 -39.5t-126 16.5l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5t15 37.5l600 599q-34 101 5.5 201.5t135.5 154.5z" />
+<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M100 1196h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 1096h-200v-100h200v100zM100 796h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 696h-500v-100h500v100zM100 396h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 296h-300v-100h300v100z " />
+<glyph unicode="&#xe138;" d="M150 1200h900q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM700 500v-300l-200 -200v500l-350 500h900z" />
+<glyph unicode="&#xe139;" d="M500 1200h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5zM500 1100v-100h200v100h-200zM1200 400v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v200h1200z" />
+<glyph unicode="&#xe140;" d="M50 1200h300q21 0 25 -10.5t-10 -24.5l-94 -94l199 -199q7 -8 7 -18t-7 -18l-106 -106q-8 -7 -18 -7t-18 7l-199 199l-94 -94q-14 -14 -24.5 -10t-10.5 25v300q0 21 14.5 35.5t35.5 14.5zM850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-199 -199q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l199 199l-94 94q-14 14 -10 24.5t25 10.5zM364 470l106 -106q7 -8 7 -18t-7 -18l-199 -199l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l199 199 q8 7 18 7t18 -7zM1071 271l94 94q14 14 24.5 10t10.5 -25v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -25 10.5t10 24.5l94 94l-199 199q-7 8 -7 18t7 18l106 106q8 7 18 7t18 -7z" />
+<glyph unicode="&#xe141;" d="M596 1192q121 0 231.5 -47.5t190 -127t127 -190t47.5 -231.5t-47.5 -231.5t-127 -190.5t-190 -127t-231.5 -47t-231.5 47t-190.5 127t-127 190.5t-47 231.5t47 231.5t127 190t190.5 127t231.5 47.5zM596 1010q-112 0 -207.5 -55.5t-151 -151t-55.5 -207.5t55.5 -207.5 t151 -151t207.5 -55.5t207.5 55.5t151 151t55.5 207.5t-55.5 207.5t-151 151t-207.5 55.5zM454.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38.5 -16.5t-38.5 16.5t-16 39t16 38.5t38.5 16zM754.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38 -16.5q-14 0 -29 10l-55 -145 q17 -23 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 23 16 39t38.5 16zM345.5 709q22.5 0 38.5 -16t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16zM854.5 709q22.5 0 38.5 -16 t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16z" />
+<glyph unicode="&#xe142;" d="M546 173l469 470q91 91 99 192q7 98 -52 175.5t-154 94.5q-22 4 -47 4q-34 0 -66.5 -10t-56.5 -23t-55.5 -38t-48 -41.5t-48.5 -47.5q-376 -375 -391 -390q-30 -27 -45 -41.5t-37.5 -41t-32 -46.5t-16 -47.5t-1.5 -56.5q9 -62 53.5 -95t99.5 -33q74 0 125 51l548 548 q36 36 20 75q-7 16 -21.5 26t-32.5 10q-26 0 -50 -23q-13 -12 -39 -38l-341 -338q-15 -15 -35.5 -15.5t-34.5 13.5t-14 34.5t14 34.5q327 333 361 367q35 35 67.5 51.5t78.5 16.5q14 0 29 -1q44 -8 74.5 -35.5t43.5 -68.5q14 -47 2 -96.5t-47 -84.5q-12 -11 -32 -32 t-79.5 -81t-114.5 -115t-124.5 -123.5t-123 -119.5t-96.5 -89t-57 -45q-56 -27 -120 -27q-70 0 -129 32t-93 89q-48 78 -35 173t81 163l511 511q71 72 111 96q91 55 198 55q80 0 152 -33q78 -36 129.5 -103t66.5 -154q17 -93 -11 -183.5t-94 -156.5l-482 -476 q-15 -15 -36 -16t-37 14t-17.5 34t14.5 35z" />
+<glyph unicode="&#xe143;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104zM896 972q-33 0 -64.5 -19t-56.5 -46t-47.5 -53.5t-43.5 -45.5t-37.5 -19t-36 19t-40 45.5t-43 53.5t-54 46t-65.5 19q-67 0 -122.5 -55.5t-55.5 -132.5q0 -23 13.5 -51t46 -65t57.5 -63t76 -75l22 -22q15 -14 44 -44t50.5 -51t46 -44t41 -35t23 -12 t23.5 12t42.5 36t46 44t52.5 52t44 43q4 4 12 13q43 41 63.5 62t52 55t46 55t26 46t11.5 44q0 79 -53 133.5t-120 54.5z" />
+<glyph unicode="&#xe144;" d="M776.5 1214q93.5 0 159.5 -66l141 -141q66 -66 66 -160q0 -42 -28 -95.5t-62 -87.5l-29 -29q-31 53 -77 99l-18 18l95 95l-247 248l-389 -389l212 -212l-105 -106l-19 18l-141 141q-66 66 -66 159t66 159l283 283q65 66 158.5 66zM600 706l105 105q10 -8 19 -17l141 -141 q66 -66 66 -159t-66 -159l-283 -283q-66 -66 -159 -66t-159 66l-141 141q-66 66 -66 159.5t66 159.5l55 55q29 -55 75 -102l18 -17l-95 -95l247 -248l389 389z" />
+<glyph unicode="&#xe145;" d="M603 1200q85 0 162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5v953q0 21 30 46.5t81 48t129 37.5t163 15zM300 1000v-700h600v700h-600zM600 254q-43 0 -73.5 -30.5t-30.5 -73.5t30.5 -73.5t73.5 -30.5t73.5 30.5 t30.5 73.5t-30.5 73.5t-73.5 30.5z" />
+<glyph unicode="&#xe146;" d="M902 1185l283 -282q15 -15 15 -36t-14.5 -35.5t-35.5 -14.5t-35 15l-36 35l-279 -267v-300l-212 210l-308 -307l-280 -203l203 280l307 308l-210 212h300l267 279l-35 36q-15 14 -15 35t14.5 35.5t35.5 14.5t35 -15z" />
+<glyph unicode="&#xe148;" d="M700 1248v-78q38 -5 72.5 -14.5t75.5 -31.5t71 -53.5t52 -84t24 -118.5h-159q-4 36 -10.5 59t-21 45t-40 35.5t-64.5 20.5v-307l64 -13q34 -7 64 -16.5t70 -32t67.5 -52.5t47.5 -80t20 -112q0 -139 -89 -224t-244 -97v-77h-100v79q-150 16 -237 103q-40 40 -52.5 93.5 t-15.5 139.5h139q5 -77 48.5 -126t117.5 -65v335l-27 8q-46 14 -79 26.5t-72 36t-63 52t-40 72.5t-16 98q0 70 25 126t67.5 92t94.5 57t110 27v77h100zM600 754v274q-29 -4 -50 -11t-42 -21.5t-31.5 -41.5t-10.5 -65q0 -29 7 -50.5t16.5 -34t28.5 -22.5t31.5 -14t37.5 -10 q9 -3 13 -4zM700 547v-310q22 2 42.5 6.5t45 15.5t41.5 27t29 42t12 59.5t-12.5 59.5t-38 44.5t-53 31t-66.5 24.5z" />
+<glyph unicode="&#xe149;" d="M561 1197q84 0 160.5 -40t123.5 -109.5t47 -147.5h-153q0 40 -19.5 71.5t-49.5 48.5t-59.5 26t-55.5 9q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -26 13.5 -63t26.5 -61t37 -66q6 -9 9 -14h241v-100h-197q8 -50 -2.5 -115t-31.5 -95q-45 -62 -99 -112 q34 10 83 17.5t71 7.5q32 1 102 -16t104 -17q83 0 136 30l50 -147q-31 -19 -58 -30.5t-55 -15.5t-42 -4.5t-46 -0.5q-23 0 -76 17t-111 32.5t-96 11.5q-39 -3 -82 -16t-67 -25l-23 -11l-55 145q4 3 16 11t15.5 10.5t13 9t15.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221v100h166q-23 47 -44 104q-7 20 -12 41.5t-6 55.5t6 66.5t29.5 70.5t58.5 71q97 88 263 88z" />
+<glyph unicode="&#xe150;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM935 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-900h-200v900h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe151;" d="M1000 700h-100v100h-100v-100h-100v500h300v-500zM400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM801 1100v-200h100v200h-100zM1000 350l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150z " />
+<glyph unicode="&#xe152;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 1050l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150zM1000 0h-100v100h-100v-100h-100v500h300v-500zM801 400v-200h100v200h-100z " />
+<glyph unicode="&#xe153;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 700h-100v400h-100v100h200v-500zM1100 0h-100v100h-200v400h300v-500zM901 400v-200h100v200h-100z" />
+<glyph unicode="&#xe154;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1100 700h-100v100h-200v400h300v-500zM901 1100v-200h100v200h-100zM1000 0h-100v400h-100v100h200v-500z" />
+<glyph unicode="&#xe155;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM900 1000h-200v200h200v-200zM1000 700h-300v200h300v-200zM1100 400h-400v200h400v-200zM1200 100h-500v200h500v-200z" />
+<glyph unicode="&#xe156;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1200 1000h-500v200h500v-200zM1100 700h-400v200h400v-200zM1000 400h-300v200h300v-200zM900 100h-200v200h200v-200z" />
+<glyph unicode="&#xe157;" d="M350 1100h400q162 0 256 -93.5t94 -256.5v-400q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5z" />
+<glyph unicode="&#xe158;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-163 0 -256.5 92.5t-93.5 257.5v400q0 163 94 256.5t256 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM440 770l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
+<glyph unicode="&#xe159;" d="M350 1100h400q163 0 256.5 -94t93.5 -256v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 163 92.5 256.5t257.5 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM350 700h400q21 0 26.5 -12t-6.5 -28l-190 -253q-12 -17 -30 -17t-30 17l-190 253q-12 16 -6.5 28t26.5 12z" />
+<glyph unicode="&#xe160;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -163 -92.5 -256.5t-257.5 -93.5h-400q-163 0 -256.5 94t-93.5 256v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM580 693l190 -253q12 -16 6.5 -28t-26.5 -12h-400q-21 0 -26.5 12t6.5 28l190 253q12 17 30 17t30 -17z" />
+<glyph unicode="&#xe161;" d="M550 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h450q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-450q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM338 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
+<glyph unicode="&#xe162;" d="M793 1182l9 -9q8 -10 5 -27q-3 -11 -79 -225.5t-78 -221.5l300 1q24 0 32.5 -17.5t-5.5 -35.5q-1 0 -133.5 -155t-267 -312.5t-138.5 -162.5q-12 -15 -26 -15h-9l-9 8q-9 11 -4 32q2 9 42 123.5t79 224.5l39 110h-302q-23 0 -31 19q-10 21 6 41q75 86 209.5 237.5 t228 257t98.5 111.5q9 16 25 16h9z" />
+<glyph unicode="&#xe163;" d="M350 1100h400q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-450q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h450q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400 q0 165 92.5 257.5t257.5 92.5zM938 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
+<glyph unicode="&#xe164;" d="M750 1200h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -10.5 -25t-24.5 10l-109 109l-312 -312q-15 -15 -35.5 -15t-35.5 15l-141 141q-15 15 -15 35.5t15 35.5l312 312l-109 109q-14 14 -10 24.5t25 10.5zM456 900h-156q-41 0 -70.5 -29.5t-29.5 -70.5v-500 q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v148l200 200v-298q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5h300z" />
+<glyph unicode="&#xe165;" d="M600 1186q119 0 227.5 -46.5t187 -125t125 -187t46.5 -227.5t-46.5 -227.5t-125 -187t-187 -125t-227.5 -46.5t-227.5 46.5t-187 125t-125 187t-46.5 227.5t46.5 227.5t125 187t187 125t227.5 46.5zM600 1022q-115 0 -212 -56.5t-153.5 -153.5t-56.5 -212t56.5 -212 t153.5 -153.5t212 -56.5t212 56.5t153.5 153.5t56.5 212t-56.5 212t-153.5 153.5t-212 56.5zM600 794q80 0 137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137t57 137t137 57z" />
+<glyph unicode="&#xe166;" d="M450 1200h200q21 0 35.5 -14.5t14.5 -35.5v-350h245q20 0 25 -11t-9 -26l-383 -426q-14 -15 -33.5 -15t-32.5 15l-379 426q-13 15 -8.5 26t25.5 11h250v350q0 21 14.5 35.5t35.5 14.5zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe167;" d="M583 1182l378 -435q14 -15 9 -31t-26 -16h-244v-250q0 -20 -17 -35t-39 -15h-200q-20 0 -32 14.5t-12 35.5v250h-250q-20 0 -25.5 16.5t8.5 31.5l383 431q14 16 33.5 17t33.5 -14zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe168;" d="M396 723l369 369q7 7 17.5 7t17.5 -7l139 -139q7 -8 7 -18.5t-7 -17.5l-525 -525q-7 -8 -17.5 -8t-17.5 8l-292 291q-7 8 -7 18t7 18l139 139q8 7 18.5 7t17.5 -7zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50 h-100z" />
+<glyph unicode="&#xe169;" d="M135 1023l142 142q14 14 35 14t35 -14l77 -77l-212 -212l-77 76q-14 15 -14 36t14 35zM655 855l210 210q14 14 24.5 10t10.5 -25l-2 -599q-1 -20 -15.5 -35t-35.5 -15l-597 -1q-21 0 -25 10.5t10 24.5l208 208l-154 155l212 212zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5 v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe170;" d="M350 1200l599 -2q20 -1 35 -15.5t15 -35.5l1 -597q0 -21 -10.5 -25t-24.5 10l-208 208l-155 -154l-212 212l155 154l-210 210q-14 14 -10 24.5t25 10.5zM524 512l-76 -77q-15 -14 -36 -14t-35 14l-142 142q-14 14 -14 35t14 35l77 77zM50 300h1000q21 0 35.5 -14.5 t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe171;" d="M1200 103l-483 276l-314 -399v423h-399l1196 796v-1096zM483 424v-230l683 953z" />
+<glyph unicode="&#xe172;" d="M1100 1000v-850q0 -21 -14.5 -35.5t-35.5 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200z" />
+<glyph unicode="&#xe173;" d="M1100 1000l-2 -149l-299 -299l-95 95q-9 9 -21.5 9t-21.5 -9l-149 -147h-312v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1132 638l106 -106q7 -7 7 -17.5t-7 -17.5l-420 -421q-8 -7 -18 -7 t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l297 297q7 7 17.5 7t17.5 -7z" />
+<glyph unicode="&#xe174;" d="M1100 1000v-269l-103 -103l-134 134q-15 15 -33.5 16.5t-34.5 -12.5l-266 -266h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1202 572l70 -70q15 -15 15 -35.5t-15 -35.5l-131 -131 l131 -131q15 -15 15 -35.5t-15 -35.5l-70 -70q-15 -15 -35.5 -15t-35.5 15l-131 131l-131 -131q-15 -15 -35.5 -15t-35.5 15l-70 70q-15 15 -15 35.5t15 35.5l131 131l-131 131q-15 15 -15 35.5t15 35.5l70 70q15 15 35.5 15t35.5 -15l131 -131l131 131q15 15 35.5 15 t35.5 -15z" />
+<glyph unicode="&#xe175;" d="M1100 1000v-300h-350q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM850 600h100q21 0 35.5 -14.5t14.5 -35.5v-250h150q21 0 25 -10.5t-10 -24.5 l-230 -230q-14 -14 -35 -14t-35 14l-230 230q-14 14 -10 24.5t25 10.5h150v250q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe176;" d="M1100 1000v-400l-165 165q-14 15 -35 15t-35 -15l-263 -265h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM935 565l230 -229q14 -15 10 -25.5t-25 -10.5h-150v-250q0 -20 -14.5 -35 t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35v250h-150q-21 0 -25 10.5t10 25.5l230 229q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe177;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-150h-1200v150q0 21 14.5 35.5t35.5 14.5zM1200 800v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v550h1200zM100 500v-200h400v200h-400z" />
+<glyph unicode="&#xe178;" d="M935 1165l248 -230q14 -14 14 -35t-14 -35l-248 -230q-14 -14 -24.5 -10t-10.5 25v150h-400v200h400v150q0 21 10.5 25t24.5 -10zM200 800h-50q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v-200zM400 800h-100v200h100v-200zM18 435l247 230 q14 14 24.5 10t10.5 -25v-150h400v-200h-400v-150q0 -21 -10.5 -25t-24.5 10l-247 230q-15 14 -15 35t15 35zM900 300h-100v200h100v-200zM1000 500h51q20 0 34.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-34.5 -14.5h-51v200z" />
+<glyph unicode="&#xe179;" d="M862 1073l276 116q25 18 43.5 8t18.5 -41v-1106q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v397q-4 1 -11 5t-24 17.5t-30 29t-24 42t-11 56.5v359q0 31 18.5 65t43.5 52zM550 1200q22 0 34.5 -12.5t14.5 -24.5l1 -13v-450q0 -28 -10.5 -59.5 t-25 -56t-29 -45t-25.5 -31.5l-10 -11v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447q-4 4 -11 11.5t-24 30.5t-30 46t-24 55t-11 60v450q0 2 0.5 5.5t4 12t8.5 15t14.5 12t22.5 5.5q20 0 32.5 -12.5t14.5 -24.5l3 -13v-350h100v350v5.5t2.5 12 t7 15t15 12t25.5 5.5q23 0 35.5 -12.5t13.5 -24.5l1 -13v-350h100v350q0 2 0.5 5.5t3 12t7 15t15 12t24.5 5.5z" />
+<glyph unicode="&#xe180;" d="M1200 1100v-56q-4 0 -11 -0.5t-24 -3t-30 -7.5t-24 -15t-11 -24v-888q0 -22 25 -34.5t50 -13.5l25 -2v-56h-400v56q75 0 87.5 6.5t12.5 43.5v394h-500v-394q0 -37 12.5 -43.5t87.5 -6.5v-56h-400v56q4 0 11 0.5t24 3t30 7.5t24 15t11 24v888q0 22 -25 34.5t-50 13.5 l-25 2v56h400v-56q-75 0 -87.5 -6.5t-12.5 -43.5v-394h500v394q0 37 -12.5 43.5t-87.5 6.5v56h400z" />
+<glyph unicode="&#xe181;" d="M675 1000h375q21 0 35.5 -14.5t14.5 -35.5v-150h-105l-295 -98v98l-200 200h-400l100 100h375zM100 900h300q41 0 70.5 -29.5t29.5 -70.5v-500q0 -41 -29.5 -70.5t-70.5 -29.5h-300q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5zM100 800v-200h300v200 h-300zM1100 535l-400 -133v163l400 133v-163zM100 500v-200h300v200h-300zM1100 398v-248q0 -21 -14.5 -35.5t-35.5 -14.5h-375l-100 -100h-375l-100 100h400l200 200h105z" />
+<glyph unicode="&#xe182;" d="M17 1007l162 162q17 17 40 14t37 -22l139 -194q14 -20 11 -44.5t-20 -41.5l-119 -118q102 -142 228 -268t267 -227l119 118q17 17 42.5 19t44.5 -12l192 -136q19 -14 22.5 -37.5t-13.5 -40.5l-163 -162q-3 -1 -9.5 -1t-29.5 2t-47.5 6t-62.5 14.5t-77.5 26.5t-90 42.5 t-101.5 60t-111 83t-119 108.5q-74 74 -133.5 150.5t-94.5 138.5t-60 119.5t-34.5 100t-15 74.5t-4.5 48z" />
+<glyph unicode="&#xe183;" d="M600 1100q92 0 175 -10.5t141.5 -27t108.5 -36.5t81.5 -40t53.5 -37t31 -27l9 -10v-200q0 -21 -14.5 -33t-34.5 -9l-202 34q-20 3 -34.5 20t-14.5 38v146q-141 24 -300 24t-300 -24v-146q0 -21 -14.5 -38t-34.5 -20l-202 -34q-20 -3 -34.5 9t-14.5 33v200q3 4 9.5 10.5 t31 26t54 37.5t80.5 39.5t109 37.5t141 26.5t175 10.5zM600 795q56 0 97 -9.5t60 -23.5t30 -28t12 -24l1 -10v-50l365 -303q14 -15 24.5 -40t10.5 -45v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v212q0 20 10.5 45t24.5 40l365 303v50 q0 4 1 10.5t12 23t30 29t60 22.5t97 10z" />
+<glyph unicode="&#xe184;" d="M1100 700l-200 -200h-600l-200 200v500h200v-200h200v200h200v-200h200v200h200v-500zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5 t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe185;" d="M700 1100h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-1000h300v1000q0 41 -29.5 70.5t-70.5 29.5zM1100 800h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-700h300v700q0 41 -29.5 70.5t-70.5 29.5zM400 0h-300v400q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-400z " />
+<glyph unicode="&#xe186;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
+<glyph unicode="&#xe187;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 300h-100v200h-100v-200h-100v500h100v-200h100v200h100v-500zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
+<glyph unicode="&#xe188;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-300h200v-100h-300v500h300v-100zM900 700h-200v-300h200v-100h-300v500h300v-100z" />
+<glyph unicode="&#xe189;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 400l-300 150l300 150v-300zM900 550l-300 -150v300z" />
+<glyph unicode="&#xe190;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM900 300h-700v500h700v-500zM800 700h-130q-38 0 -66.5 -43t-28.5 -108t27 -107t68 -42h130v300zM300 700v-300 h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130z" />
+<glyph unicode="&#xe191;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 300h-100v400h-100v100h200v-500z M700 300h-100v100h100v-100z" />
+<glyph unicode="&#xe192;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM300 700h200v-400h-300v500h100v-100zM900 300h-100v400h-100v100h200v-500zM300 600v-200h100v200h-100z M700 300h-100v100h100v-100z" />
+<glyph unicode="&#xe193;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 500l-199 -200h-100v50l199 200v150h-200v100h300v-300zM900 300h-100v400h-100v100h200v-500zM701 300h-100 v100h100v-100z" />
+<glyph unicode="&#xe194;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700h-300v-200h300v-100h-300l-100 100v200l100 100h300v-100z" />
+<glyph unicode="&#xe195;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700v-100l-50 -50l100 -100v-50h-100l-100 100h-150v-100h-100v400h300zM500 700v-100h200v100h-200z" />
+<glyph unicode="&#xe197;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -207t-85 -207t-205 -86.5h-128v250q0 21 -14.5 35.5t-35.5 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-250h-222q-80 0 -136 57.5t-56 136.5q0 69 43 122.5t108 67.5q-2 19 -2 37q0 100 49 185 t134 134t185 49zM525 500h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -244q-13 -16 -32 -16t-32 16l-223 244q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe198;" d="M502 1089q110 0 201 -59.5t135 -156.5q43 15 89 15q121 0 206 -86.5t86 -206.5q0 -99 -60 -181t-150 -110l-378 360q-13 16 -31.5 16t-31.5 -16l-381 -365h-9q-79 0 -135.5 57.5t-56.5 136.5q0 69 43 122.5t108 67.5q-2 19 -2 38q0 100 49 184.5t133.5 134t184.5 49.5z M632 467l223 -228q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5q199 204 223 228q19 19 31.5 19t32.5 -19z" />
+<glyph unicode="&#xe199;" d="M700 100v100h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170l-270 -300h400v-100h-50q-21 0 -35.5 -14.5t-14.5 -35.5v-50h400v50q0 21 -14.5 35.5t-35.5 14.5h-50z" />
+<glyph unicode="&#xe200;" d="M600 1179q94 0 167.5 -56.5t99.5 -145.5q89 -6 150.5 -71.5t61.5 -155.5q0 -61 -29.5 -112.5t-79.5 -82.5q9 -29 9 -55q0 -74 -52.5 -126.5t-126.5 -52.5q-55 0 -100 30v-251q21 0 35.5 -14.5t14.5 -35.5v-50h-300v50q0 21 14.5 35.5t35.5 14.5v251q-45 -30 -100 -30 q-74 0 -126.5 52.5t-52.5 126.5q0 18 4 38q-47 21 -75.5 65t-28.5 97q0 74 52.5 126.5t126.5 52.5q5 0 23 -2q0 2 -1 10t-1 13q0 116 81.5 197.5t197.5 81.5z" />
+<glyph unicode="&#xe201;" d="M1010 1010q111 -111 150.5 -260.5t0 -299t-150.5 -260.5q-83 -83 -191.5 -126.5t-218.5 -43.5t-218.5 43.5t-191.5 126.5q-111 111 -150.5 260.5t0 299t150.5 260.5q83 83 191.5 126.5t218.5 43.5t218.5 -43.5t191.5 -126.5zM476 1065q-4 0 -8 -1q-121 -34 -209.5 -122.5 t-122.5 -209.5q-4 -12 2.5 -23t18.5 -14l36 -9q3 -1 7 -1q23 0 29 22q27 96 98 166q70 71 166 98q11 3 17.5 13.5t3.5 22.5l-9 35q-3 13 -14 19q-7 4 -15 4zM512 920q-4 0 -9 -2q-80 -24 -138.5 -82.5t-82.5 -138.5q-4 -13 2 -24t19 -14l34 -9q4 -1 8 -1q22 0 28 21 q18 58 58.5 98.5t97.5 58.5q12 3 18 13.5t3 21.5l-9 35q-3 12 -14 19q-7 4 -15 4zM719.5 719.5q-49.5 49.5 -119.5 49.5t-119.5 -49.5t-49.5 -119.5t49.5 -119.5t119.5 -49.5t119.5 49.5t49.5 119.5t-49.5 119.5zM855 551q-22 0 -28 -21q-18 -58 -58.5 -98.5t-98.5 -57.5 q-11 -4 -17 -14.5t-3 -21.5l9 -35q3 -12 14 -19q7 -4 15 -4q4 0 9 2q80 24 138.5 82.5t82.5 138.5q4 13 -2.5 24t-18.5 14l-34 9q-4 1 -8 1zM1000 515q-23 0 -29 -22q-27 -96 -98 -166q-70 -71 -166 -98q-11 -3 -17.5 -13.5t-3.5 -22.5l9 -35q3 -13 14 -19q7 -4 15 -4 q4 0 8 1q121 34 209.5 122.5t122.5 209.5q4 12 -2.5 23t-18.5 14l-36 9q-3 1 -7 1z" />
+<glyph unicode="&#xe202;" d="M700 800h300v-380h-180v200h-340v-200h-380v755q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM700 300h162l-212 -212l-212 212h162v200h100v-200zM520 0h-395q-10 0 -17.5 7.5t-7.5 17.5v395zM1000 220v-195q0 -10 -7.5 -17.5t-17.5 -7.5h-195z" />
+<glyph unicode="&#xe203;" d="M700 800h300v-520l-350 350l-550 -550v1095q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM862 200h-162v-200h-100v200h-162l212 212zM480 0h-355q-10 0 -17.5 7.5t-7.5 17.5v55h380v-80zM1000 80v-55q0 -10 -7.5 -17.5t-17.5 -7.5h-155v80h180z" />
+<glyph unicode="&#xe204;" d="M1162 800h-162v-200h100l100 -100h-300v300h-162l212 212zM200 800h200q27 0 40 -2t29.5 -10.5t23.5 -30t7 -57.5h300v-100h-600l-200 -350v450h100q0 36 7 57.5t23.5 30t29.5 10.5t40 2zM800 400h240l-240 -400h-800l300 500h500v-100z" />
+<glyph unicode="&#xe205;" d="M650 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM1000 850v150q41 0 70.5 -29.5t29.5 -70.5v-800 q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-1 0 -20 4l246 246l-326 326v324q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM412 250l-212 -212v162h-200v100h200v162z" />
+<glyph unicode="&#xe206;" d="M450 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM800 850v150q41 0 70.5 -29.5t29.5 -70.5v-500 h-200v-300h200q0 -36 -7 -57.5t-23.5 -30t-29.5 -10.5t-40 -2h-600q-41 0 -70.5 29.5t-29.5 70.5v800q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM1212 250l-212 -212v162h-200v100h200v162z" />
+<glyph unicode="&#xe209;" d="M658 1197l637 -1104q23 -38 7 -65.5t-60 -27.5h-1276q-44 0 -60 27.5t7 65.5l637 1104q22 39 54 39t54 -39zM704 800h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM500 300v-100h200 v100h-200z" />
+<glyph unicode="&#xe210;" d="M425 1100h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM825 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM25 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5zM425 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5 v150q0 10 7.5 17.5t17.5 7.5zM25 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe211;" d="M700 1200h100v-200h-100v-100h350q62 0 86.5 -39.5t-3.5 -94.5l-66 -132q-41 -83 -81 -134h-772q-40 51 -81 134l-66 132q-28 55 -3.5 94.5t86.5 39.5h350v100h-100v200h100v100h200v-100zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100 h-950l138 100h-13q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe212;" d="M600 1300q40 0 68.5 -29.5t28.5 -70.5h-194q0 41 28.5 70.5t68.5 29.5zM443 1100h314q18 -37 18 -75q0 -8 -3 -25h328q41 0 44.5 -16.5t-30.5 -38.5l-175 -145h-678l-178 145q-34 22 -29 38.5t46 16.5h328q-3 17 -3 25q0 38 18 75zM250 700h700q21 0 35.5 -14.5 t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-150v-200l275 -200h-950l275 200v200h-150q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe213;" d="M600 1181q75 0 128 -53t53 -128t-53 -128t-128 -53t-128 53t-53 128t53 128t128 53zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13 l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe214;" d="M600 1300q47 0 92.5 -53.5t71 -123t25.5 -123.5q0 -78 -55.5 -133.5t-133.5 -55.5t-133.5 55.5t-55.5 133.5q0 62 34 143l144 -143l111 111l-163 163q34 26 63 26zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45 zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe215;" d="M600 1200l300 -161v-139h-300q0 -57 18.5 -108t50 -91.5t63 -72t70 -67.5t57.5 -61h-530q-60 83 -90.5 177.5t-30.5 178.5t33 164.5t87.5 139.5t126 96.5t145.5 41.5v-98zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100 h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe216;" d="M600 1300q41 0 70.5 -29.5t29.5 -70.5v-78q46 -26 73 -72t27 -100v-50h-400v50q0 54 27 100t73 72v78q0 41 29.5 70.5t70.5 29.5zM400 800h400q54 0 100 -27t72 -73h-172v-100h200v-100h-200v-100h200v-100h-200v-100h200q0 -83 -58.5 -141.5t-141.5 -58.5h-400 q-83 0 -141.5 58.5t-58.5 141.5v400q0 83 58.5 141.5t141.5 58.5z" />
+<glyph unicode="&#xe218;" d="M150 1100h900q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM125 400h950q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-283l224 -224q13 -13 13 -31.5t-13 -32 t-31.5 -13.5t-31.5 13l-88 88h-524l-87 -88q-13 -13 -32 -13t-32 13.5t-13 32t13 31.5l224 224h-289q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM541 300l-100 -100h324l-100 100h-124z" />
+<glyph unicode="&#xe219;" d="M200 1100h800q83 0 141.5 -58.5t58.5 -141.5v-200h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100v200q0 83 58.5 141.5t141.5 58.5zM100 600h1000q41 0 70.5 -29.5 t29.5 -70.5v-300h-1200v300q0 41 29.5 70.5t70.5 29.5zM300 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200zM1100 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200z" />
+<glyph unicode="&#xe221;" d="M480 1165l682 -683q31 -31 31 -75.5t-31 -75.5l-131 -131h-481l-517 518q-32 31 -32 75.5t32 75.5l295 296q31 31 75.5 31t76.5 -31zM108 794l342 -342l303 304l-341 341zM250 100h800q21 0 35.5 -14.5t14.5 -35.5v-50h-900v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe223;" d="M1057 647l-189 506q-8 19 -27.5 33t-40.5 14h-400q-21 0 -40.5 -14t-27.5 -33l-189 -506q-8 -19 1.5 -33t30.5 -14h625v-150q0 -21 14.5 -35.5t35.5 -14.5t35.5 14.5t14.5 35.5v150h125q21 0 30.5 14t1.5 33zM897 0h-595v50q0 21 14.5 35.5t35.5 14.5h50v50 q0 21 14.5 35.5t35.5 14.5h48v300h200v-300h47q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-50z" />
+<glyph unicode="&#xe224;" d="M900 800h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-375v591l-300 300v84q0 10 7.5 17.5t17.5 7.5h375v-400zM1200 900h-200v200zM400 600h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-650q-10 0 -17.5 7.5t-7.5 17.5v950q0 10 7.5 17.5t17.5 7.5h375v-400zM700 700h-200v200z " />
+<glyph unicode="&#xe225;" d="M484 1095h195q75 0 146 -32.5t124 -86t89.5 -122.5t48.5 -142q18 -14 35 -20q31 -10 64.5 6.5t43.5 48.5q10 34 -15 71q-19 27 -9 43q5 8 12.5 11t19 -1t23.5 -16q41 -44 39 -105q-3 -63 -46 -106.5t-104 -43.5h-62q-7 -55 -35 -117t-56 -100l-39 -234q-3 -20 -20 -34.5 t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l12 70q-49 -14 -91 -14h-195q-24 0 -65 8l-11 -64q-3 -20 -20 -34.5t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l26 157q-84 74 -128 175l-159 53q-19 7 -33 26t-14 40v50q0 21 14.5 35.5t35.5 14.5h124q11 87 56 166l-111 95 q-16 14 -12.5 23.5t24.5 9.5h203q116 101 250 101zM675 1000h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h250q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe226;" d="M641 900l423 247q19 8 42 2.5t37 -21.5l32 -38q14 -15 12.5 -36t-17.5 -34l-139 -120h-390zM50 1100h106q67 0 103 -17t66 -71l102 -212h823q21 0 35.5 -14.5t14.5 -35.5v-50q0 -21 -14 -40t-33 -26l-737 -132q-23 -4 -40 6t-26 25q-42 67 -100 67h-300q-62 0 -106 44 t-44 106v200q0 62 44 106t106 44zM173 928h-80q-19 0 -28 -14t-9 -35v-56q0 -51 42 -51h134q16 0 21.5 8t5.5 24q0 11 -16 45t-27 51q-18 28 -43 28zM550 727q-32 0 -54.5 -22.5t-22.5 -54.5t22.5 -54.5t54.5 -22.5t54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5zM130 389 l152 130q18 19 34 24t31 -3.5t24.5 -17.5t25.5 -28q28 -35 50.5 -51t48.5 -13l63 5l48 -179q13 -61 -3.5 -97.5t-67.5 -79.5l-80 -69q-47 -40 -109 -35.5t-103 51.5l-130 151q-40 47 -35.5 109.5t51.5 102.5zM380 377l-102 -88q-31 -27 2 -65l37 -43q13 -15 27.5 -19.5 t31.5 6.5l61 53q19 16 14 49q-2 20 -12 56t-17 45q-11 12 -19 14t-23 -8z" />
+<glyph unicode="&#xe227;" d="M625 1200h150q10 0 17.5 -7.5t7.5 -17.5v-109q79 -33 131 -87.5t53 -128.5q1 -46 -15 -84.5t-39 -61t-46 -38t-39 -21.5l-17 -6q6 0 15 -1.5t35 -9t50 -17.5t53 -30t50 -45t35.5 -64t14.5 -84q0 -59 -11.5 -105.5t-28.5 -76.5t-44 -51t-49.5 -31.5t-54.5 -16t-49.5 -6.5 t-43.5 -1v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-100v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-175q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v600h-75q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5h175v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h100v75q0 10 7.5 17.5t17.5 7.5zM400 900v-200h263q28 0 48.5 10.5t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-263zM400 500v-200h363q28 0 48.5 10.5 t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-363z" />
+<glyph unicode="&#xe230;" d="M212 1198h780q86 0 147 -61t61 -147v-416q0 -51 -18 -142.5t-36 -157.5l-18 -66q-29 -87 -93.5 -146.5t-146.5 -59.5h-572q-82 0 -147 59t-93 147q-8 28 -20 73t-32 143.5t-20 149.5v416q0 86 61 147t147 61zM600 1045q-70 0 -132.5 -11.5t-105.5 -30.5t-78.5 -41.5 t-57 -45t-36 -41t-20.5 -30.5l-6 -12l156 -243h560l156 243q-2 5 -6 12.5t-20 29.5t-36.5 42t-57 44.5t-79 42t-105 29.5t-132.5 12zM762 703h-157l195 261z" />
+<glyph unicode="&#xe231;" d="M475 1300h150q103 0 189 -86t86 -189v-500q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
+<glyph unicode="&#xe232;" d="M475 1300h96q0 -150 89.5 -239.5t239.5 -89.5v-446q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
+<glyph unicode="&#xe233;" d="M1294 767l-638 -283l-378 170l-78 -60v-224l100 -150v-199l-150 148l-150 -149v200l100 150v250q0 4 -0.5 10.5t0 9.5t1 8t3 8t6.5 6l47 40l-147 65l642 283zM1000 380l-350 -166l-350 166v147l350 -165l350 165v-147z" />
+<glyph unicode="&#xe234;" d="M250 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM650 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM1050 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
+<glyph unicode="&#xe235;" d="M550 1100q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 700q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 300q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
+<glyph unicode="&#xe236;" d="M125 1100h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM125 700h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM125 300h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe237;" d="M350 1200h500q162 0 256 -93.5t94 -256.5v-500q0 -165 -93.5 -257.5t-256.5 -92.5h-500q-165 0 -257.5 92.5t-92.5 257.5v500q0 165 92.5 257.5t257.5 92.5zM900 1000h-600q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h600q41 0 70.5 29.5 t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5zM350 900h500q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-500q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 14.5 35.5t35.5 14.5zM400 800v-200h400v200h-400z" />
+<glyph unicode="&#xe238;" d="M150 1100h1000q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe239;" d="M650 1187q87 -67 118.5 -156t0 -178t-118.5 -155q-87 66 -118.5 155t0 178t118.5 156zM300 800q124 0 212 -88t88 -212q-124 0 -212 88t-88 212zM1000 800q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM300 500q124 0 212 -88t88 -212q-124 0 -212 88t-88 212z M1000 500q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM700 199v-144q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v142q40 -4 43 -4q17 0 57 6z" />
+<glyph unicode="&#xe240;" d="M745 878l69 19q25 6 45 -12l298 -295q11 -11 15 -26.5t-2 -30.5q-5 -14 -18 -23.5t-28 -9.5h-8q1 0 1 -13q0 -29 -2 -56t-8.5 -62t-20 -63t-33 -53t-51 -39t-72.5 -14h-146q-184 0 -184 288q0 24 10 47q-20 4 -62 4t-63 -4q11 -24 11 -47q0 -288 -184 -288h-142 q-48 0 -84.5 21t-56 51t-32 71.5t-16 75t-3.5 68.5q0 13 2 13h-7q-15 0 -27.5 9.5t-18.5 23.5q-6 15 -2 30.5t15 25.5l298 296q20 18 46 11l76 -19q20 -5 30.5 -22.5t5.5 -37.5t-22.5 -31t-37.5 -5l-51 12l-182 -193h891l-182 193l-44 -12q-20 -5 -37.5 6t-22.5 31t6 37.5 t31 22.5z" />
+<glyph unicode="&#xe241;" d="M1200 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM500 450h-25q0 15 -4 24.5t-9 14.5t-17 7.5t-20 3t-25 0.5h-100v-425q0 -11 12.5 -17.5t25.5 -7.5h12v-50h-200v50q50 0 50 25v425h-100q-17 0 -25 -0.5t-20 -3t-17 -7.5t-9 -14.5t-4 -24.5h-25v150h500v-150z" />
+<glyph unicode="&#xe242;" d="M1000 300v50q-25 0 -55 32q-14 14 -25 31t-16 27l-4 11l-289 747h-69l-300 -754q-18 -35 -39 -56q-9 -9 -24.5 -18.5t-26.5 -14.5l-11 -5v-50h273v50q-49 0 -78.5 21.5t-11.5 67.5l69 176h293l61 -166q13 -34 -3.5 -66.5t-55.5 -32.5v-50h312zM412 691l134 342l121 -342 h-255zM1100 150v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5z" />
+<glyph unicode="&#xe243;" d="M50 1200h1100q21 0 35.5 -14.5t14.5 -35.5v-1100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5zM611 1118h-70q-13 0 -18 -12l-299 -753q-17 -32 -35 -51q-18 -18 -56 -34q-12 -5 -12 -18v-50q0 -8 5.5 -14t14.5 -6 h273q8 0 14 6t6 14v50q0 8 -6 14t-14 6q-55 0 -71 23q-10 14 0 39l63 163h266l57 -153q11 -31 -6 -55q-12 -17 -36 -17q-8 0 -14 -6t-6 -14v-50q0 -8 6 -14t14 -6h313q8 0 14 6t6 14v50q0 7 -5.5 13t-13.5 7q-17 0 -42 25q-25 27 -40 63h-1l-288 748q-5 12 -19 12zM639 611 h-197l103 264z" />
+<glyph unicode="&#xe244;" d="M1200 1100h-1200v100h1200v-100zM50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 1000h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM700 900v-300h300v300h-300z" />
+<glyph unicode="&#xe245;" d="M50 1200h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 700h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM700 600v-300h300v300h-300zM1200 0h-1200v100h1200v-100z" />
+<glyph unicode="&#xe246;" d="M50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-350h100v150q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-150h100v-100h-100v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v150h-100v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM700 700v-300h300v300h-300z" />
+<glyph unicode="&#xe247;" d="M100 0h-100v1200h100v-1200zM250 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM300 1000v-300h300v300h-300zM250 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe248;" d="M600 1100h150q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-100h450q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h350v100h-150q-21 0 -35.5 14.5 t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h150v100h100v-100zM400 1000v-300h300v300h-300z" />
+<glyph unicode="&#xe249;" d="M1200 0h-100v1200h100v-1200zM550 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM600 1000v-300h300v300h-300zM50 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe250;" d="M865 565l-494 -494q-23 -23 -41 -23q-14 0 -22 13.5t-8 38.5v1000q0 25 8 38.5t22 13.5q18 0 41 -23l494 -494q14 -14 14 -35t-14 -35z" />
+<glyph unicode="&#xe251;" d="M335 635l494 494q29 29 50 20.5t21 -49.5v-1000q0 -41 -21 -49.5t-50 20.5l-494 494q-14 14 -14 35t14 35z" />
+<glyph unicode="&#xe252;" d="M100 900h1000q41 0 49.5 -21t-20.5 -50l-494 -494q-14 -14 -35 -14t-35 14l-494 494q-29 29 -20.5 50t49.5 21z" />
+<glyph unicode="&#xe253;" d="M635 865l494 -494q29 -29 20.5 -50t-49.5 -21h-1000q-41 0 -49.5 21t20.5 50l494 494q14 14 35 14t35 -14z" />
+<glyph unicode="&#xe254;" d="M700 741v-182l-692 -323v221l413 193l-413 193v221zM1200 0h-800v200h800v-200z" />
+<glyph unicode="&#xe255;" d="M1200 900h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300zM0 700h50q0 21 4 37t9.5 26.5t18 17.5t22 11t28.5 5.5t31 2t37 0.5h100v-550q0 -22 -25 -34.5t-50 -13.5l-25 -2v-100h400v100q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v550h100q25 0 37 -0.5t31 -2 t28.5 -5.5t22 -11t18 -17.5t9.5 -26.5t4 -37h50v300h-800v-300z" />
+<glyph unicode="&#xe256;" d="M800 700h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-100v-550q0 -22 25 -34.5t50 -14.5l25 -1v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v550h-100q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h800v-300zM1100 200h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300z" />
+<glyph unicode="&#xe257;" d="M701 1098h160q16 0 21 -11t-7 -23l-464 -464l464 -464q12 -12 7 -23t-21 -11h-160q-13 0 -23 9l-471 471q-7 8 -7 18t7 18l471 471q10 9 23 9z" />
+<glyph unicode="&#xe258;" d="M339 1098h160q13 0 23 -9l471 -471q7 -8 7 -18t-7 -18l-471 -471q-10 -9 -23 -9h-160q-16 0 -21 11t7 23l464 464l-464 464q-12 12 -7 23t21 11z" />
+<glyph unicode="&#xe259;" d="M1087 882q11 -5 11 -21v-160q0 -13 -9 -23l-471 -471q-8 -7 -18 -7t-18 7l-471 471q-9 10 -9 23v160q0 16 11 21t23 -7l464 -464l464 464q12 12 23 7z" />
+<glyph unicode="&#xe260;" d="M618 993l471 -471q9 -10 9 -23v-160q0 -16 -11 -21t-23 7l-464 464l-464 -464q-12 -12 -23 -7t-11 21v160q0 13 9 23l471 471q8 7 18 7t18 -7z" />
+<glyph unicode="&#xf8ff;" d="M1000 1200q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM450 1000h100q21 0 40 -14t26 -33l79 -194q5 1 16 3q34 6 54 9.5t60 7t65.5 1t61 -10t56.5 -23t42.5 -42t29 -64t5 -92t-19.5 -121.5q-1 -7 -3 -19.5t-11 -50t-20.5 -73t-32.5 -81.5t-46.5 -83t-64 -70 t-82.5 -50q-13 -5 -42 -5t-65.5 2.5t-47.5 2.5q-14 0 -49.5 -3.5t-63 -3.5t-43.5 7q-57 25 -104.5 78.5t-75 111.5t-46.5 112t-26 90l-7 35q-15 63 -18 115t4.5 88.5t26 64t39.5 43.5t52 25.5t58.5 13t62.5 2t59.5 -4.5t55.5 -8l-147 192q-12 18 -5.5 30t27.5 12z" />
+<glyph unicode="&#x1f511;" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" />
+<glyph unicode="&#x1f6aa;" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/ui/new-ui-samples/fonts/glyphicons-halflings-regular.ttf b/ui/new-ui-samples/fonts/glyphicons-halflings-regular.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..1413fc609ab6f21774de0cb7e01360095584f65b
GIT binary patch
literal 45404
zcmd?Sd0-pWwLh*qi$?oCk~i6sWlOeWJC3|4juU5JNSu9hSVACzERcmjLV&P^utNzg
zIE4Kr1=5g!SxTX#Ern9_%4<u(w1q<J at CsjEOL>&01rlrW`<y$HCCf?Z+y45=o|!u{
zcjlhEoqP5%FoVJ1G+bj44I8ITTQqxJ-LCg=WdK{*^eI!Pu_*@0U|>Z!56xXTGQR4C
z3vR~wXq>NDx$c~e?;ia3YjJ*$!C>69a?2$lLyhpI!C<oCzO?F`i#HxWjyD at jE}WZI
zU3l5~SDy9q1|;#myS}~pymONB?2*4U816rW`)#Xn!7 at d1<NOHDt5&bOWb2!+g;p30
z4<NsI$%PwMp0nZD-M=sx9=^?B5SrGVvvng|Yryk+==sq4bJm^rO#Q?6;T&}k_iWs7
z at g?8i`(dlW at aQ!LgXLG3o_Fr~uM{nsXD~dq2>FfJsP=|`8 at K0|bbMpWwVU<h#k=?&
z2hLD3ege)J^J9<Jz!_dI-O6?vWP>Eygg0=0x_)HeHpGSJagJNLA3c!$EuOV>j$wi!
zbo{vZ(s8tl>@!?}dmNHXo)ABy7ohD7_1G-P at SdJWT8*oeyB<gVy2N^Mz8Y_p4K;?4
zVT9pf!y_R}Xk_T@(1FkoDm{_X>VYVW9*vn}&VI4q++W;Z+uz=QTK}^C75!`aFYCX#
zf7fC2;o`%!huaTNJAB&VWrx=szU=VLhwnbT`vc<#<`4WI6n_x at AofA~2d90o?1L3w
z9!I|#P*NQ)$#9aASijuw>JRld^-t)Zhmy|i-`Iam|IWkgu<LN>aMR%lhi4p~cX-9&
zjfbx}yz}s`4-6>D^+6FzihR)Y!GsUy=_MWi_v7y#KmYi-{iZ+s at ekkq!<s)V`@Q^L
z`rY8W#qWgQ at xJ2-1w&;af5?RzOBGthmla=B{I%lG6(3e?tJqSpv0`mSvSMY$Srtnw
z=2y(Bm|8KV{P*SWmH)c@?ebrg|GfOw@*kDIQ2vZb)ms;}`oI6t>@Wxz!~BQwiI&ti
z>hC&iBe2m(dpNVvSbZe3DVgl(dxHt-k@{xv;&`^c8GJY%&^LpM;}7)B;5Qg5J^E${
z7z~k8eWOucjX6)7q1a%EVtmnND8cclz8R1=X4W at D8IDeUGXxEWe&p>Z*voO0u_2!!
zj3dT(Ki+4E;uykKi*yr?w6!BW2FD55PD6SMj`OfBLwXL5EA-9KjpMo4*5Eqs^>4&>
z8PezAcn!9jk-h-Oo!E9EjX8W6 at EkTHeI<@AY{f|5fMW<-Ez-z)xCvW3()Z#x0oydB
zzm4MzY^NdpIF9qMp-jU;99LjlgY@@s+=z`}_%V*xV7nRV*Kwrx-i`FzI0BZ#yOI8#
z!SDeNA5b6u9!Imj89v0(g$;dT_y|Yz!3V`i{{_dez8U@##|X9<u78GO6Sj7w|BmAX
zYy>A};s^7vEd!3AcdyVlhVk$v?$O442KIM1-wX^R{U7`JW&lPr3N(%kXfXT_`7w^?
z=#ntx`tTF|N$UT?pELvw7T*2;=Q-x at KmDUIbLyXZ>f5=y7z1DT<7>Bp0k;eItHF?1
zErzhlD2B$Tm|^7DrxnTYm-tgg`Mt4Eivp5{r$o9e)8(fXBO4g|G^6Xy?y$SM*&V52
z6SR*%`%DZC^w(gOWQL?6DRoI*hBNT)xW9sxvmi@!vI^!mI$3kvAMmR_q#SGn3zRb_
zGe$=;Tv3dXN~9XuIHow*NEU4y&u}FcZEZoSlXb9IBOA}!@J3uov<cnLsMTt5KB)Lj
zYZXCxu;1bqjH18<x269<Tv%)JD-Sv?wUz&5KB?<}@bC!>p}yerhPMaiI8|SDhvWVr
z^BE&yx6e3&RYqIg;mYVZ*3#A-cDJ;#ms4txEmwm<RofF(aiZ;^6Sh1kbq&8p87Q}2
z)<!HT6VUck^|BOZR8X4U*lI4NmphK3T)k;q2UF1)TE2tD(Oq%0w%C5uBAc|kj54!X
zjK;0TBFmM`n at u^bcUhg<U$UozsV%ZmyUQe7juv~qZStAE?UA}H^b(uR^svd6<ohSA
zPN(&WybCrXyU=981ISP9mNdxHZPF8l4xGdT{y?OqQH)eNL?x_*jVgBKQggghY;ER4
z2ZJLPNi?@5u<K+P9v^?cajfyXk(LSV0q=;>@g^s`BB}KmSr7K+ruIoKs=s|gOXP|2
zb1!)87h9?(+1^QRWb(Vo8+ at G=o24gyuzF3ytfsKjTHZJ}o{YznGcTDm!s)DRnmOX}
z3pPL4wExoN$kyc2>#J`k+<67sy-VsfbQ-1u+HkyFR?9G`9r6g4*8!(!c65Be-5hUg
zZHY$M0k(Yd+DT1*8)G(q)1<YNpB7js)5y12Eq7a-+TSy$n{z4WbFWWmXqX`NmQ;<8
z&#kMnTCG)e^Wqb#OY{bR(&}(pp3G}-_B)F+rS(l(vS<RecZ%(lx`adE6b#<MA*v6|
zqhg4L;6Ok2!XZ8=`3{3lFr+}jevG<T8z$m4n8_pfbf#&K;T~jROxF%RXK8L at N{?d!
z)#u0D$E0^47cxZAeVEjp$RK_kRO2h>&tDl=g9H7!bZTOvEEFnBOk_K=DXF(d4JOaH
zI}*A3jGmy{gR>s}EQzyJa_q_?TYPNXR<v?#Pfy-SGCMD6($H at d06+dYtCwDuCKCO`
zfTh}KuF@>U1O;fcV_&TQZhd{@*8Tgpraf~nT0BYktu*n{a~ub^UUqQPyr~yBY{k2O
zgV)honv{B_CqY|*S~3up%Wn%7i*_>Lu|%5~j)}rQLT1ZN?5%QN`LTJ}vA!EE=1`So
z!$$Mv?6T)xk)H8JTrZ~m)oNXxS}pwPd#);<*>zWsYoL6iK!gRSBB{JCgB28C#E{T?
z5VOCMW^;h~eMke(w6vLlKvm!!TyIf;k*RtK)|Q>_ at nY#J%=h%aVb)?Ni_By)X<wQw
z7V$PDEtth$n$E;Ll`Y4%BO_9n-ugy!JpHdGlaMf3-bFSa<&`Z$)FNx2;bGa5ewQ9G
znS9p(JK$Y-8V}<ibr6q#cKkEx`_lIfW`o_}!WDwa=VY;jm&MFX_KN*c$8NiQ<*(1K
zOz-}+aK2WdJ+of=zJ0eN>NxY)E3`|}_u}fn+Kp^3p4RbhFUBRtGsDyx9Eolg77iWN
z2iH-}CiM!pfYDIn7;i#Ui1KG01{3D<{e}uWTdlX4Vr*nsb^>l0%{O?0L9tP|KGw8w
z+T5F}md>3qDZQ_IVkQ|BzuN08uN?SsVt$~wcHO4pB9~ykFTJO3g<4X({-Tm1w{Ufo
zI03<6KK`ZjqVyQ(>{_aMxu7Zm^ck&~)Q84MOsQ-XS~{6j>0lTl at lMtfWjj;PT{nlZ
zIn0YL?kK7CYJa)(8?unZ)j8L(O}%$5S#lTcq{rr5_gqqtZ@*0Yw4}OdjL*kBv+>+@
z&*24U=y{Nl<J at lPNofl42dq;77(U?JMya(0Crr4x>58qJyW1vTwqsvs=VRAzojm&V
zEn6=WzdL1y+^}%Vg!ap>x%%nFi=V#wn#<ZJY+2YKgUZIdddsj}x<a~(_z&i7iw6j~
zD6-dYj8)6VXu?|^ZEI$`u2WRyTK0%)bZh&!D^9oe9c{ncschFCaT|SNh at Ip0Y7e<>
zUuheBR@*<muvvX<=P{exAmqKj@)RY=k${p2#1fI%*ObNn_Svg5fBeeKm;N;8<i#ex
z at xiUPeR$hjC=hitVD9x2{{y_iS9U^gG9f at 6f6&^Vs3zp5qf?=KTW at F7W@hJ`ZBCj<
zPCXs%#Cv+T9c^4a%MvhtBnK>KS)5Mn0`f=3fMwR|#-rPMQJg(fW*5e`7xO&^UUH<N
z8S{R+VU}U8VWDBEjsa+<a|A}qi`v{;%PNhy=5G#TrE#}Jn{iFX7S1~=;h}j7?-Paq
zPz1GeaZ=ceNsUv?a;Nj+<UmnU3}yC*^X?4%XYRVxg{MEFholmVGnq^}E!rMBWy|R_
zg)925;70bcj_+u_rTSN(=HrLgwiaEHUwf>{L(U8D$JtI!ac!g(Ze89<`UiO at L+)^D
zjPk2_Ie0p~4|LiI?-+pHXuRaZKG$%zVT0jn!yTvvM^jlcp`|VSHRt-G at _&~<4&qW@
z?b#zIN)G(}L|60jer*P7#KCu*Af;{mpWWvYK$@Squ|n-Vtfgr@<WJYami at 2Z&u=;5
z5Vc}@3ijIdgOz2E{1ewt+&m|4loMa2;l_ZQ>ZOmR5Xpl;0q~VILmjk$$mgp+`<2jP
z at +nW5Oap%fF4nFwnVwR7rpFaOdmnfB$-rkO6T3#w^|*rft~acgCP|ZkgA6PHD#Of|
zY%E!3tXtsWS`udLsE7cSE8g at p$ceu*tI71V31uA7jwmXUCT7+Cu3uv|W>ZwD<C#<5
zr)TgUn*z=?aQx5GtI}?)S=9!TmC))*YbR(2eeE2+a>{&O4Nfjjvl43N#A$|FWxId!
z%=X!HSiQ-#4nS&smww~iXRn<-`&zc)nR~js?|Ei-cei$^$KsqtxNDZvl1oavXK#Pz
zT&%Wln^Y5M95w=vJxj0a-ko_iQt(LTX_5x#*QfQLtPil;kkR|kz}`*xHiLWr35ajx
zHRL-QQv$|PK-$ges|NHw8k6v?&d;{A$*q15hz9{}-`e6ys1EQ1oNNKDFGQ0xA!x^(
zkG*-ueZT(GukSnK&Bs=4+w|(kuWs5V_2#3`!;f}q?>xU5IgoMl^DNf+Xd<=sl2<ov
zdi9d6DbT*4=K1<NxE2(`@^$C>XvkqviJ>d?+G at Z5nxxd5Sqd$*ENUB_mb8Z+7CyyU
zA6mDQ&e+S~w49csl*UePzY;^K)Fbs^%?7;+hFc(xz#mWoek4_&QvmT7Fe)*{h-9R4
zqyXuN5{)HdQ6yVi#tRUO#M%;pL>rQxN~6yoZ)*{{!?jU)RD*oOxDoTjVh6iNmhWNC
zB5_{R=o{qvxEvi(k<Br-9y#p7E~9amU at sQujU02m+%O6`wmyB;RZm|f_25ZIu`sWx
z9Z!xjMn{xa)<lh?>hbRS`FOXmOO|&Dj$&~><!ER!M(aXh<Y=PO>*oo)bZz%lPhEA@
zQ;;w5eu5^%i;)w?T&*=UaK?*|U3~{0tC`rvfEsRPgR~16;~{_S2&=E{fE2=c>{+y}
zx1*NTv-*zO^px5TA|B```#NetKg`19O!BK*-#~wDM at KEllk^nfQ2quy25G%)l72<>
zzL$^{DDM#jKt?<>m;!?E2p0l12`j+QJjr{Lx*47Nq(v6i3M&*P{jkZB{xR?NOSPN%
zU>I+~d_ny=pX??qjF*E78>}Mgts at _yn`)C`wN-He_!OyE+gRI?-a>Om>Vh~3OX5+&
z6MX*d1`SkdXwvb7KH&=31RCC|&H!aA1g_=ZY0hP)-Wm6?A7SG0*|$mC7N^SSBh at MG
z9?V0tv_sE>X==yV{)^LsygK2=$Mo_0N!JCOU?r}rmWdHD%$h~~G3;bt`lH&<YttXG
zCx4~x at x7rvSlVC8c4`|@!#-B8ZKS<EH?nhD1$CFfEvQA7q3vKKC(B@*EPV@^RffeA
zqF7{q<g?nf7wl2mS$#hW3X3?XI^l_=xWmcuOlQEQZFITVPFH}vOiW=uH41qNTB4w>
zAuOOZ=G1Mih**0>lB5x+r)X^8mz!0K{SScj4|a=s^VhUEp#2M=^#WRqe?T&H9GnWa
zYOq{+gBn9Q0e0*Zu>C(BAX=I-Af9wIFhCW6_>TsIH$d>|{fIrs&BX?2G>GvFc=<8`
zVJ`#^knMU~65dWGgXcht`Kb>{V2oo%<{NK|iH+<q(5YAazG9MX#mAntl?z6uydZjo
zUFklHM_4M at 0HYVoyB8BtKlWH`xbBg99hUSZMa9}uddMW%i`jRIi-g-Oj+Dcyby^(`
z%RQFN&dOf4Ittp8bTTLHYY;pny(Y2BDO&N?wA-C_6&0Pd?aun4t;+U8o0V7xD{xVE
zT_xFkLYF;IV~uA~NIx^oe`|Ag_zBH%@tGSHD~4^4RZ^~BcP(EUF`avIGk5b#Qq_%$
zWYy4>R^|Gx%q+env#Js*(EBT3V0=w4F at W+oLFsA)l7Qy8mx_;6Vrk;F2RjKFvmeq}
zro&>@b^(?f))OoQ#^#s)tRL>b0gzhRYRG}EU%wr9GjQ#~Rpo|RSkeik^p9x2<p!Ww
zwwmq`!~oDTY^~4nP7mqhE1&11QI*f_7OwLIc0Sdl0He at 3A$?sO|G#_xO5%4jys!Au
zz!P*LF2Fu*;<$-+ZxX4HAsc at 9KfXGYIspZeD-?_4;Ohrd$nih9sE;A+xh%Yxa|I;O
zMn43xybbA$h%OeU78ZAGUa0jg*n))`>+=rUr}vfnQoeFAlv=oX%YqbLpvyvcZ3l$B
z5bo;hDd(fjT;9o7g9xUg3|#?wU2#BJ0G&W1#wn?mfNR{O7bq74<ru+<wkuK7q*HuJ
zl3ikW@`O=kCFAR2we{1>7tc~mM%m%t+7YN}^tMa24O4 at w<|$lk at pGx!;%pKiq&mZB
z?3h<&w>un8r?Xua6(@Txu~Za9tI@|C4#!dmHMzDF_-_~Jolztm=e)@vG11b<LZFLt
z=a at d3MJ-E4hYQZxA3y&6-j%$UZvUfp^pCgm<jTEuP^)mszD-y$n3Q&{-23}Wv_2Y8
ztp4g>ZQAs!tFvd9{C;oxC7VfWq377Y(LR^X_TyX9bn$)I765l=rJ%9uXcjggX*r?u
zk|0!db_*1$&i8>d&G3C}A`{Fun_1J;Vx0gk7P_}8KBZDowr*8$@X?W<UwWy2E;b%8
zDnv;u#sg4V5Tml=Bw6)GO(a6bm at pXL5;t*}iEhY9Zim8L-OM$RpsE=-)J6=6)|MD4
z8{19*DSK107+0Kbw2EdWh!twa9HVGLVmN$BX1?}c?!DT~m@%MuO{=cju at -!?UnaO{
z9Q;H&SNsH&+9*iqK+))0P{pW#u+IR2<&dC||BFzIuVKjDIAwxj0gQDf!MLF#VHC`D
zN_zXShCf+#K4Io(-dXedBI4SOK2y)rryrPZ_8G(S4~O-`iR!5u^?GLIlD&{}so=+h
zoX&5625-D!az-|Zx~ma2tVY~n7Eznkush<8w1#D9lj%>6v^LYmNWI)lN92yQ;tDpN
zOUdS-W4JZUjwF-X#w0r;97;i(l}ZZT$DRd4u#?pf^e2<Tp(F_Ylx9mIONs=GDOR7J
z!s@{!h&%A8Er}aMdD0mk#s%bH^(p8HL6l-6iKJ%JY$!?VLmDqZL7D4xf%;gN>yaFo
zbm>I at 5}#8FjsmigM8w_f#m4fEP<w>~r~_?OWB%SGWcn$ThnJ at Y`ZI-O&Qs#Y14To(
zWAl>9Gw7#}eT(!c%D0m>5D8**a at h;sLW=6_AsT5v1Sd_T-C4pgu_kvc?7+X&n_fct
znkHy(_LExh=N%o3I-q#f$F4<wlfSnZ{aNtlaHgD*%*;+!if9}xbu`<To}#^Vl2QkO
z7|r$zhjK8GE;uJ+566KrGlUndEl83;o70s<D1jcM$y_hC&+<$#S-_D`DMkXCs6&Ja
zX$kb)3d(TSz&8E5_#CeAoC7l{hxp54WI)}a6Fq*MuVt{GA?j6in~9$1>QJpy>jZBW
zRF7?EhqTGk)w&Koi}QQY3sVh?@e-Z3C9)P!(hMhxmX<?O%M-wa0Dx5a@<^0#9_>LC
zF_+ZSTQU`Gqx at o<HpS{<a}-BAGy@<S0>(~<vXHshk{*j+nj`s1+omT#^krl>B$dbr
zHlEUKoK&`2gl>zKXlEi8w6}`X3kh3as1~sX5@^`X_nYl}hlbpeeVlj#2sv)CIMe%b
zBs7f|37f8qq}gA~Is9gj&=te^wN8ma?;vF)7gce;&sZ64!7LqpR!fy)?4cEZposQ8
zf;rZF7Q>YM<qvPX at rO5R|G8xB*d=47F5FbX>F1~eQ|Z*!5j0DuA=`~VG$Gg6B?Om1
z6fM@`Ck-K*k(eJ)Kvysb8sccsFf at 7~3vfnC=<$q+VNv)FyVh6ZsWw}*vs>%k3$)9|
zR9ek- at pA23qswe1io)(Vz!vS1o*XEN*LhVYOq#T`;rDkgt86T at O`23xW~;W_#ZS|x
zvwx-XMb7_!hIte-#JNpFxskMMpo2OYhHRr0Yn8d^(jh3-+!CNs0K2B!1dL$9UuAD=
zQ%7Ae(Y@}%Cd~!`h|wAdm$2WoZ(iA1(a_-1?znZ%8h72o&Mm*4x8Ta<4++;Yr6|}u
zW<lfR&2thZ%arCCv7^XWW_6jB>8$p&izhdqF=m8$)HyS2J6cKyo;Yvb>DTfx4`4R{
zPSODe9E|uflE<`xTO=r>u~u=NuyB&H!(2a8vwh!jP!yfE3N>IiO1<sg)|!DAM%5V4
zImfj?oZv3;y3AIvb^=HU^uh7(X5<6aoUeyP2Mi=23DNrjwj6G-I5MpbGBBkQgLzRx
z_Qg%sVsEslI2A80hOod<S>jI>7e&3rR#RO3_}G23W?gwDHgSg<QXM9d4Lsp5W&)6?
zY*roO0w$UqxC4|r(Er$DV(2l9h4At3N_U`+Ukis<fpRRCK>ekzQ^PU&G5z&}V5GO?
zfg#*72*$DP1T8i`S7=P;bQ8lYF9_ at 8^C(|;9v8ZaK2GnWz4$Th2a0$)XTiaxNWfdq
z;yNi9veH<s at 9We549w!!z+8C$Xr3bE8Io{iV0-^0*Z((QCVLd1<H5EqJokRheRd?M
z=9-#Ba=FG%;bgG2sZn!v5}(U9c2N6|uSx2-^nZJN<Y38%>!j)ba$9pke8`y2^63BP
zIyYKj^7;2don3se!P&%I2jzFf|LA&tQ=NDs{r9fIi-F{-yiG-}@2`VR^-LIFN8BC4
z&?*<A2U+2yvz#~5iMlAv#&#x?J%g>IvLiGHH5>NY(Z^CL_A;yISNdq58}=u~9!Ia7
zm7MkDiK~lsfLpvmPMo!0$keA$`%Tm`>Fx9JpG^EfEb(;}%5}B4Dw!O3BCkf$$W-dF
z$BupUPgLpHvr<<+QcNX*w at +Rz&VQz)Uh!j4|DYeKm5IC05T$KqVV3Y|MSXom+Jn8c
zgUEaFW1McGi^44xoG*b0JWE4T`vka7qTo#dcS4RauUpE{O!ZQ?r=-MlY#;VBzhHGU
zS at kCaZ*H73XX6~HtHd*4qr2h}Pf0Re@!WOyvres_9l2!AhPiV$@O2sX>$21)-3i+_
z*sHO4Ika^!&2utZ at 5%VbpH(m2wE3qOPn-I5Tbnt&yn9{k*eMr3^u6zG-~PSr(w$p>
zw)x^a*8Ru$PE+{&)%VQUvAKKiWiwvc{`|GqK2K|ZMy^Tv3g|zENL86z7i<<vQD<>c
zW`W>zV1u}X%P;Ajn+>A)2iXZbJ5YB_r>K-h5g^N=LkN^h0Y6dPFfSBh(L`G$D%7c`
z&0RXDv$}c7#w*7!x^LUes_|V*=bd&aP+KFi((tG<uj&`TKbvJwt*s;^z;4Ys<BrXj
zUcC9nsnf4nJ}oNAV^;23Huc6W7jNCNGp&VZZ68xTF&1%{6q~EkQlv<(iM7j~voh3C
z at 5k4r3!z`C;}lPV?5N1<S*Q-j1No*l<5(hps4yh~OUMfaqfZSw{1(}GVOnN8<B1ow
zokS3`Befl=7x!u#A9>*gakSR+FA26%{QJdB5G1F=UuU&koU*^zQA=cEN9}Vd?OEh|
zgzbFf1?@LlPkcXH$;YZe`WEJ3si6&R2MRb}LYK&zK9WRD=kY-JMPUurX-t4(Wy{%`
zZ at 0WM2+IqPa9D(^*+MXw2NWwSX-_WdF0nMWpEhAyotIgqu5Y$wA=<qv3s0%`78x7-
z!YG+vXM)||6z({8VoMOb>zfuXJ0Y2lL3#ji26-P3Z?-&0^KBc*`T$+8+cqp`%g0WB
zTH9L)FZ&t073H4?t=(U6{8B+uRW_J_n*vW|p`DugT^3xe8Tomh^d}0k^G7$3wLgP&
zn)vTWiMA&=bR8lX9H=uh4G04R6>C&Zjnx_f at MMY!6HK5v$T%vaFm;E8q=`w2Y}ucJ
zkz~dKGqv9$E80NTtnx|Rf_)|3wxpnY6nh3U9<)fv2-vhQ6v=WhKO@~@X57N-`7Ppc
zF;I7)eL?RN23FmGh0s<krvL at Zi`9X>;Z#+p)}-TgTJE%&>{W+}C`^-sy{gTm<$>rR
z-X7F%MB9Sf%6o7A%ZHReD4R;imU6<9h81{%avv}hqugeaf=~^3A=x(Om6Lku-Pn9i
zC;LP%Q7Xw*0`Kg1)X~nAsUfdV%HWrpr8dZRpd-#%)c#Fu^mqo|^b{9Mam`^Zw_ at j@
zR&ZdBr3?@<@%4Z-%LT&RLgDUFs4a(CTah_5x4X`xDRugi#vI-cw*^{ncwMtA4N<n#
zKe-3R=W^+cuK>KjByYBza)Y$hozZCpuxL{IP&=tw6ZO52WY3|iwGf&IJCn+u(>icK
zZB1~bWXCmwAUz|^<&ysd#*!DSp8}DLNbl5lRFat4NkvItxy;9tpp9~<f);nGGD>|@
z;JctShv^Iq4(z+y7^j&I?GCdKMVg&jCwtCkc4*@O7HY*veGDBtAIn*JgD$QftP}8=
zxFAdF=(S>Ra6(4slk#h%b?EOU-96TIX$Jbfl*<nInof4ph4hK=1pB+w>_7IY-|R%H
zF8u|~hYS-YwWt5+^!uGcnKL~jM;)ObZ#q68ZkA?}CzV-%6_vPIdzh_wHT_$mM%<x2
zq&@Ugp at y3#qmCWN2c()zUb2i%NHytqe#*|FOc9=9=lm37FJ~XnjPaYV#gu{Rxk3h%
z6(mfsR at KE$kTrlhgn%DPo5HpDO0=1-df|X)k_Bt?_o11|zfG(qa-#Sl at L(<sfroJg
zk#3es02GuhOy#7gPL>vws9lxUj;E@#1UX?WO2R^41(X!nk$+2oJGr!sgcbn1f^yl1
z#pbPB&Bf;1&2+?};Jg5qgD1{4_|%X#s48rOLE!vx3 at ktstyBsDQWwDz4GYlcgu$UJ
zp|z_32yN72T*oT$SF8<}>e;FN^X&vWNCz>b2W0rwK#<1#kbV)Cf`vN-F$&knLo5T&
z8!sO-*^x4=kJ$L&*h%rQ at 49l?7_9IG99~xJDDil00<${~D&;kiqRQqeW5*22A`8I2
z(^@`qZoF7_`CO_e;8#qF!&g>UY;wD5MxWU>az<ULIsNY$DJI at Av_2K^yD6wo0kqHs
zV#M>oo=E{kW(GU#pbOi%XAn%?W{b>-bTt&2?G=E&BnK9m0zs{qr$*&g8afR_x`B~o
zd#dxPpaap;I=>1j8=9Oj)i}s at V}oXhP*{R|@DAQXzQJekJnmuQ;vL90_)H_nD1g6e
zS1H#dzg)U&6$fz0g%|jxDdz|FQN{KJ&Yx0vfuzAFewJjv`pdMRpY-wU`-Y6WQnJ(@
zGVb!-8DRJZvHnRFiR3PG3Tu^nCn(CcZHh7hQvyd7i6Q3&ot86XI{jo%WZqCPcTR0<
zMRg$ZE=PQx66ovJDvI_JChN~k at L^Pyxv#?X^<)-TS5gk`M~d<~j%!UOWG;ZMi1af<
z+86U0=sm!qAVJAIqqU`Qs1uJhQJA&n at 9F1PUrYuW!-~IT>l$I!#5dB<cfvg5VibV&
zDqvU$KKCo4v0yI;auEcF&ZcvUE7}qhEUthMrKK<ZZorlPhfA2o9*2RG_C6<ZwD)23
zgbU<ugZCNmzTNu!GMX!>aiAK}RUufjg{$#GdQBkxF1=KU2E at N=i^;xgG2Y4|{H>s`
z$<vvU|F(3Nv^%2-!)gt%bV2|xrF9!>t`k8c-8`fS7Yfb1FM#)vPKVE4Uf(Pk&%HLe
z%^4L>@Z^9Z{ZOX<^e)~adVRkKJDanJ6VBC_m at 6qUq_WF<AGx+lu0P|(*RBdki}PPC
zR884Dd(Bf1Tr>@Epw>AYqf%r6qDzQ~AEJ<N!$QjqcKBS<-KzqABShp7 at 2HODUtuI-
zM1Hm0Vba1HggryAaeKKwP<qS1QZN90CS+8P%>!jtUvLp^CcqZ^G-;Kz3T;O4WG45Z
zFhrluCxlY`M+OKr2SeI697btH7Kj`O>A!+2DTEQ=48cR>Gg2^5uqp(+y5Sl09MRl*
zp|28!v*wvMd_~e2DdKDMMQ|({HMn3D%%ATEecGG8V9>`JeL)T0KG}=}6K8NiSN5W<
z79-ZdYWRUb`T}(b{RjN8>?M~opnSRl$$^gT`B27kMym5LNHu-k;A;VF8R(HtDYJHS
zU7;L{a@`>jd0svOYKbwzq+pWSC(C~SPgG~nWR3pBA8 at OICK$Cy#U`kS$I;?|^-SBC
zBFkoO8Z^%8Fc- at X!KebF2Ob3%`8zlVHj6H;^(m7J35(_bS;cZPd}TY~qixY{MhykQ
zV&7u7s%E=?i`}Ax-7dB0ih47w*7!@GBt<*7ImM|_mYS|9_K7CH+i}?*#o~a&tF-?C
zlynEu1DmiAbGurEX2Flfy$wEVk7AU;`k#=IQE*6DMWafTL|9-vT0qs{A3mmZGzOyN
zcM9#Rgo7WgB_ujU+?Q at Ql?V-!E<ESfbH6cV^f<TVZZ6$j;;%C;F7k#%v)~#tDz at O9
zGjF`&rD{{KBD!Z>=jbypS+*ch<nT0vi*LE;jA`dwa7L|Pk{%Vkrl+;{Q+Icda+|DH
zxbX_5rMru~l at p?-nW}qiMdIwMuOHt$v$Z->I&zA+C_3_ at aJal}!Q54?qsL0In({Ly
zjH;e+_SK8yi0NQB%TO+Dl77jp#2pMGtwsgaC>K!)NimXG3;m7y`W+&<(ZaV>N*K$j
zLL~I+6ouPk6_(iO>61cIsinx`5}DcKSaHjYkkMuDoVl>mKO<4$F<R}h5tU~DoQW2-
zb at mx6M$TIWS(5Azchs1S!C1Vg!dX-qRh*Tlox4o><>YJ5J9A2Vl}#BP7+u~L8C6~D
zsk`pZ$9Bz3teQS1Wb|8&c2SZ;qo<#F&gS;j`!~!ADr(jJXMtcDJ9cVi>&p3~{bqaP
zgo%s8i+8V{UrYTc9)HiUR_c?cfx{Yan2#%PqJ{%?Wux4J;T$#cumM0{Es3@$>}DJg
zqe*c8##t;X(<vs5F6*OK5RBh`;EMHg+sn$v%w2!Q1AFLXOj%hwP6VgZXe#dgvNr%C
zbK2>4$?A`ve)e at YU3d2Balcivot{1(ahlE5qg at S-h(mPNH&`pBX$_~HdG48~)$x5p
z{>ghzqqn_t8~pY<5?-To>cy^6o~mifr;KWvx_oMtXOw$$d6jddXG)V at a#lL4o%N at A
zNJlQAz6R8{7jax-kQsH6JU_u*En%k^NHlvBB!$JAK!cYmS)HkLAkm0*9G3!vwMIWv
zo#)+EamIJHEUV|$d|<)2iJ`lqBQLx;HgD}c3mRu{iK23C>G{0Mp1K)bt6OU?xC4!_
zZLqpFzeu&+>O1F>%g-%U^~yRg(-wSp at vmD-PT#bCWy!%&H;qT7rfuRCEgw67V!Qob
z&tvPU@*4*$YF#2_>M0(75QxqrJr3Tvh~iDeFhxl=MzV@(psx%G8|I{~9;tv#BBE`l
z3)_98eZqFNwEF1h)uqhBmT~mSmT8k$7vSHdR97K~kM)P9PuZdS;|Op4A?O<*%!?h`
zn`}r_j%xvffs46x2hCWuo0BfIQWCw9aKkH==#B(TJ%p}p-RuIVzsRlaPL_Co{&R0h
zQrqn=g1PGjQg3&sc2IlKG0Io#v%@p>tFwF)RG0ahYs at Zng6}M*d}Xua)+h&?$`%rb
z;>M=iMh5eIHuJ5c$aC`y at CYjbFsJnSPH&}LQz4}za9YjDuao>Z^EdL@%s<cic@|#d
zk`VYkAA1)5&zzBlUXwX>aRm&LGQWXs*;FzwN#p<?>H&j~SLhDZ+QzhplV_ij(NyMl
z;v|}a<m1KirP40Q9;?ZUGeiBO`6EQCP%m`AbDrv}WVxc|a9*xhB0zVg4PQB(Updr=
z()&PI0+wG1-G5cn-?{zrU(p$hh$VW4zkc`j%O6su+dqN;>mvxRddO81LJFa~2QFUs
z+<rMf(`FCeM}FJ^oJ6DQ^2{Nc9R`a9PEsYsk4d<kKA^opcC1pDZk0kh9^Gygk8>Lk
zZck)}9uK^buJNMo4G(rSdX{57(7&n=Q6$QZ at lIO9#<3pA2ceD<ex)Co(^yo~b^iS?
z-G6>pO_340B*pHlh_y{>i&c1?vdpN1j>3UN-;;Yq?P+V5oY`4Z(|P8SwWq<)<fz%B
zj)+x<OZ_gB*%c at YSI6p9w+Ydpc!Zcf$QEBFDuqEL6=PD at Pe~N at st{xMy+-n;*Mt~v
zmrteH;(NO63jTi5?DV at CF_fsL-w|T3X%De;sQHBB^9 at P)Y{)Bp<max_sHiv=Y2ujB
z*Y0pN2vXRDgae#VLF1APpWP+=i6luTbXun4wCl7o-h=Gg-_V%L+$3>n`W at AwcQ?E9
zd5j8>FT^m=MHEWfN9jS}UHHsU`&SScib$qd0i=ky0>4dz5ADy70AeIuSzw#gHhQ_c
zOp1!v6qU<Kxjvk}u}KI}1IL4P)HQX%3Qy1||7)ACyj<$_yY^HUY1Qh86mASo5oGq6
zE#i-HjkgKyfR`wC1AzxilV;sCL6u<;DfJ$k2lHogcuG&96Y=9Dx08l3i%#>)@8MY+
zMNIID?(CysRc2uZQ$l*QZVY)$X?@4$VT^>djbugLQJdm^P>?51#lXBkdXglYm|4{L
zL%Sr?2f`J+xrcN@=0tiJt(<-=+v>tHy{XaGj7^cA6felUn_KPa?V4ebfq7~4i~GKE
zpm)e at 1=E;PP%?`vK6KVPKXjUXyLS1^NbnQ&?z>epHCd+J$ktT1G&L~T)nQeExe;0Z
zlei}<<dHMjP`dMgT;)rz at KwnNqz2u#jL%!`ao{S at tM3IGYSeTv3Fk3tBkVZxLRlho
z at Yxs}5wdFIYX}Vx7;lNy5jfXGDv1)02|!y=K!RAWW@=@lh*MCQ(we#;x;&XaD>_ni
ztFo}j7nBl$)s_<W4is^tCJZEK$$)&HpdlqLPzQFWv`<{7GL_AD92F#&(|%OzJIbuy
z+Ol{_jn76nNgzuA>3odmdafVieFxc)m!wM+U`2u%yhJ90giFcU1`dR6BBTKc2cQ*d
zm-{?M&%(={<F~lIWhEX{d2;PTbK5UDb8+WLo7GcN=5=ow at 4S4W$LOt!x3rG3C8mvr
z0>xYHy?VCx!ogr|4g5;V{2q(L?QzJGsirn~kWHU`l`rHiIrc-Nan!hR7zaLsPr4uR
zG{En&gaRK&B at lyWV@yfFpD_^&z>84~_0Rd!v(Nr%PJhFF_ci3D#ixf|(r@$igZiWw
za*qbXIJ_Hm4)TaQ=zW^g)FC6uvyO~Hg-#Z5Vsr<Zy{+LyD`h4YS(ghy#BfWzW^5Uo
zQ8PC9sjEJ4RGC&$F|HxuyK{woR4L3OZu<36tuvn9l2snS_;Y at J&z1A*lMO*_Ur`v=
zX;m?{v#RtbKP{_C_Pwp$oMe|?dH6}PAjk=@Y1ry|VVd(HV4<-(-0+OjB`EyB0T=kn
z(gB<B0#L(B#0`VW)>ybz6uOTF>Rq1($JS`imyNB7myWWpxYL(t7`H8*voI3Qz6mvm
z$JxtArLJ(1wlCO_te?L{>8YPzQ})xJlvc5wv8p7Z=HviPYB#^#_vGO#*`<0r%MR#u
zN_mV4vaBb2RwtoOYCw)X^>r{2a0kK|WyEYoBjGxcObFl&P*??)WEWKU*V~zG5o=s@
z;rc~uuQQf9wf)MYWsWgPR!wKGt6q;^8!cD_vxrG8GMoFGOVV=(J3w6Xk;}i)9(7*U
zwR4VkP_5Zx7wqn8%M8uDj4f1aP+vh1Wue&ry at h|wuN(D2W<Jk_Ub)RM4SgV&OId4;
zn2zn6!@5a6q<V@&t`j1NlR++Q;e at +-SbcuS)(a+|%YH!7_B%_B*R5T=?m|>;v6b1^
z`)7XBZ385zg;}&Pt@?dunQ=RduGRJn^9HLU&HaeUE_cA1{+oSIjmj3z+1YiOGiu-H
zf8u-oVnG%KfhB8H?cg%@#V5n+L$MO2F4>XoBjBeX>css^h}Omu#)ExTfUE^07KOQS
znMfQY2wz?!7!{*C^)aZ^UhMZf=TJNDv8VrrW;JJ9`=|L0`w9DE8MS>+o{f#{7}B4P
z{I34>342vLsP}o=ny1eZkEabr at niT5J2AhByUz&i3Ck0H*H`LRHz;>3C_ru!X+EhJ
z6(+(lI#4c`2{`q0o9aZhI|jRjBZOV~IA_km7ItNtUa(Wsr*Hmb;b4=;<J1?+^3A&j
zK3cnIJ at xJ)8})7lyFf5`owi5yu4lj04lY55Grhwxe6`Vjk5_%2h6Srm0%!Z7OTJgS
z7xk*fSj^YWvFa#^cCzaibaRR7wifomC%U_?eh_XL=5Hz83qQMDCary#^CqnoCok6y
z#aKY5h8k>R(gF at GmsRI`pF+0tmq0<eALkrdNz?_uQPl5L<ziG;l8G^BKV7-hN+!<*
z<qETgy|$oSZ328w$u~CVg?j38Ne8Nec!$^z3O9)SK=%x<?=HO#`R=(x+xbP_2n9~L
zA~@Y5=^p7G^ly*h(SjbX22XE{f_H~{EwlIe71&(CF%AC-KZ!PkfDiovb({chpQJjK
zFbjvUr>zy~wnoJD(<MLjh**JGO%zg$#8^?N-Q#VEMllAeBN{8Gkcp5385M+IP?10`
zKNJCQBzyb5Gta#5ZT-NK&Jkr}EY5LG-*{2<GI5k_E;Cjl{9Li(svK!m$F~O+U$JQS
zMZAi<dUJWWO0+lGoKxMN#+rIpvr}TmT8W9)5>LSEwHjT<no^?z{l8Hbtg<ND1Cr6K
z6#0!VQ^*}KTk66St&+e*u_9r$$-(;3c2C&lF^#Wti6x at NV{uFO48lerx@~U7EQm%~
zi8-wSrE-(Ma!Z+cdXdE^nH(<3+*mF-qjhezv`kVwaQ)pBtm+Jzn4-9>Ot4xb0XB-+
z&4RO{Snw4G%gS9w#uSUK$Zbb#=jxEl;}6&!b-rSY$0M4pftat-$Q)*y!bpx)R%P>8
zrB&`YEX2%+s#lFCIV;cUFUTIR$Gn2%F(3yLeiG8eG8&)+cpBlzx4)sK?>uIlH+$?2
z9q9wk5zY-xr_fzFSGxYp^KSY0s%1BhsI>ai2VAc8&JiwQ>3RRk?ITx!t~r45qsMnj
zkX4bl06ojFCMq<9l*4NHMAtIxDJOX)H=K*$NkkNG<^nl46<z}8DjmoX!f<;!=?S0X
zNm_qEi&;s|L9ptUk0h&55Ob{uhVekW1KY3{I#Svm7#;P3BE~;lg8EY6Q79rf(MCE=
zN8VGwjyg at p(Rvv6Qeo&vGBF~WTM7Tu+BS~CYXlw<;F93zrP+w<0f)nm=oOTD0XeL>
zHWH1GXb?Og1f0S+8-((5yaeegCT62&4N*pNQY;%asz9r9Lfr;@Bl${1 at a4QA<GQZo
zHC=)78Wbo&u{ERGcuiNo;G#(z2^9z>vMLbV6JDp>8SO^q1)#(o%k!QiRSd0eTmzC<
zNIFWY5?)+JTl1Roi=nS4%@5iF+%XztpR^BSuM~DX9q`;Mv=+$M+GgE$_>o+~$#?*y
zAcD4nd~L~EsAjXV-+li6Lua4;(EFdi|M2qV53`^4|7gR8AJI;0Xb6QGLaYl1zr&eu
zH_vFUt+<?-wHx^jA;=HXzQKp_j)#`&591BSP(wIOS;Ce(17%gs%~hdM@>Ouf4SXA~
z&Hh8K at ms^`(hJfdicecj>J^Aqd00^ccqN!-f-!=N7C1?`4J+`_f^nV!B3Q^|fuU)7
z1NDNT04hd4QqE+qBP+>ZE7{v;n3OGN`->|lHjNL5w40pe<qclDY+ja_*(_95xs;%%
zq{v>PJ?^Y6bFk@^k%^5CXZ<+4qbOplxpe)l7c6m%o-l1oWmCx%c6 at rx85hi(F=v(2
zJ$jN>?yPgU#DnbDXPkHLeQwED5)W5sH#<v%tu={Y=OlW2%;gK%O0*}OtgP0-W>-eS
z%#^4dxiVs{+q(Yd^ShMN3GH)!h!@W&N`$L!SbElXCuvnqh{U7lcCvHI#{ZjwnKvu~
zAeo7Pqot+Ohm{8|RJsTr3J4GjCy5UTo_u_~p)MS&Z5UrUc|+;Mc(YS+ju|m3Y_Dvt
zonVtpBWlM718YwaN3a3wUNqX;7TqvAFnVUoD5v5WTh~}r)KoLUDw%8Rrqso~bJqd>
z_T!&Rmr6ebpV^4|knJZ%qmzL;OvG3~A*loGY7?YS%hS{2R0%NQ at fRoEK52Aiu%gj(
z_7~a}eQUh8PnyI^J!>pxB(x7FeINHHC4zLDT`&C*XUpp at s0_B^!k5Uu)^j_uuu^T>
z8WW!QK0SgwFHTA%M!L`bl3h<zOXT*J6fe~c%_xb0$mxr#<2VD=$rO0L8nX7*#{Ksu
z$LONOvFCTfJN5XIapRVZlX}Y=<Lbb4!eHVHYIDPW9?-^*TjQ2+nH<TKdTCuE{W6Ky
z7>HjPp)|wL5Var_*A1-H8LV?uY5&ou{hRjj>#X at rxV>5<xG4RL_K~wL=!|H8*ZSVn
ze*QWuVl90vQ035NRw9cT+>%-9hbP+v?$4}3EfoRH;l_wSiz{&1<+`Y5%o%q~4<MOn
zEoNk8R4!uRxI3kmMnO0fow{Ibz3`A^4>rdpRF0jOsCoLnWY5x?V)0ga>CDo`NpqS)
z at x`mh1QGkx;f)p-n^*g5M^zRTHz%b2IkLBY{F+HsjrFC9_H(=9Z5W&Eymh~A_FUJ}
znhTc9KG((OnjFO=+q>JQZJbeOoUM77M{)$)qQMcxK9f;=L;IOv_J>*~w^YOW744QZ
zoG;!b9VD3ww}OX<8sZ0F##8hvfDP{hpa3HjaLsKbLJ8<m2C(MCx~x+Mo`}Jf7gdL>
z0WpY2E!w?&cWi7&N%bOMZD~o7QT*$xCRJ@{t31~qx~+0yYrLXubXh2{_L699Nl_pn
z6)9eu+uUTUdjHXYs#pX^L)AIb!FjjNsTp7C399w&B{Q4q%yKfmy}T2uQdU|1EpNcY
zDk~(h#AdxybjfzB+mg6rdU9mDZ^V>|U13Dl$Gj+pAL}lR2a1u!SJXU_YqP9N{ose4
zk+$v}BIHX60WSGVWv;S%zvHOWdDP(-ceo(<8`y at Goy%4wDu>57QZNJc)f>Ls+}9h7
z^N=#3q3|l?aG8K#HwiW2^PJu{v|x5;awYfahC?>_af3$LmMc4%N~JwVlRZa4c+eW2
zE!zosAjOv&UeCeu;Bn5OQUC=jtZjF;NDk9$fGbxf3d29SUBekX1<Pr at Tu%2mF`vob
zdsw;fW5J;CqD*)A#3k~8m#E~>!a$Vmq_VK*MHQ4)eB!dQrHH)LVYNF%-t8!d`@!cb
z2CsKs3|!}T^7fSZm?0dJ^JE`ZGxA&a!jC<>6_y67On0M)hd$m*RAzo_qM?aeqkm`*
zXpDYcc_>TFZYaC3JV>{>mp(5H^efu!Waa7hGTAts29jjuVd1vI*fEeB?A&uG<8dLZ
z(j6<v3j>;-%vJ7R0U9}XkH)1g>&uptXPHBEA*7PSO2TZ+dbhVxspNW~ZQT3fApz}2
z_ at 0-lZODcd>dLrYp!mHn4k>>7kibI!Em+Vh*;z}l?0qro=aJt68joCr5Jo(Vk<@i)
z5BCKb4p6Gdr9=JSf(2Mgr=_6}%4?SwhV+JZj3Ox^_^OrQk$B^v?e<VR4r!cUQcNa*
zLw&@@0{2I&$oQBHjs;Rdk`@6y1!<-(7NgjbFuEcwrG9}&Hy03(S??>Nz}d^xRaz&~
zKVnlLnK<O~>#8^y=If2f1zmb~^5lPLe?%l}>?~wN4IN((2~U{e9fKhLMtYFj)I$(y
zgnKv?R+ZpxA$f)Q2l=aqE6EPTK=i0sY&MDFJp!vQayyvzh4wee<}kybNthRlX>SHh
z7S}9he^EBOqzBCww^duHu!u+dnf9veG{HjW!}aT7aJqzze9K6-Z~8pZAgdm1n~aDs
z8_s7?WXMPJ3EPJHi}NL&d;lZP8hDhAXf5Hd!x|^kEHu`6QukXrVdLnq5zbI~oPo?7
z2Cbu8U?$K!Z4_yNM1a(bL!GRe!@{Qom+DxjrJ!B99qu5b*Ma%^&-=6UEbC+S2zX&=
zQ!%bgJTvmv^2}hhvNQg!l=kbapAgM^hruE3k at jTxsG(B6d=4thBC*4tzVpCYXFc$a
zeqgVB^zua)y-YjpiibCCdU%txXYeNFnXcbNj*D?~)5AGjL+!!ij_4{5EWKG<MLirH
z+DX^Dk(~hl-o)R17Ke7NBWBmGx0}_Yh*L{$3or|S`y{XU9=}stg7(?(^wZZS2Da%+
zWvCP|MzT2WK(<`aoEV!R1WAp-r%3{)SA=78<qFf;<rwNmD*Y*6(NUk(!LD}1(qHA3
z`=B=489M4KM^RxXd(tHgT%9X5Tjnh2mdXv4MCT5VYa7rd+N5ISRlSW}1lw5{(5L at K
zwzTh&rM#;2<;oP^LJod0{WsXpN5C{w?l*Jg>av0^={~M^q}baAFOPzxfUM>`KPf|G
z&hsaR*7(M6KzTj8Z?;45zX at L#xU{4n$9Q_<-ac(y4g~S|Hyp^-<*d8+P4NHe?~vfm
z at y309=`lGdvN8*jw-CL<;o#DKc-%lb0i9a3%{v&2X($|Qxv(_*()&=xD=5oBg=$B0
zU?41h9)JKvP0yR{KsHoC>&`(Uz>?_`tlLjw1&5tPH3FoB%}j;yffm$$s$C=<NH+_Q
zuVOy!BKDYAHt^L);tLou9Iw!KVrZ;__9lB4Qu}AkDaaH65g at R}lia;0J%u}*93`p?
zaeF={6)8oIBzH4kIggVAVvNSbROx-Z(+`hO*myDp7yv#WCwMIxk<hHjD5AkCV*KFy
z7uwrr!(roY4b(1>RHi`I3*m@%CPqWnP at B~%DEe;7ZT{9!IMTo1hT3Q347HJ&!)BM2
z3~aClf>aFh0_9||4G}(Npu`9xYY1*SD|M~9!CCFn{-J$u2&Dg*=5$_nozpoD2nxqq
zB!--eA8UWZlcEDp4r#vhZ6|vq^9sFvRnA9HpHch5Mq4*T)oGbruj!U8Lx_G%Lby}o
zTQ-_4A7b)5A42vA0U}hUJq6&wQ0J%$`w#ph!EGmW96)@{AUx>q6E>-r^Emk!iCR+X
zdIaNH`$}7%57D1FyTccs3}Aq0<0Ei{`=S7*>pyg=Kv3nrqblqZcpsCWSQl^uMSsdj
zYzh73?6th$c~CI0>%5@!Ej`o)Xm38u0fp9=HE at Sa6l2<mw_Yh7ly>oX9^^4|Aq%GA
z3(AbFR9gA_2T2i%Ck5V<FfGDt5jFr`inQh;1&EJ*>2Q2WW-(a&(j#@l6wE4Z`xg#S
za#-UWUpU2U!TmIo`CN0JwG^>{+V#9;z<j+vge|-bMmFe5eQtw=$jBe&1J+DLGhNXR
zVF0LJkT6h0B8nsw@>vx;ztc$}@NlcyJr?q(Y`UdW6qhq!aWyB5xV1#Jb{I-ghFNO0
z<gP-h at 3s4i1u==>FU~+QgPs{FY1AbiU&S$QSix>*rqYVma<-~s%ALhFyVhAYepId1
zs!gOB&weC18yhE-v6ltKZMV|>JwTX+X)Y_EI(Ff^3$WTD|Ea-1HlP;6L~&40Q&5{0
z$e$2KhUgH8ucMJxJV#M%cs!d~#hR^nRwk|uuCSf6irJCkSyI<%CR==tftx6d%;?ef
zYIcjZrP at APzbtOeUe>m-TW}c-ugh+U*RbL1eIY{?>@8aW9bb1NGRy at MTse@>=<ra>
za%;5=U}X%K2tKTYe9gjMcBvX%qrC&uZ`d(t)g)X8snf?vBe3H%d<Ke$F$Z0AGpq$L
zh*N9G{;KEPa}gmeOBNBk0zORp;`+VU|1_04|4V$bCz(R~xePApA?YFdZU$CR63IbQ
z2Pq2(THUz7SlMWdHOdM19(SYTR)^7j>G=b<Uy4X-FL at RBUeVq-s%!3f=Wp$pdFiyc
z*UH5I+~YQSU-pf1Z~4Z+d0X6)<0i*Q_Z}vh)KKf>l^rv8Z at YN$gd9yveHY0 at Wt0$s
zh^7jCp(q+6XDoekb;=%y=Wr8%<!i<hjG`j2f#)CHoE%?oHV1t_^966$UcQ|tMEj_Y
z^Dp_?#syJ7V{9Es?J3v}f}pPx{87yPa7|66#gbBs#7ePJ{bo_oH&rCWA~hx1V^t$U
z+8 at 1TWfn_Z`;{~9gC9mv?eoQ*Y-C)rhp|}dc#r5_J0yspKw$C`a}OGKQh(E&3WUik
z4AxbHbeGhXO7DYJ7=8m!=+Sj-HxJCb*@hx`<Q?E73ZqASI|ZO4gQX;PgpcX_I2dEP
z4PzF^;fhXQ)40w{k(P#>6;z0ANH5dDR_VudDG|&_lYykJaiR+(y{zpR=qL3|2e${8
z2V<U){GkH!99$-?(vZQ6`9xYUH;m>;?jgHj7}Kl(d8C9xWRjhpf_)KOXl+ at c4wrHy
zL3#9U(`=N59og2KqVh>nK~g9>fX*PI0`>i;;b6K<iTA=O-~d|1 at 8nQW|764_gHT9A
z+Jdw)Cus?cfv_Gsi;gF31B#4DZ2^Yn1Wk~wI*LZ!hnDLnI_*R~z#5pH4R3KO1Ir1F
zNQX5wC;<FU(7pj+t&{Y#h#K(_6=WtrHj4aPX$5uUHjT;c(e}35?V4?SZCg90+pyx(
z`_R8jCQe*LR*{P)PNV>F|8zg+k2hViCt}4dfMdvb1NJ-Rfa7vL2;lPK{Lq*u`JT>S
zoM_bZ_?UY6oV6Ja14X^;LqJPl+w?vf*C!nGK;uU^0GRN|UeFF@;H(Hgp8x^|;ygh?
zIZx3DuO(lD01ksanR at Mn#lti=p28RTNYY6yK={RMFiVd~k8!@a&^jicZ&rxD3CCI!
zVb=fI?;c#f{K4Pp2lnb8iF2mig)|6JEmU86Y%l}m>(VnI*Bj`a6qk8QL&~PFDxI8b
z2mcsQBe9$q`Q$LfG2wdvK`M1}7?SwLAV&)nO;kAk`SAz%x9CDVHVbUd$O(*aI at D|s
zLxJW7W(QeGpQY<$dSD6U$ja(;Hb3{Zx@)*fIQaW{8<$KJ&fS0caI2Py^clOq9 at Irt
z7th7F?7W`j{&UmM==Lo~T&^R7A?G=K_e-zfTX|)i`pLitlNE(~tq*}sS1x2}Jlul6
z5+r#4SpQu8h{ntIv#qCVH`uG~+I8l+7ZG&d`Dm!+(rZQDV*1LS^WfH%-!5aTAxry~
z4xl&rot5ct{xQ$w$MtVTUi6tBFSJWq2Rj@?HAX1H$eL*fk{Hq;E`x|hghRkipYNyt
zKCO=*KSziiVk|+)qQCGrTYH9X!Z0$k{Nde~0Wl`P{}ca%nv<6fnYw^<s*I^w2}g4)
zDT(2xL%uqsByOSZ61tavt7O>~9dYxTnTZB&&962jX0DM&wy&8fdxX8xeHSe=UU&Mq
zRTaUKnQO|A>E#|PUo+F=Q at dMdt`P*6e92za(TH{5C*2I2S~p?~O at hYiT>1(n^Lqqn
zqewq3ctA<T{c@#lWCZ$(!d{cN7=2we77Yx!0ew~Gx<3;vHo@;Z=)<i6dXzL;AY|z|
zQh^P>A%0E)r53*P-a8Ak32mGtUG`L^WVcm`QovX`ecB4E9X60wrA(6NZ7z~*_DV_e
z8$I*eZ8m=WtChE{#QzeyHpZ%7GwFHlwo2*tAuloI-j2exx3#x7EL^&D;Re|Kj-XT-
zt9<G*I5j~YwPM=zQc<-<5T)`?p=k3wJ6%=B%=d_ at HDXhwqg3ij6<6Gneq}IMRsO?+
zZ$ux+&=>08^soV2`7s+Hha!d^#J+B)0-`{qIF_x=B811SZlbUe%kvPce^xu7?LY|C
z at f1gRPha1j<g?ml{#gpkD^O$XNTr0o(I;d;h4uA8LjteITT`#--;T+ZYX+t7g{&jY
z%jLmo;U5!e_41&}2`Y3PtJNiOtyHYGC;e`w)XqI9cfa-k)QH;zlhbma7)pQ1mZ#s9
zrt1Z7OQrg>q|=f}Se)}v-7MWH9)YAs*FJ&v3ZT9TSi?e#jarin0tjPNmxZNU_JFJG
z+tZi!q)JP|4pQ)?l8$hRaPeoKf!3>MM-bp06RodLa*wD=g3)@pYJ^*YrwSIO!SaZo
zDTb!G9d!hb%Y0QdYxqNSCT5o0I!GDD$Z at N!8J3eI@@0AiJmD7brkvF!pJGg_AiJ1I
zO^^cKe`w$DsO|1#^_|`6XTfw6E3SJ(agG*G9qj?JiqFSL|6tSD6vUwK?Cwr~gg)Do
zp@$D~7~66-=p4`!!UzJDKAymb!!R(}%O?Uel|rMH>OpRGINALtg%gpg`=}M^Q#V5(
zMgJY&gF)+;`e38QHI*c%B}m94o&tOfae;<xSoo%JWgt|4OsWqBge(0MrWCl{^{1qR
z$9kiQL{yp=)4GQGI_Jm5&g#GDTYcGhkauMJQ(qfM)1pg_a_8YpGwNbwNKp#T3-1 at 6
z|CjTBM~_fXe$Rs`cJE+v;7^0eysLT1ugyST5y-lLQ?!t5I+r@})qno};JoRD-E=Xi
zX_8OynCqNAP{M at 6q0{1lA$fd7YVYB^B3HOC?;KS&skUZdpr&?G*{Dvo9Hf%gnd2O9
zvFCA)Qg13bH?d=3bMwL-iMgPupd}c_KuUy2B!UeZUr<=BIK|YBv?yV$q58*?!w_CK
zhp}K1=StAQ6{?zIqvi9mLesqVm&dX(9+AzcRVtrMpZ;{ErIyVQpVYzYVcvn6%u9m3
zENe?2g{r;1I%;x<{deB!54%lK?QVcb%q|Y(3&@xG42;qPh~(~r6ouOokrhp}g_Byo
zKp4yiKG~E3?*xr!?^(OHXYKbID at Vk%L$MJN?dLjF_FD?rZRr8zTic`kxqVF61s8OU
zY1cLlYqVUOIkCpn>og&!J2;6ENW}QeL7<PXg{yny8O<B+-%z=8!`{k at uZK?dU2tpL
zoDCc1bk4tH!`>3jatbI1*9X~y=$Dm%6FwDcnCyMRL<PZ=`4kP-O>}zo`0=y7=}*Uw
zo3!qZncAL{HCgY!+}eKr{P8o27ye+;qJP;kOB%RpSesGoHLT6tcYp*6v~Z9NCyb6m
zP#qds0jyqXX46qMNhXDn3pyIxw2f_z;L_X9EIB}<BZV)NY+Sf`GmW4*C1<w9<G3 at Y
zR-2Ao^uw)%Z0Eww)CNf&GoE61(l=R$@lLulhRTBom-G)|sA)*B&(~_KWRT_L+saB5
zo*q>AhyC`FYI}G3$WnW>#NMy{0aw}nB%1=Z4&*(FaCn5QG(zvdG^pQRU25;{wwG4h
z at kuLO0F->{@g2!;NNd!<zny}%07Jn8Nf<E`qd>PfqM-;@F0;&wK}0fT9UrH}(8A5I
zt33(<pT6JhCadCO^EwcP0}B}m196bLHZSD1wzS~lgDzyBOMDp_>+&U;CLN|8+71 at g
z(s!f-kZZZILUG$QXm9iYiE*>2w;gpM>lgM{R9vT3q>qI{ELO2hJHVi`)*jzOk$r)9
zq}$VrE0$GUCm6A3H5J-=Z9i*biw8<GlN{|J&^K2l_*g<#Pt^RN|DX}11Ly}*7(>ng
zi<1nM0lo^KqRY at Asucc#DMmWsnCS;5uPR)GL3pL=-IqSd>4&D&NKSGHH?pG;=Xo`w
zw~VV9ddkwbp~m>9G0*b?j7-0fOwR?*U#BE#n7A=_fDS>`fwatxQ+`F<!Rj$KZl*<p
zT?$eX^b9WOf%^Fc5Ow$#oiLZxFXB|4X4Ah-N23bVC3rdbHNy5`I((oY2SI(gVJE_3
zv~k-4(EcFxN5Hx@>zhBGQUAyIRZ??eJt46vHBlR>9m!vfb6I)8!v6TmtZ%G6&E|1e
zOtx5xy%yOSu+<9Ul5w5N=&~4Oph?I=ZKLX5DXO(*&Po>5KjbY7s at tp$8(fO|`Xy}Y
z;NmMypLoG7r#Xz4aHz7n)MYZ7Z1v;DFHLNV{)to;(;TJ=bbMgud96xRMME#0d$z-S
z-r1ROBbW^&YdQWA>U|Y>{whex#~K!ZgEEk=LYG8Wqo28NFv)!t!~}quaAt}I^y-m|
z8~E{9H2VnyVxb_wCZ7v%y(B at VrM6lzk~|ywCi3HeiSV`TF>j+I<PcrA4vbhkc}Ds9
zVnPj;dD9hvN^{*9tq;`Y3-i35x*J^9kk!Mknb6QMp+R%r;|Y~}U1bd=<D2Z^=6NHx
z)o!mbv)c13!qxVmdz at Dme2Ud2?)buFbw!<Z_N}SPHX2 at PRM{c<oRhmdQ=Q!h%GA-#
zE|+zRyX;@_)`kh%@3wm_ZjUz-66I&coi<`>jd|p*kyn;=mqtf8&DK^|*f+y$<HJ*z
z{kCJi%r~syv1<5SAj?Qn<RD-N0#-mimPHVGsjQ(4>38+9!sis9N=S)nINm9=CJ<;Y
z!t&C>MIeyou4XLM*ywT_JuOXR>VkpFwuT9j5>66<JwXm0Iz|uD_GISrZ<tb63#|b6
zmesyu7v#<;wAs4wx|xl$8!C)O(dny+&uQp5Yiylr74+Z{`kuduLfD{$!RweaKvq@@
zSKvT=l{+EaFCqSAuk-})NiD5^S-DyEOCPWcr6mSZED8GEaH3HbBi=sIw&e0Ek0*HT
zg7i-oY%env)m$!wZo6{H^btX$@qVG{e!&!~J#BILfmfs_E?=UpX#O6)G;!&c?y}Qg
zZDtQIxqNpZ+R#vKv;FOFva`NsR7883$-r&2{_WuFALO<~3Fk}Bb(WC&g8i;%)qzDY
zRjOTdfX!%Ad(<}BcYy4>7A=CU*{TBrMTgb4HuW&!%Yt`;#md7-`R`ouOi$rEd!ErI
zo#>qggAcx?C7`rQ2;)~PYCw%CkS(@EJHZ|!!lhi at Dp$*n^mgrrImsS~(ioGak>3)w
zvop0lq at II<?zr~h{;~Z%uibTbs^_R=H(HEh%|uq3KKIc_zxBu?d|hToq+T%unvO at H
z_7G`_g*WS&kUbvS*4>SuA0Ou*#1JkG{U>xSQV1e}c)!d$L1plFX5XDXX5N<n2C0jm
zX{r1Jy%RD8vWp=4fyb$$F_f=*`nvNgb$TK5DH~vUeDX&BtW7RGgbP7rCk$}DqbN_=
zG+ at cCNjfaVNpOlFw+a>7Ns{kT{y5|6MfhBD+esT)e7&CgSW8FxsXTAY=}?0A!j_V9
zJ;IJ~d%av<@=fNPJ9)T3qE78kaz64E>dJaYab5u<efW`3H($g#7XgvMkYf+oz36no
z(7hfLHbbB2R0{1uae-^d+wzih8L%N9he3ud^j?e&dq$dH2awC*y4Q%$6QP+9{{{^S
zS|%?I`*;k>aU`n~Zdp2h{8DV%SKE5G^$LfuOTRRjB;TnT(Jk$r{Pfe4CO!SM_7d)I
zquW~FVCpSycJ~c*B*V8?Qqo=GwU8CkmmLFugfHQ7;A{yCy1OL-+X=twLYg9|H=~8H
znnN@|tCs^ZLlCBl5wHvYF}2vo>a6%mUWpTds_mt*@wMN4-r`%NTA%+$(`m6{MNpi@
zMx)8f>U<?#KGhQOH9sd_ at m#$xV)2XXy+)7rj<v$+ at Y;iI(?-Y3Sg0r<Nksvzzi#Zp
z$q~EP;jFN*8js?YBQ<`b?Z-d1$^IIsy$A>4hd!row at gM&PVo&Hx+lV@$j9yWTjTue
zG9n0DP<*HUmJ7ZZWwI2x+{t3QEfr6?T}2iXl=6e0b~)J>X3`!fXd9+2wc1%cj&F at Z
zgYR|r5Xd5jy9;YW&=4{-0rJ*L5CgDPj9^3%bp-`HkyBs`j1iTUGD4?WilZ6RO8mIE
z+~Joc?GID6K96dyuv(dWREK9Os~%?$$FxswxQsoOi8M?RnL%B~Lyk&(-09D0M?^Jy
zWjP)n(b)TF<-|C<kuA~or~e()IVaJB8ThDOo%m84{2#Jw7lA;F7HB%yOOfao*a-Bo
z9vF{4tjJ*|r>G%!Vz?8Fu&6iU<>oG#kGcrcrrBlfZMVl0wOJvsq%RL9To%iCW@)#&
zZAJWhgzYAq)#NTNb~3GBcD%ZZOc43!YWSyA7TD6xkk<oWhdAZNF5oEMySt*u%}=mX
zY^=DnO8CU4$;_0G$Mo-Kkj5NlGljS+>)n^FaRAz73b}%9d&YisBic(?mv=Iq^r%Ug
zzHq-rRrhfOOF+yR=AN!a9*Rd#sM9ONt5h~w)yMP7Dl9lfpi$H0%GPW^lS4~~?vI8Z
z%^ToK#NOe0ExmUsb`lLO$W*}yXNOxPe at zD*90uTDULnH6C?InP3J=jYEO2d)&e|mP
z1DSd0QOZeuLW<s88&Dqv$ZDY(qEHICGi1F$d4+8O&b2468PMe9JW2)dic7s&U~)}9
zv>o*NqZzopA+LXy9)fJC00NSX=_4Mi1Z)YyZVC>C!g}cY(Amaj%QN+bev|Xxd2OPD
zk!dfkY6k!(sDBvsFC2r^?}hb81(WG5Lt9|riT`2?P;B%jaf5UX<~OJ;uAL$=Ien+V
zC!V8u0v?CU<?sa9rw*YNr=`U}IHdv2<G`|o3Bx8D;^GeQOIB`c%X^K&>a)4*Q+Q_u
zkx{q;NjLcvyMuU*{+uDsCQ4U{JLowYby-tn@<?{mQ!v2u1l{5e{t5 at ZjF*S!>hatL
zy}X>9y08#}oytdn^qfFesF)Tt(2!XGw#r%?7&zzFFh2U;#U9XBO8W--#gOpfbJ`Ey
z|M8FCKlWQrOJwE;@Sm02l9OBr7N}go4V8ur)}M at m2uWjggb)DC4s`I4d7_8O&E(j;
z?3$9~R$QDxNM^rNh9Y;6P7w+bo2q}NEd6f&_raor-v`UCaTM3TT8HK2-$|n{N at U>_
zL-`P7EXoEU5JRMa)?tNUEe8XFis+w8g9k(QQ)%?&Oac}S`2V$b?%`DwXBgja&&fR@
zH_XidF$p1wA)J|Wk1;?lCl?fgc)=TB3>Y8;BoMqHwJqhL)Tgydv9(?(TBX)fq%=~C
zmLj!iX-kn7QA(9snzk0LRf<%SzO&~IhLor6A3f*U^UcoAygRe!H#@UCv$JUP&vPxs
zeDj$1%#<2T1!e|!7xI+~_VXLl5|jHqvOhU7ZDUGee;HnkcPP=_k_FFxPjXg*9KyI+
zIh0 at +s)1JDSuKMeaDZ3|<_*J8{TUFDLl|mXmY8B>Wj_?4mC#=XjsCKPEO=p0c&t&Z
zd1%kHxR#o9S*C?du*}tEHfAC7WetnvS}`<%j=o7YVna)6pw(xzkUi7f#$|^y4WQ{7
zu@@lu=j6xr*11VEIY+`B{tgd(<i-P<xW8QmX{Uu}CW{$k=4G`<yQ5DK7nY#9L<7KO
zZl2V*aS4sKmaEUS-mY%P1^cv^q{7lxZ)5qzsWF(QH6y#+dwE4lRddpa#$Z}_cCaKa
zE;TlFY<W#EqQ=~xoZ>c3zO8%nGk0U^%ec6h)G_`ki|XQXr!?NsQkxzV6Bn1ea9L+@
z(Zr7CU_oXaW>VOdfzENm+FlFQ7Se0ROrNdw(QLvb6{f}HRQ{$Je>(c&rws#{dFI^r
zZ4^(`J*G0~Pu_+p5AAh>RRpkcbaS2a?Fe&JqxDTp`dIW9;<O_d1fh3g+@%<JHS<h;
z`xr?<<utwG<Lj5Zdhfz~Sd#5Kb7T9+cKkOui1y`+Uv$r&om%~&H3ligXMa!k1A}&8
z`oKdmM{uQUq3k>DL%0wxX5;`KxyA4F{(~_`93>NF at bj4LF!NC&D6Zm+Di$Q-tb2*Q
z&csGmXyqA%Z9s(AxNO3 at Ij=WGt=UG6J7F;r*uqdQ<A<k`&*~1mNB0QW1T5I+z^l>a
z?7j!nV{8eQE-cwY7L(3AEXF3&V*9{DpSYdyCjRhv#&2johwf{r+k`QB81%!aRVN<&
z at b*N^xiw_lU>H~@4MWzgHxSOGVfnD|iC7=hf0%CPm_@@4^t-nj#GHMug&S|FJtr?i
z^JVrobltd(-?Ll>)6>jwgX=dUy+^n_ifzM>3)an3iOzpG9Tu;+96TP<0Jm_PIqof3
zMn=~M!#Ky{CTN_2f7Y-i#|gW~32RCWKA4-J9sS&>kYpTOx#xVNLCo)A$LUme^fVNH
z@^S7VU^UJ0YR8?<bG~Mj6Gj-lk3HOub{MXq84f%T`QY6$SQB%P+{DM48!0oDB|1i&
zZKxv58$HkYAPzeA(N at 4W-r2I(ob~ZN%-H1^uVTL2tUjwxrv8WT<9HEQp}oppV?S-b
z?TWa%T=%&4xZ~a0-G(Qtj>Oy$^IYuG*bm|g;@aX~i60%`7XLy*AYpYvZ^F^U(!|RW
z*C!rJ at +7TGdL=nNd1gv^%B+;Fcr$y)i0!GRsZXRHPs>QVGVR{9r_#&Qd(wL|5;H;>
zD>HUw=4CF++&{7$<8G at j*nGjhEO%BQYfjeItp4mPvY*JYb1HKd<ZQ^<n)7B(e{N}R
zNACLEJ-M&vp2!R2b>!{HJ9*)(3%BR%{Pp?AM&*yHAJsW({ivOzj*qS!-7|XEn6 at zo
z3L*tBT%<4RxoAh>q{0n_JBmgW6&8hx?kL(_^k%VL>?xjAyrKBmSl`$=V|SK}ELl}@
zd|d0eo#RfG`bw9SK3%r4Y+rdvc}w}~ixV%tqawbdqvE-WcgE+BUpxMT%F at btm76MG
zn=oQRWWuTm+a{dy)Oc2V4yX(@M{QAkx>(QB59*`dLT`<?!`ti2 at y+pV_8st7_#g52
z1!@8-14n{+!KuOff(Jusq1w=z(B5!jxFx(cyss+1s<Z0Bs-u@|yyQrAPIYVbrs`9d
z>Pz3Lsj9iB=HSHAiCq()ns|Cr)1<p6y)@aLys9>*c605Cx}3V&x}Lg?b+6Q?)z7Kl
zQh&1Hx`y6JY-Cwvd*ozeps}a1xAA0CR+Da;+O(i)P1C;SjOI}Dtmf6tPqo-Bl`U78
zv$kYgPntPp at G)n1an9tEoL*Vumu9`>_ at I(;+5+fBa-*?fEx=mTEjZ7wq}#@Gd5_cW
z!mP{N=yqEntDo)|>oy6{9cu+-3*GTnmb^`O0^FzRPO^&aG`f at F_R*aQ_e{F+_9%NW
z4KG_B`@X3EVV9L>?_RNDMddA>w=e0KfAiw5?#i1NFT%Zz#nuv(&!yIU>lVxmzYKQ`
zzJ*0w9<&L4aJ6A;0j|_<vbtcWAbbzpCj3Gin*xk%@5HxYh(fosHrML5=EAoJzwHRw
zh@)_=)rwlI8GD^(O|@nqTobf9QEEG(*M$^xqkm*B>~i>+y(q-=;2Xxhx2v%CYY^{}
z^J at LO()eLo|7!{ghQ+(u$wxO*xY#)cL(|mi<iezIsIQq}e;H<1HsO1a%jmXB^n!Yj
z`bEguLTH*W^N>H2_ck2yN{mu4O9=hBW*pM_()-_YdH#Ru{JtwJ^R2}3?!>>m1pohh
zrn(!xCjE<?5dV)b*C5Aj$gepjhO+1}F~03sn})p^Uz6_w9HjtSwO;4fgQNBdkCC(S
zXIQs_lKEg{DKt7!64 at q0U7<~Z9sWW2MiWn5C=n^v2(+j+NQ}hd(YScLR6bFX1e5GJ
z{f}vqE*X+(y(=SeU6&=<n3p71@^G&#A3gi#b>0Q&EH1<ywPMV at T7r4FN~KK7(R*2e
zG3w at Kn+NlNX^aE);gT>QK?zA%sxVh&H99cObJUY$veZhQ)MLu-h%`!*G)s$2k;~+A
z)Kk->Ri?`oGDEJEtI*wijm(s5<vO`uZjc+%3o%>f$W78FH{+qBxiU{~kq((J3uK{m
z$|C8K#j-?hm8H at x%VfFqpnvu at xn1s%J7uNZC9C99a<_b1J|mx%)$%!6gPU|~<@2&m
zz99GDp`|a%m*iggvfL;4%X;~WY>)@!tMWB at P`)k?$;0x9JSrRI8?s3rlgH(o@`OAo
zn{f*gZ#t2u<vX%PzAIbh8QCV^lkM_->6K??hx|aElOM`Xd0t+SAIUEHvFw%?Wsm$s
zUXq{6UU?a>Nc@@Xlb_2k<d?Yk`js4zSLLAmT7Dyk<TW`guge>9M1Ctr<#+O?yd}rv
z_wu&<L5|BGrBD7Of0n<<JMvdKA at 9n2@;7;3{*GxNK9rO44>=_t$!Yngd at N_AUj}T;
z#*Ce|%XZr_sQcsWcsl{pCnnj+c8ZNIMmx<;w=-g$Q>BU;9k;w|zQ;4!W32Xg2Cd?{
zvmO3kuKQ^Hv;o>6ZHP8ZJ2`4~Bx?N;cf<0fi=!*G^^WzbTF3e$b&d^qqB{>nqLG81
zs94bBh%|Vj+hLu=!8(b9brJ>ZBns9^6s(gdSVyP9qnu2_I{Sg8j-rloG6{d`De5We
zDe5WeY3ga}Y3ga}Y3ga}Y3ga}Y3ga}d8y~6o|k%F>UpW>rJk31Ug~+N=cS&HdOqs;
zsOO`ek9t1p`Kafko{xGy>iMbXr=FjBxZMYc8a#gL`Kjlpo}YSt>iMY`pk9DF0qO*(
z6QE9jIsxhgs1u-0kUBx8D at eT{^@7w3QZGooAoYUO3sNscy%6<6)C*BBM7<F8LevXU
zFGRf%^}^H(Q!h-tF!jRJ3sWyly>L`dk$Xk%6}eZQXgo#!75P`>Uy*-B{uTLG<X at 40
zMgA4}SL9!je?|Tk`B&s$k$*-075P`>Uy*-B{uTLG<X at 40MgA4}SL9!je?|Tk`B&s$
zk$*-075P`>Uy*-B{uTLG<X at 40MgA4}SL9xidqwUQxmV;~k$Xk%6}eaBUXgo6?iIOL
z<X#1$JSg(7$iE{0iu^0`ugJe5|BC!8@~_ChBL9l~EAp?%zasyN{44UW$iE{0iu^0`
zugJe5|BC!8@~_ChBL9l~EAp?%zasyN{44UW$iEuoJ{&DaDjY3GsEwTSjAnVzEDxIH
zL9;w)mIux9pvk``|C;=3@~_FiCjXlJYx1wjy(agXylZl<$+;%y7~~jDCpp*TT9a!{
zt~I&V<XV$!O|CV$*5q1~YfY{-xz^-blWR?`G3|Ub9pqZ`yspW&Cf}NTYx1qhw<h13
qd~5Qp$+srontW^Wt)qNLLXk-9aux9_WlUi5WYd6^D_dVgyY*ioe at L+a

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/fonts/glyphicons-halflings-regular.woff b/ui/new-ui-samples/fonts/glyphicons-halflings-regular.woff
new file mode 100644
index 0000000000000000000000000000000000000000..9e612858f802245ddcbf59788a0db942224bab35
GIT binary patch
literal 23424
zcmY&eV{m0%u#Iioo_J#0nb?@vwry)-+qNe*Z>))v8{5gt_uj9!t5)^yb-JtjRGrhi
zYInOUNJxNyf_yKX01)K=WP|Si>HqEj|B{eUl?MR<)%<1&{(~)D+NPwKxWqT-@~snp
zg9KCz1VTZDiS?UH`PRk1VPM{29cgT9=<v;Lf`EYagMdIet=H at a8oRlWfPg?`f7?L(
zFKED?%?+Ku?I7~Mb(sI~^#uZMZsTe8&6R_I$YX<mq!jz=4cJ?l8k&HBDD{8auziCA
zQl4qm;+y>D?!Wc_@}qzggFv;gb at 2cJQAYWWtpEZ7?y at jSVqjx${B5UV at SO|wH<<0;
z{><1KdVI%Ki}>~<`46C0AggwUwx-|QcU;iiZ{NZu`ur>hd*|<W)sXtmhXDixZoaeV
zklo$X=sQ21?>Hb(|6veERq<PbegkBRzi{?HIp-GW`hU_n&12ozz{J4dAGi at L6pDe-
z_ud2pJc-_b2pj}b3Pc9vzvpJBX4(Dy6a52IgD!!AfuwLEKN$^~jn+XAz)Mg9U?T~E
zgqNfL`tz^91n&aBz=T}M5SD}tB`7H25Mn at BQsEK4gL$l9qzGE52osF at rxjbO42^t7
z#@g=mu(37N%+Vt`PAJL-lQ=FQENF`3={3?oV6ei1hBKA`DuVTzgGk7b#0j#++TdzR
zI(97e!~g}_G7m33x=^Ssom?;fl4q}a+^;UP-1|ZzG9$*2kpk7p8YI9lAxj<90CjKp
zE8u&KGi5Zv=157hgKP@$c2&H4zuKcOmHoZD%?+qY(Kf~v8|7crq{Nr<WvZ$ts)Fb$
z8!IcdkQ`H>xu=b at 5Bab=rqptGxd{QJg!4*-i_$sES~)AB46}Fjg|ea#e@?J}z%CUJ
zOsLWRQR1#<tB|QIEY)&I*ZbudHp)E;$><nb=BbXZ4tHi(jj=+TGtb?X^faOKFyozE
zS at PKF)~8;5xRSNpTm4ugp<(oc at Q3%7K-)@eyP?m1z&l;rf%%J4?;rfzsBU`M+aNyb
z*@?y5Vm{LN at ggUHmiuxx_Dtj5rsol#BM~=pjyHqe<HcvPas11*o_#i9ZJ%`X+7&6Y
z4F}#7CrnT%)O76bs<&03Bs~CBL9-lPzgZEx+oS+S$-gV~5q;R39w5(FZ(Km5B%*l&
z(rrr`BO68!fN#?(kC!s6W?du1 at vWLl$02}9k4Iw`sS*azt|mzMLd*ov1C_X-Z_DEc
zA>ng^sD)A4FDuY!iUhzlgfJh(J at BRqd&P#v2B`+saBx>m+M&q7vk-75$NH%T5pi%m
z5FX?`2-5l53=a&GkC9^NZCLpN5(DMKMwwab$FDIs?q>4!!xBS}75gX_5;(luk;3Vl
zLCLd5a_8`Iyz}K}+#RMwu6DVk3O_-}n>aE!4NaD*sQn`GxY?cHe!Bl9n?u&g6?aKm
z-P8z&;Q3gr;h`YIxX%z^o&GZZg1=>_+hP2$$-DnL_?7?3^!WAsY4I7|@K;aL<>OTK
zByfjl2PA$T83*LM9(;espx-qB%wv7H2i6CFsfAg<9V>Pj*OpwX)l?^mQfr$*OPPS$
z=`mzTYs{*(UW^ij1U8UfXjNoY7GK*+YHht(2oKE&tfZuvAyoN(;_OF>-J6AMmS5fB
z<XKU7YH10@@&WJhj71Cj$=TP(r at q<cW{2}t$FbdUw)ad2!elcuLPw0X5toDsPadV*
zO3EPF>^sY6wea&&${+!}@R1f$5oC-2J>J-A${@r(dRzc`wnK>a7~8{Y-scc|ETOI8
zjtNY%Y2!PI;8- at a=O}+{ap1Ewk0 at T`C`q!|=KceX9gK8wtOtIC96}-^7)v23Mu;MH
zhKyLGOQMujfRG$p(s`(2*nP4EH7*J57^=|%t(#PwCcW7U%e=8Jb>p6~<TTQ9e?y3C
zdb|J>>RAlY4a*t<yx)M!`#-^(n~+nSXHt)XXPCd>s=pl}_J{->@kKzxH|8XQ5{t=E
zV&o`$D#ZHdv&iZWFa)(~o<E{GN9+27JE4iktONzQ1b)q{Sex30G?of$HMKN~8KD%g
zA+E{L7XRV>Bh-Osl{~CS0hfM7?PyWUWsr5oYlsyC1cwULoQ4|Y5RHA2*rN+EnFPnu
z`Y_&Yz*#550YJwDy at brZU>0pWV^RxRjL221 at 2ABq)AtA%Cz?+FG(}Yh?^v)1Lnh%D
zeM{{3&-4#F9rZhS at DT0E(WRkrG!jC<!Dwf at j`RqVrLtHFoIyn_L9bxbWrgS*Z9wMu
z#p1&N;H{ZGv&zD_N*zbkas>#5?OFjZv*xQjUP~XsaxL2rqRKvPW$zHqHr8Urp2Z)L
z+)EvQeoeJ8c6A#Iy9>3lxiH3=@86uiTbnnJJJoypZ7gco_*Hv<E!$|Yb^#x+eGvv(
zIp;Wt3|Xgi12|CZQBu5wnkbr4Z_o<}@wU&ThE&G4r6LGOs?2M%<}Vu1j2>KOH97B?
zWiwp>+r}*Zf9b3ImxwvjL~h~j<<3shN8$k-$V1p|96I!=N6VBqmb==Bec|*;HUg?)
z4!5#R*(#Fe)w%+RH#y{8&%%!|<UeDoR>fQ5JcFzUE;-yVYR^&Ek55AXb{^w|@j|&G
z|6C-+*On%j;W|f8mj?;679?!qY86c{(s1-PI2Wahoclf%1*8%JAvRh1(0)5Vu37Iz
z`JY?RW at qKr+FMmBC{TC7k@}fv-k8t6iO}4K-i3WkF!Lc=D`<I4n3h#nG>nuD)v#Na
zA|R*no51fkUN3^rmI;tty#IK284*2Zu!kG13<C=xWI7mp_-$=}wb|<b)!OZRv-HEP
z{%b~I$E(4`VZ#-glOe-5)a2pflY1Bz-1#4je?)~T9!X4-E;pkTTM{XAe2I!K$wY&{
zHEYHdnV_WuXSOaFHmg_J8USFkT|e)_-*FkL at p7z7`X=kCplNBVHgHbdYiIA4b&ia%
zF^b30NW{}~a)`)^H3EMpr)@2a^C3(yt-t3eigT2)odQdx2zf*pafN9pF#;@+u4LZa
z7x<*Yxq9&rRf5M3B$p^s`skXsITAn=Zo(y=33sGRSGWuaK?&Ne`Pj#q{feF+D~&z+
zEyT)MiaBL7L|^V76c6eAiTxZof6 at zS20aGf%dzLc3HH8OA(-=u{w4pJ6%*OO;uayC
zzR4O{sz+f(78K2km*}=(W9{c=$lUj4eqLf#^t$Qwnbo?bEXMO?j$N^G)CbdGe8!P9
zJnZQX at k)7bzDG0I8w{~ZPTf4?D$;UGe$M~$TSzciU_ at dS=0n{mhB=qm5O0^X+E9+o
z1x?ef8>!$OlxJAt at zLU`kvsazO25TpJLbK&;M8kw*0)*14kpf*)3<d6yUQxMZe%8t
zXy(eYN2(&WrmwSg<nK0tWy!~|3-Ib)_FW|=FVb)tUsL?PQ at qp22p>;GiDh;C(F}$-
z1;!=OBkW#ctacN=je*Pr)lnGzX=OwgNZjTpVbFxqb;8kTc at X&L2XR0A7oc!Mf2?u9
zcctQLCCr+tYip<jrMK$>a_k=;1ETIpHt!Jeo;iy^xqBES^Ct6-+wHi%2g&)?7N^Yy
zUrMIu){Jk)luDa at 7We5U!$$3XFNbyRT!YPIbMKj5$IEpTX1IOtVP~(UPO2-+9ZFi6
z-$3<|{Xb#@tABt0M0s1TVCWKwveDy^S!!@4$s|DAqhsEv--Z}Dl)t%0G>U#ycJ7cy
z^8%;|pg32=7~MJmqlC-x07Sd!2YX^|2D`?y;-$a!rZ3R5ia{v1QI_^>gi(HSS_e%2
zUbdg^zjMBBiLr8eSI^BqXM6HKKg#@-w`a**w(}RMe%XWl3MipvBODo*hi?+ykYq)z
ziqy4goZw0 at VIUY65+L7DaM5q=KWFd$;W3S!Zi>sOzpEF#(*3V-27N;^pDRoMh~(ZD
zJLZXIam0lM7U#)119Hm947W)p3$%V`0Tv+*n=&ybF&}h~FA}7hEpA&1Y!BiYIb~~D
z$TSo9#3ee02e^%*@4|*+=Nq6&JG5>zX4k5f?)z*#pI-G(+j|jye%13CUdcSP;rNlY
z#Q!X%zHf|V)GWIcEz-=fW6AahfxI~y7w7i|PK6H@@twdgH>D_R@>&OtKl}%MuAQ7I
zcpFmV^~w~8$4 at zzh~P~+?B~%L at EM3x(^KXJSg<wVEvJN(*DSLK{@lLZ^>c6I=;)B6
zpRco2LKIlURPE*XUmZ^|1vb?w*ZfF}EXvY13I4af+()bAI5V?BRbFp`Sb{8GRJHd*
z4S2s%4A)<beb5!5W2AL1ws>6Uc=PK%4 at PbJ<{1R6+2THMk0c+kif**#ZGE)w6WsqH
z`r^DL&r8|OEAumm^qyrryd(HQ9olv$ltnVGB{aY?_76Uk%6p;e)2DTvF(;t=Q+|8b
zqfT(u5 at BP);6;jmRAEV057E*2d^wx@*aL1GqWU|$6h5%O at cQtVtC^isd%gD7PZ_Io
z_BDP5w(2*)Mu&JxS at X%%ByH_ at +l>y07jIc~!@;Raw)q_;9oy@*U#mCnc7%t85qa4?
z%_Vr5tkN^}(^>`EFhag;!MpRh!&bKnveQZAJ4)gEJo1 at wHtT$Gs6IpznN$Lk-$NcM
z3ReVC&qcXvfGX$I0nfkS$a|Pm%x+lq{WweNc;K>a1M at EAVWs2IBcQPi<R5t!qadV8
z`@w2vB^p<`Z$u8twt230^FDUXk at KFGRjk|Wy)IU*vs&-S4^@ur^QOw}{f&PX2ZUtx
z2^VHiFLv0j^tM_qTCdnm{?$%kSnzz+Rz#c}<%d@@&Y%vBngG at bQjNu*$QIzHiMtlr
z%<!I8J_+!}g1P;40riIDVp#J58>EJNt}+Ea8~WiapASoMvo(&PdUO}AfC~>ZGzq<X
zA{wc(2{B`w8<FdY#fUA=!$2hWfZJFFh^biG^FRul&;5HGQt3HYB*8-U;tAm`ZDrW?
zLGzSCAtG}^Y%BI&AQbV|jc8`aQkJs}$KZGr4&D`BKH5)pk?++zISItrK-zIx+|7D6
zd{(|~knMc?H%TN~Ttm8w#&X{*x_x0Tx_urTbWQT(rM-zoT(XUHVI3m?V at uQP4J|db
z_OkbMEz8a;6}80;ZBwYhBLn3A0_Q%9Xo7*<Qa^td-Q$KXkb<^$rXNS+J!!v~e_27-
z?B(DtKu5zrraAfXQ`1kqTCnO1=JFF~4jJA+&eXD+hsTX=d50Jrj6yJ)U-=XHF8z-o
z1o at Y7@sl2x7U<!Ygv?%s5eyX!wKt`l=(%|REJ0yS<TOH?s9B)is6Iv13lr}2%hiI}
zPUW^d?_dD#I&an8I8t^fY)SnDOhO39OTDNje$JA5dr5!UH92rZ)87wX;yQSp&mZg<
zmgmz=w6D&%v&B;c-vM3DEvl$Gev##x*ndtU#f^N2I}99-3HZpRE^$`D%!0A_ujaQb
zI5z(Mh2X at IN1#BF?<;^jK#~(MAEc`h<3P$Nghud=)(&&|-qnC?^x{5VK>Wjd)4no(
ziLi#e3lOU~sI*XPH&n&J0cWfoh*}eWEEZW%vX?YK!$?w}htY|GALx3;YZoo=JCF4@
zdiaA-uq!*L5;Yg)z-_`MciiIwDAAR3-snC4V+<n|J*V*n#h?&wg+C8sg$z312~u%3
zz$RVnQhlm*2c)>KA>&V%Ak;p{1u>{Lw$NFj)Yn0Ms2*kxUZ)OTddbiJM}PK!DM}Ot
zczn?EZXhx3wyu6i{QMz_Ht%b?K&- at 5r;8b076YDir`KXF0&2i9NQ~#JYaq*}Ylb}^
z<{{6xy&;dQ;|@k_(31PDr!}}W$zF7Jv at f%um0M$#=8ygpu%j(VU-d5JtQwT714#<!
z&vm at KPB=l<TMpuv%DS+RW~~WnEOz5WiaSxW4<ph#&0;zqiCMt1ekX<hrb8#^mBYaW
zJA2vi7UWJVhfbeu%Rejgz>f0z+Cm$F9J<FFP&8OfSp_OMl7>jGr_G!~NS at L9P;C1?
z;Ij2YVYuv}tzU+HugU=f9b1Wbx3418+xj$RKD;$gf$0j_A&c;-OhoF*z at DhEW@d9o
zbQBjqEQnn2aG?N9{bmD^A#Um6SDKsm0g{g_<4^dJjg_l_HXdDMk!p`oFv8+ at _v_9>
zq;#WkQ!GNGfLT7f8m60H@$tu?p;o_It#TApmE`xnZr|_|cb3XXE)N^buLE`9R=Qbg
zXJu}6r07me2HU<)S7m?@GzrQDTE3UH?FXM7V+-lT#l}P(U>Fvnyw8T7RTeP`R579m
zj=Y>qDw1h-;|mX-)cSXCc$?hr;43LQt)7z$1QG^pyclQ1Bd!jbzsVEgIg~u9b38;>
zfsRa%U`l%did6HzPRd;TK{_EW;n^Ivp-%pu0%9G-z at Au{Ry+EqEcqW=z-#6;-!{WA
z;l+xC6Zke>dl+(R1q7B^Hu~HmrG~Kt575mzve>x*cL-shl+zqp6yuGX)DDGm`cid!
znlnZY=+a5*xQ=$qM}5$N+o!^(TqTFHDdyCcL8NM4VY at 2gnNXF|D?5a558Lb*Yfm4)
z_;0%2EF7k{)i(tTvS`l5he^KvW%l&-suPwpIlWB_Za1Hfa$@J!emrcyPpTKKM at NqL
z?X_SqHt#DucWm<3Lp}W|&YyQE27zbGP55=HtZmB(k*WZA79f##?TweCt{%5yuc+Kx
zgfSrIZI*Y57FOD9l at H0nzq<E4Q at _YK<1;`>Ou|Bhrm&^m_RK6^Z<^N($=DDxyyPLA
z+J)E(gs9AfaO`5qk$IGGY+_*tEk0n_wrM}n4G#So>8Dw6#K7tx at g;U`8hN_R<bPv^
zP6}0b!dly7dCc=KnICM>;^Uw9JLRUgOQ?PTMr<oQ9o~>4YD5H7=ryv)bPtl=<&4&%
z*w6k|D-%Tg*F~sh0Ns(h&mOQ_Qf{`#_XU44(VDY8b})RFpLykg10uxUztD>gswTH}
z&&xgt>zc(+=GdM2gIQ%3V4AGxPFW0*l0YsbA|nFZpN~ih4u-P!{39d at _MN)DC%d1w
z7>SaUs-g at Hp7xqZ3Tn)e<dV~D-0 at M0u`KSW at qBLlIFNKze0?;|tm!<F9_5{TDKnUY
zJB8#(%G(di5;`|v12#{)=^Bhy!6zu5lq~#Rj8QgnK?%W-bqS8Lq9_xGRU?MD1Z_M>
z7x^sC`xJ{V<3YrmbB{h9i5rdancCEyL=9ZOJXoVHo@$$-%Za<Y<=Dws@<HVOn84kp
zy7czzAj#&D?|uHYH^U!oq7C#CS4C-HKPWUJ-r}5;#IkR`+-?7IMg|O#r^#PS at coAT
z<xl(XMO(JUH%Fc8 at Q;tlw>Nm-75Z-Ry9Z%!^+STWyv~To>{^T&MW0-;$3yc9L2mhq
z;ZbQ5LGNM+aN628)Cs16>p55^T^*8$Dw&ss_~4G5Go63gW^CY+0+Z07f2WB4Dh0^q
z-|6QgV8__5>~&z1gq0FxDWr`OzmR}3aJmCA^d_eufde7;d|OCrKdnaM>4(M%4<dMy
z`?Qi<9Ebh#nVT{&VVFv66RU??kcC8}u+l^~F(m>V`PxpCJc~UhEuddx9)@)9qe_|i
z)0EA%&P at _&9&o#9eqZCUCbh?`j!zgih5sJ%c4(7_#|Xt#r7MVL&Q+^PQEg3MBW;4T
zG^4-*<N;_j_KF=#ltp<I^9_IU8#T_ulQ_w;P&0IS=TATWkvf^^ks|nDnb at T^ShFUW
ztuyr~q)6&!?68RQ-V8G+#+EoOhWE-6A7rk5HfHxAG?Sknf`kY=i0}11&e`cz`MCO{
zQd*rofIJ{OtoMr$=gf?H!$EPT16>8L%s|A}R%*eGdx&i}B1He(mLygTmIAc^G(9Si
zK7e{Ngoq>r-r-zhyyg<ieAPsqNv at SQwQ@xsNn5Vw2I}E18CcU&C?((>K)*9cj8_%g
z)`>ANlipCdzw(raeqP-+ldhy<kGNs8`S#*G-e>Uv_VOht+!w*>Sh+Z7(7(l=9~_Vk
ztsM|g1xW`?)?|@m2jyAgC_IB`Mtz(O`mwgP15`lPb2V+VihV#29>y=H6ujE#rdnK`
zH`EaHzABs~teIrh`ScxMz}FC**_Ii?^EbL(n90b(F0r0PMQ70UkL}tv;*4~bKCiYm
zqngRuGy`^c_*M6{*_~%7FmOMquOEZXAg1^kM`)0ZrFqgC>C%R<qRBgHG)$UB at XBA@
zshx3_1QSr};A7TJ_s8FNBrzB>JvQSo_OAA(WF3{euE}GaeA?tu5kF@#62mM$a051I
zNhE>u>!gFE8g#Jj95BqHQS%|>DOj71MZ?EYfM+MiJcX?>*}vKfGaBfQFZ3f^Q-R1#
znhyK1*RvO at nHb|^i4Ep_0s{lZwCNa;Ix<{E5cUReguJf+72QRZIc%`9-Vy)D<o;c>
zWKhb?FbluyDTgT^naN%l2|rm}oO6D0=3kfXO2L{tqj(kDqjbl(pYz9DykeZlk4iW5
zER`)vqJxx(NOa;so at buE!389-YLbEi at 6rZG0#GBsC+Z0fzT6+d7deYVU;dy!rPXiE
zmu73 at Jr&~K{-9MVQD}&`)e>yLNWr>Yh8CXae9XqfvVQ&eC_;#zpoaMxZ0GpZz7xjx
z`t_Q-F?u=vr<JfY4KbWG<xAz}usjoo`>RPaj3r<9&t6K=+egimiJ8D4gh-rUYvaVy
zG($v+3zk5sMuOhjxkH7bQ}(5{PD3Mg?!@8PkK&w>n7tO8FmAmoF30_#^B~c(Q_`4L
zYWOoDVSnK|1=p{+@`Fk^Qb81Xf89_S`RSTzv(a4ID%71nll%{Wad$!CKfeTKkyC?n
zCkMKHU#*nz_(tO$M)UP&Zf<GNy8?Xs8hUzIu0nqFC9 at Ka{&R$vXnbN*?hR?iwv-x*
zPrH;>J#*q(0Gr!E(l5(ce<3xut+_i8XrK8?Xr7_oeHz(bZ?~8q5q~$Rah{5@@7SMN
zx9PnJ-5?^xeW2m?yC_7A#<rjP_en{9P5bFL68vgKu`Lv^loBE5&?9+BtYGMUT06bd
zXEt*_Sdl_o?{!kSnxeJB_xVtFwR-bF`2MlsSO1bZtN)M(j%)mHVUj4b&G~L_`|PNv
zb05EL`!%-lV_>WK*B at oIy*Y at iC1n7lYKj&m7vV;KP4TVll=II)$39dOJ^czLRU>L>
z68P*PFMN+WXxdAu=Hyt3g$l(GTeTVOZYw3KY|W0Fk-$S_`@9`K=60)bEy?Z%tT+Iq
z7f>%M9P)FGg3EY$ood+v<G?d-tNS5y+I=S1dlJZvs-NC{^w-&Jr{gfwR>$pdsXvG?
zd2q3abeu-}LfAQWY@=*+#`CX8RChoA`=1!hS1x5dOF)rGjX4KFg!iPHZE2E=rv|A}
zro(8h38LLFljl^>?nJkc+wdY&MOOlVa at 6>vBki#gKhNVv+%Add{g6#- at Z$k*ps}0Y
zQ=8$)+Nm||)mVz^aa4b-Vpg=1daRaOU)8 at BY4j<Xy)*mrZf+Eqj^RX06GbC^vLKT|
zpteFBLq#626+?=M at k2|V at k{2aN?cRlCum?`TP_u}%3Y{AVZHbKwm{q2d`D~XsJSyD
zl=xk at 5@i0e1=0fu$jfj1+lTA1h#%78*$MuUCU^B9>S>=5n#6abG@(F2`=k-eQ9 at u#
zxfNFHv=z2w@{p1dzSOgHokX1AUGT0DY4jQI at YMw)EWQ~q5wmR$KQ}Y;(HPMSQCwzu
zdli|G?bj(>++CP)yQ4s6YfpDc3KqPmquQSxg%*EnTWumWugbDW5ef%8j-rT#3rJu?
z)5n;4b2c*;2LIW%LmvUu6t1~di~}0&Svy}QX#ER|hDFZwl!~zUP&}B1o<!gKVHBj1
z!0%hK_{Iy`*BgY<Qck8#<-rH4Lg1;Qj-hq2OvPXM$(Gkmg`0T7B6Gm*>KAxIzt~so
zb!GaJYOb#&qRUjEI1xe_`@<o~iP+Rf(GIMHq*yg6%vf7Mu<-aQ)$}%3o$R+x;;~W%
zCQ~RFyB5g)F1k-t!#^TN>7qv_-LggQ$JE8+{ryT4%ldwC5ete+{G3C#g@^oxfY3#F
zcLlj(l2G8>tC<5XWV|6_DZQZ7ow?MD8EZ9mM2oV~WoV-uoExmbwpzc6eMV}%J_{3l
zW(4t2a-o}XRlU|NSiYn!*nR(Sc>*@TuU*(S77gfCi7+WR%2b;4#RiyxWR3(u5BIdf
zo@#g4wQjtG3T$PqdX$2z8Zi|QP~I^*9iC+(!;?qkyk&Q7v>DLJGjS44q|%yBz}}>i
z&Ve%^6>xY<=Pi9WlwpWB%K10Iz`*#gS^YqMeV9$4qFchMFO}(%y}xs2Hn_E}s4=*3
z+lAeCKtS}9E{l(P=PBI;rsYVG-gw}-_x;KwUefIB at V%RLA&}WU2XCL_?hZHoR<7ED
zY}4#P_MmX(_G_lqfp=+iX|!*)RdLCr-1w`4rB_ at bI&<E#m-6fJX?!@HMojcz?@FV(
zEwb`K9p)6DH8Vt-HX;X2^%28zP(BOT at +<+Oy5Uv8eD=4p<t0n4?tw(5<&#sr?h6zV
z!&Zb?gM&8<%??jXTdmMb1(#@6)m(rk*#aUo^iqOs4-#{`NA;|yExPzdS?_q~O>Uz#
z!>9C3&LdoB$r+O#n);WTPi;V52OhNeKfW6_NLn<EDp2Lr=qOaId}Ifx9lEG?H#PEN
zbI74Vx*PNK+cvB53_AWmzs=zCb5!9-mCcW#<QbIdOJM|=ASw5QpF+P}oobETGwNf<
z0{kapJo<fgf(@=YJA0C%pNqB2CMVFcToi3AV3#1!n at Z&vX at 98&`Sz6*SUYY~uWq>w
zpFTuLC^@aPy~ZGUPZr;)=-p|b$-R8htO)JXy{ecE5a|b{{&0O%H2rN&9(VHxmvNly
zbY?sVk}@^{aw)%#J}|UW=ucLWs%%j)^n7S%8D1Woi$UT}VuU6 at Sd6zc2+t_2IMBxd
zb4R#ykMr8s5gKy=v+opw6;4R&&46$V+OOpDZwp3iR0Osqpjx))joB*iX+diVl?E~Q
zc|$qmb#T#7Kcal042LUNAoPTPUxF-iGFw>ZFnUqU at y$&s8%h-HGD`EoNBbe#S>Y-4
zlkeAP>6<Z7QQ9XL^<-l?vhbA^VVM{w_AGyBxGo2D4xc6Tl~BnC{PHYDLP{4>2k~-N
zHQqXXyN6<L3Gg$i2mMBKaSbx<i~TEhvQ{`W#&P&}*M*bY-+RuxoiU+jyjZtu*2#d`
z4;V{mY|5$$TfD^8s7AA{v{=Q~S8RRnPkT2vB+qp-b$~mY>7hGD6CxQIq_zoepU&j0
zYO&}<4cS^2sp!;5))(aAD!KmUED#QGr48DVlwbyft31WlS2yU<1>#VMp?>D1BCFfB
z_JJ-kxTB{OLI}5XcPHXUo}x~->VP%of!G_N-(3Snvq`*gX3u0GR&}*fFwHo3-vIw0
zeiWskq3ZT9hTg^je{sC^@+z<IC+ at jyb5}hL&*c9&Uv=C+8r5MFr<BeiUxikY7v-2j
z#^Wp1Woo#;-OnJd6+u?>3FAd}KNhbpE5RO+lsLgv$;1igG7pRwI|;BO7o($2>mS(E
z$CO at qYf5i=Zh6-xB=U8 at mR7Yjk%OUp;_MMBfe_v1A(Hqk6!D})x%JNl838^ZA13Xu
zz}LyD at X2;5o1P61Rc$%jcUnJ>`;6r{h5yrEbnbM$$ntA at P2IS1PyW^RyG0$S2tUlh
z8?E(McS?7}X3n<sX7)_F=$tGzECOdx`5F$56$H6$2HeHDocU>AAJs2u_n{^05)*D7
zW{Y>o99!I9&KQdzgtG(k at BT|J*;{Pt*b|?A_})e98pXCbMWbhBZ$t&YbNQOwN^=F)
z_yIb_az2Pyya2530n at Y@<KMNVgC+ at Hh^eD5>s>s>n?L79;U-O9oPY$==~f1gXro5Y
z*3~JaenSl_I}1*&dpYD?i8s<7w%~sEojqq~iFnaYyLgM#so%_ZZ^WTV0`R*H@{m2+
zja4MX^|#>xS9YQo{@F1I)!%<Q9x6E+JCnjAm>RhM{4ZUapHTKgLZLcn$ehRq(emb8
z9<w{<)uy~=x}G;ZX+CDl#T7`~iRBx5XO`@><&Nx*RLcS#)SdTxcURrJhxPM2IBP%I
zf1bWu&uRf{60-?Gclb5(IFI*!%tU*7d`i!l@>TaHzYQqH4_Y*6!Wy0d-B#Lz7Rg3l
zqKsvXUk9 at 6iKV6#!bDy5n&j9MYpcKm!vG7z*2&4G*Yl}iccl*@WqKZWQSJCgQSj+d
ze&}E1mAs^hP}>`{BJ6lv<q%AGiq()8hz}1^1ex;^<jj#cc=g{s#0iIU-+2jVmxWDS
zd7qq)5u4+Paaui>*>0-ft<;P@`u&VFI~P3qRtufE11+|#Y6|RJccqo27Wzr}Tp|DH
z`G4^v)_8}R24X3}=6X&@Uqu;hKEQV^-)VKnBzI*|Iskecw~l?+R|WKO*~(1LrpdJ?
z0!JKnCe<|m*WR>m+Qm+NKNH<_ye<gDWD0Fl at Ho4<!fm=u&SGgDO!cbo+8PUwfWk+V
z)@b~#GtD0d4#K=39kiev5hj=8h(Nljd<HunOw<O at 9z?#m(rb)ZnCBDPu~!uM>fIml
z+x32qzkNRrhR^IhT#yCiYU{3oq196nC3ePkB)f%7X1G^Ibog$ZnYu4(HyHUiFB`6x
zo$ty-8pknmO|B9|(5TzoHG|%><C<pr4&IxzPg{!KcQqRSE~Tvrur~GxUa*ce)ipeE
zWgS=NE-mtVKb)JH#~V9~Hf<heFWK%N<`blD%sTD$A|XGR=J%4vWJQ9B3q;($v$3~e
zpgG#}?8+2jU at b$OcWYMF>s#7)CM(i=M7Nl=@GyDi-*ng6ahK(&-_4h(lyUN-oOa$`
zo+P;<GhFDlQ-b}GJ)A97b8DT!@21D?+G`33xflj&^Ajw)WxefL*Yy?uny35myNvN;
zJu2^EIk(I5BXd2N-yKn?<jAHF(>C4d at m^p9J4c~rbi$rq9nhGxayFjhg+Rqa{l#`Y
z!(P6K7fK3T;y!VZhGiC#)|pl$QX?a)a9$(4l(usVSH>2&5pIu5ALn*CqBt)9$yAl;
z-{fOmgu><7Y<XFolPQk)mb~-4Wz2OqAihGXbfUWv<O@$JoEd1wcAoD{S1ZgFTS^!t
z+_d^VD?_*`AXb~e&yM8k-n#rSNZe`F1hkVx1o46tWKB^*u4Iztzf9jS`;huL0efN_
zw(C5^O4iFb>J5k>*0Q~>lq72!XFX6P5Z{vW&zLsraKq5H%Z26}$OKDMv=sim;K<Yz
zr-(K#w$yhGyI)R05r<FcNBPUs!f8{%L|!+M;WNfIk0#<kNVlmop1dan3IH7GPG0zR
zbu5#oKma)07cl(sMbhFbgIx|mM?)DnP$;1oA~OW0kph!a5>?vsoVs(JNbgTU8-M%+
zN(+7Xl}`BDl=KDkUHM9fLlV)gN&PqbyX)$86!Wv!y+r*~kAyjFUKPDWL3A)m$@ir9
zjJ;uQV9#3$*`Dqo1Cy5*;^8DQcid^Td=CivAP+D;gl4b7*xa9IQ-R|lY5tIpiM~9-
z%Hm9*vDV at _1FfiR|Kqh_5Ml0sm?abD>@peo(cnhiSWs$uy&$RYcd+m`6%X9<SS+iH
zB{MTIilfs+m}FIm`WFe<b<`1NL(_5%pWxy`61V?hXOmI!N62_Zv-n^jPyCieqxTv3
zu0_=zb8f!dMp?R&UxGJe1qNBBRLXVmj-(R6+9rkXoo6CT- at FKe>FN%?<F{pFRdeJu
z{9WJNuwr(Se^zX7t-vqF<$J*yv&MnYO_uaKBS^eIab7YX1r1^(=OyZJp!PzX%0e7b
zeEpxGl+qFvtIR-KD}KZT9sfArU;dGM3-23I#q69NU-%A?w~!T{F+*-_Lil`8wsSSR
zeW-s?xK)R5p&SHb*TI!J314$wOF*NT7qT*&*Og`^+jXq)LaOJ8#&*`Gy)1X0+KiH$
zU-5JNg0Goq-9^C#_ZqHXSIP}b7@(P=L?LSJk~7{IhyH9xAy{$zEDuPUgJ_RJae#PE
zOqO-BK*KnjogIL_)Jz3RACJUY?ZEW~+1H$~{2k_o%Y(uIH3R6z`K|NdGL!=5lV$Vc
z*(&fGI7OherXM4x!s0w3{b4Ax#6<l}lTU2>w}s~Q=3!pJzbN~iJ}bbM*PPi@!E0eN
zhKcuT=kAsz8TQo76CMO+FW#hr6da({mqpGK2K4T|xv9SNIXZ}a=4_K5pbz1HE6T}9
zbApW~m0C`q)S^F}B9Kw5!eT)Bj_h9vlCX8%VRvMOg8PJ*>PU>%yt-hyGOhjg<ke2;
z7Th2%k_wZpW!A{?Dn2nLFJ4=lqYa4jV<d3;8-+Dg@?%0IvOWsDfrv_`J~>!2pZR4{
z=VR_*?Hw|aai##~+^H>3p$W at 6Zi`o4^iO2Iy=FPdEAI58Ebc~*%1#sh8KzUKOVHs(
z<3$LMSCFP|!>fmF^oESZR|c|2JI3|gucuLq4R(||_!8L at gHU8hUQZKn2S#z at EVf3?
zTroZd&}JK(mJLe>#x8xL)jfx$6`okcHP?8i%dW?F%nZh=VJ)32CmY;^y5C1^?V0;M
z<3!e8GZcPej-h&-Osc>6PU2f4x=XhA*<_K*D6U6R)4xbEx~{3*ldB#N+7QEXD^v=I
z+i^L+V7_2ld}O2b-(#bmv*PyZI4|U#<t4E{c3+Oa>Q5|22a(-VLOTZc3!9ns1RI-?
zA<~h|tPH0y*bO1#EMrsWN>4yJM7vq<?d%8sAQUGrndP7J-=xw$nCMSpe7!xoUBNp3
zGTsNoHNSmE+wi-t?Vjri@)nrwy)cL`f%zSrKknks+ReH>FZr?uw$H8*P<CaW^*(*P
zrk<ZDEOj-RoW=I>hiHRQg1U9YoscX-G|gck+SSRX<zu*#%uOZJ$&`iwbI4f^EJ9pa
z at T8p1=V0x-K77AYupaOqRJ8Y8`CFqe-OG4O?Pk+3)K=lIg7Aj+5B{LP8{|uD9bb*L
z=JkjZ*a>!(e7@~eeUEw+POsT;=W9J&=EV`cUc{PIg_#TQVGnZsQbCs7#Q-)<h~+VJ
z%O_$A%X$-T2gv^1iV6X%A*e(F(fO?hnMA3<=C!;L;mUog>v#BicxLw#Fb?#)8TYbu
zN)5R=MI1i7FHhF|X}xEl=sW~`-kf;fOR^h1yjthSw?%#F{HqrY2$q>7!nbw~nZ8q9
z<TlAz0DCai`eopoTgUXKr$&x3a%Yszt2{+eo;=r&?LuF;Zj%RNLHAg=LM|in10Rm2
zxd6;k(nHtRPkOmYqHW7fNcCybHEd(KrX46#z77Z9Q1dkPl|2ZTAjBY-ol(B)e&98T
zgr-$?X`Ytyy13^aY2fa`@Y1*X*i2)xR`@;KF^;++G5hoP)3auvu~w3;5+L|E0eJ^s
zgZRj(m;s_<P67c5tRN5r2qBB}z`g`y!oX~V8oXD2oDd8#khWZ&toq|9@%NQ>h{vY!
z<QL?e6`jG`+hK%nypIRco?pA%s6+zYx(b~=Fi(E95-40VeV5w!L2#*>%i=H!!P&wh
z7_E%pB7l5)*VU>_O-S~d5Z!+;f{pQ4e86*&);?G<9*Q$J<tS(vm9lEGpTY at s(2ek+
z8c`{)@2$sFJY{r$73(<V2UKiNm)(n(&DNp1&6b1{q_xZVGIdKSwV*O`Z3q;#cCe`U
zk~C47tS5LEB&@mN%p)_=XY at OEf&MPgH{St5oHz7A*3o-mSC#2S at XC^m@?vD0WoA3+
z%jkw-8_?@Gk~M`p*@7Cp at q?r=ifcr#f5J(+ee*SCy-59!ceTk_CH8c7hwjNA;pzKD
zr8zf+A(f>EJ!ZxY;Oj5&@^eg0Zs!iLCAR`2K?MSFzjX;kHD6)^`&=EZOIdW>L#O`J
z<!j^{WZ{m%sbn?E at W3)ou>f~$M4}JiV}v6B-e{NUBGF<D at nTna4Fj(s(L&KkX*F3!
zglkC}q4NM*a2HP+ijp5<SToUO6J4Q%w}VEJFwp|MQ|{cP2x=Zt1r&nh4>gj-*H%NG
zfY0X(@|S8?V)drF;2OQcpDl2LV=~=%gGx?_$fbSsi@%J~taHcMTLLpjNF8FkjnjyM
zW;4sSf6RHaa~LijL#EJ0W2m!BmQP(f=%Km_N at hsBFw%q#7{Er?y1V~UEPEih87B`~
zv$jE%>Ug9&=o+sZVZL7^+sp)PSrS;ZIJac4S-M>#V;T--4FXZ*>CI7w%583<{>tb6
zOZ8gZ#B0jplyTbzto2VOs)s9U%trre`m=RlKf{I_Nwdxn(xNG%zaVNurEYiMV3*g|
z``3;{j7`UyfFrjlEbIJN{0db|r>|LA@=vX9CHFZYiexnkn$b%8Rvw0TZOQIXa;oTI
zv at j;ZP+#~|!J(aBz9S{wL7W%Dr1H)G-XUNt9-lP?ijJ-XEj1e*CI~-Xz at 4(Xg;UoG
z{uzBf-U+(SHe}6oG%;A*93Zb=oE>uTb^%qsL>|bQf?7_6=KIiPU`I|r;YcZ!YG7y~
zQu at UldAwz$^|uoz3mz1;An-WVBtefSh-pv<`n&TU3oM!hrEI?l at v8A4#^$4t&~T32
zl*J=1q~h+60sNc43>0aVvhzyfjshgPYZoQ(<inR$cERK&%N~SSiy;WaiBTgdl;Bz@
zMx7h{4w6)@f3=XUfD<5b*Di$-gK~XeKu8qdfa(KL$OL~#uI0n&gFVreVt1RX*+{5+
z#8$4WWjNT2me=PpYKo4u#73>OOh>LbUIoblb at 1z~zp?))n?^)q6WGuDh}gMUaA9|X
z3qq-XlcNl<s-dSKro}45AbD<^IA at 6tvSaLv-;sRc5uLj-i(AB^*}0)lznJ6A48b01
zt^mDP9!TqxILrO*cRjO at t^fSYOWb`|vQ*V4*6V-Ii_hT$&15AhsiGo at jvJCCnY0);
z)Gbzh<7K3LRm`L**mLt1MLc+MqqaWkz{2JV0hUf-(7U6vlP$%@`2fR-Dt+r$66q)X
zh2sR=$#8zbejz`}<A~Y#k!TUpiD??3amyj(E}M)o)o#H-j|LmgBHBXsF9$ok?Wh84
zoxjF*=Hw;;!?a%bcJVG|FBP7 at _uu_xpir_`+UDHcZX;}|^THjvjdPRUJ+HO3O$%_*
zsal`RIk at 07Cuvh)iE1gNnn7n}$9q`Da-o at 9CupmsX{@4y;aIQ1WV^7X(Rcx&McA%o
zqa*mh{MZ+m6i(RP#X)4DdX;+iKAzev_!HbYetk>dy5==T4rq*~g at XVY!9sYZjo#R7
zr{n)r5^S{9+$+8l7IVB*3_k5%-TBY at C%`P@&tZf>82sm#nfw7L%92>nN$663yW!yt
zhS>EfLcE_Z)gv-Y^<SaxB6gHmR|E)iyYeg|g|R}ujv8tMcq*gC>h1;xj(<<JyurkO
zku;yk5>4nD4GY{C-nWUgQc9cMmH{qpa!uEznrGF^?bbJHApScQ$j>$JZHAX80DdXu
z--AMgrA0$Otdd#N9#!cg2Z~N8&lj1d+wDh+^ZObWJ$J)_h(&2#msu>q0B$DEERy{1
zCJN{7M@%#E at 8pda`@u!v@{gcT3bA*>g*xYLXlbb&o at 1vX*x+l}Voys6o~^_7>#GB|
z*r!R%kA9k%J`?m>1tMHB9x$ZRe0$r~ui<kO`4q0h1q9yWTy1Vw;6%l{l&HBbZk8-0
z4ijBu+y@{d)|{@F;ZFKw{xPkg5F+CDU-3fF>}X}jOC)9LH=Po*2SLdtf3^4?VKn<h
zHzQbKiZ9a#y^bZOa6n&Wk$r`rPcR^1TWQZWl`R8PvM?r?^F}g*>u2ox&mV~0oDgi`
z;9d}P$g~9%ThTK8s}5o<m&w0gVXSc39p)SfaC_U5P2<JPm~s|o1ZFngBTt(DrBI%x
z4kDX}YqUJKdxxsso$;8{1MQ;f+HD&9TGSGCQS)Y9GN_l)t8XY5-si=Gs(k<5;!fvW
zxE8*OW}N`jlcqPjb~+szeAOl~e_-nyQAfun)m7Qku$%99s}G7SNoRK-D2Tt?3bf7l
z_f&iauzO~DnLmd4z7qW{*#v(VPN`62cvfV3MGioX->w2V4?(-lU*ed8ro|}mU}pk%
z;bqB0bx3AOk<0Joeh}Vl at _7Po&C`Cg>>gff>e<EyzTH_%h at VP9GTpHG^0d?A+RMpT
z+TYf8aiHmG?aSY>7fu41U3Ic{JQu1W%+!Gvz3GDO2ixKd;KF6UEw8F_cDAh08gB>@
zaRH2Q96sBJ>`4aXvrF0xPtI<C%^cGg^K!B-fX;2xnF2UCh5PH at z5cKKOHR==RLnzf
zSmET?(5QuFJxq~ag0rPdFM7)-DQc6Kkb_;fb-^S9@$f%6aPJ=U;g7Zr?Ox#q(-JyY
zKvu&Cw at 3?z3?xc$8o*T2<9qK!(D=t1JD`+Ta(zAy-y-Frq_L?(ciWSU*N3cXEeC5N
zwIavKBghMD()mO&Qc6^H#jRYCBJ}jZ#?v?4($m6CK2G!{)QNVBe9)sd3#Jc(VH2H^
z=FWxE%(d%&VjzHKBh>WoA1pPsRQtU~xDtnEfTJnl{A9u5pR^K8=UdNq%T8F$)FbN>
zgK+_(BF#D>R>kK!M#OT~=@@}3yAYqm33?{Bv?2iBr|-aRK0 at uapzuXI)wE0=R at m^7
zQ`wLBn(M*wg!mgmQT1d!@3<2z>~rmDW)KG0*B4>_R6LjiI0^9QT8gtDDT|Lclxppm
z+OeL6H3QpearJAB%1ellZ6d*)wBQ(hPbE=%?y6i^uf%`RXm*JW*WQ%>&J+=V(=qf{
zri~yItvTZbII+7S0>4Q0U9@>HnMP$X>8TqAfD(vAh};2P{QK)ik`a6$W$n<S7xQ?o
z_{n4xoeaH~jS^3HDy+veci7_+aLh^-n?E!YG6S#O$LPEC_>G<{bR2U<qLrkRpb!v0
z%U*eD$^H(<WG- at VF0k%r-g68(2_6$K`r1T6sUwW?8=<u8q_-5ITGbK36tV>fd!^iE
z#1K58$gW!xpeYHeehuhQCXZ9p%N8m<Fx1W4{1&odf~Dg9N*_P3FP{`cbE*_n{Eco>
zB+l~T_u-Ycr!U><XH<{<R0eR`Jn1$qaE<CV>!?xu!!*6rNxq37{`DhMMfY6NpD3Jw
zkYQDstvt30Hc_SaZuuMP2YrdW at HsPMbf^Y9lI<9$bnMil2X7`Ba-DGLbzgqP>mxwe
zf1&JkDH54D3nLar2KjJ3z`*R+rUABq4;>>4Kjc2i<Dy@)!kC&Aw;NA8e)mD}M7}y*
zi5fe;hrp`ef1|wy(>QEj7pVLcZYZ~pteAG4rm1{><Ecc%k1Tki at ADmF<}mEh$<1ax
zS8dQ&w8<!Cd38+}XJ1#f6|D`7AJ6+Fsr$rBs%wDxJx&tw*&5k&wN_-uj!ur;28wi0
zO+Qvl)mUZbXZm|~oa;LAHy_>PQy<rI at 3u-En9*i_l~-?$0z#b at Vco$oFcZc}d3oKO
zD*z%H at Hm`{0l9tDx7KHebXBjGPA%mTPf<pnOy#m~KL9BjL-WcR=L#f{u~T2e78Ilg
z(JT)-B~I|YWyGa#aWq+mx~dt<5RI9)@9nr`in)T{m4a6g9DZqFJ{0ZDQ&w4XPvcfW
z)Zgnax(EnBgW0T at l}fNuwENi8sV_h5iwfdBoer10OP+L`!QRkj>=!QiV5G|tVk)53
zP?Azw+N)Yq3zZ`dW7Q9Bq at Y*jSK0<1f`HM;_>GH57pf_S%Ounz_yhTY8lplQSM`xx
zU{r-Deqs+*I~sLI$Oq`>i`J1kJ(+yNOYy$<j89}LeB{DsRRYsqux%gkK#X#@e^U8%
z#M!7}cTMHu<FLh at jarvDc8P_@QfzNdoQi_n+%?2AM>_>R3Jfi680<|^u#J at aY%Q>O
zqfI~sCbk#3--^zMkV&Yj0D(R^rK}+_npgPr_4^kYuG=pO%$C_7v{s@<a9Q#wuB)t?
z#;9BrH!k(Q*;IUj?T<*@HX2{0em!6debb4D8+OTu+|0s%`KdJcokszE{b|_{ztw|2
zP8WR(1+AaeXov%C!=7CsT*LuDx^}pAS;||)2N$TDO}r&-q#K7;nWjNxk~onpjleeK
zUPThfcj0^+;uf%68trL0i1;=y3B3G^4+!l>-{M-P at RL3^<`kO at b=YdKMuccfO1ZW#
zeRYE%D~CMAgPlo?T!O6?b|pOZv{iMWb;sN=jF%=?$Iz_5zH?K;aFGU^8l7u%zHgiy
z%)~y|k;Es-7YX69AMj^epGX#&^c at pp+lc}kKc`5CjPN4Z$$e58$Yn*J?81%`0~A)D
zPg-db*pj-t4-G9>ImW4IMi*v#9z^9V<wSEy0;H<_ip{R`3n$&`z?qY&+x1%E`|f!X
zF^6qcbMj~^Y|&mU__An*YVWv%D)nfhgB<CJl`_02TU%zkuVLq-ifv^5t4 at 48WjUK6
z<1pI%d1Hq!eHx}*)cFId$Vc5Z{|e7mEOmtuWJf&C8D27?iS2&%o3DCSW(Dy{q!vBU
z<@J%bdvlGuCbxSa3MmV6=PD4kiAVQdnmr=bOicK#q7Xa-!xi^j8Y6rBUZPWqHJ^kK
zO^AmTc89bc5I+T$XZ64^_c1Pnu-4Kq8TW>D9h at 9t;3jMAUVxt=oor+16yHf{lT|G4
zya6{4#BxFw!!~UTRwXXawKU4iz$$GMY6=Z8VM{2 at 0{=5A0+A#p6$aT3ubRyWMWPq9
zCEH5(Il0v4e4=Yxg(tDglfYAy!UpC>&^4=x7#6_S&Ktds)a8^`^tp6RnRd{KImB^o
z2n=t#>iKx<*evmvoE{+fH#@WXGWs$)Uxr<sPjul^54Bff9y%ZVHz+5}qAbDf+|fnm
zNd{_kS$6bt11Qz5?-m)?lU>tf?r>AaxV0?kf0o at oDboJ6z0cgP@A$;k>SK1UqC?Q_
zk_I?j74;}uNXhOf_5ZxQSgB4otDEb9JJrX1kq`-o%T>g%M5~xXf!2_4P~K64tKgXq
z&KHZ0@!cPvUJG<f9>4kw-0;tPo$zJrU-Nop>Uo65Pm|yaNvKjhi7V1g98;^N1~V3%
zTR>yWa+X2FJ_wpPwz3i^6AGwOa_VMS-&`*KoKgF2&oR10Jn6{!pvVG at n=Jk at vjNuY
zL~P7aDGhg~O9G^!bHi$8?G9v9Gp0cmekYkK;(q=47;~gI>h-kx-c<vM%*#w&fX{!h
zF%L>eM{ml$#8KI$4ltyja<rI2qq{$AR1|U_tFD)9Y-d_jShjldAw-)(k${x89fc)V
z^uj$O=9MXT2cL+;^v%uZ%TIiT&+A8q@<LEWivxLuc7cEhkMJup7#M4iRHWn;gs)|%
z*`|SUEl(kbPZ=F^TZ)n%ySX6erWcgVc`2wiVw2VTP%;PP;UMWPi0k}AaIl!DD+>qP
zki^cyDERloAb)dcDBU4na9C(pfD{P at eBGA}0|Rb)p{ISqi60=^FUEdF!ok{Gs;vb)
zfj9(#1QA64w*ud^Y<WE?99td at r;1MVEDo>sN5&PeiI>c`VioE8h)e}W%S9NMA55Gs
zrWL6l+ at 3CKd@8(UQLTwe12SGWMqRn+j)QZRj*g)Xua)%ayzpqs{pD(WWESJYL3{M$
z%qkpM`jFoqLYVv6{IbCkL?fEiJj$VG=$taup&RL9e{s(Sgse2xVJlw0h74EXJKt<N
zv_^nt|CWo1^pEn7x}Dzrxu#9#iylF>2<mjN(C1_G037wJ*c!9$6Ya%e(y$WXL!EqA
z8HVt{2cY#I$^(s5lIv2_V)0(hY4lKgWN5U}$n%K8Jg_QsDR2~!MLCfAxETJK at puD+
zRpJ+#PBP2wu|C*%vKJ>eX|dx<CQ&quy2)IJEnV9z;^O>z{->0)3W`JN7Bv!rLvRZc
z0tAOZ2yVe4g9iq826qXAg`f!*+}(o1;1FDb>kKexumFS40KvK0yH1_ at Z=LgWZ+}(Y
zwYsa;OLz6tTA%gS=>8$=Z7pLh>|K2QElL)E=Q*(n*H`8R`8={- at 4mTD-SWBOYRxV?
zmF(-rJB8^Wlp?319rTrh^?QEP?|Msxrv?WbJ-+id+V#F2Y4(JPJ6U9bv+U1cIIH^W
z)lg$_=g^Ma>2~Pyd_YOAv29Cb-U6DJO?NxnW7~QP*SmYi*vdUVuW#LWQ_u0`hymZi
zaQS3Nb^4`ro$>0G%zbXmr5|D|iq0R<;S@?kr0j5Ruq87-Z1>crx%EzVZ9#U;{?}ti
zW2W%*9MQg3Nbh%Ti6LhDd|-aFSgXoPG`mHlUU1iCHr>ru>DX?W_#13(`u*!Plu2OP
z6jk=2>BC0l)aw<WV`x+C!_sw{a5i*Q67F^#P-aA<I at z6VbJW-5&rwZfvvRk3_cA8b
z-o}<6m7#V at uDa<CVdlJ4d|5 at tUf!yN<DjY-Ylj}w8VTHcITO{giPiM2=!{`C)-kgy
z4M#`;s$Hx(F&Ry_6 at hE&#+WZxZsYohII;=<B$l#U>;HCmxoYD1i4b%m$1`DYC_^L~
zIEAnFcHvad=-aO3(_MI=9#`z6-9*_!&$?<%meb5;jG<wc(D1r`!k7AFaq^l6-TVCr
zn at T;NWtk;qx(I~IDg2;{VNza#Y9hnvC&&D^iJtYTc_&lLexMB!uC87mR>d5Qp=MGf
z6BD{%`L#TAOq%z%@*ib95Ey7NbUF=BlszVk3Iu3imD&*91N-ij%hW?W@~2TtdHTfP
z#n0 at Xd7X8Dyu36n{k#PwQ~T~X7mAO^cNV+z<<Rr{6qP*fL{*O`It}aSc#<7ICz`zH
zfdvuUP1 at TR@FL!bPH1 at um7aB~aO<rmJ%*b)*b*mqm<2+)la8vi-b#-P?L4aM?FRQw
z!SL2{$6_lC;MwX~JFGU~u@(2B?<Z2dhI at qhN$Or_U*}$DGND-zz*x~AawYee{HE;I
zGAb(xm0Nq$##BQLFEgd at aqT*NJhB}}du8b8cj%ob49sgx?Oi-i5sJpioR>HO at 3X-#
z_ at rAn$k~(l at kciCC;&Qd*fWRI>=;fL{UPlciNDWyj$bX<#r^(r;EE8wwUVQm&7~QY
zCXRj!**r^xybAEPq>h3W$uvI1j=yNIyzkE_D7fpGw)OV{U*Uwm{xB;mEg2(|y|ICd
zMdQVqzMb-=XM6|E-a9kNh)^9lY`-DjhhHD1w5lufRcy+QLgJ47!fFn<KQi>e86#F;
zX{ufroVBEZJOY?rDo!;Te6aOZ^1SO!dYRxQ*2njyA~dCWawn)>!*k7~>8Ikt<J9hI
zLTxVl%^kbxFjaJKz4UwX+jy29ohPH6;RO0%T`A|oSHWhqWuNJ8tYd1Xp}S%w!~<wT
zHSeF;1&d?WDhsdZgTM&TfZ@=Pp`{?gU%*=Eo2o<UfasbP*Vgmv1Y;j}@b2Fxb@=4D
zWq$ckb3BOYn%N0MW}!64?YGvuPD`}=WgRB1BPo(kSV>&e*0>>V5ZbO|*1+2LFOqVe
zXHb!aMk03^h%&9L8GMy7UDI2Kev>V@(R}*Iu6x+!Hn4~D at wj`P%#Hdbf(lK{+DD7f
zJ&(v*mhn_e(R$^5L#bM^^Q at -!*b!l|+Xrb(q*MRFJYnrE7*xko!SJOy9LngR2|q5k
zY`Ioiu+YBfzF{Labszk-E#*BYQk>$()=xWEGZRKwY)*UxP}0dGuPLZOk<u~1pRF`m
zxYnI*6_BmyuVfiETJ#r=!}C__TJ(hS&_}hqJq6T(xXbQJ?{M?GH1d;1)n-8$1pDWw
zJw5OAAMQDHK*ksFYeeo`fz$TbpGy<)Wsk%<#FfYFVTT9*sy=H-wkS^x;7&PL{erf!
zzf{M*8sv9&hkoBZuv}-Nb}O!f7}9<9ZL1vRNUZ5T^4kV6WRoRqMQo_+AH>NJDI9Hy
zFjfwiK6RjhH#rHW#B0(MW}i%V`943<6 at Z*Nd^JEP5uZonXm=u%AM>{H^U@&Jy*i0s
za_Da^xI6pMtXzHc{e~_ZcnKP*;=YL2Z^RmzDl{dJTk7*}E_h*NvgnhnxVKB59Duh~
zqouS_WoOR*{UvUw_K#OWz;gMracr%8>QQ&V*jv!8)ho;U8}9~8EU{N<=Z_gR%IpMT
zbkePUG_a<Uo93~%MM1nso9|UdE|j>fm=#|iIfFmdqkpLMGxY5D$`?I}&T7>TexU at v
zkBx09kG)O;09ckj#(_Uov6vv{{HOcr-%H#DUQ@*GzF8Zh{iSM13%fuB%>wjdU at 3Nf
zlnYE!GTyNrqes|;nLFXfWU*Wg-9wmr=NBd$nCk+H?iwNvcd0Wab^3CT9a`>3V~oWI
z9=<ivyrYLX+hLVmYbCVC7nx>_H+N-Q=M<NIna#%7G#cG5P!5#|H6`sbgz{jBdvfcF
z%F at i>Q(io4u4mpdQ;k&5FXnKV5M7R`@WJ9h(GrAirO#XXOU{qQpk^B^Vd=Dt{wiqT
zg-#j9J~@o%H2;W9mg)o6@*Vo;BSs2*4HAHpDk02mndAsov08R_48zJZ at J)s7+hyCo
zy*0L#y)?AqZt-wX%+_Vx`8*A95OLHvs1$k~{h-_N<KA7r(+uvizi3XCB3#4TpjNrJ
zvai45nQG0Co%wk~tYgN!u~~y2n6k!jjXBHc$+Gq4hqTzEj>_vov_gHJE=`X>L?5K+
zD?u59=mjtImMvd1GsDytuYp{Iy<NXRrLZ4s+5CA`p}CBZMPL-T31R=B$JFH(h7Qq$
zc5;cO7Li&TJM=S4-dTKdpeXu!TD{GoUj}7yzx4mPG(VBO;Kq at rcXv?}P$X>UkW&?h
zF>$#`n$~bZ)KN0B$<p$VcVWI at lvp&2*7))!ZYjjYh^fBV(ceia`pW>XGeMYh&`;g8
zo_2-koaO6+8O!+L>SpIQbG(i;QW9UJi{Ecewlo?s&D!^>i$|#jaW}#HJuxt|W48=?
zb^Y&O$a1s5ddr8DIt!sD!t=y1g(d4GR(s;s-HfV$GXl&m;+sAAxB^rk(3_NjE$p#L
z*t4em?tA0d+XwRxN^OQwzbDZMuSE0J1)Ky{mq)^t4bnSl*)s>zNM at mMdtd78&ebHN
z`!(|lE5q-p+TsRaNnMXwALaN5QIZ2IUi^Z22tsN5>nvIO+YU}Q*xh6}ee6 at rR~<&1
z(PB4z>9ZBUMXZwSMmd9-aKKsmJeJq^G|#JclOh*xf0?^e0(`40nsg1z)(48;4}B_(
zGwPI)yo|{oX{dVDL-5-aMGr;~vU1cPtJP5JM(sswz&Q`e<@0?y{YhsO9YK8EYJA;L
z>7oG_Mts+(wCBC*Md82#XdKw&J*IizR?9k^rf1r{Ot-&>V^ke{9nI9zavlcNkIJtN
z7T>?o|4rENk-?|lewZ(EfdR;%BUrzKJ^UkCpsM)EA9QHBVV8trT&*O(9?FO{MLTFL
z=5P0H+T6C^jAuX0k4U;~GM!x`!X2N~3_n?qXY$HI>x@(DHEy&Q3ucT1R6fj28wX!I
zC=&d$@bJ_v^%?W2Ngl}e8ww`b%BrN-PzGH;$@B2Ky1?%GMkm#~Okj(-Admyy;qya|
zOi7<TIqKLJIjsT6%xMurCppK$`tFA>3kr_pwt?5Nj<kh;AkqM0FqJNvpLG2%nBiEz
zf%ifK$Kw|EzR5(&`uXcro~^V8i}*)jhx5-t$rA$`c)ZqIf9DQr!qkCRbJWjUI$JZJ
zm$fJ9L9f6?UO=_r2e^Rac$+nqbYU6z^YgMBa7iN^LoJ4qw_S?6p!J<$X}7t17(?2t
zcE?oZJ$Jvt+q&PyLJYNC4pJ6B2Qde+jOF0Lu$QB|%Hl8GeqMD>3p=&H>81!w#>Agj
z(QXx{j0r=pTl>micAI_5vUw<3`Sht?Z}-j2Wx~<RLz32QGv22&J{94fr~V)YDG95g
zjef+~vo?CO%A&z(jqgjVppWOfXF_a0rF&LK$Mau_gV9Ob!+u&!{<c^Y1J5Po?`a)A
zQzS-wDNMkxF(uva11Qd*)ipedF7L8cQx?g7Pl*j{fhk~H=G{iXJB{lDwggu}3W3aA
zqf(*0b}y=rmt<QkiQ35c+=PEj9}{Iru7J~e%e$QIlUdUy at -hWEOf@ncen^;YeTZ*X
zH+U;(?Wy8Xl+h at nkoL^sjJj(5zUISeV;JWYIiaB7RDchD*VdjmbXj9)pN{CA%vsJg
zciJ6y-i)!8uXW&CN8ViTMaOYPM$w1*SL53`0 at H8hO>F8DKCUQrsXl2?W8hur42(F_
zsSJ)_36&x6A|YkY6c<2a94SXbv~d>4CC4nkDPvf9Z5Fys^6^5r0j5=E>Cgy_Dk at tS
z%?c}9!qB?t6t8(XMH%le8UeNWp at Nsma~Ql+^3Bo%_npMryeQJz4V=BAqE~T?dejng
z3ge<X at Z7g2fW4F?C!aagtvam=!RFFVpJA`q1dy-E%du?YwT%+fTkMY4<03TZ)j<Oe
zuSu|TMbn$JCNKw9K<+ at tJ({pU#md3G(`)NO28!Z^`B|&xuS!YWO}}^8(&l&<H`8f(
zO-EXMeXU|crFs+^NzF_IZ*xCTMAZi{Y<c;sK84v<>{fjCHoNAfYBvsfq;G%VL|j7t
z`X0sy1EEgpyD;)tS1x+fnv-?C at glP0{RCW}Ma?3qpoq_&IJAYOy3G#s`rsh5=3>`K
zkj``<PxYPrnJ%66XZ%$jT_UO;S&LzWfo&581S_54ry#ectge+aWQh>=;|*x5HSjZC
zXNvPLh372q;=+6ja|SC!R-`JcL}}wwskajjTUGTpL(1zkN-p?BA2lmf<wk(A{@fWd
zR@`1h3RtSO<YT(S4xL at 1hiEAxTBBzva~C*l--DU9m2vX&A2fTNg49 at _4&`2Bzy8!U
z)6qtF$FpZMEKdNYC;O-#lGOq92InNM@``qD2YvzcS>+J3WsB7!k`0Brx8^cLTF9<g
z at nKD{&MQpkhV&mNuFe;7?=GL>h)r+LZ$vsZo}`OpOs)?c6$hclR!R#MAeh|_DY|9r
zy+_3c%IO9h9X?ksp?an&>Lw;QeQ`T-Ku6HaK~H?E9-Z5$cZu{YU;1+-6B$|JD;%!^
zt(4l>F8}a-UkC4YtOxFHckhl4VK<o_&-lD0mk1#hZYAraLBA)XZd9SwQ&Pgn$a!)D
z;&eLCGu8&`Ky;&{YdGM4YZMiZi$_ at v^1aVdy+K+*Qo!QYDDtW4 at Os*LbJ00k{m)5`
zoRKnSu)novfL2Ts{!-4+5Y{b=o+LpM;89G7S{vXl;M_l=ND-Rc5qgt=ci7TpEo=mH
zL6*Xt9up_3hU63OR>r6P$P_O*U!)IDory%}Wz`YeFx6TO{y2Y${SBm?H9cTWV=WWJ
z`_*CGso!ZN>l@~_jkeXtV}<eU5O#LliK7g)klc(Z=e{4*h!dp)V6v<*N!NnT1w~8K
za~UIar=<m6R+`}h>fczfA{TUkyeD>)i3|NFGcCsBmK3HXp&ol_ at GVs7PIpfULy!hi
zs+%KYgS%(n7_z_}6<X(k(VFudPeVYWZh9|epL*7btD&ckkCMALmGw(owKL=w(~r63
zOyHtRRzRvkW>)hblk~W#LZ@&2)fwm6xkFP%&Ju|MFWbNiTwy{{g-pV1RK`L&=RE2D
z4|g;~vd<LODHcrO&uLo^tGtrbwh8*iCTXkJcd4-eXXU0I?k1m)6`j}QSOp%!d{k#o
zIrMoZ12w1s%;qprCkWS}WH>8x<?cZds#+JB{z{||9jq*<HT!M-cBcH=;7~J2uQ_26
zvZro;_+w%PUpNkSI<TD8&2%vNAnp4avGA`e at UKhI+!{F{Jx<Cv<%&v?&9%YQ4BL2T
zaOOpQFMay>d|teYS%w!IlT4W$&FTrk-hcTADX!P?*f1YWEIRwq$Ys%^(Z9w&HT$>}
zsMD#6Df=uJrX!JHP7<>Or;e_Cf=}`!`qR=i8fBj)$6Lxx{HRzd8Tnzd0p>kSps{OG
zKJkml>bUj8$u|F=``l(-aMxWBC at CGZ#FXClQZ<4|&%jN}Tkg#q8z)=>Ly{$i0`rjU
zv<vjl^OND_&nt8%K_DY<c$hBE?ht3o;zMF?PraCx<3H?R+3c+lcVP-`!*=iR^+4=@
zjAXY+K30oPt-hFFYy6`C$csm;r=3u|c~FmFo6B7|^>t|QddO&i=91e?h3>s~i;+6{
z8X4i6a1wDLrSuE#W(zhan+U*Zq+8p3a))JFVF4ffaV51K^YgTs<ELvmzH15OGhhY8
zrA_+PnYK;aeddV!Pi3^WYTGZ2*J)4~@C%)8#kRVzSG2!MszRFau_EOo^?}G1$p^yr
zk#PoR%ZY0-+cfohw#0i(2hnkZfA7b9`g0$EfREag|7IgZEqyUPIUSL{ls?ZdY2jlv
zX?1Mzw~@8iav*U46179*NN~X0%-qa(h<B)RSSGS9k|=WNp6TA~=CbwUXG!l)zfkxA
zNej9!)gKN9qFfwPo;8s*!hnDPngF9Kp{ukrX|iXeI3(#zb*h?bb?@D>o~3;Y*NmM;
zx8T?y-N0uyWY(8=me-HUC9xtABvX5~%yg+Cp&XF$Bq=OcK6T*D7eZ2EmIoCFWm{$S
z1PNw8HDpe5hHeCusN8kdeb&f2#=3M^A~7YwJ7FRrhq*)PG9x?JIAaC<n&nyz&js(6
zJeGWn+?QRH9iX#RFkV(w>{MV}5}<q?f|v9)L^XT#O^Q+lTLo@~KU5xyfaaECe?QTB
zEU+ll%CA at S4EasNBgDg3P3g>g#7R$-Ly%)4=IUkRCGOR|XTMjn&okRmFjaO^YF5^*
z@)#MCBOBezD)*xQNxydlUyN?dW{fS(s-T`gv*0BEnk}<MqB*2*JFz@&Ut*5R*2h-J
z)_1&Q{C at mZhFSfyIyZ=2gNVh5&AtuX!f!}*i1VjIDopYKYu?w1#R<cS5`I at F1PQbP
z*(_N34x08$O$DXg^I;Q5K8>`BdmrbmPO8q8y(X$AA}*RH%I7Av!~84pudHb&%Q5-j
zt?=6x(iR?<^_7X0v6Ys#VAL}dKk^hcjI=|EY;kPcZ_w<*H`_*|N7SacaM1ERD at 6ab
zg`!iTm7$URV+lpW_{V$ruR&A>jrX68k4x2wo$45}&wf7o<|o(@B!u-L at bKyQBAGwy
z4#}UrRAu>^>Vb6k2-th^>WjvP;Nl|i3WrjWv3ISkj{m{eAcQIW^_ndxSX@|8T(ASJ
z?_<Q%GX;J*nopDj?vlGTW3<2Bi-14h9Ft?$MJo-;vYeHFBv>$fcP2u*6uOBk-{d>^
z0vWlfGQMvysI%R=iE|A+!!Nw?C917EU*_$`;;)px?s83CRd3i_jBN)k#nR5t$dJ(+
z_sP;wG at Ad)^(3LRj7q}0b2O(b`|i0~5SYb%Sjk^*5ISZ-Ab+}DGu$-X1n^TF1Ndw_
zF|e*1)cI2%`TR&AW~XpqpFb!=3cHbS>np9hYD_Mr5}y5Y<hjKC>`SY^r7isA2Q4(z
zazRQEqWDKT2zIEbjSYdCPi1ZOGz80Nsl}gxO^<!<`)h}k*WrLKhVC9A^uqPrAX2rJ
zk_X_<UKVZj#SZ`e5i&Jvd|AuDABtCTp9RP at piFO@ZU#$^j4fEyi5WR4tQO|sRzdLJ
z86FxwO1hlidA6EQ5OI;XPTXTa$K&JwxgTfPhh!ZPwc^HMC{@|JRTI?xh^Ptzlf~Qj
z4+amGs<?A`M~9~Ge+{a1r{l~f$XZHt1Ik1~ki({=W}#a+O?yAslpyDBa!(JThcKg+
z`7_G`o=!47FD0IvP768*p<&Vtm`CtC?;Dj`fo;v%1qH|i1 at RjM=o$pEJq4&d1&L7t
zjHm`Qe8 at BW2ApUJb#%iMo6qv$oT6Alh&RB*5 at 4ncFm(r*OBC at so8*msJq8zql&b-+
z5<*+q at YE4P>DWMY0AV<2K&OL{&^6#@L1?lXu#6xSMh%3^5c*}oM6DQGY#(a^@z<&D
zF(43I9e&5`h|A$5!+UFuOH0>F3$shBV4`0#M4RSB8=6F0ZgIbq<2LQ$Hh^(kAJu=!
zt8ZGXTacD{(3W{V1$j_{Jc)Ka7<N6;sXR!iJaN-JXwp2f^gSr_JqZ^)=odUOg+0iG
zJ at H#S=vq9neLbjrJ&FH#F#bWI5hI at wqj2Jp)bXe%8c1>t6u}ho`4kF+4 at t_0!mCBn
z)}o%eA}L)_L?=jw6BIfll7tb3n}?*yLt&XADa=rW>qz=_6s9ziOd5sXjil>FVFx3r
zf>Feewk0v#W9>Gp4GacTRr>Sd2T6dWi-{YX`v!D)kCWzG5xQB=?es5ON(%nkwUhNl
zV>@xkWWWv*N+{e$(SrExvN6BXzU(Hxlx27{VYHf+LpIbTO+Yu(ltMk<<mdQtfilQ%
z#zERxP>;)3A(LU at ytVYFkYvTa79idMtUFhfxx?P!)2F`prNWW#Fub#l>N2s at nh&n_
zA4{#}|AIs9|A4P0ZF%fy=hDN!t#ifH<)4u2kirK~JUpjQ-J+~cXOZI&dI<edX<Pe$
z<5K%Sv8eq|W{$&;<^B}h+C6HiudVR>ts;P}UeXslP6zKvpEKSN-$y>kJ^nw2tC9bv
zo(|lT@?vZ!{_l|d^8Yh)eEBh*5ABh<!=o}_%`M5uz0&2FvS#W)djCI>+Lzjw+?V)o
z#P<J#52aEke-8d*<DbLpV99;)|DC457DTn))TG at GiB9R>-W7361>E(Y4;@`sv;VKn
G`u_lkUM?>H

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/fonts/glyphicons-halflings-regular.woff2 b/ui/new-ui-samples/fonts/glyphicons-halflings-regular.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..64539b54c3751a6d9adb44c8e3a45ba5a73b77f0
GIT binary patch
literal 18028
zcmV(~K+nH-Pew8T0RR9107h&84*&oF0I^&E07eM_0Rl|`00000000000000000000
z0000#Mn+Uk92y`7U;vDA2m}!b3WBL5f#qcZHUcCAhI9*rFaQJ~1&1OBl~F%;WnyLq
z8)b|&?3j;$^FW}&KmNW53flIFARDZ7_Wz%hpoWaWlgHTHEHf()GI0&dMi#DFPaEt6
zCO)z0v0~C~q&0zBj^;=tv8q{$8JxX)>_`b}WQGgXi46R*CHJ}6r+;}OrvwA{_SY+o
zK)H-vy{l!P`+NG*`*x6^PGgHH4!dsolgU4RKj at I8Xz~F6o?quCX&=VQ$Q{w01;M0?
zKe|5r<z7o5`*yS~8)MszG41q#5{WWPpy7G9^(-fD<g4HS2Pp6}MR#f7LIoFspeCvR
z3+c{Ov}|bDFijfL*xJ&DWaU}da`Er7tg~)(Y2IDkd3AD?w7jnSneG!-SaWI)p`xDU
zXH9Mys?(WBfmfBO!_){Max(NjX;ffVH at MAGD6y!?&l=$WE1+*S^Cx4)$U?A><_7CD
z=eO3*x!r$<gNx(8nyyp{U13{MWIQu>aX2iFh3;}xNfx0v;SwB<Fg``NKlv&}sOOia
zl_SskHz$qk-Tj7B2 at DHwWBbat?O%&GCL=1*D=EFRpwKHcVF9o~HnwAo=XtT&qlRWE
zVi`v1=H&nBv?M!wAX!1fF?LWbbVvCAjN!ns70n|1u$9{ZL&9b)AXkF-t^%6Wna*`f
z*04(m<0Gx at 4&<!XDochu+x!F|DAC{R)c4o_TK-_!s|@9}TbCv3Sp`&zta~M|$%-V1
ztq`DddvEXU8JrjLh=Ul_yYF^%B5>fGG+ at Z;->Hhvq<wD;VB at ph6#6G_6lL5#3gkx~
zHFE%Z^IuN$3X)Ju)24Q9Ro)B9zI%GT-16 at 8|DPH7fB1}tA~RrY4U!xKmRBRxkiA|Q
zKr4+b2V=R(Yj3HIK~EcS6>fF4r__4$mU>Dl_1w;-9`~5rF~@!3;r~xP-hZvOfOx)A
z#>8O3N{L{naf215f>m=bzbp7_(ssu&cx)Qo-{)!)Yz3A at Z0uZaM2yJ8#<s6khOy at V
z&}wI!ds<}Wi3oZ(j|&tv|KA}5cx}QpZ^By#9KFAF at B1dVuQA$!NDxA6LE`KPadPU;
zQjo+AqqndYk0 at McX!H;i$Tx}X(u#SHJ%&iNTJu#<Xz9=-I1o~2(*?vBfO^7b&8^8!
zI*Z@{F?FmY+=Z{Cp`Jcc{axky6qgRBtRkQEW;eW-3-wE{UVkT;s_VTolPg6pyu at CK
zSyeS%s7^u`F5b$ErP4Ux#VgLuk2sI{EPRQ3O?-?&iV@{?VSLbGh?0Noj at 91Fh1H!U
z01AI>OGlzm?JO5gbrj~@)NB4@?>KE(K-$w}{};@dKY#K3+Vi64S<@!Z{(I{7l=!p9
z&kjG^P~0f46i13(w!hED<gesU<d5XH<k#ev<OXsrxsqH=M#%^{mn<fylX>Jga;*Eb
z`!n|++ at H8VaKG<9>VDh(y89J#=;Z$ei=GnD5TesW#|Wf)^D+9NKN4J3H5PF_t=V+Z
zdeo8*h9+8&Zfc?>>1|E4B7MAx)^uy$L>szyXre7W|81fjy+RZ1>Gd}@@${~PCOXo)
z$#HZd3)V3 at lNGG%(3PyIbvyJTOJAWcN at Uh!FqUkx^&BuAvc)G}0~SKI`8ZZXw$*xP
zum-ZdtPciTAUn$XWb6vrS=JX~f5?M%9S(=QsdYP?K%Odn0S0-Ad<-tBtS3W06I^FK
z8}d2eR_n!(uK~APZ-#tl at SycxkRJ@5wmypdWV{MFt<T5%<QMMP#rTv8Dn)!jr4End
z8!An$TjN_QZBN_|-%;s$96wO$ZrvL{QYl%F!EaP1Th9SiDvOmh5WrK}3{64{{_F&y
zrSMy`6AG<_-)~t&XssC4d+gCHeK9;{jV1y%Xrvg1Cy#-D2g;>YBUY#g-Vv?5AEBj1
z`$T^tRKca*sn7<ZK}0!&|7AkCI;jT+6~rYE0#BU5AkxqT6Y+wF*hUg{if$klH$Np(
z14lF>gt%s at XUD-t>bij-4q-ilku9^;QJ3Mpc`HJ_EX4TGGQ-Og)`c~qm51<|gp7D@
zp#>Grssv^#A)&M8>ulnDM_5t#Al`#jaFpZ<#YJ@>!a$w at kEZ1<@PGs#L~kxOSz7jj
zEhb?;W)eS}0IQQuk4~JT30>4rFJ3!b+77}>$_>v#2FFEnN^%(ls*o80pv0Q>#t#%H
z@`Yy-FXQ9ULKh{Up&oA_A4B!(x^9&>i`+T|eD!&QOLVd(_avv-bFX~4^><K+`NUjl
zUA`n*5<n{f%?!4-)qpuLcwM`4xUD6=$ki+M2U1n6MQw*G7TmC^qdRw?b*#WSFG;)w
z)HldC)uy>o{%mzzrg_i~SBnr%DeE|i+^}|8?kaV(Z32{`vA^l!sp15>Z72z52FgXf
z^8ZITvJ9eXBT1~iQjW|Q`Fac^ak$^N-vI^*geh5|*CdMz;n16gV_zk|Z7q8tFfCvU
zJK^Pptnn0Rc~<r0!CgppAqmePbR1#5Tubl85FQ4lTg)+g8UrHdY9Ka1?3OcBFeRlE
zzYpoom?Fp2nZ{a4hDYQEn^Tkbje;(-5yZ};a0h|L)2vg*F=grd*^|WBo1OU#S-~Fv
zcDpzl2xPHbu|lC2Y at t*8{!%Fh(i78$=lQReu7C at B0!fO~hV;@Uos_RW`!LXs+NQHy
z at F$dGXT35dG at wzAM4<{W&5|=hvLeY%j at 6DPfZK{_NfpP!+NaV|XArkdMWmsrp|+Y0
zNxjY}2dUoGHC2{GT?~El9hnDW?KmWthwM10KJ(#NAOW%mXq6&t9<|PZ;%Xe7E+vTD
zfEY+f$1Mv<nx@^jBQcU4Ljg4P-dWxOH-zo(t`hB8-Ik$N3~vY;K2XYCp*Fv_2blJm
zPc;8GW*QB>egGIAK}uv<M%BWA$}X1PZ}r3ec_|6TIBdoXwlXq~Ws001rqVG;8=+eP
zbcwJ)A;^UcGF*T_xCk`{#MzU|C0f_+{M&2Zk_ZN2^_{NVK>99VZm2WLPezQQ5K<`f
zg{8Ll|GioPYfNheMj-7-S87=w4N0WxHP`1V6Y)0M&SkYzVrwp>yfsEF7wj&T0!}dB
z)R~gGfP9pOR;GY_e0~K^^oJ-3AT+m~?Al!{>>5gNe17?OWz)$)sMH*xuQiB>FT2{i
zQ>6U_<n)x#cJkNUc|V)^vL|15d~)i9%UIk7`0hyQQOX6dwG{=#lR`i}3*A_(-}<aV
z6Bs$mG_#ni!&Ir*LWx4DW1y|U7^_H;P@~Q(g7S%hUz3y7SxDI<tR$+-%3z at EM);%g
zLObKN!YkVml!Zc2Qm{14ydZQ0tvYlF^&(mmMY>8}Ay~r4li;jzG+$&?S12{)+<*k9
z<^SX#xY|jvlvTxt(m~C7{y<eW|86c<M_B#9!3F3@>{3g>7TX#o2q$xQO|fc<%8r<e
zu{@uYv6wTaDS(!pU?WCA5)2p&Mj+Ip;0XTMc8zb%VkCGB2k$Gg;JkJFCbWHte9BlD
zCR^F6kT^z*ExAP|FFuMd7tu$>E at A3=UW(o?gVg?gDV!0q6O!{MlX$6-Bu_m&0ms66
znWS&zr{O_4O&{2uCLQvA?xC5vGZ}KV1v6)#oTewgIMSnBur0PtM0&{R5t#UEy3I9)
z`LVP?3f;o}sz*7g<a{wL*dZXtI5+zcTbzINq%3Vx?sa^oH8-vb96eb6k)$k`VM?dj
z8y1_mUUalhn>5qdTxJl^gk3>;8%SOPH at B)rmFOJ)m6?PlYa$y=RX%;}KId{m<ya`&
zf~xC+0#uqMzpD#MstCV?tz>9R#2=LNwosF at OTivgMqxpRGe}5=LtAn?VVl6VWCFLD
z7l#^^H8jY~42hR)OoVF#YDW(md!g(&pJ;yMj|UBAQa}UH?ED@%ci=*(q~Opn>kE2Q
z_4Kgf|0kEA6ary41A;)^Ku(*nirvP!Y>{FZYBLXLP6QL~vRL+uMlZ?jWukMV*(dsn
zL~~KA at jU)(UeoOz^4Gkw{fJsYQ%|UA7i79qO5=DOPBcWlv%pK!A+)*F`3WJ}t9FU3
zXhC4xMV7Z%5RjDs0=&vC4WdvD?Zi5tg4 at xg8-GLUI>N$N&3aS4bHrp%3_1u9wqL)i
z)XQLsI&{Hd&bQE!3m&D0vd!4D`l1$rt_{3NS?~lj#|$GN5RmvP(j3hzJOk=+0B*2v
z)Bw133RMUM%wu<VkMnpWWVN&K8^*s5oqf-N`_{oZG|c^)?fe5daI7j+I{GC?6;bAe
zUSXe$6^9Vy1KrCfsOM#a9`s`Ns00)gifk>_+$vbzOy?yk#kvR?xGsg-ipX4wKyXqd
zROKp5))>tNy$HByaEHK%$mqd>-{Yoj`oSBK;w>+eZ&TVcj^DyXjo{DDbZ>vS2cCWB
z(6&~GZ}kUdN(*2-nI!hvbnVy at z2E#F394OZD&Jb04}`Tgaj?MoY?1`{ejE2iud51%
zQ~J0sijw(hqr_Ckbj at pm$FAVASKY(D4BS0GYPkSMqSDONRaFH+O2+jL{hI<DV209S
z)XR~VgGa)M^-;}1&#S3{@xzwR6~@}^V}twZy;sZcsTJr0S5s{W-N3D9v%1<w%kip_
zCaGQ)_4?SD)S-wrJ3}!#J==&-iR8Kz)nLlnoRC&l|C1fmMV-bqBD82vt61QE6dSAF
z*iJKFHPeAzx_T}Ct>ltJSJT~e)TNDr(}=Xt7|UhcU9eoXl&QZRR<9WomW%&m)FT~j
zTgGd3-j}Uk%CRD;$@X)NNV9+RJbifYu>yr{Fk<C+0Z7wvVjq!VGjwL>O;p>_&njI>
zyBHh_72bW<C>;8}oGeY0gpHOxiV597j7mY<#?WMmkf5x~Kf<RrP*$<_TMcAZ<977s
zG-{sG-<y$aNL=Fg)E11z=zEyh@&Zlt<-N$5T)Lf&<pEj#+<|}`9f4puO~YVB6Jm!v
z!37dKVIz9-hLJpqcp?V#EU09HXG3YfV3A{zn-)630R_n7NwnfVYInEHeM$w$$$F=a
zUOHAT9sN4j{@RNZd%w-R1}Mm~Ligs&9Lc5wlF9RUjyxD1L}DW%Q=_4K^pa5dNOiqV
zfiDy5dvZ1fJ9kyK6XwwJ5_8s27to%QJf!DXz~EWpbJWE5-c5LQu!j^}nqmNv+H<%h
z5ssJ<c#g^_qKPkFd;?x87%*ynZQ!gsBex|=gx*awoyTyPQBBvZ at H#pgVq8NqXJ!Gg
zuwA`+(oi^5nIKiFlTl*U=ybY+9YY+wRG&TyaG*FVHfLWlmTb<UHm6AP5eOjK&H%@T
z4 at jLl_YGv5Jmy2q={B>k*re(&tG_mX<3&2cON*2u%V29tsXUv{#-ijs2>EuNH-x3)
zPBpi+V6gI=wn}u164_j8xi-y(B?Au2o;UO=r6&)i5S3Mx*)*{_;u}~i4dh$`VgUS-
zMG6t*?DXDYX0D2Oj31MI!HF>|aG8rjrOPnxHu4wZl;!=NGjjDoBpXf?ntrwt^dqxm
zs(lE@*QB3NH)!`rH)5kks-D89g at UX&@DU9jvrs<xLUb7(M^4Zb6^^3tZR7!hc=SMz
zY6*prxO{uSb2$<j;JZB!{&!N at FRiO@L`rit7J5FDJBlZG-SI^R&~X)B26E|MJx3Zp
zy at feJ>Y)aI=9b4n<X at Mg2JK5FwM5CTI(2DlYHRLE7-h-ky&9}X`qiByDxrocwQ6k!
zk>Py3bfdX_U;#?zsan{G>DKob2LnhCJv8o}duQK)qP{7iaaf2=K`a-VNcfC582d4a
z>sBJA*%S|NEazDxXcGPW_uZ&d7xG`~JB!U>U(}acUSn=FqOA~(pn^!aMXRnqiL0;?
zebEZYouRv}-0r;Dq&<B?o>z9>s#Rt1<!G80gW3Q`9g34ikcEkn<~yB0GE=440i1w9
z%Vr=2{=&=rZq4E{&?AkG<{r866K366I$gg?dF2R5T^g;GEw`9Q*Nk^(b|;|+1mb*%
z#4u&?3d3JFi15;ot8Oc19^cux;^0|4tLG at q3aUT$?2-_vk$Lj at p(S^1tSf2`gC-^+
z=%QnjUZHg-onrhZ at o1lIHV_2Dq?*qAxhgUYKOD3{$4MNkw#KqGMg~{D*qK}6#+(MI
zLiJU8?@7)@l#?NnZ90q6`<!@a)Mc05$F6R?dVF0a42_U&5!rIVRk%it+OLoWl=%^V
zt}(_79f^HAArEdKM!qJXXY$(d|4 at mB-2tz!8yh<&*Y>HL`0p4bB)A&sMyn|rE_9nh
z?NO*RrjET8D4s(-`nS{MrdYtv*kyCnJKbsftG2D#ia@;42!8xd?a3P(&Y?vCf9na<
zQ&Ni*1Qel&Xq{Z?=%f0<LS^x97`leNoS?M1&H-Xn(H4XTZqAYsYIOp+zQ7v^2WLR!
z_a_8#QR|eBZg?(rHeyy)Ce#d at UAa5k@2V9cLthMp76uClo{creD&Bgz9m%@;ZGciy
zb&;xZf|B4Crm;}`+FCG!wta2!yrIkn%Jpu&re1E<PjbmrrsBbowaz-9RpTeuXu#&D
zFm4Z8p>SRqQt5m|Myg+8T=GDc)@^};=tM>9IDr7hdvE9-M@@<0pqv45xZTeNecbL-
zWFQt4t`9>j8~X%lz}%We>Kzh_=`XO}!;4!OWH?=p*DOs#Nt({k^IvtBEL~Qafn)I^
zm*k{y7_bIs9YE}0B6%r`EIUH8US+MGY!KQA1fi-jCx9*}oz2k1nBsXp;4K<_&S<R|
z+!NEpcbfYC>N}}w<)!EylI_)v7}3&c)V;Cfuj*eJ2yc8LK=vugqTL><#65r6%#2e|
zdYzZ)9Uq7)A$ol&ynM!|RDHc_7?FlWqjW>8TIHc`jExt)f5W|;D%GC#$u!%B*S%Z0
zsj&;bIU2jrt_7%$=!h4Q29n*A^^AI8R|stsW%O@?i+pN0YOU`z;TVuPy!N#~F8Z29
zzZh1`FU(q31wa>kmw{$q=MY>XBprL<1)Py~5TW4mgY%rg$S=4C^0qr+*A^T)Q)Q-U
zGgRb9%MdE-&i#X3xW=I`%xDzAG95!RG9<s#0S@%P{4ssMj6|f(PFTtK{&eg=M$et?
zer_yKYB>)s?v_5+qx`7NdkQ)If5}BoEp~h}XoeK>kweAMxJ8tehagx~;Nr_WP?jXa
zJ&j7%Ef3w*XWf<k`Dtf*esPy5LFqg?XcIB9IkPk2PVCIR^-+n7<HvnNOxS;rSNY$k
z!q<-6euEMl;SCbnVwt5PhJlC8e8)6(eeUqB*8$mMnR$Q&;ETvMu%R;lTOg&_)?8$`
zEVa^()w5!O5o`IR%tYnnz9leJ+<2|7dp$e$)VGU<0VsrN2!{)e*i2Km_!HkTy_op@
zsnIk4PS0pBq&7e1Cq-WNe*ebQP_BP_b6V^hnOf6Jl*FDBLVJ=#%yjrBiM`Z%lGFDo
zwHH-yVfi&trZbO`$d`z6e!q^9z6z!R^x64FT at j!px;*Fv`gCn5ntcrW!_Q4ZK!=`N
zoJV-<2+l^+1!xdB0GlIyi1aL at Bfyw-3;j%CdMMseXt6XU(|7 at G1YlJY;FZ<6E=3Wj
z<90D&lAbgUUnehHsAREwMtG=6$~8Hjj0}TB^$|Sk>?V*nR)|IOMrX;$*$e23m?QN`
zk>sC^GE=h6?*Cr~596s_QE@>Nnr?{EU+_^G=LZr#V&0fEXQ3IWtrM{=t^qJ62Sp=e
zrrc>bzX^6yFV!^v7;>J9>j;`qH<hDH19MMT1+`8y)sG%_MO<QWhJX7}-!&K#jas?d
zy;gZO2VIR5z1H^NXfFwADaHGprj9Kyw6No$Yqd_S(T={z#2gbNW$Y;;P#5j-{0Iqq
z{Yz6(ka&r*xSggxVdEyX?Y53QVJz#Wj2B2nNYC=~i46iAU6ds(WkjB{Reo2yZ2cFH
z1KOLbJ7d1#n3MMhVE&yyAfdi+kxdP<3vBD^E`m_9S2y(rq1mIzE*dZNSDYg|SM_8n
zmO6SnMKXq{pYHbK`f8yE_&F1K$=pH5Q;<_Q=ykx1w&1KgW?4A9Z6Hh0ujuU5gw(c)
z&7nRlgcqO=4PWSIrL^%aZQ)})*BEYH(5EdFt~HS|W2m{IuJL*etT$vJP at H=66XgN5
z8Q}8pvQ~ulll!Gl9Z+^=yi)!QQl!(y;INZ9hFT3RpTQp9WD<t=u9}FyLz|lM^T%K;
z_F;6vJrfj%Yd?0P?KC4$4d|po%oYftn%JedFIyM&26HYvVHGfC#(R&nCXS+Z{t)t^
zVSWJ}WdR7#^Eiv>DQ4uc92eVe6nO at c>H=ouLQot``E~KLNqMqJ7(G+?GWO9Ol+q$w
z!^kMv!n{vF?RqLnxVk{a_Ar;^sw0@=+~6!4&;SCh^u<XeQK8Ry4Gm-T(Vj*P>tT=I
zo&$CwvhNOjQpenw2`5*a6Gos6cs~*TD`8H9P4=#jOU_`%L<QahFX*>!W;$57NjN%4
z39(61ZC#s7^tv`_4j}wMRT9rgDo*XtZwN-L;Qc$6v8kKkhmRrxSDkUAzGPgJ?}~_t
zk<g7QLp>woGS4=6lsD`=RL|8L3O9L()N)lmEn-M15fRC{dhZ}7eYV%O-R^gsAp{q4
z!C1}_T8gy^v at SZ5R&Li5JMJy+K8iZw3LOGA0pN1~y at w7RRl#F()ii6Y5mr~Mdy at Kz
z at FT4cm^I&#Fu_9I<Lt*^+ at 1e0b(+y4E>X(HAFP{XLbRALqm&)>m_we>a`hfv?eE|t
z?YdDp2yAhj-~vuw^wzVDuj%w?exOcOT(ls(F*ceCe(C5HlN{lcQ;}|mRPqFDqLEzw
zR7ldY+M6xe$$qLwekmk{Z&5cME$gpC?-8)f0m$rqaS|mj9ATNJvvyCgs(f2<G?s#j
zlCyq7V=W|3+#5GMRv3jyMSve^Et#Ab=u*f=lMF{rP2hXbA~Thc4Er=Whg%hdYCNEj
z;kX^FSJSNv%HwF&_?QB}Y>{r;2E!oy$k<WRsM?7~2V-%l??892FJ&Nc|D((m<^gBU
z9InVbh@;KM5Dz*apz7ga>5{jik#(;S>do<#m0wVcU<}>)VtYmF9O0%(C>GDzPgh6X
z9OkQLMR~y7=|MtaU!LDPPY7O)L{X#SC+M|v^X2CZ?$GS>U_|aC(VA(mIvCNk+biD|
zSpj>gd(v>_Cbq>~-x^Y3o|?eHmuC?E&z>;<!5?S(?^O9r&S^X+pEvdora!<1(g^2R
zF}c9cL+{oKVWq$6?rtz|xpFbl44EDmFIBCjiJb-Y3(jwkFAqQImExJNVfoWvtZ)_T
zk4V<B4M+9tw4kQKIG^34KQl&&Fz^SMfZ1Rr!}rgT#M3;D3P+k<)V-V;IAUzgk0mWE
z!YO?vo&!phIu^NE0<F?&&>Ij`%{$Pm$hI}bl0Kd`9KD~AchY+goL1?igDxf$qxL9<
z4sW at sD)nwWr`T>e2B8MQN|p*DVTT8)3(%AZ&D|@Zh6`cJFT4G^y6`(UdPLY-&bJYJ
z*L06f2~BX9qX}u)nrpmHP<M#fk<GgBNMKYA_9QYh8<vJ<9 at F-~(AqGXdLPEfJFTIn
zp64R)U5xUof+~(#vZUz{EaXw4SAp0Y;12Y-Y*XpA#>G#La#tiZ23<>`R at u8k;ueM6
znuSTY7>XEc+I-(VvL?Y>)adHo(cZ;1I7QP^q%hu#M{BEd8&mG_!EWR7ZV_&E<NEPM
zcuS4Ye{%Gqtc-n!er+G|*<cWkM>GO;d(hGGJzX|tqyYEg2-m0zLT}a{COi$9!?9yK
zGN7&yP$a|0gL`dPUt=4d^}?zrLN?HfKP0_gdRvb}1D73Hx!tXq>7{DWPV;^X{-)cm
zFa^H5oBDL3uLk<C+v0>aFDWgFF at HL6Bt+_^g~*o*t`Hgy3M?nHhWvTp^|AQDc9_H<
zg>IaSMzd7c(Sey;1SespO=8YUUArZaCc~}}tZZX80w%)fNpMExki-qB+;8xVX at dr;
z#L52S6*aM-_$P9x<jdu9ktlJz at 92>FuIui;dN#qZ_MYy^C^hrY;YAMg;K`!ZpKKFc
z9feHsool)`tFSS}Su|cL0%F;h!lpR+ym|P>kE-O`3QnHbJ%gJ$dQ_HPTT~>6WNX41
zoDEUpX-g&Hh&GP3ko<AA>F4##?q*MX1K`@=W6(Gxm1=2Tb{hn8{sJyhQBoq}S>bZT
zisRz-xDBYoYxt6--g2M1yh{#<qP09xNr at s6w?MS->QWFCISux}4==r|7+fYdS$%DZ
zXVQu{yPO<)Hn=TK`E@;l!09aY{!TMbT)H-l!(l{0j=SEj at JwW0a_h-2F0MZNpyucb
zPPb+4&j?a!6Z<r#zSSW!Qu(5~6_6s0G^U8i@%ox>nPTB>$t`(XSf-}`&+#rI#`GB>
zl=$3HORwccTnA2%>$Nmz)u7j%_ywoGri1UXVNRxSf(<@vDLKKxFo;5pTI$R~a|-sQ
zd5Rfwj+$k1t0{J`qOL^q>vZUHc7a^`cKKVa{66z?wMuQAfdZBaVVv at -wamPmes$d!
z>gv^xx<0jXO<J6=m}BiiJow`eU at 2UA*K~Z_jqm?*Cp?B28V2;3;6C}+*8byL=EIJc
z at 2%))H|zSX{#wNl1dKR;V_`{wA-N5-aN?q$&CIR<EVd6v!|e;ZYX_h;K*-tj_Xr#R
zVD!mpcMXWrZqS|`IB=hKzaZzy6X`0CowC9wPYMg&9n}1avJ{}*L0iZ!p`>z;7HIQS
z4RBIFD?7{o^IQ=sNQ-k!ao*<ZRhqeGmf|{bY%Roxqzv&YHX(&*=PS#s1OR(zw~6*G
zAZll^YspPb$=6UL<F at 2FynT_exO*?%>+V*|-^I2=UF?{d>bE9avsWbAs{sRE-y`7r
zxVAKA9amvo4T}ZAHSF-{y1GqUHlDp4DO9I3mz5h8n|}P-9nKD|$r9AS3gbF1AX=2B
zyaK3TbKYqv%~JHKQH8v+%zQ8UVEGDZY|mb>Oe3JD_Z{+Pq%HB+J1s*y6JOlk`6~H)
zKt)YMZ*RkbU!<JI!}T{8zEt+(a&daxMztju*ROn;npHenq}*@86I)b4J&uF~&?iJt
zN?o)&ELAxfueHiio3Ybyik at o*@icyb9qQo*!QuvA1&u?hUYT)4qQ$O|oMH`uQ%7^!
z_}}e+S%sZ4PL at FquF`ewt{)}v at KZ#Df*{vuY6%Mec{@2I-?T|VsMToX1VvAe%n^j)
zvdeu6s1|35v#f;_moF<I`PGAy?=_uDS;`<l<OfIk_>GPHzJltmW-=6zqO=5;S)jz{
zFSx?ryqSMxgx|Nhv3z#kFBTuTBHsViaOHs5e&vXZ at l@mVI37<+^KvTE51!pB4Tggq
zz!NlRY2ZLno0&6bA|KHPYO<dkI`ky_l{+0el>MY;;LZG&_lzuLy{@i$&B(}_*~Zk2
z>bkQ7u&Ww%CFh{aqkT{HCbPbRX&EvPRp=}WKmyHc>S_-qbwAr0<20vEoJ(!?-ucjE
zKQ+nSlRL^VnOX0h+WcjGb6WI(8;7bsMaHXDb6ynPoOXMlf9nLKre;w*#E_whR#5!!
z!^%_+X3eJVKc$fMZP;+xP$~e(CIP1R&{2m+iTQhDoC8Yl at kLM=Wily_cu>7C1wjVU
z-^~I0P06ZSNVaN~A`#cSBH2L&tk6R%dU1(u1XdAx;g+5S^Hn9-L$v at p7C<o$=Hu{J
zxrz+#TM>CF&PqV{Z?R$}4EJi36+u2JP7l(@fYfP!=e#76LGy^f>~vs0%s*x at X8`|5
zGd6JOHsQ=feES4Vo8%1P_7F5qjiIm#oRT0kO1(<jgC4I6wQ2{Xo|wjm0krd64efBC
zGt(LP9FC(njlia=(c_lTukVx-yR9~Gt`YfGKRT==f^$Uqz)t!SwGPI)kuvX+Zjvmv
zgh<^_T!LG;_|>?Z_Dk6<DV?iVez|GsZJ9q9|E_~n&^oZp at ZP#r)@50Y)8mRQBV<Zt
zDX+2G&swV0HIzU2B)jGgp<HCCR~bCFxw$OKhJS{dJFnQcxWhHg&GJ*Y)wr*`8kbb7
zRF?6Y&IrteW+;JBSq`vvJy8vQL|A_+2fW`8-8lH at zNvF93Bm{k%c!o-fCV)*0t~GU
zSfWy;Y#>oX&j=Xd8Klk(;gk3S(ZFnc^8Gc=d;8O-R9tlGyp=2I at 1teAZpGWUi;}`n
zbJOS_Z2L16nVtDnPpMn{+wR9&yU9~C<-ncppPee`>@1k7hTl5Fn_3_KzQ)u{iJPp3
z)df?Xo%9ta%(dp at DhKuQj4D8=_!*ra#Ib&OXKrsYvAG%H7Kq|43WbayvsbeeimSa=
z8~{7ya9ZUAIgLLPeuNmSB&#-`Je0Lja)M$}I41KHb7dQq$wgwX+EElNxBgyyLbA2*
z=c1VJR%EPJEw(7!UE?4w at 94{pI3E%(acEYd8*Wmr^R7|IM2RZ-RVXSkXy-8$!(iB*
zQA`qh2Ze!EY6}Zs7vRz&nr|L60NlIgnO3L*Yz2k2Ivfen?drnVzzu3)1V&-t5S~S?
zw#=Sdh>K at 2vA25su*@>npw&7A%|Uh9T1jR$mV*H@)pU0&2#Se`7iJlOr$mp79`DKM
z5vr*XLrg7w6lc4&S{So1KGKBqcuJ!E|HVFB?vTOjQHi)g+FwJqX at Y3q(qa#6T at 3{q
zhc at 2T-W}XD9x4u+LCdce$*}x!Sc#+rH-sCz6j}0EE`Tk*irUq<m0`(;!&c&G7p#_P
zOJ|kT&v8z(QpAQ%C~^@e!Ck!ICE1vSkA<!Djfg-q)Xjj-!hve17Fw+LN`@{UJN)Br
zZQc5>)y^za`}^1gFnF)C!yf_l_}I<6qfbT$Gc&Eyr?!QwJR~RE4!gKVmqjbI+I^*^
z&hz^7r-dgm at Mbfc#{JTH&^6sJCZt-NTpChB^fzQ}?etydyf~+)!d%V$0faN(f`rJb
zm_YaJZ@>Fg>Ay2&bzTx3w^u-lsulc{mX4-nH*A(32O&b^EWmSu<mNHl&EF)N<Qwv@
z+ghjNCfO8{=RX6l;$%bV;UJwTS<t3aZ9alZA|`Nj-rR_)P~(S$140`CMywS0w4K at n
zvEbSGG>k{#HJk}_ULC}SB(L7`YAs>opp9o5UcnB^kVB*rmW6{s0&~_>J!_#<Q!IQA
zfO6pF51Khiw-3ES&zJ|$tcLa{0mAHdM*u;#&JjS6&2$71z|3e-)lO=LCK!MP<y1Y+
z19)^hGF`6{P@#NOEe8oq!=8hZ$>+cEWib at v-Ms`?!&=3fDot`oH9v&$f<52>{n2l*
z1FRzJ#yQbTHO}}wt0!y8Eh-0<gy=!05)T$dd<p&_-XL+(loOF(KU||XB_8&Ud`&j6
zW~wWblPi)_Dt+fy0AJi)GpeZiwq|YIuGrGcv(nscAa@~_m+trFF56NgiRrAWJI3uF
z`lhjQpmFmzF^U1!<RrqC-I>*|Um3vjX-nWH>`JN5tWB<ptoGg-$7O92<yOQsP=C)b
zJ`}#bAW at wa=e0GehF6uTNUcd|*Ba&dCiyhdjY(|NMK^uobI9q$ZChi=zU%>_gnW%;
zUJ0V?_a#+!=>ahhrbGvmvObe8=v1uI8#gNHJ#>RwxL>E^pT05Br8+$@a9aDC1~$@*
zicSQCbQcr=DCHM*?G7Hsovk|{$3oIwvymi#YoXeVfWj{Gd#XmnDgzQPRUKNAAI44y
z{1WG&rhIR4ipmvBmq$BZ*5tmPIZmhhWgq|TcuR{6lA)+vhj(cH`0;+B^72{&a7ff*
zkrIo|<cYW*47-TiTWhvB;>pd-Yxm+VVptC at QNCDk0=Re%Sz%ta7y{5Dn9(EapBS0r
zLbDKeZepar5%cAcb<^;m>1{QhMzRmRem=+0I3ERot-)gb`i|sII^A#^Gz+x>TW5A&
z3PQcpM$lDy`zb%1yf!e8&_>D02RN950KzW>GN6n at 2so&Wu09x at PB=&IkIf|zZ1W}P
zAKf*&Mo5@@G=w&290aG1 at 3=IMCB^|G4L7*xn;r3v&HBrD4D)Zg+)f~Ls$7*P-^i#B
z4X7ac=0&58j^@2EBZCs}YPe3rqgL<Jxn$r!S8QWfkb&3miwnf<3dO#?*0r^D`z at 0O
zyL}HbgfghMrA1DVzkMTz<h8XjNM2zx at b$YHrE<H$adW4nu!w{$k5e-y$OIJc^n_-#
z?T4cd%<Il(cWf at 2Jy-ZR<%BHt;L>AA1L3Y}o?}$%u~)7Rk=LLFbAdSy at -Uw6lv?0K
z&P@@M`o2Rll3GoYjotf at WNNjHbe|R?IKVn*?Rzf9v9QoFMq)ODF~>L}26 at z`KA82t
z43e!^z&WGqAk$Ww8j6bc3$I|;5^BHwt`?e)zf|&+l#!8uJV_Cwy-n1yS0^Q{W*a8B
zTzTYL>tt&I&9vzGQUrO?YIm6C1r>eyh|qw~-&;7s7u1achP$K3VnXd8sV8J7ZTxTh
z5+^*J5%_#X)XL2@>h(Gmv$@)fZ at ikR$v(2Rax89xscFEi!3_;ORI0dBxw)S{r50qf
zg&_a*>2Xe{s@)7OX9O!C?^6fD8tc3bQTq9}fxhbx2 at QeaO9Ej+2m!u~+u%Q6?Tgz{
zjYS}bleKcVhW~1$?t*AO^p!=Xkkgwx6OTik*R3~yg^L`wUU9Dq#$Z*iW%?s6pO_f8
zJ8w#u#Eaw7=8n{zJ}C>w{enA6XYHfUf7h)!Qaev)?V=yW{b at -z`hAz;I7^|DoFChP
z1aYQnkGauh*ps6x*_S77 at z1wwGmF8ky9fMbM$dr*`vsot4uvqWn)0vTRwJqH#&D%g
zL3(0dP>%Oj&vm5Re%>*4x|h<Em3JO)$O&GXE=ft3p^9G|#?0DwWLK`p_K)+<TTv{{
z-sme#4+Oqqf)?$*$pWS2gvP{&alHNwIjdG2eeVgB&W~2ncQkQT<TEB}+r+U*Sz^2(
z{JDq=6~A;9bd6M;^@ummf%1~8*<luPLU&L(KPlUFmFbIAFWF(Em5xC%IhGNzYpP8O
zT+`%G-QRPYJlIrWo{iAsK!Q9!P2vkE5P#|jye^?ECnY~D$0dPb9DZfa1?v)yz at 3g&
z;g&G9%`bXU)%GaSxc!s&q+yw?s&G0kHmhpF|71o$Tvo0$rpbSM(^6^d{uv91%{b|=
z$*Kl!b^WeJ at 0d+rhNnHIz4cl+;iLmd<L-)VhjV!~YbEu}d>1J2X*mK5BH1?Nx_#7(
zepgF`+n)rHXj!RiipusEq!X81;QQBXlTvLDj=Qub(ha&D=BDx3 at -V*d!D9PeXUY?l
zwZ0<4=iY!sUj4G>zTS+eYX7knN-8Oynl=NdwHS*nSz_5}*5LQ@=?Yr?uj$`C1m2OR
zK`f5SD2|;=BhU#Ama<P~$VvhmI_^8ZNrt}1AvOV7X(sz*+2GbCZLT;rBdYe9QGvD6
z)XZ03krf;EL7R4cKP%`*;hM_&31edpDiHr|`}C4$VA4K?4)t-d*ee|SqdnPMHN?%7
zx3<>TKe9QaSHQ_DUj1*cUPa*JICFt1<&S3P3zsrs^yUE;tx=x^cmW!Jq!+hohv_B>
zPDMT<UQS`;VV^r at irLILT~0+N33M1<u)sr18hR(<Wra9eQt=0KCN|yzvNvA<AN<3k
zV|hxRkue$##Qs23TChJ;07NqT3L1xe)KK-*%TLpc>0D&08dC4x at cTD<NY(g*?y)&(
z$O8b2Q6sg#wt{+cv-4vv at -+5_NBvTr6Ex1qad@WizC1F1SdwV9_ihN`8RHq?sk5jC
z#WILtbwaI9L(u>$o1$x%So1Ir(G3_AVQMvQ13un~sP(cEWi$2%5q93E7t{3VJf%K?
zuwSyDke~<K40T94pahUuQl0-LemUU;AvE^<Z_y9Yyr$?J0su3Gy5f{LKemD(&L1%W
zWEvyy)Y1GLmYP8(i-d%GK_O{23yX~H+%H&Rou8u`;RWM|q&*T>7KuB2?*#DV8YzJw
z&}SCDexnUPD!%4|y~7}VzvJ4ch)WT4%sw at ItwoNt(C*RP)h?&~^g##vnhR0!HvIYx
z0td2yz9=>t3JNySl*TszmfH6`Ir;ft at RdWs3}!J88UE|gj_GMQ6$ZYphUL2~4OY7}
zB*33_bjkRf_ at l;Y!7MIdb~bVe;-m78Pz|pdy=O*3kjak63UnLt!{^!!Ljg0rJD3a~
z1Q;y5Z^MF<=Hr}rd<hCKOY==|sWDSuzL8iiX7^T&s)i%HRX)g)$n}ULLiX`pwGBZP
z9gmSoR&T(}(1y>oz>yRczx+p3RxxgJE2GX&Si)14B at 2t21j4hnnP#U?T3g#+{W+Zb
z5s^@>->~-}4|_*!5pIzMCEp|3+i1XKcfUxW`8|ezAh>y{WiRcjSG*asw6;Ef(k#>V
ztguN?EGkV_mGFdq!n#W)<7E}1#EZN8O$O|}qdoE|7K?F4zo1jL-v}E8v?9qz(d$&2
zMwyK&xlC9rXo_2xw7Qe0caC?o?Pc*-QAOE!+UvRuKjG+;dk|jQhDDBe?`XT7Y5lte
zqSu0t5`;>Wv%|nhj|ZiE^IqA_lZu7OWh!2Y(627zb=r7Ends}wVk7Q5o09a at ojhH7
zU0m&h*8+j4e|OqWyJ&B`V`y=>MVO;K9=hk^6EsmVAGkLT{oUtR{JqSRY{Qi{kKw1k
z6s;0SMPJOLp!som|A`*q3t0wIj-=bG8a#MC)MHcMSQU98Juv$?$CvYX)(n`P^!`5|
zv3q@@|G at 6wMqh;d;m4qvdibx2Yjml}vG9mDv&!0ne02M#D`Bo}xIB0VWh8>>WtNZQ
z$&ISlJX;*ORQIO;k62qA{^6P%3!Z=Y1EbmY02{w^yB$`;%!{kur&XTGDiO2cjA)lr
zsY^XZWy^DSAaz;kZ_VG?uWnJR7qdN18$~)>(kOoybY0~QYu9||K#|$Mby{3GduV~N
zk9H7$7=RSo+?CUYF502`b76ytBy}sFak&|HIwRvB=0D|S`c#QCJ<t at a2hh9FA+>Pq
zP)uOWI)#(n&{6|C4A^G~%B~BY21aOMoz9RuuM`Ip%oBz+NoAlb7?#`E^}7xXo!4S?
zFg8I~G%!@nXi8&aJSGFcZAxQf;0m}942=i#p-&teLvE{AKm7Sl2f}Io?!IqbC|J;h
z`=5LFOnU5?^w~SV at YwNZx$k_(kLNxZ<T-w9G;`)wdHJoGV2amO-<vG?pZ at XJ#Uo$J
zb+q{_L}lvg?U~@|P1*dSegkN;ajNUGhmyA=S^CQ6 at p}9uJKGF3&96BmwaXxSvK>DE
z3cf08^-rIT_>A$}B%IJBPcN^)4;90BQtiEi!gT#+EqyAUZ|}*b_}R>SGloq&6?opL
zuT_+lwQMgg6!Cso$BwUA;k-1NcrzyE>(_X$B0HocjY~=Pk~Q08+N}(|%HjO_i+*=o
z%G6C6A30Ch<0UlG;Zdj at ed!rfUY_i9mYwK8(aYuzcUzlTJ1yPz|Bb-9b33A9zRh<?
zEh+^J at 0OOsX>Gl>Ny-Q<wjX~nWiOR}_^4D)POdKUaI)X<DM%#y>#JAq-+qtI at B@&w
z$;PJbyiW=!py at g2hAi0)U1v=;avka`gd at 8LC4=BEbNqL&K^UAQ5%r95#x%<j2Twi<
zWI28Jof9kY(Ikv>^qRB%KLaqMnG|6xKAm}sx!Q<xJn;TKhAi-lV_zy<;)6u(yxe`r
zG8s+nu+7X=I2SJx?KI|R<|o>wo}J=2C;NROi$mfADui4)y(3wVA3k~{j^_5%H)C6K
zlYAm1eY**HZOj($)xfKIQFtIVw<YDEZ~5huBx;6h(9UoYDe-u{#QQBex`xo0d_SF-
zZ{zr8r-x at oa=@P7G8Gz%Q<2A7_lyD&aeZ-!inR%aZ-5;iEO&XuPoZbZ6OcnjG1hFD
z=btAA?MyXPGxhQ_`_b at us-{heIodKJbCj6!H57FlM3sv+z|<{D?1 at zfhGGSCy3ZI2
zt4}F|%ocaJQVlIK<}Wp7+&rp6QOq<JYmAuckgc6Zxd{^=DJ9>$4&yvz9>(Crs>Gh{
zya6-FG7Dgi92#K)64=9Csj5?Zqe~_9TwSI!2quAwa1w-*uC5!}xY`?tltb0Hq740<
zsq2QelPveZ4chr$=~U3!+c&>xyfvA1`)owOqj=i4wjY=A1577Gwg&Ko7;?il9r|_*
z8P&IDV_g2D{in5OLFxsO!kx3AhO$5aKeoM|!q|VokqMlYM at HtsRuMtBY%I35#5$+G
zpp|JOeoj^U=95HLemB04Yqv{a8X<^K9G2`&ShM_6&Bi1n?o?@MXsDj9Z*A3>#XK%J
zRc*&SlFl>l)9DyRQ{*%Z+^e1XpH?0 at vhpXrnPPU*d%vOhKkimm-u<I9o!2{*RVUW0
zkpjTAF;dx9>3c%Q^v3RKp9kx at A2dS?QfS=iigGr7m><)YkV=%LA5h at Uj@9=~ABPMJ
z1UE;F&;Ttg5Kc^Qy!1SuvbNEqdgu3*l`=>s5_}dUv$B%BJbMiWrrMm7OXOdi=GOmh
zZBvXXK7VqO&zojI2Om9};zCB5i|<210I{iwiGznGCx=FT89=Ef)5!lB1cZ6lbz<Vs
z!O6)(KPRgm>gDn07*he}G&w7m!;|E(L-?+<?McI~@TA!vj4RjYnCoT*FH)-pRq74Q
z67E9_umMJOIut_ at Dx-Z2hEzHqy0(3L!ra}x0phZ^)OD)P*BAJetYupvu9iOfKMRY*
z59R&ZxVR$6O$s<?dV};ZTu5t!)CO9!I>cz at 0<9Z<nFBx*sw*AzBdboG>I~LqYQE<f
zdA084i)nAbA%sHr3I6f)x0A6_C#f|)+7km{+VWc=8p6a>7>HnPA436}oeN2Y(VfG6
zxNZuMK3Crm^Z_AFeHc~CVRrSl0W^?+Gbteu1g8NGYa3(8f*P{(ZT>%!jtSl6WbYVv
zmE(37t0C8vJ6O-5+o*lL9XRcFbd~GSBGbGh3~R!67g&l)7n!kJlWd)~TUy<jO~Zhv
z at xvBaLkBZ#>Xus#!&G6sR%(l(h1$xyrR5j_jM1zj#giA&@(Xl26 at n<9>folx!92bQ
z24h<Dc4e3SQJcr^RE3|QaY*5jX?vj3>570+<)4!$!IQ(5yOU|4_E6aN at 4v0+{Kx~Z
z;q7fp%0cHziuI%!kB~w}g9 at V+1wDz0wFlzX2UOvOy|&;e;t!lAR8tV2KQHgtfk8Uf
zw;rs!(4JPODERk4ckd5I2Vq|0rd@@Mwd8MID%0^fITjYIQom^q;qhP8@|eJx{?5xX
zc1 at Fj*kDknlk{c-rnCloQ3hGh7OU+ at e<M~mcEvZ$(y*X$K0x5}s~CQD$(YxML3psk
zFM|TBc-aWBLjK at 0qr{-u^ogBxgUZ2q9fo2sjGh*5M_>fO3>fkRMcM>J?AeVP<Ux|u
zIt<28*boJGNgvZU&+HIxSJU at 0MMOMk7(|dJT9}B#3C^H5%`@R9`pq2cDNIDmG&|fk
z=;qP1KP0X0%WFW{10wdnB1|TJr}_3V9m=|9t1&c+%CUUz+SxZxbB`X)efq{sF+1tq
zKf-%4B#;+_1Fv@}nSe1EebC at A=zceZ+9L=HMG!TLs$d<`aVBpK$8UGu%?r!ZUz3ID
zw2G?KI8ia%8jnZwySwx2`P0dY`Re&F893$F0%*A8SHESTm at B%nT<YZ$)QN^ti`2>&
zlfzX%cdp=N+4S#E*%^=BQ+N`A7C}|k%$|QUn0yI6S3$MS-NjO!4hm55uyju)Q6e!}
z*OVO at A#-mfC9Pha6ng((Xl^V7{d+&u+yx)_B1{~t7d5e8L^i4J>;x<7 at 5;+l7-Gge
zf#9diXJ$&v^rbN5V(ee%q0xBMEgS6%qZm7hNUP%G;^J44I!BmI at M*+FWz0!+s;+iQ
zU4CuI+27bvNK8v>?7PZnVxB=heJ&_ymE0nN^W#-rqB%+JXkYGDuRw>JM_LdtLkiq*
z6%%3&^BX$jnM at 2bjiGc-DymKly)wVkA-pq;jSWL#7_*moZZ4I|-N}o8SK?sIv)p|c
zu~9-B%tMc=!)YMFp*SiC0>kfnH8+X5>;+FFVN{~a9YVdIg1uGkZ~kegFy{^PU(4{(
z`CbY`XmVA3esai686Yw8djCEyF7`bfB^F1)nwv+AqYLZ&Zy=eFhYT2uMd@{sP_qS4
zbJ&>PxajjZt?&c<1^!T|pLHfX=E^FJ>-l_XCZzvRV%x}@u(FtF(mS+Umw<d2c`9Rr
zR+?yr(!A0r|CD~t7GFV?aaA(6z5nz_Nm0i$V6I-ucK$u?K&%hkODCkY(1+;DS|bQF
zb4mg|54xl}b6Ewc=m`{a+NEN`d1?%=>$e+IA74e>gCdTqi;6&=euAIpxd=Y3I5xWR
zBhGoT+T`V1 at 91OlQ}2YO*~P4ukd*TBBdt?Plt)_ou6Y at Db`ss+Q~A-48s>?eaJYA2
zRGOa8^~Em}EFTmKIVVbMb|ob)hJJ7ITg>yHAn2i|{2ZJU!cwt9YNDT0=*WO7Bq#Xj
zg at FjEaKoolrF8%c;49|`IT&25?O$dq<?{UbIQ0;9Tr9TA6pzz%=H>8kp3#la9&6aH
z6G|{>^C(>yP7#Dr$aeFyS0Ai_$ILhL43#*mgEl(c*4?Ae;tRL&S7Vc}Szl>B`mBuI
zB9Y%xp%CZwlH!3V(`6W4-ZuETssvI&B~_O;CbULfl)X1V%(H7VSPf`_Ka9ak at 8A=z
z1l|B1QKT}NLI`WVTRd;2En5u{0CRqy9PTi$ja^inu){LJ&E&6W%JJPw#&PaTxpt?k
zpC~gjN*22Q8tpGHR|tg~ye#9a8N<%odhZJnk7Oh=(PKfhYfzLAxdE36r<6<oD}e5;
zMPsE4+rk0d2jE*#p84SO^!fW~`j-|(WExf+!}WMlI2oGcLeMqZ%ofC97d<+nflE=C
zww(j#(;Qr&ut3IEyIwm>a?A;rO&ELp_Y?8Pdw(PT^Fxn!eG_|LEbSYoBrsBA|6Fgr
zt5LntyusI{Q2fdy=>ditS;}^B;I2MD4=(>7fWt0Jp~y=?VvfvzHvQhj6dyIef46J$
zl4Xu7U9v_NJV?uBBC0!kcTS0UcrV7+<p(Ba=Bk7*SXvlcpQJatnzmyl-^GA6y=0YH
zU!Qp*(5v5`qcU7GH`fZ53mR)&#Os~1d`1FKAc~R?v^F at 3sPXWHk(`{v at BF<NgpL1h
zOYj$ZQX-EI8H4?Ypq8IMFE`LLGMYNju;D(Aux0jFNCc@>@~is?Fi+jrr at l3XwD|uG
zr26jUWiv>Ju48Y<K5Q0UFt#$Wh-3Y^huuiZIhuP~4SRD>^#qn7r9mwIH-<mOw=)2D
z<iCzV917q at YTEy}IJiO<?It)?BnA;jg`vU#wb|e4BpbC^HJE}Jh7S%#;t@=RHEzf3
zve@!5mXtmM3~}?iGNYp|t2UDZWtZs+?hWj`+Vz*5E0~r*FRY^QnYC-}Vte5CD38TA
z2heFf8>Pv6Y|V|V-GZ&+&gQ?S?-`&ts{@5GXPqbmyZjUACC&oVXfNwUX0}ba(v978
zp8z!v9~8Zx8qB<QXT5I&+92wF0pO{dS4(N<h_+P+tKZn8-IlF)tWr~gMeIiH-&7y0
zvL&hwU_I>@7>oFPDm^iR at +yw`79YF)w^OHB_N;&&x7c3l^3!)IY#)}x)@D(iNaOm9
zC=^*!{`7<aJO;!0Q_GA?kGJMA-q_;pS6#JcnV+|?H`ki8UM3IyaP&Y_Cob&3B{Pk)
zm4w3$nw_t--`?`O5&1RGdSO&%Hqq;;K{ebNOqKIk%%SGD!F=%uOt^n7pXHX$w+HIP
z8dL)o*Jpb{DXQ+Ru13)nl`bL_X#5zH`D&t|K|2sG at Zx^L{-A|#-X*Z;4E;wV8qs|w
zT>={3*S=%iU=KsPXh=DDZcc``Ss>057i{pdW8M at 4q+Ba@Tt%OytH!4>rbIbQw^-pR
zGGYNPzw at n=PV@)b7yVbFr;glF*Qq3>F9oBN5PUXt!?2mdGcpv^o1?Thp`jP10G2Yi
z(c93td3F3SW!Le5DUwdub!aDKoVLU6g!O?Ret21l$qOC;kdd at L#M&baVu&JZGt&<6
z!VCkvgRaav6QDW2x}tUy4~Y5(B+#Ej-8vM?DM-1?J_*&PntI3E96M!`WL#<&Z5n2u
z<QPxSVI}f8nvsYEV at sQO)6fswrNtp at sU=8(-b8Mb5P$r8S==I%7kh4B)_n@!DLI2Z
z4PP(&9*0`aDCzk=7Hs;qt at l};2A|ee_lp|_XHg at k->o`P!~vBT$YOT~gU9#PB)%JZ
zcd_u<u8SkTyW at XV6qrAJ#qjS(2-MC6glNGYe|r3T`ER-;ck$QHoSn3~1RN=RR%nUZ
zKf8<#6k1k~H at +pG{73t5FQeCnhxF-1&my@?)3Sx2>=m^LYzC!pH#W`yA1!(fA;D~b
zG#73 at l)NNd;n#XrKXZEfab;@kQRnOFU2Th-1m<4mJzlj9<frYer6HiQx@?8?NJ2Do
zObcl_ecl~1qF&eiOVBk0#ZN-|Dd_D_4Xx*PUVf?)>b3pv-GF$elX7ib9!uILM_$ke
zHIGB*&=5=;ynQA{y7H93%i^d)T}y@(p>8vVhJ4L)M{0Q*@D^+SPp`EW+G6E%+`Z;u
zS3goV at Dic7vc5`?!pCN4<JvL_48+Q8LQ@>4Ts@*{)zwy)9?B||AM{zKlN4T}qQRL2
zgv+{K8bv7w)#xge16;kI1fU87!W4pX)N&|cq8&i^1r`W|Hg4366r(?-ecEJ9u&Eaw
zrhyikXQB>C9d>cpPGiu=VU3Z-u4|0V_iap!_J3o+K_R5EXk at sfu~zHwwYkpncVh!R
zqNe7Cmf_|Wmeq4#(mIO&(wCK at b4(x0?W1Qtk(`$?+$uCJCGZm_%k?l32vuShgDFMa
ztc`{$8DhB9)&?~(m&EUc=LzI1=qo#zjy#2{hLT_*aj<618qQ7mD#k2ZFGou&69;=2
z1j7=Su8k}{L*h&mfs7jg^PN&9C1Z at U!p6gXk&-7xM~{X<iLOVw!aav*!V=`4l#Z}C
z96Cuv>`nqH#aGO`;Xy_zbz^rYacIq0AH%4!Oh93TzJ820%ur)8OyeS at K?sF1V(iFO
z37Nnqj1z#1{|v7=_CX`lQA|$<1gtuNMHGNJYp1D_k;WQk-b+T6VmUK(x=bWviOZ~T
z|4e%SpuaWLWD?qN2%`S*`P;BQBw(B__wTD6epvGdJ+>DBq2oV<pcqb&6wR<4FA$2v
z5~)nCP^#1#txj(+n#>lf&F*lz+#avb4<LeKI6+c0!*aYJO0uGAzkT?h&<)eF9oO at N
zFp85j%ZswAo3`tRahjKP+mG|QpZEJg2u4s0CrFBBSdJG&Nmf)%H%!ZRT+a`}C{EHW
zFUqQJ+O8kQX<pWCKhEoZ-tYH^5fsA-lA;-w;{{QY6;;y>)3P1c^Mf#olQheVvZ|Z5
z>xXfgmv!5Z^SYn+_x}K5B%G^sRwiez&z9|f!E!#oJlT2k<v)*-8Izce`)2-oo#(W-
zoudGWwGo at 1CGNHF$IO1;TKoQC#d=r1zr6R{_1!X`9kp|Iknh0E@*R+w*=1K9s{o0$
zk>COV0000$L_|bHBqAarB4TD{W at grX1CUr72@caw0faEd7-K|4L_|cawbojjHdpd6
zI6~Iv5J?-Q4*&oF000000FV;^004t70Z6Qk1Xl<E0000001Beth!e-qIiLWEb%ZLV
zlu{~6UVVTb6vR4Bl(ZyCk|ase4n~5DnVFfHdC{Mq``+`wUsuh>{X9oJ{sRC2(cs?-

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/images/high.png b/ui/new-ui-samples/images/high.png
new file mode 100644
index 0000000000000000000000000000000000000000..5f5fcea79a4be9eb82d05df7ee8d981df6967bf0
GIT binary patch
literal 812
zcmV+{1JnG8P)<h;3K|Lk000e1NJLTq000>P000>X1^@s6#OZ}&00004XF*Lt006JZ
zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!zDYzuRCwB~
z)@x|ZaU93-|2ghQ=90 at 8#kSOpMPW#pMGceN+(T|PJP at LI;F2P87si9RKd at ykQ`YhT
zVJ;8IWw}JkEpy4`9O`iJ{_68DozB^gv-7Lhes%u8|L^;|{lC9?%1)O%QA%U9#sG{_
z-2qMT6K`=FmAHtP2uA9tVUz$}F#&UthHv<U*XpPNT3|TF=~*!j<6$g8`eB!9>-;=U
zXw+}u*DP&TS;)Z at EJr?;;PSt-3J=l)$IuNQunpTIEW>v^m$RtAZgkgxrfLa;;XzWd
zLrYbPeYj~2GYePcYXE6_ZnLSz6RRH-ZK%|;&Bh|^$9!C{jy>A=me_(>xPkF_N9Tj|
z;!G`3q;eNK2~?~$MVOAK7-_Ths$m|+B7l_&(4Tre=G79w(Y|b at eW8|TBkm&|)2x97
zX@&(z(kQBUAypfh>%>-CVGZx)X$d#uhfZf33t}VA)JE?`2$N9Y{9j4NG6LD=pTc$h
zHqfi%XR|qj_cTh^=EYNnp|6(hxI17A(o?7Go*phlXD9xWq583cWLS{)cFL3%LONOX
zDZN!&+WCcc7Nog;^s8=E&mhUF1FC(tOkXUTa*@M%PjM1cl5~3g_NNBFk)p(xsM1z-
zjRm=))SazUmZ*}Yy}squnGPs}c1%zJ8|)07+7ho4U4<UZNzjswKrek3)n29TqxcBR
zKSS#oz&c;8Q+g1e-2`cu%mK~DF03wb&d9R)CVh~Xv=t#YNKp63N!=@lFshF18(y-N
z`*M|q|7LSH3%kXBSZkjO2IC0USr)CMbDQyG4X{9;#8TXecKuqKo~UcrHgB=&5?sX#
zd__}qQU)Kb+J|eFiM8RO+WwJvrc;)q8`0_&`e4J0M}0iP9+bOF6wALvcGAjl4t=x?
qLzJC;x{zMk1*bMudM9G}BftP0OtN`NjudzR0000<MNUMnLSTXlM1j8m

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/images/icon-centos.png b/ui/new-ui-samples/images/icon-centos.png
new file mode 100644
index 0000000000000000000000000000000000000000..5afb7b4b63462412d825f63542beb1f7e26b3d7f
GIT binary patch
literal 4734
zcmV-^5`pcBP)<h;3K|Lk000e1NJLTq002J#002A)1^@s6(aU0S00006VoOIv0RI60
z0RN!9r;`8x010qNS#tmY3h)2`3h)6!tTdPa000McNliru)C(I02nLeE_`m=F03CEi
zSad^gZEa<4bO1wgWnpw>WFU8GbZ8({Xk{QrNlj4iWF>9 at 01@IzL_t(|+U1*hcvRKh
z$3N%ZnaMIFAqh#y3V{%o5Fj9gC1DY;#iC$^YO7C+h_9~|#0>=mSt5p|A_ceVTdio-
zqR<x*go4NpAwWpj5yBGoB?%-mlg!M$zxR&>N`OGZ=G*o>&-rKWnS0Lnw=d_yT^=H$
ziAcJLOcs&){HF{N(M6=2h?y;hr&L5{h)9 at -{6~OK6Omlw`~fN3`>B}j3l0(alZe#$
zcjtJTm}b8BY>r%5e7_WZnIO(B6U20%_ln5-A`)@8B|y6yz=58?d)~8K8#*_S!#KYW
z0QdemxN at iI;wkwZFcFBlo8Z+Q1`d!8GSe(M+{Ur?S&Z|0t8S|_e49UoPm5>Dl*RrT
z at B-jaO8x7CujF_)kiQzIH`jM=8ii4MsG2PmwnhW+Ydu1gPw?l!D5cb~e at U?y5esl1
zV$SfM&aUs=nt at Sr@Z!_US5{0haUc3$%JQZwabFk+GG0WY at 3ak2H2`9*)Ww<-N`ThD
zRMT-R(YgKw3`fCb8!E(8f*3B8H4t>)Dg^OuIv87%$IF$)ZyqoKaMuD)8E{%DW!x_C
zO at IZ087yMnSd^3n5W6X69Sj%ZDY-;9r7Cci<xazWa322cCt;25jcJ-ygi+aoP`X8w
zrp}5frkLgpVJKaplv)iuqm(*V6Y!RrvC<4VdVWp#@sg}+sU<*UKzm|?x^b#Bhl2Af
z5izP9(9ar1v(WyaSwIAIADksVZ2NdEB9{w*;9J*UB|nxLW*R1Y=5EDtrleY4={AkV
zeOeNp6dh0-J7%e&5_6(7o4ivWqbcngk4+*2I?^PxKWCl0SaWzZ7s?B+S{LHil!UrJ
ztMXn~VJSKPvz9BltCYfdx`cb4?T&wV09kJ@!{hQ?6PnfEMo2;g;YrbV#^5Ow74GNi
z85P)>o{iqd<vGLm2cD}0e&sr?TBazi0_^1zAn&scteLck*e;FfHT_rEBLXiGrpj8S
zZpv?Iw`MIh;(~h6Id%+Z9C>U!IvI!O<Zbn!2fo|M+DVIvYS)0YQGKWr8T9|d)!8fo
zB!xdtpieA$r#_*mZ2xT!9ZavmzWLiYo_&b;Ud?HIUlL-<PX}Hpjk><^cnk-dj{bqO
z&Rukj9Z7_}EyC^f&AQD(+o!t`*R=`T|C+_FIh(Qi+pq=t{uJO9v4P#`*=Q!s!+uRs
z*?!g at 8Ha{W$JkMX+go$Hf)m|lq4l87q&$_*jxRQ``Q4QmZZGYJ-Anh0{VP=97WS$Y
zcoCBZLEY&P^AbLK5N+x|P4jw>Q0zLu+9R){P^34=AlNVAmL)(;q0N(Nqzp;tz;`>y
znz0<i<0WNC8p)4$B)(@ex=-wfPmuo=QR5u}uZRokL3+bU6ua_Su;*7CC|pRJ$Y*F9
z^(-e#b69m~6kfwg&qgzdu&3Pgp)5WY?s>L5?VjnzuCF(<=8Z)lkorPz?iqS7*|S!#
zV&pu+lA`$8A0MGkWZj#RHcL$x#s+nxX}yOzc3~ZxkN=TU&k44kco$O)nuZR*ZIrU-
z%p6u99z)lLljt1#8d*oDa-uZ5b_epa()OvYBtM=??kDTW`DhJFQ>4Doo5nv+BKPBU
z<bApx(=hS6+;p4Rk8ZE`MYmb*2<Js9T_WnF;P9McL%}3UD*d?IC?)6Q2kbBUmX!L>
zRN8<aS$`x0l%h-AIO_T~uDJvVq&$^Q^5dx-ShADsSu60Cc}W?PPRn1nXV2WNY<_Pg
zhQ~lmA^-c`tjk<XXtPKn+cn at CnbXaK7ZD$z2T0J7;+3q(e~~h8aTRywF-qBVbQ-(Q
zenrcO-;x^r3Wct{{E+`LPS0t2H-3kxfKCYJbwOMGZFGG3K2ip!kvDq-t0pYK;%lYL
z$e+`CP-oUpTgvA5e!y^ht3-kO7UuE&t8*zmb%DwREM7#^ErG8D{wTtD5!3gyV;e3{
z_4&fK6Cbem>|7G-Jw$TE6O?*Ru<pnN+(ro<Vnz at Z(6QS8TJ1L4{#RF$9%)a`pVzYO
z<8>%as}S`*E!p<TI(B}s3Dav{BRW(Z&pyb>oFf29z$75)Mm9i1lvdpX;4#x<ym313
zXq4MgUcsL0(9>f&$vycId(O-uIbtv^!v}G}eT>zIU&Cv<=-MEIaC at t(f*?)TXg~B`
zT0WM_?zvmo^4>}SIt;s)rv2Km{qrnxK3aomnAb}^Fuf*)g{697p`$18ZVe>Bs$B!P
z4fu^|m@|J|yglaoQFHOSJT=lGujyp- at tN#C^Cig<zoSF+ixj%{vFgxhO5DdujTwoL
zrEZn~1UCw!<*z%C_m}l#y|oP8$3mA;eP}(XGaIKbBj>}_RYd)IBR98zv18}yM~@bD
z1wN}z0xF48N4w%jU*Jj8FsJVRdW(Ji<nJgy at 2ahbCimn=>^%KBjf4BrE^;X4-Xc~X
z8qGQ9E|k(xKEWuTAT+;vm|l}jGgpxF=e6iQ7ShN3g1D}UY?`@(U4P5IF2}EqJQZ0R
z4={SvHykY}>LemFf%es?K!A2dvGGwc%&`S)evDd|xwyiJ+(aSKYr5Ee>J#>yokMcO
z6SNHfEv4?`Y(4P~ZqtQN!ejWgn}{CPo(o5d$eX<$5uyFCdrA03E4F{Wk=(zmuNCl1
zxqvBb+_;~NjQQG`GbLStS=XovE5P4U3EUqTVz|ATyXI{6-!N?{?$UBprG6@<2=#A4
zLdXNCTEs=?%MVfH+DEI1CkgP0rMT<>N@=EMk14j<V>F=5>gTTC<bl>S?9q%y_qE{2
zs(rZ5IcU;1xyCt?ZnF>=8^VbT&P(TAv0^tR!@tnSPw1bTm{@<FhztidDW#+myhVwK
z9eBd<7_aY{yESa%^kultmR39#s1q4TzuAMa2H6nt)=~ikO<B;D6^q at 1W>cbTwqj84
z00)7dVoHCb+-r9mCa!W1hTDr6wT#vj=vJMq?1PLQGY^NO{1OpbwTj{G8NV?iBkQiy
zH1z_I1L#0AB_c12VZM^TY<JkQ5ntnVR;?FmR-KT9aFniYHd;k#iiSO#)Bg9}O{Hr~
zfuWV)I|5TnF1XS at _+TX)HtfHpe4w<njDmtf%*#?<(-gXNX~MYi{ml6Iu+6}4fqWoA
z1CF6osb7d4pE^F*j*)LMOVe}>|4=(rR8>y{-b&H40U>UWL2<EzJ5j1u3eKG?!Qm)Z
zKo}5Qxp%p$bZvdblxas+|JZ1C#zKk at o~<Yk3Dk)SqTi>3(d{<8-r5-;5wO{GELI)O
z*9y8aZ8l4xQfdlNQd!%-UyO2JXBm{08(@@!n6*c!S=pF%n6YE#UJ`qNxVTVe%=nEo
zYaY2v*R>JAKPtgTT9i_55m~4-rQ*6a`7mwN{UNJfpMNo2tcV5zd|8#9&krkhqcl}h
zg-6#lh7RjRUAv91zRIGw*r^S9s#|bCfbZ{thziGW(zk5KJNU#uguPx{-1&>~p2 at CV
zMyT1aH5!23?q8)<*05nc#*cr9q?Xb7z$jp;Qp&9CCK;AW!{7ntiijh=XY*MBF~JGn
z4*8Ul<HeU)xNGMz=FiVTs{wcs2o1F};*~!5``gIOT*TkL%A#$%h75WlO)v8n#TT4k
zMO;vKtfm)F!FPC%Eyu6jIIJ<f at t)p*`|zR~6F^z~v4p1rO)mj&-XfYQQwB=2W|8}W
zfk0lRrN20gEB)5 at C`Q$5T7O at UH~JHj5MFB|CjucMc7{KHA8BccOn++$3+Cq#9BgOs
z;B at K)*w}OSE7lcE;6!OQnmrod<mV9)Tsd#zE!>W8%VF5!?!UQupi(qWh#({5A!*Vi
zA{Q8b4d8MW_(}=*JBnu;bZdI1`^0_(#0J;c5Q%`Vua#F{y`NsalKAMum3;YS7IwRh
zF=HR3SFa>AO}J2g6p!J=ZIpuP#nxy5zO7zBJPur0BQY)<!tb8(SR=dEy84sQIGoJP
z0kmoryI0q>=Yb_x0KW*{qg^9JG=SwOo`~uYzo+*f24bt at TVqk5FtI;f(h`|AbuqJN
zuO}+1E)ysIlC-oYeDMAXii(_7_-T~nQ<nP{)|lS-wa-AjrMNbY#&diXejVP#*06s?
zVZR0=p-BXjrwlY(w~pNjJPxe62JnmEy;^lKGO$!>>ZQP#;C&W9E4oF$F7SHw>hRLb
zeMn17<PXypvtU6EAt81qX8e+-%_5ncxrpV<cUJMi7b6sR{v678%)}Dj0l$>dfZ*Di
zfpKmdzRAy55a32CpfqA)Ld^L1upFh-?}4pKsq487w|1Q*!CUDTMroQ>+BH3q`1pEP
zx%>)uW?|ImzNDuo^8R}(Sg;_6y1{lvjqXdURx!N$&T<wm+*ZB$Fg=tX_=d6_v#`eX
z#W#64m>yhPCt?)s!mstqSfhJfn*d^>1;k^i+Z?6HSBjCq+G;p{Idi?*4YDLJuw5w}
zDQz3@!Jh`vpke4G0*F9(cmPwT4x~eeMogWunAx+}5g8fG)TzIsQ>O%8dhsjf&(Eol
zG`UWEDqh_Czr?jQ155P1_;;F)c$_%1Ud3~K75=Hyu*E-IRRzRE54#8d&TpdyB>?;g
z<lKPc7qLl=l*uqmwep8OxSVb#O?sH5q$os$h=@Q&ymCKn+cqTg&2L${bUXFy2QhAZ
zKVoA;$b9qL+J&r2!+m%@Wjkh}2Pff|G7_cxQkFXv at 2U0pCjB?IMguMpKo4z&fBT8x
zabOhf;<CozZ7f|2Y}s;%(WAd1E-sXD<NK4+wgIob_5d9_He%MS<t$v7L*2Umj2qvd
z7A>Nf{?-x}Ey}%#{*-|`{~OA3r(uo#Iliq&AY$Om9*a at 96TddEVvXsI9@+-~4w+zj
zE9^t%C8s;nrB$$V=P`y3{R~~#_~erzB)5toW8wn7`Fa!a at nK|U4kS4_hF4yh!;&T2
zZ>3{_`_SKUZJvlFA{GDCX at KC|JQnw%1^9Q!q)yil!6?VEb|^;i?wg7UwA#fFioDzc
zGBOshbH_0zPhP~b<vXcgKZr?h4j?)vm<i+Ovwq!vZuvHq(s3VINLk)n=)ukKYxjDE
z3T&H-=jd{b;ypOC$6%Hg+;nra)|LK?1Q<U2a|#QcL`Mbl+L#B3jR|Jbq=l?lv5VVw
zi%d-1hrb0e at M}9B)w&`IbmdG!S^P1bC%Bc(ZmLTwBAh$tz-rZbZg_9HcW=gf at 2_C_
z@?Ez*C9P0_1-K7<i6y2tJ}sU`%8M$1|CIfCkH^awf89u4ZUK)zl1jUF4R1eqG%OLF
zu*UYmIJ*UR{x>y_`0glp5!klvFk{EeBQVg9F=HR3MT_X$c6k61EMe{Nzb6B;{2Z>W
zZ(tPfy^Un8nWsafLfo&M0DJeH;OVFTLP<#(v)*}(HYssetv5}nK0y+bOBWI^yO?N=
z>4kslWK7pdoNJ!NIKTg&_t~zRcgWyrnxcJ&cns65){2V=$Bz|}k`l)oZ#>N6#d(yK
zd#com!@~pd^Rt5UG6U)pg00z;a78aqX+GEz9!1%LFi)+=+VH_ at jhoVJ=oJy(Z3k~^
znmX65TQf;dPrPv%S=UHxTHm*ELU^EIdQ`db&&H-w3Z*$Q#EU{<m}Qh(HE1!Y$~$~4
zL1 at YfN-qTQ*y0D&$Te1$#%e4EHNAcsT}x*g3uKlX7dovu{F*xL$g8rU+bG3rmSNKa
zuxLJ)PAg&(AABEeBZnEjmbz<!=PCi!bll$Sr#I;eHJ}~H<RaJp9$CkxsG}FwU$&XL
z%$i*MMI$CCowT^|hMzU;JB9Wtu={%1*)3Og at 6?Mcn}IEXFN$3Ilhz#>uTDC)T(jdN
z2(f|bbdDQKfGy?+V3<;BCwF+<@f-aj(j54s%X6;h%0nZx<0V;F0dErWARS^x7=D(}
zWxycd)ZO^l;EsQ00_*`s`dLF)c8Yz?j1KH_nE}*k5Y&VA(Jy-aETKz)my}X>1^8VX
zBBDejQN+wDE<0#0-uI+ at xH(alA9zk2?vo-S--<}nnqDXQS0zGI5&4J1ecH%7`LQ_N
zXFMXZSVSWDcOR7!kR)O*G)zyKh&e|@8vRFnR9IC7WQK?&{*-6=Kk6Dayw&uIx&QzG
M07*qoM6N<$f~4IfuK)l5

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/images/icon-debian.png b/ui/new-ui-samples/images/icon-debian.png
new file mode 100644
index 0000000000000000000000000000000000000000..ff49a39696fdfa5f232b0e79de04d90af6557111
GIT binary patch
literal 4239
zcmWldc{o(>8^+K0B4eq^STcyLC8fm@!jx?!k~OkNF}Cb}Swoa9yKG_XYqDi0W6jcx
zC0mvdLx$`|mf!0-*E#39&L4B$=e+mxx$kG*X=$o5(WB at g2x3yhC~1Rx!0Aax3$A#1
zi(YV}wNzJCf=*74%%=P}@C5!6W9SM&49uq|Y;el&5Ij8Nrlz5MW{R4FiCvo15Ud74
z2rf0Hd%9i|WRph^IbX1yXgpi!Ht!PpLl;+a!^1gV-yve$#8&Jx@#3Ynv<Eq*mI5Bt
z{erdHuKa90*RGB%#FiQfAgi at Wa9r?Ynf+eHVA)}QX-$j<ZNvj6dNq6dAahv%Me`?<
zWAh5P=Q+-8HOwKld|TF=X1r&-*Z;HXj&^=^uUj3mKTsU at lL-%UV|(yS7&2E#@1R(O
zE{v*P`mJ!C{oP}T at WVTKY&*1|)Q0QC#1QXj$;2-A%;rziL#UO*fm8R#Mb~i6N`a>k
zd^Ta7qk6*&mW;meARE^3uKMJ*X>rK3M8NH(iA- at +rnraYRaDpRUU)b4{Tu(*=8XM$
zVjkhhHeBo~pOCj;N)hS51*&guadEz9r<ZJGj#v3_Tk1?^g;BY$Qt(uJR)UtHcP61|
z!$Y3#jXqN(o_2~LK}z%Jc at mx{+?uDL<Z#!twX<(4<hZ3&pTW=F6?!#_)`@#<vlwZX
zen_8;e)4x6=gD;6-!-$<y_@<D4W}7nBtAs_qXIYb5~%acG8gnVkt?`y<FGb#svWgE
zG)}c)Yw{79-hhyU?P_xjg?WeBSG`~A)id6VfI$Nup3JvkBD4L*0Y<1MvzM_c++ at vv
z&fCt!+d{R<2yU21V%+ffn&w>YpNoQTbj;}KOHu!pMdMZQ?;7!iLanAE&t4Jz!$o&9
zw7UeqU+|NoyqMEP@`9CY{F0Rrbgq?&6tR0Wo+0(X4a+6 at WbvZ-PeFv`_#ykz7cbcz
zP@<dSXw*=f8+~o!;Rz_8EEKDHW&TDD&e^m%zemd1N7Y$`t~H-v=Q%<A?ap)6(a7v&
zuHLQJ2<=BL_(=+HKHGBG$zwc*_cF|s^6~Kk$#=ltDZ7K!_uS{>zfU#a{=_gNv?mTd
z^117?>;k8Ll5=n6?GzfixVzNbV$c|it*tj{<DLe81=O!IXD6zxSN?!U^1_HEsh`AA
zgte;qzB<W*61K}#SmN(V<a~yXola%Rn_sLa{L{Fgkn3Y$#Ye*@@IN%moAs%Si;)a%
zUu4O(cTWs(h4AvEZy#_|cmd9s98adXspJL?&!8UV54{Ezq;!>QZ3n}m#r;wd?=yR4
z9aWIH(!E>G9Vc}3rS)qwpJk+djpxVQsJ(8pXG&faD`!^p5im`Oq*lKh+}D_ at BbjGr
zE1o&OOJ`Kdb~%!kXq;6c#|XYR&Y7lBjP(7ZSfSCp<s1FT at Q*j$>YXqZ%u>s~_e*P=
z+ at Ipl@tL`LT=4RQRi_;57t`=4H7Bkv{)f*0M|*FSW;pD~jm=mf<&NO#zKXC at jkq-A
zgSF#HQo$?_eFZ=GAfM+FwPvzX{uc#QE{LLP4_%K|@NUi-OY^IA!d+2pd_}|!i6;Ac
z{`peE#oF75?^ym$-9}(dt}+%-(eqAn+||I;Y=yv=4*t>M_c6W}J9wv#djXNjG!?yn
z<YPXS=`W=H=+6i0dtN3b?sJ>noJ{*fDwHj}TFMo+vNQjtXs!Fvzr~?4-eq6yjaIk+
zO+f)c{O1cQcFj|Re$wTKo2mDSIr&{`>%64$_0an;y!)hN&}KF#IAZ8V`Gni2Mv5 at e
zIn|H>(4uScIQ9kOBvJXLvtsuZSkdF7SEHGY6v0vJfX56a3TeuH6b>5bw5fMOq8sZ1
zuw`-*XE~?O`CR(epP!wG-~DU#^*h*rg0fxoJZWBn+eAZ*+Ck2L*GFwR&ErQ0Uzkd|
z-^7c1dv9zceP2kcl`5olboNpCtsd2`E^Xq+c}o0qWE}n5dn2GJLUq`NTq$z9>>hZr
z^^yM%GF9xfFiSeDL}*d!-`aiA$QbX!h-J`&tjivj4%nJJ?*jlbpmwE(&>n;47ip&7
zKk|4W67IK=*V$oQyKF8*#jFBPnE&e0h4eK}b?9$>+p>Yp2u6-6Y;L$EnL&%V_A543
zbMKrDm#?5V?P-_mi$~eti1 at N~FFJc~gQv^v@^wxb at w1%I=+gbKmDNl}Z?#{Rbj-X?
zWv|NK1EhoD5)Qhc(2_B5- at RJ(Z@>R<Z~aY?#I*^z$tgA71Ew2>2Q%#d{9nnaRe68t
zQ?^WFaVjd?jTa2KU)<?vNv>_lnzDT{6{nTNpoL=6nsn$AE{cWg*^C5UJ<;aVTSqCa
zZ{D3wuX_qqS$8ad+CIV7YcTzvrkWxi;!*OQL7=HFK7Cy|mEI2Pl at G3`Lsy=I02GS(
zI*%|fD>GUsfK=<06aBr;B)+zPuf^VuzGwHkGAUAnurCU`gM7W+mMijsH<uU?wQ>F{
zmIBbI<9CJC#Hm$P at 3ZrYP9S-)phPahF5wkQbbk${%2QnY%X92w$%Dm{*cT7Ac3S2>
z$_!`@O6>Y{Zrb~M0`tgm9=o78cu1NDj^L~^`J62nO6Y4Dv_TB-EeY$h7)d;AhGQ(6
zdE^EpGsN2vnSqr2rC)Tv_qO6hA{`qRk;e6(>fzDh?HBr62>A*pud1hPlZI!PTm-$C
z1kt%eW==$YgM0-Ab(NW1b(&=K2bMJG;f4rA3JK;%H%k&5Xj98FGDon5HdChcYw)Km
zMpul_58hpTDxBqt*qH?&>&#de`jN?5FH}NPkaPD99|kM`1hEUhatL;xCFxkk%*;90
z*2|9ZJm1d=b?b)|4dlZOH+}?9a}b$i*?*kUykQsIJog4N&J(dSswMFyiyf2xg*{iy
zT|gxrgt1fI=%1QLc5t^Rw6o0Ak~r`j4yoc>5Jfr6^4>=O2g1t9VR=x2YS0bV(U;^O
zUZ0^9A&DkSG~n(xRv%yvB&V})`OgnC&KA9{_$(u2s=r{nDhaG{>z<6Ni!#+m at c?C(
z at bQSDPO%76;SYIP1R|@!I9g2^ChTLYRXeJ at LY~Y{bx{A+N30**in3<sy-#r1+)2dd
zE(TfEjhQ*KJhq~`G{9`!hzPjqQQ<BZ>1Xy<en)K`Su|*(CLM40Pd?3K+Rz-Xqz+}Z
zebO!qT}L&w^`|O#?Z1`gWE`!gbsPU*;eYNH+cIBOIZ|_s(S<bFcvg at pF6VwmD(w0_
zG%d+SJRjl_k(Co|DHj43Xe?AKkPiz(3Vt%|6D~>c0TyKQDcfuvB#a%M6Jc|iBT6uv
zvXEBE<$*XS<$0!FqthntEPP})&6U^upt*NNKox4TYc=kr3javZY>=KgbWNw%|GSav
zdfwv*YhTW7BCu2THBf-i+2;z7rYo0s8<5_?zlF})pv!`>xgsjat!DNLs^+rermoFM
zd7oVC%7OvS=n9a}7UiA$Qz%dCy`Pu?-KtP5VTS9@`SZiF$vW$(8^vY2yhz4p?k=cg
zG#&f0{Qam++74<`?a}#xoxSsvXA7WRkUYO6iWTNE_PO;2oZvfWrymO=3hO6aEpd6#
zGsP_5n1c5;R at Q~<Bh7#@`{){O;b29}><j#ilZKkw*JS!*Cme&mVWl6RE0>YJ7G}5F
zq}$2j>Zk94!W3eQe6I1LsN#Dm;IpLll@|lO(=CwXpwR3;9!NV-$DIxCdAuhog-fKG
zB6i>ulRHuWv^23|@5m=%>@y#v^ZOk8ygGJkBxo$^y5$fL4&YR`VJPYp7py1Qf#1pb
zm0m=Dbp-PQ-_4b->GwU_8}d_M3R<KIg!Oh2`a69ZNdr|tf4qcRg#~+0;h1gttZt&W
z*Y^`CfX7p7H*!Payd)uwz*qc1MpAM}I>jsp#kv>I!Y+nj3sfwuVI%@Zl;k$U3p~QU
z?{4VvB4oNf!{-`vA=h=H|M^TiT>UQ)!DWesl&g)Ka at hcFRzVig)~2et!Z{2hRo at 0_
z;=il$*wZ8FQ+$w%kzEX`u70BX)-I?&I+ZyCwo?8G%0aNulk~LCb3YWcjl&fuR;;Lg
zRXj6hoaYaGgn6-(u`ViHi1|`kg08y$J^78f2WT}@1=9dPx6?SMJky^Fei(#A!?lFX
zK*M{YxR{ZiPZz|pNc!$K#Y-xVsZM?zXW1u}Kbc!gD)Sx&+y(g{vF;2Y_Tv6u?uws6
z#Ezs9#*mzzM0oJ$i~-yrNiq^I6gH|M&5s85sW;H>i=Y^Z%TYj=tt9o>uJYtM%T7tX
z#hUKk^}$ZR#0^RVl}UXL!M at nJ5=jf}9A~E^T>E6q#a17`Pq$LXJwGHtSTvh2&+7f7
zB7`WD)i5S^nr%kB^N_#wwF8&PSy=?K^yIdJ(oX0)h<0W|`DzCXL&A+C*smZR-brpQ
z)KgrlQuKF4Z$J9!vibXiTfh at l{1V?yYzJA6&5o=o3#fcbnCDcN?EPEb0#}_Rc7!#(
zqB!24C)uTVMoRNTL-BTHGj;PQN|8yHUUsjnsS9Fzz-6<&G at a#Q<-$U*!7C=6EImbQ
z@@vQL>l1s>a?h_SPQo2~0+)#hD65C at 1E6NYPqcH%wcVv(q-_Vu3!VDnrrPWvSK4q%
zy8XOpD-!pe6IS%URrG3oW~^6EsGRs#$d(F}XOlU+d|pKTayBB3HMnZWwCsR86>I|M
zZHAo2LuNim%NJhRX<_Hp6c9m+KrdAp?9k_R`h7U()OqZi3^CdeZ4--<d%u7z4BTvS
z=<kF5LOzIlQ7;?jmz<U;5x at d}S<?_#5JC-tEsjgveWEoSUbf3*kxPW0&K0iG=2*e7
zM5>*$kE1WSP(kRfeN4w&UL at V?_lEVil+Xce>CX#$We4_?fr?JmZOx2{hFX7hS3V&3
zfzhcVD8@=$8W!;Flly9=&%RbjH~e%CD~RVab$--igf60n0?ZyAC!3?}t1<>GZMU1j
z8y`Tkf5#>B3TDYZ2xEn=>xxR$r*oQa7`^^aoxmE$Ug}v65X)}oy?bx`y5tP%ZAiYw
zG7SC@`FW at 89!O(vYXWqIpfdsmZUzKw^(+Xlw_rI7R5n#4adm^k_ZO5c_|M$^MvZ_R
znv&o;L_$a$j&OB7S{Dv+Md?f2jyAuFQnfsE9jC`6KyFs8N`cjd;~|f@;*>L?%NG{}
z81Oolu%c?}D)rfw5ql24N=SUVkES5^7P5MCi`sHsEFRuURfmZXk<t;H;Rce9T^Wjl
zM~7l>g+S)X-n{j7vK6$m5CGs{DADOO1&@CxWSdxF2voy31`xPJUC%8zKD%NV;FAX2
z;Ky%i*SdqYhrAIsdpFdU82muK?2!s%u7ElyfvkJFhIXJxv~{()R7^WaIaUt55>y1L
zoBqS8T-QI|q9Tj|*cQhPMSKeG6^On8D-sM8Wfs&7 at ZkeV6Xel0cqEucPp3Tt4z*;c
zBkS49vL~kh3_~~iz4OSJcX0~sbtIb4s+$(yP2DCuy_6gJq{ir)mI?XwH*CzRR=19N
zfF&XK`BUPZvth;^U!R|CcqdUnmK-<fj=rQgx6k9!#KIbd#ejbfAV^JFQ>pB}dEoy6
D^V29c

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/images/icon-fedora.png b/ui/new-ui-samples/images/icon-fedora.png
new file mode 100644
index 0000000000000000000000000000000000000000..7b9dd06d1f766a3285cd0fb587c0be4114bfac47
GIT binary patch
literal 4449
zcmaJ_c{J2t*#FKj_9goWk+p>ETQP%#7_w#Gml9b*CXBIV-zj9vQiQRDDBCEzWGAvU
zmPupzp|OPVj`RNep7-4I+~?lso^#K=_dK8H`8+rNzM&2y-DNre02uXj at 0gHv_=V6=
zk^8UePD5lx<*cuB2ROfIZ`#W<$rf5)T`PY8pl7=f5b!!5N;Xml=pnSJ7bv+InZ>uS
z*nKCP_&m%k1GIdeJaO|5AWs26>#3VlfSap8kVn8H0UbTWeOD<rY5=&@qjyKc3^}(|
z at I1g~s-O>MlqYGG5wxjnsL9DnNqZHp3obSjF;FgZ@?dg`!8B6HOH&x|y`n8p!H#~N
z7I?)J3(r+q%QCs96+s2QTIQ_RuQ?9L7%SeoYL8p^AUR;Yln1LGkM2GQ8P7ajZQD^%
zRaFl&I&42VTU<I at 2tgkPX~Z(|sRsNWE!O%!2c>LZ9-(BiTi@~KygD^NgjoPg*syLT
zIPm)xu9f2lYPAnfJPHIo%JZf0z2d9ACug-L_>96w43>woPc5T&T-6()-~=qdi4mC}
z%mV1^E+gqJclLt?KLa0hg0KGf)%8Z_Dvg}F2 at T+x>5QDg69Wj~euiBLoY6Pv!}+ve
zB$f?(uV`kXoF2}HLtqiuGq_vI?<Phh4RR4r><$2x8Io9+f0c0+C00;`fliI93`^e_
z<8D%3p;%AK&=`ESY+p3fV9$je?M{UhQgbGcZ^SoYCDm*3X;R at X12Clxy;P at wQjV5!
zJke|X%U7tpCMgixCk7l#OY>|5e)9BI{v`>2da%v1Txjbo4I9z4dQNM%&>kIG91!-$
z&+)|wfyGD})H1JNxXdAWco-=ly`SV^`?uXHU(t<Wtp}3D_4ArUU1$ix!Y8`-0AR$Z
z$@6YIpNTnqAQ04aoi)8>sv<l??TwbBS;B|x<W!DvQj)Cb#WpJmYhNa={6JZ^7sm-Z
zOZByxv0?i%)C6YM-R6E4Ey=nccp@(^5$yZPb6u|PjY)|DuH2|-aA8Qw<-lX3Rj|Dn
z8dN)XZ;SLm6GI($#2h8RY6cH6p|rV+0Wu`fRnz^om6eXiPhhx==cbp;s?*=4TvAd$
zp#AkI@{Y1 at g&S<F<NL2WzTS$G5i*IZx59~7q+~j}>-gb*XX?3JxskZV%TS<v*uei`
z94fgTYQVXdAT9$%bVo+jaB%?igJR!L?E1P8W5#j}2Eiw_K)FZ!Y0;uD_lVk&k+RqN
zxAv2xl2V;ZZY#cpx7oTLU2YTu+v`owR^(D6b0S1+5m*5z at -NAzh0sec1C{+rFWT*L
zf@)}w{xX1fY_z0qed6~NnSXL|{Tj&jl*y1o{i&){tFQHg!MT|q{-+&EBQY+xT$)}D
z%!t}-j)bgh&gm>R(OU5QkH|T;Df|1kdsYi5WA%ku)fNi(dK?s1a5X=b%Xa(qbCv4=
z+20c)KAnYP(qJJ64BIx({2mP6i(^ggJm664Dn_X^wC6<1MAbaQgM2>EE3EjBfp1fr
zdAtbC8&1G?pu4 at y@GphxDRF-P4x_KtyP(BjXH(@~&=Mm58uV344^D!AbBO~>ucE-5
zmcMyyrvL8zz|F#sF#hTK0*{eyXh&5pv1rSg at QfcLS@0JErlAu0u1PK8_BQK5l1Bf{
zvSJ}kiQ>@5Fc#WhOU-T-10|5$II;dLKoR8Mq#35?!NT9x2DT~G`@}Z0j9=nML5ga<
zj|SzT_2!16osFt*@eGPvSLdhXe{?oeG)$$C-zNN2#9EMl*}><tiOeyrF|G&p#AN`H
z+AqitXJw<zI~=#^q>!1bJyOANu(2>ieIG7hl$dIS=u-KHCC4})@jko7LkfVoXNF>e
zh}tb%Fne58L5NAMWfV&Y at x3M8jmbuEV7UG;+_Xs&JN!r at eB$iPpFN%Vzh$|q3Bhxp
zX at Sv}yl72*>1a6`iq?X#cLP$`wVHalOP?{<Z39RF+B3Bz*PDdtDmIKrJS~{96*yk_
zIBOs62>sCdZ)Ejz!ny?3Zs2O7yQ5;BiqE?8>`e2s7e{M at OI80EcJDKv@iE@}$0YH6
zytqdBy4B3w1<*_xBxbA$MIqbV?5jgTq$?;A>L2(I_4?oDNuk~^doKvr__j0F22^K~
zAeP<zJ7c$~R;t!^I2dDAs?V><)k8CcSvNc~QSD>SJlh#yGizH at eZb<4Mpm|pn?vhH
z6&0=?*;^<wHz8HT-XP)`SojghuxaFaYyybvLF&%)J|?N_3-V?eCFs2ZILR(_Y+VO%
zd5oPh)4)kCO at Xe8pg7^)H61$onBrIQshd<%(~*F at 2MLt0xyPg14BI!JrPJ(TN$Rbh
zL|I>8fRd`jLY`K`xY6jH(heOoX-{jUtfe{)+p`gq^41fyo^dPWK!=?wllzl#xrtzk
z at SwG^1od}*J&<jU=?#A`pKO>H*Ghs3lU*^r0JZct-t#eVoOVO6#^A-~3E`%Jk7HwH
zMq*~IL{I)9J4^m*W at f6eG<bso_S{s_2amZT1v)EB+qdq~=PI&-eK%H_m_28e4L)i@
z&d^!N3MDbhH#Xr;2sCJVP%mLS{@_`etT4g~5VZri_x{l*)Tf%d{{xkfrp*#~SU_gK
z<@w9|jD)1+Ie%Yyyz=|Lu8Ov|s$Doro+apCBW-08k-q$!p^CWj<OkSP37?P?h}Y_|
z2{{5WxYI{Emi0Ti;aX&qWEGL at mTN}s_Nal}zp<sE#x}6kz;@Kxq(VTNZXAuM991U7
zrGqcA!C+f_(T`=fS)7mbejJK;{Q-ysHMBz$8yFfem!hsScge$X%<jp**7*%fKUWI~
zsrvu;HXk;8+ at EWe+|3$#5XfWHzN=u at z9B}J&FZHq8JKj(WilF4r+jbVMostTwOih{
zr+ZcJ{CiGmA3>hG3vJ8w`F@|2-9FkG-t_r{h(g78Xf-8h_D*^wZ5#m}56z`#^OeO4
zUaYL<l97|5PlCvaD`=B~FukamZ{0a}QzDjsp}N6#LI+Gj8P~=gFJf2JMO2i!c6o1(
z|7L!P2Yxr}v6#Q@`{C}GTX{4=ij}+2h<ujtS$oZ~tXWIC*jo990qm-{n02hDW;!n9
z-%lo1uf@`7p|VZ2*B`8mkKI<TSL92C*v)$@ILSUfH%Jt04c$RI_NAphO0ATM10~bL
zvGyqO=RJdaJAsGV9y_$A_Bpj4ph<-x&+zz1un4WD4TeLrX25C#?DaB}J at Z`2Yks!U
zW6#Ae{YmSsn6|q~I<$&AU7bPxqW!TEZ1)<khqsl`Rj<7d*{xcfMT8hxHh_<c4iCnE
zu<*Ku@(WE`r=mwhzZ4+8y3rx1L*%amnNu2FKmI;Qjym%TBW-d%LzQCuc}iu{&8vd;
zV~IK=yb1Nvzf!1z2|=T4KjG+~8roynSx)$RD4>B=-wvSE3cj4l>i4J9<JUU}Mc>6F
zal<0Z-T at c7*nB#vI_n$-qOi6K5XASp>?<tv&*7pY<x&Kb;+9v*t}mDK?MP^%V6TvH
z$ytJ8c+z9gDpzV(&O`n5ztCSb?j>ql-6!YjLm%IHQ+v9SdXqLxpKoy=+ialsE3=yj
zis_}JuK>y at 7SEottnK83z)N29$xx%4=G))r+Bbdv%Dw#@XPlx+W;`|5L95xxrfssK
z at qUrRCvgG%54KbU>nX*6MZ+PZq3#@qjo=n&;;3n}+5#k<jl<`yf5V?rAanSA3z7PD
zsOs_iV!j_0*FpWcE3iR>AO$u8Vf?)TW7UM3?>!Xg+8l^Y6p8FKT%pNDPeI5jHFhup
z%|LcvU1!^J83oFSz}KwdU4rPbyBXcC3~edw_0xD_bdv~RTDa-CqJdU?ryICmWDd$%
z3ptP1)h(9}qzn&g6ayff at FeYk%cgy7>b2!I{$P05msDXlQj2Y(73n?lm#@4<zYoQO
z%DcI*jot~@N3eRPix1MRrRrMGJ$0ADbxz)XXlV}8r8CKce#_;67xrkT+l6sUN^X6E
zlful@)$h8|3pfDxp01ZgKHqmARHv2aMT}0c^+Q1O<?B|UKlB1MW%PB9AKau?L%JY)
zsWG01hj{R at 4a$Cm at c6u<5*!yBmEe9*Er$4}i$LT^ztYDK!J2VZ?XmtEz at aNnXNnJ^
zD_CD_)TchDAC#40QN2CzG*aNd{}KrO&HenK(4!4QOy+sb2;tcB1Pt^{v_i~HrE{hd
zPtFI3iMa~qVI9%B5?x|EA3bwVzgC1A7{owEY3X{8BD<p7tqZ*5GDVZ|2cGyFpC9T!
zkvltkovckmVR6(}_>K%v;a(0Ka_phRmsurnW_Bd%-^?8uGLjTB>RM&S7R@}FcuMG;
zCG*r_R}gnREkn~Zb2o%$@9T$QNDq5~Z0!9ZQUros*4WIf|LoAV at 5`sbsQY9Wb{#(9
zX}m{TA#>g}1Fj4fkg(v at FAKw~*-7T>SnectGsIWi?Re71sBTS?M$iO1r>bR(qg1oQ
zIqF`)d#e;Nd!$8!A%C4955&#O0gfhs$V at L*m3ANc1LH2G-kLCAE(bOJoaTs5Dl7!l
zP*;P4qb&C&v$B<Qq(4T>y~`?pnd7u#k?b|M_m*?u5HwT9^G5*(zO-Vji6OElsc26V
zmu{72tm&7V;`&c7Ye at 6r(;qI53Le{GoyjoB!+_;JtKFU-3m^C+Q2Xe&5Jc2M<@s{2
zRVCk+dYQCHJjactvJO%j=RoH?o;c~&Fq$-jtn)iG{@I!mdn-Ht6~`W^Fyx6GKgq3u
zbC~o=y;h8H#iQ5LF5}L>j#-u8n(1Q#(r2r<>b6blJi_yX7v~d~k3GXb&3Yd{4gk@@
zU&Sib?LXv6p_P-iO0@?nuYD9(pI6~H-Cnqf{I(y0Nk6Cb9Z6?ef&{g-K42|VLHlUL
z35FWMgW>WA4xJkVZ<lIphdW(}6d8^`T6Q<I33oLCb@;)+H)jb=p9P2O73#!mMQ`4=
z7Wv8-KiamZEs;s5E<&X$ou6_^vhYK~*7t+MLXxyMo9qnJVKAxJu$RK#i7rRua}Sey
z3%W#NqKR6L9N1HvC2r*!i>%W!mMevZ6DPM{ZVQaoC6Y76(p}2LlJ4HQZ)FiGlXHEH
zLG2X^dq080-G1t$-_6_q=@{8<P_t$j|Ngm0(C-X<LwTf>MhOf^NNT<C!faTEKfxNA
z at bTR_!&u%B&2X^osa=}y;k8hCR%P|_^7bZU!yjfIBr%y;w_AZDxP!B$2Tv at MrHmJ#
z;oIM_ZRj`KM8Ot0Y-8wnv<zk&fu#a58pSQ{OIkg`q_vF^<m&pY*~>W-5&|vorD_M&
zm3R{)%06zE*7v_<n|c91%ca6B;rF6r-2FP2o<-D&E$lN*uwWe`FxXEUx8Z`UB|G;e
ze_jsq58UFiZ92Lg_BU#xLMl6({quV at tWMF)?k_Qi|BmrZaTygNI6}Asfd2bj&EsKQ
zr597j)a~AntQtr&)@U0 at yta@#h+KtzS*tmgsiV*h(Qsg02~gyBp4yMKBu0WB`pK+R
z-GEw{8wQ$Rce#<EC(POycrd;=re&j}gg`vuRsIo2HAZ!t@^;Z(28a6ziB93_i9${y
zztLyJxAFTsNIYn{CfVqwwbJ?bASqcI6KS=o3{i5m(HibhOhKjSr4FjTIGG4#zW>Q(
zd^*!|I(p>f_(UYHu&s=+Y4hNxXyBoaJsRcVEDUkfRaK%lygyDcaEMNf7{zSc1|!W`
zcgZyJ?y~o?2KFg9Z4q2;n9)J5kXJX=mCWU2TIUty!n4DzO4I%>FbKN_^ZcleF;)6Q
znZ_Q$okNii$uBs4cGZ6lNqNadVD_oQc>W;>qxYrr?5OPu?Em>4xL8V;J3`mux>fJu
S9$oyI0D9VncWN{pBmW0TFKp8Q

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/images/icon-gentoo.png b/ui/new-ui-samples/images/icon-gentoo.png
new file mode 100644
index 0000000000000000000000000000000000000000..50d928fbfa30560fe873cf3de438a8f0c10a8f96
GIT binary patch
literal 15307
zcmV;+J2b?JP)<h;3K|Lk000e1NJLTq004jh004jp1^@s6!#-il00006VoOIv0RI60
z0RN!9r;`8x010qNS#tmY4#NNd4#NS*Z>VGd000McNliru-3uHIHU<90ip~H4AOJ~3
zK~#9!?Y(!HWLJ6T|2gNz%ALEXyQgPHqfrJ4fh3R+AhPZC+K<Do?Z^IMOmYC5j7{*8
z!5F+?ytYXO2X?VY0)d1C5?}*X0%eUfGa60qo}P}CZanAw{;2An>guYV9!V1bo#(lI
zL*1&by6^YA`F)Qt#t5DmKexmFss9BA5Fmsw>$?33z^@qMr|^LoAq2)4zJKHPV!fvG
z8io+^QmuKC)@(Ie3;-p8Fh+=~6ymUuJS?TSUnzZyZCgitUsRs=;;ogRcToJ)0ATh=
znfvZK<iv@(FsP?*ier8=iX}=}Xd^K+HV|M0AVIA7r3gR at gC)VX44!AOEIy-2KGfe=
zc;w2fHl$!Z0f5uy%Qe~h_1E0_`dUrDGYqXvYHV9+8`C7Zv}~kwK!^tM5eRW~FN8!|
z&HF3~fQlpHC_w8JDZsWgj%5<xH#3%_|M-`Gb=x(@7+49RCjf9V3IFYH-tnUHg85hw
z*;|v;v6ZngSYRZ=vXRopvTTH~5W+%Q65qFQ9f4&D3<9kUNur4&O&lwX(M_cRgk|A4
zHqy38qlhT1Auu?W!L?P8$#9>W(XV*%FK)g2XIVs?P5>}M2)_BHTmQ0Bldp^uXDrbU
z#yB8sq~%~)F4A%-7F-6097;tC#}QbzKnl>hZ8Kn+$4Wtx8sgXx)KeB06RNcsgFy<g
zYzJvc(j+2{L!{8Sj=^{Jo=jH!!!P{urVsrr>I<g at 0E7_c+ArSn)_P#QEr^_~G9KU{
zEC<W-a2%iEVV{u=4!u1R*M(GpRx63E^-+Rr4a%%MU)qdmY$}CnEu~UPD3?RDHb_fi
zSr*1<(j)|}aBNM+H<6#=V<QvJJD+;dhTvxf2&WVP4Z{D|Z-$}xw_4!33Lk`vB|U7{
zr&P)@G2yXkv&69>O*<1)H3_d;uj`}Nbr%pUAJf<`EW}hQ3H5pm7%baHU`W#ljKY?R
zY}SzR#e4floWH*8(vfnKXkpvp2>`5j#8HChyXLyD{BT<sitDO1=gd_57~x~t9<G;T
zpg+gi=Xh+~2uX63Sgk}`p5+>hI?4f-LD0NrRD%<A1VJ13(7N#*!%#Cj7ZTKCwAM(=
zLI_Z41V-anid at FvXT@uWHu#@->Qe_orL>SzJOO}Xji20pk38^5<=yqV{njw?(PWU8
zhv(-hl?puNVwVjYFc`!Vt8OR!(yVV40j;yW{WWclo~tfgpj~&Mxu2d62!aHqQiPNU
z2`Y(^LStK+Le7xM$zR*NIe+c8vkU480IV^-`lXu+Ci3 at H1FxiX1|u`LUY0_k#05{v
zuyre at i?>g#B3A3HS1Yfpc7nIu+YW?oAZX<}#=!J+NDxFQt+0duDNt#I6b8 at M6be)d
zz0O6KUq0~2Pm at SE;Q-KDV_BB@`qkfkU9IN*O%(fRkwMxSa`_%MY$$Ts(}l6u<CJa!
zVFkhUN)RlGge4HHxURc!4%0=UY*j3q|95saAPgI#LCA(j5}jaK2G3EHO5)xZ|I+A_
ze_E8p6AFOYBMS at +^_pw`-}in{t9e(%I*S$=JU35I?*LD`#9?>@bKD<n5bcCt0Rq)R
zaMeL1w7;*Lve+hmOjBWuW6kVrog`Hltq{^e>jWuGLs9f~+|z5l<GC*w`B1f*id at e6
z`2)bdM-GX5?zyiRSN*$dfj^O&EXWMGd at rM;Jv{9aX?*`NIu3LL2<;$f1wyMBP`ZO?
z=%7e;wHTUar7?};AV`^?570(8olIa%iY*MTqbTIrIWXk@;$_bm*mb&cgcBAGy!Xf3
z&y7O=mRgX_DUm^1If^|4oOM>7^DlT5v%V90CB|xcewAu9FOQxJv5I?ibnq%b>Z32W
zZkXn=ZiE<&24NtRvGLpji{*%VJwh9e5Dv;H!dQ|n>TOXJ at BGg7Q|}W(y#2KFx;~y?
z${2$X!hGXP-?=0V+}rA57A3OSPJzC at A<lo2$L7tC5AnO{2CZ8=S6Jo*s<ZCUNm=a1
z1(xokDJG&=vrrCDu|gTu2vHk_B at M2vDHhpZ>~*es<}>>rKAlX)#|;3+7^IZuYgd2!
z;y84FT#s at nlfm&y3=R(Rl#5-4hED+T+eE?&J)n)~t=CL*uT&S)vCY at 8%>MOiAS_u5
z7+5Gr1VN0^8bd=gSORRR$YnK!qV=-py>RHCYPD2kv)0cJ0E7_c>sNp0$x-0k9mF|O
zGPrJ$p^*_Txzwho=fo1flU|@y!`-Xe6-3otKWNnlRydWGh)<g%$sAP<k6H_c`T06Z
zYqU}rG*TF(G<a4 at Z?C*#cr0`Ilb>8je`Wx1-B)kAAgnp})WR%^EVf%<c*6!RyVRyw
zIyuBYYI`D<h~5f-t{`Z$9+pKxo29Vq7w8ahY6Za3d8HB&h6&nev{ncVmNeLwqL4GD
zXTW*NGoRUa&#44}e5 at Z(DOb7fYv0`%2i86H$VZdKvU3a%k8sH)r-1m4Uu7%_mets#
z1(pQaVH54wMDw~h`g+svgA|S9<xRGow{Ac_ at 6l7rB89}VY(SD~L85FHE0&l(l-%{*
zn`S;IgfK~>fBHCpQX1Q~%-6nf^FpPTDJfF`nPF&ToJ%itO<(^h=5Gd(rfoC6Im?%>
z>ki^!`C11TvT2JQn6?OGyKX>Jl$0w0X`+_7fs|kgjb|&0MIIhI%Q=5TZ$9oHaDI9?
zfNfjm+N*EAvsQCU+GIg^^bd at 1;f1FG at c{&8i3==kOEZ3%JIIwYe#Pu>;Q}i-0G&Ak
zOQvJXebD%fQZYj|>mh{1k~Ufkl$L~v&HSR+y7z&2=DvFuE?aMM>uCXi>%V&QKL&OC
zB4x4|;ZrE}bLO at z8%9qfJGUtgWDDV2iM{65B&6ghAi5H}g9vB`LdJI}6|zX#%sD`!
zj3iEN7AsbMao+sbcWylV>XQkAM+E>Ogt_sX-+ywwDqa<<42BGzUu5G%FK3@~3S|DV
zzOU8f1T7%ws1JzMx<RX~Z`U1`a!^GlPSASZvbP;cPbrIS*+|()XVXTIYMV;kVsSxy
z{Ko4KfA(a7;J9^wG*$fQ`?qB(b78Gq&5)Wr(k?JIKE`Fwu*qajKL9N01FbrMN*h^4
zY1-XVXx9tY+B!LkTCIcD(6*tmuht at xIBA5RjY0^pq{g*VN<HQg$4}3{>N%qUConnn
zxH*91*e0k&pQ;BA+IR at zQR?Yu+qTn__`2a25ZZvWFpi7yGniZfQ|iI=4`52Y;JQaS
zL#qz3N*@sG-=thA3YL7!ONaTaM<(kdg+NFfV;Xuvl-SJA%Pn!;t>5tN14D4)p6hXO
z0HrkFz3~T^))v$)^)QbjkLUHW?VJ%Vy7=@Vev%++HAoY%ZE(HDj0*yY!p5=VKqd>>
zEZFwZ at 17)x>BA7m>+=tEOffS at Q_Wg~N3EOyjvlAVP^s3NRzt(TETzGg38ex^KY8+V
zpEG=)<H%FX0c_hcX{f#!B`z8dAwBx~``CKs=|OmvA`Tx$OihCCL;nD#rx%mWVsbf*
z$U`Whs$r%M`={WcU9fW}V)`&bD}>`<#>O!dn=qc&BKwzgfi8+4on$^O=d9KfmRNyh
z35reSP>6<tp|v2 at 4vQ5*T66BX`Fm5paY{Kr9L0R^+dq0)P%)pXM|m`P{OkZ1TrkMl
z=bif5A4iD&2f%Y-Y#h at X1-#>K#E<Vh%#rCC3VDZO-owviDHc5jhYPqFflwd~^b}yj
z2-t4pHw6Lg-E%Y}Nv($qw0H|wae)^9z$(2!L$w~FlxifJ7=x6$kz<h2Wb^7RFL>d|
zhqTs02yt=&AcQd2efg%TTGbtnbrB=;jE-*PvS&DCbEg&n#=t`lA+&;X&u7ICx_dj~
z>aW~KrBcSVHJOadV!2Eqo1q>Al!`^hh6fni*vHUF54HoAg5d!eY9^~_4SOCzgyAtj
zU{(i<+8soll))8%0BW^}G)<ciRX5Ao6ggj$DX4e9 at P)(wD~^?TJVe5}@&RhqI^VqJ
z+b>t47}j`zjqCah4V`-80~|Vtn4N*GTUV;f`zPT){&PRo>H_(!<h*UeNU5k+Ep%#O
z$Z+sTg`eDWKfCw!ko6qSJZlpZTLw`_Y|3TC<})z14QFh{?Ae2;R+^$fbr1!nQI@!D
z`-`IhU2)FQJcDHri=)?aIgfe(Nun at DqKyF!wGe>6yy07irR!Snh at w=uu65#dfP5im
zY+=16O>K;^K{^x*J&cW?7Fs at 2hoM@7$-_reyS0W-er~5wNu4vsi)`E6gI0CosEj2O
zq^KZ>I6QTTfdP*&nnw^ZH8sf>ufB=<cOGQ14i9ce#8KljH*dydvmIgrZ4Mw>0nlmz
zw21!ptdkY at 1KEs+>)6Y6j at n3+wyB2}Va<B`4c|Ka0nf9IQu at RL;M0Hq&v}({rZx^n
zG)lBeJy{B+Q$PE)Zpi5{gaiBG2R}gU+mDzn8zDtNJ}>b-O&l$vk_t(*ND?ie)FQT3
z;o|dq at kE*Px0OhAh4TCYy*a at hw>-cj`;QPN at Zf`um;%6-Eg05e0<z>PX0>Oq)f8;S
zhF~S9$Yxwz$7w2u0%HWJu^J$#+kbxJ4Tt}?ZCmDq17O334WBexg0MkYIF3tCPs6iz
zn%MfJsUnUw^Yd{3eelqIf-|;kK&2sZP(>#}qY7BY=(LPcRnlkyla?u!B)fO)VB>HG
zDa*_)Ea1BVKlt7c33Wmc!mb at n+DJI#jE0ig&GWZJ>=jl(3$<k at 4$#3*V1R7K!LjXS
z>%bUEsx9iFB&^x5z2Sz#fBRVc1ji)d?LWF*danD6##jj9AT1l$^C=cNEsCd?%rs*R
zN@<cr6UUl*4bIv;NEpQk5faqqsMjW`*QPLP4wEjBMl+=G3=Rtv3W_6Bd)Uw~fEuo?
zIcwVxxBcKJ2nS|o6OJ5i{Nil(XiR})iGnt<Aev8o6$cQj#lsQ^G8qS_MI0E8f*`8f
zuld#ulkYw;05A|G%0kGzv>j~Q!j`h(xjIeK8!fBh=n+DYDov^sNur3Nl(43`{PL$_
z+bKe%O(%=Os05=UAVv}sh4bY6gs?tO5|=q^OP0gaQ#`z54}16TWBc}pFr at 5#L}40z
zCfKyO$pu&g2&}$N8^>q`$qJyf>ITg~l5JTHPJn1~0-GR|sL+4Mb>BMpKORl|Kprcc
zTA!cWBrL~rTo2o|acqgvDYe>(bWk4O7#Rk~wJ^q at wI)q9ahwtcF(xsDp~i6}X`&Fc
zsM{D2reS7 at 1dD(l-?I~)ED{C_<T9F}fdX5$odG7LyjW*`wke<6l|fds^iE2l=%ygH
zDTAv30c5i-mL-=#pp78WHuX>-)9e?%dHsRo4kycF*#1;&)hkjY!m;pt2iLVQMlm;M
zh@#V at gU0wcrch|;BuXjLrYHzPMQt%6NhOx!5Jhq0iMRS=G0kh5dYp2>)*^?eXUX`A
zAXsE_axa(&twNHd&g>D>8fsoG`#Z?}_Rw%^h`5s|Xcq&m;vtuHu`IEI6C}!_T9-H`
zd&~7V9^AGtZyrA#AgtGOcieIhF*Z)t!_7Llj$vWG!v4KYu6l}xl(2Cea(NFh7-LAa
zA&L!)i!tY&dl3r at bsWb*iUu1MLeS_V(g3>B3eOj$N}$3TLWkH^%s|Ouadr}w1gJEj
zTuD|deWEiEIuUS{;@8FvR@~pgL<GoXJY*9D#s~}+sghJ`5?g2PxbcS%WR||?V|D}u
zLHOY0)I8Rm_jB15S0S7f&yqwz!h!t}8Q&A56DwV>r(&FWCT4CP5k(&LdWbQm5dew|
zLS)&p<wEYi at 8)WyJom8Ym<7+by<EoWvn)Ao+cGPKz;i6-=NCwYjYZ1h;v!D$kn>WK
zI;5#X9IF)yXeaY;iI~!WZaRn%O$U%^QSoUx7A==di^E8?IgXmoIpetmVchgWHbR|g
z3bh)=f#T?Yl#1 at t*5l>1*LJZQ at wrcY_J@L$1N-+7-t=vxo#O>Bd_I<?h=PEJAC_q2
zi17)GIK^h+MHfO8+DuM)1VMn-rtyFRjqi@}yyw5--e+8yd7kfxp!I#f^V at ISIy{j5
zaDT6VRk=D_3bl*SHobYxS?6uQBoR at d2$RN)Tk`I~Y9oHxgj;G<rdx>E^b{^joi>Gg
zX{NUld<g_Bc^R8~+ZOnqO&FzU-T1Gm0g*sZ=c(VhdFFFMh~GaJ2#y&GxcXneVBLHF
zBa70?WUKW8sjxX?%NbnujLR^wA_^47IE;^ZY}tA=h;ph%5WpRGAf~5ND%EO3RvLvA
z;MkgcR*)~*e^M+tpSt+sOxhmrc*P(5#UIzB=<kF<^cQ at 7`B#65@|;JIWI*J&@S+LM
zf3h%91dr@)B$>2#Cs`37VrAm!T8Sd9A!5 at 4fK~gJ;~+{&6Wyp*7GMd5V=D?dO={IH
z{KXfI-TRn>L2rHIyT4xx^p%d?!$L(eIzB*}W_i&szZl<kN$N34Vki|eY(4|}22L#q
z(iHBz6EQVqm|v(Y^I5GEEWmLzzDJtNTR+lL{ppKeICOXWXZ-GOzvlK!o_fX8#x`6)
zJ+jcoqo;R>=RQA2p at 7-BqfvX%UQE(4Lb#qRp?1QrgZN9w<yxbSO5;9-V<|jGQ!Ei>
zOR9Lu#XU*4QnYme;BVglk+DNl)%{88GB7wyoLG!*9OHrQlbnCy#cbO)LEg_1)nbIO
z7#VSx*aY4w%n&jL4je%2*a7nk3H5r===mcc2?GoYOM+t?EU9DLGG*H)5a={X5-&}3
zU!3A6X~P4W&-e1wOY&^l0+WZJR_l-`(y0ZF>9B8Fpt=J9mc>gO2$pwk#D~V`RBLhb
zGa4ae$5LcGO`+F(_u0?td2Tm4uL}S|2=gbe`t$vspBt~#HNM}=hT&nN1S&O&kv?0u
zO>p_spG;Uzi6f2gIgE`7Mn=JQP8|^97<TVQ?B5TSYDy5q2q~}}8>19S9HNpKV-z&H
z3pO8W<4Ie#$KX&eXP at OTz7ZDY8^mudM(vs_*ji5BDKm(+<4z!G;{vTfXbmU^p(ak!
z<ri(Ka2-uPr}6UY;w!J{z3VaM1HAS1fB6qnGxb-+8idG`q&B&Ho=m1dF5g2GSqR7D
z>Cd>3GdGVCRTU~RWV06I<AQ-9u<TO at geZckDa3&TP%dkNK#?fjGz1$@+h~JI8|>7v
zE%F7I;bE5z8z7T`FgV(&tUY<OQ?m)v-fg5qjzGu6kWL_2OAIv6D>a2u4Io>>VA~4c
zH57Zz{Ii}_?CV79bpznfU;n{Oy}nRes79Q7&IE-*fx|P3!$%@4D?_nRL<-4#EoF3U
zf at eJAB6^EC;+i5&p^%e|jS2b(FqXq99n~sgZVt+2s8kzyf@#{2p|%YfUr;DOq0k__
zU?t((%gj}W-bJRpccJN=8PqXDs6`K0#roT3ek%~-*bqjI>LW>`1+HsraygBgO<wt|
zEBijxPVeK&2ztY-|KjsAbG6^uG%-RpE6HWEI9{HGs>{Kt8o6vgy`?<$Bn9CyGCayz
z=WU^w$q)w`l|Vix86AcGL5zKhfzbN%lBAIyu64u1x71#yy|k<o at s~=?+u8rBV$xP6
zusuVlP5En|{jHA6b{(MABCXamsctk(kWyjWnv8467Si&wpIs`o(|g^PyVhD{yq-VF
zXFX=-YD`a8IdE`}IIL65M4W$SmXRUN)a(={Rd_;E4;Ogoz8&0g$NeZL#V<;N#IR$R
z=B_&thxQ|q__S~*8^^);ej`0xwr29Q*!ipC`g9KXESHZR<Mp+ohil%uMh=4ON-Vk5
zFk6C=Xe~iG#T#y(e8r;{0ZR|+ZEt+{uT4#tzdSNHfJ&<Dn~r$e#iRIM5h+~|4o0}_
zJ`j at 277*IT&u8c@^#eBNJZUQ#&qYOsG%`4jWMl+JHh|}!;_y<lm{jYdEPqvTX%{hI
z%xW%R*61%p7Zb3X^4Codpe-h+6$Bwozd*wxaBV}z*Vvipj%Q!lb4e at Bj|%`xT|oZ$
z<!^b1u>E)Ed<$V>GWiViwV2Ht25{^gwwFN&7o`Q0vnkTfVhIN+Yzp}zem2LJGdI%P
zmq!JVMg~g?`UhZa6taa=1cYYwkW!7RA=L(guDt}-vI5p=26CJZAl3ju7`7^s4FLGQ
z!po*S^NO5!)BtG42FPYJ<`uvHroTbhuX9{YZy`%hDMK}gNVP#~hiooSZ~q9=a!3+b
ztZ8Nz6Z(7lK?|gCDD{;XpBQCq;{a&@Ndyu at Z;xPf42nG`83-)^=(@Fb7i&3Rv*D!a
zP#{7VMeuk5&;bN#dQ^NV1-1pgr}1-!#qxodz32s-KKrNv&<cWAzU(cponNf}?}33L
zLp?cqOF1f)8c~v<jbw45PH$fy{evUq^L?Zm7Ai5*a}kAnFTUfE#L&}MWOU;Owrm|m
z#}J1gwV_xNjEzE1Z*wt_Qw)H0bAWd3->kL-+HL=10ic`x-wpzROs-KMk;}v6!G<ry
z_rcFW7#z9z%4ZHdf5|iWm>NU~A<QdY`sQC)tku6UJk&4y3NE><N4*xHQ$;qPVScg3
z!hDrtsh7TiVS0N9u^o>ib9Ls*DVF7t_X}t($>g$ZI%AxPO`}L5Na~Gr=u#61rQSwb
z+=&LjvJS8$3Oe-^I*vw at -O9r{)&{f#z^wFcE(L^E0isDo--A*K`UhZW5VLo0qtwkv
zuxv=<#a)*_qqJ>VKYgq{f({=k^YM at TUC-Wwv)}ey`>B0JmqIo}oWvxFCZF at k<$Mkw
zS)f{tv2B<Bff0K82gzh|lxr!64p(vP3|YT`C2btnXUmxrjE)cC*fvS6 at ymOAV0;1!
z#S;Vqv$D(B3fsRG2xfKT$rXhntsTX>5q`Zffc1!gmiLa0!{8wF^)+sroJ1U)1YFRm
zAt=ure9p6n#+T^+xHO46bnq}^<0Iw|Ui#+OXrunB;LD6HG=)+gZ6Hkr#hgn%pJ8sH
z#==4!gH1kPWO!sFekMnv1iSXklF63H`Z+9NlgSm>Fh0WA#z9=^5Z4U?!Pc!XyrDBE
zJkbC+o>sFRBY|xSAnkF0E*`*k=TC=2dVArFGoa9-L{HBm4jl$<L2aha%;e64zxJCK
zJ-z^F7Yi?Y>07>+&x&VN7G}iI&>-1D2CW74dO}a$BVWi6Mw*$~GEoGcmtk~#Gnq^d
zBWxbpeS}hR2-~)?Etj62e)7c}ThH2vNG<AR#WSw3 at ck1DfQ~vqn-ZuytT|wgLjgP<
z?SC!VFC|>`6v*dS-m-rhF*64<(=loF2$lH*2mj~qK7APgk9(`w<_BN(rq{l^=;a3Q
zs0H;igRsuvU_XVTO%Nw6P6p&M4jV^%NHrXpsj_?L{dj(c(Xq{(b4DKq#jd?`6pQ^#
zA2~=67pa%4_;!Yko5t~d>y(&^t8)H3<n}F<hne;y53 at 1@NF0lWwaR<3GFxbw_RatG
zl&3(htxQiFDA%AiZ<w1|U~zUDPn6ALaReRL*!kci{N2Ytw^^z5mSRp1S(YH1%MztY
zvonXrvnBogy(ndvnX9t65R%L18Q*vYo}VL1G``b|@0Ktk%iz!`&wo*NeeLBRgB8$G
z_P6- at mFnIfU|q$bU0lCwg?&wzu=jcA9hLd5V{!qp>wd-lLkrw{?_E^ON4WIK#r^-^
z%YJEMiS8%VxY~Bk7C!cW-nHldeB%AXmB4*crDp9>sm3;fjBDX}g47r$r)Qa)Utq95
z%a$$u7#;G!eRrbM8e;=vWV{|U8F~kXdEN_75b=*G+E%83wb%Qtn6+)LUDn~wmF;~8
zTbfjf)_#U9Jqt0gX;Ww7M=4_WgNj|d5ApCL2biCq!*vqswQ$9~C*@H#(RRNOV#}*u
z{<cdCdHbWiMf({U$3j_}R4bBHbNI*tj%_hCnB%Oo&Ze*DOlqNvHa`7>!#w{51>?9U
zFQKHX3}_Pv%Q=4?DumlBgS)YL(}nG~R}n9X6Jua>6gF<`tQOq=0PNa*gq at E}GIMx8
zmIxW>vso-xLeui&PU>7T#)!Rp58l3c^Z4a2`Moz?JUU!>S1x1!x18^gq$!C~#A!-4
zKSFQMIn+W2WqgK)hI#Jui^lU$JkgC=hfEfoaj_!Nca3{n3AL;e98F7T#BfZLJ)4FN
zzar{qU|;~YoY7f@*s%+7$L;&L^WOXLT#NJ09$?3g9ptmUR2PDql+wa#7IvO=X1Zz9
z7{(ZJ<jCBeLqq+){5!w-+Og5G(%<!!ykE_ at HWTCLQpj(k-X#9W=m=L`l{c<;QeDCw
zxj>8lwjvvN1qWzX_*fmXUGaG>C=g<0*6<20(DL3=sgVZX>8n4o4{`I&ySe-R2PqbO
zCN{V{v~w3i*Gba?N}11EEmggz&BBrAZF`>e`q%yG;bLK9f0%d}<1w~z1JAzdB*}b(
zXkB8atGTC-y~vbqi~8wq?%qdX?qzdu?zx?bf8Y?}x^L~}CwD(UU$4)m4OtFNPxHvG
z?VPc31Hujtyz^bJ+Sp2So6}$z6N&4ux%ak8S at wsCj}ac5w~TY;v)z+gaALa5)b-kj
z%cftG3rMqi2AfWz;~3`N(v6u6oYRH)lhcTA-+X{O?|p!gp)7+v4m);DGCjSA4gE!I
z&m|1Y|NN*kf==Y@|K^wPm?>B6{zSPTGn{qy1eZQtp4 at 7qHYZRgkKgeoe$ohK9MkF3
z&CAz1as at cE%d&b?(}?T7wU0aQdVnn(dr5;ucI`Pttv<_!{tP2S15C|KS3dgD*A(07
zeJVMC`Pwx<=>Pf`@7TXsb~1 at _v79^?J!O>hpCrx6=R(KO{yPYB(Wb$-%l}Tgz$)#3
zN#?g{`K_a;2PP&u6aVlu;+n7T=H3T(aKTx_?A at PH^~nGL8%#+=K~%GsAPK3}ry1$b
zGT4`6c5ab0uK(_1N(z0vXZ>|wyY;zoXn&_xcSNFHT(8J8E+1j at 7IE@Dd~NFyu37EV
zVL|FOJArkP`R!oq=HwX~g5fSp?Hrs$eC2BovupQm&OLLG2OoSGFAG`+q~Rh1J$dT2
z8gXi_{_x+t`hRw!wLH1A%ruFA+Z&>~eN(mOibQ#2bNxK`c^gg*@!L$mV{rn}%|XQa
za`$9=E7`Vo^s=S5(AXHJ8}aw-M_m2oUF_Sxk8PX#xc`Bj6nkwZHuhqhkWJ&m#9^I8
z8HW13mrfo!(s82OCzJS6N^{*cw|}Nywf-Os9a21c`-gbWb4n*a`=^y|ZS4YDO|w?n
z-OczHq75|d9l at 50JY`#az_ciPEgr_Dux_c;`3pa|(}*u$^8j&NX2Vd9?GHW7=va=S
zfgDE;A7bO!0CUqvh at yy0#y;y!Z+&^an_hd;M8FrW`Kl<1jki|I*3-ho#R#9_kzt<m
z+&rFl3X?&X)+JWm3p`h``Y!7WubcI+q3j6(;~OEH?O+KSxa*!&eCexqQtEL at qbgI=
zhZx(CqrW#pr96vcL1kf)xw$fyE8hIU554xU*D`8O1^~=;-?+6`r1pVw*~-SLi;+H?
zHjnbGXZxqTuR!ZEw5=d8W_<uyI$t7??xgK^5i9K!ma@@{u#?{-Rq&%*Lh<!)+`*aK
zMmVr<KXJUk&_I at +qDvIalO!?qN`=Z|Kq}L(eE1`8`1ND8l|9iSz+8XrZJS8!Jqs0!
zRQU+Y=bUrLx#Uv&)OQ$aI)7Ho*ki>4Sjnna9k=`NMcaE?DBnsJ+lI|sI`f4nMttX{
zGB<tyE-t+A3?6u32N^G9sJ}?YH$?RrqA((gB7$l}V$}CP@{u?E`eSYo at mR<8*WUJQ
z6<Ob_RBaONW7!!le(E^qo-a?2_EM&Ec5ZvE{(3>M%E{j$P|ztbl*z(|4V{U<P)2<1
z>yzB~;BL-6XPgHg+(|wYFf>rW5)rk^G;y4O5`@)&Sfx8Z^3m5nXT6;LgaAMYVQ%=w
zZLf~%*2n9CL#jO-FVE$dkFx0$YWnT7pDwa{6)BDZf+etY<FulSeUE{G!A66tZf4%q
zU*5stnHhR}JoX<vKwnAG*Hc93h}oF~s5D06Q>#^pm0B3tlsPX9<8=$x#}xotYb?t$
zH+=K9zpgFHH#S1K9+_;3XFh9~4Wp;eq7vQGvX@=Lrn_Ihb>=TSbvl8d&G#$Xh(9vc
zSd*aB*!~dWi(k2$`NhNJvssJ at 819o~Gae=hIC6MDQC!EdvIJ2LrB&=?%=qj6>{aS`
zp2On?fG~*2WPS6kYj6L@>VkY#5H*&R$rbx})|CSc4xdKL$uyficFM^=mUE_){lB7@
zPX|ALdpzH^V0fglkku+>FNGi8S{K(|cNbwaM<HLNr`MvC6G%dIROiU_LBhC(#3zXp
zluoNy@!-4P^Tz0SAI0MWfNCY6P|TWdef_piR~N<0!q`C>k7CaNS6<mi|KRCGe4{&8
z=XR3)W*y&Lh?VADtFk9sroI9E3=DR89+fKM`WvVD-hbYMlp)1pp0N?1tPgRxK$6s%
zn>kFXLeMTCNOg4N;rRm_KL3diJ*tL%_Tw at 03&pIt{%g1WOLbBHUJ$z&e0qBOdFGXU
zr at UWKH+O!gx;)xgKkFp^GVAZA{57wYicl<e59MBS?Ze!^{b6h;C7<&+W1 at sDBdV1d
zOd7H{H-{#{wX>+ykg90^dp`JQ6Z3P6kJ^}iOaRbYH`)GeU#c#MUk?)pgHN${fM;IW
zd- at SyH=I7J8a2>a6dWTt=%_bObf*2Xejs3IxHHRF3hsSCi?3dL7t_--*tTL~yqErx
zi_ul8<#}`xQeIrd2t^@ZA`TS^)&1}Kz at JVWIWi}DdW)PA09ck~Zv5tL*Ouq`Z;d1l
zpF*jRD=t5MiLbj<<#tWb=r-$H+5H-Mf40+|<<|rF(XEmA#<y-qsSvHJJmtc3uuPpO
zEE7i+(x^_YT1QAI6?;g+lrXODc;|axb9PV<g`atBsZx*06ZoC$Z~szdo?oj+9tNLm
zzL%#zeUQ<Or!Vo_OSM;I?C8!FJDqCxkEJ6R1H}?1m+Soc{zHgw-FSdI at 7{@!DSf>b
zTQ?7(lL}hJ)a&!a)e2#h0E%KMi%wy&JoCffc*%di^89UE9v_qa(EvaQVQ#$s*8f$T
z=biP)LmLl2)5}vX9_EZQPkqPGc0WJ5nV8X`PJh*=yO at Y{-**}V0~o85OIIWAx=ZoZ
zYwu)!p+XSO^R%aICFdKGxPm1V)ygajb92oVO=Eg{vsl7reqrX5 at BYB+U-fvp?~fY*
zLI`u?b+=p<R=K%WcS*I6;}$vZ{87$5Pn_~jq3y))R-B>N=+(DM7g#6ZjcJr&m%2nY
z=NAz-+&IY(ZrzDeF|L<z;dvV|X$?byG%=O(4AWCHC<Sp`rLQ-K=Xq4B<=4LF18?})
z;~l#>E*+p!4!G%t|2i|Ob8`?lDD5Jx44XC$vw8DrLj0zOZ<&?rmb9#6wP<Pg0hnWZ
z|5`_>r_pC<l>{>I at FR#XedS*E95{kj0h>4VFflqp999rQg9 at 3MndHdy0vJK9Hb-x7
z79j=Y%Hn^2?+4#_?THB7ts4Mg5b?uXe`JX$cWbR8NwovAk+Z*PvrVCR8qNA9;g>8r
z)1f-I{d|Ro(5%l2Tmph^H;6Agh`wqKam#HruD$-p)aoI=uejhz8}Xf#II18>&`FKS
zLkF2(2(YA}TAQI*@Nr!ys at JPeegB8va{q~n+OAt#XR^Mr;_R1#3Vn%oFu3INJ&bS6
z(AU>Yg4E3x{N^Nf{#yEfx+SdJVG+mn(rn$0)wlZq%u0f{|FCQhdiz!rUz<jb{ujS|
zkbl4Chg7Ny3=cb8`jiP=E5N7-qv|Bl9FIJ*m-)pA&$Wr81&Re9-}m;_YxUCm{_4#S
zoXC*<x;enL*L?T4lZao5m4h)Zj+0 at -Xdi=vAgx9mU6`Y3Pl(3qEKOVZaWCU;b-|ir
zHC|k+CCjn;@pf<k2pX~bzP`>-uSbZx at 78?#yZ5kX-z1Kea>->|@kBxzSHZ+2X_X|Z
zv1jirMjP^3mnd8yoAt0AdB?lo|N2WRmD&lPNb3TC5W?K>^&ftsT9qi{f^;eM^wHZZ
z$YdMcv|0-r&FTe}1zqgquHfj#Mb>Dq-ifelDt5=ynso&?TwRL2^!`2j5qI6S$ajBq
z7nQ|DHjeeMb;|%rR6$#y(h8W6YPrn5{bd{*iUpTAu3=jeZPLGe?+4!eXD2IDYh6~r
zb=Q9XS`)gzRF6DTmBsN2Ol%rs>zS~$!gjaB$BxyqodPOdT(%s;1Y65aH(j!G*42-%
z!?~0VcHilHR|CX-_Zt4=hxf2+?_qQjaLLmevtE;;bx0aju<e8c2j-cXsglh)WPHFR
zD3uTf_2+*0qi_4JG3Iew9QrW<K&6TsZ at N|5v54wb%L>yB8lRrt5hf-IjE%RIHnYaE
z>TLixp5M2M=<P)7)@5U@>ua(7HYIS$snaQRYe4LL81B1&jyvw&#i2t}Y}-1-*l+=r
z)Dc3FBsI_hQp7y4eTtwSQ7m~_BEfMi;;0^{X|nkvAA9 at c$xhQ>697U8^OdW=bxp>~
z|4Kc~kf;ononvr#jI+<SaNVP<U#@fQyjDN at v4GIcEL$=Ap>t#9E;)I}(|OaF28YWR
zI&1hd^N1ZgQht2bZtj0 at ACiP8UoeUzQiM>AS)bIgWX$4Xne7iwVo5>P7g$z`@419g
z__ch&|Mhph=XIxK`K_)xK$<GP at XufAEfq_@QZEZIR%6*%*T?rQtft~8m;B+f%Nn`e
zW`A2sb$ebNqC=~+#_Dc}hLwkCmR>DKV)W7Tc0#wa{8gapVB!@^7`H<|f+$7o+-cac
zbAj7`vYo at zb8Oo>z}Rq}I1WIhq-h<aB5WD6W9NSM?wh5M^KdNH{CtO6z4p3~{oOl0
zTCWGEEH$<(0363QSAYKNmzxxfmKb3pu&^DMY_>^!K*^&kWOZcyodD1lDO)kk#Txp+
z(#qh?KSp#>;PlZ%jP<r!Z~aGpc6GC*rS~10LOk?f%>57U=AQd at QY`vhaoJ`}8W2TQ
z1QA-r2on)TW$yUNLsTm<eWg6E8)G{HgPgC|t1teCPrmoIQ(c?6rWN3M&WE%~5yC?V
zi4-=Lw8`b0?NM7-#p==xdrdB2IyhF$+M=MNOSThh*Xx+=Z6anZht6UR@!)pNp1rf&
ze#gDk!hk1Tu#rMm5JeSS+n~}AL<*+P<m4p(b;|?fvv~#w3OIISmCYoPcl`Z7UU126
zw{DSt|B3gU`qKPv2z<{Q-j;d#^Iud$Wr#zMIQ22YCztQ%yeH)vHh(+YmtEG(T|)sp
zUS-#GAY9j4JF~`nR<nED4zBD-A$ILFJn~45oe%G4 at 7{g%_2<~Uv6ou4jOR&I8X$$i
zsDL!7@{@ZW;=ukR3=RyC&)Y~5k*2BETE6*{pMLL0>h(ZmGCrrn=*j`kKL4C^69ulY
z8mnxIqvfzmuGJ;S53+e|)}a7)QUqb$1^H_MU_CRv{WM?bT!o_y?4LwD{9wX?>3OCn
zr-_pqPq}b2Nn9n4>eyBS8Z1&&S|tdp+;;nR(nPa);|5&cpjAMU$g1aMMnC$uZ?Ash
zQ|~!Vmfc<h0CAiUM9F3mrg%Aluq0B0MxwP|u8NVOLt~^)BA^QgXea!!fY2>KW4aO9
ztmWEncGMKB&AO>M*tK18U}}+>>3JO2P{@Jn_{32eDHDXz7*f)>4yMlBLXDlf_L9qF
z$PZ?)tdum3sRiOoPkq|Czx9WI^jn(KaM+z?ziZy}_7879Z)6*mZDFMXtp!>cRGN~e
zUF7~cW&bL|i|&Dz^%B)|Jz1$cxGwZ`@ZB3=wu*T8A$WNA5e^-i!E+75#E8@&Ed at ej
zTPZ4y3BwAG)zJ3m7V1n*P1E07YOJnKLZuQDN6A&6{-^hR?{7aI2u{<{RRn0Qhwr=V
zL7w%TXJR`NtprLNj8>G(ibBC!a~YIlIe^yV3lO3Uk&iR7U;w9~;Nf(T^K$`W*A94S
z`y_kzPGT9=SRP&pEXUw at AcZ1LV#1(;(IKv#5CjqBYMpYqLQkoHM4)xT{6g(UrPXhK
z at -y!#pAJ2k9u)wLFlv6TjBq?GW3aVE8Bkg?KU*iCFDxfSwmO1zOF+o9hzL#d8VzMp
zo1^FLzJXOhkSur6FfG7YPs+9>8`-#-+-fE<y@=SgD`w~RX?E at 2k4Y6hMGMCfc&^0r
z!IGLJj;IGUqOgMRX{3w^f|yDzBnSdL$H%0aauBdsslNPk|NQ>X96mfNKJm$SpVq`*
z69ASa7K5P9p4|u7vSkyN0$YJj3}Kj{RKqvEWV>szl8Cwk7g!R4LN(4+TWx(;9Y7x+
z2Qa4b-Eui76j!b>pn-jd5ZfON*uQ6reFqMaB#OaO79$Lft;iQ_90!s(q`FWcs4rq!
zid;^RBz2NRQ>z68VS<Vq*McOz-Lb;wfA(|lul&<z-zUUrPx>_gP%c-*M?U!Rot`VX
z^+&fbv1Kc^Coo2%j7BNNfqiAhCyJ~5|I6&&bg%|Guzj%(CGdD3X2x%rbxup)fz%*&
z><Re6_veY~Rc7X9m|rY2v0)G?3~^GYShC1vUE(lgZm~>ItDw_>QprWim?(^i6Gg2S
zQm-k3T7njYQBr^1KYjN7|5&Xy!nZ#y#9z}7 at V2+S|DrHRf07u7@$s|RFus{HCdLWt
zhA0B99Y#irWV6n?W&fiAz?u)Ur3_n}#xg0zQX@$N(U1^9g4neu;M!{*#1;~zQw~i}
zv1NP^DJ>QjD+~{1$z=se6tcK5Pf)L+Rfy{-N+p*#uA?=CK}@xpP_4v7u_7_?j;EbB
za^5Rm_lMfHBtMO#D*z7d`hobshi_E9y#+Fbab{-gT=A at DGSoXjSXV@mKx at g^cn_X$
zt=9fK5dL at pAjBF(r`gacZIoN(@{rGg<3g;U62kT!Rla%6UG$W4_?ZmVT8*BfL#4b(
zwQd+0$xz7BnDMhS&1GX#lDNV^zmGN%N-5IBP_Ly_$`O at D{e5a%@pC@$>G%DJpYqWa
z073}!C$D_#jgI5IAP93vKhLI(V?6tL&n2lvM0HIRgE1B(8%p>YtGfx<Wxu9Rpo=Il
zrm at tkv>NN<WU`G0iqeKe!)zIT_ at ha7Y~M>?PYy5R02Z#3aAbOh=_8A5+1yX5U=!Bs
zEY8mXAW;NCnS5U2dzv&&NK-`=X%^=LDwUXetdLgxuNyZFzwDjw{L_ at 5fw5*d_~kEs
z%SC;~+)r#T%i(E5Z-0r=(Jeglsw+t9ny?lV#Rj7#`Fw_fA- at r=6I}?uPE)Y`eyt%0
zno5h^VD)~cQFUWvBT#wo{T1%N?=aO`jjSgzIws?LC^WOvlPoM&nV9IOuO~yLyhy!L
z!?FaHG{j*QAwmiT8*NgOxIz3{C1!4}PPv+3EOo$fdH!cU^Ztj*<*FzYa{SB#-~;dZ
zn7#Ai192%^B9|{RznHS^?5)f!7 at qZ<D=6l2MD>IyXe<ydq)oAup;UBMu<B!SfhAL~
z2?VVmiXlmw;a}Ns;J9vs#Y-EoAOUW_{UEz{%@RccM#uCNGc1-D at w^;Tq-Y(`Q_7Ib
z*euM=6GsuYC6Q8-CUsO=Czlgg7Nki+lEkDbEG~vjO_vGd6x$Uq`PYB_;J=*iHvQuc
z03n2V<;&jm8<y>U(Xu at Hdxps6^UN<ML}`|Zty{S4l8ew$LL4gMNHrEvGLlTj#q%sY
z&%(9^mL-r at ORT?TrLERgIg+$-k7YMzyW=$WmfP5rfXS&EJ9kX+$ivfsMhJ!L7;3dT
z3ky~H`$`NCdE{~qLMv+3T9fc#bV8B at U?MU;xSl|zszG?ANfVfvtulFJ5o64!FS~5;
zk6-utHz#STg!NOZ=sjuxBuUD*Z~VUa@)vKYDx))%s$qO=9N*7@%ux#r1A{|ce#NEq
z_Vkd1F)CIhu|g at +QiLH92n@2RAj)Q=#OB_TSW+UbCb65F?SgcmT8lU`TV?O=BkbEd
zO+5(E7^F1x_hr%Auy6k~eWffLhO+eadBkBtwNgQ=6e$f#g{UM160%u~j4#nfktQjr
zQfSjye*M6qd1mIzKQ0yA|MBV1d|>y_;;dgc0G7rdzw#~b2*c!EqoX6tEhLmH38m5i
zBSQmt`63dJTsF`77hizqW)MhpYS5`drHwQlt&et75(tD8SW<!|ux){~8?4<J(^xn{
zB^;hw<o<geA*{z}t*FHjT3f_P6-R0`hB!^>FSwkwbqLE6)GBp?dL6A|j7fkLbOI(J
zla*w%4j9wW?$e~%6w+d at 9I|Wo)IllqZ+-srfBl20sTnam+|SSYSQh|<5at!X|Hg&Q
zn+Hl+-{ATMs)5J;$&kL at er(HQelcNaXn<lq!^HR~nS7p1wt(%qARF03rY-$P8%?S-
z(^Io7&PU81S)^R9P_0+-{VY-#G_Y8%vRJ8+q$!p#IF4Y;ra>k~i>NfBUJHoA0G*~F
z6k0_X-7x8lPVijF7yO2Pp&O1YV+;mCq72)29S$nx>K|SG?;rW+AP9x;d;GkNbr*-e
z<`3WcsxVIfp^*33GSP=+c_3Vj at Ti6s`zC8t%L$oG4%_!}q=Qn1f&M;*hx at Q4gkemY
zN at _twrBZ7Y^fXg<)6`(wHbGR!aU5#(ki}}1Ovb0TkfFC^G0>OCmXIV7^;!+fk{F#J
z1Xz|p7==<1Vc00KwxlAL%djN7jWNp`LUP}ZL(I)rU-89%|H!9*)>-{y27nO4y!@qa
zx=9<JTP$SQG+HE0B?t#US43J4J07X9?@+*#&mW_Z^@&4GkV>Xz7Kmew=lWzaS%O*>
zV+^kEA*6*cid^2Mkk1oE31JYB^=*24d|XFjv|3I(H%4JhiV(V?Hwc4P32{;<3Tnhr
z4JpC%Y%Hsh%+l&$Fu?r}O;M at VUzW?~|Lv2X_{%s+QeoQ`PXJ(zF*`fYXa4?QiaT~6
zTu{a^F`OriQfl=&xoiR3^Krc_`9d$Y?c=*H2%AJ{gn&#YkB~NC5JE1ml98sGG)<SI
zI2w&(Tgc_cN*as;6vk+ at N}Gj<4IrpABu(Om2+%1~N*vp6<S|&*GU=5uJoNB1<x22-
zzHfi&Q=fWYcsiwKo%R4&;sSs4ia)<NOw5ndB;w3Xee{%a2n(ciNtM8HJcP7SN}{#E
zc6=<$LRvOLN{-foiH0 at M?5}1xn$~MjU<}6S<qfSds0Pa?0j){Xm^h9boidxia$N`4
zaj<L)jG-Px>^rn@@bFCKEmu5k%m4e+H@;f`yt4bp41gsN{K4<P`AW~v{6`^YGuZ23
zHBC7otY-gv7qBqG0xYC-uxz_A^P7&>qpZ1+Zz$x^YEsLRU^J<UQE7tKG3W$iR0AMd
zH<p=8QdHV-95}Xv=XqGRL;!OOHD>2)|GDSD{9k?bD<Au2bFI852>)0Cu&fWf<SoAx
zDfP9p&KR}|8Pm)N7Np96&{)Dj8H12EmUPevY}>(gJZ#57V1W@$7H`nHQC at 6NO+S3t
zXy~`h6-3i~Ylw_gDYVj9mWAs&IF5r-nsOzm9-LadcK>AM_22x)$ETi{?I!>LOXDBk
z_hEU{kN57r_ at d1d#jI}3`sLLQk1AbD8hGoB2Me>*&SOO^pyj^S`tqjsu9RwQ+F)B2
z(y~yg(T8U$d-fe%eA~ZY{Wo8DVz!?o04((e{@ves!@Hh*-sszNnN(t&Mgos$N#hZs
zF~f~%h>2xtw<gNA)`+!g?#=fCN-gOG074y^tyT_B)js%d|M#!|3LuUX;W+jaR6SV$
zSen^F2tN3s&x`2;+dsBxEca^1 at tb{lbX&8`l_uHIbTG4m;DSc(VVbICr;U`7AXH2q
zsqU>*<F{RL*^|C7apoE37k}YO^8^`BApn-Sfl^quZC?4xcjS8u@`7UC`=>(QJy%)=
zV?;~!&e0 at 5(>nW`38zY>D5cTb5JZY{HQ8Pdl25y?^X1ucJoAOmf2h`oQzXK+pP22Z
z4FK91gAjt3yyP#6TPKPer8MViZLYE{xlKyWGKO)}6zZumsnTYz*5;8kH4iIoZWBU0
zRIaJ%eN)lFZ(j3PNs~)FA=7_~0I)pLG{te8<6_fFDIukNf;vA70C-}Y-s6dB_5=W)
d7(dVB{|A}{iGK_`5CH%H002ovPDHLkV1nH%iLU?v

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/images/icon-opensuse.png b/ui/new-ui-samples/images/icon-opensuse.png
new file mode 100644
index 0000000000000000000000000000000000000000..83fe4d5df0f59b52dd609b3bd16838f4d2570ab8
GIT binary patch
literal 3046
zcmc&$i8s{i8~@HQh9R;H+2W=}wp4SGHNs%*jK<hz5C+v)$1<3yWFNYOrZjd!4B4kN
z_OeFZ5HcYtdl9Z~{ibt%|HFOHdEU=?pYuMSb3V`eocDZE>}`>UU@|ZO01jDNm^yNi
z@;mtXxO=xDevk{iVJ4Q&{M<$6_f6)W1&9`|Vch!@zXN2Vd_Rhtlnyt;ggagL3n$@2
zuK*+xNrP}LD9i^>yrOYE)c^jvz6<~e`dFG8J4ZcOD~QdK=#}p`3e%S;Ndc#V%ghT$
zp(kOYHqsIbHl`V6$|_^dh?MK%3Wy^%WlY3rh0i5oHgAfP%>`|a_nhlHrIeClN;cg}
zykmHFk4 at o&i<*6i{E8gydVh}9!aC22MebGv241g-ZBHQmTkvq*>sO3Maxs4<s}V5`
z*oAF at iE?Lv{{IL*&j$0zP+`3;Y#dIiP%0}elXinK0a9&5Y-kUT_#F;DU6<liG%20M
z*2GzKo;`8|W9G0zAyGa;7}t5ufYKTf)m2P_EXSS`tv;Mk%`C!iV?dSm+hAevNdU=n
z05ayOis!-b>Psou1rgq>;ukbIO?xX=oc%qFL_%{AAvB_;Rmi{!P?69BA at Q<gedeVw
zb+BR=?8Aq>C`Z&2(8WY=JI>sdS`S&TgNfg%Z_#nXYt}7N6quP2hsEBdjv<yb?79PS
zhMWA~w?Y!&6Y*gEqh3Z{sBiAymm<oiVT$qPUcdvWP(Z_l;dwO2j}xgr{3XWu)f#W1
z$r#L?k1RV`^>Qg(>MfWA)+P`<Uo>#8DFN_Q5IcNTexql*QE1<_e}!$qxrkfQS&Qc&
z)Q6F-&Tqnh3x#O##>0Z=oPFq{N$ij8p{^<8)&6|inzS25ih8LbN)3VLY7?if)Q6EK
zTo0v>k3Tj1I3@~(I1n{7)sA7rOvh$po(iCqX?#C#z&mZQbir|#cM at D`A at H^Ckq-vB
zPK}7LH%~?L4)fBzwc{k*tNYKixhKv~Om>C{>nN^S7kvQR7wPa#@9AkZ&ad0Ba?Py;
zd*d%e@#*n>N#<yqjtLqcwgzlrH<p>oFiB7~Q)6ukOW!Dc)QV3tR*`V4wx3Cs at 7e3y
z7y?t|It6-oIQ;8D*-ORETWc-NFTZC~uZVUo?zKHfbX;@PkE*?QJG~jLYz|HUz7tI2
z46=UpFuX<>{G7^1na!U0E6W%%VUQ at WYD+ViUyQtnt9a=TTy1i3Cvg>}LyiK?)g%vt
z{Acr{mjy?5(u$Y+3d;(!g)wr!5Kk57Oda_PYkdGXOkhSZ*r~-TMmR`0PW&lfvU?ql
zh(d0|HhXXBuaqe2Y9`-kp>*|D$Z1-jzCFjLS4|(em^iPqn$xS at aRsC)jmgc at lG6$5
z`+&-YI)v*+T47%JAAT?w>3eXj=6PwB<mx=e=1m!t+c!vl#_lp)4D^_NpPflz0A4B<
z2?{GSu0Ix#No(zfU*g1=q{C)|*c&ufT^?$h`%b;@oqK;cpu$4c&97*1r{pHJe=~#8
za|laME6iRwa4)ob at bk1Ld_};W@!TTO+l`}ALyS3*b8tJ?Zx<^x;QV{ky>H6j_H|j#
z?M1Q;vGkU2r<|2}iSk6Uafcn{6s3h?P`?5y>k}b?UN<5JgU%|S=XS3V$8*g0B;;Bf
znHHxXs6O0>6NRUaO|~XEJsPt6sz$t%yTl-*zjOp%Q&rEO9y)Yv_1lksy3C!6mNPOU
zb$MlhY>^1Jn>)Y=be%^skPy1HfUnG5LI)~}bIHl_dILN7rKT;R$Y%+*Wt}A|5|=0n
z;7`C+ES>SUV~7h+QxI3>ZJv3b+pu0Aw!tK(Gp`8|gj?AA5){&LcGB~hQ53oIZK~5Q
zS056Lhv)r}KNx%_si4aI!%Gizsb2Ngg2mCbcJo^qCc>0itHo%0RG9T+xbGN`^Sd2=
ze)qDn=&CgG)%tgKfGxDI{A_KKIKaxYh!ts-X+4345Mn6jXelN?ArI=xqRabqM}T-s
z|B94Ba{A7{Eguy`2o?u39i?g82|!X_5E-7 at fPasr&*3kND%8GfS5Jbo<tLAZXsZw3
zbwwDKE`#PV9e)SIT-5vow0b^g7q9#Sn(O|j&aK{KCJCd^*7>tIGk~CV-a65Q$0_h!
zYe+bdMipU_f)a54xWgWGY2mnvm<_x~Uqbg!b<di-dO{!IqddEJfirZgk0CU}UW(n}
z>*)_zz41~Eo+^!{-!t1U_lBlclrr^3WrCFson%eDB6GaehX*ZFwmdtjkpAZ2z)cc$
zSN0iN%|?U>+59H<@_ZBGlf*}(qxq<al7l($rvQR3Y+wqOpA?bfd`UPTGQ+Djh<sCJ
zzuo!WM2Xo&A1eQh{*x>u^isv0<xnch?q+MFj%S`GuUFg4(F!1M8pamlgV~FH?@bfE
zp{q*+9;#{!AvM$C4wt3T%D27ywfucHURkx7p~5`j`z#27k6PTbUnX#~V=Cv`5A-Cf
zLZaVWDOIbuY#(6#<sx7QB)N?5g-l%!B9sFM-u-9qe)WY%vknn>?Z2!qZzI!4FV-D%
z{N;&~%xAfNif;uF0xKZ5(WUgX-NO>0&`m2Tty<`am5hC4Vy>SwQIpB+Ld7hW=OVz$
zP5NyO%LlEu^rZp`ejgd#Sh`&kBCH8<%G;mc(p|nzN6ag`n-87iQ<Ph-dMD?2ymXH!
zo1yw*{Q;nrqvJ(xk<ZWakAGy+gm_{p96BS*!Z&JeJj1kvo<4de+eMU1M-{KH&-l13
zyrEJ_M}RTd`5&9b8+E4^rC*y(<>48#y~leyhSi;HW2JVSP4xxuSw|bkDW$c`*ckA>
z!Y<CD0$<!mE0<T=TRRrDx+Kn9!BZXfd-g=)gSsM=#77LWh#GdtdyQ4E#%p+JJYt{r
z*a7g=I$yL`iG>oyarCV*8xNUdbn)p+jw`%k%dO5D%10gdTo`$xShV_92UnbxM{)dP
z?4B;V5uxDi<?zifMa|#O)k}$6ZFJZ2!1yOreYhW^5P4Z?iyBT#bGx5aaprAU%bloO
zztEh^lZ68&=R~4uJ{z>I4&$2q*J$OAtcZf0Qa?}t;bBGi8O_tQkik!J{Q2hl8W*7Y
z9-DE_CJ%*iPm-n8hxNGsSiM^{;(m`)o<VYm+8mKX*3Asz6HDrS)Q^Q$ML+JZj(#kz
zQ83ruzf=}3GG5C!q7u at fO+>CXLoT99>Tf=;5dV4xVyhmiSWu9)k<mr`?A?e^Z9+KJ
z*Uko2F1%5D*#15}BDr9oeCkE7iiFa1-#xUkpq at D>wrR1L-qj>y{4R>pF?qLc{!YTf
zSZ3XM*URCvBa?}YQA!?{C~ch7do5p0GN5WXFGd`RwBh*&lw_*@%pBkiUVfYzP&cLE
zVAsGea3HB=)g&QEO~KOP at Z1ULo<Zcg$Iw|U9a`PeP+w`kDxx+q{&YInt^HVaC1;vB
zor9{EY!%%zYa?w{*{=!?0W at n1&%&~h3;H!0z9%S#lW5kKhwm(9_Ch1T`Z=qxV!V<$
zYm>A1=g at f<R5s$z?NY_Tj6bIFO7Xj+rR<TRzsIesF13whyQ(F~m1s%I_S`u^0#{sd
zFF#f8Io)js_WLWIx`^eZVspa`?mDz+-|BJD^Y`%rUuYZ{WI+4^2<rngns%qY{G_)|
zl8i+4F3Kf(ys}JfbED0EA+vJ*LQL8#gb at n{)VTWVeE-Vn8Mq79T>WljOT1hDTy^rb
k`wyDue`PEG?`HRnhNAAT>MrGXaXmR;X=ZC$Yl6G+KaKu$s{jB1

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/images/icon-ubuntu.png b/ui/new-ui-samples/images/icon-ubuntu.png
new file mode 100644
index 0000000000000000000000000000000000000000..d92c00f357b6b0e1542413f6aaf0de8ef4b8d130
GIT binary patch
literal 4818
zcmb7Ig;!Kv_a1VFPU&ut7*J4<Zs`<6YUl>(W>CbDj+c1pW*7<S96}_eTUzNFy6YQ%
z at dtc&t$oir=j^l3UF+`W+3`h3ON9uZ4j%vj5WQAa)I*QZzXHNVzq_R&KhXoWm;7r3
z5c&xQ*}%|qJP*~kUTFQ<zk(splj)CMr1e%Z_SSc|^Y(*y+5-Ii`~)4{oV~0e9=3w+
zp7xn2Njd<4T>G`6oPmGVL3V(@!Sqs}Os#FrXATWaMN$=b)07FBLtU{UzX%&9N-x^P
zuR8vzp=_|DfH9SBZi_*klK;~tgHLRPM~JBk1O6sS7z>z<6>lIR!lq`#cSQ!pX_q;a
z-MlrTk$x>XDoLH>HF`ZPzLFI*D&BGW3ioxAYGNDBnyYNoRT8;uQu2Qx)^Uv(fxkWH
zPM~CiTLv2 at gzJD`jFo^`XlZvn{v1(og{j{{HtNQBp7|+Z-%rnPKOxTmh2aB(ThF_c
z_AzJpa$S8(Z=2vv(gJ|AZaW-7KnWlj8ZOM&LT(H!$5^g?wd5+yXY?{e3n2JefH at s@
zXCxhd*m~?g4suaM(axZ4x4c}SAPZ6cyASjSG%@!_)r#jkU@`$y=d#_j+hTPUz7uqA
ze0vLBfHuqOW)17AiyrYDwJq&j^em(=s~ThQ2>BRcoQ5Z_xoFkx12+LxoV)7Q^7!a8
zu~<}?>}#&kEDcyB^VulBHCI(5ay9f#uApy(O+3pD+dsHg-?UDKfR`f~*df at fo^xv9
zjS1Y&arOvknQv*3a~n}O_P_YP;x3cn0t}C_Bqx501;JZQ6thfd^R(f8(3PHH*i{WE
z-PW(=<FN>f8>WZ2%dbwpb=o!?J4Wy@%KJrc;ZYL^txcr#@W=i~n+GGfsF*$AUA;{;
zMY at e&3kj at RRZ5r|`V&I`aq+4lor<4S-<&l--<{k3?s<&(HO&xJ8}M at M?6=IZi+OBE
z3x9^oQa{_3;<sibxjqI@*!9A8cWkcsu6)$i9nnY8!oC$Com1J(y-ywL=6S~cQs=hu
z1-38+^kis7jTv=O(LG`__Q!{2;#rU;cfh-{EUzaOuL|jQ4zSg%&$URCA$cba9Z}MY
zR{*8jN4kb%xlnGNw(GD0flWfo6g~SEimw6CzU?*l+Zp|lUJ(xm>>ZV)_cL=2(U}pZ
z_AQ02fPe7frDaA&CETrkTo&a9#-*}_QAZE3nc?JV912d>#u!6X_pXbpUc at xxm_(bE
zOy#?6Z&D)o_uFuc&-oOHaFc2GV2SC`pDhLXx)wXIy~gp<T~DSh8%U3)$j%rzx68VX
zPzA1sTXi9)w98l)?AIF`ca{pS>z{z4+DC808%>E99FSBAXJ`24$_!f<6{T647dS>q
z_orp)C-^~{&Vme}Pc^R~HzcE+_TPN~*iOV=N0GIOchYSusHnNfO>HqHH-EpV#68as
zu%VWMpJ1K0qhTuky$~=7jr_>9QGyhTkDt>jSQW9kqB^PK{;{inbxY=l$Q2NQBA7Bf
zU8)KNC4F;zAUHqbCVe2z^FQII%&ww4;aX9CID7k at j+tdPzwPsDIj6Kyqv^b)6_xX(
zRz)%CPWfWDPX&GItA;-YllvTY&sJIt)j?ukmO2uT*DNe)y~zQZ?_TKCuX1s?3z at HW
z0aS9@(oz}UMa+krmKuE-F at OUofg{&!r-Yx%^3vthXA*@^?k;k1q<p3-%=sEvK89n&
zw?{QQfB~A!NX;IswAFyE6fLV{%uvZpBYoe!X8+|7!*ZgPXBK7F5KssZ?Z$o>VN|IQ
zP&xYuq;oM1{DgAt>B?ySLLb{T5<tW6NNC>h<P^#(|MQHwEYI`e$<^RR!{d;pR=4Dl
z;)hrjJh3TOoIClSgkA0jT9=arA`~-NJfXK<N*mNsS$G|GV}I(?@z*gTi`Q*V1X~O5
zFOx>q4^C7*r8%QyU~<v3i2)-o3AqA}IIfXs%j9scKEyG`CZCT0Hbe>ymRqSKSi+F}
z*x_yvPZLC|F;~4}_ at 5=cs7F<$+flU~4=cueM=n8*uHM4uVK;)qkH1tG+J(R*FUiyg
z28`9TdW|lKi1sWdiWiCRx=`LK$hk2xR!p4+=al at lxa{)kWZuwi9Prs4+u~Ih9fG;F
z`2KOHG}dZtjb4HqANOdMp*O7PLuaDeTW}Yk<c{rHUq at p;ff*{N(8u%IK%nVMN&Jjb
zu8MyKw2Q4F|4Rla0~QzSE at jK1bSXnobBs~br`1&p!4a?s#+Kcy)ONgaVEnh3*reks
zq4#oj?Cg*Tn?C-+B$c-+VaQ96!|P0FfX0WlHwM&^+9f+aWM2lCR$O?ItK?f1Sd*}K
zcWCmAd>X5b*fd|fkO at ppRI*++oPKjok~tIPL9*fZP;ejMvOCMn at kKU7)4(><lc2xV
z3O68anS26+gEG9uY4ETa6n35uAAHj#v#)iTV)AU9A7C4OL3TD*><rd9`Jr51npJU=
znnBH!|1i82kpUTO)b;4 at UXRJ88V_*|k}17IMJsB97z at d^t9+bWV7i?++jUB>whAni
zrmm72i5?-x&RpRVFHqd5lEC9^RaXJTVJ)#tw5hF`9Iz&F&zyn{8>}SDv;?->_-hz3
z38atL6TkJ$ctDzycmW)O4}As?nV1v%PpWcbg`a8*B|o1<a$)dzO}6;oP-=wn?DH)P
z-%Wq!>2PPOu-G}&*}Hdpky0zft+VweW%(Z?)d!!J>u!yS7U{ftAWbYW<n2Ucjv9*d
z1w!p<y_mlEo=C9m3QUZhqkRyIA#|PYgTU^cm>2iG@;RSX1finaNBB4&bb#*gFp;6}
z%#A=QA0F_YsXfa599(ELe-ZK}=r|iOL8oEo$-SJH#+xzE@*CR{{O`cSwSl4Iy9W1s
z$i3${7reyrYjR2a%9|9ipnb~eg1Ce$knERkZV5_yTJ}++^L-Mr>9x>5ZsR>F8pB?-
zcw(PPfHs4TX#B&G5kYIuiv<eg)k(ne-ALAfcG;yx<?hIoD`&oQFe}@gXv);1!qOkp
zxWPjz9Nk7GdAv?bk!10}Hbh;{@K;4 at W>KO{BRMdsn3>&956#2``j8;zOVJ5>eokM{
zUJLa{T7n%JYgX~KsvbQn_eUh<k=NNYclYLG%c;y2 at j-N*{}O15q2zk<2o=~H!#@$J
zZ0hO+lh7B4mO~iYe=E}UxOWLyYTr}Kq%1<a2;8h1FtD|;{Z-qF at q)c3H1Ku*on)qY
z+`I$w=x)VHq%YzS$^Y^5UbQM^8k20w&&IB#-n?S16T#f^Q<1M-s>>VCXzHfEbS2?J
zgLcf2aeJ8!5{0$KDkgre`YD135x)Z|nd@(nR2c9RHQuIBu^EVcq^3QiFBi`2C@#y~
zgktxC6v^QS&GYY!GD at WIuW#yi9cT-p0R<PN6Kv3L1hT2*LEL^79_wblDz~rX;2k_+
zh6Y{KRv#`Gs=k-JrY}dUn#W9 at 5R<;~*(r_xGSu2@$#H)sd~(4*YouB+ywqTQiy-Iv
zVgADDK?JBDnz$cNdgRxPn}8Y0k!uuRP>8~)1F at 9vmUoXvz0}`3sy%WsC+Y%J1T`cd
z7v}ohgveh4Rt_Q$eftWx;X%*{7)3f;sKX8hUAXzBOyj}5<R6WNL*Wcnnc`bqcCX`A
z*lElYNA5VCa}Z1fX5g;KsHGeYkc=Rc-80JVN9j1NU=>;3X0%U-2FCw3=I^n35ezFj
zy10fEez+QJ&)=UpRitJ-|AlSBgaI+!dg`aNo@?~D>2)<|1}Ms%ITi6ke-3vxlUQtH
z_Xu0K;u4kv8I*5&y3$w{O`6>$&I^~E^-rn#m2GW4d4q)QHg<Nbo`|Ap&+uz{`^Od#
zi=dQjN`@kuz<WZ7cUSyN><^83RqyFXb>8O|hQMrE4|mL^9BR}U$KRH-=LeQo`jhOi
z0SsNoDNL3zd<!RN<xT?1(10QuNh!*eE(!6UYq<0>>9{FEE&u~=jokMDEI|Z8%K at B$
zKYduX(q<8ATa#O4q~~+`(SY{2GhB;i0*hvKrmah8mrcpa^ku{__kB#Rr8va+dpRfr
zADAHSWIE^FmCDryWUCYtRm?6+Re>JSlJKsU1}xYaI<hYn<#RW$m6my4IxV-zIqU4`
zC at xXqaRL%T4yO}>j=ja3^s|Jii8&6VS`CWN;dgGjq(K-w_B+Z<5>E*Q78>CuhR^Ia
zAg!0Yf3f?UkpOHLnHxni)$Dk^k0qrsSG-|rU7_FQEV{fxgue9nzR{p~m?l8FnPU2Y
zdF*4k9`Nnf`NQ|Xm|l_ at xF>xyrlxCx2PWX?r4gdC{CnnBJ at 9=LC)&rYGOx=Kb$Xpu
z_G7Rnd`tQhxk343rYnge1yv)$oqq{~_cf8e%V#j#RUO>B-%ny_cd35U&D?8NWvi$3
zyON4#VCQ8;mZ|f^%%_CuA*)tQy)ik}XMa8bC6ayrfN%x<vGm(po(W-|i%#8#B${uQ
zPX at A;!8TS!F;BLYzm?_8r#-+WkixCZSk!HDGtG%A=Wo=}$(7#8)FzBAVY<RNuaqEj
zvxS-!dO7xuW}H4pQ)sfm{`2lx<nymbM;<JPyVXm#luFNXV|nyc7nVmI=iuT|>O6FR
zBR~dDo+5k>E}F}f$bq0*)L7jnGaNvoGv99)pDrFVZ_bU7J#E|?%{Y{Ic7h72?(zPA
zcy)|4r<vWSo=Si^l`F>OWK9#`_1l!}{T61uzXN849mY)v9g!+IRRI_ITE{mxqsElC
zEV}*nxQsb|**VAIvST3rCtQL9-9L&km6W at VDS7nP!^za43*l_x0lt6G>_rZ*%72WJ
zfq+ZvAKTo{C$wU7rF^3VW0~PqT}T^Tfn4Ouj_%smtJGA+M{;v>5F&BU1oXY_!+};K
zkd(Qoksv4bQN3qq0Ncry8Dw$&pyg(dt4 at dWB8uegzKot+&(Q1VkC#gqy)V)yzY#LU
z at vh7;$-KmsL`>C_D!#jy^dMnD{fK08Sh%+!zV~J5ArUG?ZS))@e#h_>LcYDy88bQ-
zNU0Tczuc at xN7F@hcebxn<ER`ioV(}kw-PEAK{d%Aqb)DkXRE;x%(QEsbCtMOYn9f|
zeN3K#H`kxpT$fsf;BtPc$?U7^V;#KN;iMeCQ{N_g4Mwx>QeZZ%N9 at uLRYo-vy@EMb
z!(M{BUkg9YhIWu_Q at 6uU`^TI1V|Aet{|k#C<~TadvyLr1kr8Pb?~LuaIMYUXGC_c?
z+l}1#H6lOs;B=}Yn9$-n6cQlz(rEAzOvBssJ`TZJ(B+c99bQ^b#NB$DHxuxfGj?#~
zkk;Km)})#?WJo$t{XT!&-^KLJP7kF_4O_wOQ|2uBpJ~i0hQ8Edzp~xT;$kOHr_bN4
z7Y{aNG0rvE16_lBby{626F#y}YDG!1m~3iu!ANDFc$)2gaKrreY6)mYykKBS at Lp2N
z0RL*^z>coFU)hJyMQDp2UPP3Rm at UiCJ4IQxP9mQ$PSdM%RNe6W?t|?%{Tf+B{4G at 4
zr4~`%RoLFAFxV4KW)-GSZ9efOmO9b at v`nTL_W;vBY2_$X7r2fR2d4np)T(|T_51Yu
zl)MrqgD&k5V@^V|t9i7A5Y&qiQ}YaB+3T*wn>_*JRJ9c8B~$;Re(=k~mUi3}rQgY#
z<=tZ!xvr$0j8`MG=*S)5#hx>^b*Px#@dI2gUY{ov-kCtqr~j!Kd&*7`8nPMzpVl>z
z*;&Vv=>KXBes{#Qs4)5Y at kecdPaT<ToM`()skt}HCME!#)+;0`c_<GN%wi~*w9H6_
zy-K8igwjM$QKYfx4pIvg$9K>$DOj&nVX3W+Uy=6lKnA_s at cX(*b+MwMyw$;*ew>2w
z(8?x;hMi84KQFCmtmhNB1H75HKC`o81OB&whE2}P5thm4EKmDHY75{|@aUB#jCYp!
zFBGt6LdU;MTqVd#$*Q0WwU?HxV^VrHD>koA0z<F#IjuClp8*(k`J5;{h-#QkEo@~@
z{Af~Ou_So&Sl&PWuLrQb?J1b<WJ9vEg+`gsa_^b)cY;-#|L-0!`ms0`;rTNdvrYKC
z)4quT#O1pvWWpE<JuoG*O_?xa`!lU)G53^QW}`UKO$o;L;x2F2*{4cbgr4{CxfpYv
z5H8cLN|CjCuPNnH$*TOLU#G%;NtjF)hS(8Y?>MRN6qAzlUh8_#4z1+rD~r>SF6EoG
zT3<7)d1Wex>Xl-wH0-awY=2YPS|4GhZWH$oqew?Zegvxs#>k7oA^zXUBZ(xz at KQls
T?|XFr3GiA;OR-Yk^22`sn~zF<

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/images/icon-vm.png b/ui/new-ui-samples/images/icon-vm.png
new file mode 100644
index 0000000000000000000000000000000000000000..50dac50c5a0ee59f4e79170434f53bb3b94390e3
GIT binary patch
literal 2976
zcmbVOi8~YiAK$c?G*_1+SxjOnw_GDMmIx6-d=n-&8()kq<W|T%lAFvDQI1%-m1|)L
zlcVJ*<Q&6~-=FY(p3m`op6C63eO~YP`}I8UcZ`X#KIDYZ2><{9K^f?o9o~ea4Q4+)
zTM++z0RXsMP<l7a{~h~n$Ah+ at iE!)YqjU0|_6;wf3Y?G$eFEW)8b<MQ?WJ#f1svn~
zW8Di*&&S4-g#A+Fkt*GZrm-n<u_IM6(We`*ZXNYMVhw0Dd}H$USYdKOOU2Xs4X*T1
zd#1>T!sWRfzrMOa{5InHIB|B;uUC_y-b`P{ZH>Rk5(<NY|J%wp^O<gq>H9ra<F+|6
zGQ!&1-MW^RqUJqCnc(2Lz?#m}jmj$EY!((2tTXIgoMjoShCU#_*{IO9w4|NvVsN9l
zBBP?x^W$-I;(4CFM&ZL);KH-rwYl&`?~o>3KJ!OrlIR$KnP)UzTQn=j#XOI|ZF6-7
zU@(}#JeQbSsf9S at p&gpBFwo>5OsTn;Ou_&>RUmbpVE)U-m*ub6rNo1(x2IOJ#${-4
zhM$#gEU}KG!6 at slT|=`?%Q+m*mwCU0Lqa5J4I$NhCc#||5}_CV#ixK3qD}qi`<o`o
zP>|}IG5eWO7^>=Z*LQ-CVQs=AqFqs%TRRud9FtFOFIu`bQ at 6@ObG(bXh at GaiNOJ|C
zZa(i~qELOe>cw0ingv-<*OFiMN9q>Y^sgX5dL^#m6Ow_5OC4OkjoBqE%h~!|!ysE>
ze*jF6d8 at E(EE?L`;;SLkL7(ele1qYGjSfPQZ?wX8lb*YA5C{SrP*Jr93kM>oJ6%k}
z%Oxfvu#Z>fNw#a6su$WQW^v}~9w5rE<@xzQho4_FX>*pU#KDn~ZT2f{YTRdG<WY0K
zoF`7M9v&f|YFUB`&f}fV)%4a<r9+=o#mmijs<P+{=bkLA-}2-~Ei?XiAMOKrtvRSG
z{r&x0j2_}vlbgsrvTe*Kr4uv)t2hCG)+<}5Ei5h`xZ8}5R=dzA-+R&f25sNBmQ~Ix
z*5M71e`g>N$S}zE9eSYV)2B~f4y~D1AP9#Ts;RF*8IjD(cs)4R097IpWXgPU`0Kcw
zLl%cC(q~ed{eO?q1|{BgV0C?DwAEQDR!=z7Pk2o>GPB0FbX&R6082O^mlMyaCBsN(
z^yawPZ5A65_Y0lXx!4E<XcdbUt<gdBQG=%5ntKG*;4o{5*Gaq+{!#p|h6^z(%d<@i
zzqhloT*mch)2F-_ArN{RVR2!f`uQnW1$=ybJX^Q%)r~<ra;Txckti-mU%!K+cCI&5
zK~i#<W3}@-xUgD)7kW%*b8~ZF!I%Sz_4jXrGxxP$mT;KXLCW|x+(vnLPM&O>)0st&
zRsPdrB()|9Hb`Q;GdhMnArG6+#HfXQul>xgFk9<I- at ioSK<37c%KsFdO)_q*#4&v>
zr*p!a^(YaII(*t|O$0$uadaDrz at 97R(fo}X`hGgij-L%6t77)cS&C&Umx~V|twZXT
zPdoEPhj~m8<PN~FfaS@(`Y)wPNc<fau8HD29X>$epT)&sVKV4Xk(K_d--8?RUw$3v
zjt|(Iu~9H?py1~0gRwS9DV-(pvuY*0)|1k~GF%DZynoy_T`(^X{AyrZGDAo#KPpvP
zQNkR~z8LuYd~OP3yT4>SnNPdG>TBL|(z;^|Qp;aZPThZLTM??O=Q+cU`-%?^-j&I?
zpE3SxT>%DEZ2$LoL69_!9Udu|n7k^H{^agGkZkcu5iqbtDKRM)51Q7_c<Xb_r$?)E
zm`*?7E`EGz=Q(?I9 at xQF7+E77Yba?06lawZu<|duY<Wza=fMue^59UI9Y!#f><J|^
zX}%9AibhJTu|n`Gr#<A*z}ZCQzNL9jjcT{xR0$vjeLHv>6CWqMB6o1tI;$Vl at 33Z%
zWJIUAM2LcV6TKz8_idv8-ns>F%(}?cvK8aH at 5ulETwwOo9xvsZb|*s#e37!<d at v&6
zRGL10DnYx${=KIiSsKin`R!SEOOD}Z$iG?mQq0!RQ#psmF{-lN7uSSpzO@?mYr!7W
zFDPul;cOY)pIKuy7d^%S;9_wOpZ4mjpv9#noM_>|t3`zqcKo1du&&F+HR;urCdAWp
z<6k6<+8*7+DfKuISNP+hC#5lf!gWee)obKgHje7m6eM{AP~iW01B$<`iJhSM&^F7!
zY}*Dcck6%!N`&*!n2ZBq1l8*@8_Bx59T~ixOO_EBD3c$)p<(*<>Cn*7kD5RyK8n83
z%WjB34PP8WHq}p1m03tP0VOv2wJqc?%$%_T+Fg_NEXeR2t&(6||02b6g#UCLU~qi3
z9Xn=jumiaXz?dl$YeE=4#`d(AQuiW<8{|2s#32m7W9=2_DNOrZg7w9D6&P at HY4ipB
z?DMI*2m-#XN>R1Rj^tQ0saj^}#DB=)S(A}MITrK7Rl!{8Tn|qA$OE>V-D5jxYZEV9
zy49Pb4krQ-)Jl!c4lCX=I4)gi=%id*t;cur)5K8SQ`%x7-yPmvw*HDeV+0U&{kQ5F
zd65-0$fA=`QxY#Efu3C<DskAeNM-UhXNW{)qYU!~vdQ!<XeBkWhbk>$(!P=EDtGkh
z?1c{`PEK~M6EIQ7wsj|>RUYXmoR*W_np#5^Emo2TRwvi&O?DvHArYycuFQmCM#_Pc
z^NzLNd<%KA0Y&*o*2J4<KJWnZ&i6HB96Y3YX|v&8iRMoc3DpQHIncRhv5<GFEmo57
zT#=Np3n!gV3zl?Wu1N|##y>?@>uD`PKd(0!yleGwrru=pVcV(0^bDi7>k9)Uy7ys)
z>%tj;l6CdZyAj at unJa&yn^XsDB03(D0xoME6-S_p`eb;`{oGM3Q;#v-YOmgQYfXdj
ze at V^#XLPo8exZkW4*`)WGLR%cxdUaYmjN5aMSPgzF5atP+^c^s_ClG^5s)lHSuC!6
zT{sI+sVt3ye7L%LkJ?1Czg at DS@OI$!#Y6J(?bbDqExhMdfL#4W<+$&*>E%DLaw&Hj
z7Xhx=V+jjlhc?*}>qHQ69iGcR0hoDbRZmO{8(OR%)k8L$Kd{AuR+1uLB!<3#5=N!<
zRWb#Z|NLn(U)nzdzh_IcZjBDywN5>%kgj1fCqHG$O8&CQwn0e9p8DO1W}lgM#(Iwa
z at D-to`$u&1is*%4-nW?O<B at zkr4~V^?>jRIy*y5LOJ4VL2i?f(tXf at w9TGZ!f5#{m
zkknXdV=c4`qBJ_D=qm>c(Y%h!!n+q-X4i~z%Cio2=4~*qf?_Kbd^6<aKEnOxYW)Op
z^mQ)@OK6CFooaC;u at BLap_4avjFJIB(xZ(d4U?t*LN0vu80U}#O6v(-EzF;1Pn7X_
zuP=V|BxgQU;m+M-M-li at Ez$8akJ)}!!><TDF<cEqTNPdZ-rBV^bFE&*;nLvGcxfq~
zTS2eO%DRHQQyvko=d!Eh8W^e#9kz5)OSUUEwM)8P9OY3R`MLHT6?d`|#MIT)LgS<^
z6yx%0U4|_BHF=ZG%2GDU=aSt|&%+^$G(?AOZJ?6t#==lDO%vZ>TSUi+S!7o{{604J
zvOS*tTce4vA~B~W0$^`l^{C5&BjEa;P20|6Hf~`}BIc$_0isO&jc5U#c7UAbC-&sO
zotzTHYC7JUE;{TGL<fi6j8H3>-8pOYu|HJLvm)9;wPOpK^_ptrPX<rvG|jc;bq`#}
z at 9EWsf*>QL(>N1x7G0$tb~D_exI8=(L)?q%_H5YJhE?vk at SqODLErHLrnkGe6b+?I
mVQE8J@&9#74TC1P9{|tL%c2?+(}WHuZvg71u^w5+A?$zXeWqvt

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/images/logo-white.png b/ui/new-ui-samples/images/logo-white.png
new file mode 100644
index 0000000000000000000000000000000000000000..0add8428122507bd2993aa01a939b9247294a0f9
GIT binary patch
literal 7438
zcmV+p9r5CcP)<h;3K|Lk000e1NJLTq001%o001lq1^@s6C*$i{00009a7bBm000XU
z000XU0RWnu7ytkYPiaF#P*7-ZbZ>KLZ*U+<Lqi~Na&Km7Y-Iodc-oy)XH-+^7Crag
z^g>IBfRsybQWXdwQbLP>6p<z>Aqfylh#{fb6;Z(vMMVS~$e at S=j*ftg6;Uh<iVD~V
z<RPMtgQJLw%KPDaqifc at _vX$1wbwr9tn;0-&j-K=43<bUQ8j=JsX`tR;Dg7+#^K~H
zK!FM*Z~zbpvt%K2{UZSY_<lS*D<Z%Lz5oGu(+dayz)hRLFdT>f59&ghTmgWD0l;*T
zI7<kC6aYYajzXpYKt=(8otP$50H6c_V9R4-;{Z at C0AMG7=F<Rxo%or10RUT+Ar%3j
zkpLhQWr#!oXgdI`&sK^>09Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p
z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-<?i
z0%4j!F2Z at 488U%158(66005wo6%pWr^Zj_v4zAA5HjcIqUoGmt2LB>rV&neh&#Q1i
z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_<lS*MWK+n+1cgf
z<k(8YLR(?VSAG6x!e78w{cQPuJpA|d;J)G{fihizM+Erb!p!tcr5w+a34~(Y=8s4G
zw+sLL9n&JjNn*KJDiq^U5^;`1nvC- at r6P$!k}1U{(*I=Q-z at tBKHoI}uxdU5dyy at u
zU1J0GOD7Ombim^G008p4Z^6_k2m^p<gW=D2|L;HjN1!DDfM!XOaR2~bL?kX$%CkSm
z2mk;?pn)o|K^yeJ7%adB9Ki+L!3+FgHiSYX#KJ-lLJDMn9CBbOtb#%)hRv`YDqt_v
zKpix|QD}yfa1JiQRk#j4a1Z)n2%f<xynzV>LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW
zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_Ifq<Ex{*7`05XF7hP+2Hl!3BQJ=6 at fL%FCo
z8iYoo3(#bAF`ADSpqtQgv>H8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X
zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ<AYmRsNLWl*PS{AOARHt#5!wki2?K;t
z!Y3k=s7tgax)J%r7-BLphge7~Bi0g+6E6^Zh(p9TBoc{3GAFr^0!gu?RMHaCM$&Fl
zBk3%un>0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA at W-aonk<7r1(?fC{oI5N*U!4
z<uv66WtcKSRim0x-Ke2d5jBrmLam{;Qm;{ms1r1GnmNsb7D-E`t)i9F8fX`2_i3-_
zbh;7Ul^#x)&{xvS=|||7=mYe33=M`AgU5(xC>fg=2N-7=cNnjjOr{yriy6mMFgG#l
znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U
zt5vF<Q0r40Q)j6=sE4X&sBct1q<&fbi3VB2Ov6t at q*0);U*o*SAPZv|vv at 2aYYnT0
zb%8a+Cb7-ge0D0knEf5Qi#@8Tp*ce{N;6lpQuCB%KL_KOarm5cP6_8Ir<e17iry6O
zDdH&`rZh~sF=bq9s+O0QSgS~@QL9Jmy*94xr=6y~MY~!1fet~(N+(<=M`w at D1)b+p
z*;C!83a1uLJv#NSE~;y#8=<>IcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya?
z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y
zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB
zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt
z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a<fJbF^|4I#xQ~n$Dc=
zKYhjYmgz5NSkDm8*fZm{6U!;YX`NG>(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C
z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB
zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe
zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w at Jt%Bvjts!X0
z?2xS?_ve_-k<Mujg;0Lz*3buG=3$G&ehepthlN*$KaOySSQ^nWmo<0M+(UEUMEXRQ
zMBbZcF;6+KElM>iKB_KiJlZ$9G`c^=E at oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$
z3*&nim at mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz at C5{St!X3hAA}`T4
z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu
zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu
z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E
ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw
zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX
z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i&
z_B8C(+grT%{XWUQ+f at NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01
z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R
z9cLXcYC at Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw
zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD
zJpPl at Psh8QyPB@KTx+ at RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3|
zawq-H%e&ckC+ at AhPrP6BK<z=<L*0kfKU at CX*zeqbYQT4(^U>T#_XdT7&;F71j}Joy
zkC~6lh7E at 6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z
zrTyx_>lv at x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot<a{81DF0~rvGr5Xr~8u`lav1h
z1DNytV>2z=00004XF*Lt006O$eEU(80000WV at Og>004R=004l4008;_004mL004C`
z008P>0026e000+nl3&F}000sxNkl<Zc-o{|d2k%no&MhI*VlB<sTpY`jU-E!b at -4h
zTiC|fK*-`?aO4B*#Sk3Ffx=|TZe_!kmm(C|Y;9n(R1T;lCSf^>5H?=IQKUi+lCZ&m
z7aVhJd?DYmb&WI{jppj}?H}}bJBq-Hx2s;wjAq{J_r2fs{k|5#>@EU;0$|>dy}`Wi
z8~`Q&%lGPdbLq6Xf;TFc>kZo*mCu#=d^Q_oe*q8%Kmwou2mp{pQPe4?Vb|q^5ELL_
z$g->q=bU;Qpa4W~uHwBHy!FVmO;>=J-fIQqtia3$NM$n;02P1^K+<(R(U at pjtCZ9}
zE9W**m1UG9+kI^0=<e~c at sbaK>Vc2}5F!YoCMzKkBp`q=8*agbn=Kl~1RU4(?nAwM
z+p`73E?@=t+(HJR0g%JNP-DH;usJZH_eljc5pzS}rl>1AyH#mY-rHZ?_i~|FBpwJ2
zfFvqPKoi8dK}l+ at QMGo-bZTTmf)>G;AqfMc#lqo9%RE#t%7-k|<eudm0MK<ES6_Yg
zMO&n at SjD9R0OUv{(%7Q4+$oMK>%vwPDKsOFdN^R1JU7*%G_>AuJb3K&Lh+30%_Ff`
ztT8F6Yik^=4dl!1%4C*?KoJCi01AT;6lCURBl<h1HD}L&Yy5P4bo2}WF3U21_~D1K
zef#!{210#qB?FK(U60HSw|-VTr?0DVl4vIFsNpF{&|!i=v~!3Hftq5jqyQ)bu<8>v
zJ<Uw{hfpSWdE9U?2QnHELIMmS5Qrcs!9})c(a~aY>6rkQ_BYfl?ypJS^_iP*8cd~9
z^yZsy#)aIA%_2TNv<LxdOf+5 at 8jkceI8B%@E<nPn2Zaa&9Fv#=V**lb$-y7ovAgue
zzrWKUmfO)zq<@YKjV+!Bh9ywZ0SQSk1R#SE*^77=1~>}b!MS1{@1GpqdTQe}?{2$g
z+qY}$YAXPoj{_pi0)z}ejwceyMz`_r8nR8zJ?auPyYnD(6(w#UhZ4$gF at N)%L#w~M
z=%MAG>^*e&$YI?+dg9y3bb9p?2v`$HVp%X at G-xp^7*MEGwkYE{FbEKd1O)^kA|Orz
zsCP@?HA!Vaa9`={T~hV{@Qbww@#TD{I+*B)r>p08$eoxg%!6VFFy>~#8OPjD)(<4F
zsD7<|bK{<9Yw!;M+?eTZkEKV}bO&pltCy`h(6MysTk^7nr#TVr^7y#U_a9nF4;{Ib
zz4dN`VCKL{2m}NYY}9ZI-5v8M-4)9#t_@#Gz9`os0JtcM2=P#7y;ZNYNUew=iYc=M
zIVPH2Uuk=3&J7KFv>K(KN^}B1dC#6b^~Zks+gsa`&Er?@*zxV2FWvr%5Kv97$~Hh;
z!Ld1RylzkN*r`<EKVJTv{_lG>i{k?lpu)u at +y%Ya_-C$vQSVw{cn4`#HuS&)58$!K
z9{Y<e!U6Drq%qwM*4B_DO^DSHrWA-VtGw*{-A|-8C7+~><N*``n4I&%|Gc{QW&$FA
z@}9fyzU1?_{7z6+4nQEDuM@^>1evY%%pWrnv3t^8t?z|?{%W6i<YWTNyN3AYzUM<L
zx?b at Bm;h|sw)sO3J%s!2yAP&m&Kd~uy*jF>5M2qysz^f6xCRi1r at mPG>xRwA#|a??
z0EU;PN=H99DvXYfh`pQo{`HD&TYoL8s^gui<+(?tin|2hRjFhdH?RMGc24RA=iUBr
zV9lzWG%qzaHa2E?bF7zNewpvsv4cB~LpbL%W-m5F at vHEv3YFj-yc}Tac!&mFp(s+Z
zQ_Re{v+fB($b>hq=nX at aWOl{1YoA%Wq0iJp!OB{dtYbNj<D58g;=^i9h(iIFG6r!@
zvR{~6ixLMi2M=Q5!iDhaknG*V at y3jmp80rBh15~s5CG7EnJ+-aDMmyG7N=EfL;uY}
z^aJl?4G%;afZf#GOq!aTE#F$_`BXlicfR+%@435n?W!D_8d0T`s_FGrL9Hq#av7>-
zojN<1iAO?{dBYwt%B4xq3XadJe+Gv6(r|@Oi9T=u!1Kj|S<(vcmnFk;$}Uqn<Uay*
z(p$Xjf$`sfdY}Di(;XNX;JbG1s#wWMR>gwNwbh at d<>LCJ#(GJ4O5x=^s_J#aWXj2$
zBmURfboQ6Slf`|dLO$p1)14_5Gam at qBX>+z6bXb01a7%pDi#0;L&nIyT*Jgs`=Ht7
z*v^<Jv9h;@<uf_=v06U}J~cIkr=EJsPu<bl);4j&#*KRdit>wRe)!$ar3)5r=oGRW
zoyj3}5=O^_QR)~91^SK^<4+zslm5YYdTapT%y(eevSkaR(dc>eGXN4}EKrq5bWlC9
z#&m?J%-kW#%Dr^z<jMWlZ`pXpK5jlab!6(BQ|Wxnv?7iqO7LwO)2R2KTq7eRxc~n9
z0RX8~3b)>REBSO^pRuH;=L`Upnf%8kJzX!0!$)3E9(?JmZu)Q{;|e&H$=3EyX8*A+
zTwlNUnD&+7!Lw%^+hzc;efxGi{`lkPgIw`gs;udu1 at XB(|1 at d@R at zh|3~+0M&H*QV
z<n{w^y?G!rkxjjQ=legZ3dPm>uT^hZ(9w~Z=DQzRd5;}ChI#Ymp{Aw=&pr1XR<2x0
zrX>~tFh+BE3?KN-jyd}t{*G*p>QjP<;qfuNpLX!O(!B3J`r?~+Z{2)-{)#Iu$8ERW
z#wn!)02jQtkN|+n+9h_p>x<=J3z6%)VTD at AgcGW(OGf#P>#lrzPE*t5xH5V?eQbPn
zR-8Cj-B9&GAQ0fbfd0r!Q55v{_G0JGomjDA1!l;O1OU}!$+_{4FCFac>TRyh9qG|k
zf=EzCwUmb at x(m}%>ixU!`P!lDH>{_Gkn?52Uq at UA0wv)_1RGX?#u`Cv3x$a><n0d@
zx>Sk)Fqf_EeQ$4J- at UoXtZf-KnGFa42m}JyxN+n3Ho+fPWZSlF&hg{N=^Jmn;p}Ou
zdoo%b-_UA|#F#3hIvPYT84Ijm)c%>ErtSkU=!Jv>FK{Z0azX`12-Skbnn40#@X{2h
z8beF{g0iA01ON$W8ZO^***mV~5=B#-*|edhQVHGN-5=NYZ~*A<@2_wx`jcm07+Ah-
zWq-9YxI8M`0F#i=T=cl<OQWLE4&a<;O%A|e{^p+oHf0hVra~YTa5)G#>T0ToB~daf
zlN42Pp`NeOAInV3<uaO^n=vvnf?4!FtkTy{<qJ46Qasm_a1oApJ}5~@sZ-TKp_uTI
zS{H!Jd{x(`6h%q^i*qpIv%h74fIB`0YWq{JWm$Z3a+1shrn9pXV`F0<$LIVkyV8+T
z&Ot}A1uLUFupJkYD1d`P7fM7SR?yGPD|O_&iXl==1elX8ICew=2O)rCahO(lZmCot
zVNEKZIB|kHj^n2ac;=aBaNm9R%}TbJ5d;CF0%hO?uH$$#$rbE!skUgka9jd#4iE-e
z02px<pGZL~!OknGQ)PUhKIrTpvFyLHEEkLt5CM4iOsVr{zunu|R->Q3;>xS0r%Zpq
z@{0gM1t!o$Q>;@WiaL05=#XvO4&mU8+cCHfIHBN#fO8iDcR)Sr<WpPDb0NnoS|@St
ztw-ksi}}ft3lIWH5^!R~j{NR$cIW25-l}^5B%ekl_!qngt59&b!9b)Xn$jO^XlYyu
zz;Fq&2Gd at X8G&d{La_26g;6+4mFuciMPJ%J&#`zY6vFoH+j&pV61TZFe4-{<9X&J|
zTu~@<NX&s_m>3)$o40ml+i+=o;1A=Oi3%w^pF&$(Td{fbX7u*<VsvyAxm<2GKqvsl
zUCx4mNKS7gI}**2UVD=LqF5*mefgfRo`#iQ(x8<SB6FD|>qcquZNHS-uYG|rY0}pc
zSb|rq$lkqsd0*eB>8Gw)Yq8?cL79}Qk4;Ej`3VCM9TW>D8_8xb?QDz~DCPPy6BD@)
z7b5PO>-zY^-}x4H?%YY%ty_mzUwsuvj~=~{CH{o0TDEP>?Vi&_=bYWNaPI1}jn#AC
z`1;rHpE9B?@3_&HVVY?BfG^tmE4h2?)3U0ap&uS#g{(Sk_wL;Yg+kotv(nltR}M8b
zoW6H%s(kjP_vKsm9xm3yRxn(O#D1R%JkXfxzP!pH&r6JdU^;xbZ_^FumM>pk$!Nqd
z3_e3FOs^fppLT826kJ1^6!nr7s?OcAxOMGM0c5&*F6qzb+RrhVG7E%l#>5I0GJV+-
z?DpGlpMC=nCd>2ZwT?75mcG^9l->LGB5lpv$HSMudn(W|GAJlV(`18|#I-WA at 5G7q
zBW{+S at D?NhTv?X=P1<xI&a{*(0uTj35DWQyG;A`$>xVlTcb5YA6#!8Wg({jb at wt=f
zYqmI>;iOyuE}@hKRIPN?0_FEtEvz|kGF^OPAip5S*yZ|(Gv}Df^ENe0*@!Hhy=>_s
z699Ja-t9j1)KmP>p+o*8;Fp~2X)Q#hb&!>S7BZY%7k8<^)B+6ztnQ)V;osCIlg>1;
z+yCB~sb}~15*70ikqH2hZcB!SK6lwFjE;`LvK at R#IteHtL=Y(DoC|}4gS1d6`1>4o
zzSR{3TZ_e%LONaWzN=`-Isi8q4PIhOlO2kx5K#qZTDfj8eNL%OCd<>*dOodn;4_I2
zA9nVfJC5TxcinXtfBNaCE84F%HZ~?TbuFnwv?^p}C&tgdxBu)6J-^^<n+X7yF-GTg
zcVC?@6of)L{e-vqin1?O#S?KFu|7+KR#cD1ASe`&9FdBG=moSp4akL66x+7>gAYE4
zd+)uMI*uc8&Se0qq9~ENMLnAhHMGIBc}fXKPqp<fe>Q#c_zT(0c){zd1z&vu0dWP9
zk*axZpUN=tZxfNo*T??v8H-8?m4lIBQma#Lw?Y%kYEwbz2@#CB2&-{B9!dCP?c*OS
z^!NAw$sb;P at kQKy_uYQUR1^d%)wZ^+Plx086tt+qVsT6mS|b;8OY6c_E7|eGPfrY<
z>j&om=MD&Agi at vjLwdMAwJuG_=R<n1KU_9`4j at 3OpfHieBUO<_fqM0(f;4(rtU(g0
z<^`aHIRqjjsx}YS#*^+08E<AFZEbBA`i-l_60#Ajy2hw&Qlj&FK<nnfrWE<HQFi9k
zk&RVqaCKGn;C|$De-y0p5ClQvirQfibe(aWg;Jv0T-DY6$g|)4Mkb(XDLo!ut=1?v
z<;lddjFJh(np7lvLI^ji;LJimZYss~)+3Awm}ZTO(tgitQB+oJ8i|UmtsBzfOTmLt
zxTXO$T8(ljiV-~;r-8^da%T7%l=CHSTY?EluEc;y7+bHq?)lGlbpH6+Z+=7SytHf0
z$<ncZ84w1m^=bjp#vp3iHAI>eNE(4<m(UWsYJWo{b!?iPbkR?&&P(~(v!_REyO#Vm
zUz=K03dbP}1h6d-QHB^#fJ+Q^RUD<UVIV)D!Yl%m19}J>S1j50jdj=EUq}zz0Al4p
zX?+IiYJI+hc$<z$oq}Lkf+Pzl+gUWI9i_$bzUO0_lJV`~{{;j9ob~J1JBz!!jmGwl
zAO6Y_+Fx_|mT{L8I1b=g;GDyeRiLT{(8GXT1j+ at 3g9_i?wdj>y%NPAyLKcSvD=K{9
zZ at wV>_~1{%SOf%@2cXtUkR=8RilUuGg2k}9?#`dIgj!#lL6GCK;XE^5n>KACk3RY+
zk4B>c0O$C?VAJy%>-slMar0Zb(vtCfUMiQ0;N=ofE`h>9R27U>wXq}H+M9oNZDaBm
z3c(p~Lz(p0xY~L{$0NDx#<oNjD at bZVXby+q7-(QA+}LpMPd`<6!^1&Q90X7TkoN>Y
z^Fq47M_OdVh7EY+kw<tm8m*+iz}$wq^c{)vV>h|<&7)IB`@soq;n7^7W_YTgCnce@
zI3CV)MgvD%BKq;9BAxVV04nq%pUdZZ>Xtt<7&^T?Bb;h-;X*<Hiz1&GTwk;8`A;OS
z{ZEzALGSlvAD_CQxItcj{q-5YXlrXjJRT?0v|-5yUM!ndbhKpZla?iiMA1zJ17(4d
zymxcrS)$|tvMkfG_Pui;^637j?>INV|5jVigf7umpV*N6+;ht!3tkZ^CcHVtX;Lh|
zplf-B>_V<L{XZYhiv-}Df`9^q`Z`8GvGe=60Dxt3*{CDgNtf6GRnQzw2<8NG9&p(M
zKkN9I4Uj);OQ$Iw(_2nH4Tv-CA*SH_M*@GB$$h|$>Egz0Hu%2-0Eb?;I1+RHpa1{>
M07*qoM6N<$f{<Y(^#A|>

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/images/logo.ico b/ui/new-ui-samples/images/logo.ico
new file mode 100644
index 0000000000000000000000000000000000000000..446143f066a60f479b2cb8f8d04ab3c97ff60e56
GIT binary patch
literal 1214
zcma)*3rLeu6vyu=X_;nPV)$&PPF)r(wTQ|dTGOUtnOdf0mZ=cR#99xbub1{BqnD9^
z^Z>PV6h)fUny6#CN{3di2P{*h2ek at Oq0a4o*=I}2Iv?krbAR`oKi_vQA0faVCr83o
zF{!X2#Dx$Nz}$(sm^sgR<Jj30yCMGpMl1z837jm3H1$<DU4IV>Tbdw<FM-;Hi<#et
z=I}n~iB^qh8{XzCNyvT<I;$&znmT~?eFXZgAE at Om?1h(6Iq+2e1-ca!zOAO7n3*};
zXq6n?2kF<!f%cez;-Fgx4$e+xo{WR;oqhc_OW;#nF!Zm|JK}m8gi6aC+##`QA5PmJ
zfeZ(o(}%&&1P5#*1vVbnssk~XhN5bNz=T)>5^+BS=V54SJ|^z)5I7%kU;>-skiq*{
z5B^=eF<T)pK9+)bV;9UCK>t-HOi+bkR-wK1xpfXL;S<?ho1pQ5gYzxiHR~=e+XHS(
zYe7QMZb3IjWV72H-JpD~6z(tbgwn1o$D2s!YteWNJS!i9l%iW?+34Lvr*KL(6{_X|
zobEjAb{lD|4qsmYvGF;~r0Aunc#>=c)0W4s|D{#(q9~vaX{rGms=((Wn*~LeWqIu}
zkGvlzwaxjL25hey2bVweu<xK*t+ at Oa_)UKTK^x4IwmKMOjm at oL`l)}_NGPy}tdb}w
zHa>H`ji2N7m}Xsj#j7-`#=Dv}`)h&)9th^&^dR%>WH_MB8KcIXVf8p&s1xD|_k)R-
zrk$Z0-|Gf}&4Au$KhU$k?3YR5by~D9M&-q$=ocNz4!IY&p7%OxuJf&+Ei-G(23hU;
zHTLhMtjFR9ExVbPQVLzBFlROcIZ|#jmX6fm_hsVa3XP<aKAeAt8dqp&oBW=V^+d>Q
zkcNnm%Ds?ggd^Rv2~9_o82cv;p6LSBD_g_s-n1uZ8#<EeLwTm~LE9J!Zdo at M&*jFU
zoM+Z%F5)(8$8y`Wz~%Pd;Nlx at aH{<lk}}CcRMRXZMD&%Uhz3Ze$jpg#uec1IlFMPW
MDQ4iZEk#_;cNAJoqyPW_

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/images/logo.png b/ui/new-ui-samples/images/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..5be8d514bacdcc0d080a5b2f12314aa7ee94a8b2
GIT binary patch
literal 17195
zcmZsDbx<75^Y?N1VTU^$gb>_a4+|0q?oJ at M2e-rB9fG?{aMvIS?(Xs+!QFm*>;3oL
zs+q3Z+O6r??&@jz^oA>amBs*(fB*mhhOCUF$~zr+AFU`z at 3R|8+>dvHWb#E?@}0h4
z4-)Nu?*!FBM%(%QjfMXWIB~j6_xGE~KV%i8kT;M)XtY$0{gRCU00bZ_DW>MWeA?;u
zlWZ?u<W;S6jq_Ip8Pp$wfP;fVlV2Ci4-YinaX>;R!!$At^7#sj-dQ^cm=Jj)13bCi
z2~$$1T|HoaBaNCsiozz2cgCZpi%)6<wR5i7&z;5I`Lug|*A$7<nEp3iq&UO*tN-5*
zMPd6nRdsuOB{}+{B$fZ~#0u(Mv+o)6%2ot~oYYM?o|VmqyqPunEN&?m`A|awlMBBX
zr7pD3i>Cc>Sv9D!Z at ImZa;p*c{qLhn`B&61IHaJfzxTp1B<f`tFZY|qUfzLe(ww9)
zR7kKm91a~`0A4vkIelf-o5 at v3@`mB<b=Abr+LIy6GVza)$4(*ctA&DsmY4h6-fzCc
zv?LSC=q7>G5J2!P0A&h~x(r{|Z*i{f2zlo9$LNttv>f#MORLM-RRR0A4bB4FNtO+y
ztxnqVK1p>4yq6ppOa~bW86`{s`nTE5R_AH(#s2xvr!VRZa8otA;r%tl%4L}R at P%)t
z`A0Ii3t%aA2Q|1%B0OR??4FZ<AbvVJZ8rimfA~N-kTq!>mp=~0SJF(;&bMg42Zyq+
zFNXK04)KZ<x5u)Mv#-LLt}mo`AHq>25x{2Fz%pIR(w5Ik_gH441?Oo*kbuIGyx(fR
z*Vm{E3M_MF4Pc)fRx;01`CxBSnxV87BwTglZHD~+(Vk);5B4w-+b_5DO&M-RJOYsI
zJ~%^s8eyKtXa>nfMH+A6bz}RJ-Sh90qSPPP&0g2jK at vN7vM#$V^tJ<d5{+GtjZ&F+
z`p;VC at 3Np#q;y(C)i at Rf%=rISGtLLepSTBlodCpsyJK#_ZJib;>{jC<Fwi3qn5c$v
zL7Lz)X=G+tWR?#(98aUlcz at onbh)!?D88Ljm|E~|TL}Fkmi`?@&GR9AOo?L^Ge4qy
zK53SY3U0C}C>o-J+;3kx%1G^6CvHf_{Z_8|E*#!J4(E-ZB4|Wui)G0M*?wOj?qJ23
zq?H0Wu+u)o8G~`@e&K*Vjsf88KS~O<Hm!@(xGc_+5A3_~*#7kDVgA%zHv`9Z10R}6
zC-67Todg9}Ob8?|A;vYEv(jq=_2=A6QASmw^t^>TM1o<0=V6u at X@&=Mz99L#YTrkH
zFIr{~Zy(gKuD`^Xk7G>G1MDfueIl|!Biw!>tROxlM|50iVn|PtHVVj26|%5<=>R&0
z8Vf at Tw|e5ZjAmF0WeFG6VwT_bvDP~aYCN_UiN7yUwfnH~B;TPru%Q(6aN*?U4g58l
z at LGhS!ws;&da}PDLcwC%ox#`04fqg11Da$-?=_NivNRpXLbdzzdS(fe$7%}f at XJ&o
z at dDW>o}q$d;^F`s*%O@#dVjoNC|gB1G~PKiz|812o|fg(5)0(=lR8L0Fj(eY_S1-&
zu2j{SFHfmCEw9MGQVr at Qp3k_S{)*6iz99q0AWxxyF%ZGHg42qofRJtxH$2L~;r4J$
zyiq_}E+A=y6|`=GU?;V!Cv$W6IX++#u0OKiwzpf3$M!jP$}g?C31MIyssFm-E<%3A
z9{M9}iy`eBo3s&bV8O5lia!(?LIfm+S8_-XSWye>^>8TlWXYo+D6X}HFRK!4rvEQM
z;TUkZ&-LHqB3yHJgO!)T at pAa5pGrkdtc<%3)FcS`d at UkD-g6VlIRLg{HX{^Bjx+mM
zu2MIIu1t`$gm!Eb;H@;Si|L-K^3!Xuf!2!h$HOt&>-CzCp|6c9YFHK|mi#_)YtDT@
zNc{=>TX_tp!wKfM9$G+;HoO}xa#)|$NJzbm>aS!Jw=d+eaRX9mLVhx;$e{Qi>4nj5
z3hg(Ar{Y2j@<OlYJXUWk{xLv0T63gJ`$TcAMMGpdRqq4Pqcuh@%EF(M9xwps;Xq!A
zy62u#u$jS)o_>dX-Ivd(6d+jx at 40nu?fV at 0nlC*C1 at ylgNyD-M2~oxjUm6Z>qUy(f
zXG9Kw2L#-|M at 5!iXp-&!JYDiiSn(E5kO~HRT#1=p_KSuVf6JRazH_-5*!iug{1Td0
zo^$ESG?8v`yu8mG<Y_iB3^=GkgF_ll at u_{ocojAk0z@^Fovcrsyru$@sM$Iihx=x!
zzp0=2+45bHQu^-2i2f9I8Nns}0<|%J=pU$=T+9pY)a8DN+2SFJF>Xm9m;5aiAE1cA
zcQ?$4>7RS#9}g$ixov}rH=G>b_VLuD#G~`W#2I%%6I!%~p<v^SAHpxvz^iTz8K$<_
zst4x_f@*h6%Iv`Io$4?BL+Y-}3gcWjnY0UXXwPzJ)hQegZ&{!L-CSxVYbu_X;roJh
zL5~}%GXdXOm$$ll)??M~3AI>K0Uw0K2YyxbVm`OT`XObpR&LGv0DK6ZFM-DDe8GL&
z_4%(8H|3Jp8M|MV8SW=7j$E&l)@q$8J?-qzqV{__qD&q=s+-tr)e=|Mgk#l#l41#7
z!Ftcq2)6`rBYRe>oi1Xi2MM295(uT(98V-x)E&sok)fR1z5Q?J&jZAP at 83qcOsc;N
zc<z4pQOZct$Vr)onxzGAETTe~{_)KPprl-?RjRNCq9d?+u_^@uJ3&(QV=U7KLljC9
zr*cSs$shtcWN}3mfKUYB+-T}w(r{-n1Opl1h|R5a(G%Y{fhq}_2gqaLeS7waB{Ssw
zjmRmVL=NWnex9OiDMT1>{V*+>V>L6*$|;>q>Rt^!d3jFR^ZLT*>p*VP>m+maq>f-h
zp6=>_Lg<-1n=^?2ik)t*X6v&Oc2#*dfcNs5>Juzr^!8j)7n4qMkeqs*s3oU0D8J3R
zb{>8Oen~V$9a;$=(1=OIBXlQi<v-iaiXRv8i{<E&@1zyaE4L-C3F~_rN|V9c;<9Qt
zTl+3}Wv5^IR1`+-I>6(^n2ZdMZKjqR4ry+YDnD99bNo}J)h(AG9t>bf35cAKKro_-
zYuK9j$Cf;*U(@A%_uCfGk4*eb35r64n|=O(Cb^~gAGQ5?p0ad^cjc$pc$H0LCFyLb
zXTg?Qty*0)6~%095Jg}z`#+mL2IKlWD&S_bT>M2IKL-F+Yv~G%sFiC|q1^a#46tKi
zmbBLi{ZCX>XD~ahUG}%M9A7Mfi!)VR_xdPu?m7eAY=ogyRzf>a#IShkoIkWMra`I6
zct&7=R$unp4Ee8AeU%LXHZnJkzym5|iKfR$Q8h#$TE#!`+eF`jcA1O$o7S8zQk at 9d
z(Kr~balYz0{p0z>%eO`XnaXBR at P|5RM%&Q5c7zeTQI^->Ig3v1;y{-H6Eze|&-wCT
zT~#M+{drU9P*-w5o at EQkZ$=E^#@CL5B7fgPd5YO&)E|yd1b{d!P?0-d^H;2O^&dYY
zsw7D*kE4`tlRur^lZVR2^|NkkjQJ-rnI~os6-`B<S4sFTqDl5ajw>VL)%4so6=@v@
zbnbVPBsuld1p=0t{d7FbOg8Ty9rdM83{K at nnI3Tf8Vwt`9}Ivq?n(Rk)4VsLbVS9}
zPxzdW^2oI#CiM4dpd!#g8Z~Tv3zL$1ldTv<GX6^2_|<;<KYc1f9h(@E*4>0L at sNB1
zXofB27!PtVxpRg)8%=Ejbg&Dk`t)$^_0{lBquQ+dqvBC{_)uqoc=B1rvM?u```A3w
zoY7USWyNLa(9&!4s+p5r?ES`(zp)QyFe(kO6b>;J=>+y|k-p8HP!18iqep8Qt_4Sd
zil|g7a3>4z=te_k3Sq*h7Ab82chV$VEIvSH^-8&60av9e at od)v<T}n6R9S^x`S|nB
z!3g=`8}RXXJ#pWmV0-#<+X5DyuH6(w`x_k%`Jdd?pKUh+N4bE!?Vi16M<bvgUV07~
z^b=*K5I{Q}HufT~5=`I^$*9WW6 at uAKia3CW#gm{X_oT<a^!yH}VJlV<rE3YAVn!4~
zAqGY1J@~ioxIVmeEXYA^0);#`)qjN_Li5A)xccvhKdbskjpLTa1z8ywISVKJWUFus
zmsHi_Gb6kht-%D8Q<d*#XO^ChR!3J<^S$m-cJIkeFqCgl4^Ab;8{F6_!~CC2A2^v|
zd7mtlvUTD7A(#jm at Dh2it!=gRq;WWs_=V%*bYBc+ at avbit0ebXq+Uao$-;t5U~mu3
zp>b8zG%}4==x3l at gaIC%Q0K6}GW#g<j{6+gQLz~|y&R?xOJ8MmKp3n1RiWAp8OpMQ
zUa#l`lnS-7&<OWUgk#QryydOnc>Soca>@Gk;9K-7gU$C~m8Ls!4*PNXt{V(2r#V(U
z6JDy07Swq`BRPui2pVv`(lBp%sY+I_1R)YhEANz*c10;(IfW}=KY$6&W{o&uPTf*&
zoWuj|vq*W#B#K<1T&gAMZu|>t4vFI_gnDQA2SG0zB3hpAR~<`=f$QXSZA3<KzPXxL
z4P2}Mq{>-N9Oh|<0UZ@^rf&K7Ve?{UzP+1fPv(l-3>QiKxmE;n`B7pYBoq~;hsnEs
zsnko&NnkVqgKm(75|l5q$FA-UVvL3U=eKm4eoH#>xLlZXW74nX->W2St#r8Y&NWQ@
z&Eb>iQBa!As;Ks_6%02x;FU|`om*9?Q1-8YHlZ_c#1$D^##ms)zG0NRwIa*f$6Aq;
z9M9v;wGS&W3;6kYv>ppS7AhX&m>R>*{dE3!U#nrO%3!E3oHJwqXF`4WhbgM$=xirG
z`k-HMlAgO^Gd at JkW{(O98C5fB%QgI0GuAdUEh=QU61fciW7);i=p44KnGzm<YFLLh
zmFsF>M6BAwIrmePuZGyRXuI5SDot%$7s7zX=(Discpb4fIxbc|)5Ct11Xlb<j7H)k
z-mX#t>Y9I%BRtPgkWVTZBmz>)qZKkxzRW%6zIaz6`Zz^tciI at 0GDV57yL0~P-8I_0
zpO45A%2Xzf6RZ<l4Sx;{G(@P4fL5St9i(n*<*~!2K;$)(Yxr$7;%;Vf*cO$WX^}UI
zy`H7ciD9!+r;@q5{lCC;q_uRjeNsiGMjutquItA77LTeT7zywAlL8vyork_Cir$-`
zhE*jgOT-F}I=BEIc6A+6CwJKoOmX}(LO at DRjEQnuE>)U6aXq8`W%<=-D&v&XEOS4E
zRlTM4h;PQ=DMidGx`&f-W3mS}TR~M3<~eE(H_rlAi1lK5<OrVgJ*#H^h{v_Jc`qqK
zuPMya$6j4t2#Nd&upNAXFL^r%0(yCWt1y!V04V50M|!j^$%b<+hpL6Sv+ZJK`z+XH
zkx(gg{M*b3kXM6*iLw-b3?XILE;}<^U2<RXqaE;c>yh3O&BG?*<-rMkHzruFYem6Z
z27fG^$L%XsLMe2<Y#9 at OrA)5k8|NX<{=FZj`+cE#(;i9ohVy4Ue?|FtGF$Jpzz^-(
zy*;0UyFi=175`D<)ccXO at 5Z>Sc%J=c>GWcTZ9Ks<(sr2hz#X9Ml7r-Pnf4BHdyYKd
z>%MGjUw8?V*<?TggkmZ(NJuCW=~=;aTrA)lhfmt}r24!`9${53skbjt;Vq{SuzKbw
z=j2t2C<6j(yzLWSsbaNup@{d9Ge{;cfd|?VHzGvhys|bwpM#K|`d!F%G-ACiCZ5Y?
z11W(OL6?A96hXf~w}fdo1n)n;v$ow^vz05~e{H)lnQ*HePJLeMh?9r}x9$PxSp1Qj
zU3H!+3L>F!A@|-PUv67bvi``n3?j|j(?yV3i!FW-8)vCtFgjG1O%P3jEy at uqdkm@d
zCksceIOt>*e*aObD1*$l7{wOJWh9}cPFkA*>%sc0yz-{=-{YJwR at U|EZA(ZnZm}l*
zbt+JBWQaa5H^je{H118i%>LPAdb-5b;#;kL%BmwP%u7>|@3uy at kPyJJMBjPujo5Cb
zaiga&km~P1fJciDMIfo0Fnx-aEVI_y1QIFyq>Dzzc-aff^lK|d7?^MSf~WW~;x@>z
zcQvMY-oon_Zc&%q%tPh;$C=qg)3Sama_awn4>yeA7N#otoWCgAPgoPlesHz6*y-p~
zXD)-Z&5BpAx{RC(a`SUrja0pLS at p3`e3J1ilrd-1>JOO&=Z)TpBNU%-u35b-wacZv
z+^W1a5kSG2B}e2HzSHI((qG`gQ|o}=-`8j|`Xbdzw=VpP;-*2Xy|~{Ah08xAvy?6m
zI&vLm{?S-}JYM?3D%*5$VA!${C8H+FG|BGZSr7UA>{gJnD$rfCx-<2~F0=ccg9Eob
z5yia3Vdjqm**1yIB;(Wwj9XSYfaB32+x0 at oO7gNPd2OA5>2B}``)+T2)G%8(grRn`
zJoQT{69qxUh~&IH9agv0hC>!vcqNZjhds_G;pe<3*MS2{`u<Q?<sI=H)RwaR3&PK=
zoj1W<t~t`It*5v6xG}FL<TqacYpI;sJ3T$dflY1&kgj?yG;)D~vsO%fzWQ6?h~- at 6
z9CDARy{o5&>Khj}A)(WH<&bU1ycxvi$paI_M5}+ad(|p=FNL&#b8zoZk<%$vR}`Y`
zOt!#ahc at vc?8EU0jf0c=>s!LdqZb2f0lV@%SAyJTEy`?6K^7+OIaa31-RK;N_=1Yp
zs`kR~%flqCvdf2+8X?c>L)KU~53XE36kr635xleQTfv}Mc?CoeiV?~c*)uJPt!xvV
zI{|~AOV3UT%c^4zWfFB3hLM!Q%J{m=f3`I at dr!i9MbbY~KQ^yvO5GH&|0Tq~^laKH
zttFSGhxJotcxI=3$M0c4Me#KBS_%6$U+uoXfSW4B_z}{io)?D9DJ4-l$zQ3J2A*YM
zMWfp#1cmdI>a%8K`@XN&*|KBLA*wsm#NW=;dGqlacj;ZL7<rBQyER*!ln|%P!_P}Y
z6jV*AY^a#*KH%%p6+NV at z|6E8H3XaI*Kd2{WA&WhcFh!TBeQFKvL(Ro;CSMbqkDdP
z91S89oK>3KNh_S-F`)!#9;KJdoUr2A;e at E!$d2n)5V0R}?uG)(n%l?@J&c#&YnmfH
z%%guS?!xA8IKeH7|5we!bvc3Ag~{38YbU&PWQN8jYmJWEWqs22dApyFmpd;<ZBKBJ
z($AZ&PUK!b($V7nA&;lYR#*R4mzekt7>HxKTiy4nuFP3C_;-Gk at C_a{s~jG7;`J!L
zutSQ at q|^26)9Gf}xXsDLO-F#)ye(F0hOsmlZ0WkkmP3AH2A;Bna`a|^7I}!t7=vEq
zlBJaKx7ZIZ4B;z(axuaR$wx0c;VDIZv>(({IUq9Jxu}7O#s6G#D<Ls)<^@vyzq17@
zXR$Mv6;o at vcB(I}S<E(D<e{nJ0%g!r;byuYHCH!s!TPo!51!;|!_;aOdU!N&M0EMI
ze+mJo$I5hE&=+U4JdA<w?}xFd>vZ6rrrs#bDIKrPV6K{ZJlW1_XOFiCFVR6ss5;}d
z>DluOu>;J#YA0__V+P-18}lK?O?~W<j=z~+{oD3Rv9Ryax4i}3Q5gJy*L!wGncJhW
zH4Q7ce16jOZ>s`=XE+^8l>|LJE*JpGV4 at P&ocFI_J7fOy_37*9f#=nRp|7n4&sJZE
zhhgqw#;Js~-lhi~E~&uDm__tQ)rZCujvlypkyN<_mF^<p4J=7xgN!p1>F2h&-)|{~
z*7WcsU}TYtsl75+W~X*SeNF=m4Qgvs2BYmgWFgn(FMA6*qw{jzmJ*4}<4<tj2t9P>
z5S at KvY}*)luMzU5#LBk|n&m#ND~hMkkP-O)al^uQy$;kW+psLMcEoFp9kuiDH^Mbe
zoco<sbaWeXsTc#NmTQ&2W~oViQjwnsh(cydA^IRj6oP_pGD{Z#5zj*B at vkL_z_+SH
zr#Cq2Fdm(WmZ~SSvyx;8_%VPO`Di1{cT>W8wCA?wt6s%%Dc_9Pr*I)_`zhfEuF8Kp
zv<YP1Js(PHSkyg_&35Jz-QuI~nV80b#?<15Epe~L0AFuzYEd~BC+XYOmb(^VeROI$
zfUi=Uh5tM|B|+>$j=c?a-|sxb6Wz^2&9RtwU2|z%9>&cTp#9-={(((w;8>2$rv30U
znLmPgz$D-t2y<0O|InLjgUXB<$a^TV*2p)rZtD~^GAXZ`mkx2J8n)TQPCj<|Ww79K
zB^FDgXz%GW{JsmxG41YpFt4J3=(=BX?Am8M^8c75;mb}Xtpu52)+MWN{xfpP|HzlF
z6Mdqi66y-M)K$sg2IT>XVrjdd(zvyeVmgDv$Yd4)Y`d7>!M{lB2FC~J5?79>8-}YJ
zHD&c*XK&Po68k5- at _r!<=*AJQd(0r(Hco92$gWiJ7}*l4tR&Z#J)2$z+!<(<U%DcU
zuzsS<qyHLWLVyyQ05=TpUjT$Wr$<>UNMOT<yhu{JTA;$tIT<0>8T!_Kv{{!c%XL^H
zwZE$CHlp`@{+kmu$fNo4G4sGEueNWXLN0l&i{tQG>JIC5F~3F`(YZ9>EZ{s~V-(XC
z_0i1M(95Z0QBmN=d_wSdI`#$cc3mSQDcbi}+XZIn6J_AG!thBEVNDJ1{7Z>NLOE?0
zVuX6IYYIbqAk1+&{}WPH+hHc&&W!1~wbsVeH09wf-(P^Vh?11gkYh;XM17lVY2nk=
z<Y7+!l&$9Mnb1)K4%l9tpzHD}r*yeUV@;A$4D|6!QTabDOHq%hDzJC9)jbJ9MI0~#
zm~sC>XabNBNX1Faz*4d+rW|HUZXPlyYPTwSoPQ&lwW<N!o)`{~^s67Ce#uVuB#M#I
zAPM|}zlNH7Kb+4yE%o?;O{6H`fP)PWlLkf$Dg-KQ?f=zo4jtrHXd<Rt?XYpl(=D!3
zV>h($JJ>yL+ou#n1kAsfQXZwk7Ecc;Z5FUzFPAe};LmGwo_?2|k{OmCjK@<Eb{MU^
zIZd5G?-3C0OpPq~AQlpN;ZW7!;(1+=zs|8(-g@^X)iv}thCj6=EZgXF<6E2W(8*4y
z--VRE+sG}vRL%4D=&Hx*H^<>nMhnr;{{5&zA-xE-Ef41I9sXm at G^K{!-s{GlpM41_
zJYKLf1vOVcStawg?QDil at E5C1WHDyeWHzv>w5j-~=lO%B01N<46g*roCmpSlBvg`x
z<_k6yU21pVu)<#sA<RDlj!A-Bhnig9u!_QEhT8`RytBW~T^&HRp;l<lmY)}uMjUS}
z*~MH(TA2sN)>2-KmYixt73gZbpO#3u{*5SfGj6Ciz0|lb1S6>N*$MVB?{4zZT}i#9
zg<h<Tcv%wqqHdDo!G)pX!RrOXiw8sT0oZ~{L>sV}Z!l^)^j!8_Y%W;;XFFKOG-*@8
zvGv>s`;PJnK>p>@TbP>yrhq2Z26b9I5<9wygKJEEQ=)NFZjU%!uoO_N&7c19w~E&p
ze)OO5_2R=x1>A8;A*TU at NVOsXo86$;ubrn!nR3Y|xVekcJlj|UX#qr=Am~=9r_#W=
zM&BN7*f)E6Y8WFXdKg at Io-rg6Y;+N#-~8}=)NbG5S>hbV?rcvfO3Uw_4SCQ6#+njg
z!CD-G4)76bi6V at Z#3b>FB0}gA{IZB9I!trAeN6|N^k8+1T&9PMt<)o7(WC}~jcS7;
z;!UC*hf)+#zqkjj6=(#54{(5u+xI~?-&zMAvtk{LwI at F4<;RNE2^v{M5wH6yzf|A(
zSd;)w{;savMNQq>6O3pFq3{#wP$FB$i}Jp<iUpytQ%6wgh&IcezTxC}4aQY<!gf*(
z^ZyuhoP{jsZW%UA6KR&4<Nyad)dquQ>hg#}r1+Th8f3{vT#383qa1T;jO=C6{m}zW
z;Mt;gwgP<@U530iI#u<G^(Q)A)YL<tC-X047eZHHU at GxJM(;sNM<lR#nplCI9XwMI
zE(#6`H$+B_E-%CK?YHwtfS={_H52ok#pXz{p?sGN{(&RDygEcM0L=^#fes$bEd?r}
z=Wm)1{yQI3Dc?=-32*5)@z?LXSY2lKJ4qh at XFn<~nbWm8P?}{M at 6BN^@R!)JxHz!B
zuJxbM+t(e+%o8@#;htO;(r!V1f$L!v7o=kJ$HjbB?41~sTN05`P~<8 at skju_b%b}$
z$Gu`pZpvp05-)CAOw4{y*}k8{<{AoTl63M*G^uN_O3v^wdG at iTC6u9|_5c{Sm?~dy
z?}&BStuErMUZj at ePcMY-hcUR!wjm53hzIxXap6Ig5JFgE@}msF=n|@4AS~NAr=i$S
znr<i%2BK?qU}IjZImKn~$ML89`PL}~K{V$Uhgy<#6Cxs%lWTZ}Gl5 at fS^o64XNC=N
zD;KeOhpdbTGR`p5Mn!7GIZL=;g5w;$bYx;+rJk10P=lhK8#F52>(~Iq53k^yC$Y1&
z|KH^Db&Z3<?gsv9DIns+Atm2`yar43%!*~s+(_;l`@X*;rOs+GAgTk*hTb<4?qVRo
z*!n&AhPOp&^2}xJA<xZL6UxRwdEHRLHeQ|{Z~X_5_-`Ig0e5 at Vor$64>%Yp$aIcxD
zyVP<{HnT;KNFG(vSA&m?#-jya=Yzj-Drt=sDD+N@%7@=~>1Cw4x4aPax9U9HRj;gz
znzX}Fi=VnP$iL8F!M1G<J5B>!Ii0IwIWo6VdGYn>*d)#D$^_sS<(Q_Qj2t9Nj|0aT
zP2xL?S at 5hsHse7flN}x+ewuO`p{uzdVUhZdxWXg&7xU6P&B*9+X$P%pi$@kYSj=yV
zVE1$-y8Yw9PD`tz4Q(9DS}-Ud at 4*YU%OxU2=2$~Ohl{haqY}q9qI<Spa*-?)OYbN$
zBJ5I_o at xIluy=SWS?<Er7Qg4+M%t#0Z0V8xNv9ORWKQgKN3VrOZM9*4{?{$(f1AJe
zU}aDd!uTD4j$Y=L$nj<CR-u#?H?$Nvm_S at D<6%qE;i(ZL)HxX$>v8Hff<vl`Ew}gu
zrsELyEIDbHOP7!<M6f5ItU{1rW&#NNP<~?g&SmoT$I5+%YO(kH-6mMA?;Snx|F8gY
z0WK)jiEY!E7HD;}Z)r|waNm9=!~Pi>Iy at 4uz=0dO7C*8&pxADqjEy7(tSSBXPb81;
z7C}K`5!Dp1)~S~1&nUs7HLFx{Cm#15tt)OqwiJuO15(O*tTd)yB5sNNK!@vyMi*6f
zF-c{(K|!!xl>euYIU<^1eKHYuu5-qC9e>IZnIXYeWzOkt1xlEQ&(>1H9hSt)c&=Q0
zGAK?&ka4r)^onzNZVd=EhW)5{44C<PrVd3(IMA&JF*EvFtI0M25KiOk at 2=Crj*5Px
zpIglQ=?I|~TCSuH{){j<q_9UCtU<A)g)r8F;5|E%iiyG9A3AZW4lT403ZR&_UEZd)
zjGSA%{PwKvfNg~OELX+>uN#upTpLI&6dNFAF&zyAbA6ccFbL at D`RRR~i;QTN>#(JD
zvfy$s!s#_7&h_t4UT!+R#dq*>-zU!ySvSCaj`fVa70t4Hy;^#6;7ZVfrz at Y1RjN)-
z=t8MfyLe&9u*<o_g!I+s?Ti-&*m`VR8g5nsT?=9mT?B~9pPM9rap at -6)wt at S#?j2G
zW6FDzhA{~EU at fh_Sk~hV`{zQf_pEO at FA4guP#Hql^YAHVU&mu|<jI#AVY#zE=&xOE
z(}!}Gym{TjEF$$S_6VRTf8NVwh#U1<nR at ltBaxW&nFQU!13;N(A>(}Yhbf839#}B|
z(+~sget;Yr;#Nb!VXJW_nJyD=a>bpo6axLJTP0TUL?i4J4FKiVax!!%c1F|fol;|?
z%&m&!?J&-6<22q5;gy`zfvp)1wRw0Y;fA%!)xY0 at AS74&VNyGauto1}bIgc*!-W$O
z?gHT*P{j8hiweOaGvu!3aIi6(p2SNrBA;R#K7a6YI#i(xOAuLk#w*S0V%9}8U1!A=
z4K5eHrW$zv*_PP<c((1H#Iu$}xK(lNrvzH2nA+TcGb_1D`JbMY8_{ese|GlD{aJCA
z$t3jkzRy%Q4=9wuqs&Nc{s9aZ6pjBqeLcp9qU5bZ56pD#p*n1agNLflwE2SZc8_Vn
z$AA0Ap+Z%*`$;NhNKFH{Y&xWT9rWUON&c{G9whDq8qaNFW`Y6~hW;J;efmyd*!46&
za4{4h#HgT`U&1UV>=<FP3(L^!H&Jf6OJTs)#AH<e4nzBvRLs{9F5%`?xrQeg%h!0l
zQj%@J2$XTn3;T2pf&h$!4YbQ at Q$s|TPef#~c9%NEXR|&sdhBTeEuAqc8Op<XMpKgD
zb41bojn2N$*^33|58k{wOQQ`z#-#HesiEZqiSL>;(!q}rxl0?&avJ_6H{7B*ME5=a
zJ=;)|-}ntV32KxmvopC|QcdSE0Q-!v+;*`;(G%y0vJ3>Pp$X24AL5VA4_v866ohvo
zp-5M!GSi+b;`6`<;pKm|05$GIsjMCn<rHjfa?w?gdI6(KgTpV#<Q{Tm-0;L;lK%*9
z6I at mb$gC=V9q^aYjwU)I-l1rJ&9AKsE1#n11cm+XaBgEF=~kVb(RE612%p4TL{RP(
zLD-w{;=-0URz!$COc>h(4Ei&P>+3dvr7*>U3uJO55i)h;1USf(_5)o^Yk)w2`!?eQ
zTl$xxK{+lgyhQOj_lthP at y$wq<PZTP at T$YN%lW?YERmP1iJwYV<FI5FfJ^Sj?Zs&Q
z=I>>QYe-9o301(+zS<__JGqc+0f>gTbBvCy-UJ&jepOI|X>DdC9NIwGdkG8+r~*&>
z)&am&U#qIl${AQnO$l%Fr;CUlaBtN<YdlEvjwKTZ>3wJh>Yz`^HIKwv*1!V+8e at XS
zsL)hkTm77^cr#ASyosn`KIt&m-sbSyr at LR0q(fwU7T^C9z>tSlBJPZ2H;-6c1lgrq
z+PcK*+)H#(&Jk+eOPCG1!XW at E`?ojPw<}f+y7$>^*qzs2oMz1zm$czs>~O7ntxU<_
zzws=)9Gtwh4*hY|hL<N{HNsbS=zdM##MZ%(iuDLj8PG=x>Z7pfCRY?_&t9^FS^UlX
z#+(p|I)&kpG(vFn(~}M`E6&YCW$m33Y8dTRN$bTtcYVmR#`P)NtBC&He;Tf3Wt9_i
zN9b9m=$*8^`)QZ{?LND92`qg<CXT>R-JDns6+FhW;e`TvMm>f)8DzSFlRNwX8>}%V
zv|F)8;&YN^69KS8uMhPCyU<aBLQbYuI#0V=fj at y|pQ>7~0v*flGRI6?8Am~T at T3vy
zz&?Ta>R;64O%7CmK9l~4 at CrT{P;0VYH^ESpgLpkBbh-OoEXY7Wn82AXuBdK~w{_Me
zf83P3FWlk;N&D&!IqPjeq=?`K<6$d6J2^*){a97B!+BnVH`)4WGe22xa16xN(1?|8
zvEHd7kyC79?yxZ>rF6Junk7XC?0v-U$%+nb%XWWhI>kf*xW7yn5NgSds|+I{N8km_
zBAWg>*Q9bvVFnzLtlXE|=NpmdpRnP55Jv}+*D-jUdOc<P9fYZnKLtr9Z2p=u(z{EP
z`qkvg6G+qIPrVu at zA|5_oMZ2eu6qLhr|HM|fIxk0ZWMZ<H~$!~Z%Op>lyQ3aymZbg
zlzsw+ at +oy35JWzv2dFWt@S0+W3swY&*<$vG_{<)uCLSRjVN=IZcJB2ki4EWn=mj%~
zBt*QdjIJ`47m57yHn3s1XI1|@KX#v5_44tQQm-Lk<s7ZFOPQ=Vq47_1hRc;R=*-__
zZlW}i3{PW~>|_==4=e-B7wafiS9Knwh<2n;%v4kz7-rrPb~heAGF}k$!F{+$lon=F
zgG{4?hSD$pZQFg9ghN-82re&m!q7NLy(RD1Kum7cOtQUl%h%&`_9bcF;vFcJa2)Lx
z<~{zR`_yjriRlr4 at SgHak82|L3tBEp?63LM46Hy!#0);Lg;id-AYgUHV<W$&V`*ag
zSnlSiqo7)L$|FOn0D$DyL;^LT!nsu;ghz>yW|K0C04qlk;j5KKfEJXvxo71`+iYIi
zkue1iD?ZY>R@><L-_Z8mND>v&k9YnUsVrz-US(?XgAY9Bp7V~AJG{wIG4?DI{e+1w
zgP3ve43MIp<Wesc`B}Ymoo8(5Ugul_*B7|0NuXb%LsKTTEw<U4OE1aH^s{kTcT(v)
zc?(+=*FJ+ub-o<8S}TUSoy1r}!Hlc#T^x3(UjfHmM5)?X7Hwt$!#~IZjZFlXL$4X@
z#Ij38U+qC>1HX1LCGw0*Ms7S~R}QH%f&^dR=HLJiWtl?Qf3aCu9Y21oT)0(xG3I=0
zPmzieyc^f9YkEt-j^+rKEqd6UCJHIAc_eczwUQTO0u+J2<|YAGVJbS16FU^|F|`^`
z)3N>>MV8E8b+Z%XtXBjR8B2>nUc-RDP#18Q>#f~YcQ<qQuj7!HuCj1nIPB=+v=0%e
zcu#d5l6G`K324J8 at F}ZMw>-(-;})F<WwZTL-9hUnudK;M=YO8k$;&m=X=T{uMp!6;
z<vF_K?K-p at J9CZ0gluSG%t_2)sxTE8QxFdCI<Ip-4$=M!My4}`$4y at 9(Hnos$#Nb1
zUj5*&Tk9X&>^!BlaPmQf;SRSyg%36w6>{%)UY`Kh3V at -wJnS$F6n0`>fj_n^s?8%z
z{^v+^RRwZC3T)>6s>%J%Ds-RR++?;^7hB!rZTio at 0DN=AK90j}F-b`(^RV`@`KKGn
z{7g22BSovFr0Ma{TCf5}BB>}qWKyxJ&>yCS83|VxTN)Y&1i|1$8~Cg6x=*Aq4Df=3
z)HmF&=d$pt1>57Zv$p?W7itAqN&{y>M<S5&2jxhDTue6BX(VPD3jLR-Uc!zBU){HL
z%nBNE&byc`b at Ugxpyef`3%&yZb#e&!p*Io}9D?#2j7~qyXJkqcs23-o6{bci)95dG
zEYld at G}!1 at lW{oOZs>JhcYQgnV`JayeNowI6S0B&Eh8Kd1Ng3$xjp;KEyqva{;l(d
z at N5QYJEAaJ;RB0a!tL$Z##Yf>`-IOXJa-gdj`4RyMr<mlJPjUV2z5VOp;3VmJR3h0
zj2iSac^FPvIw24U^zfBwJe?MEylK;YHGce3v}~sdl~?M$8AvlWF{fGt{N8LDBj?*u
z^&0al5Y?Z+#L{KSxr^Db|9#|qym*h{&y>If+PlQlrb=1v$Q80aAly%L`eR&w(PhUP
ze9~U*ymn`})^Is0(e1dvtN47I7 at AVv?lYh$73p1w`u88eK^||bg>v0lubW|XwJg)#
zHRow_3m;viDr75%ZIfLd37Z|ARPt{adT%Tye4PMcgpU`O9M#bpEf>eadptD3Xfy}H
z&gS?VJ16gbcD}qR{m<`a$-I5v$4R1We1%1mDV<vuznLUZSRUO$lCAnHE`m^(Wflde
zdEay6N631i+P(q1J9 at EVS?=k8Yt+wgX}27I!xrKC!A9t<$)SC_vbGUivi at HXco}Hm
zs)}ome(g at WfP5s>H6xFZf-8S9C~eM#_y0Dy?s0oH at hIE2SE$zWTzxgUsiP}i90=Ov
ziN6!(aXb8vG3C&{OTfA76l>wvOrlP-hcgcgJVmw7QG~hc9(+wqqo-Corl173Zw^R$
z6ul0nj0|dy71u{004fJ79TFdB5(SlOo7L_c<du`Nl=n;N7bUxd_hK}bKDuEEHRqE}
z*SoN&CWo19*IKkXAI43Iq;(Bsyb at G{3lIh}F>CZiN}TCyOF8c9Q-2>{lSW5>{;lUB
zEr`_3yMJV;6(3%?D-CG*iUvaas7d-Uk4h(RFuHujJP%aM%3!*k8eJv?cD&w<YdP)R
zn#*Hdy;$zIzR2XDzR}nVy_@)Ml7%8>Jf4XaQLmeu<}h%GI at JsK#|l at cPOwAPPNaow
zr0?<%{|jCVCTywQY4V&X`GvY%KC-o5F}S=vkd1`l11edf)0~o;xl-Wp53srh=hShC
zg$Hwlp~`Td+Ds}zrEf!w5)Z8jX=;ut(Aau#nIXx%B~N&_L`(UWPwiH7#o}M=KjB+{
z*6w4C_X0YGN)GQQJcJ#7BTkqmqjOEmjlwy^mi at TYP)7&0o?_hYpw6W5$#rKnY$-OX
z*rq-itW>u3t&BS-)LK{-n4iiY`pUn at YBnURSCpY}Q9X<$h at R*Op95&kx=^Y*ZHo1v
z{MmRmqmrVSTCaW?h&Y7Jev8ERJGKXr-9N1}*k~g>zGt9xR=(RpK_}(w`!nK`GR#>-
z_Y!sL^c<<--m&cBMa3`qXx}WU<d$@xYBOqzqs5yX9-1TC2%ykr90Zb=E6sJ$Mg&QE
zcoo+r&TOQjmvGeGJNjM7c`nRvEp<f_yR+m+x*Ty_0xjRd9CLilhXSTu5-7F_1?WJ0
zu#Ug50bGR6*Xp!%!ftZI#e={@#W|MF?ZBd9;Qk)~IDqdAeP5c`p)Y8nG_TjDBiQKH
zjC9F6wl9h9rl}85m?(#)JPJ#QJj>u7puP9DBNs}iosle*uvURZHkwJW7&xFL!|2R<
zh7V<*d2QG-FpSdH#(y*Q4G8~Jrxz;GzfEIn`ycb-ug(v3UQ2j6u44!&y=K(kYgrAP
z3YYO{B|WUSLhVTUauXzyI3PjP&e&)nB(9mTMKB#KpaohiLHOD9RF0f)wq4~TMDD+X
z%PZa(K~?4$bBUi9$ceZ|e>s!@62mG_O98~?pu`{VXzpzJR#y)rTdJSf1cf#zOMQuM
zss6c9s at 3}Af>%1eP0#mhYS(A!?0iAm{5B{IL3(S=ank8{9v!l?u{H!WA0eKK>?lxD
zS`3oNwx7^43fYJeqo{M at nXeHZ#F`Jp5%=-%Imhm$uh${?lFO~<yK9NBC?S>;t|!GB
z8=ZHoIc at tzGgymT$(?VP=S;YRk2MTj?C^n9-Kca)mb(i3Etb#qlyS$sfZ(n=o4s-z
za3_2Sk37i_Hi3kRZwfo;Y_0r^ClQvj3$t;_|4kR2Ay<AuQXuyh#o~DL=;@2mO(+pe
zVG;6pM~?p(lPLV~Kw9Xe_mSd45RfJK$a&KB$>&e;wZS*2g0aSTLUj}5m_9X^Gh$_9
z6 at FwTE|xS8X-ldmZFUOnPUN=TNUa$@EO~b7fQ{@usPSrQA+1`5*#;=rGiWW246X?O
z;@VhL#K?H4CMSdA`a#5RtXto1yAwIbc;S;@G{f7O^QW^WiQe;mukRO&BiA08lLw2r
zzl-0!(O9L$RI{?O!(N=rrQKKgM=QhbGar!?fxWFcWaD3*IAsQ5VdO;ANG6xa2hszR
zX}R%U)!62-*v6XwHEc{tR*ReuVo)CaS at 7O$WNZ;IJN#t&?eWd1G%)mc_j;a@`}v~#
z3C(L%;kDaeA_69Ob2}W65nYle?-YMG^@Br2xj4c^3T%;pO{m3Fplx>pE+e=U1x5fF
zK#wLT>YL!EwYc{f%qr`H<pnl=c{Tt29%&qB+D%XQPBk>Kj)d%r4#(wzSl_dm_j8!=
z{Q=)Xqce at VXbCoqf730P(@)5Sc1T=(hlq2MWvrF3okJ`O6|Y^O*V?I;qdpbCsprms
z?w_a^K;*P7a at m4G2ef_)oqr^It1xE5qcSx=1LG{(U6&}yJ4|sYve*tc9!I$;+Z_6-
zM(=;FC5`8$!A-G{;26IAE&JdW*8XFT at fRjLw!V?-&+(|1PizeuEp1KEs^>gnOydNL
zjL~oJ#m^Xd4eY5;lasjEb$|AV{Jy)6Zs0=u#ExKF6m6`sc!d<;a!7@`*2`_)7hd)E
zqjgeB5FcftlG1LufS>x&(Q>#~%{WdS<}Uj(;*x52*6p`<sqLj+ejlXppBgrq1+`yh
z!FMo1h0>42uoh_|1g2fVb$pW<uSWsMqiNn;*Ijjnc!by1K5%!`5W)X~_Pqz at c|wL0
zdBLlOg`oO~dN<z)3*8m6WJLXF-!AenE}<IAvJ$_*|KCClI=RPTZEQvczdDXjNoiAs
zdYEA4{NLc%Gw#ELQ(%DEkUSeU<!7X!vP~4=?T2C#_J{dA3UsP^$<?Iz at 2&+Co~4?j
zIL>wg)qTZ4>zju=tX3;IORDuYmr|;I&bZMq+SK9Nrv^O$l82E)uZpR at +b^Qf&>+q=
zgd2 at MU5s9^y6`6o3QEU;1O-vux6Pv*k-K=|<CQCtSgpl6tY&HR5BYa+i^xI7YE*GJ
zM)*k#bknIvu`bu;f^HW9+Wnuu_N4O+$|^+>_BtSaPV^s1u+g3#JHSKtSP0WWxz5y5
zox_?}gUC)lyinyY9WV_fwQI(_qbrRp+=wWZBZkR~2YsmD_~7B=LZO>gL60F$2)GoH
zzX(qJd-Ea6&>x)i1|f6SX1`vRe4a4>Yt(q;%sEc$<GvDs6G8v&Yh^(vrH7WI4_C@}
zY=j%kwc8+lN4#on`e^>ed`#hpFNX+s*eEXia{eZd(ArsMu3aWcH*DLEuUTr=rdOZ^
z4F^rjo{Hzk4|2c9d&6}Vov>y|qTdrqSzZ~!$v;7ZMhEzs-7bZE>j%|yb&10X_<m+n
z{(bHi<&#%wj&T<!iT;uJQ?+7$w)FDnqVz~!W{wcM<dD at sNs4y!qe))GxI3X0_7G|T
zsANe|IEArPEKbFTLMnDCHL8Be5VVwW=~Evttm4O0zgNRsc`B?{w*ZZBPSBB~egCM7
zt>zPSSA%->m2H|CfxaFTZ6_&)79s|q3hRqD(pbB{yu5L{K}MS at 0rZ*>7dzoqHmy30
z1`K>nM-#m)CYF1Egr5^3;wn-B4(pdI;UqvGZ}kV^QvXYgU|`5N5>sjB<eIxOR^PZ7
z5I~#bM)xG|u>#_#Bhp8OVQLO)sjrz`{pP|%%o*5~rsjuKIHF39*Pp;btS{Z0tVweI
zk!Q16e_o)~L)xsB{}1ipgzowq2Eb at yu-?Hc7S59yK|QlKcROLG9F#eFqnyF>j?+b?
z&0X~SBSOz1<yP0x#}AJPa6D7ipu|DXqa9^HA0TyOt{evucIGQt<-+KmLZV<e=uFWH
z>O+szS!7A_OB=9e`2mBaXy*qmlUh__*U?Lj-8nh9#j*cHg*eQHdCaG4v^<}q9%)-i
zdelUxhO`HObP)iEXyAt+<*d3npdsC=n-Y;3e6tjn1EM1#4G7;!p_F-YZtngenA3g=
z2dvv~Ss7!kbMtFx{bi~z^}`XKGWTKS9X}m%@SDn7j~rnPhKnL7n9hI1EyReDf at zYm
z2z;bosy?JYFf<QO(hwZ2EVh)M0faLF6 at 3(0F47kC^YMOxC*N3`&vbuCz`gx?eCuQ)
zZ-&%2yh<CX1OS#Ik`)3RU1Kk$KI%C({cKry-iA|NaO?yiDR(s4T#O1%DHfjXQQ^(e
zS{ro&gOj^m1}`J9Gz at iQ$8vK4ppw$jqYDXb)paFJ@>O>3JaiDE5}(_UzkkNses%!M
z)|p2t^Q;~sFAY2bSWcXmS7UC%b8FUdWmo5~u6G{_v|B1jBC|!TS3J(|uar`5oF%O|
zCL$t4sdi%&TCK&}QT^J*n44Z9`QB;qv9L at pZ`AS~If at kI`dx<zx+TlnK|Dc3 at kW_T
zH;?Pi1|@67Oo7f}!G|Ja2nNx?AN6-IfV6ImC9U at 2#vssffqvDo>HP<DD&`hF&|%2#
zpPQ0-(N^Z>e}ZT+g)RB!MJ_LC;h9y?&uM5s;a0EXIkJ=e#a;q{h+-VN*ePH)Rw5-d
zeCR-MwEE%!1R=Vu^RX}eD)C)r)|9ZlbZ+pQ0_sn3f;BK7Z at 5gB=sE_Tzx;t+^5dLh
z2kGE?G|0<8OA0k&`wtWd=s#Ob_ at sy4t;DI(z>Tu$h~dJIt<~CaRp+9~EMyjIyNtkP
z=lz5yyO*P|dk>xWZx80`$D^KEML(?N3nJtY%sbLAtzG5oiql0zYdmQQR4+wLd(ixo
zTB#r4OXGt91{M#+qtvf`q=7lScF4kI)h9N<0zd~wuc#2mf2y at C{)~Joi~VQCLO~VT
zf2|n}Q7UNjhE!zLQw`54J|h9ugF(<J(c#DIGs5hSC!PgHDfNdKl;yDYD+GoRrN|jy
zos<t_b~#OxhtyfFjEM{qbK=2y^A|{s=yeEnFxpE_m1QlUi8V2IUFqQ3QdqIW?L6E(
zu6_%dc)V8P`^mJ6wM0nTg3w;0_A$25bgD#LvYCi^6t(la5al4*5J9B`E*8!iskR at Y
zhM2sYvBD1H#EIzjjcp7Ab9Q46!`IuunM@~Cf35-}`~c*VB;o<E<uJA3IU1t!_$Q8t
z)2bpA2`Pv;CY}aWO3$XCZF#Ks!?5n-+;fbG`s>T8><&Kl7pVL6+G!7E2b$R+Ij~f{
zbayKHdsp6)6`28AMMH#cy1u03i|*_TYjCh0UkOX!ZcNxOp#ToC51J;`@m^%NrjSuX
z)$VZFRtI_lrD9}LeWzE>Cydi%VW2X;xuZ4L2p-Chw99W!1`^Duz4Nn}8A8IguO%St
z3nPcvsvBtr at Z6siR^4{si~QrdZ`j;TbeMx>aUS)*+NvIhiYlE8Yz(oPBsXT5ESk|d
zU=nChztB*Ml62)cEnhZw_E&W#L#ia at XO-Vq1S*g}(H$?*-ErG*^XyE4-FSm1YGO*$
zQT?KmI%J8`(%b;Cnc`J*I|}u7<!qs4jAn3njcPqLxDI^mZ;S}(<W)Egs2T6jf47VU
zOhO*92n4*q20BBPNa#6>T62G3zm+e+$cvk;NIU*`mCe7^XFi9JzYpWu=C1Rb0$fF9
zIxzvsmn at sMS}T0kTeEqwxAVg7CcVZ8MozejbZs))#s(sbG+q=ykdE3Tl&;~wpV~<3
znr<Jr(6yB9snnJ>>toMe+X<(zitPWT>1K6BrFA9iqSjoqP^$v`{eC{)6)s<LB2y^L
z!52L^bicQ7X-{P!9OJGsVzJHjSuefiD?o<D8&&S*F`m#WPXuh=SwQpR#$mTxB%-6X
zjWEh<<xtODqh=OimF#WkA=lBT!$0^J?g9WG6DD++lGFCh$@Uw>`ZBzuRL~SDSUc)p
z1tadanRcyo at z+JMYKjuzsce1x+{bcMEg$?E&2we%JL$-(a(cUYu_1L(t2OKJH_~um
zS+Q2mPy2rcuJe5_Avd0+1i<A?YAKJu)n4O;h(y8xeWC>K=tW at Z&3Xl5B{QI3vmrvA
z?niw2xS(?^sm7fq^m>W8a3Z_GYbZ%j!y7ATs`fFQR+MI79K%V4yxdq~$I`#zEXBmq
zokAUG-PF$V$Av3c2W`A*n4o@&imfJi(G)EdPB=VSpHi34<uGyO*dX4bL}s|6#X1$N
zpfYCO$^B9Kl1}wLz4ZIk5mPNK;(1tiB>-GO%r>C%p?Z3clGJ&}_Hant=LP<2>+PH|
z5%CLWr7sD3Vq>}`1D14GbP`Bc&JwLgdFze-B#Z8QBj?IU10opD8<k;JE8I`H4qN|r
z1?`UH`Gwpu=k+RC8<kjc&?!1f+H}g8fp$8x%V%t#56=l3kuhNkb%Z%sr$;A1E5P{K
zX%I)`xG&wW@*Mz$-P2;dC#{^?4R34 at -lh%4idFbyU6mO^B>dA00H4>2UZCZv{I|tS
zy*YiKMyWjT-0)E5)pe`ESn#h)%TcnnB6thR01N=R$aR<*ap5~O6SbdQ(i~t*Dapva
zgNEz)cM{v*E)cJs|KrViBA{se<EPl_`e4sa{R*n|#S6HAppWb4h~HRWaND^gd%9<v
zHBIR;N(CPYGt3(*^@aifHVCz#kk?e6_m&{L<?}(o$Jf$rT6Hoa^vqKD;Bw?(JRG}9
z{)OS at h+SD}F^x5r?9ed9Nf|Uq?xPdl%tkhU*IQtop>`Op^+m}-=!b3oS|=Q+mp>a)
z6rWpxj$Uzoq?E80vRxhU`arMn<eLqk7Ds+U;u`74(wjD)&;8e9UC*V+_vnM2qBuq0
zo(enFtg6-MS*QCYfP0wsL$Emj0L=a0e*vIiD3ypKy+?yAKI0Bam+$`KgXZ%epP{LR
z^`-9mX?P^C!sh=4i~@80xO?S$k?8SIJp_b302&WQTdw>qZdL2KCl1lm-63oS(Mk~B
z0MlZmdOs4mZQ=CckM@;&apkgEcR=wM#LZQ%R4CtI>XuGv%0Xm_N at +fe&B34!9P2Ap
z{NtJ9=U<EgBs5SiWWV1oZ<8^#cR}=E2&Mwq9fYv}b_FmJOtn7`i0qDZf~f;UYr$9v
zrquvmht=m{bs?-iv+&>%i~Hg|xa`GQ at 8$@%6T>ub_$dIRSm at USEmG~l8Z=u4s9;@O
z!#|!ie*PsGU_uz6vhO`B#}Lz=U>Xm`t{@r>U>FEPL1+VI0NDt_CMY&Ru at 0(hp;!ym
zl at PqfOE<s%?8&=t=r7lO#gbXyCBoOcRl2r3Mxm&$DIXyPtI(2z at IPA_*YLHo#?QZU
zAnMJ4ogno5k-NMB;EnEK+~pNOsu<s15hdWYjh%zI-uc*v_tk-L-Dv|qsI*~<Do!FT
z!~hD}>tbAhdf-P{Cfjp|;5rfToT=dJXN{kK{Xo^50c#=N&T{FZS(7SlxER0(S}jD8
zQ=qUrH at HlJL<i0gtOOH&FBbnaXTtmk2J*ctr;rXnId}5>7aE=Tf+{YDcIOE#(Xwul
zrk0<nG59B&;IjiA3?(22HYgUaUZ!748~79vmT#4EFdmf@?_IS7|NN<m^OwCH?px_H
z4RE>W-eY;tXxcrl;1iX0oKK9=p&A9;gUjSN!^`!}_^wUq+I4TFYc71(?fQ1PUnL;k
zCh~&?#}Xl~0Lc*m%?5BFfV}|>g3Gio1 at MSMZv;mVu}#x2A9<^mcdnFDN-3q3Qc5YM
vlu}A5rIb=iDW#NBN-3q3Qc5YMcjW&E8175Dr>?O)00000NkvXXu0mjfGp=%V

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/images/logo.svg b/ui/new-ui-samples/images/logo.svg
new file mode 100644
index 0000000..a3e57e1
--- /dev/null
+++ b/ui/new-ui-samples/images/logo.svg
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+
+<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="387" height="366"
+     viewBox="0 0 387 366" overflow="visible" enable-background="new 0 0 387 366" xml:space="preserve">
+<path fill="#D91F2F" d="M303.868,82.71c25.172-8.604,27.898-42.319,7.13-55.331c-1.923-1.04-16.93-10.998-43.506-11.999
+    c-39.783,1.486-71.632,13.167-92.662,62.139c-0.25,2.109-0.508,6.054,1.977,3.206c0,0,0.284-0.329,0.443-0.515
+    c15.153-23.034,69.707-29.756,88.572-8.681c0.625,0.72,1.297,1.634,2.003,2.274C276.457,82.654,293.688,86.191,303.868,82.71"/>
+<path fill="#F19125" d="M336.691,227.692c20.913,16.439,50.687,0.387,50.306-24.119c-0.174-2.18,0.018-20.188-13.601-43.033
+    c-22.892-32.571-50.019-52.939-102.551-43.944c-1.906,0.938-5.355,2.866-1.615,3.403c0,0,0.432,0.059,0.674,0.093
+    c27.571,0.183,62.889,42.3,55.469,69.596c-0.263,0.916-0.665,1.977-0.817,2.918C321.826,204.661,328.231,221.044,336.691,227.692"/>
+<path fill="#8CC643" d="M228.105,329.358c-4.421,26.23,23.926,44.686,45.259,32.619c1.831-1.197,17.731-9.65,31.27-32.543
+    c17.636-35.689,22.531-69.258-10.515-111.072c-1.737-1.225-5.082-3.33-3.762,0.211c0,0,0.152,0.406,0.24,0.637
+    c13.04,24.293-7.028,75.463-34.545,82.018c-0.932,0.207-2.055,0.361-2.955,0.68C241.207,305.282,229.893,318.749,228.105,329.358"/>
+<path fill="#27AEE4" d="M81.133,285.823c-25.04,8.973-27.272,42.725-6.314,55.43c1.939,1.01,17.088,10.746,43.677,11.357
+    c39.757-2.072,71.43-14.219,91.738-63.496c0.22-2.113,0.421-6.061-2.023-3.176c0,0-0.279,0.33-0.438,0.521
+    c-14.811,23.254-69.259,30.777-88.434,9.982c-0.637-0.711-1.321-1.615-2.038-2.246C108.544,285.476,91.262,282.192,81.133,285.823"
+    />
+<path fill="#06659E" d="M48.671,141.301c-21.969-14.995-50.596,3.023-48.569,27.447c0.321,2.165,1.34,20.143,16.463,42.022
+    c25.03,30.957,53.465,49.455,105.273,36.947c1.839-1.063,5.151-3.219,1.382-3.502c0,0-0.432-0.031-0.678-0.047
+    c-27.52,1.672-65.589-37.975-60.023-65.709c0.202-0.933,0.531-2.018,0.62-2.968C65.053,163.281,57.561,147.365,48.671,141.301"/>
+<path fill="#BA1E70" d="M164.882,38.837c6.497-25.793-20.29-46.448-42.516-36.122c-1.919,1.049-18.444,8.206-33.764,29.946
+    c-20.424,34.171-27.98,67.243,1.628,111.558c1.632,1.359,4.798,3.726,3.765,0.089c0,0-0.119-0.417-0.188-0.651
+    c-11.062-25.255,13.021-74.663,40.974-79.004c0.945-0.132,2.076-0.198,3-0.441C149.9,61.794,162.255,49.273,164.882,38.837"/>
+</svg>
diff --git a/ui/new-ui-samples/images/low.png b/ui/new-ui-samples/images/low.png
new file mode 100644
index 0000000000000000000000000000000000000000..1f891d648d7d72c558a942ab77befb1cdd368235
GIT binary patch
literal 813
zcmV+|1JeA7P)<h;3K|Lk000e1NJLTq000>P000>X1^@s6#OZ}&00004XF*Lt006JZ
zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!zez+vRCwB~
zmRU$tVHC&j+-%X%DAIN?+o)`y2U}iR9)g0RqJ;|TAtCCeg*HOyHCk<7p@<61z!rr>
zC~UBW7K%zKgCQylCmUL{z?|xL;(uWnX3S<h at bfU<`+aBm&UeoBm0c-!5=b}b4U=H5
zbU)}0ZO{mhp$e+u9kj;VC at q13Tvz~wFbuxKXLzrTx<Dq(fcbiM8qUItju<I`gVMJ7
zb+{<6KR~mhw5a?r4VJ)Wm<<~s5FJ&lkuh){hQcS<2gPyH at B?0pYfuS?V5A&csuccR
z=SD5egZ)a?C8eu4QJ!O at N@=qUq{9iA;yv_?^nz^){XVRRnhqN9qz;Op1P01rZnTk^
zFb`T}?4y&Mm{U98IShwoo)HUg4P?P_xa*`QuV5GaRCV?-BNJe(4*DoWoYdtq+=Kow
z*;V;jG*_X?=^U}NU68|z%}BmV`PqLS^uMHDMn;>F9Pp_vL^{!kwVhv(Z4va;KkX(v
z!JIt}D#2vsVP0rcfhyG`!y@^rADPlOQj8!dou%q+wm%{G4TIG94yS0OR=Tfr$kolZ
z);&>G)}-5;tUQ(W>#QHRs_7PW&;jJr!rh&u0c);L<m_@)ZK*4-EA?QdQg#zgCUF+0
zaMC*SEEuP2QRk{{pMx;0hUvWc27Ls|I%vS&FJfIln{S7%a0b434Kg6l)73qPu%K4W
za;r9pCvBQ1g}h&)ZobnlAl%YXM0`;*K3ns|=E!Y0pft8}cl??+Hq=IG+}fn9XY)H+
zZ-ui~>&?Mc at W>wcVm>5BXddJ%jmK03;dWAGXSfjd%F#w0dX3jX(&Dt~MH;(yc<ZD~
z72R9-20hdjtb@;y&H#&QqYgaM-iJg`Rc2Fih4dC(*jVvtkC!Tx@^}L;(I-(@l~n=b
rm5!+}SRUIzYS4hIkWQG=KLQK@;61`6RS)H800000NkvXXu0mjfY}$8n

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/images/med.png b/ui/new-ui-samples/images/med.png
new file mode 100644
index 0000000000000000000000000000000000000000..06106551316ec16a148c346941ddec92f9d16bc9
GIT binary patch
literal 873
zcmV-v1D5=WP)<h;3K|Lk000e1NJLTq000>P000>X1^@s6#OZ}&00004XF*Lt006JZ
zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!`$<GWRCwB?
zmT5 at TVGxIR*Dg1-gDktK)CxPKp!-V}1r|oxMF$mSMF$ii6%o{jK17+_cVI*XW}sb=
zNJWWd2T at o`8A*3|Bpqvlxz#i96Bb)#+Z}jz*!{onJM+%We`cLIm##XRkv7l?#=vyx
zZqODQpaPyiKHP>6Q19=cR?Qgb3$q{<V&Nxzg-<#t3?g7Mr07{DoPigC7#Rr%rS0(R
za6w*w29IuOw at QFSm<Jmn88$$H at 2#2|83gB`AAEtmu+L8z>fnvI0(o!<2FRiL3SoUy
zBQdaFp}Gji;Gr!{>64Ny2V(WyZc_ at cOy|DM%~#l#!df^1E8vD5>{Q}Az#dov4`3!#
zariiGT&xiJlVUi4p-ing4h!KmOtss(v at i)~KrL*Mfl=rku)GBW4&^0-^{W(~o$wsu
zV1X?#BjK<bBIQL98)B5miH^XeBW!11l0vu}eyKV;n-TMPuo8U~yf7DLJN{3iAq_*8
z{9L%N-^RLBes-J7P|cz^B`+A61S1r-^NkLhks+$GXL`5>dO3oZc<C}3i8mu%t;*CE
zysE5FWSF$Io!<~;M%wE~k96x0jYLb=O1sU-cYTSFz8RvCa_LA_ug5+r;Scmw<2xLp
zkrL at H(v at bUP_28ks;pWqBUmZ+c}XqTk6fzhT6NIwv<JIxdXNUJxjvP%i&VAQE_t1&
z2g?+)TW~UnT%5v5>&#PNs9uXwm)iDOr~&Ig6Il2TeFSm>G+^tuvadjgZ&Q_?hHs4x
zvOu1PYhd+eLy4N at W*y>B8Z=K*S)ZkDzDqCU9i_tS^qKKdnkP1P?^^p-7;T;;Xx`XN
z8K`k<ld_D%?`gjk&N}Tk2Uo&l-+9s~{UJ-OrcQ$^U7>7F!qiMN<Y<MGUZ at W8&-k at A
zJx62LlDA$uTeo`;KcF4-PzRqT?FPG5niB49>5oLYsw`0x(ex(0uua9OGhV7tEG$)l
z{w1nWWnF{e3deYLXSW8 at M;mZjQ`AyO{|Ybw4NBe};aPP+00000NkvXXu0mjfdFFsc

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/index.html b/ui/new-ui-samples/index.html
new file mode 100755
index 0000000..cb8d257
--- /dev/null
+++ b/ui/new-ui-samples/index.html
@@ -0,0 +1,134 @@
+<!--
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+<!DOCTYPE html>
+<html class="no-js" lang="">
+
+<head>
+    <meta charset="utf-8">
+    <meta name="description" content="">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>Kimchi</title>
+    <link rel="apple-touch-icon" sizes="57x57" href="apple-touch-icon-57x57.png">
+    <link rel="apple-touch-icon" sizes="60x60" href="apple-touch-icon-60x60.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="76x76" href="apple-touch-icon-76x76.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="apple-touch-icon-114x114.png">
+    <link rel="apple-touch-icon" sizes="120x120" href="apple-touch-icon-120x120.png">
+    <link rel="apple-touch-icon" sizes="144x144" href="apple-touch-icon-144x144.png">
+    <link rel="apple-touch-icon" sizes="152x152" href="apple-touch-icon-152x152.png">
+    <link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon-180x180.png">
+    <link rel="icon" type="image/png" href="favicon-32x32.png" sizes="32x32">
+    <link rel="icon" type="image/png" href="favicon-194x194.png" sizes="194x194">
+    <link rel="icon" type="image/png" href="favicon-96x96.png" sizes="96x96">
+    <link rel="icon" type="image/png" href="android-chrome-192x192.png" sizes="192x192">
+    <link rel="icon" type="image/png" href="favicon-16x16.png" sizes="16x16">
+    <link rel="manifest" href="manifest.json">
+    <meta name="apple-mobile-web-app-title" content="Kimchi">
+    <meta name="application-name" content="Kimchi">
+    <meta name="msapplication-TileColor" content="#4d4d4d">
+    <meta name="msapplication-TileImage" content="mstile-144x144.png">
+    <meta name="theme-color" content="#ffffff">
+    <!-- Place favicon.ico in the root directory -->
+    <link rel="stylesheet" href="css/vendor.css">
+
+    <link rel="stylesheet" href="css/menu-flat.css">
+    <link rel="stylesheet" href="css/button-flat.css">
+    <link rel="stylesheet" href="css/radio-flat.css">
+    <link rel="stylesheet" href="css/checkbox-flat.css">
+    <link rel="stylesheet" href="css/textbox-flat.css">
+    <link rel="stylesheet" href="css/selectmenu-flat.css">
+    <link rel="stylesheet" href="css/fontello.css">
+    <link rel="stylesheet" href="css/main.css">
+    <script src="js/vendor/modernizr.js"></script>
+</head>
+
+<body>
+    <div class="topbar">
+        <header class="banner-area">
+            <div class="container">
+                <h1 id="logo">Kimchi</h1>
+            </div>
+        </header>
+        <nav class="tab-area">
+            <div class="container">
+                <span class="hostname">hostname</span>
+                <ul id="tabs" class="nav-menu">
+                    <li><a href="#" class="disabled">Host</a></li>
+                    <li><a href="#" class="disabled">Guests<span class="digit-container">18</span></a></li>
+                    <li><a href="#" class="disabled">Templates<span class="digit-container">06</span></a></li>
+                    <li><a href="#" class="disabled">Storage<span class="digit-container">102</span></a></li>
+                    <li><a href="#" class="disabled">Networks<span class="digit-container">37</span></a></li>
+                    <li><a href="#" class="disabled">Administration</a></li>
+                </ul>
+            </div>
+        </nav>
+    </div>
+    <div class="content">
+        <div class="login-area">
+            <div class="err-area">
+                <div id="messUserPass" class="alert alert-danger" role="alert">O usuário ou senha inseridos estão incorretos. Por favor, tente novamente.</div>
+                <div id="messSession" class="alert alert-danger" role="alert">Fim do limite do tempo da sessão, por favor se autentique novamente.</div>
+            </div>
+            <form id="form-login" class="form-horizontal">
+                <div class="form-group">
+                    <label for="username" class="sr-only">Usuário</label>
+                    <input type="text" class="form-control" id="username" name="username" required="required" placeholder="Usuário" autofocus="">
+                </div>
+                <div class="form-group">
+                    <label for="password" class="sr-only">Senha</label>
+                    <input type="password" class="form-control" id="password" name="password" required="required" placeholder="Senha">
+                </div>
+                <div class="form-group">
+                    <button type="submit" class="btn btn-login col-md-12 col-lg-12">Log In</button>
+                </div>
+                <div class="form-group">
+                    <select id="userLang" class="selectpicker col-md-12 col-lg-12 ">
+                        <option value="en_US">English (US)</option>
+                        <option value="zh_CN">中文(简体)</option>
+                        <option value="pt_BR">Português (Brasil)</option>
+                        <option value="de_DE">Deutsch (Deutschland)</option>
+                        <option value="es_ES">Español (España)</option>
+                        <option value="fr_FR">Français (France)</option>
+                        <option value="it_IT">Italiano (Italia)</option>
+                        <option value="ja_JP">日本語 (日本)</option>
+                        <option value="ko_KR">한국어 (대한민국)</option>
+                        <option value="ru_RU">Русский (Россия)</option>
+                        <option value="zh_TW">中文(繁體)</option>
+                    </select>
+                </div>
+            </form>
+        </div>
+    </div>
+    <script src="js/vendor/jquery.js"></script>
+    <script src="js/vendor/jquery-ui.js"></script>
+    <script src="js/vendor.js"></script>
+    <script src="js/vendor/bootstrap.js"></script>
+    <script src="js/vendor/bootstrap-select.min.js"></script>
+    <script src="js/main.js"></script>
+    <script src="js/menu-flat.js"></script>
+    <script type="text/javascript">
+    $(document).ready(function() {
+        $('span.hostname').text(window.location.hostname + ':' + window.location.port);
+        $('.selectpicker').selectpicker();
+    });
+    </script>
+</body>
+
+</html>
diff --git a/ui/new-ui-samples/js/button-flat.js b/ui/new-ui-samples/js/button-flat.js
new file mode 100755
index 0000000..bc72544
--- /dev/null
+++ b/ui/new-ui-samples/js/button-flat.js
@@ -0,0 +1,419 @@
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+(function( factory ) {
+    if ( typeof define === "function" && define.amd ) {
+
+        // AMD. Register as an anonymous module.
+        define([
+            "jquery",
+            "./core",
+            "./widget"
+        ], factory );
+    } else {
+
+        // Browser globals
+        factory( jQuery );
+    }
+}(function( $ ) {
+
+var lastActive,
+    baseClasses = "ui-button ui-widget",
+    typeClasses = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",
+    formResetHandler = function() {
+        var form = $( this );
+        setTimeout(function() {
+            form.find( ":ui-button" ).button( "refresh" );
+        }, 1 );
+    },
+    radioGroup = function( radio ) {
+        var name = radio.name,
+            form = radio.form,
+            radios = $( [] );
+        if ( name ) {
+            name = name.replace( /'/g, "\\'" );
+            if ( form ) {
+                radios = $( form ).find( "[name='" + name + "'][type=radio]" );
+            } else {
+                radios = $( "[name='" + name + "'][type=radio]", radio.ownerDocument )
+                    .filter(function() {
+                        return !this.form;
+                    });
+            }
+        }
+        return radios;
+    };
+
+$.widget( "wok.buttonFlat", {
+    version: "@VERSION",
+    defaultElement: "<button>",
+    options: {
+        disabled: null,
+        text: true,
+        label: null,
+        icons: {
+            primary: null,
+            secondary: null
+        }
+    },
+    _create: function() {
+        this.element.closest( "form" )
+            .unbind( "reset" + this.eventNamespace )
+            .bind( "reset" + this.eventNamespace, formResetHandler );
+
+        if ( typeof this.options.disabled !== "boolean" ) {
+            this.options.disabled = !!this.element.prop( "disabled" );
+        } else {
+            this.element.prop( "disabled", this.options.disabled );
+        }
+
+        this._determineButtonType();
+        this.hasTitle = !!this.buttonElement.attr( "title" );
+
+        var that = this,
+            options = this.options,
+            toggleButton = this.type === "checkbox" || this.type === "radio",
+            activeClass = !toggleButton ? "ui-state-active" : "";
+
+        if ( options.label === null ) {
+            options.label = (this.type === "input" ? this.buttonElement.val() : this.buttonElement.html());
+        }
+
+        this._hoverable( this.buttonElement );
+
+        this.buttonElement
+            .addClass( baseClasses )
+            .attr( "role", "button" )
+            .bind( "mouseenter" + this.eventNamespace, function() {
+                if ( options.disabled ) {
+                    return;
+                }
+                if ( this === lastActive ) {
+                    $( this ).addClass( "ui-state-active" );
+                }
+            })
+            .bind( "mouseleave" + this.eventNamespace, function() {
+                if ( options.disabled ) {
+                    return;
+                }
+                $( this ).removeClass( activeClass );
+            })
+            .bind( "click" + this.eventNamespace, function( event ) {
+                if ( options.disabled ) {
+                    event.preventDefault();
+                    event.stopImmediatePropagation();
+                }
+            });
+
+        // Can't use _focusable() because the element that receives focus
+        // and the element that gets the ui-state-focus class are different
+        this._on({
+            focus: function() {
+                this.buttonElement.addClass( "ui-state-focus" );
+            },
+            blur: function() {
+                this.buttonElement.removeClass( "ui-state-focus" );
+            }
+        });
+
+        if ( toggleButton ) {
+            this.element.bind( "change" + this.eventNamespace, function() {
+                that.refresh();
+            });
+        }
+
+        if ( this.type === "checkbox" ) {
+            this.buttonElement.bind( "click" + this.eventNamespace, function() {
+                if ( options.disabled ) {
+                    return false;
+                }
+            });
+        } else if ( this.type === "radio" ) {
+            this.buttonElement.bind( "click" + this.eventNamespace, function() {
+                if ( options.disabled ) {
+                    return false;
+                }
+                $( this ).addClass( "ui-state-active" );
+                that.buttonElement.attr( "aria-pressed", "true" );
+
+                var radio = that.element[ 0 ];
+                radioGroup( radio )
+                    .not( radio )
+                    .map(function() {
+                        return $( this ).button( "widget" )[ 0 ];
+                    })
+                    .removeClass( "ui-state-active" )
+                    .attr( "aria-pressed", "false" );
+            });
+        } else {
+            this.buttonElement
+                .bind( "mousedown" + this.eventNamespace, function() {
+                    if ( options.disabled ) {
+                        return false;
+                    }
+                    $( this ).addClass( "ui-state-active" );
+                    lastActive = this;
+                    that.document.one( "mouseup", function() {
+                        lastActive = null;
+                    });
+                })
+                .bind( "mouseup" + this.eventNamespace, function() {
+                    if ( options.disabled ) {
+                        return false;
+                    }
+                    $( this ).removeClass( "ui-state-active" );
+                })
+                .bind( "keydown" + this.eventNamespace, function(event) {
+                    if ( options.disabled ) {
+                        return false;
+                    }
+                    if ( event.keyCode === $.ui.keyCode.SPACE || event.keyCode === $.ui.keyCode.ENTER ) {
+                        $( this ).addClass( "ui-state-active" );
+                    }
+                })
+                // see #8559, we bind to blur here in case the button element loses
+                // focus between keydown and keyup, it would be left in an "active" state
+                .bind( "keyup" + this.eventNamespace + " blur" + this.eventNamespace, function() {
+                    $( this ).removeClass( "ui-state-active" );
+                });
+
+            if ( this.buttonElement.is("a") ) {
+                this.buttonElement.keyup(function(event) {
+                    if ( event.keyCode === $.ui.keyCode.SPACE ) {
+                        // TODO pass through original event correctly (just as 2nd argument doesn't work)
+                        $( this ).click();
+                    }
+                });
+            }
+        }
+
+        this._setOption( "disabled", options.disabled );
+        this._resetButton();
+    },
+
+    _determineButtonType: function() {
+        var ancestor, labelSelector, checked;
+
+        if ( this.element.is("[type=checkbox]") ) {
+            this.type = "checkbox";
+        } else if ( this.element.is("[type=radio]") ) {
+            this.type = "radio";
+        } else if ( this.element.is("input") ) {
+            this.type = "input";
+        } else {
+            this.type = "button";
+        }
+
+        if ( this.type === "checkbox" || this.type === "radio" ) {
+            // we don't search against the document in case the element
+            // is disconnected from the DOM
+            ancestor = this.element.parents().last();
+            labelSelector = "label[for='" + this.element.attr("id") + "']";
+            this.buttonElement = ancestor.find( labelSelector );
+            if ( !this.buttonElement.length ) {
+                ancestor = ancestor.length ? ancestor.siblings() : this.element.siblings();
+                this.buttonElement = ancestor.filter( labelSelector );
+                if ( !this.buttonElement.length ) {
+                    this.buttonElement = ancestor.find( labelSelector );
+                }
+            }
+            this.element.addClass( "ui-helper-hidden-accessible" );
+
+            checked = this.element.is( ":checked" );
+            if ( checked ) {
+                this.buttonElement.addClass( "ui-state-active" );
+            }
+            this.buttonElement.prop( "aria-pressed", checked );
+        } else {
+            this.buttonElement = this.element;
+        }
+    },
+
+    widget: function() {
+        return this.buttonElement;
+    },
+
+    _destroy: function() {
+        this.element
+            .removeClass( "ui-helper-hidden-accessible" );
+        this.buttonElement
+            .removeClass( baseClasses + " ui-state-active " + typeClasses )
+            .removeAttr( "role" )
+            .removeAttr( "aria-pressed" )
+            .html( this.buttonElement.find(".ui-button-text").html() );
+
+        if ( !this.hasTitle ) {
+            this.buttonElement.removeAttr( "title" );
+        }
+    },
+
+    _setOption: function( key, value ) {
+        this._super( key, value );
+        if ( key === "disabled" ) {
+            this.widget().toggleClass( "ui-state-disabled", !!value );
+            this.element.prop( "disabled", !!value );
+            if ( value ) {
+                if ( this.type === "checkbox" || this.type === "radio" ) {
+                    this.buttonElement.removeClass( "ui-state-focus" );
+                } else {
+                    this.buttonElement.removeClass( "ui-state-focus ui-state-active" );
+                }
+            }
+            return;
+        }
+        this._resetButton();
+    },
+
+    refresh: function() {
+        //See #8237 & #8828
+        var isDisabled = this.element.is( "input, button" ) ? this.element.is( ":disabled" ) : this.element.hasClass( "ui-button-disabled" );
+
+        if ( isDisabled !== this.options.disabled ) {
+            this._setOption( "disabled", isDisabled );
+        }
+        if ( this.type === "radio" ) {
+            radioGroup( this.element[0] ).each(function() {
+                if ( $( this ).is( ":checked" ) ) {
+                    $( this ).button( "widget" )
+                        .addClass( "ui-state-active" )
+                        .attr( "aria-pressed", "true" );
+                } else {
+                    $( this ).button( "widget" )
+                        .removeClass( "ui-state-active" )
+                        .attr( "aria-pressed", "false" );
+                }
+            });
+        } else if ( this.type === "checkbox" ) {
+            if ( this.element.is( ":checked" ) ) {
+                this.buttonElement
+                    .addClass( "ui-state-active" )
+                    .attr( "aria-pressed", "true" );
+            } else {
+                this.buttonElement
+                    .removeClass( "ui-state-active" )
+                    .attr( "aria-pressed", "false" );
+            }
+        }
+    },
+
+    _resetButton: function() {
+        if ( this.type === "input" ) {
+            if ( this.options.label ) {
+                this.element.val( this.options.label );
+            }
+            return;
+        }
+        var buttonElement = this.buttonElement.removeClass( typeClasses ),
+            buttonText = $( "<span></span>", this.document[0] )
+                .addClass( "ui-button-text" )
+                .html( this.options.label )
+                .appendTo( buttonElement.empty() )
+                .text(),
+            icons = this.options.icons,
+            multipleIcons = icons.primary && icons.secondary,
+            buttonClasses = [];
+
+        if ( icons.primary || icons.secondary ) {
+            if ( this.options.text ) {
+                buttonClasses.push( "ui-button-text-icon" + ( multipleIcons ? "s" : ( icons.primary ? "-primary" : "-secondary" ) ) );
+            }
+
+            if ( icons.primary ) {
+                buttonElement.prepend( "<span class='ui-button-icon-primary ui-icon " + icons.primary + "'></span>" );
+            }
+
+            if ( icons.secondary ) {
+                buttonElement.append( "<span class='ui-button-icon-secondary ui-icon " + icons.secondary + "'></span>" );
+            }
+
+            if ( !this.options.text ) {
+                buttonClasses.push( multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only" );
+
+                if ( !this.hasTitle ) {
+                    buttonElement.attr( "title", $.trim( buttonText ) );
+                }
+            }
+        } else {
+            buttonClasses.push( "ui-button-text-only" );
+        }
+        buttonElement.addClass( buttonClasses.join( " " ) );
+    }
+});
+
+$.widget( "ui.buttonset", {
+    version: "@VERSION",
+    options: {
+        items: "button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)"
+    },
+
+    _create: function() {
+        this.element.addClass( "ui-buttonset" );
+    },
+
+    _init: function() {
+        this.refresh();
+    },
+
+    _setOption: function( key, value ) {
+        if ( key === "disabled" ) {
+            this.buttons.button( "option", key, value );
+        }
+
+        this._super( key, value );
+    },
+
+    refresh: function() {
+        var rtl = this.element.css( "direction" ) === "rtl",
+            allButtons = this.element.find( this.options.items ),
+            existingButtons = allButtons.filter( ":ui-button" );
+
+        // Initialize new buttons
+        allButtons.not( ":ui-button" ).button();
+
+        // Refresh existing buttons
+        existingButtons.button( "refresh" );
+
+        this.buttons = allButtons
+            .map(function() {
+                return $( this ).button( "widget" )[ 0 ];
+            })
+                .removeClass( "ui-corner-all ui-corner-left ui-corner-right" )
+                .filter( ":first" )
+                    .addClass( rtl ? "ui-corner-right" : "ui-corner-left" )
+                .end()
+                .filter( ":last" )
+                    .addClass( rtl ? "ui-corner-left" : "ui-corner-right" )
+                .end()
+            .end();
+    },
+
+    _destroy: function() {
+        this.element.removeClass( "ui-buttonset" );
+        this.buttons
+            .map(function() {
+                return $( this ).button( "widget" )[ 0 ];
+            })
+                .removeClass( "ui-corner-left ui-corner-right" )
+            .end()
+            .button( "destroy" );
+    }
+});
+
+return $.ui.button;
+
+}));
diff --git a/ui/new-ui-samples/js/checkbox-flat.js b/ui/new-ui-samples/js/checkbox-flat.js
new file mode 100644
index 0000000..8a2564f
--- /dev/null
+++ b/ui/new-ui-samples/js/checkbox-flat.js
@@ -0,0 +1,86 @@
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+// How to use:
+//     $(".selector").checkboxFlat({
+//         id: "t",  //Checkbox base id.
+//         name: "test",  //Checkbox name.
+//         content: ["apple", "banana", "orange", "cherry"],  //Contents of the checkbox set.
+//         checked: [1,3]  //Set the checked item, which starts with number 1.
+//     });
+//     $(".selector").click(function() {
+//         console.log($(".selector").checkboxFlat("value"));  //Get value of the checked checkbox.
+//     });
+
+ (function($) {
+    $.widget("wok.checkboxFlat", {
+        options: {
+            id: "",
+            name: "",
+            content: [],
+            checked: []
+        },
+
+        _create: function() {
+            var that = this;
+            var idBase = that.options.id;
+            var name = that.options.name;
+            var checked = that.options.checked;
+            var content = that.options.content;
+            var html = "";
+            for (var i=1;i<content.length+1;i++) {
+                if($.inArray(i,checked) < 0) {
+                    html += "<div class='checkbox-item checkbox-inline icon-check-empty-1' id='" + idBase + i + "' name='" + name + "'></div>" +
+                            "<label class='checkbox-label checkbox-inline' for='" + idBase + i + "'>" + content[i-1] + "</label>";
+                } else {
+                    html += "<div class='checkbox-item checkbox-inline icon-ok-squared' id='" + idBase + i + "' name='" + name + "'></div>" +
+                            "<label class='checkbox-label checkbox-inline' for='" + idBase + i + "'>" + content[i-1] + "</label>";
+                }
+            }
+            $(html).appendTo(that.element);
+            $(".checkbox-item").on("click", function() {
+                var tickID = $(this).attr("id");
+                var tick = tickID.substring(idBase.length,tickID.length);
+                if($(this).hasClass("icon-check-empty-1")) {
+                    $(this).removeClass("icon-check-empty-1");
+                    $(this).addClass("icon-ok-squared");
+                    checked.push(Number(tick));
+                } else {
+                    $(this).removeClass("icon-ok-squared");
+                    $(this).addClass("icon-check-empty-1");
+                    checked.splice($.inArray(Number(tick),checked),1);
+                }
+            });
+        },
+
+        value: function() {
+            var value = new Array();
+            var vContent = this.options.content;
+            var vChencked = this.options.checked;
+            for(var i=0;i<vChencked.length;i++) {
+                value.push(vContent[vChencked[i]-1]);
+            }
+            return value;
+        },
+
+        _destroy: function() {
+            this.element.remove();
+        }
+    });
+ })(jQuery);
diff --git a/ui/new-ui-samples/js/main.js b/ui/new-ui-samples/js/main.js
new file mode 100755
index 0000000..80d83e9
--- /dev/null
+++ b/ui/new-ui-samples/js/main.js
@@ -0,0 +1 @@
+console.log('\'Allo \'Allo!');
diff --git a/ui/new-ui-samples/js/menu-flat.js b/ui/new-ui-samples/js/menu-flat.js
new file mode 100644
index 0000000..3352a2b
--- /dev/null
+++ b/ui/new-ui-samples/js/menu-flat.js
@@ -0,0 +1,98 @@
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// How to use:
+//     $("#test-bar").menuFlat({
+//        content: [1,2,3,4,5,6], //Set content of the menu.
+//        icon: "icon-edit-alt",  //Set icon of the menu button.
+//        listIconList: ["icon-edit-alt","icon-edit-alt","icon-edit-alt","icon-edit-alt","icon-edit-alt","icon-user"]
+//                              //Set icons of the menu list.
+//                               // name is optional which set the name of the menu list.
+//    });
+// $("#test-bar0").on("click", function() {
+//     alert("hello");
+// });
+// $("#test-bar1").on("click", function() {
+//     console.log("hello");
+// });
+
+
+(function($) {
+    $.widget("wok.menuFlat", {
+
+        options: {
+            name: null,
+            icon: null,
+            label: null,
+            content: null
+        },
+
+        _create: function() {
+            var that = this;
+            var icon = that.options.icon;
+            var label = that.options.label;
+            var content = that.options.content;
+            var name = that._setName(that.options.name);
+            var html = "<div class='dropdown menu-flat' id='" + name + "'>" +
+                "<button class='btn btn-primary dropdown-toggle' type='button' data-toggle='dropdown'>" +
+                "<i class=" + icon + "></i>" + label + "<span class='caret'></span></button>" +
+                "</div>";
+            $(html).appendTo(that.element);
+            html = that._setValue(content);
+            $(html).appendTo(that.element[0].children[0]);
+        },
+
+        _setName: function(name) { // Set name
+            var ids = [];
+            $(".menu-flat").each(function() { // Store each .menu-flat instance ID in an array
+                ids.push(this.id);
+            });
+
+            for (this.uuid; $.inArray('wok-dropdown-menu-' + this.uuid, ids) !== -1; ) {
+                this.uuid++; // increment uuid based on .menu-flat instances in the page
+            } // this is necessary to make widget factory skip non-existing uuids from static elements
+            // and prevent duplicated id attributes in the proccess
+
+            if (!name) { // if name is null, a new name will be given with the widget uuid
+                name = 'wok-dropdown-menu-' + this.uuid;
+            } else if ($('#' + name).length) { // if name already exists...
+                name = name.concat('_', +this.uuid); // adds a suffix with uuid
+            }
+
+            return name;
+        },
+
+        _setValue: function(content) {
+            var that = this;
+            var name = that.element[0].children[0].id;
+            var html = "<ul class='dropdown-menu'>";
+            $.each(content, function(index, data) {
+                that.options.content[index] = data.toString();
+                html += (data.critical ? "<li class='critical'>" : "<li>");
+                // <a id=" widget id _ list index" class="action name" href="# action name ">
+                html += "<a id=" + name + '_' + index + " class=" + data.action + " href='#" + data.action + "'><i class='" + data.icon + "'></i>" + data.name + "</a></li>";
+            });
+            html += "</ul>";
+            return html;
+        },
+
+        _destroy: function() {
+            this.element.remove();
+        }
+    });
+})(jQuery);
diff --git a/ui/new-ui-samples/js/radio-flat.js b/ui/new-ui-samples/js/radio-flat.js
new file mode 100644
index 0000000..401ef62
--- /dev/null
+++ b/ui/new-ui-samples/js/radio-flat.js
@@ -0,0 +1,86 @@
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ *  //How to use:
+ *  $(".selector").radioFlat({
+ *     id: "t",  //Base id of the radio set.
+ *     name: "test",  //name of the radio.
+ *     whichChecked: 2,  //First selected position, starts from 1.
+ *     content: ["apple", "banana", "orange", "cherry"] //set the content array.
+ *  });
+ *
+ *
+ *  $(".test-bar").click(function() {
+ *     console.log($(".test-bar").radioFlat("value"));  //this is how to get the value of selected radio value
+ *  });
+ *
+ *
+ *
+ */
+
+ (function($) {
+
+    $.widget("wok.radioFlat", {
+        options: {
+            id: "",
+            name: "",
+            whichChecked: "",
+            content:[],
+        },
+
+        _create: function() {
+            var that = this;
+            var radioName = this.options.name;
+            var labelID = this.options.id;
+            var checked = this.options.whichChecked;
+            var num = Number(this.options.content.length);
+            var html ="";
+            if(num >0) {
+                for(var i=1;i < num+1;i++) {
+                    var tmpLabelID = labelID + i;
+                    html += "<div class='icon-circle-empty inline-radio radio-label' id='" + tmpLabelID + "'></div>" +
+                            "<label class='radio-content inline-radio' for='" + tmpLabelID + "'>" + that.options.content[i-1] + "</label>";
+                }
+                $(html).appendTo(that.element);
+                $("#" + labelID + checked).attr("checked", "true");
+                $("#" + labelID + checked).removeClass("icon-circle-empty");
+                $("#" + labelID + checked).addClass("icon-dot-circled");
+            }
+            $(".radio-label").on("click", function() {
+                $(".radio-label").removeClass("icon-dot-circled");
+                $(".radio-label").addClass("icon-circle-empty");
+                $(".radio-label").removeAttr("checked");
+                $(this).removeClass("icon-circle-empty");
+                $(this).addClass("icon-dot-circled");
+                $(this).attr("checked", "true");
+                var thisID = $(this).attr("id");
+                that.options.whichChecked = thisID.substring(labelID.length,thisID.length);
+            });
+        },
+
+        value: function() {
+            var value = Number(this.options.whichChecked) -1;
+            return this.options.content[value];
+        },
+
+        _destroy: function() {
+            this.element.remove();
+        }
+    });
+ })(jQuery);
diff --git a/ui/new-ui-samples/js/selectmenu-flat.js b/ui/new-ui-samples/js/selectmenu-flat.js
new file mode 100644
index 0000000..de17dcd
--- /dev/null
+++ b/ui/new-ui-samples/js/selectmenu-flat.js
@@ -0,0 +1,130 @@
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+// How to use:
+//     $(".selector").selectmenuFlat({
+//         content: [1,2,3,4,5,6],  //Set content of the select menu
+//         selected: 2  // set the selected option, starts from "1"
+//     });
+//     $(".selector").selectmenuFlat("value", "4"); //Set value.
+//     var t = $(".selector").selectmenuFlat("value");  //Get value
+//     console.log(t);
+
+
+ (function( $ ) {
+    $.widget("wok.selectmenuFlat", {
+
+        options: {
+            content: null,
+            name: null,
+            selected: null,
+            parentid: null
+        },
+
+        _create: function() {
+            var that = this;
+            var name = that.options.name || $(this.element).attr("id");
+            var value = that.options.content;
+            var parentid = $(this.element).attr("id");
+            that.options.parentid = parentid;
+            var html = "<div class='selected-box'>" +
+                    "<input class='select-val'>" +
+                    "<span class='select-label'></span>" +
+                    "<span class='select-icon icon-down-open'></span>" +
+                    "</div>";
+            $(html).appendTo(that.element);
+            html = that._setValue(value);
+            $(html).appendTo(that.element);
+            $("#" + parentid).addClass("select-content");
+            var sel = that.options.selected || 1;
+            sel = that.options.content[Number(sel) -1];
+            that.options.selected = $.inArray(sel, that.options.content) + 1;
+            $(".select-val", "#" + parentid).text(sel);
+            $(".select-label", "#" + parentid).text(sel);
+            $(".selected-box", "#" + parentid).on("click", this._toggleOpt);
+            $(".selectmenu-opt", "#" + parentid).on("click", function() {
+                var selectedText = $(this).text();
+                that.options.selected = $.inArray(selectedText, that.options.content) +1;
+                $(".selected-box .select-label", "#" + parentid).text(selectedText);
+                $(".select-val", "#" + parentid).text(selectedText);
+                $(".selectmenu-list", "#" + parentid).prop("style", "display:none");
+                $(".select-icon", "#" + parentid).removeClass("icon-up-open");
+                $(".select-icon", "#" + parentid).addClass("icon-down-open").css({
+                    "border-left": "none"
+                });
+            });
+            $(document).mouseup(function(e) {
+                var container = $(".selectmenu-opt");
+                if(!container.is(e.target) && container.has(e.target).length === 0 && $(".select-icon").hasClass("icon-up-open")) {
+                    $(".selectmenu-list", "#" + parentid).prop("style", "display:none");
+                    $(".select-icon", "#" + parentid).removeClass("icon-up-open");
+                    $(".select-icon", "#" + parentid).addClass("icon-down-open").css({
+                        "border-left": "none"
+                    });
+                }
+            });
+        },
+
+        _setValue: function(value) {
+            var that = this;
+            var html = "<ul class='selectmenu-list' style='display:none'>";
+            var name = this.options.name || $(this.element).attr("id");
+            $.each(value, function(index, data) {
+                that.options.content[index] = data.toString();
+                html += "<li id='" + name + index + "' class='selectmenu-opt'>" + data + "</li>";
+            });
+            html += "</ul>";
+            return html;
+        },
+
+        _toggleOpt: function() {
+            var thisButton = $(this).parent().attr("id");
+            if($(".select-icon", "#" + thisButton).hasClass("icon-down-open")) {
+                $(".selectmenu-list", "#" + thisButton).prop("style", "display");
+                $(".select-icon", "#" + thisButton).removeClass("icon-down-open");
+                $(".select-icon", "#" + thisButton).addClass("icon-up-open").css({
+                    "border-left": "1px solid #d8d8d8"
+                });
+            } else {
+                $(".selectmenu-list", "#" + thisButton).prop("style", "display:none");
+                $(".select-icon", "#" + thisButton).removeClass("icon-up-open");
+                $(".select-icon", "#" + thisButton).addClass("icon-down-open").css({
+                    "border-left": "none"
+                });
+            }
+        },
+
+        value: function(value) {
+            var parentid = this.options.parentid;
+            if(!value) {
+                return $(".selected-box .select-val", "#" + parentid).text();
+            }
+            if (value <= this.options.content.length) {
+                this.options.selected = value;
+                var selectedText = this.options.content[value-1];
+                $(".selected-box .select-label", "#" + parentid).text(selectedText);
+                $(".selected-box .select-val", "#" + parentid).text(selectedText);
+            }
+        },
+
+        _destroy: function() {
+            this.element.remove();
+        }
+    });
+ })(jQuery);
diff --git a/ui/new-ui-samples/js/textbox-flat.js b/ui/new-ui-samples/js/textbox-flat.js
new file mode 100644
index 0000000..cd9eca0
--- /dev/null
+++ b/ui/new-ui-samples/js/textbox-flat.js
@@ -0,0 +1,39 @@
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// How to use:
+//     $(".selector").textboxFlat({
+//         hint: "hint"
+//     });
+
+ (function($) {
+    $.widget("wok.textboxFlat", {
+        optons: {
+            hint: ""
+        },
+
+        _create: function() {
+            this.element.addClass("textbox-container");
+            this.element.attr("placeholder", this.options.hint);
+        },
+
+        destroy:function() {
+            this.element.remove();
+        }
+    });
+ })(jQuery);
diff --git a/ui/new-ui-samples/js/vendor.js b/ui/new-ui-samples/js/vendor.js
new file mode 100644
index 0000000..ef0e2ec
--- /dev/null
+++ b/ui/new-ui-samples/js/vendor.js
@@ -0,0 +1,5523 @@
+/*!
+ * https://github.com/es-shims/es5-shim
+ * @license es5-shim Copyright 2009-2015 by contributors, MIT License
+ * see https://github.com/es-shims/es5-shim/blob/master/LICENSE
+ */
+
+// vim: ts=4 sts=4 sw=4 expandtab
+
+// Add semicolon to prevent IIFE from being passed as argument to concatenated code.
+;
+
+// UMD (Universal Module Definition)
+// see https://github.com/umdjs/umd/blob/master/returnExports.js
+(function (root, factory) {
+    'use strict';
+
+    /* global define, exports, module */
+    if (typeof define === 'function' && define.amd) {
+        // AMD. Register as an anonymous module.
+        define(factory);
+    } else if (typeof exports === 'object') {
+        // Node. Does not work with strict CommonJS, but
+        // only CommonJS-like enviroments that support module.exports,
+        // like Node.
+        module.exports = factory();
+    } else {
+        // Browser globals (root is window)
+        root.returnExports = factory();
+    }
+}(this, function () {
+
+/**
+ * Brings an environment as close to ECMAScript 5 compliance
+ * as is possible with the facilities of erstwhile engines.
+ *
+ * Annotated ES5: http://es5.github.com/ (specific links below)
+ * ES5 Spec: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf
+ * Required reading: http://javascriptweblog.wordpress.com/2011/12/05/extending-javascript-natives/
+ */
+
+// Shortcut to an often accessed properties, in order to avoid multiple
+// dereference that costs universally. This also holds a reference to known-good
+// functions.
+var $Array = Array;
+var ArrayPrototype = $Array.prototype;
+var $Object = Object;
+var ObjectPrototype = $Object.prototype;
+var FunctionPrototype = Function.prototype;
+var $String = String;
+var StringPrototype = $String.prototype;
+var $Number = Number;
+var NumberPrototype = $Number.prototype;
+var array_slice = ArrayPrototype.slice;
+var array_splice = ArrayPrototype.splice;
+var array_push = ArrayPrototype.push;
+var array_unshift = ArrayPrototype.unshift;
+var array_concat = ArrayPrototype.concat;
+var call = FunctionPrototype.call;
+var max = Math.max;
+var min = Math.min;
+
+// Having a toString local variable name breaks in Opera so use to_string.
+var to_string = ObjectPrototype.toString;
+
+var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';
+var isCallable; /* inlined from https://npmjs.com/is-callable */ var fnToStr = Function.prototype.toString, tryFunctionObject = function tryFunctionObject(value) { try { fnToStr.call(value); return true; } catch (e) { return false; } }, fnClass = '[object Function]', genClass = '[object GeneratorFunction]'; isCallable = function isCallable(value) { if (typeof value !== 'function') { return false; } if (hasToStringTag) { return tryFunctionObject(value); } var strClass = to_string.call(value); return strClass === fnClass || strClass === genClass; };
+var isRegex; /* inlined from https://npmjs.com/is-regex */ var regexExec = RegExp.prototype.exec, tryRegexExec = function tryRegexExec(value) { try { regexExec.call(value); return true; } catch (e) { return false; } }, regexClass = '[object RegExp]'; isRegex = function isRegex(value) { if (typeof value !== 'object') { return false; } return hasToStringTag ? tryRegexExec(value) : to_string.call(value) === regexClass; };
+var isString; /* inlined from https://npmjs.com/is-string */ var strValue = String.prototype.valueOf, tryStringObject = function tryStringObject(value) { try { strValue.call(value); return true; } catch (e) { return false; } }, stringClass = '[object String]'; isString = function isString(value) { if (typeof value === 'string') { return true; } if (typeof value !== 'object') { return false; } return hasToStringTag ? tryStringObject(value) : to_string.call(value) === stringClass; };
+
+/* inlined from http://npmjs.com/define-properties */
+var defineProperties = (function (has) {
+  var supportsDescriptors = $Object.defineProperty && (function () {
+      try {
+          var obj = {};
+          $Object.defineProperty(obj, 'x', { enumerable: false, value: obj });
+          for (var _ in obj) { return false; }
+          return obj.x === obj;
+      } catch (e) { /* this is ES3 */
+          return false;
+      }
+  }());
+
+  // Define configurable, writable and non-enumerable props
+  // if they don't exist.
+  var defineProperty;
+  if (supportsDescriptors) {
+      defineProperty = function (object, name, method, forceAssign) {
+          if (!forceAssign && (name in object)) { return; }
+          $Object.defineProperty(object, name, {
+              configurable: true,
+              enumerable: false,
+              writable: true,
+              value: method
+          });
+      };
+  } else {
+      defineProperty = function (object, name, method, forceAssign) {
+          if (!forceAssign && (name in object)) { return; }
+          object[name] = method;
+      };
+  }
+  return function defineProperties(object, map, forceAssign) {
+      for (var name in map) {
+          if (has.call(map, name)) {
+            defineProperty(object, name, map[name], forceAssign);
+          }
+      }
+  };
+}(ObjectPrototype.hasOwnProperty));
+
+//
+// Util
+// ======
+//
+
+/* replaceable with https://npmjs.com/package/es-abstract /helpers/isPrimitive */
+var isPrimitive = function isPrimitive(input) {
+    var type = typeof input;
+    return input === null || (type !== 'object' && type !== 'function');
+};
+
+var ES = {
+    // ES5 9.4
+    // http://es5.github.com/#x9.4
+    // http://jsperf.com/to-integer
+    /* replaceable with https://npmjs.com/package/es-abstract ES5.ToInteger */
+    ToInteger: function ToInteger(num) {
+        var n = +num;
+        if (n !== n) { // isNaN
+            n = 0;
+        } else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) {
+            n = (n > 0 || -1) * Math.floor(Math.abs(n));
+        }
+        return n;
+    },
+
+    /* replaceable with https://npmjs.com/package/es-abstract ES5.ToPrimitive */
+    ToPrimitive: function ToPrimitive(input) {
+        var val, valueOf, toStr;
+        if (isPrimitive(input)) {
+            return input;
+        }
+        valueOf = input.valueOf;
+        if (isCallable(valueOf)) {
+            val = valueOf.call(input);
+            if (isPrimitive(val)) {
+                return val;
+            }
+        }
+        toStr = input.toString;
+        if (isCallable(toStr)) {
+            val = toStr.call(input);
+            if (isPrimitive(val)) {
+                return val;
+            }
+        }
+        throw new TypeError();
+    },
+
+    // ES5 9.9
+    // http://es5.github.com/#x9.9
+    /* replaceable with https://npmjs.com/package/es-abstract ES5.ToObject */
+    ToObject: function (o) {
+        /* jshint eqnull: true */
+        if (o == null) { // this matches both null and undefined
+            throw new TypeError("can't convert " + o + ' to object');
+        }
+        return $Object(o);
+    },
+
+    /* replaceable with https://npmjs.com/package/es-abstract ES5.ToUint32 */
+    ToUint32: function ToUint32(x) {
+        return x >>> 0;
+    }
+};
+
+//
+// Function
+// ========
+//
+
+// ES-5 15.3.4.5
+// http://es5.github.com/#x15.3.4.5
+
+var Empty = function Empty() {};
+
+defineProperties(FunctionPrototype, {
+    bind: function bind(that) { // .length is 1
+        // 1. Let Target be the this value.
+        var target = this;
+        // 2. If IsCallable(Target) is false, throw a TypeError exception.
+        if (!isCallable(target)) {
+            throw new TypeError('Function.prototype.bind called on incompatible ' + target);
+        }
+        // 3. Let A be a new (possibly empty) internal list of all of the
+        //   argument values provided after thisArg (arg1, arg2 etc), in order.
+        // XXX slicedArgs will stand in for "A" if used
+        var args = array_slice.call(arguments, 1); // for normal call
+        // 4. Let F be a new native ECMAScript object.
+        // 11. Set the [[Prototype]] internal property of F to the standard
+        //   built-in Function prototype object as specified in 15.3.3.1.
+        // 12. Set the [[Call]] internal property of F as described in
+        //   15.3.4.5.1.
+        // 13. Set the [[Construct]] internal property of F as described in
+        //   15.3.4.5.2.
+        // 14. Set the [[HasInstance]] internal property of F as described in
+        //   15.3.4.5.3.
+        var bound;
+        var binder = function () {
+
+            if (this instanceof bound) {
+                // 15.3.4.5.2 [[Construct]]
+                // When the [[Construct]] internal method of a function object,
+                // F that was created using the bind function is called with a
+                // list of arguments ExtraArgs, the following steps are taken:
+                // 1. Let target be the value of F's [[TargetFunction]]
+                //   internal property.
+                // 2. If target has no [[Construct]] internal method, a
+                //   TypeError exception is thrown.
+                // 3. Let boundArgs be the value of F's [[BoundArgs]] internal
+                //   property.
+                // 4. Let args be a new list containing the same values as the
+                //   list boundArgs in the same order followed by the same
+                //   values as the list ExtraArgs in the same order.
+                // 5. Return the result of calling the [[Construct]] internal
+                //   method of target providing args as the arguments.
+
+                var result = target.apply(
+                    this,
+                    array_concat.call(args, array_slice.call(arguments))
+                );
+                if ($Object(result) === result) {
+                    return result;
+                }
+                return this;
+
+            } else {
+                // 15.3.4.5.1 [[Call]]
+                // When the [[Call]] internal method of a function object, F,
+                // which was created using the bind function is called with a
+                // this value and a list of arguments ExtraArgs, the following
+                // steps are taken:
+                // 1. Let boundArgs be the value of F's [[BoundArgs]] internal
+                //   property.
+                // 2. Let boundThis be the value of F's [[BoundThis]] internal
+                //   property.
+                // 3. Let target be the value of F's [[TargetFunction]] internal
+                //   property.
+                // 4. Let args be a new list containing the same values as the
+                //   list boundArgs in the same order followed by the same
+                //   values as the list ExtraArgs in the same order.
+                // 5. Return the result of calling the [[Call]] internal method
+                //   of target providing boundThis as the this value and
+                //   providing args as the arguments.
+
+                // equiv: target.call(this, ...boundArgs, ...args)
+                return target.apply(
+                    that,
+                    array_concat.call(args, array_slice.call(arguments))
+                );
+
+            }
+
+        };
+
+        // 15. If the [[Class]] internal property of Target is "Function", then
+        //     a. Let L be the length property of Target minus the length of A.
+        //     b. Set the length own property of F to either 0 or L, whichever is
+        //       larger.
+        // 16. Else set the length own property of F to 0.
+
+        var boundLength = max(0, target.length - args.length);
+
+        // 17. Set the attributes of the length own property of F to the values
+        //   specified in 15.3.5.1.
+        var boundArgs = [];
+        for (var i = 0; i < boundLength; i++) {
+            array_push.call(boundArgs, '$' + i);
+        }
+
+        // XXX Build a dynamic function with desired amount of arguments is the only
+        // way to set the length property of a function.
+        // In environments where Content Security Policies enabled (Chrome extensions,
+        // for ex.) all use of eval or Function costructor throws an exception.
+        // However in all of these environments Function.prototype.bind exists
+        // and so this code will never be executed.
+        bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this, arguments); }')(binder);
+
+        if (target.prototype) {
+            Empty.prototype = target.prototype;
+            bound.prototype = new Empty();
+            // Clean up dangling references.
+            Empty.prototype = null;
+        }
+
+        // TODO
+        // 18. Set the [[Extensible]] internal property of F to true.
+
+        // TODO
+        // 19. Let thrower be the [[ThrowTypeError]] function Object (13.2.3).
+        // 20. Call the [[DefineOwnProperty]] internal method of F with
+        //   arguments "caller", PropertyDescriptor {[[Get]]: thrower, [[Set]]:
+        //   thrower, [[Enumerable]]: false, [[Configurable]]: false}, and
+        //   false.
+        // 21. Call the [[DefineOwnProperty]] internal method of F with
+        //   arguments "arguments", PropertyDescriptor {[[Get]]: thrower,
+        //   [[Set]]: thrower, [[Enumerable]]: false, [[Configurable]]: false},
+        //   and false.
+
+        // TODO
+        // NOTE Function objects created using Function.prototype.bind do not
+        // have a prototype property or the [[Code]], [[FormalParameters]], and
+        // [[Scope]] internal properties.
+        // XXX can't delete prototype in pure-js.
+
+        // 22. Return F.
+        return bound;
+    }
+});
+
+// _Please note: Shortcuts are defined after `Function.prototype.bind` as we
+// us it in defining shortcuts.
+var owns = call.bind(ObjectPrototype.hasOwnProperty);
+var toStr = call.bind(ObjectPrototype.toString);
+var strSlice = call.bind(StringPrototype.slice);
+var strSplit = call.bind(StringPrototype.split);
+
+//
+// Array
+// =====
+//
+
+var isArray = $Array.isArray || function isArray(obj) {
+    return toStr(obj) === '[object Array]';
+};
+
+// ES5 15.4.4.12
+// http://es5.github.com/#x15.4.4.13
+// Return len+argCount.
+// [bugfix, ielt8]
+// IE < 8 bug: [].unshift(0) === undefined but should be "1"
+var hasUnshiftReturnValueBug = [].unshift(0) !== 1;
+defineProperties(ArrayPrototype, {
+    unshift: function () {
+        array_unshift.apply(this, arguments);
+        return this.length;
+    }
+}, hasUnshiftReturnValueBug);
+
+// ES5 15.4.3.2
+// http://es5.github.com/#x15.4.3.2
+// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/isArray
+defineProperties($Array, { isArray: isArray });
+
+// The IsCallable() check in the Array functions
+// has been replaced with a strict check on the
+// internal class of the object to trap cases where
+// the provided function was actually a regular
+// expression literal, which in V8 and
+// JavaScriptCore is a typeof "function".  Only in
+// V8 are regular expression literals permitted as
+// reduce parameters, so it is desirable in the
+// general case for the shim to match the more
+// strict and common behavior of rejecting regular
+// expressions.
+
+// ES5 15.4.4.18
+// http://es5.github.com/#x15.4.4.18
+// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/array/forEach
+
+// Check failure of by-index access of string characters (IE < 9)
+// and failure of `0 in boxedString` (Rhino)
+var boxedString = $Object('a');
+var splitString = boxedString[0] !== 'a' || !(0 in boxedString);
+
+var properlyBoxesContext = function properlyBoxed(method) {
+    // Check node 0.6.21 bug where third parameter is not boxed
+    var properlyBoxesNonStrict = true;
+    var properlyBoxesStrict = true;
+    if (method) {
+        method.call('foo', function (_, __, context) {
+            if (typeof context !== 'object') { properlyBoxesNonStrict = false; }
+        });
+
+        method.call([1], function () {
+            'use strict';
+
+            properlyBoxesStrict = typeof this === 'string';
+        }, 'x');
+    }
+    return !!method && properlyBoxesNonStrict && properlyBoxesStrict;
+};
+
+defineProperties(ArrayPrototype, {
+    forEach: function forEach(callbackfn /*, thisArg*/) {
+        var object = ES.ToObject(this);
+        var self = splitString && isString(this) ? strSplit(this, '') : object;
+        var i = -1;
+        var length = self.length >>> 0;
+        var T;
+        if (arguments.length > 1) {
+          T = arguments[1];
+        }
+
+        // If no callback function or if callback is not a callable function
+        if (!isCallable(callbackfn)) {
+            throw new TypeError('Array.prototype.forEach callback must be a function');
+        }
+
+        while (++i < length) {
+            if (i in self) {
+                // Invoke the callback function with call, passing arguments:
+                // context, property value, property key, thisArg object
+                if (typeof T !== 'undefined') {
+                    callbackfn.call(T, self[i], i, object);
+                } else {
+                    callbackfn(self[i], i, object);
+                }
+            }
+        }
+    }
+}, !properlyBoxesContext(ArrayPrototype.forEach));
+
+// ES5 15.4.4.19
+// http://es5.github.com/#x15.4.4.19
+// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/map
+defineProperties(ArrayPrototype, {
+    map: function map(callbackfn/*, thisArg*/) {
+        var object = ES.ToObject(this);
+        var self = splitString && isString(this) ? strSplit(this, '') : object;
+        var length = self.length >>> 0;
+        var result = $Array(length);
+        var T;
+        if (arguments.length > 1) {
+            T = arguments[1];
+        }
+
+        // If no callback function or if callback is not a callable function
+        if (!isCallable(callbackfn)) {
+            throw new TypeError('Array.prototype.map callback must be a function');
+        }
+
+        for (var i = 0; i < length; i++) {
+            if (i in self) {
+                if (typeof T !== 'undefined') {
+                    result[i] = callbackfn.call(T, self[i], i, object);
+                } else {
+                    result[i] = callbackfn(self[i], i, object);
+                }
+            }
+        }
+        return result;
+    }
+}, !properlyBoxesContext(ArrayPrototype.map));
+
+// ES5 15.4.4.20
+// http://es5.github.com/#x15.4.4.20
+// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/filter
+defineProperties(ArrayPrototype, {
+    filter: function filter(callbackfn /*, thisArg*/) {
+        var object = ES.ToObject(this);
+        var self = splitString && isString(this) ? strSplit(this, '') : object;
+        var length = self.length >>> 0;
+        var result = [];
+        var value;
+        var T;
+        if (arguments.length > 1) {
+            T = arguments[1];
+        }
+
+        // If no callback function or if callback is not a callable function
+        if (!isCallable(callbackfn)) {
+            throw new TypeError('Array.prototype.filter callback must be a function');
+        }
+
+        for (var i = 0; i < length; i++) {
+            if (i in self) {
+                value = self[i];
+                if (typeof T === 'undefined' ? callbackfn(value, i, object) : callbackfn.call(T, value, i, object)) {
+                    array_push.call(result, value);
+                }
+            }
+        }
+        return result;
+    }
+}, !properlyBoxesContext(ArrayPrototype.filter));
+
+// ES5 15.4.4.16
+// http://es5.github.com/#x15.4.4.16
+// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every
+defineProperties(ArrayPrototype, {
+    every: function every(callbackfn /*, thisArg*/) {
+        var object = ES.ToObject(this);
+        var self = splitString && isString(this) ? strSplit(this, '') : object;
+        var length = self.length >>> 0;
+        var T;
+        if (arguments.length > 1) {
+            T = arguments[1];
+        }
+
+        // If no callback function or if callback is not a callable function
+        if (!isCallable(callbackfn)) {
+            throw new TypeError('Array.prototype.every callback must be a function');
+        }
+
+        for (var i = 0; i < length; i++) {
+            if (i in self && !(typeof T === 'undefined' ? callbackfn(self[i], i, object) : callbackfn.call(T, self[i], i, object))) {
+                return false;
+            }
+        }
+        return true;
+    }
+}, !properlyBoxesContext(ArrayPrototype.every));
+
+// ES5 15.4.4.17
+// http://es5.github.com/#x15.4.4.17
+// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some
+defineProperties(ArrayPrototype, {
+    some: function some(callbackfn/*, thisArg */) {
+        var object = ES.ToObject(this);
+        var self = splitString && isString(this) ? strSplit(this, '') : object;
+        var length = self.length >>> 0;
+        var T;
+        if (arguments.length > 1) {
+            T = arguments[1];
+        }
+
+        // If no callback function or if callback is not a callable function
+        if (!isCallable(callbackfn)) {
+            throw new TypeError('Array.prototype.some callback must be a function');
+        }
+
+        for (var i = 0; i < length; i++) {
+            if (i in self && (typeof T === 'undefined' ? callbackfn(self[i], i, object) : callbackfn.call(T, self[i], i, object))) {
+                return true;
+            }
+        }
+        return false;
+    }
+}, !properlyBoxesContext(ArrayPrototype.some));
+
+// ES5 15.4.4.21
+// http://es5.github.com/#x15.4.4.21
+// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduce
+var reduceCoercesToObject = false;
+if (ArrayPrototype.reduce) {
+    reduceCoercesToObject = typeof ArrayPrototype.reduce.call('es5', function (_, __, ___, list) { return list; }) === 'object';
+}
+defineProperties(ArrayPrototype, {
+    reduce: function reduce(callbackfn /*, initialValue*/) {
+        var object = ES.ToObject(this);
+        var self = splitString && isString(this) ? strSplit(this, '') : object;
+        var length = self.length >>> 0;
+
+        // If no callback function or if callback is not a callable function
+        if (!isCallable(callbackfn)) {
+            throw new TypeError('Array.prototype.reduce callback must be a function');
+        }
+
+        // no value to return if no initial value and an empty array
+        if (length === 0 && arguments.length === 1) {
+            throw new TypeError('reduce of empty array with no initial value');
+        }
+
+        var i = 0;
+        var result;
+        if (arguments.length >= 2) {
+            result = arguments[1];
+        } else {
+            do {
+                if (i in self) {
+                    result = self[i++];
+                    break;
+                }
+
+                // if array contains no values, no initial value to return
+                if (++i >= length) {
+                    throw new TypeError('reduce of empty array with no initial value');
+                }
+            } while (true);
+        }
+
+        for (; i < length; i++) {
+            if (i in self) {
+                result = callbackfn(result, self[i], i, object);
+            }
+        }
+
+        return result;
+    }
+}, !reduceCoercesToObject);
+
+// ES5 15.4.4.22
+// http://es5.github.com/#x15.4.4.22
+// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduceRight
+var reduceRightCoercesToObject = false;
+if (ArrayPrototype.reduceRight) {
+    reduceRightCoercesToObject = typeof ArrayPrototype.reduceRight.call('es5', function (_, __, ___, list) { return list; }) === 'object';
+}
+defineProperties(ArrayPrototype, {
+    reduceRight: function reduceRight(callbackfn/*, initial*/) {
+        var object = ES.ToObject(this);
+        var self = splitString && isString(this) ? strSplit(this, '') : object;
+        var length = self.length >>> 0;
+
+        // If no callback function or if callback is not a callable function
+        if (!isCallable(callbackfn)) {
+            throw new TypeError('Array.prototype.reduceRight callback must be a function');
+        }
+
+        // no value to return if no initial value, empty array
+        if (length === 0 && arguments.length === 1) {
+            throw new TypeError('reduceRight of empty array with no initial value');
+        }
+
+        var result;
+        var i = length - 1;
+        if (arguments.length >= 2) {
+            result = arguments[1];
+        } else {
+            do {
+                if (i in self) {
+                    result = self[i--];
+                    break;
+                }
+
+                // if array contains no values, no initial value to return
+                if (--i < 0) {
+                    throw new TypeError('reduceRight of empty array with no initial value');
+                }
+            } while (true);
+        }
+
+        if (i < 0) {
+            return result;
+        }
+
+        do {
+            if (i in self) {
+                result = callbackfn(result, self[i], i, object);
+            }
+        } while (i--);
+
+        return result;
+    }
+}, !reduceRightCoercesToObject);
+
+// ES5 15.4.4.14
+// http://es5.github.com/#x15.4.4.14
+// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf
+var hasFirefox2IndexOfBug = ArrayPrototype.indexOf && [0, 1].indexOf(1, 2) !== -1;
+defineProperties(ArrayPrototype, {
+    indexOf: function indexOf(searchElement /*, fromIndex */) {
+        var self = splitString && isString(this) ? strSplit(this, '') : ES.ToObject(this);
+        var length = self.length >>> 0;
+
+        if (length === 0) {
+            return -1;
+        }
+
+        var i = 0;
+        if (arguments.length > 1) {
+            i = ES.ToInteger(arguments[1]);
+        }
+
+        // handle negative indices
+        i = i >= 0 ? i : max(0, length + i);
+        for (; i < length; i++) {
+            if (i in self && self[i] === searchElement) {
+                return i;
+            }
+        }
+        return -1;
+    }
+}, hasFirefox2IndexOfBug);
+
+// ES5 15.4.4.15
+// http://es5.github.com/#x15.4.4.15
+// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf
+var hasFirefox2LastIndexOfBug = ArrayPrototype.lastIndexOf && [0, 1].lastIndexOf(0, -3) !== -1;
+defineProperties(ArrayPrototype, {
+    lastIndexOf: function lastIndexOf(searchElement /*, fromIndex */) {
+        var self = splitString && isString(this) ? strSplit(this, '') : ES.ToObject(this);
+        var length = self.length >>> 0;
+
+        if (length === 0) {
+            return -1;
+        }
+        var i = length - 1;
+        if (arguments.length > 1) {
+            i = min(i, ES.ToInteger(arguments[1]));
+        }
+        // handle negative indices
+        i = i >= 0 ? i : length - Math.abs(i);
+        for (; i >= 0; i--) {
+            if (i in self && searchElement === self[i]) {
+                return i;
+            }
+        }
+        return -1;
+    }
+}, hasFirefox2LastIndexOfBug);
+
+// ES5 15.4.4.12
+// http://es5.github.com/#x15.4.4.12
+var spliceNoopReturnsEmptyArray = (function () {
+    var a = [1, 2];
+    var result = a.splice();
+    return a.length === 2 && isArray(result) && result.length === 0;
+}());
+defineProperties(ArrayPrototype, {
+    // Safari 5.0 bug where .splice() returns undefined
+    splice: function splice(start, deleteCount) {
+        if (arguments.length === 0) {
+            return [];
+        } else {
+            return array_splice.apply(this, arguments);
+        }
+    }
+}, !spliceNoopReturnsEmptyArray);
+
+var spliceWorksWithEmptyObject = (function () {
+    var obj = {};
+    ArrayPrototype.splice.call(obj, 0, 0, 1);
+    return obj.length === 1;
+}());
+defineProperties(ArrayPrototype, {
+    splice: function splice(start, deleteCount) {
+        if (arguments.length === 0) { return []; }
+        var args = arguments;
+        this.length = max(ES.ToInteger(this.length), 0);
+        if (arguments.length > 0 && typeof deleteCount !== 'number') {
+            args = array_slice.call(arguments);
+            if (args.length < 2) {
+                array_push.call(args, this.length - start);
+            } else {
+                args[1] = ES.ToInteger(deleteCount);
+            }
+        }
+        return array_splice.apply(this, args);
+    }
+}, !spliceWorksWithEmptyObject);
+var spliceWorksWithLargeSparseArrays = (function () {
+    // Per https://github.com/es-shims/es5-shim/issues/295
+    // Safari 7/8 breaks with sparse arrays of size 1e5 or greater
+    var arr = new $Array(1e5);
+    // note: the index MUST be 8 or larger or the test will false pass
+    arr[8] = 'x';
+    arr.splice(1, 1);
+    // note: this test must be defined *after* the indexOf shim
+    // per https://github.com/es-shims/es5-shim/issues/313
+    return arr.indexOf('x') === 7;
+}());
+var spliceWorksWithSmallSparseArrays = (function () {
+    // Per https://github.com/es-shims/es5-shim/issues/295
+    // Opera 12.15 breaks on this, no idea why.
+    var n = 256;
+    var arr = [];
+    arr[n] = 'a';
+    arr.splice(n + 1, 0, 'b');
+    return arr[n] === 'a';
+}());
+defineProperties(ArrayPrototype, {
+    splice: function splice(start, deleteCount) {
+        var O = ES.ToObject(this);
+        var A = [];
+        var len = ES.ToUint32(O.length);
+        var relativeStart = ES.ToInteger(start);
+        var actualStart = relativeStart < 0 ? max((len + relativeStart), 0) : min(relativeStart, len);
+        var actualDeleteCount = min(max(ES.ToInteger(deleteCount), 0), len - actualStart);
+
+        var k = 0;
+        var from;
+        while (k < actualDeleteCount) {
+            from = $String(actualStart + k);
+            if (owns(O, from)) {
+                A[k] = O[from];
+            }
+            k += 1;
+        }
+
+        var items = array_slice.call(arguments, 2);
+        var itemCount = items.length;
+        var to;
+        if (itemCount < actualDeleteCount) {
+            k = actualStart;
+            while (k < (len - actualDeleteCount)) {
+                from = $String(k + actualDeleteCount);
+                to = $String(k + itemCount);
+                if (owns(O, from)) {
+                    O[to] = O[from];
+                } else {
+                    delete O[to];
+                }
+                k += 1;
+            }
+            k = len;
+            while (k > (len - actualDeleteCount + itemCount)) {
+                delete O[k - 1];
+                k -= 1;
+            }
+        } else if (itemCount > actualDeleteCount) {
+            k = len - actualDeleteCount;
+            while (k > actualStart) {
+                from = $String(k + actualDeleteCount - 1);
+                to = $String(k + itemCount - 1);
+                if (owns(O, from)) {
+                    O[to] = O[from];
+                } else {
+                    delete O[to];
+                }
+                k -= 1;
+            }
+        }
+        k = actualStart;
+        for (var i = 0; i < items.length; ++i) {
+            O[k] = items[i];
+            k += 1;
+        }
+        O.length = len - actualDeleteCount + itemCount;
+
+        return A;
+    }
+}, !spliceWorksWithLargeSparseArrays || !spliceWorksWithSmallSparseArrays);
+
+//
+// Object
+// ======
+//
+
+// ES5 15.2.3.14
+// http://es5.github.com/#x15.2.3.14
+
+// http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation
+var hasDontEnumBug = !({ 'toString': null }).propertyIsEnumerable('toString');
+var hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype');
+var hasStringEnumBug = !owns('x', '0');
+var equalsConstructorPrototype = function (o) {
+    var ctor = o.constructor;
+    return ctor && ctor.prototype === o;
+};
+var blacklistedKeys = {
+    $window: true,
+    $console: true,
+    $parent: true,
+    $self: true,
+    $frames: true,
+    $frameElement: true,
+    $webkitIndexedDB: true,
+    $webkitStorageInfo: true
+};
+var hasAutomationEqualityBug = (function () {
+    /* globals window */
+    if (typeof window === 'undefined') { return false; }
+    for (var k in window) {
+        if (!blacklistedKeys['$' + k] && owns(window, k) && window[k] !== null && typeof window[k] === 'object') {
+            try {
+                equalsConstructorPrototype(window[k]);
+            } catch (e) {
+                return true;
+            }
+        }
+    }
+    return false;
+}());
+var equalsConstructorPrototypeIfNotBuggy = function (object) {
+    if (typeof window === 'undefined' || !hasAutomationEqualityBug) { return equalsConstructorPrototype(object); }
+    try {
+        return equalsConstructorPrototype(object);
+    } catch (e) {
+        return false;
+    }
+};
+var dontEnums = [
+    'toString',
+    'toLocaleString',
+    'valueOf',
+    'hasOwnProperty',
+    'isPrototypeOf',
+    'propertyIsEnumerable',
+    'constructor'
+];
+var dontEnumsLength = dontEnums.length;
+
+var isArguments = function isArguments(value) {
+    var str = toStr(value);
+    var isArgs = str === '[object Arguments]';
+    if (!isArgs) {
+        isArgs = !isArray(value) &&
+          value !== null &&
+          typeof value === 'object' &&
+          typeof value.length === 'number' &&
+          value.length >= 0 &&
+          isCallable(value.callee);
+    }
+    return isArgs;
+};
+
+defineProperties($Object, {
+    keys: function keys(object) {
+        var isFn = isCallable(object);
+        var isArgs = isArguments(object);
+        var isObject = object !== null && typeof object === 'object';
+        var isStr = isObject && isString(object);
+
+        if (!isObject && !isFn && !isArgs) {
+            throw new TypeError('Object.keys called on a non-object');
+        }
+
+        var theKeys = [];
+        var skipProto = hasProtoEnumBug && isFn;
+        if ((isStr && hasStringEnumBug) || isArgs) {
+            for (var i = 0; i < object.length; ++i) {
+                array_push.call(theKeys, $String(i));
+            }
+        }
+
+        if (!isArgs) {
+            for (var name in object) {
+                if (!(skipProto && name === 'prototype') && owns(object, name)) {
+                    array_push.call(theKeys, $String(name));
+                }
+            }
+        }
+
+        if (hasDontEnumBug) {
+            var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);
+            for (var j = 0; j < dontEnumsLength; j++) {
+                var dontEnum = dontEnums[j];
+                if (!(skipConstructor && dontEnum === 'constructor') && owns(object, dontEnum)) {
+                    array_push.call(theKeys, dontEnum);
+                }
+            }
+        }
+        return theKeys;
+    }
+});
+
+var keysWorksWithArguments = $Object.keys && (function () {
+    // Safari 5.0 bug
+    return $Object.keys(arguments).length === 2;
+}(1, 2));
+var originalKeys = $Object.keys;
+defineProperties($Object, {
+    keys: function keys(object) {
+        if (isArguments(object)) {
+            return originalKeys(array_slice.call(object));
+        } else {
+            return originalKeys(object);
+        }
+    }
+}, !keysWorksWithArguments);
+
+//
+// Date
+// ====
+//
+
+// ES5 15.9.5.43
+// http://es5.github.com/#x15.9.5.43
+// This function returns a String value represent the instance in time
+// represented by this Date object. The format of the String is the Date Time
+// string format defined in 15.9.1.15. All fields are present in the String.
+// The time zone is always UTC, denoted by the suffix Z. If the time value of
+// this object is not a finite Number a RangeError exception is thrown.
+var negativeDate = -62198755200000;
+var negativeYearString = '-000001';
+var hasNegativeDateBug = Date.prototype.toISOString && new Date(negativeDate).toISOString().indexOf(negativeYearString) === -1;
+var hasSafari51DateBug = Date.prototype.toISOString && new Date(-1).toISOString() !== '1969-12-31T23:59:59.999Z';
+
+defineProperties(Date.prototype, {
+    toISOString: function toISOString() {
+        var result, length, value, year, month;
+        if (!isFinite(this)) {
+            throw new RangeError('Date.prototype.toISOString called on non-finite value.');
+        }
+
+        year = this.getUTCFullYear();
+
+        month = this.getUTCMonth();
+        // see https://github.com/es-shims/es5-shim/issues/111
+        year += Math.floor(month / 12);
+        month = (month % 12 + 12) % 12;
+
+        // the date time string format is specified in 15.9.1.15.
+        result = [month + 1, this.getUTCDate(), this.getUTCHours(), this.getUTCMinutes(), this.getUTCSeconds()];
+        year = (
+            (year < 0 ? '-' : (year > 9999 ? '+' : '')) +
+            strSlice('00000' + Math.abs(year), (0 <= year && year <= 9999) ? -4 : -6)
+        );
+
+        length = result.length;
+        while (length--) {
+            value = result[length];
+            // pad months, days, hours, minutes, and seconds to have two
+            // digits.
+            if (value < 10) {
+                result[length] = '0' + value;
+            }
+        }
+        // pad milliseconds to have three digits.
+        return (
+            year + '-' + array_slice.call(result, 0, 2).join('-') +
+            'T' + array_slice.call(result, 2).join(':') + '.' +
+            strSlice('000' + this.getUTCMilliseconds(), -3) + 'Z'
+        );
+    }
+}, hasNegativeDateBug || hasSafari51DateBug);
+
+// ES5 15.9.5.44
+// http://es5.github.com/#x15.9.5.44
+// This function provides a String representation of a Date object for use by
+// JSON.stringify (15.12.3).
+var dateToJSONIsSupported = (function () {
+    try {
+        return Date.prototype.toJSON &&
+            new Date(NaN).toJSON() === null &&
+            new Date(negativeDate).toJSON().indexOf(negativeYearString) !== -1 &&
+            Date.prototype.toJSON.call({ // generic
+                toISOString: function () { return true; }
+            });
+    } catch (e) {
+        return false;
+    }
+}());
+if (!dateToJSONIsSupported) {
+    Date.prototype.toJSON = function toJSON(key) {
+        // When the toJSON method is called with argument key, the following
+        // steps are taken:
+
+        // 1.  Let O be the result of calling ToObject, giving it the this
+        // value as its argument.
+        // 2. Let tv be ES.ToPrimitive(O, hint Number).
+        var O = $Object(this);
+        var tv = ES.ToPrimitive(O);
+        // 3. If tv is a Number and is not finite, return null.
+        if (typeof tv === 'number' && !isFinite(tv)) {
+            return null;
+        }
+        // 4. Let toISO be the result of calling the [[Get]] internal method of
+        // O with argument "toISOString".
+        var toISO = O.toISOString;
+        // 5. If IsCallable(toISO) is false, throw a TypeError exception.
+        if (!isCallable(toISO)) {
+            throw new TypeError('toISOString property is not callable');
+        }
+        // 6. Return the result of calling the [[Call]] internal method of
+        //  toISO with O as the this value and an empty argument list.
+        return toISO.call(O);
+
+        // NOTE 1 The argument is ignored.
+
+        // NOTE 2 The toJSON function is intentionally generic; it does not
+        // require that its this value be a Date object. Therefore, it can be
+        // transferred to other kinds of objects for use as a method. However,
+        // it does require that any such object have a toISOString method. An
+        // object is free to use the argument key to filter its
+        // stringification.
+    };
+}
+
+// ES5 15.9.4.2
+// http://es5.github.com/#x15.9.4.2
+// based on work shared by Daniel Friesen (dantman)
+// http://gist.github.com/303249
+var supportsExtendedYears = Date.parse('+033658-09-27T01:46:40.000Z') === 1e15;
+var acceptsInvalidDates = !isNaN(Date.parse('2012-04-04T24:00:00.500Z')) || !isNaN(Date.parse('2012-11-31T23:59:59.000Z')) || !isNaN(Date.parse('2012-12-31T23:59:60.000Z'));
+var doesNotParseY2KNewYear = isNaN(Date.parse('2000-01-01T00:00:00.000Z'));
+if (!Date.parse || doesNotParseY2KNewYear || acceptsInvalidDates || !supportsExtendedYears) {
+    // XXX global assignment won't work in embeddings that use
+    // an alternate object for the context.
+    /* global Date: true */
+    /* eslint-disable no-undef */
+    Date = (function (NativeDate) {
+    /* eslint-enable no-undef */
+        // Date.length === 7
+        var DateShim = function Date(Y, M, D, h, m, s, ms) {
+            var length = arguments.length;
+            var date;
+            if (this instanceof NativeDate) {
+                date = length === 1 && $String(Y) === Y ? // isString(Y)
+                    // We explicitly pass it through parse:
+                    new NativeDate(DateShim.parse(Y)) :
+                    // We have to manually make calls depending on argument
+                    // length here
+                    length >= 7 ? new NativeDate(Y, M, D, h, m, s, ms) :
+                    length >= 6 ? new NativeDate(Y, M, D, h, m, s) :
+                    length >= 5 ? new NativeDate(Y, M, D, h, m) :
+                    length >= 4 ? new NativeDate(Y, M, D, h) :
+                    length >= 3 ? new NativeDate(Y, M, D) :
+                    length >= 2 ? new NativeDate(Y, M) :
+                    length >= 1 ? new NativeDate(Y) :
+                                  new NativeDate();
+            } else {
+                date = NativeDate.apply(this, arguments);
+            }
+            // Prevent mixups with unfixed Date object
+            defineProperties(date, { constructor: DateShim }, true);
+            return date;
+        };
+
+        // 15.9.1.15 Date Time String Format.
+        var isoDateExpression = new RegExp('^' +
+            '(\\d{4}|[+-]\\d{6})' + // four-digit year capture or sign +
+                                      // 6-digit extended year
+            '(?:-(\\d{2})' + // optional month capture
+            '(?:-(\\d{2})' + // optional day capture
+            '(?:' + // capture hours:minutes:seconds.milliseconds
+                'T(\\d{2})' + // hours capture
+                ':(\\d{2})' + // minutes capture
+                '(?:' + // optional :seconds.milliseconds
+                    ':(\\d{2})' + // seconds capture
+                    '(?:(\\.\\d{1,}))?' + // milliseconds capture
+                ')?' +
+            '(' + // capture UTC offset component
+                'Z|' + // UTC capture
+                '(?:' + // offset specifier +/-hours:minutes
+                    '([-+])' + // sign capture
+                    '(\\d{2})' + // hours offset capture
+                    ':(\\d{2})' + // minutes offset capture
+                ')' +
+            ')?)?)?)?' +
+        '$');
+
+        var months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365];
+
+        var dayFromMonth = function dayFromMonth(year, month) {
+            var t = month > 1 ? 1 : 0;
+            return (
+                months[month] +
+                Math.floor((year - 1969 + t) / 4) -
+                Math.floor((year - 1901 + t) / 100) +
+                Math.floor((year - 1601 + t) / 400) +
+                365 * (year - 1970)
+            );
+        };
+
+        var toUTC = function toUTC(t) {
+            return $Number(new NativeDate(1970, 0, 1, 0, 0, 0, t));
+        };
+
+        // Copy any custom methods a 3rd party library may have added
+        for (var key in NativeDate) {
+            if (owns(NativeDate, key)) {
+                DateShim[key] = NativeDate[key];
+            }
+        }
+
+        // Copy "native" methods explicitly; they may be non-enumerable
+        defineProperties(DateShim, {
+            now: NativeDate.now,
+            UTC: NativeDate.UTC
+        }, true);
+        DateShim.prototype = NativeDate.prototype;
+        defineProperties(DateShim.prototype, {
+            constructor: DateShim
+        }, true);
+
+        // Upgrade Date.parse to handle simplified ISO 8601 strings
+        var parseShim = function parse(string) {
+            var match = isoDateExpression.exec(string);
+            if (match) {
+                // parse months, days, hours, minutes, seconds, and milliseconds
+                // provide default values if necessary
+                // parse the UTC offset component
+                var year = $Number(match[1]),
+                    month = $Number(match[2] || 1) - 1,
+                    day = $Number(match[3] || 1) - 1,
+                    hour = $Number(match[4] || 0),
+                    minute = $Number(match[5] || 0),
+                    second = $Number(match[6] || 0),
+                    millisecond = Math.floor($Number(match[7] || 0) * 1000),
+                    // When time zone is missed, local offset should be used
+                    // (ES 5.1 bug)
+                    // see https://bugs.ecmascript.org/show_bug.cgi?id=112
+                    isLocalTime = Boolean(match[4] && !match[8]),
+                    signOffset = match[9] === '-' ? 1 : -1,
+                    hourOffset = $Number(match[10] || 0),
+                    minuteOffset = $Number(match[11] || 0),
+                    result;
+                if (
+                    hour < (
+                        minute > 0 || second > 0 || millisecond > 0 ?
+                        24 : 25
+                    ) &&
+                    minute < 60 && second < 60 && millisecond < 1000 &&
+                    month > -1 && month < 12 && hourOffset < 24 &&
+                    minuteOffset < 60 && // detect invalid offsets
+                    day > -1 &&
+                    day < (
+                        dayFromMonth(year, month + 1) -
+                        dayFromMonth(year, month)
+                    )
+                ) {
+                    result = (
+                        (dayFromMonth(year, month) + day) * 24 +
+                        hour +
+                        hourOffset * signOffset
+                    ) * 60;
+                    result = (
+                        (result + minute + minuteOffset * signOffset) * 60 +
+                        second
+                    ) * 1000 + millisecond;
+                    if (isLocalTime) {
+                        result = toUTC(result);
+                    }
+                    if (-8.64e15 <= result && result <= 8.64e15) {
+                        return result;
+                    }
+                }
+                return NaN;
+            }
+            return NativeDate.parse.apply(this, arguments);
+        };
+        defineProperties(DateShim, { parse: parseShim });
+
+        return DateShim;
+    }(Date));
+    /* global Date: false */
+}
+
+// ES5 15.9.4.4
+// http://es5.github.com/#x15.9.4.4
+if (!Date.now) {
+    Date.now = function now() {
+        return new Date().getTime();
+    };
+}
+
+//
+// Number
+// ======
+//
+
+// ES5.1 15.7.4.5
+// http://es5.github.com/#x15.7.4.5
+var hasToFixedBugs = NumberPrototype.toFixed && (
+  (0.00008).toFixed(3) !== '0.000' ||
+  (0.9).toFixed(0) !== '1' ||
+  (1.255).toFixed(2) !== '1.25' ||
+  (1000000000000000128).toFixed(0) !== '1000000000000000128'
+);
+
+var toFixedHelpers = {
+  base: 1e7,
+  size: 6,
+  data: [0, 0, 0, 0, 0, 0],
+  multiply: function multiply(n, c) {
+      var i = -1;
+      var c2 = c;
+      while (++i < toFixedHelpers.size) {
+          c2 += n * toFixedHelpers.data[i];
+          toFixedHelpers.data[i] = c2 % toFixedHelpers.base;
+          c2 = Math.floor(c2 / toFixedHelpers.base);
+      }
+  },
+  divide: function divide(n) {
+      var i = toFixedHelpers.size, c = 0;
+      while (--i >= 0) {
+          c += toFixedHelpers.data[i];
+          toFixedHelpers.data[i] = Math.floor(c / n);
+          c = (c % n) * toFixedHelpers.base;
+      }
+  },
+  numToString: function numToString() {
+      var i = toFixedHelpers.size;
+      var s = '';
+      while (--i >= 0) {
+          if (s !== '' || i === 0 || toFixedHelpers.data[i] !== 0) {
+              var t = $String(toFixedHelpers.data[i]);
+              if (s === '') {
+                  s = t;
+              } else {
+                  s += strSlice('0000000', 0, 7 - t.length) + t;
+              }
+          }
+      }
+      return s;
+  },
+  pow: function pow(x, n, acc) {
+      return (n === 0 ? acc : (n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc)));
+  },
+  log: function log(x) {
+      var n = 0;
+      var x2 = x;
+      while (x2 >= 4096) {
+          n += 12;
+          x2 /= 4096;
+      }
+      while (x2 >= 2) {
+          n += 1;
+          x2 /= 2;
+      }
+      return n;
+  }
+};
+
+defineProperties(NumberPrototype, {
+    toFixed: function toFixed(fractionDigits) {
+        var f, x, s, m, e, z, j, k;
+
+        // Test for NaN and round fractionDigits down
+        f = $Number(fractionDigits);
+        f = f !== f ? 0 : Math.floor(f);
+
+        if (f < 0 || f > 20) {
+            throw new RangeError('Number.toFixed called with invalid number of decimals');
+        }
+
+        x = $Number(this);
+
+        // Test for NaN
+        if (x !== x) {
+            return 'NaN';
+        }
+
+        // If it is too big or small, return the string value of the number
+        if (x <= -1e21 || x >= 1e21) {
+            return $String(x);
+        }
+
+        s = '';
+
+        if (x < 0) {
+            s = '-';
+            x = -x;
+        }
+
+        m = '0';
+
+        if (x > 1e-21) {
+            // 1e-21 < x < 1e21
+            // -70 < log2(x) < 70
+            e = toFixedHelpers.log(x * toFixedHelpers.pow(2, 69, 1)) - 69;
+            z = (e < 0 ? x * toFixedHelpers.pow(2, -e, 1) : x / toFixedHelpers.pow(2, e, 1));
+            z *= 0x10000000000000; // Math.pow(2, 52);
+            e = 52 - e;
+
+            // -18 < e < 122
+            // x = z / 2 ^ e
+            if (e > 0) {
+                toFixedHelpers.multiply(0, z);
+                j = f;
+
+                while (j >= 7) {
+                    toFixedHelpers.multiply(1e7, 0);
+                    j -= 7;
+                }
+
+                toFixedHelpers.multiply(toFixedHelpers.pow(10, j, 1), 0);
+                j = e - 1;
+
+                while (j >= 23) {
+                    toFixedHelpers.divide(1 << 23);
+                    j -= 23;
+                }
+
+                toFixedHelpers.divide(1 << j);
+                toFixedHelpers.multiply(1, 1);
+                toFixedHelpers.divide(2);
+                m = toFixedHelpers.numToString();
+            } else {
+                toFixedHelpers.multiply(0, z);
+                toFixedHelpers.multiply(1 << (-e), 0);
+                m = toFixedHelpers.numToString() + strSlice('0.00000000000000000000', 2, 2 + f);
+            }
+        }
+
+        if (f > 0) {
+            k = m.length;
+
+            if (k <= f) {
+                m = s + strSlice('0.0000000000000000000', 0, f - k + 2) + m;
+            } else {
+                m = s + strSlice(m, 0, k - f) + '.' + strSlice(m, k - f);
+            }
+        } else {
+            m = s + m;
+        }
+
+        return m;
+    }
+}, hasToFixedBugs);
+
+//
+// String
+// ======
+//
+
+// ES5 15.5.4.14
+// http://es5.github.com/#x15.5.4.14
+
+// [bugfix, IE lt 9, firefox 4, Konqueror, Opera, obscure browsers]
+// Many browsers do not split properly with regular expressions or they
+// do not perform the split correctly under obscure conditions.
+// See http://blog.stevenlevithan.com/archives/cross-browser-split
+// I've tested in many browsers and this seems to cover the deviant ones:
+//    'ab'.split(/(?:ab)*/) should be ["", ""], not [""]
+//    '.'.split(/(.?)(.?)/) should be ["", ".", "", ""], not ["", ""]
+//    'tesst'.split(/(s)*/) should be ["t", undefined, "e", "s", "t"], not
+//       [undefined, "t", undefined, "e", ...]
+//    ''.split(/.?/) should be [], not [""]
+//    '.'.split(/()()/) should be ["."], not ["", "", "."]
+
+if (
+    'ab'.split(/(?:ab)*/).length !== 2 ||
+    '.'.split(/(.?)(.?)/).length !== 4 ||
+    'tesst'.split(/(s)*/)[1] === 't' ||
+    'test'.split(/(?:)/, -1).length !== 4 ||
+    ''.split(/.?/).length ||
+    '.'.split(/()()/).length > 1
+) {
+    (function () {
+        var compliantExecNpcg = typeof (/()??/).exec('')[1] === 'undefined'; // NPCG: nonparticipating capturing group
+
+        StringPrototype.split = function (separator, limit) {
+            var string = this;
+            if (typeof separator === 'undefined' && limit === 0) {
+                return [];
+            }
+
+            // If `separator` is not a regex, use native split
+            if (!isRegex(separator)) {
+                return strSplit(this, separator, limit);
+            }
+
+            var output = [];
+            var flags = (separator.ignoreCase ? 'i' : '') +
+                        (separator.multiline ? 'm' : '') +
+                        (separator.unicode ? 'u' : '') + // in ES6
+                        (separator.sticky ? 'y' : ''), // Firefox 3+ and ES6
+                lastLastIndex = 0,
+                // Make `global` and avoid `lastIndex` issues by working with a copy
+                separator2, match, lastIndex, lastLength;
+            var separatorCopy = new RegExp(separator.source, flags + 'g');
+            string += ''; // Type-convert
+            if (!compliantExecNpcg) {
+                // Doesn't need flags gy, but they don't hurt
+                separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\s)', flags);
+            }
+            /* Values for `limit`, per the spec:
+             * If undefined: 4294967295 // Math.pow(2, 32) - 1
+             * If 0, Infinity, or NaN: 0
+             * If positive number: limit = Math.floor(limit); if (limit > 4294967295) limit -= 4294967296;
+             * If negative number: 4294967296 - Math.floor(Math.abs(limit))
+             * If other: Type-convert, then use the above rules
+             */
+            var splitLimit = typeof limit === 'undefined' ?
+                -1 >>> 0 : // Math.pow(2, 32) - 1
+                ES.ToUint32(limit);
+            match = separatorCopy.exec(string);
+            while (match) {
+                // `separatorCopy.lastIndex` is not reliable cross-browser
+                lastIndex = match.index + match[0].length;
+                if (lastIndex > lastLastIndex) {
+                    array_push.call(output, strSlice(string, lastLastIndex, match.index));
+                    // Fix browsers whose `exec` methods don't consistently return `undefined` for
+                    // nonparticipating capturing groups
+                    if (!compliantExecNpcg && match.length > 1) {
+                        /* eslint-disable no-loop-func */
+                        match[0].replace(separator2, function () {
+                            for (var i = 1; i < arguments.length - 2; i++) {
+                                if (typeof arguments[i] === 'undefined') {
+                                    match[i] = void 0;
+                                }
+                            }
+                        });
+                        /* eslint-enable no-loop-func */
+                    }
+                    if (match.length > 1 && match.index < string.length) {
+                        array_push.apply(output, array_slice.call(match, 1));
+                    }
+                    lastLength = match[0].length;
+                    lastLastIndex = lastIndex;
+                    if (output.length >= splitLimit) {
+                        break;
+                    }
+                }
+                if (separatorCopy.lastIndex === match.index) {
+                    separatorCopy.lastIndex++; // Avoid an infinite loop
+                }
+                match = separatorCopy.exec(string);
+            }
+            if (lastLastIndex === string.length) {
+                if (lastLength || !separatorCopy.test('')) {
+                    array_push.call(output, '');
+                }
+            } else {
+                array_push.call(output, strSlice(string, lastLastIndex));
+            }
+            return output.length > splitLimit ? strSlice(output, 0, splitLimit) : output;
+        };
+    }());
+
+// [bugfix, chrome]
+// If separator is undefined, then the result array contains just one String,
+// which is the this value (converted to a String). If limit is not undefined,
+// then the output array is truncated so that it contains no more than limit
+// elements.
+// "0".split(undefined, 0) -> []
+} else if ('0'.split(void 0, 0).length) {
+    StringPrototype.split = function split(separator, limit) {
+        if (typeof separator === 'undefined' && limit === 0) { return []; }
+        return strSplit(this, separator, limit);
+    };
+}
+
+var str_replace = StringPrototype.replace;
+var replaceReportsGroupsCorrectly = (function () {
+    var groups = [];
+    'x'.replace(/x(.)?/g, function (match, group) {
+        array_push.call(groups, group);
+    });
+    return groups.length === 1 && typeof groups[0] === 'undefined';
+}());
+
+if (!replaceReportsGroupsCorrectly) {
+    StringPrototype.replace = function replace(searchValue, replaceValue) {
+        var isFn = isCallable(replaceValue);
+        var hasCapturingGroups = isRegex(searchValue) && (/\)[*?]/).test(searchValue.source);
+        if (!isFn || !hasCapturingGroups) {
+            return str_replace.call(this, searchValue, replaceValue);
+        } else {
+            var wrappedReplaceValue = function (match) {
+                var length = arguments.length;
+                var originalLastIndex = searchValue.lastIndex;
+                searchValue.lastIndex = 0;
+                var args = searchValue.exec(match) || [];
+                searchValue.lastIndex = originalLastIndex;
+                array_push.call(args, arguments[length - 2], arguments[length - 1]);
+                return replaceValue.apply(this, args);
+            };
+            return str_replace.call(this, searchValue, wrappedReplaceValue);
+        }
+    };
+}
+
+// ECMA-262, 3rd B.2.3
+// Not an ECMAScript standard, although ECMAScript 3rd Edition has a
+// non-normative section suggesting uniform semantics and it should be
+// normalized across all browsers
+// [bugfix, IE lt 9] IE < 9 substr() with negative value not working in IE
+var string_substr = StringPrototype.substr;
+var hasNegativeSubstrBug = ''.substr && '0b'.substr(-1) !== 'b';
+defineProperties(StringPrototype, {
+    substr: function substr(start, length) {
+        var normalizedStart = start;
+        if (start < 0) {
+            normalizedStart = max(this.length + start, 0);
+        }
+        return string_substr.call(this, normalizedStart, length);
+    }
+}, hasNegativeSubstrBug);
+
+// ES5 15.5.4.20
+// whitespace from: http://es5.github.io/#x15.5.4.20
+var ws = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
+    '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028' +
+    '\u2029\uFEFF';
+var zeroWidth = '\u200b';
+var wsRegexChars = '[' + ws + ']';
+var trimBeginRegexp = new RegExp('^' + wsRegexChars + wsRegexChars + '*');
+var trimEndRegexp = new RegExp(wsRegexChars + wsRegexChars + '*$');
+var hasTrimWhitespaceBug = StringPrototype.trim && (ws.trim() || !zeroWidth.trim());
+defineProperties(StringPrototype, {
+    // http://blog.stevenlevithan.com/archives/faster-trim-javascript
+    // http://perfectionkills.com/whitespace-deviations/
+    trim: function trim() {
+        if (typeof this === 'undefined' || this === null) {
+            throw new TypeError("can't convert " + this + ' to object');
+        }
+        return $String(this).replace(trimBeginRegexp, '').replace(trimEndRegexp, '');
+    }
+}, hasTrimWhitespaceBug);
+
+// ES-5 15.1.2.2
+if (parseInt(ws + '08') !== 8 || parseInt(ws + '0x16') !== 22) {
+    /* global parseInt: true */
+    parseInt = (function (origParseInt) {
+        var hexRegex = /^0[xX]/;
+        return function parseInt(str, radix) {
+            var string = $String(str).trim();
+            var defaultedRadix = $Number(radix) || (hexRegex.test(string) ? 16 : 10);
+            return origParseInt(string, defaultedRadix);
+        };
+    }(parseInt));
+}
+
+}));
+
+/*
+    json2.js
+    2015-05-03
+
+    Public Domain.
+
+    NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
+
+    See http://www.JSON.org/js.html
+
+
+    This code should be minified before deployment.
+    See http://javascript.crockford.com/jsmin.html
+
+    USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO
+    NOT CONTROL.
+
+
+    This file creates a global JSON object containing two methods: stringify
+    and parse. This file is provides the ES5 JSON capability to ES3 systems.
+    If a project might run on IE8 or earlier, then this file should be included.
+    This file does nothing on ES5 systems.
+
+        JSON.stringify(value, replacer, space)
+            value       any JavaScript value, usually an object or array.
+
+            replacer    an optional parameter that determines how object
+                        values are stringified for objects. It can be a
+                        function or an array of strings.
+
+            space       an optional parameter that specifies the indentation
+                        of nested structures. If it is omitted, the text will
+                        be packed without extra whitespace. If it is a number,
+                        it will specify the number of spaces to indent at each
+                        level. If it is a string (such as '\t' or '&nbsp;'),
+                        it contains the characters used to indent at each level.
+
+            This method produces a JSON text from a JavaScript value.
+
+            When an object value is found, if the object contains a toJSON
+            method, its toJSON method will be called and the result will be
+            stringified. A toJSON method does not serialize: it returns the
+            value represented by the name/value pair that should be serialized,
+            or undefined if nothing should be serialized. The toJSON method
+            will be passed the key associated with the value, and this will be
+            bound to the value
+
+            For example, this would serialize Dates as ISO strings.
+
+                Date.prototype.toJSON = function (key) {
+                    function f(n) {
+                        // Format integers to have at least two digits.
+                        return n < 10 
+                            ? '0' + n 
+                            : n;
+                    }
+
+                    return this.getUTCFullYear()   + '-' +
+                         f(this.getUTCMonth() + 1) + '-' +
+                         f(this.getUTCDate())      + 'T' +
+                         f(this.getUTCHours())     + ':' +
+                         f(this.getUTCMinutes())   + ':' +
+                         f(this.getUTCSeconds())   + 'Z';
+                };
+
+            You can provide an optional replacer method. It will be passed the
+            key and value of each member, with this bound to the containing
+            object. The value that is returned from your method will be
+            serialized. If your method returns undefined, then the member will
+            be excluded from the serialization.
+
+            If the replacer parameter is an array of strings, then it will be
+            used to select the members to be serialized. It filters the results
+            such that only members with keys listed in the replacer array are
+            stringified.
+
+            Values that do not have JSON representations, such as undefined or
+            functions, will not be serialized. Such values in objects will be
+            dropped; in arrays they will be replaced with null. You can use
+            a replacer function to replace those with JSON values.
+            JSON.stringify(undefined) returns undefined.
+
+            The optional space parameter produces a stringification of the
+            value that is filled with line breaks and indentation to make it
+            easier to read.
+
+            If the space parameter is a non-empty string, then that string will
+            be used for indentation. If the space parameter is a number, then
+            the indentation will be that many spaces.
+
+            Example:
+
+            text = JSON.stringify(['e', {pluribus: 'unum'}]);
+            // text is '["e",{"pluribus":"unum"}]'
+
+
+            text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t');
+            // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]'
+
+            text = JSON.stringify([new Date()], function (key, value) {
+                return this[key] instanceof Date 
+                    ? 'Date(' + this[key] + ')' 
+                    : value;
+            });
+            // text is '["Date(---current time---)"]'
+
+
+        JSON.parse(text, reviver)
+            This method parses a JSON text to produce an object or array.
+            It can throw a SyntaxError exception.
+
+            The optional reviver parameter is a function that can filter and
+            transform the results. It receives each of the keys and values,
+            and its return value is used instead of the original value.
+            If it returns what it received, then the structure is not modified.
+            If it returns undefined then the member is deleted.
+
+            Example:
+
+            // Parse the text. Values that look like ISO date strings will
+            // be converted to Date objects.
+
+            myData = JSON.parse(text, function (key, value) {
+                var a;
+                if (typeof value === 'string') {
+                    a =
+/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
+                    if (a) {
+                        return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],
+                            +a[5], +a[6]));
+                    }
+                }
+                return value;
+            });
+
+            myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) {
+                var d;
+                if (typeof value === 'string' &&
+                        value.slice(0, 5) === 'Date(' &&
+                        value.slice(-1) === ')') {
+                    d = new Date(value.slice(5, -1));
+                    if (d) {
+                        return d;
+                    }
+                }
+                return value;
+            });
+
+
+    This is a reference implementation. You are free to copy, modify, or
+    redistribute.
+*/
+
+/*jslint 
+    eval, for, this 
+*/
+
+/*property
+    JSON, apply, call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,
+    getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,
+    lastIndex, length, parse, prototype, push, replace, slice, stringify,
+    test, toJSON, toString, valueOf
+*/
+
+
+// Create a JSON object only if one does not already exist. We create the
+// methods in a closure to avoid creating global variables.
+
+if (typeof JSON !== 'object') {
+    JSON = {};
+}
+
+(function () {
+    'use strict';
+    
+    var rx_one = /^[\],:{}\s]*$/,
+        rx_two = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
+        rx_three = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
+        rx_four = /(?:^|:|,)(?:\s*\[)+/g,
+        rx_escapable = /[\\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
+        rx_dangerous = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
+
+    function f(n) {
+        // Format integers to have at least two digits.
+        return n < 10 
+            ? '0' + n 
+            : n;
+    }
+    
+    function this_value() {
+        return this.valueOf();
+    }
+
+    if (typeof Date.prototype.toJSON !== 'function') {
+
+        Date.prototype.toJSON = function () {
+
+            return isFinite(this.valueOf())
+                ? this.getUTCFullYear() + '-' +
+                        f(this.getUTCMonth() + 1) + '-' +
+                        f(this.getUTCDate()) + 'T' +
+                        f(this.getUTCHours()) + ':' +
+                        f(this.getUTCMinutes()) + ':' +
+                        f(this.getUTCSeconds()) + 'Z'
+                : null;
+        };
+
+        Boolean.prototype.toJSON = this_value;
+        Number.prototype.toJSON = this_value;
+        String.prototype.toJSON = this_value;
+    }
+
+    var gap,
+        indent,
+        meta,
+        rep;
+
+
+    function quote(string) {
+
+// If the string contains no control characters, no quote characters, and no
+// backslash characters, then we can safely slap some quotes around it.
+// Otherwise we must also replace the offending characters with safe escape
+// sequences.
+
+        rx_escapable.lastIndex = 0;
+        return rx_escapable.test(string) 
+            ? '"' + string.replace(rx_escapable, function (a) {
+                var c = meta[a];
+                return typeof c === 'string'
+                    ? c
+                    : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
+            }) + '"' 
+            : '"' + string + '"';
+    }
+
+
+    function str(key, holder) {
+
+// Produce a string from holder[key].
+
+        var i,          // The loop counter.
+            k,          // The member key.
+            v,          // The member value.
+            length,
+            mind = gap,
+            partial,
+            value = holder[key];
+
+// If the value has a toJSON method, call it to obtain a replacement value.
+
+        if (value && typeof value === 'object' &&
+                typeof value.toJSON === 'function') {
+            value = value.toJSON(key);
+        }
+
+// If we were called with a replacer function, then call the replacer to
+// obtain a replacement value.
+
+        if (typeof rep === 'function') {
+            value = rep.call(holder, key, value);
+        }
+
+// What happens next depends on the value's type.
+
+        switch (typeof value) {
+        case 'string':
+            return quote(value);
+
+        case 'number':
+
+// JSON numbers must be finite. Encode non-finite numbers as null.
+
+            return isFinite(value) 
+                ? String(value) 
+                : 'null';
+
+        case 'boolean':
+        case 'null':
+
+// If the value is a boolean or null, convert it to a string. Note:
+// typeof null does not produce 'null'. The case is included here in
+// the remote chance that this gets fixed someday.
+
+            return String(value);
+
+// If the type is 'object', we might be dealing with an object or an array or
+// null.
+
+        case 'object':
+
+// Due to a specification blunder in ECMAScript, typeof null is 'object',
+// so watch out for that case.
+
+            if (!value) {
+                return 'null';
+            }
+
+// Make an array to hold the partial results of stringifying this object value.
+
+            gap += indent;
+            partial = [];
+
+// Is the value an array?
+
+            if (Object.prototype.toString.apply(value) === '[object Array]') {
+
+// The value is an array. Stringify every element. Use null as a placeholder
+// for non-JSON values.
+
+                length = value.length;
+                for (i = 0; i < length; i += 1) {
+                    partial[i] = str(i, value) || 'null';
+                }
+
+// Join all of the elements together, separated with commas, and wrap them in
+// brackets.
+
+                v = partial.length === 0
+                    ? '[]'
+                    : gap
+                        ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']'
+                        : '[' + partial.join(',') + ']';
+                gap = mind;
+                return v;
+            }
+
+// If the replacer is an array, use it to select the members to be stringified.
+
+            if (rep && typeof rep === 'object') {
+                length = rep.length;
+                for (i = 0; i < length; i += 1) {
+                    if (typeof rep[i] === 'string') {
+                        k = rep[i];
+                        v = str(k, value);
+                        if (v) {
+                            partial.push(quote(k) + (
+                                gap 
+                                    ? ': ' 
+                                    : ':'
+                            ) + v);
+                        }
+                    }
+                }
+            } else {
+
+// Otherwise, iterate through all of the keys in the object.
+
+                for (k in value) {
+                    if (Object.prototype.hasOwnProperty.call(value, k)) {
+                        v = str(k, value);
+                        if (v) {
+                            partial.push(quote(k) + (
+                                gap 
+                                    ? ': ' 
+                                    : ':'
+                            ) + v);
+                        }
+                    }
+                }
+            }
+
+// Join all of the member texts together, separated with commas,
+// and wrap them in braces.
+
+            v = partial.length === 0
+                ? '{}'
+                : gap
+                    ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}'
+                    : '{' + partial.join(',') + '}';
+            gap = mind;
+            return v;
+        }
+    }
+
+// If the JSON object does not yet have a stringify method, give it one.
+
+    if (typeof JSON.stringify !== 'function') {
+        meta = {    // table of character substitutions
+            '\b': '\\b',
+            '\t': '\\t',
+            '\n': '\\n',
+            '\f': '\\f',
+            '\r': '\\r',
+            '"': '\\"',
+            '\\': '\\\\'
+        };
+        JSON.stringify = function (value, replacer, space) {
+
+// The stringify method takes a value and an optional replacer, and an optional
+// space parameter, and returns a JSON text. The replacer can be a function
+// that can replace values, or an array of strings that will select the keys.
+// A default replacer method can be provided. Use of the space parameter can
+// produce text that is more easily readable.
+
+            var i;
+            gap = '';
+            indent = '';
+
+// If the space parameter is a number, make an indent string containing that
+// many spaces.
+
+            if (typeof space === 'number') {
+                for (i = 0; i < space; i += 1) {
+                    indent += ' ';
+                }
+
+// If the space parameter is a string, it will be used as the indent string.
+
+            } else if (typeof space === 'string') {
+                indent = space;
+            }
+
+// If there is a replacer, it must be a function or an array.
+// Otherwise, throw an error.
+
+            rep = replacer;
+            if (replacer && typeof replacer !== 'function' &&
+                    (typeof replacer !== 'object' ||
+                    typeof replacer.length !== 'number')) {
+                throw new Error('JSON.stringify');
+            }
+
+// Make a fake root object containing our value under the key of ''.
+// Return the result of stringifying the value.
+
+            return str('', {'': value});
+        };
+    }
+
+
+// If the JSON object does not yet have a parse method, give it one.
+
+    if (typeof JSON.parse !== 'function') {
+        JSON.parse = function (text, reviver) {
+
+// The parse method takes a text and an optional reviver function, and returns
+// a JavaScript value if the text is a valid JSON text.
+
+            var j;
+
+            function walk(holder, key) {
+
+// The walk method is used to recursively walk the resulting structure so
+// that modifications can be made.
+
+                var k, v, value = holder[key];
+                if (value && typeof value === 'object') {
+                    for (k in value) {
+                        if (Object.prototype.hasOwnProperty.call(value, k)) {
+                            v = walk(value, k);
+                            if (v !== undefined) {
+                                value[k] = v;
+                            } else {
+                                delete value[k];
+                            }
+                        }
+                    }
+                }
+                return reviver.call(holder, key, value);
+            }
+
+
+// Parsing happens in four stages. In the first stage, we replace certain
+// Unicode characters with escape sequences. JavaScript handles many characters
+// incorrectly, either silently deleting them, or treating them as line endings.
+
+            text = String(text);
+            rx_dangerous.lastIndex = 0;
+            if (rx_dangerous.test(text)) {
+                text = text.replace(rx_dangerous, function (a) {
+                    return '\\u' +
+                            ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
+                });
+            }
+
+// In the second stage, we run the text against regular expressions that look
+// for non-JSON patterns. We are especially concerned with '()' and 'new'
+// because they can cause invocation, and '=' because it can cause mutation.
+// But just to be safe, we want to reject all unexpected forms.
+
+// We split the second stage into 4 regexp operations in order to work around
+// crippling inefficiencies in IE's and Safari's regexp engines. First we
+// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we
+// replace all simple value tokens with ']' characters. Third, we delete all
+// open brackets that follow a colon or comma or that begin the text. Finally,
+// we look to see that the remaining characters are only whitespace or ']' or
+// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval.
+
+            if (
+                rx_one.test(
+                    text
+                        .replace(rx_two, '@')
+                        .replace(rx_three, ']')
+                        .replace(rx_four, '')
+                )
+            ) {
+
+// In the third stage we use the eval function to compile the text into a
+// JavaScript structure. The '{' operator is subject to a syntactic ambiguity
+// in JavaScript: it can begin a block or an object literal. We wrap the text
+// in parens to eliminate the ambiguity.
+
+                j = eval('(' + text + ')');
+
+// In the optional fourth stage, we recursively walk the new structure, passing
+// each name/value pair to a reviver function for possible transformation.
+
+                return typeof reviver === 'function'
+                    ? walk({'': j}, '')
+                    : j;
+            }
+
+// If the text is not JSON parseable, then a SyntaxError is thrown.
+
+            throw new SyntaxError('JSON.parse');
+        };
+    }
+}());
+
+;(function () {
+
+  var object = typeof exports != 'undefined' ? exports : this; // #8: web workers
+  var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
+
+  function InvalidCharacterError(message) {
+    this.message = message;
+  }
+  InvalidCharacterError.prototype = new Error;
+  InvalidCharacterError.prototype.name = 'InvalidCharacterError';
+
+  // encoder
+  // [https://gist.github.com/999166] by [https://github.com/nignag]
+  object.btoa || (
+  object.btoa = function (input) {
+    var str = String(input);
+    for (
+      // initialize result and counter
+      var block, charCode, idx = 0, map = chars, output = '';
+      // if the next str index does not exist:
+      //   change the mapping table to "="
+      //   check if d has no fractional digits
+      str.charAt(idx | 0) || (map = '=', idx % 1);
+      // "8 - idx % 1 * 8" generates the sequence 2, 4, 6, 8
+      output += map.charAt(63 & block >> 8 - idx % 1 * 8)
+    ) {
+      charCode = str.charCodeAt(idx += 3/4);
+      if (charCode > 0xFF) {
+        throw new InvalidCharacterError("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");
+      }
+      block = block << 8 | charCode;
+    }
+    return output;
+  });
+
+  // decoder
+  // [https://gist.github.com/1020396] by [https://github.com/atk]
+  object.atob || (
+  object.atob = function (input) {
+    var str = String(input).replace(/=+$/, '');
+    if (str.length % 4 == 1) {
+      throw new InvalidCharacterError("'atob' failed: The string to be decoded is not correctly encoded.");
+    }
+    for (
+      // initialize result and counters
+      var bc = 0, bs, buffer, idx = 0, output = '';
+      // get next character
+      buffer = str.charAt(idx++);
+      // character found in table? initialize bit storage and add its ascii value;
+      ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,
+        // and if not first of each 4 characters,
+        // convert the first 8 bits to one ascii character
+        bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0
+    ) {
+      // try to find character in table (0-63, not found => -1)
+      buffer = chars.indexOf(buffer);
+    }
+    return output;
+  });
+
+}());
+
+/*!
+ * typeahead.js 0.11.1
+ * https://github.com/twitter/typeahead.js
+ * Copyright 2013-2015 Twitter, Inc. and other contributors; Licensed MIT
+ */
+
+(function(root, factory) {
+    if (typeof define === "function" && define.amd) {
+        define("bloodhound", [ "jquery" ], function(a0) {
+            return root["Bloodhound"] = factory(a0);
+        });
+    } else if (typeof exports === "object") {
+        module.exports = factory(require("jquery"));
+    } else {
+        root["Bloodhound"] = factory(jQuery);
+    }
+})(this, function($) {
+    var _ = function() {
+        "use strict";
+        return {
+            isMsie: function() {
+                return /(msie|trident)/i.test(navigator.userAgent) ? navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2] : false;
+            },
+            isBlankString: function(str) {
+                return !str || /^\s*$/.test(str);
+            },
+            escapeRegExChars: function(str) {
+                return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
+            },
+            isString: function(obj) {
+                return typeof obj === "string";
+            },
+            isNumber: function(obj) {
+                return typeof obj === "number";
+            },
+            isArray: $.isArray,
+            isFunction: $.isFunction,
+            isObject: $.isPlainObject,
+            isUndefined: function(obj) {
+                return typeof obj === "undefined";
+            },
+            isElement: function(obj) {
+                return !!(obj && obj.nodeType === 1);
+            },
+            isJQuery: function(obj) {
+                return obj instanceof $;
+            },
+            toStr: function toStr(s) {
+                return _.isUndefined(s) || s === null ? "" : s + "";
+            },
+            bind: $.proxy,
+            each: function(collection, cb) {
+                $.each(collection, reverseArgs);
+                function reverseArgs(index, value) {
+                    return cb(value, index);
+                }
+            },
+            map: $.map,
+            filter: $.grep,
+            every: function(obj, test) {
+                var result = true;
+                if (!obj) {
+                    return result;
+                }
+                $.each(obj, function(key, val) {
+                    if (!(result = test.call(null, val, key, obj))) {
+                        return false;
+                    }
+                });
+                return !!result;
+            },
+            some: function(obj, test) {
+                var result = false;
+                if (!obj) {
+                    return result;
+                }
+                $.each(obj, function(key, val) {
+                    if (result = test.call(null, val, key, obj)) {
+                        return false;
+                    }
+                });
+                return !!result;
+            },
+            mixin: $.extend,
+            identity: function(x) {
+                return x;
+            },
+            clone: function(obj) {
+                return $.extend(true, {}, obj);
+            },
+            getIdGenerator: function() {
+                var counter = 0;
+                return function() {
+                    return counter++;
+                };
+            },
+            templatify: function templatify(obj) {
+                return $.isFunction(obj) ? obj : template;
+                function template() {
+                    return String(obj);
+                }
+            },
+            defer: function(fn) {
+                setTimeout(fn, 0);
+            },
+            debounce: function(func, wait, immediate) {
+                var timeout, result;
+                return function() {
+                    var context = this, args = arguments, later, callNow;
+                    later = function() {
+                        timeout = null;
+                        if (!immediate) {
+                            result = func.apply(context, args);
+                        }
+                    };
+                    callNow = immediate && !timeout;
+                    clearTimeout(timeout);
+                    timeout = setTimeout(later, wait);
+                    if (callNow) {
+                        result = func.apply(context, args);
+                    }
+                    return result;
+                };
+            },
+            throttle: function(func, wait) {
+                var context, args, timeout, result, previous, later;
+                previous = 0;
+                later = function() {
+                    previous = new Date();
+                    timeout = null;
+                    result = func.apply(context, args);
+                };
+                return function() {
+                    var now = new Date(), remaining = wait - (now - previous);
+                    context = this;
+                    args = arguments;
+                    if (remaining <= 0) {
+                        clearTimeout(timeout);
+                        timeout = null;
+                        previous = now;
+                        result = func.apply(context, args);
+                    } else if (!timeout) {
+                        timeout = setTimeout(later, remaining);
+                    }
+                    return result;
+                };
+            },
+            stringify: function(val) {
+                return _.isString(val) ? val : JSON.stringify(val);
+            },
+            noop: function() {}
+        };
+    }();
+    var VERSION = "0.11.1";
+    var tokenizers = function() {
+        "use strict";
+        return {
+            nonword: nonword,
+            whitespace: whitespace,
+            obj: {
+                nonword: getObjTokenizer(nonword),
+                whitespace: getObjTokenizer(whitespace)
+            }
+        };
+        function whitespace(str) {
+            str = _.toStr(str);
+            return str ? str.split(/\s+/) : [];
+        }
+        function nonword(str) {
+            str = _.toStr(str);
+            return str ? str.split(/\W+/) : [];
+        }
+        function getObjTokenizer(tokenizer) {
+            return function setKey(keys) {
+                keys = _.isArray(keys) ? keys : [].slice.call(arguments, 0);
+                return function tokenize(o) {
+                    var tokens = [];
+                    _.each(keys, function(k) {
+                        tokens = tokens.concat(tokenizer(_.toStr(o[k])));
+                    });
+                    return tokens;
+                };
+            };
+        }
+    }();
+    var LruCache = function() {
+        "use strict";
+        function LruCache(maxSize) {
+            this.maxSize = _.isNumber(maxSize) ? maxSize : 100;
+            this.reset();
+            if (this.maxSize <= 0) {
+                this.set = this.get = $.noop;
+            }
+        }
+        _.mixin(LruCache.prototype, {
+            set: function set(key, val) {
+                var tailItem = this.list.tail, node;
+                if (this.size >= this.maxSize) {
+                    this.list.remove(tailItem);
+                    delete this.hash[tailItem.key];
+                    this.size--;
+                }
+                if (node = this.hash[key]) {
+                    node.val = val;
+                    this.list.moveToFront(node);
+                } else {
+                    node = new Node(key, val);
+                    this.list.add(node);
+                    this.hash[key] = node;
+                    this.size++;
+                }
+            },
+            get: function get(key) {
+                var node = this.hash[key];
+                if (node) {
+                    this.list.moveToFront(node);
+                    return node.val;
+                }
+            },
+            reset: function reset() {
+                this.size = 0;
+                this.hash = {};
+                this.list = new List();
+            }
+        });
+        function List() {
+            this.head = this.tail = null;
+        }
+        _.mixin(List.prototype, {
+            add: function add(node) {
+                if (this.head) {
+                    node.next = this.head;
+                    this.head.prev = node;
+                }
+                this.head = node;
+                this.tail = this.tail || node;
+            },
+            remove: function remove(node) {
+                node.prev ? node.prev.next = node.next : this.head = node.next;
+                node.next ? node.next.prev = node.prev : this.tail = node.prev;
+            },
+            moveToFront: function(node) {
+                this.remove(node);
+                this.add(node);
+            }
+        });
+        function Node(key, val) {
+            this.key = key;
+            this.val = val;
+            this.prev = this.next = null;
+        }
+        return LruCache;
+    }();
+    var PersistentStorage = function() {
+        "use strict";
+        var LOCAL_STORAGE;
+        try {
+            LOCAL_STORAGE = window.localStorage;
+            LOCAL_STORAGE.setItem("~~~", "!");
+            LOCAL_STORAGE.removeItem("~~~");
+        } catch (err) {
+            LOCAL_STORAGE = null;
+        }
+        function PersistentStorage(namespace, override) {
+            this.prefix = [ "__", namespace, "__" ].join("");
+            this.ttlKey = "__ttl__";
+            this.keyMatcher = new RegExp("^" + _.escapeRegExChars(this.prefix));
+            this.ls = override || LOCAL_STORAGE;
+            !this.ls && this._noop();
+        }
+        _.mixin(PersistentStorage.prototype, {
+            _prefix: function(key) {
+                return this.prefix + key;
+            },
+            _ttlKey: function(key) {
+                return this._prefix(key) + this.ttlKey;
+            },
+            _noop: function() {
+                this.get = this.set = this.remove = this.clear = this.isExpired = _.noop;
+            },
+            _safeSet: function(key, val) {
+                try {
+                    this.ls.setItem(key, val);
+                } catch (err) {
+                    if (err.name === "QuotaExceededError") {
+                        this.clear();
+                        this._noop();
+                    }
+                }
+            },
+            get: function(key) {
+                if (this.isExpired(key)) {
+                    this.remove(key);
+                }
+                return decode(this.ls.getItem(this._prefix(key)));
+            },
+            set: function(key, val, ttl) {
+                if (_.isNumber(ttl)) {
+                    this._safeSet(this._ttlKey(key), encode(now() + ttl));
+                } else {
+                    this.ls.removeItem(this._ttlKey(key));
+                }
+                return this._safeSet(this._prefix(key), encode(val));
+            },
+            remove: function(key) {
+                this.ls.removeItem(this._ttlKey(key));
+                this.ls.removeItem(this._prefix(key));
+                return this;
+            },
+            clear: function() {
+                var i, keys = gatherMatchingKeys(this.keyMatcher);
+                for (i = keys.length; i--; ) {
+                    this.remove(keys[i]);
+                }
+                return this;
+            },
+            isExpired: function(key) {
+                var ttl = decode(this.ls.getItem(this._ttlKey(key)));
+                return _.isNumber(ttl) && now() > ttl ? true : false;
+            }
+        });
+        return PersistentStorage;
+        function now() {
+            return new Date().getTime();
+        }
+        function encode(val) {
+            return JSON.stringify(_.isUndefined(val) ? null : val);
+        }
+        function decode(val) {
+            return $.parseJSON(val);
+        }
+        function gatherMatchingKeys(keyMatcher) {
+            var i, key, keys = [], len = LOCAL_STORAGE.length;
+            for (i = 0; i < len; i++) {
+                if ((key = LOCAL_STORAGE.key(i)).match(keyMatcher)) {
+                    keys.push(key.replace(keyMatcher, ""));
+                }
+            }
+            return keys;
+        }
+    }();
+    var Transport = function() {
+        "use strict";
+        var pendingRequestsCount = 0, pendingRequests = {}, maxPendingRequests = 6, sharedCache = new LruCache(10);
+        function Transport(o) {
+            o = o || {};
+            this.cancelled = false;
+            this.lastReq = null;
+            this._send = o.transport;
+            this._get = o.limiter ? o.limiter(this._get) : this._get;
+            this._cache = o.cache === false ? new LruCache(0) : sharedCache;
+        }
+        Transport.setMaxPendingRequests = function setMaxPendingRequests(num) {
+            maxPendingRequests = num;
+        };
+        Transport.resetCache = function resetCache() {
+            sharedCache.reset();
+        };
+        _.mixin(Transport.prototype, {
+            _fingerprint: function fingerprint(o) {
+                o = o || {};
+                return o.url + o.type + $.param(o.data || {});
+            },
+            _get: function(o, cb) {
+                var that = this, fingerprint, jqXhr;
+                fingerprint = this._fingerprint(o);
+                if (this.cancelled || fingerprint !== this.lastReq) {
+                    return;
+                }
+                if (jqXhr = pendingRequests[fingerprint]) {
+                    jqXhr.done(done).fail(fail);
+                } else if (pendingRequestsCount < maxPendingRequests) {
+                    pendingRequestsCount++;
+                    pendingRequests[fingerprint] = this._send(o).done(done).fail(fail).always(always);
+                } else {
+                    this.onDeckRequestArgs = [].slice.call(arguments, 0);
+                }
+                function done(resp) {
+                    cb(null, resp);
+                    that._cache.set(fingerprint, resp);
+                }
+                function fail() {
+                    cb(true);
+                }
+                function always() {
+                    pendingRequestsCount--;
+                    delete pendingRequests[fingerprint];
+                    if (that.onDeckRequestArgs) {
+                        that._get.apply(that, that.onDeckRequestArgs);
+                        that.onDeckRequestArgs = null;
+                    }
+                }
+            },
+            get: function(o, cb) {
+                var resp, fingerprint;
+                cb = cb || $.noop;
+                o = _.isString(o) ? {
+                    url: o
+                } : o || {};
+                fingerprint = this._fingerprint(o);
+                this.cancelled = false;
+                this.lastReq = fingerprint;
+                if (resp = this._cache.get(fingerprint)) {
+                    cb(null, resp);
+                } else {
+                    this._get(o, cb);
+                }
+            },
+            cancel: function() {
+                this.cancelled = true;
+            }
+        });
+        return Transport;
+    }();
+    var SearchIndex = window.SearchIndex = function() {
+        "use strict";
+        var CHILDREN = "c", IDS = "i";
+        function SearchIndex(o) {
+            o = o || {};
+            if (!o.datumTokenizer || !o.queryTokenizer) {
+                $.error("datumTokenizer and queryTokenizer are both required");
+            }
+            this.identify = o.identify || _.stringify;
+            this.datumTokenizer = o.datumTokenizer;
+            this.queryTokenizer = o.queryTokenizer;
+            this.reset();
+        }
+        _.mixin(SearchIndex.prototype, {
+            bootstrap: function bootstrap(o) {
+                this.datums = o.datums;
+                this.trie = o.trie;
+            },
+            add: function(data) {
+                var that = this;
+                data = _.isArray(data) ? data : [ data ];
+                _.each(data, function(datum) {
+                    var id, tokens;
+                    that.datums[id = that.identify(datum)] = datum;
+                    tokens = normalizeTokens(that.datumTokenizer(datum));
+                    _.each(tokens, function(token) {
+                        var node, chars, ch;
+                        node = that.trie;
+                        chars = token.split("");
+                        while (ch = chars.shift()) {
+                            node = node[CHILDREN][ch] || (node[CHILDREN][ch] = newNode());
+                            node[IDS].push(id);
+                        }
+                    });
+                });
+            },
+            get: function get(ids) {
+                var that = this;
+                return _.map(ids, function(id) {
+                    return that.datums[id];
+                });
+            },
+            search: function search(query) {
+                var that = this, tokens, matches;
+                tokens = normalizeTokens(this.queryTokenizer(query));
+                _.each(tokens, function(token) {
+                    var node, chars, ch, ids;
+                    if (matches && matches.length === 0) {
+                        return false;
+                    }
+                    node = that.trie;
+                    chars = token.split("");
+                    while (node && (ch = chars.shift())) {
+                        node = node[CHILDREN][ch];
+                    }
+                    if (node && chars.length === 0) {
+                        ids = node[IDS].slice(0);
+                        matches = matches ? getIntersection(matches, ids) : ids;
+                    } else {
+                        matches = [];
+                        return false;
+                    }
+                });
+                return matches ? _.map(unique(matches), function(id) {
+                    return that.datums[id];
+                }) : [];
+            },
+            all: function all() {
+                var values = [];
+                for (var key in this.datums) {
+                    values.push(this.datums[key]);
+                }
+                return values;
+            },
+            reset: function reset() {
+                this.datums = {};
+                this.trie = newNode();
+            },
+            serialize: function serialize() {
+                return {
+                    datums: this.datums,
+                    trie: this.trie
+                };
+            }
+        });
+        return SearchIndex;
+        function normalizeTokens(tokens) {
+            tokens = _.filter(tokens, function(token) {
+                return !!token;
+            });
+            tokens = _.map(tokens, function(token) {
+                return token.toLowerCase();
+            });
+            return tokens;
+        }
+        function newNode() {
+            var node = {};
+            node[IDS] = [];
+            node[CHILDREN] = {};
+            return node;
+        }
+        function unique(array) {
+            var seen = {}, uniques = [];
+            for (var i = 0, len = array.length; i < len; i++) {
+                if (!seen[array[i]]) {
+                    seen[array[i]] = true;
+                    uniques.push(array[i]);
+                }
+            }
+            return uniques;
+        }
+        function getIntersection(arrayA, arrayB) {
+            var ai = 0, bi = 0, intersection = [];
+            arrayA = arrayA.sort();
+            arrayB = arrayB.sort();
+            var lenArrayA = arrayA.length, lenArrayB = arrayB.length;
+            while (ai < lenArrayA && bi < lenArrayB) {
+                if (arrayA[ai] < arrayB[bi]) {
+                    ai++;
+                } else if (arrayA[ai] > arrayB[bi]) {
+                    bi++;
+                } else {
+                    intersection.push(arrayA[ai]);
+                    ai++;
+                    bi++;
+                }
+            }
+            return intersection;
+        }
+    }();
+    var Prefetch = function() {
+        "use strict";
+        var keys;
+        keys = {
+            data: "data",
+            protocol: "protocol",
+            thumbprint: "thumbprint"
+        };
+        function Prefetch(o) {
+            this.url = o.url;
+            this.ttl = o.ttl;
+            this.cache = o.cache;
+            this.prepare = o.prepare;
+            this.transform = o.transform;
+            this.transport = o.transport;
+            this.thumbprint = o.thumbprint;
+            this.storage = new PersistentStorage(o.cacheKey);
+        }
+        _.mixin(Prefetch.prototype, {
+            _settings: function settings() {
+                return {
+                    url: this.url,
+                    type: "GET",
+                    dataType: "json"
+                };
+            },
+            store: function store(data) {
+                if (!this.cache) {
+                    return;
+                }
+                this.storage.set(keys.data, data, this.ttl);
+                this.storage.set(keys.protocol, location.protocol, this.ttl);
+                this.storage.set(keys.thumbprint, this.thumbprint, this.ttl);
+            },
+            fromCache: function fromCache() {
+                var stored = {}, isExpired;
+                if (!this.cache) {
+                    return null;
+                }
+                stored.data = this.storage.get(keys.data);
+                stored.protocol = this.storage.get(keys.protocol);
+                stored.thumbprint = this.storage.get(keys.thumbprint);
+                isExpired = stored.thumbprint !== this.thumbprint || stored.protocol !== location.protocol;
+                return stored.data && !isExpired ? stored.data : null;
+            },
+            fromNetwork: function(cb) {
+                var that = this, settings;
+                if (!cb) {
+                    return;
+                }
+                settings = this.prepare(this._settings());
+                this.transport(settings).fail(onError).done(onResponse);
+                function onError() {
+                    cb(true);
+                }
+                function onResponse(resp) {
+                    cb(null, that.transform(resp));
+                }
+            },
+            clear: function clear() {
+                this.storage.clear();
+                return this;
+            }
+        });
+        return Prefetch;
+    }();
+    var Remote = function() {
+        "use strict";
+        function Remote(o) {
+            this.url = o.url;
+            this.prepare = o.prepare;
+            this.transform = o.transform;
+            this.transport = new Transport({
+                cache: o.cache,
+                limiter: o.limiter,
+                transport: o.transport
+            });
+        }
+        _.mixin(Remote.prototype, {
+            _settings: function settings() {
+                return {
+                    url: this.url,
+                    type: "GET",
+                    dataType: "json"
+                };
+            },
+            get: function get(query, cb) {
+                var that = this, settings;
+                if (!cb) {
+                    return;
+                }
+                query = query || "";
+                settings = this.prepare(query, this._settings());
+                return this.transport.get(settings, onResponse);
+                function onResponse(err, resp) {
+                    err ? cb([]) : cb(that.transform(resp));
+                }
+            },
+            cancelLastRequest: function cancelLastRequest() {
+                this.transport.cancel();
+            }
+        });
+        return Remote;
+    }();
+    var oParser = function() {
+        "use strict";
+        return function parse(o) {
+            var defaults, sorter;
+            defaults = {
+                initialize: true,
+                identify: _.stringify,
+                datumTokenizer: null,
+                queryTokenizer: null,
+                sufficient: 5,
+                sorter: null,
+                local: [],
+                prefetch: null,
+                remote: null
+            };
+            o = _.mixin(defaults, o || {});
+            !o.datumTokenizer && $.error("datumTokenizer is required");
+            !o.queryTokenizer && $.error("queryTokenizer is required");
+            sorter = o.sorter;
+            o.sorter = sorter ? function(x) {
+                return x.sort(sorter);
+            } : _.identity;
+            o.local = _.isFunction(o.local) ? o.local() : o.local;
+            o.prefetch = parsePrefetch(o.prefetch);
+            o.remote = parseRemote(o.remote);
+            return o;
+        };
+        function parsePrefetch(o) {
+            var defaults;
+            if (!o) {
+                return null;
+            }
+            defaults = {
+                url: null,
+                ttl: 24 * 60 * 60 * 1e3,
+                cache: true,
+                cacheKey: null,
+                thumbprint: "",
+                prepare: _.identity,
+                transform: _.identity,
+                transport: null
+            };
+            o = _.isString(o) ? {
+                url: o
+            } : o;
+            o = _.mixin(defaults, o);
+            !o.url && $.error("prefetch requires url to be set");
+            o.transform = o.filter || o.transform;
+            o.cacheKey = o.cacheKey || o.url;
+            o.thumbprint = VERSION + o.thumbprint;
+            o.transport = o.transport ? callbackToDeferred(o.transport) : $.ajax;
+            return o;
+        }
+        function parseRemote(o) {
+            var defaults;
+            if (!o) {
+                return;
+            }
+            defaults = {
+                url: null,
+                cache: true,
+                prepare: null,
+                replace: null,
+                wildcard: null,
+                limiter: null,
+                rateLimitBy: "debounce",
+                rateLimitWait: 300,
+                transform: _.identity,
+                transport: null
+            };
+            o = _.isString(o) ? {
+                url: o
+            } : o;
+            o = _.mixin(defaults, o);
+            !o.url && $.error("remote requires url to be set");
+            o.transform = o.filter || o.transform;
+            o.prepare = toRemotePrepare(o);
+            o.limiter = toLimiter(o);
+            o.transport = o.transport ? callbackToDeferred(o.transport) : $.ajax;
+            delete o.replace;
+            delete o.wildcard;
+            delete o.rateLimitBy;
+            delete o.rateLimitWait;
+            return o;
+        }
+        function toRemotePrepare(o) {
+            var prepare, replace, wildcard;
+            prepare = o.prepare;
+            replace = o.replace;
+            wildcard = o.wildcard;
+            if (prepare) {
+                return prepare;
+            }
+            if (replace) {
+                prepare = prepareByReplace;
+            } else if (o.wildcard) {
+                prepare = prepareByWildcard;
+            } else {
+                prepare = idenityPrepare;
+            }
+            return prepare;
+            function prepareByReplace(query, settings) {
+                settings.url = replace(settings.url, query);
+                return settings;
+            }
+            function prepareByWildcard(query, settings) {
+                settings.url = settings.url.replace(wildcard, encodeURIComponent(query));
+                return settings;
+            }
+            function idenityPrepare(query, settings) {
+                return settings;
+            }
+        }
+        function toLimiter(o) {
+            var limiter, method, wait;
+            limiter = o.limiter;
+            method = o.rateLimitBy;
+            wait = o.rateLimitWait;
+            if (!limiter) {
+                limiter = /^throttle$/i.test(method) ? throttle(wait) : debounce(wait);
+            }
+            return limiter;
+            function debounce(wait) {
+                return function debounce(fn) {
+                    return _.debounce(fn, wait);
+                };
+            }
+            function throttle(wait) {
+                return function throttle(fn) {
+                    return _.throttle(fn, wait);
+                };
+            }
+        }
+        function callbackToDeferred(fn) {
+            return function wrapper(o) {
+                var deferred = $.Deferred();
+                fn(o, onSuccess, onError);
+                return deferred;
+                function onSuccess(resp) {
+                    _.defer(function() {
+                        deferred.resolve(resp);
+                    });
+                }
+                function onError(err) {
+                    _.defer(function() {
+                        deferred.reject(err);
+                    });
+                }
+            };
+        }
+    }();
+    var Bloodhound = function() {
+        "use strict";
+        var old;
+        old = window && window.Bloodhound;
+        function Bloodhound(o) {
+            o = oParser(o);
+            this.sorter = o.sorter;
+            this.identify = o.identify;
+            this.sufficient = o.sufficient;
+            this.local = o.local;
+            this.remote = o.remote ? new Remote(o.remote) : null;
+            this.prefetch = o.prefetch ? new Prefetch(o.prefetch) : null;
+            this.index = new SearchIndex({
+                identify: this.identify,
+                datumTokenizer: o.datumTokenizer,
+                queryTokenizer: o.queryTokenizer
+            });
+            o.initialize !== false && this.initialize();
+        }
+        Bloodhound.noConflict = function noConflict() {
+            window && (window.Bloodhound = old);
+            return Bloodhound;
+        };
+        Bloodhound.tokenizers = tokenizers;
+        _.mixin(Bloodhound.prototype, {
+            __ttAdapter: function ttAdapter() {
+                var that = this;
+                return this.remote ? withAsync : withoutAsync;
+                function withAsync(query, sync, async) {
+                    return that.search(query, sync, async);
+                }
+                function withoutAsync(query, sync) {
+                    return that.search(query, sync);
+                }
+            },
+            _loadPrefetch: function loadPrefetch() {
+                var that = this, deferred, serialized;
+                deferred = $.Deferred();
+                if (!this.prefetch) {
+                    deferred.resolve();
+                } else if (serialized = this.prefetch.fromCache()) {
+                    this.index.bootstrap(serialized);
+                    deferred.resolve();
+                } else {
+                    this.prefetch.fromNetwork(done);
+                }
+                return deferred.promise();
+                function done(err, data) {
+                    if (err) {
+                        return deferred.reject();
+                    }
+                    that.add(data);
+                    that.prefetch.store(that.index.serialize());
+                    deferred.resolve();
+                }
+            },
+            _initialize: function initialize() {
+                var that = this, deferred;
+                this.clear();
+                (this.initPromise = this._loadPrefetch()).done(addLocalToIndex);
+                return this.initPromise;
+                function addLocalToIndex() {
+                    that.add(that.local);
+                }
+            },
+            initialize: function initialize(force) {
+                return !this.initPromise || force ? this._initialize() : this.initPromise;
+            },
+            add: function add(data) {
+                this.index.add(data);
+                return this;
+            },
+            get: function get(ids) {
+                ids = _.isArray(ids) ? ids : [].slice.call(arguments);
+                return this.index.get(ids);
+            },
+            search: function search(query, sync, async) {
+                var that = this, local;
+                local = this.sorter(this.index.search(query));
+                sync(this.remote ? local.slice() : local);
+                if (this.remote && local.length < this.sufficient) {
+                    this.remote.get(query, processRemote);
+                } else if (this.remote) {
+                    this.remote.cancelLastRequest();
+                }
+                return this;
+                function processRemote(remote) {
+                    var nonDuplicates = [];
+                    _.each(remote, function(r) {
+                        !_.some(local, function(l) {
+                            return that.identify(r) === that.identify(l);
+                        }) && nonDuplicates.push(r);
+                    });
+                    async && async(nonDuplicates);
+                }
+            },
+            all: function all() {
+                return this.index.all();
+            },
+            clear: function clear() {
+                this.index.reset();
+                return this;
+            },
+            clearPrefetchCache: function clearPrefetchCache() {
+                this.prefetch && this.prefetch.clear();
+                return this;
+            },
+            clearRemoteCache: function clearRemoteCache() {
+                Transport.resetCache();
+                return this;
+            },
+            ttAdapter: function ttAdapter() {
+                return this.__ttAdapter();
+            }
+        });
+        return Bloodhound;
+    }();
+    return Bloodhound;
+});
+
+(function(root, factory) {
+    if (typeof define === "function" && define.amd) {
+        define("typeahead.js", [ "jquery" ], function(a0) {
+            return factory(a0);
+        });
+    } else if (typeof exports === "object") {
+        module.exports = factory(require("jquery"));
+    } else {
+        factory(jQuery);
+    }
+})(this, function($) {
+    var _ = function() {
+        "use strict";
+        return {
+            isMsie: function() {
+                return /(msie|trident)/i.test(navigator.userAgent) ? navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2] : false;
+            },
+            isBlankString: function(str) {
+                return !str || /^\s*$/.test(str);
+            },
+            escapeRegExChars: function(str) {
+                return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
+            },
+            isString: function(obj) {
+                return typeof obj === "string";
+            },
+            isNumber: function(obj) {
+                return typeof obj === "number";
+            },
+            isArray: $.isArray,
+            isFunction: $.isFunction,
+            isObject: $.isPlainObject,
+            isUndefined: function(obj) {
+                return typeof obj === "undefined";
+            },
+            isElement: function(obj) {
+                return !!(obj && obj.nodeType === 1);
+            },
+            isJQuery: function(obj) {
+                return obj instanceof $;
+            },
+            toStr: function toStr(s) {
+                return _.isUndefined(s) || s === null ? "" : s + "";
+            },
+            bind: $.proxy,
+            each: function(collection, cb) {
+                $.each(collection, reverseArgs);
+                function reverseArgs(index, value) {
+                    return cb(value, index);
+                }
+            },
+            map: $.map,
+            filter: $.grep,
+            every: function(obj, test) {
+                var result = true;
+                if (!obj) {
+                    return result;
+                }
+                $.each(obj, function(key, val) {
+                    if (!(result = test.call(null, val, key, obj))) {
+                        return false;
+                    }
+                });
+                return !!result;
+            },
+            some: function(obj, test) {
+                var result = false;
+                if (!obj) {
+                    return result;
+                }
+                $.each(obj, function(key, val) {
+                    if (result = test.call(null, val, key, obj)) {
+                        return false;
+                    }
+                });
+                return !!result;
+            },
+            mixin: $.extend,
+            identity: function(x) {
+                return x;
+            },
+            clone: function(obj) {
+                return $.extend(true, {}, obj);
+            },
+            getIdGenerator: function() {
+                var counter = 0;
+                return function() {
+                    return counter++;
+                };
+            },
+            templatify: function templatify(obj) {
+                return $.isFunction(obj) ? obj : template;
+                function template() {
+                    return String(obj);
+                }
+            },
+            defer: function(fn) {
+                setTimeout(fn, 0);
+            },
+            debounce: function(func, wait, immediate) {
+                var timeout, result;
+                return function() {
+                    var context = this, args = arguments, later, callNow;
+                    later = function() {
+                        timeout = null;
+                        if (!immediate) {
+                            result = func.apply(context, args);
+                        }
+                    };
+                    callNow = immediate && !timeout;
+                    clearTimeout(timeout);
+                    timeout = setTimeout(later, wait);
+                    if (callNow) {
+                        result = func.apply(context, args);
+                    }
+                    return result;
+                };
+            },
+            throttle: function(func, wait) {
+                var context, args, timeout, result, previous, later;
+                previous = 0;
+                later = function() {
+                    previous = new Date();
+                    timeout = null;
+                    result = func.apply(context, args);
+                };
+                return function() {
+                    var now = new Date(), remaining = wait - (now - previous);
+                    context = this;
+                    args = arguments;
+                    if (remaining <= 0) {
+                        clearTimeout(timeout);
+                        timeout = null;
+                        previous = now;
+                        result = func.apply(context, args);
+                    } else if (!timeout) {
+                        timeout = setTimeout(later, remaining);
+                    }
+                    return result;
+                };
+            },
+            stringify: function(val) {
+                return _.isString(val) ? val : JSON.stringify(val);
+            },
+            noop: function() {}
+        };
+    }();
+    var WWW = function() {
+        "use strict";
+        var defaultClassNames = {
+            wrapper: "twitter-typeahead",
+            input: "tt-input",
+            hint: "tt-hint",
+            menu: "tt-menu",
+            dataset: "tt-dataset",
+            suggestion: "tt-suggestion",
+            selectable: "tt-selectable",
+            empty: "tt-empty",
+            open: "tt-open",
+            cursor: "tt-cursor",
+            highlight: "tt-highlight"
+        };
+        return build;
+        function build(o) {
+            var www, classes;
+            classes = _.mixin({}, defaultClassNames, o);
+            www = {
+                css: buildCss(),
+                classes: classes,
+                html: buildHtml(classes),
+                selectors: buildSelectors(classes)
+            };
+            return {
+                css: www.css,
+                html: www.html,
+                classes: www.classes,
+                selectors: www.selectors,
+                mixin: function(o) {
+                    _.mixin(o, www);
+                }
+            };
+        }
+        function buildHtml(c) {
+            return {
+                wrapper: '<span class="' + c.wrapper + '"></span>',
+                menu: '<div class="' + c.menu + '"></div>'
+            };
+        }
+        function buildSelectors(classes) {
+            var selectors = {};
+            _.each(classes, function(v, k) {
+                selectors[k] = "." + v;
+            });
+            return selectors;
+        }
+        function buildCss() {
+            var css = {
+                wrapper: {
+                    position: "relative",
+                    display: "inline-block"
+                },
+                hint: {
+                    position: "absolute",
+                    top: "0",
+                    left: "0",
+                    borderColor: "transparent",
+                    boxShadow: "none",
+                    opacity: "1"
+                },
+                input: {
+                    position: "relative",
+                    verticalAlign: "top",
+                    backgroundColor: "transparent"
+                },
+                inputWithNoHint: {
+                    position: "relative",
+                    verticalAlign: "top"
+                },
+                menu: {
+                    position: "absolute",
+                    top: "100%",
+                    left: "0",
+                    zIndex: "100",
+                    display: "none"
+                },
+                ltr: {
+                    left: "0",
+                    right: "auto"
+                },
+                rtl: {
+                    left: "auto",
+                    right: " 0"
+                }
+            };
+            if (_.isMsie()) {
+                _.mixin(css.input, {
+                    backgroundImage: "url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)"
+                });
+            }
+            return css;
+        }
+    }();
+    var EventBus = function() {
+        "use strict";
+        var namespace, deprecationMap;
+        namespace = "typeahead:";
+        deprecationMap = {
+            render: "rendered",
+            cursorchange: "cursorchanged",
+            select: "selected",
+            autocomplete: "autocompleted"
+        };
+        function EventBus(o) {
+            if (!o || !o.el) {
+                $.error("EventBus initialized without el");
+            }
+            this.$el = $(o.el);
+        }
+        _.mixin(EventBus.prototype, {
+            _trigger: function(type, args) {
+                var $e;
+                $e = $.Event(namespace + type);
+                (args = args || []).unshift($e);
+                this.$el.trigger.apply(this.$el, args);
+                return $e;
+            },
+            before: function(type) {
+                var args, $e;
+                args = [].slice.call(arguments, 1);
+                $e = this._trigger("before" + type, args);
+                return $e.isDefaultPrevented();
+            },
+            trigger: function(type) {
+                var deprecatedType;
+                this._trigger(type, [].slice.call(arguments, 1));
+                if (deprecatedType = deprecationMap[type]) {
+                    this._trigger(deprecatedType, [].slice.call(arguments, 1));
+                }
+            }
+        });
+        return EventBus;
+    }();
+    var EventEmitter = function() {
+        "use strict";
+        var splitter = /\s+/, nextTick = getNextTick();
+        return {
+            onSync: onSync,
+            onAsync: onAsync,
+            off: off,
+            trigger: trigger
+        };
+        function on(method, types, cb, context) {
+            var type;
+            if (!cb) {
+                return this;
+            }
+            types = types.split(splitter);
+            cb = context ? bindContext(cb, context) : cb;
+            this._callbacks = this._callbacks || {};
+            while (type = types.shift()) {
+                this._callbacks[type] = this._callbacks[type] || {
+                    sync: [],
+                    async: []
+                };
+                this._callbacks[type][method].push(cb);
+            }
+            return this;
+        }
+        function onAsync(types, cb, context) {
+            return on.call(this, "async", types, cb, context);
+        }
+        function onSync(types, cb, context) {
+            return on.call(this, "sync", types, cb, context);
+        }
+        function off(types) {
+            var type;
+            if (!this._callbacks) {
+                return this;
+            }
+            types = types.split(splitter);
+            while (type = types.shift()) {
+                delete this._callbacks[type];
+            }
+            return this;
+        }
+        function trigger(types) {
+            var type, callbacks, args, syncFlush, asyncFlush;
+            if (!this._callbacks) {
+                return this;
+            }
+            types = types.split(splitter);
+            args = [].slice.call(arguments, 1);
+            while ((type = types.shift()) && (callbacks = this._callbacks[type])) {
+                syncFlush = getFlush(callbacks.sync, this, [ type ].concat(args));
+                asyncFlush = getFlush(callbacks.async, this, [ type ].concat(args));
+                syncFlush() && nextTick(asyncFlush);
+            }
+            return this;
+        }
+        function getFlush(callbacks, context, args) {
+            return flush;
+            function flush() {
+                var cancelled;
+                for (var i = 0, len = callbacks.length; !cancelled && i < len; i += 1) {
+                    cancelled = callbacks[i].apply(context, args) === false;
+                }
+                return !cancelled;
+            }
+        }
+        function getNextTick() {
+            var nextTickFn;
+            if (window.setImmediate) {
+                nextTickFn = function nextTickSetImmediate(fn) {
+                    setImmediate(function() {
+                        fn();
+                    });
+                };
+            } else {
+                nextTickFn = function nextTickSetTimeout(fn) {
+                    setTimeout(function() {
+                        fn();
+                    }, 0);
+                };
+            }
+            return nextTickFn;
+        }
+        function bindContext(fn, context) {
+            return fn.bind ? fn.bind(context) : function() {
+                fn.apply(context, [].slice.call(arguments, 0));
+            };
+        }
+    }();
+    var highlight = function(doc) {
+        "use strict";
+        var defaults = {
+            node: null,
+            pattern: null,
+            tagName: "strong",
+            className: null,
+            wordsOnly: false,
+            caseSensitive: false
+        };
+        return function hightlight(o) {
+            var regex;
+            o = _.mixin({}, defaults, o);
+            if (!o.node || !o.pattern) {
+                return;
+            }
+            o.pattern = _.isArray(o.pattern) ? o.pattern : [ o.pattern ];
+            regex = getRegex(o.pattern, o.caseSensitive, o.wordsOnly);
+            traverse(o.node, hightlightTextNode);
+            function hightlightTextNode(textNode) {
+                var match, patternNode, wrapperNode;
+                if (match = regex.exec(textNode.data)) {
+                    wrapperNode = doc.createElement(o.tagName);
+                    o.className && (wrapperNode.className = o.className);
+                    patternNode = textNode.splitText(match.index);
+                    patternNode.splitText(match[0].length);
+                    wrapperNode.appendChild(patternNode.cloneNode(true));
+                    textNode.parentNode.replaceChild(wrapperNode, patternNode);
+                }
+                return !!match;
+            }
+            function traverse(el, hightlightTextNode) {
+                var childNode, TEXT_NODE_TYPE = 3;
+                for (var i = 0; i < el.childNodes.length; i++) {
+                    childNode = el.childNodes[i];
+                    if (childNode.nodeType === TEXT_NODE_TYPE) {
+                        i += hightlightTextNode(childNode) ? 1 : 0;
+                    } else {
+                        traverse(childNode, hightlightTextNode);
+                    }
+                }
+            }
+        };
+        function getRegex(patterns, caseSensitive, wordsOnly) {
+            var escapedPatterns = [], regexStr;
+            for (var i = 0, len = patterns.length; i < len; i++) {
+                escapedPatterns.push(_.escapeRegExChars(patterns[i]));
+            }
+            regexStr = wordsOnly ? "\\b(" + escapedPatterns.join("|") + ")\\b" : "(" + escapedPatterns.join("|") + ")";
+            return caseSensitive ? new RegExp(regexStr) : new RegExp(regexStr, "i");
+        }
+    }(window.document);
+    var Input = function() {
+        "use strict";
+        var specialKeyCodeMap;
+        specialKeyCodeMap = {
+            9: "tab",
+            27: "esc",
+            37: "left",
+            39: "right",
+            13: "enter",
+            38: "up",
+            40: "down"
+        };
+        function Input(o, www) {
+            o = o || {};
+            if (!o.input) {
+                $.error("input is missing");
+            }
+            www.mixin(this);
+            this.$hint = $(o.hint);
+            this.$input = $(o.input);
+            this.query = this.$input.val();
+            this.queryWhenFocused = this.hasFocus() ? this.query : null;
+            this.$overflowHelper = buildOverflowHelper(this.$input);
+            this._checkLanguageDirection();
+            if (this.$hint.length === 0) {
+                this.setHint = this.getHint = this.clearHint = this.clearHintIfInvalid = _.noop;
+            }
+        }
+        Input.normalizeQuery = function(str) {
+            return _.toStr(str).replace(/^\s*/g, "").replace(/\s{2,}/g, " ");
+        };
+        _.mixin(Input.prototype, EventEmitter, {
+            _onBlur: function onBlur() {
+                this.resetInputValue();
+                this.trigger("blurred");
+            },
+            _onFocus: function onFocus() {
+                this.queryWhenFocused = this.query;
+                this.trigger("focused");
+            },
+            _onKeydown: function onKeydown($e) {
+                var keyName = specialKeyCodeMap[$e.which || $e.keyCode];
+                this._managePreventDefault(keyName, $e);
+                if (keyName && this._shouldTrigger(keyName, $e)) {
+                    this.trigger(keyName + "Keyed", $e);
+                }
+            },
+            _onInput: function onInput() {
+                this._setQuery(this.getInputValue());
+                this.clearHintIfInvalid();
+                this._checkLanguageDirection();
+            },
+            _managePreventDefault: function managePreventDefault(keyName, $e) {
+                var preventDefault;
+                switch (keyName) {
+                  case "up":
+                  case "down":
+                    preventDefault = !withModifier($e);
+                    break;
+
+                  default:
+                    preventDefault = false;
+                }
+                preventDefault && $e.preventDefault();
+            },
+            _shouldTrigger: function shouldTrigger(keyName, $e) {
+                var trigger;
+                switch (keyName) {
+                  case "tab":
+                    trigger = !withModifier($e);
+                    break;
+
+                  default:
+                    trigger = true;
+                }
+                return trigger;
+            },
+            _checkLanguageDirection: function checkLanguageDirection() {
+                var dir = (this.$input.css("direction") || "ltr").toLowerCase();
+                if (this.dir !== dir) {
+                    this.dir = dir;
+                    this.$hint.attr("dir", dir);
+                    this.trigger("langDirChanged", dir);
+                }
+            },
+            _setQuery: function setQuery(val, silent) {
+                var areEquivalent, hasDifferentWhitespace;
+                areEquivalent = areQueriesEquivalent(val, this.query);
+                hasDifferentWhitespace = areEquivalent ? this.query.length !== val.length : false;
+                this.query = val;
+                if (!silent && !areEquivalent) {
+                    this.trigger("queryChanged", this.query);
+                } else if (!silent && hasDifferentWhitespace) {
+                    this.trigger("whitespaceChanged", this.query);
+                }
+            },
+            bind: function() {
+                var that = this, onBlur, onFocus, onKeydown, onInput;
+                onBlur = _.bind(this._onBlur, this);
+                onFocus = _.bind(this._onFocus, this);
+                onKeydown = _.bind(this._onKeydown, this);
+                onInput = _.bind(this._onInput, this);
+                this.$input.on("blur.tt", onBlur).on("focus.tt", onFocus).on("keydown.tt", onKeydown);
+                if (!_.isMsie() || _.isMsie() > 9) {
+                    this.$input.on("input.tt", onInput);
+                } else {
+                    this.$input.on("keydown.tt keypress.tt cut.tt paste.tt", function($e) {
+                        if (specialKeyCodeMap[$e.which || $e.keyCode]) {
+                            return;
+                        }
+                        _.defer(_.bind(that._onInput, that, $e));
+                    });
+                }
+                return this;
+            },
+            focus: function focus() {
+                this.$input.focus();
+            },
+            blur: function blur() {
+                this.$input.blur();
+            },
+            getLangDir: function getLangDir() {
+                return this.dir;
+            },
+            getQuery: function getQuery() {
+                return this.query || "";
+            },
+            setQuery: function setQuery(val, silent) {
+                this.setInputValue(val);
+                this._setQuery(val, silent);
+            },
+            hasQueryChangedSinceLastFocus: function hasQueryChangedSinceLastFocus() {
+                return this.query !== this.queryWhenFocused;
+            },
+            getInputValue: function getInputValue() {
+                return this.$input.val();
+            },
+            setInputValue: function setInputValue(value) {
+                this.$input.val(value);
+                this.clearHintIfInvalid();
+                this._checkLanguageDirection();
+            },
+            resetInputValue: function resetInputValue() {
+                this.setInputValue(this.query);
+            },
+            getHint: function getHint() {
+                return this.$hint.val();
+            },
+            setHint: function setHint(value) {
+                this.$hint.val(value);
+            },
+            clearHint: function clearHint() {
+                this.setHint("");
+            },
+            clearHintIfInvalid: function clearHintIfInvalid() {
+                var val, hint, valIsPrefixOfHint, isValid;
+                val = this.getInputValue();
+                hint = this.getHint();
+                valIsPrefixOfHint = val !== hint && hint.indexOf(val) === 0;
+                isValid = val !== "" && valIsPrefixOfHint && !this.hasOverflow();
+                !isValid && this.clearHint();
+            },
+            hasFocus: function hasFocus() {
+                return this.$input.is(":focus");
+            },
+            hasOverflow: function hasOverflow() {
+                var constraint = this.$input.width() - 2;
+                this.$overflowHelper.text(this.getInputValue());
+                return this.$overflowHelper.width() >= constraint;
+            },
+            isCursorAtEnd: function() {
+                var valueLength, selectionStart, range;
+                valueLength = this.$input.val().length;
+                selectionStart = this.$input[0].selectionStart;
+                if (_.isNumber(selectionStart)) {
+                    return selectionStart === valueLength;
+                } else if (document.selection) {
+                    range = document.selection.createRange();
+                    range.moveStart("character", -valueLength);
+                    return valueLength === range.text.length;
+                }
+                return true;
+            },
+            destroy: function destroy() {
+                this.$hint.off(".tt");
+                this.$input.off(".tt");
+                this.$overflowHelper.remove();
+                this.$hint = this.$input = this.$overflowHelper = $("<div>");
+            }
+        });
+        return Input;
+        function buildOverflowHelper($input) {
+            return $('<pre aria-hidden="true"></pre>').css({
+                position: "absolute",
+                visibility: "hidden",
+                whiteSpace: "pre",
+                fontFamily: $input.css("font-family"),
+                fontSize: $input.css("font-size"),
+                fontStyle: $input.css("font-style"),
+                fontVariant: $input.css("font-variant"),
+                fontWeight: $input.css("font-weight"),
+                wordSpacing: $input.css("word-spacing"),
+                letterSpacing: $input.css("letter-spacing"),
+                textIndent: $input.css("text-indent"),
+                textRendering: $input.css("text-rendering"),
+                textTransform: $input.css("text-transform")
+            }).insertAfter($input);
+        }
+        function areQueriesEquivalent(a, b) {
+            return Input.normalizeQuery(a) === Input.normalizeQuery(b);
+        }
+        function withModifier($e) {
+            return $e.altKey || $e.ctrlKey || $e.metaKey || $e.shiftKey;
+        }
+    }();
+    var Dataset = function() {
+        "use strict";
+        var keys, nameGenerator;
+        keys = {
+            val: "tt-selectable-display",
+            obj: "tt-selectable-object"
+        };
+        nameGenerator = _.getIdGenerator();
+        function Dataset(o, www) {
+            o = o || {};
+            o.templates = o.templates || {};
+            o.templates.notFound = o.templates.notFound || o.templates.empty;
+            if (!o.source) {
+                $.error("missing source");
+            }
+            if (!o.node) {
+                $.error("missing node");
+            }
+            if (o.name && !isValidName(o.name)) {
+                $.error("invalid dataset name: " + o.name);
+            }
+            www.mixin(this);
+            this.highlight = !!o.highlight;
+            this.name = o.name || nameGenerator();
+            this.limit = o.limit || 5;
+            this.displayFn = getDisplayFn(o.display || o.displayKey);
+            this.templates = getTemplates(o.templates, this.displayFn);
+            this.source = o.source.__ttAdapter ? o.source.__ttAdapter() : o.source;
+            this.async = _.isUndefined(o.async) ? this.source.length > 2 : !!o.async;
+            this._resetLastSuggestion();
+            this.$el = $(o.node).addClass(this.classes.dataset).addClass(this.classes.dataset + "-" + this.name);
+        }
+        Dataset.extractData = function extractData(el) {
+            var $el = $(el);
+            if ($el.data(keys.obj)) {
+                return {
+                    val: $el.data(keys.val) || "",
+                    obj: $el.data(keys.obj) || null
+                };
+            }
+            return null;
+        };
+        _.mixin(Dataset.prototype, EventEmitter, {
+            _overwrite: function overwrite(query, suggestions) {
+                suggestions = suggestions || [];
+                if (suggestions.length) {
+                    this._renderSuggestions(query, suggestions);
+                } else if (this.async && this.templates.pending) {
+                    this._renderPending(query);
+                } else if (!this.async && this.templates.notFound) {
+                    this._renderNotFound(query);
+                } else {
+                    this._empty();
+                }
+                this.trigger("rendered", this.name, suggestions, false);
+            },
+            _append: function append(query, suggestions) {
+                suggestions = suggestions || [];
+                if (suggestions.length && this.$lastSuggestion.length) {
+                    this._appendSuggestions(query, suggestions);
+                } else if (suggestions.length) {
+                    this._renderSuggestions(query, suggestions);
+                } else if (!this.$lastSuggestion.length && this.templates.notFound) {
+                    this._renderNotFound(query);
+                }
+                this.trigger("rendered", this.name, suggestions, true);
+            },
+            _renderSuggestions: function renderSuggestions(query, suggestions) {
+                var $fragment;
+                $fragment = this._getSuggestionsFragment(query, suggestions);
+                this.$lastSuggestion = $fragment.children().last();
+                this.$el.html($fragment).prepend(this._getHeader(query, suggestions)).append(this._getFooter(query, suggestions));
+            },
+            _appendSuggestions: function appendSuggestions(query, suggestions) {
+                var $fragment, $lastSuggestion;
+                $fragment = this._getSuggestionsFragment(query, suggestions);
+                $lastSuggestion = $fragment.children().last();
+                this.$lastSuggestion.after($fragment);
+                this.$lastSuggestion = $lastSuggestion;
+            },
+            _renderPending: function renderPending(query) {
+                var template = this.templates.pending;
+                this._resetLastSuggestion();
+                template && this.$el.html(template({
+                    query: query,
+                    dataset: this.name
+                }));
+            },
+            _renderNotFound: function renderNotFound(query) {
+                var template = this.templates.notFound;
+                this._resetLastSuggestion();
+                template && this.$el.html(template({
+                    query: query,
+                    dataset: this.name
+                }));
+            },
+            _empty: function empty() {
+                this.$el.empty();
+                this._resetLastSuggestion();
+            },
+            _getSuggestionsFragment: function getSuggestionsFragment(query, suggestions) {
+                var that = this, fragment;
+                fragment = document.createDocumentFragment();
+                _.each(suggestions, function getSuggestionNode(suggestion) {
+                    var $el, context;
+                    context = that._injectQuery(query, suggestion);
+                    $el = $(that.templates.suggestion(context)).data(keys.obj, suggestion).data(keys.val, that.displayFn(suggestion)).addClass(that.classes.suggestion + " " + that.classes.selectable);
+                    fragment.appendChild($el[0]);
+                });
+                this.highlight && highlight({
+                    className: this.classes.highlight,
+                    node: fragment,
+                    pattern: query
+                });
+                return $(fragment);
+            },
+            _getFooter: function getFooter(query, suggestions) {
+                return this.templates.footer ? this.templates.footer({
+                    query: query,
+                    suggestions: suggestions,
+                    dataset: this.name
+                }) : null;
+            },
+            _getHeader: function getHeader(query, suggestions) {
+                return this.templates.header ? this.templates.header({
+                    query: query,
+                    suggestions: suggestions,
+                    dataset: this.name
+                }) : null;
+            },
+            _resetLastSuggestion: function resetLastSuggestion() {
+                this.$lastSuggestion = $();
+            },
+            _injectQuery: function injectQuery(query, obj) {
+                return _.isObject(obj) ? _.mixin({
+                    _query: query
+                }, obj) : obj;
+            },
+            update: function update(query) {
+                var that = this, canceled = false, syncCalled = false, rendered = 0;
+                this.cancel();
+                this.cancel = function cancel() {
+                    canceled = true;
+                    that.cancel = $.noop;
+                    that.async && that.trigger("asyncCanceled", query);
+                };
+                this.source(query, sync, async);
+                !syncCalled && sync([]);
+                function sync(suggestions) {
+                    if (syncCalled) {
+                        return;
+                    }
+                    syncCalled = true;
+                    suggestions = (suggestions || []).slice(0, that.limit);
+                    rendered = suggestions.length;
+                    that._overwrite(query, suggestions);
+                    if (rendered < that.limit && that.async) {
+                        that.trigger("asyncRequested", query);
+                    }
+                }
+                function async(suggestions) {
+                    suggestions = suggestions || [];
+                    if (!canceled && rendered < that.limit) {
+                        that.cancel = $.noop;
+                        rendered += suggestions.length;
+                        that._append(query, suggestions.slice(0, that.limit - rendered));
+                        that.async && that.trigger("asyncReceived", query);
+                    }
+                }
+            },
+            cancel: $.noop,
+            clear: function clear() {
+                this._empty();
+                this.cancel();
+                this.trigger("cleared");
+            },
+            isEmpty: function isEmpty() {
+                return this.$el.is(":empty");
+            },
+            destroy: function destroy() {
+                this.$el = $("<div>");
+            }
+        });
+        return Dataset;
+        function getDisplayFn(display) {
+            display = display || _.stringify;
+            return _.isFunction(display) ? display : displayFn;
+            function displayFn(obj) {
+                return obj[display];
+            }
+        }
+        function getTemplates(templates, displayFn) {
+            return {
+                notFound: templates.notFound && _.templatify(templates.notFound),
+                pending: templates.pending && _.templatify(templates.pending),
+                header: templates.header && _.templatify(templates.header),
+                footer: templates.footer && _.templatify(templates.footer),
+                suggestion: templates.suggestion || suggestionTemplate
+            };
+            function suggestionTemplate(context) {
+                return $("<div>").text(displayFn(context));
+            }
+        }
+        function isValidName(str) {
+            return /^[_a-zA-Z0-9-]+$/.test(str);
+        }
+    }();
+    var Menu = function() {
+        "use strict";
+        function Menu(o, www) {
+            var that = this;
+            o = o || {};
+            if (!o.node) {
+                $.error("node is required");
+            }
+            www.mixin(this);
+            this.$node = $(o.node);
+            this.query = null;
+            this.datasets = _.map(o.datasets, initializeDataset);
+            function initializeDataset(oDataset) {
+                var node = that.$node.find(oDataset.node).first();
+                oDataset.node = node.length ? node : $("<div>").appendTo(that.$node);
+                return new Dataset(oDataset, www);
+            }
+        }
+        _.mixin(Menu.prototype, EventEmitter, {
+            _onSelectableClick: function onSelectableClick($e) {
+                this.trigger("selectableClicked", $($e.currentTarget));
+            },
+            _onRendered: function onRendered(type, dataset, suggestions, async) {
+                this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty());
+                this.trigger("datasetRendered", dataset, suggestions, async);
+            },
+            _onCleared: function onCleared() {
+                this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty());
+                this.trigger("datasetCleared");
+            },
+            _propagate: function propagate() {
+                this.trigger.apply(this, arguments);
+            },
+            _allDatasetsEmpty: function allDatasetsEmpty() {
+                return _.every(this.datasets, isDatasetEmpty);
+                function isDatasetEmpty(dataset) {
+                    return dataset.isEmpty();
+                }
+            },
+            _getSelectables: function getSelectables() {
+                return this.$node.find(this.selectors.selectable);
+            },
+            _removeCursor: function _removeCursor() {
+                var $selectable = this.getActiveSelectable();
+                $selectable && $selectable.removeClass(this.classes.cursor);
+            },
+            _ensureVisible: function ensureVisible($el) {
+                var elTop, elBottom, nodeScrollTop, nodeHeight;
+                elTop = $el.position().top;
+                elBottom = elTop + $el.outerHeight(true);
+                nodeScrollTop = this.$node.scrollTop();
+                nodeHeight = this.$node.height() + parseInt(this.$node.css("paddingTop"), 10) + parseInt(this.$node.css("paddingBottom"), 10);
+                if (elTop < 0) {
+                    this.$node.scrollTop(nodeScrollTop + elTop);
+                } else if (nodeHeight < elBottom) {
+                    this.$node.scrollTop(nodeScrollTop + (elBottom - nodeHeight));
+                }
+            },
+            bind: function() {
+                var that = this, onSelectableClick;
+                onSelectableClick = _.bind(this._onSelectableClick, this);
+                this.$node.on("click.tt", this.selectors.selectable, onSelectableClick);
+                _.each(this.datasets, function(dataset) {
+                    dataset.onSync("asyncRequested", that._propagate, that).onSync("asyncCanceled", that._propagate, that).onSync("asyncReceived", that._propagate, that).onSync("rendered", that._onRendered, that).onSync("cleared", that._onCleared, that);
+                });
+                return this;
+            },
+            isOpen: function isOpen() {
+                return this.$node.hasClass(this.classes.open);
+            },
+            open: function open() {
+                this.$node.addClass(this.classes.open);
+            },
+            close: function close() {
+                this.$node.removeClass(this.classes.open);
+                this._removeCursor();
+            },
+            setLanguageDirection: function setLanguageDirection(dir) {
+                this.$node.attr("dir", dir);
+            },
+            selectableRelativeToCursor: function selectableRelativeToCursor(delta) {
+                var $selectables, $oldCursor, oldIndex, newIndex;
+                $oldCursor = this.getActiveSelectable();
+                $selectables = this._getSelectables();
+                oldIndex = $oldCursor ? $selectables.index($oldCursor) : -1;
+                newIndex = oldIndex + delta;
+                newIndex = (newIndex + 1) % ($selectables.length + 1) - 1;
+                newIndex = newIndex < -1 ? $selectables.length - 1 : newIndex;
+                return newIndex === -1 ? null : $selectables.eq(newIndex);
+            },
+            setCursor: function setCursor($selectable) {
+                this._removeCursor();
+                if ($selectable = $selectable && $selectable.first()) {
+                    $selectable.addClass(this.classes.cursor);
+                    this._ensureVisible($selectable);
+                }
+            },
+            getSelectableData: function getSelectableData($el) {
+                return $el && $el.length ? Dataset.extractData($el) : null;
+            },
+            getActiveSelectable: function getActiveSelectable() {
+                var $selectable = this._getSelectables().filter(this.selectors.cursor).first();
+                return $selectable.length ? $selectable : null;
+            },
+            getTopSelectable: function getTopSelectable() {
+                var $selectable = this._getSelectables().first();
+                return $selectable.length ? $selectable : null;
+            },
+            update: function update(query) {
+                var isValidUpdate = query !== this.query;
+                if (isValidUpdate) {
+                    this.query = query;
+                    _.each(this.datasets, updateDataset);
+                }
+                return isValidUpdate;
+                function updateDataset(dataset) {
+                    dataset.update(query);
+                }
+            },
+            empty: function empty() {
+                _.each(this.datasets, clearDataset);
+                this.query = null;
+                this.$node.addClass(this.classes.empty);
+                function clearDataset(dataset) {
+                    dataset.clear();
+                }
+            },
+            destroy: function destroy() {
+                this.$node.off(".tt");
+                this.$node = $("<div>");
+                _.each(this.datasets, destroyDataset);
+                function destroyDataset(dataset) {
+                    dataset.destroy();
+                }
+            }
+        });
+        return Menu;
+    }();
+    var DefaultMenu = function() {
+        "use strict";
+        var s = Menu.prototype;
+        function DefaultMenu() {
+            Menu.apply(this, [].slice.call(arguments, 0));
+        }
+        _.mixin(DefaultMenu.prototype, Menu.prototype, {
+            open: function open() {
+                !this._allDatasetsEmpty() && this._show();
+                return s.open.apply(this, [].slice.call(arguments, 0));
+            },
+            close: function close() {
+                this._hide();
+                return s.close.apply(this, [].slice.call(arguments, 0));
+            },
+            _onRendered: function onRendered() {
+                if (this._allDatasetsEmpty()) {
+                    this._hide();
+                } else {
+                    this.isOpen() && this._show();
+                }
+                return s._onRendered.apply(this, [].slice.call(arguments, 0));
+            },
+            _onCleared: function onCleared() {
+                if (this._allDatasetsEmpty()) {
+                    this._hide();
+                } else {
+                    this.isOpen() && this._show();
+                }
+                return s._onCleared.apply(this, [].slice.call(arguments, 0));
+            },
+            setLanguageDirection: function setLanguageDirection(dir) {
+                this.$node.css(dir === "ltr" ? this.css.ltr : this.css.rtl);
+                return s.setLanguageDirection.apply(this, [].slice.call(arguments, 0));
+            },
+            _hide: function hide() {
+                this.$node.hide();
+            },
+            _show: function show() {
+                this.$node.css("display", "block");
+            }
+        });
+        return DefaultMenu;
+    }();
+    var Typeahead = function() {
+        "use strict";
+        function Typeahead(o, www) {
+            var onFocused, onBlurred, onEnterKeyed, onTabKeyed, onEscKeyed, onUpKeyed, onDownKeyed, onLeftKeyed, onRightKeyed, onQueryChanged, onWhitespaceChanged;
+            o = o || {};
+            if (!o.input) {
+                $.error("missing input");
+            }
+            if (!o.menu) {
+                $.error("missing menu");
+            }
+            if (!o.eventBus) {
+                $.error("missing event bus");
+            }
+            www.mixin(this);
+            this.eventBus = o.eventBus;
+            this.minLength = _.isNumber(o.minLength) ? o.minLength : 1;
+            this.input = o.input;
+            this.menu = o.menu;
+            this.enabled = true;
+            this.active = false;
+            this.input.hasFocus() && this.activate();
+            this.dir = this.input.getLangDir();
+            this._hacks();
+            this.menu.bind().onSync("selectableClicked", this._onSelectableClicked, this).onSync("asyncRequested", this._onAsyncRequested, this).onSync("asyncCanceled", this._onAsyncCanceled, this).onSync("asyncReceived", this._onAsyncReceived, this).onSync("datasetRendered", this._onDatasetRendered, this).onSync("datasetCleared", this._onDatasetCleared, this);
+            onFocused = c(this, "activate", "open", "_onFocused");
+            onBlurred = c(this, "deactivate", "_onBlurred");
+            onEnterKeyed = c(this, "isActive", "isOpen", "_onEnterKeyed");
+            onTabKeyed = c(this, "isActive", "isOpen", "_onTabKeyed");
+            onEscKeyed = c(this, "isActive", "_onEscKeyed");
+            onUpKeyed = c(this, "isActive", "open", "_onUpKeyed");
+            onDownKeyed = c(this, "isActive", "open", "_onDownKeyed");
+            onLeftKeyed = c(this, "isActive", "isOpen", "_onLeftKeyed");
+            onRightKeyed = c(this, "isActive", "isOpen", "_onRightKeyed");
+            onQueryChanged = c(this, "_openIfActive", "_onQueryChanged");
+            onWhitespaceChanged = c(this, "_openIfActive", "_onWhitespaceChanged");
+            this.input.bind().onSync("focused", onFocused, this).onSync("blurred", onBlurred, this).onSync("enterKeyed", onEnterKeyed, this).onSync("tabKeyed", onTabKeyed, this).onSync("escKeyed", onEscKeyed, this).onSync("upKeyed", onUpKeyed, this).onSync("downKeyed", onDownKeyed, this).onSync("leftKeyed", onLeftKeyed, this).onSync("rightKeyed", onRightKeyed, this).onSync("queryChanged", onQueryChanged, this).onSync("whitespaceChanged", onWhitespaceChanged, this).onSync("langDirChanged", this._onLangDirChanged, this);
+        }
+        _.mixin(Typeahead.prototype, {
+            _hacks: function hacks() {
+                var $input, $menu;
+                $input = this.input.$input || $("<div>");
+                $menu = this.menu.$node || $("<div>");
+                $input.on("blur.tt", function($e) {
+                    var active, isActive, hasActive;
+                    active = document.activeElement;
+                    isActive = $menu.is(active);
+                    hasActive = $menu.has(active).length > 0;
+                    if (_.isMsie() && (isActive || hasActive)) {
+                        $e.preventDefault();
+                        $e.stopImmediatePropagation();
+                        _.defer(function() {
+                            $input.focus();
+                        });
+                    }
+                });
+                $menu.on("mousedown.tt", function($e) {
+                    $e.preventDefault();
+                });
+            },
+            _onSelectableClicked: function onSelectableClicked(type, $el) {
+                this.select($el);
+            },
+            _onDatasetCleared: function onDatasetCleared() {
+                this._updateHint();
+            },
+            _onDatasetRendered: function onDatasetRendered(type, dataset, suggestions, async) {
+                this._updateHint();
+                this.eventBus.trigger("render", suggestions, async, dataset);
+            },
+            _onAsyncRequested: function onAsyncRequested(type, dataset, query) {
+                this.eventBus.trigger("asyncrequest", query, dataset);
+            },
+            _onAsyncCanceled: function onAsyncCanceled(type, dataset, query) {
+                this.eventBus.trigger("asynccancel", query, dataset);
+            },
+            _onAsyncReceived: function onAsyncReceived(type, dataset, query) {
+                this.eventBus.trigger("asyncreceive", query, dataset);
+            },
+            _onFocused: function onFocused() {
+                this._minLengthMet() && this.menu.update(this.input.getQuery());
+            },
+            _onBlurred: function onBlurred() {
+                if (this.input.hasQueryChangedSinceLastFocus()) {
+                    this.eventBus.trigger("change", this.input.getQuery());
+                }
+            },
+            _onEnterKeyed: function onEnterKeyed(type, $e) {
+                var $selectable;
+                if ($selectable = this.menu.getActiveSelectable()) {
+                    this.select($selectable) && $e.preventDefault();
+                }
+            },
+            _onTabKeyed: function onTabKeyed(type, $e) {
+                var $selectable;
+                if ($selectable = this.menu.getActiveSelectable()) {
+                    this.select($selectable) && $e.preventDefault();
+                } else if ($selectable = this.menu.getTopSelectable()) {
+                    this.autocomplete($selectable) && $e.preventDefault();
+                }
+            },
+            _onEscKeyed: function onEscKeyed() {
+                this.close();
+            },
+            _onUpKeyed: function onUpKeyed() {
+                this.moveCursor(-1);
+            },
+            _onDownKeyed: function onDownKeyed() {
+                this.moveCursor(+1);
+            },
+            _onLeftKeyed: function onLeftKeyed() {
+                if (this.dir === "rtl" && this.input.isCursorAtEnd()) {
+                    this.autocomplete(this.menu.getTopSelectable());
+                }
+            },
+            _onRightKeyed: function onRightKeyed() {
+                if (this.dir === "ltr" && this.input.isCursorAtEnd()) {
+                    this.autocomplete(this.menu.getTopSelectable());
+                }
+            },
+            _onQueryChanged: function onQueryChanged(e, query) {
+                this._minLengthMet(query) ? this.menu.update(query) : this.menu.empty();
+            },
+            _onWhitespaceChanged: function onWhitespaceChanged() {
+                this._updateHint();
+            },
+            _onLangDirChanged: function onLangDirChanged(e, dir) {
+                if (this.dir !== dir) {
+                    this.dir = dir;
+                    this.menu.setLanguageDirection(dir);
+                }
+            },
+            _openIfActive: function openIfActive() {
+                this.isActive() && this.open();
+            },
+            _minLengthMet: function minLengthMet(query) {
+                query = _.isString(query) ? query : this.input.getQuery() || "";
+                return query.length >= this.minLength;
+            },
+            _updateHint: function updateHint() {
+                var $selectable, data, val, query, escapedQuery, frontMatchRegEx, match;
+                $selectable = this.menu.getTopSelectable();
+                data = this.menu.getSelectableData($selectable);
+                val = this.input.getInputValue();
+                if (data && !_.isBlankString(val) && !this.input.hasOverflow()) {
+                    query = Input.normalizeQuery(val);
+                    escapedQuery = _.escapeRegExChars(query);
+                    frontMatchRegEx = new RegExp("^(?:" + escapedQuery + ")(.+$)", "i");
+                    match = frontMatchRegEx.exec(data.val);
+                    match && this.input.setHint(val + match[1]);
+                } else {
+                    this.input.clearHint();
+                }
+            },
+            isEnabled: function isEnabled() {
+                return this.enabled;
+            },
+            enable: function enable() {
+                this.enabled = true;
+            },
+            disable: function disable() {
+                this.enabled = false;
+            },
+            isActive: function isActive() {
+                return this.active;
+            },
+            activate: function activate() {
+                if (this.isActive()) {
+                    return true;
+                } else if (!this.isEnabled() || this.eventBus.before("active")) {
+                    return false;
+                } else {
+                    this.active = true;
+                    this.eventBus.trigger("active");
+                    return true;
+                }
+            },
+            deactivate: function deactivate() {
+                if (!this.isActive()) {
+                    return true;
+                } else if (this.eventBus.before("idle")) {
+                    return false;
+                } else {
+                    this.active = false;
+                    this.close();
+                    this.eventBus.trigger("idle");
+                    return true;
+                }
+            },
+            isOpen: function isOpen() {
+                return this.menu.isOpen();
+            },
+            open: function open() {
+                if (!this.isOpen() && !this.eventBus.before("open")) {
+                    this.menu.open();
+                    this._updateHint();
+                    this.eventBus.trigger("open");
+                }
+                return this.isOpen();
+            },
+            close: function close() {
+                if (this.isOpen() && !this.eventBus.before("close")) {
+                    this.menu.close();
+                    this.input.clearHint();
+                    this.input.resetInputValue();
+                    this.eventBus.trigger("close");
+                }
+                return !this.isOpen();
+            },
+            setVal: function setVal(val) {
+                this.input.setQuery(_.toStr(val));
+            },
+            getVal: function getVal() {
+                return this.input.getQuery();
+            },
+            select: function select($selectable) {
+                var data = this.menu.getSelectableData($selectable);
+                if (data && !this.eventBus.before("select", data.obj)) {
+                    this.input.setQuery(data.val, true);
+                    this.eventBus.trigger("select", data.obj);
+                    this.close();
+                    return true;
+                }
+                return false;
+            },
+            autocomplete: function autocomplete($selectable) {
+                var query, data, isValid;
+                query = this.input.getQuery();
+                data = this.menu.getSelectableData($selectable);
+                isValid = data && query !== data.val;
+                if (isValid && !this.eventBus.before("autocomplete", data.obj)) {
+                    this.input.setQuery(data.val);
+                    this.eventBus.trigger("autocomplete", data.obj);
+                    return true;
+                }
+                return false;
+            },
+            moveCursor: function moveCursor(delta) {
+                var query, $candidate, data, payload, cancelMove;
+                query = this.input.getQuery();
+                $candidate = this.menu.selectableRelativeToCursor(delta);
+                data = this.menu.getSelectableData($candidate);
+                payload = data ? data.obj : null;
+                cancelMove = this._minLengthMet() && this.menu.update(query);
+                if (!cancelMove && !this.eventBus.before("cursorchange", payload)) {
+                    this.menu.setCursor($candidate);
+                    if (data) {
+                        this.input.setInputValue(data.val);
+                    } else {
+                        this.input.resetInputValue();
+                        this._updateHint();
+                    }
+                    this.eventBus.trigger("cursorchange", payload);
+                    return true;
+                }
+                return false;
+            },
+            destroy: function destroy() {
+                this.input.destroy();
+                this.menu.destroy();
+            }
+        });
+        return Typeahead;
+        function c(ctx) {
+            var methods = [].slice.call(arguments, 1);
+            return function() {
+                var args = [].slice.call(arguments);
+                _.each(methods, function(method) {
+                    return ctx[method].apply(ctx, args);
+                });
+            };
+        }
+    }();
+    (function() {
+        "use strict";
+        var old, keys, methods;
+        old = $.fn.typeahead;
+        keys = {
+            www: "tt-www",
+            attrs: "tt-attrs",
+            typeahead: "tt-typeahead"
+        };
+        methods = {
+            initialize: function initialize(o, datasets) {
+                var www;
+                datasets = _.isArray(datasets) ? datasets : [].slice.call(arguments, 1);
+                o = o || {};
+                www = WWW(o.classNames);
+                return this.each(attach);
+                function attach() {
+                    var $input, $wrapper, $hint, $menu, defaultHint, defaultMenu, eventBus, input, menu, typeahead, MenuConstructor;
+                    _.each(datasets, function(d) {
+                        d.highlight = !!o.highlight;
+                    });
+                    $input = $(this);
+                    $wrapper = $(www.html.wrapper);
+                    $hint = $elOrNull(o.hint);
+                    $menu = $elOrNull(o.menu);
+                    defaultHint = o.hint !== false && !$hint;
+                    defaultMenu = o.menu !== false && !$menu;
+                    defaultHint && ($hint = buildHintFromInput($input, www));
+                    defaultMenu && ($menu = $(www.html.menu).css(www.css.menu));
+                    $hint && $hint.val("");
+                    $input = prepInput($input, www);
+                    if (defaultHint || defaultMenu) {
+                        $wrapper.css(www.css.wrapper);
+                        $input.css(defaultHint ? www.css.input : www.css.inputWithNoHint);
+                        $input.wrap($wrapper).parent().prepend(defaultHint ? $hint : null).append(defaultMenu ? $menu : null);
+                    }
+                    MenuConstructor = defaultMenu ? DefaultMenu : Menu;
+                    eventBus = new EventBus({
+                        el: $input
+                    });
+                    input = new Input({
+                        hint: $hint,
+                        input: $input
+                    }, www);
+                    menu = new MenuConstructor({
+                        node: $menu,
+                        datasets: datasets
+                    }, www);
+                    typeahead = new Typeahead({
+                        input: input,
+                        menu: menu,
+                        eventBus: eventBus,
+                        minLength: o.minLength
+                    }, www);
+                    $input.data(keys.www, www);
+                    $input.data(keys.typeahead, typeahead);
+                }
+            },
+            isEnabled: function isEnabled() {
+                var enabled;
+                ttEach(this.first(), function(t) {
+                    enabled = t.isEnabled();
+                });
+                return enabled;
+            },
+            enable: function enable() {
+                ttEach(this, function(t) {
+                    t.enable();
+                });
+                return this;
+            },
+            disable: function disable() {
+                ttEach(this, function(t) {
+                    t.disable();
+                });
+                return this;
+            },
+            isActive: function isActive() {
+                var active;
+                ttEach(this.first(), function(t) {
+                    active = t.isActive();
+                });
+                return active;
+            },
+            activate: function activate() {
+                ttEach(this, function(t) {
+                    t.activate();
+                });
+                return this;
+            },
+            deactivate: function deactivate() {
+                ttEach(this, function(t) {
+                    t.deactivate();
+                });
+                return this;
+            },
+            isOpen: function isOpen() {
+                var open;
+                ttEach(this.first(), function(t) {
+                    open = t.isOpen();
+                });
+                return open;
+            },
+            open: function open() {
+                ttEach(this, function(t) {
+                    t.open();
+                });
+                return this;
+            },
+            close: function close() {
+                ttEach(this, function(t) {
+                    t.close();
+                });
+                return this;
+            },
+            select: function select(el) {
+                var success = false, $el = $(el);
+                ttEach(this.first(), function(t) {
+                    success = t.select($el);
+                });
+                return success;
+            },
+            autocomplete: function autocomplete(el) {
+                var success = false, $el = $(el);
+                ttEach(this.first(), function(t) {
+                    success = t.autocomplete($el);
+                });
+                return success;
+            },
+            moveCursor: function moveCursoe(delta) {
+                var success = false;
+                ttEach(this.first(), function(t) {
+                    success = t.moveCursor(delta);
+                });
+                return success;
+            },
+            val: function val(newVal) {
+                var query;
+                if (!arguments.length) {
+                    ttEach(this.first(), function(t) {
+                        query = t.getVal();
+                    });
+                    return query;
+                } else {
+                    ttEach(this, function(t) {
+                        t.setVal(newVal);
+                    });
+                    return this;
+                }
+            },
+            destroy: function destroy() {
+                ttEach(this, function(typeahead, $input) {
+                    revert($input);
+                    typeahead.destroy();
+                });
+                return this;
+            }
+        };
+        $.fn.typeahead = function(method) {
+            if (methods[method]) {
+                return methods[method].apply(this, [].slice.call(arguments, 1));
+            } else {
+                return methods.initialize.apply(this, arguments);
+            }
+        };
+        $.fn.typeahead.noConflict = function noConflict() {
+            $.fn.typeahead = old;
+            return this;
+        };
+        function ttEach($els, fn) {
+            $els.each(function() {
+                var $input = $(this), typeahead;
+                (typeahead = $input.data(keys.typeahead)) && fn(typeahead, $input);
+            });
+        }
+        function buildHintFromInput($input, www) {
+            return $input.clone().addClass(www.classes.hint).removeData().css(www.css.hint).css(getBackgroundStyles($input)).prop("readonly", true).removeAttr("id name placeholder required").attr({
+                autocomplete: "off",
+                spellcheck: "false",
+                tabindex: -1
+            });
+        }
+        function prepInput($input, www) {
+            $input.data(keys.attrs, {
+                dir: $input.attr("dir"),
+                autocomplete: $input.attr("autocomplete"),
+                spellcheck: $input.attr("spellcheck"),
+                style: $input.attr("style")
+            });
+            $input.addClass(www.classes.input).attr({
+                autocomplete: "off",
+                spellcheck: false
+            });
+            try {
+                !$input.attr("dir") && $input.attr("dir", "auto");
+            } catch (e) {}
+            return $input;
+        }
+        function getBackgroundStyles($el) {
+            return {
+                backgroundAttachment: $el.css("background-attachment"),
+                backgroundClip: $el.css("background-clip"),
+                backgroundColor: $el.css("background-color"),
+                backgroundImage: $el.css("background-image"),
+                backgroundOrigin: $el.css("background-origin"),
+                backgroundPosition: $el.css("background-position"),
+                backgroundRepeat: $el.css("background-repeat"),
+                backgroundSize: $el.css("background-size")
+            };
+        }
+        function revert($input) {
+            var www, $wrapper;
+            www = $input.data(keys.www);
+            $wrapper = $input.parent().filter(www.selectors.wrapper);
+            _.each($input.data(keys.attrs), function(val, key) {
+                _.isUndefined(val) ? $input.removeAttr(key) : $input.attr(key, val);
+            });
+            $input.removeData(keys.typeahead).removeData(keys.www).removeData(keys.attr).removeClass(www.classes.input);
+            if ($wrapper.length) {
+                $input.detach().insertAfter($wrapper);
+                $wrapper.remove();
+            }
+        }
+        function $elOrNull(obj) {
+            var isValid, $el;
+            isValid = _.isJQuery(obj) || _.isElement(obj);
+            $el = isValid ? $(obj).first() : [];
+            return $el.length ? $el : null;
+        }
+    })();
+});
+/*
+ * bag.js - js/css/other loader + kv storage
+ *
+ * Copyright 2013-2014 Vitaly Puzrin
+ * https://github.com/nodeca/bag.js
+ *
+ * License MIT
+ */
+
+/*global define*/
+
+(function (root, factory) {
+  'use strict';
+
+  if (typeof define === 'function' && define.amd) {
+    define(factory);
+  } else if (typeof module === 'object' && typeof module.exports === 'object') {
+    module.exports = factory();
+  } else {
+    root.Bag = factory();
+  }
+} (this, function () {
+  'use strict';
+
+  var head = document.head || document.getElementsByTagName('head')[0];
+
+  //////////////////////////////////////////////////////////////////////////////
+  // helpers
+
+  function _nope() { return; }
+
+  function _isString(obj) {
+    return Object.prototype.toString.call(obj) === '[object String]';
+  }
+
+  var _isArray = Array.isArray || function isArray(obj) {
+    return Object.prototype.toString.call(obj) === '[object Array]';
+  };
+
+  function _isFunction(obj) {
+    return Object.prototype.toString.call(obj) === '[object Function]';
+  }
+
+  function _each(obj, iterator) {
+    if (_isArray(obj)) {
+      if (obj.forEach) {
+        return obj.forEach(iterator);
+      }
+      for (var i = 0; i < obj.length; i++) {
+        iterator(obj[i], i, obj);
+      }
+    } else {
+      for (var k in obj) {
+        if (Object.prototype.hasOwnProperty.call(obj, k)) {
+          iterator(obj[k], k);
+        }
+      }
+    }
+  }
+
+  function _default(obj, src) {
+    // extend obj with src properties if not exists;
+    _each(src, function (val, key) {
+      if (!obj[key]) { obj[key] = src[key]; }
+    });
+  }
+
+
+  function _asyncEach(arr, iterator, callback) {
+    callback = callback || _nope;
+    if (!arr.length) { return callback(); }
+
+    var completed = 0;
+    _each(arr, function (x) {
+      iterator(x, function (err) {
+        if (err) {
+          callback(err);
+          callback = _nope;
+        } else {
+          completed += 1;
+          if (completed >= arr.length) {
+            callback();
+          }
+        }
+      });
+    });
+  }
+
+
+  //////////////////////////////////////////////////////////////////////////////
+  // Adapters for Store class
+
+  function DomStorage(namespace) {
+    var self = this;
+    var _ns = namespace + '__';
+    var _storage = localStorage;
+
+
+    this.init = function (callback) {
+      callback();
+    };
+
+
+    this.remove = function (key, callback) {
+      callback = callback || _nope;
+      _storage.removeItem(_ns + key);
+      callback();
+    };
+
+
+    this.set = function (key, value, expire, callback) {
+      var obj = {
+        value: value,
+        expire: expire
+      };
+
+      var err;
+
+      try {
+        _storage.setItem(_ns + key, JSON.stringify(obj));
+      } catch (e) {
+        // On quota error try to reset storage & try again.
+        // Just remove all keys, without conditions, no optimizations needed.
+        if (e.name.toUpperCase().indexOf('QUOTA') >= 0) {
+          try {
+            _each(_storage, function (val, name) {
+              var k = name.split(_ns)[1];
+              if (k) { self.remove(k); }
+            });
+            _storage.setItem(_ns + key, JSON.stringify(obj));
+          } catch (e2) {
+            err = e2;
+          }
+        } else {
+          err = e;
+        }
+      }
+
+      callback(err);
+    };
+
+
+    this.get = function (key, raw, callback) {
+      if (_isFunction(raw)) {
+        callback = raw;
+        raw = false;
+      }
+
+      var err, data;
+
+      try {
+        data = JSON.parse(_storage.getItem(_ns + key));
+        data = raw ? data : data.value;
+      } catch (e) {
+        err = new Error('Can\'t read key: ' + key);
+      }
+
+      callback(err, data);
+    };
+
+
+    this.clear = function (expiredOnly, callback) {
+      var now = +new Date();
+
+      _each(_storage, function (val, name) {
+        var key = name.split(_ns)[1];
+
+        if (!key) { return; }
+
+        if (!expiredOnly) {
+          self.remove(key);
+          return;
+        }
+
+        var raw;
+        self.get(key, true, function (__, data) {
+          raw = data; // can use this hack, because get is sync;
+        });
+        if (raw && (raw.expire > 0) && ((raw.expire - now) < 0)) {
+          self.remove(key);
+        }
+      });
+
+      callback();
+    };
+  }
+
+
+  DomStorage.prototype.exists = function () {
+    try {
+      localStorage.setItem('__ls_test__', '__ls_test__');
+      localStorage.removeItem('__ls_test__');
+      return true;
+    } catch (e) {
+      return false;
+    }
+  };
+
+
+
+  function WebSql(namespace) {
+    var db;
+
+
+    this.init = function (callback) {
+      db = window.openDatabase(namespace, '1.0', 'bag.js db', 2e5);
+
+      if (!db) { return callback('Can\'t open webdql database'); }
+
+      db.transaction(function (tx) {
+        tx.executeSql(
+          'CREATE TABLE IF NOT EXISTS kv (key TEXT PRIMARY KEY, value TEXT, expire INTEGER KEY)',
+          [],
+          function () { return callback(); },
+          function (tx, err) { return callback(err); }
+        );
+      });
+    };
+
+
+    this.remove = function (key, callback) {
+      callback = callback || _nope;
+      db.transaction(function (tx) {
+        tx.executeSql(
+          'DELETE FROM kv WHERE key = ?',
+          [ key ],
+          function () { return callback(); },
+          function (tx, err) { return callback(err); }
+        );
+      });
+    };
+
+
+    this.set = function (key, value, expire, callback) {
+      db.transaction(function (tx) {
+        tx.executeSql(
+          'INSERT OR REPLACE INTO kv (key, value, expire) VALUES (?, ?, ?)',
+          [ key, JSON.stringify(value), expire ],
+          function () { return callback(); },
+          function (tx, err) { return callback(err); }
+        );
+      });
+    };
+
+
+    this.get = function (key, callback) {
+      db.readTransaction(function (tx) {
+        tx.executeSql(
+          'SELECT value FROM kv WHERE key = ?',
+          [ key ],
+          function (tx, result) {
+            if (result.rows.length === 0) {
+              return callback(new Error('key not found: ' + key));
+            }
+            var value = result.rows.item(0).value;
+            var err, data;
+            try {
+              data = JSON.parse(value);
+            } catch (e) {
+              err = new Error('Can\'t unserialise data: ' + value);
+            }
+            callback(err, data);
+          },
+          function (tx, err) { return callback(err); }
+        );
+      });
+    };
+
+
+    this.clear = function (expiredOnly, callback) {
+
+      db.transaction(function (tx) {
+        if (expiredOnly) {
+          tx.executeSql(
+            'DELETE FROM kv WHERE expire > 0 AND expire < ?',
+            [ +new Date() ],
+            function () { return callback(); },
+            function (tx, err) { return callback(err); }
+          );
+        } else {
+          db.transaction(function (tx) {
+            tx.executeSql(
+              'DELETE FROM kv',
+              [],
+              function () { return callback(); },
+              function (tx, err) { return callback(err); }
+            );
+          });
+        }
+      });
+    };
+  }
+
+
+  WebSql.prototype.exists = function () {
+    return (!!window.openDatabase);
+  };
+
+
+
+  function Idb(namespace) {
+    var db;
+
+    this.init = function (callback) {
+      var idb = this.idb = window.indexedDB; /* || window.webkitIndexedDB ||
+                           window.mozIndexedDB || window.msIndexedDB;*/
+
+      var req = idb.open(namespace, 2 /*version*/);
+
+      req.onsuccess = function (e) {
+        db = e.target.result;
+        callback();
+      };
+      req.onblocked = function (e) {
+        callback(new Error('IndexedDB blocked. ' + e.target.errorCode));
+      };
+      req.onerror = function (e) {
+        callback(new Error('IndexedDB opening error. ' + e.target.errorCode));
+      };
+      req.onupgradeneeded = function (e) {
+        db = e.target.result;
+        if (db.objectStoreNames.contains('kv')) {
+          db.deleteObjectStore('kv');
+        }
+        var store = db.createObjectStore('kv', { keyPath: 'key' });
+        store.createIndex('expire', 'expire', { unique: false });
+      };
+    };
+
+
+    this.remove = function (key, callback) {
+      var tx = db.transaction('kv', 'readwrite');
+
+      tx.oncomplete = function () { callback(); };
+      tx.onerror = tx.onabort = function (e) { callback(new Error('Key remove error: ', e.target)); };
+
+      // IE 8 not allow to use reserved keywords as functions. More info:
+      // http://tiffanybbrown.com/2013/09/10/expected-identifier-bug-in-internet-explorer-8/
+      tx.objectStore('kv')['delete'](key).onerror = function () { tx.abort(); };
+    };
+
+
+    this.set = function (key, value, expire, callback) {
+      var tx = db.transaction('kv', 'readwrite');
+
+      tx.oncomplete = function () { callback(); };
+      tx.onerror = tx.onabort = function (e) { callback(new Error('Key set error: ', e.target)); };
+
+      tx.objectStore('kv').put({
+        key: key,
+        value: value,
+        expire: expire
+      }).onerror = function () { tx.abort(); };
+    };
+
+
+    this.get = function (key, callback) {
+      var err, result;
+      var tx = db.transaction('kv');
+
+      tx.oncomplete = function () { callback(err, result); };
+      tx.onerror = tx.onabort = function (e) { callback(new Error('Key get error: ', e.target)); };
+
+      tx.objectStore('kv').get(key).onsuccess = function (e) {
+        if (e.target.result) {
+          result = e.target.result.value;
+        } else {
+          err = new Error('key not found: ' + key);
+        }
+      };
+    };
+
+
+    this.clear = function (expiredOnly, callback) {
+      var keyrange = window.IDBKeyRange; /* ||
+                     window.webkitIDBKeyRange || window.msIDBKeyRange;*/
+      var tx, store;
+
+      tx = db.transaction('kv', 'readwrite');
+      store = tx.objectStore('kv');
+
+      tx.oncomplete = function () { callback(); };
+      tx.onerror = tx.onabort = function (e) { callback(new Error('Clear error: ', e.target)); };
+
+      if (expiredOnly) {
+
+        var cursor = store.index('expire').openCursor(keyrange.bound(1, +new Date()));
+
+        cursor.onsuccess = function (e) {
+          var _cursor = e.target.result;
+          if (_cursor) {
+            // IE 8 not allow to use reserved keywords as functions (`delete` and `continue`). More info:
+            // http://tiffanybbrown.com/2013/09/10/expected-identifier-bug-in-internet-explorer-8/
+            store['delete'](_cursor.primaryKey).onerror = function () { tx.abort(); };
+            _cursor['continue']();
+          }
+        };
+
+      } else {
+        // Just clear everything
+        tx.objectStore('kv').clear().onerror = function () { tx.abort(); };
+      }
+    };
+  }
+
+
+  Idb.prototype.exists = function () {
+    var db =  window.indexedDB /*||
+              window.webkitIndexedDB ||
+              window.mozIndexedDB ||
+              window.msIndexedDB*/;
+
+    if (!db) {
+      return false;
+    }
+
+    // Check outdated idb implementations, where `onupgradeneede` event doesn't work,
+    // see https://github.com/pouchdb/pouchdb/issues/1207 for more details
+    var dbName = '__idb_test__';
+    var result = db.open(dbName, 1).onupgradeneeded === null;
+
+    if (db.deleteDatabase) {
+      db.deleteDatabase(dbName);
+    }
+
+    return result;
+  };
+
+
+
+  /////////////////////////////////////////////////////////////////////////////
+  // key/value storage with expiration
+
+  var storeAdapters = {
+    indexeddb: Idb,
+    websql: WebSql,
+    localstorage: DomStorage
+  };
+
+
+  // namespace - db name or similar
+  // storesList - array of allowed adapter names to use
+  //
+  function Storage(namespace, storesList) {
+    var self = this;
+
+    var db = null;
+
+    // States of db init singletone process
+    // 'done' / 'progress' / 'failed' / undefined
+    var initState;
+    var initStack = [];
+
+    _each(storesList, function (name) {
+      // do storage names case insensitive
+      name = name.toLowerCase();
+
+      if (!storeAdapters[name]) {
+        throw new Error('Wrong storage adapter name: ' + name, storesList);
+      }
+
+      if (storeAdapters[name].prototype.exists() && !db) {
+        db = new storeAdapters[name](namespace);
+        return false; // terminate search on first success
+      }
+    });
+
+    if (!db) {
+      /* eslint-disable no-console */
+      // If no adaprets - don't make error for correct fallback.
+      // Just log that we continue work without storing results.
+      if (typeof console !== 'undefined' && console.log) {
+        console.log('None of requested storages available: ' + storesList);
+      }
+      /* eslint-enable no-console */
+    }
+
+
+    this.init = function (callback) {
+      if (!db) {
+        callback(new Error('No available db'));
+        return;
+      }
+
+      if (initState === 'done') {
+        callback();
+        return;
+      }
+
+      if (initState === 'progress') {
+        initStack.push(callback);
+        return;
+      }
+
+      initStack.push(callback);
+      initState = 'progress';
+
+      db.init(function (err) {
+        initState = !err ? 'done' : 'failed';
+        _each(initStack, function (cb) {
+          cb(err);
+        });
+        initStack = [];
+
+        // Clear expired. A bit dirty without callback,
+        // but we don't care until clear compleete
+        if (!err) { self.clear(true); }
+      });
+    };
+
+
+    this.set = function (key, value, expire, callback) {
+      if (_isFunction(expire)) {
+        callback = expire;
+        expire = null;
+      }
+      callback = callback || _nope;
+      expire = expire ? +(new Date()) + (expire * 1000) : 0;
+
+      this.init(function (err) {
+        if (err) { return callback(err); }
+        db.set(key, value, expire, callback);
+      });
+    };
+
+
+    this.get = function (key, callback) {
+      this.init(function (err) {
+        if (err) { return callback(err); }
+        db.get(key, callback);
+      });
+    };
+
+
+    this.remove = function (key, callback) {
+      callback = callback || _nope;
+      this.init(function (err) {
+        if (err) { return callback(err); }
+        db.remove(key, callback);
+      });
+    };
+
+
+    this.clear = function (expiredOnly, callback) {
+      if (_isFunction(expiredOnly)) {
+        callback = expiredOnly;
+        expiredOnly = false;
+      }
+      callback = callback || _nope;
+
+      this.init(function (err) {
+        if (err) { return callback(err); }
+        db.clear(expiredOnly, callback);
+      });
+    };
+  }
+
+
+  //////////////////////////////////////////////////////////////////////////////
+  // Bag class implementation
+
+  function Bag(options) {
+    if (!(this instanceof Bag)) { return new Bag(options); }
+
+    var self = this;
+
+    options = options || {};
+
+    this.prefix       = options.prefix || 'bag';
+    this.timeout      = options.timeout || 20;    // 20 seconds
+    this.expire       = options.expire || 30 * 24;  // 30 days
+    this.isValidItem  = options.isValidItem || null;
+
+    this.stores = _isArray(options.stores) ? options.stores : [ 'indexeddb', 'websql', 'localstorage' ];
+
+    var storage = null;
+
+    this._queue = [];
+    this._chained = false;
+
+    this._createStorage = function () {
+      if (!storage) { storage = new Storage(self.prefix, self.stores); }
+    };
+
+    function getUrl(url, callback) {
+      var xhr = new XMLHttpRequest();
+      xhr.open('GET', url);
+      xhr.onreadystatechange = function () {
+        if (xhr.readyState === 4) {
+          if (xhr.status === 200) {
+            callback(null, {
+              content: xhr.responseText,
+              type: xhr.getResponseHeader('content-type')
+            });
+            callback = _nope;
+          } else {
+            callback(new Error('Can\'t open url ' + url +
+               (xhr.status ? xhr.statusText + ' (' + xhr.status + ')' : '')));
+            callback = _nope;
+          }
+        }
+      };
+
+      setTimeout(function () {
+        if (xhr.readyState < 4) {
+          xhr.abort();
+          callback(new Error('Timeout'));
+          callback = _nope;
+        }
+      }, self.timeout * 1000);
+
+      xhr.send();
+    }
+
+    function createCacheObj(obj, response) {
+      var cacheObj = {};
+
+      _each([ 'url', 'key', 'unique' ], function (key) {
+        if (obj[key]) { cacheObj[key] = obj[key]; }
+      });
+
+      var now = +new Date();
+      cacheObj.data = response.content;
+      cacheObj.originalType = response.type;
+      cacheObj.type = obj.type || response.type;
+      cacheObj.stamp = now;
+
+      return cacheObj;
+    }
+
+    function saveUrl(obj, callback) {
+      getUrl(obj.url_real, function (err, result) {
+        if (err) { return callback(err); }
+
+        var delay = (obj.expire || self.expire) * 60 * 60; // in seconds
+
+        var cached = createCacheObj(obj, result);
+
+        self.set(obj.key, cached, delay, function () {
+          // Don't check error - have to return data anyway
+          _default(obj, cached);
+          callback(null, obj);
+        });
+      });
+    }
+
+
+    function isCacheValid(cached, obj) {
+      return !cached ||
+        cached.expire - +new Date() < 0  ||
+        obj.unique !== cached.unique ||
+        obj.url !== cached.url ||
+        (self.isValidItem && !self.isValidItem(cached, obj));
+    }
+
+
+    function fetch(obj, callback) {
+
+      if (!obj.url) { return callback(); }
+      obj.key = (obj.key || obj.url);
+
+      self.get(obj.key, function (err_cache, cached) {
+
+        // Check error only on forced fetch from cache
+        if (err_cache && obj.cached) {
+          callback(err_cache);
+          return;
+        }
+
+        // if can't get object from store, then just load it from web.
+        obj.execute = (obj.execute !== false);
+        var shouldFetch = !!err_cache || isCacheValid(cached, obj);
+
+        // If don't have to load new date - return one from cache
+        if (!obj.live && !shouldFetch) {
+          obj.type = obj.type || cached.originalType;
+          _default(obj, cached);
+          callback(null, obj);
+          return;
+        }
+
+        // calculate loading url
+        obj.url_real = obj.url;
+        if (obj.unique) {
+          // set parameter to prevent browser cache
+          obj.url_real = obj.url + ((obj.url.indexOf('?') > 0) ? '&' : '?') + 'bag-unique=' + obj.unique;
+        }
+
+        saveUrl(obj, function (err_load) {
+          if (err_cache && err_load) {
+            callback(err_load);
+            return;
+          }
+
+          if (err_load) {
+            obj.type = obj.type || cached.originalType;
+            _default(obj, cached);
+            callback(null, obj);
+            return;
+          }
+
+          callback(null, obj);
+        });
+      });
+    }
+
+    ////////////////////////////////////////////////////////////////////////////
+    // helpers to set absolute sourcemap url
+
+    /* eslint-disable max-len */
+    var sourceMappingRe = /(?:^([ \t]*\/\/[@|#][ \t]+sourceMappingURL=)(.+?)([ \t]*)$)|(?:^([ \t]*\/\*[@#][ \t]+sourceMappingURL=)(.+?)([ \t]*\*\/[ \t])*$)/mg;
+    /* eslint-enable max-len */
+
+    function parse_url(url) {
+      var pattern = new RegExp('^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?');
+      var matches = url.match(pattern);
+      return {
+        scheme: matches[2],
+        authority: matches[4],
+        path: matches[5],
+        query: matches[7],
+        fragment: matches[9]
+      };
+    }
+
+    function patchMappingUrl(obj) {
+      var refUrl = parse_url(obj.url);
+      var done = false;
+      var res = obj.data.replace(sourceMappingRe, function (match, p1, p2, p3, p4, p5, p6) {
+        if (!match) { return null; }
+        done = true;
+        // select matched group of params
+        if (!p1) { p1 = p4; p2 = p5; p3 = p6; }
+        var mapUrl = parse_url(p2);
+
+        var scheme = (mapUrl.scheme ? mapUrl.scheme : refUrl.scheme) || window.location.protocol.slice(0, -1);
+        var authority = (mapUrl.authority ? mapUrl.authority : refUrl.authority) || window.location.host;
+        /* eslint-disable max-len */
+        var path = mapUrl.path[0] === '/' ? mapUrl.path : refUrl.path.split('/').slice(0, -1).join('/') + '/' + mapUrl.path;
+        /* eslint-enable max-len */
+        return p1 + (scheme + '://' + authority + path) + p3;
+      });
+      return done ? res : '';
+    }
+
+    ////////////////////////////////////////////////////////////////////////////
+
+    var handlers = {
+      'application/javascript': function injectScript(obj) {
+        var script = document.createElement('script'), txt;
+
+        // try to change sourcemap address to absolute
+        txt = patchMappingUrl(obj);
+        if (!txt) {
+          // or add script name for dev tools
+          txt = obj.data + '\n//# sourceURL=' + obj.url;
+        }
+
+        // Have to use .text, since we support IE8,
+        // which won't allow appending to a script
+        script.text = txt;
+        head.appendChild(script);
+        return;
+      },
+
+      'text/css': function injectStyle(obj) {
+        var style = document.createElement('style'), txt;
+
+        // try to change sourcemap address to absolute
+        txt = patchMappingUrl(obj);
+        if (!txt) {
+          // or add stylesheet script name for dev tools
+          txt = obj.data + '\n/*# sourceURL=' + obj.url + ' */';
+        }
+
+        // Needed to enable `style.styleSheet` in IE
+        style.setAttribute('type', 'text/css');
+
+        if (style.styleSheet) {
+          // We should append style element to DOM before assign css text to
+          // workaround IE bugs with `@import` and `@font-face`.
+          // https://github.com/andrewwakeling/ie-css-bugs
+          head.appendChild(style);
+
+          style.styleSheet.cssText = txt; // IE method
+        } else {
+          style.appendChild(document.createTextNode(txt)); // others
+          head.appendChild(style);
+        }
+
+        return;
+      }
+    };
+
+
+    function execute(obj) {
+      if (!obj.type) { return; }
+
+      // Cut off encoding if exists:
+      // application/javascript; charset=UTF-8
+      var handlerName = obj.type.split(';')[0];
+
+      // Fix outdated mime types if needed, to use single handler
+      if (handlerName === 'application/x-javascript' || handlerName === 'text/javascript') {
+        handlerName = 'application/javascript';
+      }
+
+      if (handlers[handlerName]) {
+        handlers[handlerName](obj);
+      }
+      return;
+    }
+
+    ////////////////////////////////////////////////////////////////////////////
+
+    //
+    // Public methods
+    //
+
+    this.require = function (resources, callback) {
+      var queue = self._queue;
+
+      if (_isFunction(resources)) {
+        callback = resources;
+        resources = null;
+      }
+
+      if (resources) {
+        var res = _isArray(resources) ? resources : [ resources ];
+
+        // convert string urls to structures
+        // and push to queue
+        _each(res, function (r, i) {
+          if (_isString(r)) { res[i] = { url: r }; }
+          queue.push(res[i]);
+        });
+      }
+
+      self._createStorage();
+
+      if (!callback) {
+        self._chained = true;
+        return self;
+      }
+
+      _asyncEach(queue, fetch, function (err) {
+        if (err) {
+          // cleanup
+          self._chained = false;
+          self._queue = [];
+
+          callback(err);
+          return;
+        }
+
+        _each(queue, function (obj) {
+          if (obj.execute) {
+            execute(obj);
+          }
+        });
+
+        // return content only, if one need fuul info -
+        // check input object, that will be extended.
+        var replies = [];
+        _each(queue, function (r) { replies.push(r.data); });
+
+        var result = (_isArray(resources) || self._chained) ? replies : replies[0];
+
+        // cleanup
+        self._chained = false;
+        self._queue = [];
+
+        callback(null, result);
+      });
+    };
+
+
+    // Create proxy methods (init store then subcall)
+    _each([ 'remove', 'get', 'set', 'clear' ], function (method) {
+      self[method] = function () {
+        self._createStorage();
+        storage[method].apply(storage, arguments);
+      };
+    });
+
+
+    this.addHandler = function (types, handler) {
+      types = _isArray(types) ? types : [ types ];
+      _each(types, function (type) { handlers[type] = handler; });
+    };
+
+
+    this.removeHandler = function (types) {
+      self.addHandler(types/*, undefined*/);
+    };
+  }
+
+  return Bag;
+
+}));
diff --git a/ui/new-ui-samples/js/vendor/bootstrap.js b/ui/new-ui-samples/js/vendor/bootstrap.js
new file mode 100644
index 0000000..c99fc77
--- /dev/null
+++ b/ui/new-ui-samples/js/vendor/bootstrap.js
@@ -0,0 +1,2345 @@
+/* ========================================================================
+ * Bootstrap: affix.js v3.3.5
+ * http://getbootstrap.com/javascript/#affix
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+  'use strict';
+
+  // AFFIX CLASS DEFINITION
+  // ======================
+
+  var Affix = function (element, options) {
+    this.options = $.extend({}, Affix.DEFAULTS, options)
+
+    this.$target = $(this.options.target)
+      .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
+      .on('click.bs.affix.data-api',  $.proxy(this.checkPositionWithEventLoop, this))
+
+    this.$element     = $(element)
+    this.affixed      = null
+    this.unpin        = null
+    this.pinnedOffset = null
+
+    this.checkPosition()
+  }
+
+  Affix.VERSION  = '3.3.5'
+
+  Affix.RESET    = 'affix affix-top affix-bottom'
+
+  Affix.DEFAULTS = {
+    offset: 0,
+    target: window
+  }
+
+  Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {
+    var scrollTop    = this.$target.scrollTop()
+    var position     = this.$element.offset()
+    var targetHeight = this.$target.height()
+
+    if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false
+
+    if (this.affixed == 'bottom') {
+      if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'
+      return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'
+    }
+
+    var initializing   = this.affixed == null
+    var colliderTop    = initializing ? scrollTop : position.top
+    var colliderHeight = initializing ? targetHeight : height
+
+    if (offsetTop != null && scrollTop <= offsetTop) return 'top'
+    if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'
+
+    return false
+  }
+
+  Affix.prototype.getPinnedOffset = function () {
+    if (this.pinnedOffset) return this.pinnedOffset
+    this.$element.removeClass(Affix.RESET).addClass('affix')
+    var scrollTop = this.$target.scrollTop()
+    var position  = this.$element.offset()
+    return (this.pinnedOffset = position.top - scrollTop)
+  }
+
+  Affix.prototype.checkPositionWithEventLoop = function () {
+    setTimeout($.proxy(this.checkPosition, this), 1)
+  }
+
+  Affix.prototype.checkPosition = function () {
+    if (!this.$element.is(':visible')) return
+
+    var height       = this.$element.height()
+    var offset       = this.options.offset
+    var offsetTop    = offset.top
+    var offsetBottom = offset.bottom
+    var scrollHeight = Math.max($(document).height(), $(document.body).height())
+
+    if (typeof offset != 'object')         offsetBottom = offsetTop = offset
+    if (typeof offsetTop == 'function')    offsetTop    = offset.top(this.$element)
+    if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
+
+    var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)
+
+    if (this.affixed != affix) {
+      if (this.unpin != null) this.$element.css('top', '')
+
+      var affixType = 'affix' + (affix ? '-' + affix : '')
+      var e         = $.Event(affixType + '.bs.affix')
+
+      this.$element.trigger(e)
+
+      if (e.isDefaultPrevented()) return
+
+      this.affixed = affix
+      this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null
+
+      this.$element
+        .removeClass(Affix.RESET)
+        .addClass(affixType)
+        .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')
+    }
+
+    if (affix == 'bottom') {
+      this.$element.offset({
+        top: scrollHeight - height - offsetBottom
+      })
+    }
+  }
+
+
+  // AFFIX PLUGIN DEFINITION
+  // =======================
+
+  function Plugin(option) {
+    return this.each(function () {
+      var $this   = $(this)
+      var data    = $this.data('bs.affix')
+      var options = typeof option == 'object' && option
+
+      if (!data) $this.data('bs.affix', (data = new Affix(this, options)))
+      if (typeof option == 'string') data[option]()
+    })
+  }
+
+  var old = $.fn.affix
+
+  $.fn.affix             = Plugin
+  $.fn.affix.Constructor = Affix
+
+
+  // AFFIX NO CONFLICT
+  // =================
+
+  $.fn.affix.noConflict = function () {
+    $.fn.affix = old
+    return this
+  }
+
+
+  // AFFIX DATA-API
+  // ==============
+
+  $(window).on('load', function () {
+    $('[data-spy="affix"]').each(function () {
+      var $spy = $(this)
+      var data = $spy.data()
+
+      data.offset = data.offset || {}
+
+      if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom
+      if (data.offsetTop    != null) data.offset.top    = data.offsetTop
+
+      Plugin.call($spy, data)
+    })
+  })
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: alert.js v3.3.5
+ * http://getbootstrap.com/javascript/#alerts
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+  'use strict';
+
+  // ALERT CLASS DEFINITION
+  // ======================
+
+  var dismiss = '[data-dismiss="alert"]'
+  var Alert   = function (el) {
+    $(el).on('click', dismiss, this.close)
+  }
+
+  Alert.VERSION = '3.3.5'
+
+  Alert.TRANSITION_DURATION = 150
+
+  Alert.prototype.close = function (e) {
+    var $this    = $(this)
+    var selector = $this.attr('data-target')
+
+    if (!selector) {
+      selector = $this.attr('href')
+      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
+    }
+
+    var $parent = $(selector)
+
+    if (e) e.preventDefault()
+
+    if (!$parent.length) {
+      $parent = $this.closest('.alert')
+    }
+
+    $parent.trigger(e = $.Event('close.bs.alert'))
+
+    if (e.isDefaultPrevented()) return
+
+    $parent.removeClass('in')
+
+    function removeElement() {
+      // detach from parent, fire event then clean up data
+      $parent.detach().trigger('closed.bs.alert').remove()
+    }
+
+    $.support.transition && $parent.hasClass('fade') ?
+      $parent
+        .one('bsTransitionEnd', removeElement)
+        .emulateTransitionEnd(Alert.TRANSITION_DURATION) :
+      removeElement()
+  }
+
+
+  // ALERT PLUGIN DEFINITION
+  // =======================
+
+  function Plugin(option) {
+    return this.each(function () {
+      var $this = $(this)
+      var data  = $this.data('bs.alert')
+
+      if (!data) $this.data('bs.alert', (data = new Alert(this)))
+      if (typeof option == 'string') data[option].call($this)
+    })
+  }
+
+  var old = $.fn.alert
+
+  $.fn.alert             = Plugin
+  $.fn.alert.Constructor = Alert
+
+
+  // ALERT NO CONFLICT
+  // =================
+
+  $.fn.alert.noConflict = function () {
+    $.fn.alert = old
+    return this
+  }
+
+
+  // ALERT DATA-API
+  // ==============
+
+  $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: dropdown.js v3.3.5
+ * http://getbootstrap.com/javascript/#dropdowns
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+  'use strict';
+
+  // DROPDOWN CLASS DEFINITION
+  // =========================
+
+  var backdrop = '.dropdown-backdrop'
+  var toggle   = '[data-toggle="dropdown"]'
+  var Dropdown = function (element) {
+    $(element).on('click.bs.dropdown', this.toggle)
+  }
+
+  Dropdown.VERSION = '3.3.5'
+
+  function getParent($this) {
+    var selector = $this.attr('data-target')
+
+    if (!selector) {
+      selector = $this.attr('href')
+      selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
+    }
+
+    var $parent = selector && $(selector)
+
+    return $parent && $parent.length ? $parent : $this.parent()
+  }
+
+  function clearMenus(e) {
+    if (e && e.which === 3) return
+    $(backdrop).remove()
+    $(toggle).each(function () {
+      var $this         = $(this)
+      var $parent       = getParent($this)
+      var relatedTarget = { relatedTarget: this }
+
+      if (!$parent.hasClass('open')) return
+
+      if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return
+
+      $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
+
+      if (e.isDefaultPrevented()) return
+
+      $this.attr('aria-expanded', 'false')
+      $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
+    })
+  }
+
+  Dropdown.prototype.toggle = function (e) {
+    var $this = $(this)
+
+    if ($this.is('.disabled, :disabled')) return
+
+    var $parent  = getParent($this)
+    var isActive = $parent.hasClass('open')
+
+    clearMenus()
+
+    if (!isActive) {
+      if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
+        // if mobile we use a backdrop because click events don't delegate
+        $(document.createElement('div'))
+          .addClass('dropdown-backdrop')
+          .insertAfter($(this))
+          .on('click', clearMenus)
+      }
+
+      var relatedTarget = { relatedTarget: this }
+      $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))
+
+      if (e.isDefaultPrevented()) return
+
+      $this
+        .trigger('focus')
+        .attr('aria-expanded', 'true')
+
+      $parent
+        .toggleClass('open')
+        .trigger('shown.bs.dropdown', relatedTarget)
+    }
+
+    return false
+  }
+
+  Dropdown.prototype.keydown = function (e) {
+    if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return
+
+    var $this = $(this)
+
+    e.preventDefault()
+    e.stopPropagation()
+
+    if ($this.is('.disabled, :disabled')) return
+
+    var $parent  = getParent($this)
+    var isActive = $parent.hasClass('open')
+
+    if (!isActive && e.which != 27 || isActive && e.which == 27) {
+      if (e.which == 27) $parent.find(toggle).trigger('focus')
+      return $this.trigger('click')
+    }
+
+    var desc = ' li:not(.disabled):visible a'
+    var $items = $parent.find('.dropdown-menu' + desc)
+
+    if (!$items.length) return
+
+    var index = $items.index(e.target)
+
+    if (e.which == 38 && index > 0)                 index--         // up
+    if (e.which == 40 && index < $items.length - 1) index++         // down
+    if (!~index)                                    index = 0
+
+    $items.eq(index).trigger('focus')
+  }
+
+
+  // DROPDOWN PLUGIN DEFINITION
+  // ==========================
+
+  function Plugin(option) {
+    return this.each(function () {
+      var $this = $(this)
+      var data  = $this.data('bs.dropdown')
+
+      if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
+      if (typeof option == 'string') data[option].call($this)
+    })
+  }
+
+  var old = $.fn.dropdown
+
+  $.fn.dropdown             = Plugin
+  $.fn.dropdown.Constructor = Dropdown
+
+
+  // DROPDOWN NO CONFLICT
+  // ====================
+
+  $.fn.dropdown.noConflict = function () {
+    $.fn.dropdown = old
+    return this
+  }
+
+
+  // APPLY TO STANDARD DROPDOWN ELEMENTS
+  // ===================================
+
+  $(document)
+    .on('click.bs.dropdown.data-api', clearMenus)
+    .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
+    .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
+    .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
+    .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: tooltip.js v3.3.5
+ * http://getbootstrap.com/javascript/#tooltip
+ * Inspired by the original jQuery.tipsy by Jason Frame
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+  'use strict';
+
+  // TOOLTIP PUBLIC CLASS DEFINITION
+  // ===============================
+
+  var Tooltip = function (element, options) {
+    this.type       = null
+    this.options    = null
+    this.enabled    = null
+    this.timeout    = null
+    this.hoverState = null
+    this.$element   = null
+    this.inState    = null
+
+    this.init('tooltip', element, options)
+  }
+
+  Tooltip.VERSION  = '3.3.5'
+
+  Tooltip.TRANSITION_DURATION = 150
+
+  Tooltip.DEFAULTS = {
+    animation: true,
+    placement: 'top',
+    selector: false,
+    template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
+    trigger: 'hover focus',
+    title: '',
+    delay: 0,
+    html: false,
+    container: false,
+    viewport: {
+      selector: 'body',
+      padding: 0
+    }
+  }
+
+  Tooltip.prototype.init = function (type, element, options) {
+    this.enabled   = true
+    this.type      = type
+    this.$element  = $(element)
+    this.options   = this.getOptions(options)
+    this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))
+    this.inState   = { click: false, hover: false, focus: false }
+
+    if (this.$element[0] instanceof document.constructor && !this.options.selector) {
+      throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')
+    }
+
+    var triggers = this.options.trigger.split(' ')
+
+    for (var i = triggers.length; i--;) {
+      var trigger = triggers[i]
+
+      if (trigger == 'click') {
+        this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
+      } else if (trigger != 'manual') {
+        var eventIn  = trigger == 'hover' ? 'mouseenter' : 'focusin'
+        var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'
+
+        this.$element.on(eventIn  + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
+        this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
+      }
+    }
+
+    this.options.selector ?
+      (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
+      this.fixTitle()
+  }
+
+  Tooltip.prototype.getDefaults = function () {
+    return Tooltip.DEFAULTS
+  }
+
+  Tooltip.prototype.getOptions = function (options) {
+    options = $.extend({}, this.getDefaults(), this.$element.data(), options)
+
+    if (options.delay && typeof options.delay == 'number') {
+      options.delay = {
+        show: options.delay,
+        hide: options.delay
+      }
+    }
+
+    return options
+  }
+
+  Tooltip.prototype.getDelegateOptions = function () {
+    var options  = {}
+    var defaults = this.getDefaults()
+
+    this._options && $.each(this._options, function (key, value) {
+      if (defaults[key] != value) options[key] = value
+    })
+
+    return options
+  }
+
+  Tooltip.prototype.enter = function (obj) {
+    var self = obj instanceof this.constructor ?
+      obj : $(obj.currentTarget).data('bs.' + this.type)
+
+    if (!self) {
+      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
+      $(obj.currentTarget).data('bs.' + this.type, self)
+    }
+
+    if (obj instanceof $.Event) {
+      self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true
+    }
+
+    if (self.tip().hasClass('in') || self.hoverState == 'in') {
+      self.hoverState = 'in'
+      return
+    }
+
+    clearTimeout(self.timeout)
+
+    self.hoverState = 'in'
+
+    if (!self.options.delay || !self.options.delay.show) return self.show()
+
+    self.timeout = setTimeout(function () {
+      if (self.hoverState == 'in') self.show()
+    }, self.options.delay.show)
+  }
+
+  Tooltip.prototype.isInStateTrue = function () {
+    for (var key in this.inState) {
+      if (this.inState[key]) return true
+    }
+
+    return false
+  }
+
+  Tooltip.prototype.leave = function (obj) {
+    var self = obj instanceof this.constructor ?
+      obj : $(obj.currentTarget).data('bs.' + this.type)
+
+    if (!self) {
+      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
+      $(obj.currentTarget).data('bs.' + this.type, self)
+    }
+
+    if (obj instanceof $.Event) {
+      self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false
+    }
+
+    if (self.isInStateTrue()) return
+
+    clearTimeout(self.timeout)
+
+    self.hoverState = 'out'
+
+    if (!self.options.delay || !self.options.delay.hide) return self.hide()
+
+    self.timeout = setTimeout(function () {
+      if (self.hoverState == 'out') self.hide()
+    }, self.options.delay.hide)
+  }
+
+  Tooltip.prototype.show = function () {
+    var e = $.Event('show.bs.' + this.type)
+
+    if (this.hasContent() && this.enabled) {
+      this.$element.trigger(e)
+
+      var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])
+      if (e.isDefaultPrevented() || !inDom) return
+      var that = this
+
+      var $tip = this.tip()
+
+      var tipId = this.getUID(this.type)
+
+      this.setContent()
+      $tip.attr('id', tipId)
+      this.$element.attr('aria-describedby', tipId)
+
+      if (this.options.animation) $tip.addClass('fade')
+
+      var placement = typeof this.options.placement == 'function' ?
+        this.options.placement.call(this, $tip[0], this.$element[0]) :
+        this.options.placement
+
+      var autoToken = /\s?auto?\s?/i
+      var autoPlace = autoToken.test(placement)
+      if (autoPlace) placement = placement.replace(autoToken, '') || 'top'
+
+      $tip
+        .detach()
+        .css({ top: 0, left: 0, display: 'block' })
+        .addClass(placement)
+        .data('bs.' + this.type, this)
+
+      this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
+      this.$element.trigger('inserted.bs.' + this.type)
+
+      var pos          = this.getPosition()
+      var actualWidth  = $tip[0].offsetWidth
+      var actualHeight = $tip[0].offsetHeight
+
+      if (autoPlace) {
+        var orgPlacement = placement
+        var viewportDim = this.getPosition(this.$viewport)
+
+        placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top'    :
+                    placement == 'top'    && pos.top    - actualHeight < viewportDim.top    ? 'bottom' :
+                    placement == 'right'  && pos.right  + actualWidth  > viewportDim.width  ? 'left'   :
+                    placement == 'left'   && pos.left   - actualWidth  < viewportDim.left   ? 'right'  :
+                    placement
+
+        $tip
+          .removeClass(orgPlacement)
+          .addClass(placement)
+      }
+
+      var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
+
+      this.applyPlacement(calculatedOffset, placement)
+
+      var complete = function () {
+        var prevHoverState = that.hoverState
+        that.$element.trigger('shown.bs.' + that.type)
+        that.hoverState = null
+
+        if (prevHoverState == 'out') that.leave(that)
+      }
+
+      $.support.transition && this.$tip.hasClass('fade') ?
+        $tip
+          .one('bsTransitionEnd', complete)
+          .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
+        complete()
+    }
+  }
+
+  Tooltip.prototype.applyPlacement = function (offset, placement) {
+    var $tip   = this.tip()
+    var width  = $tip[0].offsetWidth
+    var height = $tip[0].offsetHeight
+
+    // manually read margins because getBoundingClientRect includes difference
+    var marginTop = parseInt($tip.css('margin-top'), 10)
+    var marginLeft = parseInt($tip.css('margin-left'), 10)
+
+    // we must check for NaN for ie 8/9
+    if (isNaN(marginTop))  marginTop  = 0
+    if (isNaN(marginLeft)) marginLeft = 0
+
+    offset.top  += marginTop
+    offset.left += marginLeft
+
+    // $.fn.offset doesn't round pixel values
+    // so we use setOffset directly with our own function B-0
+    $.offset.setOffset($tip[0], $.extend({
+      using: function (props) {
+        $tip.css({
+          top: Math.round(props.top),
+          left: Math.round(props.left)
+        })
+      }
+    }, offset), 0)
+
+    $tip.addClass('in')
+
+    // check to see if placing tip in new offset caused the tip to resize itself
+    var actualWidth  = $tip[0].offsetWidth
+    var actualHeight = $tip[0].offsetHeight
+
+    if (placement == 'top' && actualHeight != height) {
+      offset.top = offset.top + height - actualHeight
+    }
+
+    var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)
+
+    if (delta.left) offset.left += delta.left
+    else offset.top += delta.top
+
+    var isVertical          = /top|bottom/.test(placement)
+    var arrowDelta          = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight
+    var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'
+
+    $tip.offset(offset)
+    this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)
+  }
+
+  Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {
+    this.arrow()
+      .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
+      .css(isVertical ? 'top' : 'left', '')
+  }
+
+  Tooltip.prototype.setContent = function () {
+    var $tip  = this.tip()
+    var title = this.getTitle()
+
+    $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
+    $tip.removeClass('fade in top bottom left right')
+  }
+
+  Tooltip.prototype.hide = function (callback) {
+    var that = this
+    var $tip = $(this.$tip)
+    var e    = $.Event('hide.bs.' + this.type)
+
+    function complete() {
+      if (that.hoverState != 'in') $tip.detach()
+      that.$element
+        .removeAttr('aria-describedby')
+        .trigger('hidden.bs.' + that.type)
+      callback && callback()
+    }
+
+    this.$element.trigger(e)
+
+    if (e.isDefaultPrevented()) return
+
+    $tip.removeClass('in')
+
+    $.support.transition && $tip.hasClass('fade') ?
+      $tip
+        .one('bsTransitionEnd', complete)
+        .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
+      complete()
+
+    this.hoverState = null
+
+    return this
+  }
+
+  Tooltip.prototype.fixTitle = function () {
+    var $e = this.$element
+    if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {
+      $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
+    }
+  }
+
+  Tooltip.prototype.hasContent = function () {
+    return this.getTitle()
+  }
+
+  Tooltip.prototype.getPosition = function ($element) {
+    $element   = $element || this.$element
+
+    var el     = $element[0]
+    var isBody = el.tagName == 'BODY'
+
+    var elRect    = el.getBoundingClientRect()
+    if (elRect.width == null) {
+      // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093
+      elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })
+    }
+    var elOffset  = isBody ? { top: 0, left: 0 } : $element.offset()
+    var scroll    = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }
+    var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null
+
+    return $.extend({}, elRect, scroll, outerDims, elOffset)
+  }
+
+  Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
+    return placement == 'bottom' ? { top: pos.top + pos.height,   left: pos.left + pos.width / 2 - actualWidth / 2 } :
+           placement == 'top'    ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
+           placement == 'left'   ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
+        /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
+
+  }
+
+  Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {
+    var delta = { top: 0, left: 0 }
+    if (!this.$viewport) return delta
+
+    var viewportPadding = this.options.viewport && this.options.viewport.padding || 0
+    var viewportDimensions = this.getPosition(this.$viewport)
+
+    if (/right|left/.test(placement)) {
+      var topEdgeOffset    = pos.top - viewportPadding - viewportDimensions.scroll
+      var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight
+      if (topEdgeOffset < viewportDimensions.top) { // top overflow
+        delta.top = viewportDimensions.top - topEdgeOffset
+      } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow
+        delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset
+      }
+    } else {
+      var leftEdgeOffset  = pos.left - viewportPadding
+      var rightEdgeOffset = pos.left + viewportPadding + actualWidth
+      if (leftEdgeOffset < viewportDimensions.left) { // left overflow
+        delta.left = viewportDimensions.left - leftEdgeOffset
+      } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow
+        delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
+      }
+    }
+
+    return delta
+  }
+
+  Tooltip.prototype.getTitle = function () {
+    var title
+    var $e = this.$element
+    var o  = this.options
+
+    title = $e.attr('data-original-title')
+      || (typeof o.title == 'function' ? o.title.call($e[0]) :  o.title)
+
+    return title
+  }
+
+  Tooltip.prototype.getUID = function (prefix) {
+    do prefix += ~~(Math.random() * 1000000)
+    while (document.getElementById(prefix))
+    return prefix
+  }
+
+  Tooltip.prototype.tip = function () {
+    if (!this.$tip) {
+      this.$tip = $(this.options.template)
+      if (this.$tip.length != 1) {
+        throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')
+      }
+    }
+    return this.$tip
+  }
+
+  Tooltip.prototype.arrow = function () {
+    return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
+  }
+
+  Tooltip.prototype.enable = function () {
+    this.enabled = true
+  }
+
+  Tooltip.prototype.disable = function () {
+    this.enabled = false
+  }
+
+  Tooltip.prototype.toggleEnabled = function () {
+    this.enabled = !this.enabled
+  }
+
+  Tooltip.prototype.toggle = function (e) {
+    var self = this
+    if (e) {
+      self = $(e.currentTarget).data('bs.' + this.type)
+      if (!self) {
+        self = new this.constructor(e.currentTarget, this.getDelegateOptions())
+        $(e.currentTarget).data('bs.' + this.type, self)
+      }
+    }
+
+    if (e) {
+      self.inState.click = !self.inState.click
+      if (self.isInStateTrue()) self.enter(self)
+      else self.leave(self)
+    } else {
+      self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
+    }
+  }
+
+  Tooltip.prototype.destroy = function () {
+    var that = this
+    clearTimeout(this.timeout)
+    this.hide(function () {
+      that.$element.off('.' + that.type).removeData('bs.' + that.type)
+      if (that.$tip) {
+        that.$tip.detach()
+      }
+      that.$tip = null
+      that.$arrow = null
+      that.$viewport = null
+    })
+  }
+
+
+  // TOOLTIP PLUGIN DEFINITION
+  // =========================
+
+  function Plugin(option) {
+    return this.each(function () {
+      var $this   = $(this)
+      var data    = $this.data('bs.tooltip')
+      var options = typeof option == 'object' && option
+
+      if (!data && /destroy|hide/.test(option)) return
+      if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
+      if (typeof option == 'string') data[option]()
+    })
+  }
+
+  var old = $.fn.tooltip
+
+  $.fn.tooltip             = Plugin
+  $.fn.tooltip.Constructor = Tooltip
+
+
+  // TOOLTIP NO CONFLICT
+  // ===================
+
+  $.fn.tooltip.noConflict = function () {
+    $.fn.tooltip = old
+    return this
+  }
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: modal.js v3.3.5
+ * http://getbootstrap.com/javascript/#modals
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+  'use strict';
+
+  // MODAL CLASS DEFINITION
+  // ======================
+
+  var Modal = function (element, options) {
+    this.options             = options
+    this.$body               = $(document.body)
+    this.$element            = $(element)
+    this.$dialog             = this.$element.find('.modal-dialog')
+    this.$backdrop           = null
+    this.isShown             = null
+    this.originalBodyPad     = null
+    this.scrollbarWidth      = 0
+    this.ignoreBackdropClick = false
+
+    if (this.options.remote) {
+      this.$element
+        .find('.modal-content')
+        .load(this.options.remote, $.proxy(function () {
+          this.$element.trigger('loaded.bs.modal')
+        }, this))
+    }
+  }
+
+  Modal.VERSION  = '3.3.5'
+
+  Modal.TRANSITION_DURATION = 300
+  Modal.BACKDROP_TRANSITION_DURATION = 150
+
+  Modal.DEFAULTS = {
+    backdrop: true,
+    keyboard: true,
+    show: true
+  }
+
+  Modal.prototype.toggle = function (_relatedTarget) {
+    return this.isShown ? this.hide() : this.show(_relatedTarget)
+  }
+
+  Modal.prototype.show = function (_relatedTarget) {
+    var that = this
+    var e    = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
+
+    this.$element.trigger(e)
+
+    if (this.isShown || e.isDefaultPrevented()) return
+
+    this.isShown = true
+
+    this.checkScrollbar()
+    this.setScrollbar()
+    this.$body.addClass('modal-open')
+
+    this.escape()
+    this.resize()
+
+    this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
+
+    this.$dialog.on('mousedown.dismiss.bs.modal', function () {
+      that.$element.one('mouseup.dismiss.bs.modal', function (e) {
+        if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true
+      })
+    })
+
+    this.backdrop(function () {
+      var transition = $.support.transition && that.$element.hasClass('fade')
+
+      if (!that.$element.parent().length) {
+        that.$element.appendTo(that.$body) // don't move modals dom position
+      }
+
+      that.$element
+        .show()
+        .scrollTop(0)
+
+      that.adjustDialog()
+
+      if (transition) {
+        that.$element[0].offsetWidth // force reflow
+      }
+
+      that.$element.addClass('in')
+
+      that.enforceFocus()
+
+      var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
+
+      transition ?
+        that.$dialog // wait for modal to slide in
+          .one('bsTransitionEnd', function () {
+            that.$element.trigger('focus').trigger(e)
+          })
+          .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
+        that.$element.trigger('focus').trigger(e)
+    })
+  }
+
+  Modal.prototype.hide = function (e) {
+    if (e) e.preventDefault()
+
+    e = $.Event('hide.bs.modal')
+
+    this.$element.trigger(e)
+
+    if (!this.isShown || e.isDefaultPrevented()) return
+
+    this.isShown = false
+
+    this.escape()
+    this.resize()
+
+    $(document).off('focusin.bs.modal')
+
+    this.$element
+      .removeClass('in')
+      .off('click.dismiss.bs.modal')
+      .off('mouseup.dismiss.bs.modal')
+
+    this.$dialog.off('mousedown.dismiss.bs.modal')
+
+    $.support.transition && this.$element.hasClass('fade') ?
+      this.$element
+        .one('bsTransitionEnd', $.proxy(this.hideModal, this))
+        .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
+      this.hideModal()
+  }
+
+  Modal.prototype.enforceFocus = function () {
+    $(document)
+      .off('focusin.bs.modal') // guard against infinite focus loop
+      .on('focusin.bs.modal', $.proxy(function (e) {
+        if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
+          this.$element.trigger('focus')
+        }
+      }, this))
+  }
+
+  Modal.prototype.escape = function () {
+    if (this.isShown && this.options.keyboard) {
+      this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {
+        e.which == 27 && this.hide()
+      }, this))
+    } else if (!this.isShown) {
+      this.$element.off('keydown.dismiss.bs.modal')
+    }
+  }
+
+  Modal.prototype.resize = function () {
+    if (this.isShown) {
+      $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))
+    } else {
+      $(window).off('resize.bs.modal')
+    }
+  }
+
+  Modal.prototype.hideModal = function () {
+    var that = this
+    this.$element.hide()
+    this.backdrop(function () {
+      that.$body.removeClass('modal-open')
+      that.resetAdjustments()
+      that.resetScrollbar()
+      that.$element.trigger('hidden.bs.modal')
+    })
+  }
+
+  Modal.prototype.removeBackdrop = function () {
+    this.$backdrop && this.$backdrop.remove()
+    this.$backdrop = null
+  }
+
+  Modal.prototype.backdrop = function (callback) {
+    var that = this
+    var animate = this.$element.hasClass('fade') ? 'fade' : ''
+
+    if (this.isShown && this.options.backdrop) {
+      var doAnimate = $.support.transition && animate
+
+      this.$backdrop = $(document.createElement('div'))
+        .addClass('modal-backdrop ' + animate)
+        .appendTo(this.$body)
+
+      this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
+        if (this.ignoreBackdropClick) {
+          this.ignoreBackdropClick = false
+          return
+        }
+        if (e.target !== e.currentTarget) return
+        this.options.backdrop == 'static'
+          ? this.$element[0].focus()
+          : this.hide()
+      }, this))
+
+      if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
+
+      this.$backdrop.addClass('in')
+
+      if (!callback) return
+
+      doAnimate ?
+        this.$backdrop
+          .one('bsTransitionEnd', callback)
+          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
+        callback()
+
+    } else if (!this.isShown && this.$backdrop) {
+      this.$backdrop.removeClass('in')
+
+      var callbackRemove = function () {
+        that.removeBackdrop()
+        callback && callback()
+      }
+      $.support.transition && this.$element.hasClass('fade') ?
+        this.$backdrop
+          .one('bsTransitionEnd', callbackRemove)
+          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
+        callbackRemove()
+
+    } else if (callback) {
+      callback()
+    }
+  }
+
+  // these following methods are used to handle overflowing modals
+
+  Modal.prototype.handleUpdate = function () {
+    this.adjustDialog()
+  }
+
+  Modal.prototype.adjustDialog = function () {
+    var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight
+
+    this.$element.css({
+      paddingLeft:  !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',
+      paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''
+    })
+  }
+
+  Modal.prototype.resetAdjustments = function () {
+    this.$element.css({
+      paddingLeft: '',
+      paddingRight: ''
+    })
+  }
+
+  Modal.prototype.checkScrollbar = function () {
+    var fullWindowWidth = window.innerWidth
+    if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8
+      var documentElementRect = document.documentElement.getBoundingClientRect()
+      fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)
+    }
+    this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth
+    this.scrollbarWidth = this.measureScrollbar()
+  }
+
+  Modal.prototype.setScrollbar = function () {
+    var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
+    this.originalBodyPad = document.body.style.paddingRight || ''
+    if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
+  }
+
+  Modal.prototype.resetScrollbar = function () {
+    this.$body.css('padding-right', this.originalBodyPad)
+  }
+
+  Modal.prototype.measureScrollbar = function () { // thx walsh
+    var scrollDiv = document.createElement('div')
+    scrollDiv.className = 'modal-scrollbar-measure'
+    this.$body.append(scrollDiv)
+    var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
+    this.$body[0].removeChild(scrollDiv)
+    return scrollbarWidth
+  }
+
+
+  // MODAL PLUGIN DEFINITION
+  // =======================
+
+  function Plugin(option, _relatedTarget) {
+    return this.each(function () {
+      var $this   = $(this)
+      var data    = $this.data('bs.modal')
+      var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
+
+      if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
+      if (typeof option == 'string') data[option](_relatedTarget)
+      else if (options.show) data.show(_relatedTarget)
+    })
+  }
+
+  var old = $.fn.modal
+
+  $.fn.modal             = Plugin
+  $.fn.modal.Constructor = Modal
+
+
+  // MODAL NO CONFLICT
+  // =================
+
+  $.fn.modal.noConflict = function () {
+    $.fn.modal = old
+    return this
+  }
+
+
+  // MODAL DATA-API
+  // ==============
+
+  $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
+    var $this   = $(this)
+    var href    = $this.attr('href')
+    var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7
+    var option  = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
+
+    if ($this.is('a')) e.preventDefault()
+
+    $target.one('show.bs.modal', function (showEvent) {
+      if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
+      $target.one('hidden.bs.modal', function () {
+        $this.is(':visible') && $this.trigger('focus')
+      })
+    })
+    Plugin.call($target, option, this)
+  })
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: transition.js v3.3.5
+ * http://getbootstrap.com/javascript/#transitions
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+  'use strict';
+
+  // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
+  // ============================================================
+
+  function transitionEnd() {
+    var el = document.createElement('bootstrap')
+
+    var transEndEventNames = {
+      WebkitTransition : 'webkitTransitionEnd',
+      MozTransition    : 'transitionend',
+      OTransition      : 'oTransitionEnd otransitionend',
+      transition       : 'transitionend'
+    }
+
+    for (var name in transEndEventNames) {
+      if (el.style[name] !== undefined) {
+        return { end: transEndEventNames[name] }
+      }
+    }
+
+    return false // explicit for ie8 (  ._.)
+  }
+
+  // http://blog.alexmaccaw.com/css-transitions
+  $.fn.emulateTransitionEnd = function (duration) {
+    var called = false
+    var $el = this
+    $(this).one('bsTransitionEnd', function () { called = true })
+    var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
+    setTimeout(callback, duration)
+    return this
+  }
+
+  $(function () {
+    $.support.transition = transitionEnd()
+
+    if (!$.support.transition) return
+
+    $.event.special.bsTransitionEnd = {
+      bindType: $.support.transition.end,
+      delegateType: $.support.transition.end,
+      handle: function (e) {
+        if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
+      }
+    }
+  })
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: button.js v3.3.5
+ * http://getbootstrap.com/javascript/#buttons
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+  'use strict';
+
+  // BUTTON PUBLIC CLASS DEFINITION
+  // ==============================
+
+  var Button = function (element, options) {
+    this.$element  = $(element)
+    this.options   = $.extend({}, Button.DEFAULTS, options)
+    this.isLoading = false
+  }
+
+  Button.VERSION  = '3.3.5'
+
+  Button.DEFAULTS = {
+    loadingText: 'loading...'
+  }
+
+  Button.prototype.setState = function (state) {
+    var d    = 'disabled'
+    var $el  = this.$element
+    var val  = $el.is('input') ? 'val' : 'html'
+    var data = $el.data()
+
+    state += 'Text'
+
+    if (data.resetText == null) $el.data('resetText', $el[val]())
+
+    // push to event loop to allow forms to submit
+    setTimeout($.proxy(function () {
+      $el[val](data[state] == null ? this.options[state] : data[state])
+
+      if (state == 'loadingText') {
+        this.isLoading = true
+        $el.addClass(d).attr(d, d)
+      } else if (this.isLoading) {
+        this.isLoading = false
+        $el.removeClass(d).removeAttr(d)
+      }
+    }, this), 0)
+  }
+
+  Button.prototype.toggle = function () {
+    var changed = true
+    var $parent = this.$element.closest('[data-toggle="buttons"]')
+
+    if ($parent.length) {
+      var $input = this.$element.find('input')
+      if ($input.prop('type') == 'radio') {
+        if ($input.prop('checked')) changed = false
+        $parent.find('.active').removeClass('active')
+        this.$element.addClass('active')
+      } else if ($input.prop('type') == 'checkbox') {
+        if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false
+        this.$element.toggleClass('active')
+      }
+      $input.prop('checked', this.$element.hasClass('active'))
+      if (changed) $input.trigger('change')
+    } else {
+      this.$element.attr('aria-pressed', !this.$element.hasClass('active'))
+      this.$element.toggleClass('active')
+    }
+  }
+
+
+  // BUTTON PLUGIN DEFINITION
+  // ========================
+
+  function Plugin(option) {
+    return this.each(function () {
+      var $this   = $(this)
+      var data    = $this.data('bs.button')
+      var options = typeof option == 'object' && option
+
+      if (!data) $this.data('bs.button', (data = new Button(this, options)))
+
+      if (option == 'toggle') data.toggle()
+      else if (option) data.setState(option)
+    })
+  }
+
+  var old = $.fn.button
+
+  $.fn.button             = Plugin
+  $.fn.button.Constructor = Button
+
+
+  // BUTTON NO CONFLICT
+  // ==================
+
+  $.fn.button.noConflict = function () {
+    $.fn.button = old
+    return this
+  }
+
+
+  // BUTTON DATA-API
+  // ===============
+
+  $(document)
+    .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
+      var $btn = $(e.target)
+      if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
+      Plugin.call($btn, 'toggle')
+      if (!($(e.target).is('input[type="radio"]') || $(e.target).is('input[type="checkbox"]'))) e.preventDefault()
+    })
+    .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
+      $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
+    })
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: popover.js v3.3.5
+ * http://getbootstrap.com/javascript/#popovers
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+  'use strict';
+
+  // POPOVER PUBLIC CLASS DEFINITION
+  // ===============================
+
+  var Popover = function (element, options) {
+    this.init('popover', element, options)
+  }
+
+  if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
+
+  Popover.VERSION  = '3.3.5'
+
+  Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
+    placement: 'right',
+    trigger: 'click',
+    content: '',
+    template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
+  })
+
+
+  // NOTE: POPOVER EXTENDS tooltip.js
+  // ================================
+
+  Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)
+
+  Popover.prototype.constructor = Popover
+
+  Popover.prototype.getDefaults = function () {
+    return Popover.DEFAULTS
+  }
+
+  Popover.prototype.setContent = function () {
+    var $tip    = this.tip()
+    var title   = this.getTitle()
+    var content = this.getContent()
+
+    $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
+    $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events
+      this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
+    ](content)
+
+    $tip.removeClass('fade top bottom left right in')
+
+    // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
+    // this manually by checking the contents.
+    if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()
+  }
+
+  Popover.prototype.hasContent = function () {
+    return this.getTitle() || this.getContent()
+  }
+
+  Popover.prototype.getContent = function () {
+    var $e = this.$element
+    var o  = this.options
+
+    return $e.attr('data-content')
+      || (typeof o.content == 'function' ?
+            o.content.call($e[0]) :
+            o.content)
+  }
+
+  Popover.prototype.arrow = function () {
+    return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
+  }
+
+
+  // POPOVER PLUGIN DEFINITION
+  // =========================
+
+  function Plugin(option) {
+    return this.each(function () {
+      var $this   = $(this)
+      var data    = $this.data('bs.popover')
+      var options = typeof option == 'object' && option
+
+      if (!data && /destroy|hide/.test(option)) return
+      if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
+      if (typeof option == 'string') data[option]()
+    })
+  }
+
+  var old = $.fn.popover
+
+  $.fn.popover             = Plugin
+  $.fn.popover.Constructor = Popover
+
+
+  // POPOVER NO CONFLICT
+  // ===================
+
+  $.fn.popover.noConflict = function () {
+    $.fn.popover = old
+    return this
+  }
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: carousel.js v3.3.5
+ * http://getbootstrap.com/javascript/#carousel
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+  'use strict';
+
+  // CAROUSEL CLASS DEFINITION
+  // =========================
+
+  var Carousel = function (element, options) {
+    this.$element    = $(element)
+    this.$indicators = this.$element.find('.carousel-indicators')
+    this.options     = options
+    this.paused      = null
+    this.sliding     = null
+    this.interval    = null
+    this.$active     = null
+    this.$items      = null
+
+    this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))
+
+    this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element
+      .on('mouseenter.bs.carousel', $.proxy(this.pause, this))
+      .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
+  }
+
+  Carousel.VERSION  = '3.3.5'
+
+  Carousel.TRANSITION_DURATION = 600
+
+  Carousel.DEFAULTS = {
+    interval: 5000,
+    pause: 'hover',
+    wrap: true,
+    keyboard: true
+  }
+
+  Carousel.prototype.keydown = function (e) {
+    if (/input|textarea/i.test(e.target.tagName)) return
+    switch (e.which) {
+      case 37: this.prev(); break
+      case 39: this.next(); break
+      default: return
+    }
+
+    e.preventDefault()
+  }
+
+  Carousel.prototype.cycle = function (e) {
+    e || (this.paused = false)
+
+    this.interval && clearInterval(this.interval)
+
+    this.options.interval
+      && !this.paused
+      && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
+
+    return this
+  }
+
+  Carousel.prototype.getItemIndex = function (item) {
+    this.$items = item.parent().children('.item')
+    return this.$items.index(item || this.$active)
+  }
+
+  Carousel.prototype.getItemForDirection = function (direction, active) {
+    var activeIndex = this.getItemIndex(active)
+    var willWrap = (direction == 'prev' && activeIndex === 0)
+                || (direction == 'next' && activeIndex == (this.$items.length - 1))
+    if (willWrap && !this.options.wrap) return active
+    var delta = direction == 'prev' ? -1 : 1
+    var itemIndex = (activeIndex + delta) % this.$items.length
+    return this.$items.eq(itemIndex)
+  }
+
+  Carousel.prototype.to = function (pos) {
+    var that        = this
+    var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))
+
+    if (pos > (this.$items.length - 1) || pos < 0) return
+
+    if (this.sliding)       return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid"
+    if (activeIndex == pos) return this.pause().cycle()
+
+    return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))
+  }
+
+  Carousel.prototype.pause = function (e) {
+    e || (this.paused = true)
+
+    if (this.$element.find('.next, .prev').length && $.support.transition) {
+      this.$element.trigger($.support.transition.end)
+      this.cycle(true)
+    }
+
+    this.interval = clearInterval(this.interval)
+
+    return this
+  }
+
+  Carousel.prototype.next = function () {
+    if (this.sliding) return
+    return this.slide('next')
+  }
+
+  Carousel.prototype.prev = function () {
+    if (this.sliding) return
+    return this.slide('prev')
+  }
+
+  Carousel.prototype.slide = function (type, next) {
+    var $active   = this.$element.find('.item.active')
+    var $next     = next || this.getItemForDirection(type, $active)
+    var isCycling = this.interval
+    var direction = type == 'next' ? 'left' : 'right'
+    var that      = this
+
+    if ($next.hasClass('active')) return (this.sliding = false)
+
+    var relatedTarget = $next[0]
+    var slideEvent = $.Event('slide.bs.carousel', {
+      relatedTarget: relatedTarget,
+      direction: direction
+    })
+    this.$element.trigger(slideEvent)
+    if (slideEvent.isDefaultPrevented()) return
+
+    this.sliding = true
+
+    isCycling && this.pause()
+
+    if (this.$indicators.length) {
+      this.$indicators.find('.active').removeClass('active')
+      var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])
+      $nextIndicator && $nextIndicator.addClass('active')
+    }
+
+    var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"
+    if ($.support.transition && this.$element.hasClass('slide')) {
+      $next.addClass(type)
+      $next[0].offsetWidth // force reflow
+      $active.addClass(direction)
+      $next.addClass(direction)
+      $active
+        .one('bsTransitionEnd', function () {
+          $next.removeClass([type, direction].join(' ')).addClass('active')
+          $active.removeClass(['active', direction].join(' '))
+          that.sliding = false
+          setTimeout(function () {
+            that.$element.trigger(slidEvent)
+          }, 0)
+        })
+        .emulateTransitionEnd(Carousel.TRANSITION_DURATION)
+    } else {
+      $active.removeClass('active')
+      $next.addClass('active')
+      this.sliding = false
+      this.$element.trigger(slidEvent)
+    }
+
+    isCycling && this.cycle()
+
+    return this
+  }
+
+
+  // CAROUSEL PLUGIN DEFINITION
+  // ==========================
+
+  function Plugin(option) {
+    return this.each(function () {
+      var $this   = $(this)
+      var data    = $this.data('bs.carousel')
+      var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)
+      var action  = typeof option == 'string' ? option : options.slide
+
+      if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))
+      if (typeof option == 'number') data.to(option)
+      else if (action) data[action]()
+      else if (options.interval) data.pause().cycle()
+    })
+  }
+
+  var old = $.fn.carousel
+
+  $.fn.carousel             = Plugin
+  $.fn.carousel.Constructor = Carousel
+
+
+  // CAROUSEL NO CONFLICT
+  // ====================
+
+  $.fn.carousel.noConflict = function () {
+    $.fn.carousel = old
+    return this
+  }
+
+
+  // CAROUSEL DATA-API
+  // =================
+
+  var clickHandler = function (e) {
+    var href
+    var $this   = $(this)
+    var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
+    if (!$target.hasClass('carousel')) return
+    var options = $.extend({}, $target.data(), $this.data())
+    var slideIndex = $this.attr('data-slide-to')
+    if (slideIndex) options.interval = false
+
+    Plugin.call($target, options)
+
+    if (slideIndex) {
+      $target.data('bs.carousel').to(slideIndex)
+    }
+
+    e.preventDefault()
+  }
+
+  $(document)
+    .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)
+    .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)
+
+  $(window).on('load', function () {
+    $('[data-ride="carousel"]').each(function () {
+      var $carousel = $(this)
+      Plugin.call($carousel, $carousel.data())
+    })
+  })
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: scrollspy.js v3.3.5
+ * http://getbootstrap.com/javascript/#scrollspy
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+  'use strict';
+
+  // SCROLLSPY CLASS DEFINITION
+  // ==========================
+
+  function ScrollSpy(element, options) {
+    this.$body          = $(document.body)
+    this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)
+    this.options        = $.extend({}, ScrollSpy.DEFAULTS, options)
+    this.selector       = (this.options.target || '') + ' .nav li > a'
+    this.offsets        = []
+    this.targets        = []
+    this.activeTarget   = null
+    this.scrollHeight   = 0
+
+    this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))
+    this.refresh()
+    this.process()
+  }
+
+  ScrollSpy.VERSION  = '3.3.5'
+
+  ScrollSpy.DEFAULTS = {
+    offset: 10
+  }
+
+  ScrollSpy.prototype.getScrollHeight = function () {
+    return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
+  }
+
+  ScrollSpy.prototype.refresh = function () {
+    var that          = this
+    var offsetMethod  = 'offset'
+    var offsetBase    = 0
+
+    this.offsets      = []
+    this.targets      = []
+    this.scrollHeight = this.getScrollHeight()
+
+    if (!$.isWindow(this.$scrollElement[0])) {
+      offsetMethod = 'position'
+      offsetBase   = this.$scrollElement.scrollTop()
+    }
+
+    this.$body
+      .find(this.selector)
+      .map(function () {
+        var $el   = $(this)
+        var href  = $el.data('target') || $el.attr('href')
+        var $href = /^#./.test(href) && $(href)
+
+        return ($href
+          && $href.length
+          && $href.is(':visible')
+          && [[$href[offsetMethod]().top + offsetBase, href]]) || null
+      })
+      .sort(function (a, b) { return a[0] - b[0] })
+      .each(function () {
+        that.offsets.push(this[0])
+        that.targets.push(this[1])
+      })
+  }
+
+  ScrollSpy.prototype.process = function () {
+    var scrollTop    = this.$scrollElement.scrollTop() + this.options.offset
+    var scrollHeight = this.getScrollHeight()
+    var maxScroll    = this.options.offset + scrollHeight - this.$scrollElement.height()
+    var offsets      = this.offsets
+    var targets      = this.targets
+    var activeTarget = this.activeTarget
+    var i
+
+    if (this.scrollHeight != scrollHeight) {
+      this.refresh()
+    }
+
+    if (scrollTop >= maxScroll) {
+      return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)
+    }
+
+    if (activeTarget && scrollTop < offsets[0]) {
+      this.activeTarget = null
+      return this.clear()
+    }
+
+    for (i = offsets.length; i--;) {
+      activeTarget != targets[i]
+        && scrollTop >= offsets[i]
+        && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])
+        && this.activate(targets[i])
+    }
+  }
+
+  ScrollSpy.prototype.activate = function (target) {
+    this.activeTarget = target
+
+    this.clear()
+
+    var selector = this.selector +
+      '[data-target="' + target + '"],' +
+      this.selector + '[href="' + target + '"]'
+
+    var active = $(selector)
+      .parents('li')
+      .addClass('active')
+
+    if (active.parent('.dropdown-menu').length) {
+      active = active
+        .closest('li.dropdown')
+        .addClass('active')
+    }
+
+    active.trigger('activate.bs.scrollspy')
+  }
+
+  ScrollSpy.prototype.clear = function () {
+    $(this.selector)
+      .parentsUntil(this.options.target, '.active')
+      .removeClass('active')
+  }
+
+
+  // SCROLLSPY PLUGIN DEFINITION
+  // ===========================
+
+  function Plugin(option) {
+    return this.each(function () {
+      var $this   = $(this)
+      var data    = $this.data('bs.scrollspy')
+      var options = typeof option == 'object' && option
+
+      if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))
+      if (typeof option == 'string') data[option]()
+    })
+  }
+
+  var old = $.fn.scrollspy
+
+  $.fn.scrollspy             = Plugin
+  $.fn.scrollspy.Constructor = ScrollSpy
+
+
+  // SCROLLSPY NO CONFLICT
+  // =====================
+
+  $.fn.scrollspy.noConflict = function () {
+    $.fn.scrollspy = old
+    return this
+  }
+
+
+  // SCROLLSPY DATA-API
+  // ==================
+
+  $(window).on('load.bs.scrollspy.data-api', function () {
+    $('[data-spy="scroll"]').each(function () {
+      var $spy = $(this)
+      Plugin.call($spy, $spy.data())
+    })
+  })
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: collapse.js v3.3.5
+ * http://getbootstrap.com/javascript/#collapse
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+  'use strict';
+
+  // COLLAPSE PUBLIC CLASS DEFINITION
+  // ================================
+
+  var Collapse = function (element, options) {
+    this.$element      = $(element)
+    this.options       = $.extend({}, Collapse.DEFAULTS, options)
+    this.$trigger      = $('[data-toggle="collapse"][href="#' + element.id + '"],' +
+                           '[data-toggle="collapse"][data-target="#' + element.id + '"]')
+    this.transitioning = null
+
+    if (this.options.parent) {
+      this.$parent = this.getParent()
+    } else {
+      this.addAriaAndCollapsedClass(this.$element, this.$trigger)
+    }
+
+    if (this.options.toggle) this.toggle()
+  }
+
+  Collapse.VERSION  = '3.3.5'
+
+  Collapse.TRANSITION_DURATION = 350
+
+  Collapse.DEFAULTS = {
+    toggle: true
+  }
+
+  Collapse.prototype.dimension = function () {
+    var hasWidth = this.$element.hasClass('width')
+    return hasWidth ? 'width' : 'height'
+  }
+
+  Collapse.prototype.show = function () {
+    if (this.transitioning || this.$element.hasClass('in')) return
+
+    var activesData
+    var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')
+
+    if (actives && actives.length) {
+      activesData = actives.data('bs.collapse')
+      if (activesData && activesData.transitioning) return
+    }
+
+    var startEvent = $.Event('show.bs.collapse')
+    this.$element.trigger(startEvent)
+    if (startEvent.isDefaultPrevented()) return
+
+    if (actives && actives.length) {
+      Plugin.call(actives, 'hide')
+      activesData || actives.data('bs.collapse', null)
+    }
+
+    var dimension = this.dimension()
+
+    this.$element
+      .removeClass('collapse')
+      .addClass('collapsing')[dimension](0)
+      .attr('aria-expanded', true)
+
+    this.$trigger
+      .removeClass('collapsed')
+      .attr('aria-expanded', true)
+
+    this.transitioning = 1
+
+    var complete = function () {
+      this.$element
+        .removeClass('collapsing')
+        .addClass('collapse in')[dimension]('')
+      this.transitioning = 0
+      this.$element
+        .trigger('shown.bs.collapse')
+    }
+
+    if (!$.support.transition) return complete.call(this)
+
+    var scrollSize = $.camelCase(['scroll', dimension].join('-'))
+
+    this.$element
+      .one('bsTransitionEnd', $.proxy(complete, this))
+      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])
+  }
+
+  Collapse.prototype.hide = function () {
+    if (this.transitioning || !this.$element.hasClass('in')) return
+
+    var startEvent = $.Event('hide.bs.collapse')
+    this.$element.trigger(startEvent)
+    if (startEvent.isDefaultPrevented()) return
+
+    var dimension = this.dimension()
+
+    this.$element[dimension](this.$element[dimension]())[0].offsetHeight
+
+    this.$element
+      .addClass('collapsing')
+      .removeClass('collapse in')
+      .attr('aria-expanded', false)
+
+    this.$trigger
+      .addClass('collapsed')
+      .attr('aria-expanded', false)
+
+    this.transitioning = 1
+
+    var complete = function () {
+      this.transitioning = 0
+      this.$element
+        .removeClass('collapsing')
+        .addClass('collapse')
+        .trigger('hidden.bs.collapse')
+    }
+
+    if (!$.support.transition) return complete.call(this)
+
+    this.$element
+      [dimension](0)
+      .one('bsTransitionEnd', $.proxy(complete, this))
+      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)
+  }
+
+  Collapse.prototype.toggle = function () {
+    this[this.$element.hasClass('in') ? 'hide' : 'show']()
+  }
+
+  Collapse.prototype.getParent = function () {
+    return $(this.options.parent)
+      .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
+      .each($.proxy(function (i, element) {
+        var $element = $(element)
+        this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
+      }, this))
+      .end()
+  }
+
+  Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
+    var isOpen = $element.hasClass('in')
+
+    $element.attr('aria-expanded', isOpen)
+    $trigger
+      .toggleClass('collapsed', !isOpen)
+      .attr('aria-expanded', isOpen)
+  }
+
+  function getTargetFromTrigger($trigger) {
+    var href
+    var target = $trigger.attr('data-target')
+      || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
+
+    return $(target)
+  }
+
+
+  // COLLAPSE PLUGIN DEFINITION
+  // ==========================
+
+  function Plugin(option) {
+    return this.each(function () {
+      var $this   = $(this)
+      var data    = $this.data('bs.collapse')
+      var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
+
+      if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false
+      if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
+      if (typeof option == 'string') data[option]()
+    })
+  }
+
+  var old = $.fn.collapse
+
+  $.fn.collapse             = Plugin
+  $.fn.collapse.Constructor = Collapse
+
+
+  // COLLAPSE NO CONFLICT
+  // ====================
+
+  $.fn.collapse.noConflict = function () {
+    $.fn.collapse = old
+    return this
+  }
+
+
+  // COLLAPSE DATA-API
+  // =================
+
+  $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
+    var $this   = $(this)
+
+    if (!$this.attr('data-target')) e.preventDefault()
+
+    var $target = getTargetFromTrigger($this)
+    var data    = $target.data('bs.collapse')
+    var option  = data ? 'toggle' : $this.data()
+
+    Plugin.call($target, option)
+  })
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: tab.js v3.3.5
+ * http://getbootstrap.com/javascript/#tabs
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+  'use strict';
+
+  // TAB CLASS DEFINITION
+  // ====================
+
+  var Tab = function (element) {
+    // jscs:disable requireDollarBeforejQueryAssignment
+    this.element = $(element)
+    // jscs:enable requireDollarBeforejQueryAssignment
+  }
+
+  Tab.VERSION = '3.3.5'
+
+  Tab.TRANSITION_DURATION = 150
+
+  Tab.prototype.show = function () {
+    var $this    = this.element
+    var $ul      = $this.closest('ul:not(.dropdown-menu)')
+    var selector = $this.data('target')
+
+    if (!selector) {
+      selector = $this.attr('href')
+      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
+    }
+
+    if ($this.parent('li').hasClass('active')) return
+
+    var $previous = $ul.find('.active:last a')
+    var hideEvent = $.Event('hide.bs.tab', {
+      relatedTarget: $this[0]
+    })
+    var showEvent = $.Event('show.bs.tab', {
+      relatedTarget: $previous[0]
+    })
+
+    $previous.trigger(hideEvent)
+    $this.trigger(showEvent)
+
+    if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return
+
+    var $target = $(selector)
+
+    this.activate($this.closest('li'), $ul)
+    this.activate($target, $target.parent(), function () {
+      $previous.trigger({
+        type: 'hidden.bs.tab',
+        relatedTarget: $this[0]
+      })
+      $this.trigger({
+        type: 'shown.bs.tab',
+        relatedTarget: $previous[0]
+      })
+    })
+  }
+
+  Tab.prototype.activate = function (element, container, callback) {
+    var $active    = container.find('> .active')
+    var transition = callback
+      && $.support.transition
+      && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)
+
+    function next() {
+      $active
+        .removeClass('active')
+        .find('> .dropdown-menu > .active')
+          .removeClass('active')
+        .end()
+        .find('[data-toggle="tab"]')
+          .attr('aria-expanded', false)
+
+      element
+        .addClass('active')
+        .find('[data-toggle="tab"]')
+          .attr('aria-expanded', true)
+
+      if (transition) {
+        element[0].offsetWidth // reflow for transition
+        element.addClass('in')
+      } else {
+        element.removeClass('fade')
+      }
+
+      if (element.parent('.dropdown-menu').length) {
+        element
+          .closest('li.dropdown')
+            .addClass('active')
+          .end()
+          .find('[data-toggle="tab"]')
+            .attr('aria-expanded', true)
+      }
+
+      callback && callback()
+    }
+
+    $active.length && transition ?
+      $active
+        .one('bsTransitionEnd', next)
+        .emulateTransitionEnd(Tab.TRANSITION_DURATION) :
+      next()
+
+    $active.removeClass('in')
+  }
+
+
+  // TAB PLUGIN DEFINITION
+  // =====================
+
+  function Plugin(option) {
+    return this.each(function () {
+      var $this = $(this)
+      var data  = $this.data('bs.tab')
+
+      if (!data) $this.data('bs.tab', (data = new Tab(this)))
+      if (typeof option == 'string') data[option]()
+    })
+  }
+
+  var old = $.fn.tab
+
+  $.fn.tab             = Plugin
+  $.fn.tab.Constructor = Tab
+
+
+  // TAB NO CONFLICT
+  // ===============
+
+  $.fn.tab.noConflict = function () {
+    $.fn.tab = old
+    return this
+  }
+
+
+  // TAB DATA-API
+  // ============
+
+  var clickHandler = function (e) {
+    e.preventDefault()
+    Plugin.call($(this), 'show')
+  }
+
+  $(document)
+    .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler)
+    .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler)
+
+}(jQuery);
diff --git a/ui/new-ui-samples/js/vendor/jquery-ui.js b/ui/new-ui-samples/js/vendor/jquery-ui.js
new file mode 100644
index 0000000..31ee9cd
--- /dev/null
+++ b/ui/new-ui-samples/js/vendor/jquery-ui.js
@@ -0,0 +1,16617 @@
+/*! jQuery UI - v1.11.4 - 2015-03-11
+* http://jqueryui.com
+* Includes: core.js, widget.js, mouse.js, position.js, accordion.js, autocomplete.js, button.js, datepicker.js, dialog.js, draggable.js, droppable.js, effect.js, effect-blind.js, effect-bounce.js, effect-clip.js, effect-drop.js, effect-explode.js, effect-fade.js, effect-fold.js, effect-highlight.js, effect-puff.js, effect-pulsate.js, effect-scale.js, effect-shake.js, effect-size.js, effect-slide.js, effect-transfer.js, menu.js, progressbar.js, resizable.js, selectable.js, selectmenu.js, slider.js, sortable.js, spinner.js, tabs.js, tooltip.js
+* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
+
+(function( factory ) {
+	if ( typeof define === "function" && define.amd ) {
+
+		// AMD. Register as an anonymous module.
+		define([ "jquery" ], factory );
+	} else {
+
+		// Browser globals
+		factory( jQuery );
+	}
+}(function( $ ) {
+/*!
+ * jQuery UI Core 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/category/ui-core/
+ */
+
+
+// $.ui might exist from components with no dependencies, e.g., $.ui.position
+$.ui = $.ui || {};
+
+$.extend( $.ui, {
+	version: "1.11.4",
+
+	keyCode: {
+		BACKSPACE: 8,
+		COMMA: 188,
+		DELETE: 46,
+		DOWN: 40,
+		END: 35,
+		ENTER: 13,
+		ESCAPE: 27,
+		HOME: 36,
+		LEFT: 37,
+		PAGE_DOWN: 34,
+		PAGE_UP: 33,
+		PERIOD: 190,
+		RIGHT: 39,
+		SPACE: 32,
+		TAB: 9,
+		UP: 38
+	}
+});
+
+// plugins
+$.fn.extend({
+	scrollParent: function( includeHidden ) {
+		var position = this.css( "position" ),
+			excludeStaticParent = position === "absolute",
+			overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/,
+			scrollParent = this.parents().filter( function() {
+				var parent = $( this );
+				if ( excludeStaticParent && parent.css( "position" ) === "static" ) {
+					return false;
+				}
+				return overflowRegex.test( parent.css( "overflow" ) + parent.css( "overflow-y" ) + parent.css( "overflow-x" ) );
+			}).eq( 0 );
+
+		return position === "fixed" || !scrollParent.length ? $( this[ 0 ].ownerDocument || document ) : scrollParent;
+	},
+
+	uniqueId: (function() {
+		var uuid = 0;
+
+		return function() {
+			return this.each(function() {
+				if ( !this.id ) {
+					this.id = "ui-id-" + ( ++uuid );
+				}
+			});
+		};
+	})(),
+
+	removeUniqueId: function() {
+		return this.each(function() {
+			if ( /^ui-id-\d+$/.test( this.id ) ) {
+				$( this ).removeAttr( "id" );
+			}
+		});
+	}
+});
+
+// selectors
+function focusable( element, isTabIndexNotNaN ) {
+	var map, mapName, img,
+		nodeName = element.nodeName.toLowerCase();
+	if ( "area" === nodeName ) {
+		map = element.parentNode;
+		mapName = map.name;
+		if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
+			return false;
+		}
+		img = $( "img[usemap='#" + mapName + "']" )[ 0 ];
+		return !!img && visible( img );
+	}
+	return ( /^(input|select|textarea|button|object)$/.test( nodeName ) ?
+		!element.disabled :
+		"a" === nodeName ?
+			element.href || isTabIndexNotNaN :
+			isTabIndexNotNaN) &&
+		// the element and all of its ancestors must be visible
+		visible( element );
+}
+
+function visible( element ) {
+	return $.expr.filters.visible( element ) &&
+		!$( element ).parents().addBack().filter(function() {
+			return $.css( this, "visibility" ) === "hidden";
+		}).length;
+}
+
+$.extend( $.expr[ ":" ], {
+	data: $.expr.createPseudo ?
+		$.expr.createPseudo(function( dataName ) {
+			return function( elem ) {
+				return !!$.data( elem, dataName );
+			};
+		}) :
+		// support: jQuery <1.8
+		function( elem, i, match ) {
+			return !!$.data( elem, match[ 3 ] );
+		},
+
+	focusable: function( element ) {
+		return focusable( element, !isNaN( $.attr( element, "tabindex" ) ) );
+	},
+
+	tabbable: function( element ) {
+		var tabIndex = $.attr( element, "tabindex" ),
+			isTabIndexNaN = isNaN( tabIndex );
+		return ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN );
+	}
+});
+
+// support: jQuery <1.8
+if ( !$( "<a>" ).outerWidth( 1 ).jquery ) {
+	$.each( [ "Width", "Height" ], function( i, name ) {
+		var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],
+			type = name.toLowerCase(),
+			orig = {
+				innerWidth: $.fn.innerWidth,
+				innerHeight: $.fn.innerHeight,
+				outerWidth: $.fn.outerWidth,
+				outerHeight: $.fn.outerHeight
+			};
+
+		function reduce( elem, size, border, margin ) {
+			$.each( side, function() {
+				size -= parseFloat( $.css( elem, "padding" + this ) ) || 0;
+				if ( border ) {
+					size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0;
+				}
+				if ( margin ) {
+					size -= parseFloat( $.css( elem, "margin" + this ) ) || 0;
+				}
+			});
+			return size;
+		}
+
+		$.fn[ "inner" + name ] = function( size ) {
+			if ( size === undefined ) {
+				return orig[ "inner" + name ].call( this );
+			}
+
+			return this.each(function() {
+				$( this ).css( type, reduce( this, size ) + "px" );
+			});
+		};
+
+		$.fn[ "outer" + name] = function( size, margin ) {
+			if ( typeof size !== "number" ) {
+				return orig[ "outer" + name ].call( this, size );
+			}
+
+			return this.each(function() {
+				$( this).css( type, reduce( this, size, true, margin ) + "px" );
+			});
+		};
+	});
+}
+
+// support: jQuery <1.8
+if ( !$.fn.addBack ) {
+	$.fn.addBack = function( selector ) {
+		return this.add( selector == null ?
+			this.prevObject : this.prevObject.filter( selector )
+		);
+	};
+}
+
+// support: jQuery 1.6.1, 1.6.2 (http://bugs.jquery.com/ticket/9413)
+if ( $( "<a>" ).data( "a-b", "a" ).removeData( "a-b" ).data( "a-b" ) ) {
+	$.fn.removeData = (function( removeData ) {
+		return function( key ) {
+			if ( arguments.length ) {
+				return removeData.call( this, $.camelCase( key ) );
+			} else {
+				return removeData.call( this );
+			}
+		};
+	})( $.fn.removeData );
+}
+
+// deprecated
+$.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() );
+
+$.fn.extend({
+	focus: (function( orig ) {
+		return function( delay, fn ) {
+			return typeof delay === "number" ?
+				this.each(function() {
+					var elem = this;
+					setTimeout(function() {
+						$( elem ).focus();
+						if ( fn ) {
+							fn.call( elem );
+						}
+					}, delay );
+				}) :
+				orig.apply( this, arguments );
+		};
+	})( $.fn.focus ),
+
+	disableSelection: (function() {
+		var eventType = "onselectstart" in document.createElement( "div" ) ?
+			"selectstart" :
+			"mousedown";
+
+		return function() {
+			return this.bind( eventType + ".ui-disableSelection", function( event ) {
+				event.preventDefault();
+			});
+		};
+	})(),
+
+	enableSelection: function() {
+		return this.unbind( ".ui-disableSelection" );
+	},
+
+	zIndex: function( zIndex ) {
+		if ( zIndex !== undefined ) {
+			return this.css( "zIndex", zIndex );
+		}
+
+		if ( this.length ) {
+			var elem = $( this[ 0 ] ), position, value;
+			while ( elem.length && elem[ 0 ] !== document ) {
+				// Ignore z-index if position is set to a value where z-index is ignored by the browser
+				// This makes behavior of this function consistent across browsers
+				// WebKit always returns auto if the element is positioned
+				position = elem.css( "position" );
+				if ( position === "absolute" || position === "relative" || position === "fixed" ) {
+					// IE returns 0 when zIndex is not specified
+					// other browsers return a string
+					// we ignore the case of nested elements with an explicit value of 0
+					// <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
+					value = parseInt( elem.css( "zIndex" ), 10 );
+					if ( !isNaN( value ) && value !== 0 ) {
+						return value;
+					}
+				}
+				elem = elem.parent();
+			}
+		}
+
+		return 0;
+	}
+});
+
+// $.ui.plugin is deprecated. Use $.widget() extensions instead.
+$.ui.plugin = {
+	add: function( module, option, set ) {
+		var i,
+			proto = $.ui[ module ].prototype;
+		for ( i in set ) {
+			proto.plugins[ i ] = proto.plugins[ i ] || [];
+			proto.plugins[ i ].push( [ option, set[ i ] ] );
+		}
+	},
+	call: function( instance, name, args, allowDisconnected ) {
+		var i,
+			set = instance.plugins[ name ];
+
+		if ( !set ) {
+			return;
+		}
+
+		if ( !allowDisconnected && ( !instance.element[ 0 ].parentNode || instance.element[ 0 ].parentNode.nodeType === 11 ) ) {
+			return;
+		}
+
+		for ( i = 0; i < set.length; i++ ) {
+			if ( instance.options[ set[ i ][ 0 ] ] ) {
+				set[ i ][ 1 ].apply( instance.element, args );
+			}
+		}
+	}
+};
+
+
+/*!
+ * jQuery UI Widget 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/jQuery.widget/
+ */
+
+
+var widget_uuid = 0,
+	widget_slice = Array.prototype.slice;
+
+$.cleanData = (function( orig ) {
+	return function( elems ) {
+		var events, elem, i;
+		for ( i = 0; (elem = elems[i]) != null; i++ ) {
+			try {
+
+				// Only trigger remove when necessary to save time
+				events = $._data( elem, "events" );
+				if ( events && events.remove ) {
+					$( elem ).triggerHandler( "remove" );
+				}
+
+			// http://bugs.jquery.com/ticket/8235
+			} catch ( e ) {}
+		}
+		orig( elems );
+	};
+})( $.cleanData );
+
+$.widget = function( name, base, prototype ) {
+	var fullName, existingConstructor, constructor, basePrototype,
+		// proxiedPrototype allows the provided prototype to remain unmodified
+		// so that it can be used as a mixin for multiple widgets (#8876)
+		proxiedPrototype = {},
+		namespace = name.split( "." )[ 0 ];
+
+	name = name.split( "." )[ 1 ];
+	fullName = namespace + "-" + name;
+
+	if ( !prototype ) {
+		prototype = base;
+		base = $.Widget;
+	}
+
+	// create selector for plugin
+	$.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) {
+		return !!$.data( elem, fullName );
+	};
+
+	$[ namespace ] = $[ namespace ] || {};
+	existingConstructor = $[ namespace ][ name ];
+	constructor = $[ namespace ][ name ] = function( options, element ) {
+		// allow instantiation without "new" keyword
+		if ( !this._createWidget ) {
+			return new constructor( options, element );
+		}
+
+		// allow instantiation without initializing for simple inheritance
+		// must use "new" keyword (the code above always passes args)
+		if ( arguments.length ) {
+			this._createWidget( options, element );
+		}
+	};
+	// extend with the existing constructor to carry over any static properties
+	$.extend( constructor, existingConstructor, {
+		version: prototype.version,
+		// copy the object used to create the prototype in case we need to
+		// redefine the widget later
+		_proto: $.extend( {}, prototype ),
+		// track widgets that inherit from this widget in case this widget is
+		// redefined after a widget inherits from it
+		_childConstructors: []
+	});
+
+	basePrototype = new base();
+	// we need to make the options hash a property directly on the new instance
+	// otherwise we'll modify the options hash on the prototype that we're
+	// inheriting from
+	basePrototype.options = $.widget.extend( {}, basePrototype.options );
+	$.each( prototype, function( prop, value ) {
+		if ( !$.isFunction( value ) ) {
+			proxiedPrototype[ prop ] = value;
+			return;
+		}
+		proxiedPrototype[ prop ] = (function() {
+			var _super = function() {
+					return base.prototype[ prop ].apply( this, arguments );
+				},
+				_superApply = function( args ) {
+					return base.prototype[ prop ].apply( this, args );
+				};
+			return function() {
+				var __super = this._super,
+					__superApply = this._superApply,
+					returnValue;
+
+				this._super = _super;
+				this._superApply = _superApply;
+
+				returnValue = value.apply( this, arguments );
+
+				this._super = __super;
+				this._superApply = __superApply;
+
+				return returnValue;
+			};
+		})();
+	});
+	constructor.prototype = $.widget.extend( basePrototype, {
+		// TODO: remove support for widgetEventPrefix
+		// always use the name + a colon as the prefix, e.g., draggable:start
+		// don't prefix for widgets that aren't DOM-based
+		widgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name
+	}, proxiedPrototype, {
+		constructor: constructor,
+		namespace: namespace,
+		widgetName: name,
+		widgetFullName: fullName
+	});
+
+	// If this widget is being redefined then we need to find all widgets that
+	// are inheriting from it and redefine all of them so that they inherit from
+	// the new version of this widget. We're essentially trying to replace one
+	// level in the prototype chain.
+	if ( existingConstructor ) {
+		$.each( existingConstructor._childConstructors, function( i, child ) {
+			var childPrototype = child.prototype;
+
+			// redefine the child widget using the same prototype that was
+			// originally used, but inherit from the new version of the base
+			$.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto );
+		});
+		// remove the list of existing child constructors from the old constructor
+		// so the old child constructors can be garbage collected
+		delete existingConstructor._childConstructors;
+	} else {
+		base._childConstructors.push( constructor );
+	}
+
+	$.widget.bridge( name, constructor );
+
+	return constructor;
+};
+
+$.widget.extend = function( target ) {
+	var input = widget_slice.call( arguments, 1 ),
+		inputIndex = 0,
+		inputLength = input.length,
+		key,
+		value;
+	for ( ; inputIndex < inputLength; inputIndex++ ) {
+		for ( key in input[ inputIndex ] ) {
+			value = input[ inputIndex ][ key ];
+			if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {
+				// Clone objects
+				if ( $.isPlainObject( value ) ) {
+					target[ key ] = $.isPlainObject( target[ key ] ) ?
+						$.widget.extend( {}, target[ key ], value ) :
+						// Don't extend strings, arrays, etc. with objects
+						$.widget.extend( {}, value );
+				// Copy everything else by reference
+				} else {
+					target[ key ] = value;
+				}
+			}
+		}
+	}
+	return target;
+};
+
+$.widget.bridge = function( name, object ) {
+	var fullName = object.prototype.widgetFullName || name;
+	$.fn[ name ] = function( options ) {
+		var isMethodCall = typeof options === "string",
+			args = widget_slice.call( arguments, 1 ),
+			returnValue = this;
+
+		if ( isMethodCall ) {
+			this.each(function() {
+				var methodValue,
+					instance = $.data( this, fullName );
+				if ( options === "instance" ) {
+					returnValue = instance;
+					return false;
+				}
+				if ( !instance ) {
+					return $.error( "cannot call methods on " + name + " prior to initialization; " +
+						"attempted to call method '" + options + "'" );
+				}
+				if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) {
+					return $.error( "no such method '" + options + "' for " + name + " widget instance" );
+				}
+				methodValue = instance[ options ].apply( instance, args );
+				if ( methodValue !== instance && methodValue !== undefined ) {
+					returnValue = methodValue && methodValue.jquery ?
+						returnValue.pushStack( methodValue.get() ) :
+						methodValue;
+					return false;
+				}
+			});
+		} else {
+
+			// Allow multiple hashes to be passed on init
+			if ( args.length ) {
+				options = $.widget.extend.apply( null, [ options ].concat(args) );
+			}
+
+			this.each(function() {
+				var instance = $.data( this, fullName );
+				if ( instance ) {
+					instance.option( options || {} );
+					if ( instance._init ) {
+						instance._init();
+					}
+				} else {
+					$.data( this, fullName, new object( options, this ) );
+				}
+			});
+		}
+
+		return returnValue;
+	};
+};
+
+$.Widget = function( /* options, element */ ) {};
+$.Widget._childConstructors = [];
+
+$.Widget.prototype = {
+	widgetName: "widget",
+	widgetEventPrefix: "",
+	defaultElement: "<div>",
+	options: {
+		disabled: false,
+
+		// callbacks
+		create: null
+	},
+	_createWidget: function( options, element ) {
+		element = $( element || this.defaultElement || this )[ 0 ];
+		this.element = $( element );
+		this.uuid = widget_uuid++;
+		this.eventNamespace = "." + this.widgetName + this.uuid;
+
+		this.bindings = $();
+		this.hoverable = $();
+		this.focusable = $();
+
+		if ( element !== this ) {
+			$.data( element, this.widgetFullName, this );
+			this._on( true, this.element, {
+				remove: function( event ) {
+					if ( event.target === element ) {
+						this.destroy();
+					}
+				}
+			});
+			this.document = $( element.style ?
+				// element within the document
+				element.ownerDocument :
+				// element is window or document
+				element.document || element );
+			this.window = $( this.document[0].defaultView || this.document[0].parentWindow );
+		}
+
+		this.options = $.widget.extend( {},
+			this.options,
+			this._getCreateOptions(),
+			options );
+
+		this._create();
+		this._trigger( "create", null, this._getCreateEventData() );
+		this._init();
+	},
+	_getCreateOptions: $.noop,
+	_getCreateEventData: $.noop,
+	_create: $.noop,
+	_init: $.noop,
+
+	destroy: function() {
+		this._destroy();
+		// we can probably remove the unbind calls in 2.0
+		// all event bindings should go through this._on()
+		this.element
+			.unbind( this.eventNamespace )
+			.removeData( this.widgetFullName )
+			// support: jquery <1.6.3
+			// http://bugs.jquery.com/ticket/9413
+			.removeData( $.camelCase( this.widgetFullName ) );
+		this.widget()
+			.unbind( this.eventNamespace )
+			.removeAttr( "aria-disabled" )
+			.removeClass(
+				this.widgetFullName + "-disabled " +
+				"ui-state-disabled" );
+
+		// clean up events and states
+		this.bindings.unbind( this.eventNamespace );
+		this.hoverable.removeClass( "ui-state-hover" );
+		this.focusable.removeClass( "ui-state-focus" );
+	},
+	_destroy: $.noop,
+
+	widget: function() {
+		return this.element;
+	},
+
+	option: function( key, value ) {
+		var options = key,
+			parts,
+			curOption,
+			i;
+
+		if ( arguments.length === 0 ) {
+			// don't return a reference to the internal hash
+			return $.widget.extend( {}, this.options );
+		}
+
+		if ( typeof key === "string" ) {
+			// handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
+			options = {};
+			parts = key.split( "." );
+			key = parts.shift();
+			if ( parts.length ) {
+				curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );
+				for ( i = 0; i < parts.length - 1; i++ ) {
+					curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};
+					curOption = curOption[ parts[ i ] ];
+				}
+				key = parts.pop();
+				if ( arguments.length === 1 ) {
+					return curOption[ key ] === undefined ? null : curOption[ key ];
+				}
+				curOption[ key ] = value;
+			} else {
+				if ( arguments.length === 1 ) {
+					return this.options[ key ] === undefined ? null : this.options[ key ];
+				}
+				options[ key ] = value;
+			}
+		}
+
+		this._setOptions( options );
+
+		return this;
+	},
+	_setOptions: function( options ) {
+		var key;
+
+		for ( key in options ) {
+			this._setOption( key, options[ key ] );
+		}
+
+		return this;
+	},
+	_setOption: function( key, value ) {
+		this.options[ key ] = value;
+
+		if ( key === "disabled" ) {
+			this.widget()
+				.toggleClass( this.widgetFullName + "-disabled", !!value );
+
+			// If the widget is becoming disabled, then nothing is interactive
+			if ( value ) {
+				this.hoverable.removeClass( "ui-state-hover" );
+				this.focusable.removeClass( "ui-state-focus" );
+			}
+		}
+
+		return this;
+	},
+
+	enable: function() {
+		return this._setOptions({ disabled: false });
+	},
+	disable: function() {
+		return this._setOptions({ disabled: true });
+	},
+
+	_on: function( suppressDisabledCheck, element, handlers ) {
+		var delegateElement,
+			instance = this;
+
+		// no suppressDisabledCheck flag, shuffle arguments
+		if ( typeof suppressDisabledCheck !== "boolean" ) {
+			handlers = element;
+			element = suppressDisabledCheck;
+			suppressDisabledCheck = false;
+		}
+
+		// no element argument, shuffle and use this.element
+		if ( !handlers ) {
+			handlers = element;
+			element = this.element;
+			delegateElement = this.widget();
+		} else {
+			element = delegateElement = $( element );
+			this.bindings = this.bindings.add( element );
+		}
+
+		$.each( handlers, function( event, handler ) {
+			function handlerProxy() {
+				// allow widgets to customize the disabled handling
+				// - disabled as an array instead of boolean
+				// - disabled class as method for disabling individual parts
+				if ( !suppressDisabledCheck &&
+						( instance.options.disabled === true ||
+							$( this ).hasClass( "ui-state-disabled" ) ) ) {
+					return;
+				}
+				return ( typeof handler === "string" ? instance[ handler ] : handler )
+					.apply( instance, arguments );
+			}
+
+			// copy the guid so direct unbinding works
+			if ( typeof handler !== "string" ) {
+				handlerProxy.guid = handler.guid =
+					handler.guid || handlerProxy.guid || $.guid++;
+			}
+
+			var match = event.match( /^([\w:-]*)\s*(.*)$/ ),
+				eventName = match[1] + instance.eventNamespace,
+				selector = match[2];
+			if ( selector ) {
+				delegateElement.delegate( selector, eventName, handlerProxy );
+			} else {
+				element.bind( eventName, handlerProxy );
+			}
+		});
+	},
+
+	_off: function( element, eventName ) {
+		eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) +
+			this.eventNamespace;
+		element.unbind( eventName ).undelegate( eventName );
+
+		// Clear the stack to avoid memory leaks (#10056)
+		this.bindings = $( this.bindings.not( element ).get() );
+		this.focusable = $( this.focusable.not( element ).get() );
+		this.hoverable = $( this.hoverable.not( element ).get() );
+	},
+
+	_delay: function( handler, delay ) {
+		function handlerProxy() {
+			return ( typeof handler === "string" ? instance[ handler ] : handler )
+				.apply( instance, arguments );
+		}
+		var instance = this;
+		return setTimeout( handlerProxy, delay || 0 );
+	},
+
+	_hoverable: function( element ) {
+		this.hoverable = this.hoverable.add( element );
+		this._on( element, {
+			mouseenter: function( event ) {
+				$( event.currentTarget ).addClass( "ui-state-hover" );
+			},
+			mouseleave: function( event ) {
+				$( event.currentTarget ).removeClass( "ui-state-hover" );
+			}
+		});
+	},
+
+	_focusable: function( element ) {
+		this.focusable = this.focusable.add( element );
+		this._on( element, {
+			focusin: function( event ) {
+				$( event.currentTarget ).addClass( "ui-state-focus" );
+			},
+			focusout: function( event ) {
+				$( event.currentTarget ).removeClass( "ui-state-focus" );
+			}
+		});
+	},
+
+	_trigger: function( type, event, data ) {
+		var prop, orig,
+			callback = this.options[ type ];
+
+		data = data || {};
+		event = $.Event( event );
+		event.type = ( type === this.widgetEventPrefix ?
+			type :
+			this.widgetEventPrefix + type ).toLowerCase();
+		// the original event may come from any element
+		// so we need to reset the target on the new event
+		event.target = this.element[ 0 ];
+
+		// copy original event properties over to the new event
+		orig = event.originalEvent;
+		if ( orig ) {
+			for ( prop in orig ) {
+				if ( !( prop in event ) ) {
+					event[ prop ] = orig[ prop ];
+				}
+			}
+		}
+
+		this.element.trigger( event, data );
+		return !( $.isFunction( callback ) &&
+			callback.apply( this.element[0], [ event ].concat( data ) ) === false ||
+			event.isDefaultPrevented() );
+	}
+};
+
+$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
+	$.Widget.prototype[ "_" + method ] = function( element, options, callback ) {
+		if ( typeof options === "string" ) {
+			options = { effect: options };
+		}
+		var hasOptions,
+			effectName = !options ?
+				method :
+				options === true || typeof options === "number" ?
+					defaultEffect :
+					options.effect || defaultEffect;
+		options = options || {};
+		if ( typeof options === "number" ) {
+			options = { duration: options };
+		}
+		hasOptions = !$.isEmptyObject( options );
+		options.complete = callback;
+		if ( options.delay ) {
+			element.delay( options.delay );
+		}
+		if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {
+			element[ method ]( options );
+		} else if ( effectName !== method && element[ effectName ] ) {
+			element[ effectName ]( options.duration, options.easing, callback );
+		} else {
+			element.queue(function( next ) {
+				$( this )[ method ]();
+				if ( callback ) {
+					callback.call( element[ 0 ] );
+				}
+				next();
+			});
+		}
+	};
+});
+
+var widget = $.widget;
+
+
+/*!
+ * jQuery UI Mouse 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/mouse/
+ */
+
+
+var mouseHandled = false;
+$( document ).mouseup( function() {
+	mouseHandled = false;
+});
+
+var mouse = $.widget("ui.mouse", {
+	version: "1.11.4",
+	options: {
+		cancel: "input,textarea,button,select,option",
+		distance: 1,
+		delay: 0
+	},
+	_mouseInit: function() {
+		var that = this;
+
+		this.element
+			.bind("mousedown." + this.widgetName, function(event) {
+				return that._mouseDown(event);
+			})
+			.bind("click." + this.widgetName, function(event) {
+				if (true === $.data(event.target, that.widgetName + ".preventClickEvent")) {
+					$.removeData(event.target, that.widgetName + ".preventClickEvent");
+					event.stopImmediatePropagation();
+					return false;
+				}
+			});
+
+		this.started = false;
+	},
+
+	// TODO: make sure destroying one instance of mouse doesn't mess with
+	// other instances of mouse
+	_mouseDestroy: function() {
+		this.element.unbind("." + this.widgetName);
+		if ( this._mouseMoveDelegate ) {
+			this.document
+				.unbind("mousemove." + this.widgetName, this._mouseMoveDelegate)
+				.unbind("mouseup." + this.widgetName, this._mouseUpDelegate);
+		}
+	},
+
+	_mouseDown: function(event) {
+		// don't let more than one widget handle mouseStart
+		if ( mouseHandled ) {
+			return;
+		}
+
+		this._mouseMoved = false;
+
+		// we may have missed mouseup (out of window)
+		(this._mouseStarted && this._mouseUp(event));
+
+		this._mouseDownEvent = event;
+
+		var that = this,
+			btnIsLeft = (event.which === 1),
+			// event.target.nodeName works around a bug in IE 8 with
+			// disabled inputs (#7620)
+			elIsCancel = (typeof this.options.cancel === "string" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false);
+		if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {
+			return true;
+		}
+
+		this.mouseDelayMet = !this.options.delay;
+		if (!this.mouseDelayMet) {
+			this._mouseDelayTimer = setTimeout(function() {
+				that.mouseDelayMet = true;
+			}, this.options.delay);
+		}
+
+		if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
+			this._mouseStarted = (this._mouseStart(event) !== false);
+			if (!this._mouseStarted) {
+				event.preventDefault();
+				return true;
+			}
+		}
+
+		// Click event may never have fired (Gecko & Opera)
+		if (true === $.data(event.target, this.widgetName + ".preventClickEvent")) {
+			$.removeData(event.target, this.widgetName + ".preventClickEvent");
+		}
+
+		// these delegates are required to keep context
+		this._mouseMoveDelegate = function(event) {
+			return that._mouseMove(event);
+		};
+		this._mouseUpDelegate = function(event) {
+			return that._mouseUp(event);
+		};
+
+		this.document
+			.bind( "mousemove." + this.widgetName, this._mouseMoveDelegate )
+			.bind( "mouseup." + this.widgetName, this._mouseUpDelegate );
+
+		event.preventDefault();
+
+		mouseHandled = true;
+		return true;
+	},
+
+	_mouseMove: function(event) {
+		// Only check for mouseups outside the document if you've moved inside the document
+		// at least once. This prevents the firing of mouseup in the case of IE<9, which will
+		// fire a mousemove event if content is placed under the cursor. See #7778
+		// Support: IE <9
+		if ( this._mouseMoved ) {
+			// IE mouseup check - mouseup happened when mouse was out of window
+			if ($.ui.ie && ( !document.documentMode || document.documentMode < 9 ) && !event.button) {
+				return this._mouseUp(event);
+
+			// Iframe mouseup check - mouseup occurred in another document
+			} else if ( !event.which ) {
+				return this._mouseUp( event );
+			}
+		}
+
+		if ( event.which || event.button ) {
+			this._mouseMoved = true;
+		}
+
+		if (this._mouseStarted) {
+			this._mouseDrag(event);
+			return event.preventDefault();
+		}
+
+		if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
+			this._mouseStarted =
+				(this._mouseStart(this._mouseDownEvent, event) !== false);
+			(this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));
+		}
+
+		return !this._mouseStarted;
+	},
+
+	_mouseUp: function(event) {
+		this.document
+			.unbind( "mousemove." + this.widgetName, this._mouseMoveDelegate )
+			.unbind( "mouseup." + this.widgetName, this._mouseUpDelegate );
+
+		if (this._mouseStarted) {
+			this._mouseStarted = false;
+
+			if (event.target === this._mouseDownEvent.target) {
+				$.data(event.target, this.widgetName + ".preventClickEvent", true);
+			}
+
+			this._mouseStop(event);
+		}
+
+		mouseHandled = false;
+		return false;
+	},
+
+	_mouseDistanceMet: function(event) {
+		return (Math.max(
+				Math.abs(this._mouseDownEvent.pageX - event.pageX),
+				Math.abs(this._mouseDownEvent.pageY - event.pageY)
+			) >= this.options.distance
+		);
+	},
+
+	_mouseDelayMet: function(/* event */) {
+		return this.mouseDelayMet;
+	},
+
+	// These are placeholder methods, to be overriden by extending plugin
+	_mouseStart: function(/* event */) {},
+	_mouseDrag: function(/* event */) {},
+	_mouseStop: function(/* event */) {},
+	_mouseCapture: function(/* event */) { return true; }
+});
+
+
+/*!
+ * jQuery UI Position 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/position/
+ */
+
+(function() {
+
+$.ui = $.ui || {};
+
+var cachedScrollbarWidth, supportsOffsetFractions,
+	max = Math.max,
+	abs = Math.abs,
+	round = Math.round,
+	rhorizontal = /left|center|right/,
+	rvertical = /top|center|bottom/,
+	roffset = /[\+\-]\d+(\.[\d]+)?%?/,
+	rposition = /^\w+/,
+	rpercent = /%$/,
+	_position = $.fn.position;
+
+function getOffsets( offsets, width, height ) {
+	return [
+		parseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ),
+		parseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 )
+	];
+}
+
+function parseCss( element, property ) {
+	return parseInt( $.css( element, property ), 10 ) || 0;
+}
+
+function getDimensions( elem ) {
+	var raw = elem[0];
+	if ( raw.nodeType === 9 ) {
+		return {
+			width: elem.width(),
+			height: elem.height(),
+			offset: { top: 0, left: 0 }
+		};
+	}
+	if ( $.isWindow( raw ) ) {
+		return {
+			width: elem.width(),
+			height: elem.height(),
+			offset: { top: elem.scrollTop(), left: elem.scrollLeft() }
+		};
+	}
+	if ( raw.preventDefault ) {
+		return {
+			width: 0,
+			height: 0,
+			offset: { top: raw.pageY, left: raw.pageX }
+		};
+	}
+	return {
+		width: elem.outerWidth(),
+		height: elem.outerHeight(),
+		offset: elem.offset()
+	};
+}
+
+$.position = {
+	scrollbarWidth: function() {
+		if ( cachedScrollbarWidth !== undefined ) {
+			return cachedScrollbarWidth;
+		}
+		var w1, w2,
+			div = $( "<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>" ),
+			innerDiv = div.children()[0];
+
+		$( "body" ).append( div );
+		w1 = innerDiv.offsetWidth;
+		div.css( "overflow", "scroll" );
+
+		w2 = innerDiv.offsetWidth;
+
+		if ( w1 === w2 ) {
+			w2 = div[0].clientWidth;
+		}
+
+		div.remove();
+
+		return (cachedScrollbarWidth = w1 - w2);
+	},
+	getScrollInfo: function( within ) {
+		var overflowX = within.isWindow || within.isDocument ? "" :
+				within.element.css( "overflow-x" ),
+			overflowY = within.isWindow || within.isDocument ? "" :
+				within.element.css( "overflow-y" ),
+			hasOverflowX = overflowX === "scroll" ||
+				( overflowX === "auto" && within.width < within.element[0].scrollWidth ),
+			hasOverflowY = overflowY === "scroll" ||
+				( overflowY === "auto" && within.height < within.element[0].scrollHeight );
+		return {
+			width: hasOverflowY ? $.position.scrollbarWidth() : 0,
+			height: hasOverflowX ? $.position.scrollbarWidth() : 0
+		};
+	},
+	getWithinInfo: function( element ) {
+		var withinElement = $( element || window ),
+			isWindow = $.isWindow( withinElement[0] ),
+			isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9;
+		return {
+			element: withinElement,
+			isWindow: isWindow,
+			isDocument: isDocument,
+			offset: withinElement.offset() || { left: 0, top: 0 },
+			scrollLeft: withinElement.scrollLeft(),
+			scrollTop: withinElement.scrollTop(),
+
+			// support: jQuery 1.6.x
+			// jQuery 1.6 doesn't support .outerWidth/Height() on documents or windows
+			width: isWindow || isDocument ? withinElement.width() : withinElement.outerWidth(),
+			height: isWindow || isDocument ? withinElement.height() : withinElement.outerHeight()
+		};
+	}
+};
+
+$.fn.position = function( options ) {
+	if ( !options || !options.of ) {
+		return _position.apply( this, arguments );
+	}
+
+	// make a copy, we don't want to modify arguments
+	options = $.extend( {}, options );
+
+	var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions,
+		target = $( options.of ),
+		within = $.position.getWithinInfo( options.within ),
+		scrollInfo = $.position.getScrollInfo( within ),
+		collision = ( options.collision || "flip" ).split( " " ),
+		offsets = {};
+
+	dimensions = getDimensions( target );
+	if ( target[0].preventDefault ) {
+		// force left top to allow flipping
+		options.at = "left top";
+	}
+	targetWidth = dimensions.width;
+	targetHeight = dimensions.height;
+	targetOffset = dimensions.offset;
+	// clone to reuse original targetOffset later
+	basePosition = $.extend( {}, targetOffset );
+
+	// force my and at to have valid horizontal and vertical positions
+	// if a value is missing or invalid, it will be converted to center
+	$.each( [ "my", "at" ], function() {
+		var pos = ( options[ this ] || "" ).split( " " ),
+			horizontalOffset,
+			verticalOffset;
+
+		if ( pos.length === 1) {
+			pos = rhorizontal.test( pos[ 0 ] ) ?
+				pos.concat( [ "center" ] ) :
+				rvertical.test( pos[ 0 ] ) ?
+					[ "center" ].concat( pos ) :
+					[ "center", "center" ];
+		}
+		pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center";
+		pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center";
+
+		// calculate offsets
+		horizontalOffset = roffset.exec( pos[ 0 ] );
+		verticalOffset = roffset.exec( pos[ 1 ] );
+		offsets[ this ] = [
+			horizontalOffset ? horizontalOffset[ 0 ] : 0,
+			verticalOffset ? verticalOffset[ 0 ] : 0
+		];
+
+		// reduce to just the positions without the offsets
+		options[ this ] = [
+			rposition.exec( pos[ 0 ] )[ 0 ],
+			rposition.exec( pos[ 1 ] )[ 0 ]
+		];
+	});
+
+	// normalize collision option
+	if ( collision.length === 1 ) {
+		collision[ 1 ] = collision[ 0 ];
+	}
+
+	if ( options.at[ 0 ] === "right" ) {
+		basePosition.left += targetWidth;
+	} else if ( options.at[ 0 ] === "center" ) {
+		basePosition.left += targetWidth / 2;
+	}
+
+	if ( options.at[ 1 ] === "bottom" ) {
+		basePosition.top += targetHeight;
+	} else if ( options.at[ 1 ] === "center" ) {
+		basePosition.top += targetHeight / 2;
+	}
+
+	atOffset = getOffsets( offsets.at, targetWidth, targetHeight );
+	basePosition.left += atOffset[ 0 ];
+	basePosition.top += atOffset[ 1 ];
+
+	return this.each(function() {
+		var collisionPosition, using,
+			elem = $( this ),
+			elemWidth = elem.outerWidth(),
+			elemHeight = elem.outerHeight(),
+			marginLeft = parseCss( this, "marginLeft" ),
+			marginTop = parseCss( this, "marginTop" ),
+			collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) + scrollInfo.width,
+			collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) + scrollInfo.height,
+			position = $.extend( {}, basePosition ),
+			myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() );
+
+		if ( options.my[ 0 ] === "right" ) {
+			position.left -= elemWidth;
+		} else if ( options.my[ 0 ] === "center" ) {
+			position.left -= elemWidth / 2;
+		}
+
+		if ( options.my[ 1 ] === "bottom" ) {
+			position.top -= elemHeight;
+		} else if ( options.my[ 1 ] === "center" ) {
+			position.top -= elemHeight / 2;
+		}
+
+		position.left += myOffset[ 0 ];
+		position.top += myOffset[ 1 ];
+
+		// if the browser doesn't support fractions, then round for consistent results
+		if ( !supportsOffsetFractions ) {
+			position.left = round( position.left );
+			position.top = round( position.top );
+		}
+
+		collisionPosition = {
+			marginLeft: marginLeft,
+			marginTop: marginTop
+		};
+
+		$.each( [ "left", "top" ], function( i, dir ) {
+			if ( $.ui.position[ collision[ i ] ] ) {
+				$.ui.position[ collision[ i ] ][ dir ]( position, {
+					targetWidth: targetWidth,
+					targetHeight: targetHeight,
+					elemWidth: elemWidth,
+					elemHeight: elemHeight,
+					collisionPosition: collisionPosition,
+					collisionWidth: collisionWidth,
+					collisionHeight: collisionHeight,
+					offset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ],
+					my: options.my,
+					at: options.at,
+					within: within,
+					elem: elem
+				});
+			}
+		});
+
+		if ( options.using ) {
+			// adds feedback as second argument to using callback, if present
+			using = function( props ) {
+				var left = targetOffset.left - position.left,
+					right = left + targetWidth - elemWidth,
+					top = targetOffset.top - position.top,
+					bottom = top + targetHeight - elemHeight,
+					feedback = {
+						target: {
+							element: target,
+							left: targetOffset.left,
+							top: targetOffset.top,
+							width: targetWidth,
+							height: targetHeight
+						},
+						element: {
+							element: elem,
+							left: position.left,
+							top: position.top,
+							width: elemWidth,
+							height: elemHeight
+						},
+						horizontal: right < 0 ? "left" : left > 0 ? "right" : "center",
+						vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle"
+					};
+				if ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) {
+					feedback.horizontal = "center";
+				}
+				if ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) {
+					feedback.vertical = "middle";
+				}
+				if ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) {
+					feedback.important = "horizontal";
+				} else {
+					feedback.important = "vertical";
+				}
+				options.using.call( this, props, feedback );
+			};
+		}
+
+		elem.offset( $.extend( position, { using: using } ) );
+	});
+};
+
+$.ui.position = {
+	fit: {
+		left: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.isWindow ? within.scrollLeft : within.offset.left,
+				outerWidth = within.width,
+				collisionPosLeft = position.left - data.collisionPosition.marginLeft,
+				overLeft = withinOffset - collisionPosLeft,
+				overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset,
+				newOverRight;
+
+			// element is wider than within
+			if ( data.collisionWidth > outerWidth ) {
+				// element is initially over the left side of within
+				if ( overLeft > 0 && overRight <= 0 ) {
+					newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - withinOffset;
+					position.left += overLeft - newOverRight;
+				// element is initially over right side of within
+				} else if ( overRight > 0 && overLeft <= 0 ) {
+					position.left = withinOffset;
+				// element is initially over both left and right sides of within
+				} else {
+					if ( overLeft > overRight ) {
+						position.left = withinOffset + outerWidth - data.collisionWidth;
+					} else {
+						position.left = withinOffset;
+					}
+				}
+			// too far left -> align with left edge
+			} else if ( overLeft > 0 ) {
+				position.left += overLeft;
+			// too far right -> align with right edge
+			} else if ( overRight > 0 ) {
+				position.left -= overRight;
+			// adjust based on position and margin
+			} else {
+				position.left = max( position.left - collisionPosLeft, position.left );
+			}
+		},
+		top: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.isWindow ? within.scrollTop : within.offset.top,
+				outerHeight = data.within.height,
+				collisionPosTop = position.top - data.collisionPosition.marginTop,
+				overTop = withinOffset - collisionPosTop,
+				overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset,
+				newOverBottom;
+
+			// element is taller than within
+			if ( data.collisionHeight > outerHeight ) {
+				// element is initially over the top of within
+				if ( overTop > 0 && overBottom <= 0 ) {
+					newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - withinOffset;
+					position.top += overTop - newOverBottom;
+				// element is initially over bottom of within
+				} else if ( overBottom > 0 && overTop <= 0 ) {
+					position.top = withinOffset;
+				// element is initially over both top and bottom of within
+				} else {
+					if ( overTop > overBottom ) {
+						position.top = withinOffset + outerHeight - data.collisionHeight;
+					} else {
+						position.top = withinOffset;
+					}
+				}
+			// too far up -> align with top
+			} else if ( overTop > 0 ) {
+				position.top += overTop;
+			// too far down -> align with bottom edge
+			} else if ( overBottom > 0 ) {
+				position.top -= overBottom;
+			// adjust based on position and margin
+			} else {
+				position.top = max( position.top - collisionPosTop, position.top );
+			}
+		}
+	},
+	flip: {
+		left: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.offset.left + within.scrollLeft,
+				outerWidth = within.width,
+				offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left,
+				collisionPosLeft = position.left - data.collisionPosition.marginLeft,
+				overLeft = collisionPosLeft - offsetLeft,
+				overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft,
+				myOffset = data.my[ 0 ] === "left" ?
+					-data.elemWidth :
+					data.my[ 0 ] === "right" ?
+						data.elemWidth :
+						0,
+				atOffset = data.at[ 0 ] === "left" ?
+					data.targetWidth :
+					data.at[ 0 ] === "right" ?
+						-data.targetWidth :
+						0,
+				offset = -2 * data.offset[ 0 ],
+				newOverRight,
+				newOverLeft;
+
+			if ( overLeft < 0 ) {
+				newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset;
+				if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) {
+					position.left += myOffset + atOffset + offset;
+				}
+			} else if ( overRight > 0 ) {
+				newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft;
+				if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) {
+					position.left += myOffset + atOffset + offset;
+				}
+			}
+		},
+		top: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.offset.top + within.scrollTop,
+				outerHeight = within.height,
+				offsetTop = within.isWindow ? within.scrollTop : within.offset.top,
+				collisionPosTop = position.top - data.collisionPosition.marginTop,
+				overTop = collisionPosTop - offsetTop,
+				overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop,
+				top = data.my[ 1 ] === "top",
+				myOffset = top ?
+					-data.elemHeight :
+					data.my[ 1 ] === "bottom" ?
+						data.elemHeight :
+						0,
+				atOffset = data.at[ 1 ] === "top" ?
+					data.targetHeight :
+					data.at[ 1 ] === "bottom" ?
+						-data.targetHeight :
+						0,
+				offset = -2 * data.offset[ 1 ],
+				newOverTop,
+				newOverBottom;
+			if ( overTop < 0 ) {
+				newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset;
+				if ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) {
+					position.top += myOffset + atOffset + offset;
+				}
+			} else if ( overBottom > 0 ) {
+				newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop;
+				if ( newOverTop > 0 || abs( newOverTop ) < overBottom ) {
+					position.top += myOffset + atOffset + offset;
+				}
+			}
+		}
+	},
+	flipfit: {
+		left: function() {
+			$.ui.position.flip.left.apply( this, arguments );
+			$.ui.position.fit.left.apply( this, arguments );
+		},
+		top: function() {
+			$.ui.position.flip.top.apply( this, arguments );
+			$.ui.position.fit.top.apply( this, arguments );
+		}
+	}
+};
+
+// fraction support test
+(function() {
+	var testElement, testElementParent, testElementStyle, offsetLeft, i,
+		body = document.getElementsByTagName( "body" )[ 0 ],
+		div = document.createElement( "div" );
+
+	//Create a "fake body" for testing based on method used in jQuery.support
+	testElement = document.createElement( body ? "div" : "body" );
+	testElementStyle = {
+		visibility: "hidden",
+		width: 0,
+		height: 0,
+		border: 0,
+		margin: 0,
+		background: "none"
+	};
+	if ( body ) {
+		$.extend( testElementStyle, {
+			position: "absolute",
+			left: "-1000px",
+			top: "-1000px"
+		});
+	}
+	for ( i in testElementStyle ) {
+		testElement.style[ i ] = testElementStyle[ i ];
+	}
+	testElement.appendChild( div );
+	testElementParent = body || document.documentElement;
+	testElementParent.insertBefore( testElement, testElementParent.firstChild );
+
+	div.style.cssText = "position: absolute; left: 10.7432222px;";
+
+	offsetLeft = $( div ).offset().left;
+	supportsOffsetFractions = offsetLeft > 10 && offsetLeft < 11;
+
+	testElement.innerHTML = "";
+	testElementParent.removeChild( testElement );
+})();
+
+})();
+
+var position = $.ui.position;
+
+
+/*!
+ * jQuery UI Accordion 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/accordion/
+ */
+
+
+var accordion = $.widget( "ui.accordion", {
+	version: "1.11.4",
+	options: {
+		active: 0,
+		animate: {},
+		collapsible: false,
+		event: "click",
+		header: "> li > :first-child,> :not(li):even",
+		heightStyle: "auto",
+		icons: {
+			activeHeader: "ui-icon-triangle-1-s",
+			header: "ui-icon-triangle-1-e"
+		},
+
+		// callbacks
+		activate: null,
+		beforeActivate: null
+	},
+
+	hideProps: {
+		borderTopWidth: "hide",
+		borderBottomWidth: "hide",
+		paddingTop: "hide",
+		paddingBottom: "hide",
+		height: "hide"
+	},
+
+	showProps: {
+		borderTopWidth: "show",
+		borderBottomWidth: "show",
+		paddingTop: "show",
+		paddingBottom: "show",
+		height: "show"
+	},
+
+	_create: function() {
+		var options = this.options;
+		this.prevShow = this.prevHide = $();
+		this.element.addClass( "ui-accordion ui-widget ui-helper-reset" )
+			// ARIA
+			.attr( "role", "tablist" );
+
+		// don't allow collapsible: false and active: false / null
+		if ( !options.collapsible && (options.active === false || options.active == null) ) {
+			options.active = 0;
+		}
+
+		this._processPanels();
+		// handle negative values
+		if ( options.active < 0 ) {
+			options.active += this.headers.length;
+		}
+		this._refresh();
+	},
+
+	_getCreateEventData: function() {
+		return {
+			header: this.active,
+			panel: !this.active.length ? $() : this.active.next()
+		};
+	},
+
+	_createIcons: function() {
+		var icons = this.options.icons;
+		if ( icons ) {
+			$( "<span>" )
+				.addClass( "ui-accordion-header-icon ui-icon " + icons.header )
+				.prependTo( this.headers );
+			this.active.children( ".ui-accordion-header-icon" )
+				.removeClass( icons.header )
+				.addClass( icons.activeHeader );
+			this.headers.addClass( "ui-accordion-icons" );
+		}
+	},
+
+	_destroyIcons: function() {
+		this.headers
+			.removeClass( "ui-accordion-icons" )
+			.children( ".ui-accordion-header-icon" )
+				.remove();
+	},
+
+	_destroy: function() {
+		var contents;
+
+		// clean up main element
+		this.element
+			.removeClass( "ui-accordion ui-widget ui-helper-reset" )
+			.removeAttr( "role" );
+
+		// clean up headers
+		this.headers
+			.removeClass( "ui-accordion-header ui-accordion-header-active ui-state-default " +
+				"ui-corner-all ui-state-active ui-state-disabled ui-corner-top" )
+			.removeAttr( "role" )
+			.removeAttr( "aria-expanded" )
+			.removeAttr( "aria-selected" )
+			.removeAttr( "aria-controls" )
+			.removeAttr( "tabIndex" )
+			.removeUniqueId();
+
+		this._destroyIcons();
+
+		// clean up content panels
+		contents = this.headers.next()
+			.removeClass( "ui-helper-reset ui-widget-content ui-corner-bottom " +
+				"ui-accordion-content ui-accordion-content-active ui-state-disabled" )
+			.css( "display", "" )
+			.removeAttr( "role" )
+			.removeAttr( "aria-hidden" )
+			.removeAttr( "aria-labelledby" )
+			.removeUniqueId();
+
+		if ( this.options.heightStyle !== "content" ) {
+			contents.css( "height", "" );
+		}
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "active" ) {
+			// _activate() will handle invalid values and update this.options
+			this._activate( value );
+			return;
+		}
+
+		if ( key === "event" ) {
+			if ( this.options.event ) {
+				this._off( this.headers, this.options.event );
+			}
+			this._setupEvents( value );
+		}
+
+		this._super( key, value );
+
+		// setting collapsible: false while collapsed; open first panel
+		if ( key === "collapsible" && !value && this.options.active === false ) {
+			this._activate( 0 );
+		}
+
+		if ( key === "icons" ) {
+			this._destroyIcons();
+			if ( value ) {
+				this._createIcons();
+			}
+		}
+
+		// #5332 - opacity doesn't cascade to positioned elements in IE
+		// so we need to add the disabled class to the headers and panels
+		if ( key === "disabled" ) {
+			this.element
+				.toggleClass( "ui-state-disabled", !!value )
+				.attr( "aria-disabled", value );
+			this.headers.add( this.headers.next() )
+				.toggleClass( "ui-state-disabled", !!value );
+		}
+	},
+
+	_keydown: function( event ) {
+		if ( event.altKey || event.ctrlKey ) {
+			return;
+		}
+
+		var keyCode = $.ui.keyCode,
+			length = this.headers.length,
+			currentIndex = this.headers.index( event.target ),
+			toFocus = false;
+
+		switch ( event.keyCode ) {
+			case keyCode.RIGHT:
+			case keyCode.DOWN:
+				toFocus = this.headers[ ( currentIndex + 1 ) % length ];
+				break;
+			case keyCode.LEFT:
+			case keyCode.UP:
+				toFocus = this.headers[ ( currentIndex - 1 + length ) % length ];
+				break;
+			case keyCode.SPACE:
+			case keyCode.ENTER:
+				this._eventHandler( event );
+				break;
+			case keyCode.HOME:
+				toFocus = this.headers[ 0 ];
+				break;
+			case keyCode.END:
+				toFocus = this.headers[ length - 1 ];
+				break;
+		}
+
+		if ( toFocus ) {
+			$( event.target ).attr( "tabIndex", -1 );
+			$( toFocus ).attr( "tabIndex", 0 );
+			toFocus.focus();
+			event.preventDefault();
+		}
+	},
+
+	_panelKeyDown: function( event ) {
+		if ( event.keyCode === $.ui.keyCode.UP && event.ctrlKey ) {
+			$( event.currentTarget ).prev().focus();
+		}
+	},
+
+	refresh: function() {
+		var options = this.options;
+		this._processPanels();
+
+		// was collapsed or no panel
+		if ( ( options.active === false && options.collapsible === true ) || !this.headers.length ) {
+			options.active = false;
+			this.active = $();
+		// active false only when collapsible is true
+		} else if ( options.active === false ) {
+			this._activate( 0 );
+		// was active, but active panel is gone
+		} else if ( this.active.length && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {
+			// all remaining panel are disabled
+			if ( this.headers.length === this.headers.find(".ui-state-disabled").length ) {
+				options.active = false;
+				this.active = $();
+			// activate previous panel
+			} else {
+				this._activate( Math.max( 0, options.active - 1 ) );
+			}
+		// was active, active panel still exists
+		} else {
+			// make sure active index is correct
+			options.active = this.headers.index( this.active );
+		}
+
+		this._destroyIcons();
+
+		this._refresh();
+	},
+
+	_processPanels: function() {
+		var prevHeaders = this.headers,
+			prevPanels = this.panels;
+
+		this.headers = this.element.find( this.options.header )
+			.addClass( "ui-accordion-header ui-state-default ui-corner-all" );
+
+		this.panels = this.headers.next()
+			.addClass( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" )
+			.filter( ":not(.ui-accordion-content-active)" )
+			.hide();
+
+		// Avoid memory leaks (#10056)
+		if ( prevPanels ) {
+			this._off( prevHeaders.not( this.headers ) );
+			this._off( prevPanels.not( this.panels ) );
+		}
+	},
+
+	_refresh: function() {
+		var maxHeight,
+			options = this.options,
+			heightStyle = options.heightStyle,
+			parent = this.element.parent();
+
+		this.active = this._findActive( options.active )
+			.addClass( "ui-accordion-header-active ui-state-active ui-corner-top" )
+			.removeClass( "ui-corner-all" );
+		this.active.next()
+			.addClass( "ui-accordion-content-active" )
+			.show();
+
+		this.headers
+			.attr( "role", "tab" )
+			.each(function() {
+				var header = $( this ),
+					headerId = header.uniqueId().attr( "id" ),
+					panel = header.next(),
+					panelId = panel.uniqueId().attr( "id" );
+				header.attr( "aria-controls", panelId );
+				panel.attr( "aria-labelledby", headerId );
+			})
+			.next()
+				.attr( "role", "tabpanel" );
+
+		this.headers
+			.not( this.active )
+			.attr({
+				"aria-selected": "false",
+				"aria-expanded": "false",
+				tabIndex: -1
+			})
+			.next()
+				.attr({
+					"aria-hidden": "true"
+				})
+				.hide();
+
+		// make sure at least one header is in the tab order
+		if ( !this.active.length ) {
+			this.headers.eq( 0 ).attr( "tabIndex", 0 );
+		} else {
+			this.active.attr({
+				"aria-selected": "true",
+				"aria-expanded": "true",
+				tabIndex: 0
+			})
+			.next()
+				.attr({
+					"aria-hidden": "false"
+				});
+		}
+
+		this._createIcons();
+
+		this._setupEvents( options.event );
+
+		if ( heightStyle === "fill" ) {
+			maxHeight = parent.height();
+			this.element.siblings( ":visible" ).each(function() {
+				var elem = $( this ),
+					position = elem.css( "position" );
+
+				if ( position === "absolute" || position === "fixed" ) {
+					return;
+				}
+				maxHeight -= elem.outerHeight( true );
+			});
+
+			this.headers.each(function() {
+				maxHeight -= $( this ).outerHeight( true );
+			});
+
+			this.headers.next()
+				.each(function() {
+					$( this ).height( Math.max( 0, maxHeight -
+						$( this ).innerHeight() + $( this ).height() ) );
+				})
+				.css( "overflow", "auto" );
+		} else if ( heightStyle === "auto" ) {
+			maxHeight = 0;
+			this.headers.next()
+				.each(function() {
+					maxHeight = Math.max( maxHeight, $( this ).css( "height", "" ).height() );
+				})
+				.height( maxHeight );
+		}
+	},
+
+	_activate: function( index ) {
+		var active = this._findActive( index )[ 0 ];
+
+		// trying to activate the already active panel
+		if ( active === this.active[ 0 ] ) {
+			return;
+		}
+
+		// trying to collapse, simulate a click on the currently active header
+		active = active || this.active[ 0 ];
+
+		this._eventHandler({
+			target: active,
+			currentTarget: active,
+			preventDefault: $.noop
+		});
+	},
+
+	_findActive: function( selector ) {
+		return typeof selector === "number" ? this.headers.eq( selector ) : $();
+	},
+
+	_setupEvents: function( event ) {
+		var events = {
+			keydown: "_keydown"
+		};
+		if ( event ) {
+			$.each( event.split( " " ), function( index, eventName ) {
+				events[ eventName ] = "_eventHandler";
+			});
+		}
+
+		this._off( this.headers.add( this.headers.next() ) );
+		this._on( this.headers, events );
+		this._on( this.headers.next(), { keydown: "_panelKeyDown" });
+		this._hoverable( this.headers );
+		this._focusable( this.headers );
+	},
+
+	_eventHandler: function( event ) {
+		var options = this.options,
+			active = this.active,
+			clicked = $( event.currentTarget ),
+			clickedIsActive = clicked[ 0 ] === active[ 0 ],
+			collapsing = clickedIsActive && options.collapsible,
+			toShow = collapsing ? $() : clicked.next(),
+			toHide = active.next(),
+			eventData = {
+				oldHeader: active,
+				oldPanel: toHide,
+				newHeader: collapsing ? $() : clicked,
+				newPanel: toShow
+			};
+
+		event.preventDefault();
+
+		if (
+				// click on active header, but not collapsible
+				( clickedIsActive && !options.collapsible ) ||
+				// allow canceling activation
+				( this._trigger( "beforeActivate", event, eventData ) === false ) ) {
+			return;
+		}
+
+		options.active = collapsing ? false : this.headers.index( clicked );
+
+		// when the call to ._toggle() comes after the class changes
+		// it causes a very odd bug in IE 8 (see #6720)
+		this.active = clickedIsActive ? $() : clicked;
+		this._toggle( eventData );
+
+		// switch classes
+		// corner classes on the previously active header stay after the animation
+		active.removeClass( "ui-accordion-header-active ui-state-active" );
+		if ( options.icons ) {
+			active.children( ".ui-accordion-header-icon" )
+				.removeClass( options.icons.activeHeader )
+				.addClass( options.icons.header );
+		}
+
+		if ( !clickedIsActive ) {
+			clicked
+				.removeClass( "ui-corner-all" )
+				.addClass( "ui-accordion-header-active ui-state-active ui-corner-top" );
+			if ( options.icons ) {
+				clicked.children( ".ui-accordion-header-icon" )
+					.removeClass( options.icons.header )
+					.addClass( options.icons.activeHeader );
+			}
+
+			clicked
+				.next()
+				.addClass( "ui-accordion-content-active" );
+		}
+	},
+
+	_toggle: function( data ) {
+		var toShow = data.newPanel,
+			toHide = this.prevShow.length ? this.prevShow : data.oldPanel;
+
+		// handle activating a panel during the animation for another activation
+		this.prevShow.add( this.prevHide ).stop( true, true );
+		this.prevShow = toShow;
+		this.prevHide = toHide;
+
+		if ( this.options.animate ) {
+			this._animate( toShow, toHide, data );
+		} else {
+			toHide.hide();
+			toShow.show();
+			this._toggleComplete( data );
+		}
+
+		toHide.attr({
+			"aria-hidden": "true"
+		});
+		toHide.prev().attr({
+			"aria-selected": "false",
+			"aria-expanded": "false"
+		});
+		// if we're switching panels, remove the old header from the tab order
+		// if we're opening from collapsed state, remove the previous header from the tab order
+		// if we're collapsing, then keep the collapsing header in the tab order
+		if ( toShow.length && toHide.length ) {
+			toHide.prev().attr({
+				"tabIndex": -1,
+				"aria-expanded": "false"
+			});
+		} else if ( toShow.length ) {
+			this.headers.filter(function() {
+				return parseInt( $( this ).attr( "tabIndex" ), 10 ) === 0;
+			})
+			.attr( "tabIndex", -1 );
+		}
+
+		toShow
+			.attr( "aria-hidden", "false" )
+			.prev()
+				.attr({
+					"aria-selected": "true",
+					"aria-expanded": "true",
+					tabIndex: 0
+				});
+	},
+
+	_animate: function( toShow, toHide, data ) {
+		var total, easing, duration,
+			that = this,
+			adjust = 0,
+			boxSizing = toShow.css( "box-sizing" ),
+			down = toShow.length &&
+				( !toHide.length || ( toShow.index() < toHide.index() ) ),
+			animate = this.options.animate || {},
+			options = down && animate.down || animate,
+			complete = function() {
+				that._toggleComplete( data );
+			};
+
+		if ( typeof options === "number" ) {
+			duration = options;
+		}
+		if ( typeof options === "string" ) {
+			easing = options;
+		}
+		// fall back from options to animation in case of partial down settings
+		easing = easing || options.easing || animate.easing;
+		duration = duration || options.duration || animate.duration;
+
+		if ( !toHide.length ) {
+			return toShow.animate( this.showProps, duration, easing, complete );
+		}
+		if ( !toShow.length ) {
+			return toHide.animate( this.hideProps, duration, easing, complete );
+		}
+
+		total = toShow.show().outerHeight();
+		toHide.animate( this.hideProps, {
+			duration: duration,
+			easing: easing,
+			step: function( now, fx ) {
+				fx.now = Math.round( now );
+			}
+		});
+		toShow
+			.hide()
+			.animate( this.showProps, {
+				duration: duration,
+				easing: easing,
+				complete: complete,
+				step: function( now, fx ) {
+					fx.now = Math.round( now );
+					if ( fx.prop !== "height" ) {
+						if ( boxSizing === "content-box" ) {
+							adjust += fx.now;
+						}
+					} else if ( that.options.heightStyle !== "content" ) {
+						fx.now = Math.round( total - toHide.outerHeight() - adjust );
+						adjust = 0;
+					}
+				}
+			});
+	},
+
+	_toggleComplete: function( data ) {
+		var toHide = data.oldPanel;
+
+		toHide
+			.removeClass( "ui-accordion-content-active" )
+			.prev()
+				.removeClass( "ui-corner-top" )
+				.addClass( "ui-corner-all" );
+
+		// Work around for rendering bug in IE (#5421)
+		if ( toHide.length ) {
+			toHide.parent()[ 0 ].className = toHide.parent()[ 0 ].className;
+		}
+		this._trigger( "activate", null, data );
+	}
+});
+
+
+/*!
+ * jQuery UI Menu 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/menu/
+ */
+
+
+var menu = $.widget( "ui.menu", {
+	version: "1.11.4",
+	defaultElement: "<ul>",
+	delay: 300,
+	options: {
+		icons: {
+			submenu: "ui-icon-carat-1-e"
+		},
+		items: "> *",
+		menus: "ul",
+		position: {
+			my: "left-1 top",
+			at: "right top"
+		},
+		role: "menu",
+
+		// callbacks
+		blur: null,
+		focus: null,
+		select: null
+	},
+
+	_create: function() {
+		this.activeMenu = this.element;
+
+		// Flag used to prevent firing of the click handler
+		// as the event bubbles up through nested menus
+		this.mouseHandled = false;
+		this.element
+			.uniqueId()
+			.addClass( "ui-menu ui-widget ui-widget-content" )
+			.toggleClass( "ui-menu-icons", !!this.element.find( ".ui-icon" ).length )
+			.attr({
+				role: this.options.role,
+				tabIndex: 0
+			});
+
+		if ( this.options.disabled ) {
+			this.element
+				.addClass( "ui-state-disabled" )
+				.attr( "aria-disabled", "true" );
+		}
+
+		this._on({
+			// Prevent focus from sticking to links inside menu after clicking
+			// them (focus should always stay on UL during navigation).
+			"mousedown .ui-menu-item": function( event ) {
+				event.preventDefault();
+			},
+			"click .ui-menu-item": function( event ) {
+				var target = $( event.target );
+				if ( !this.mouseHandled && target.not( ".ui-state-disabled" ).length ) {
+					this.select( event );
+
+					// Only set the mouseHandled flag if the event will bubble, see #9469.
+					if ( !event.isPropagationStopped() ) {
+						this.mouseHandled = true;
+					}
+
+					// Open submenu on click
+					if ( target.has( ".ui-menu" ).length ) {
+						this.expand( event );
+					} else if ( !this.element.is( ":focus" ) && $( this.document[ 0 ].activeElement ).closest( ".ui-menu" ).length ) {
+
+						// Redirect focus to the menu
+						this.element.trigger( "focus", [ true ] );
+
+						// If the active item is on the top level, let it stay active.
+						// Otherwise, blur the active item since it is no longer visible.
+						if ( this.active && this.active.parents( ".ui-menu" ).length === 1 ) {
+							clearTimeout( this.timer );
+						}
+					}
+				}
+			},
+			"mouseenter .ui-menu-item": function( event ) {
+				// Ignore mouse events while typeahead is active, see #10458.
+				// Prevents focusing the wrong item when typeahead causes a scroll while the mouse
+				// is over an item in the menu
+				if ( this.previousFilter ) {
+					return;
+				}
+				var target = $( event.currentTarget );
+				// Remove ui-state-active class from siblings of the newly focused menu item
+				// to avoid a jump caused by adjacent elements both having a class with a border
+				target.siblings( ".ui-state-active" ).removeClass( "ui-state-active" );
+				this.focus( event, target );
+			},
+			mouseleave: "collapseAll",
+			"mouseleave .ui-menu": "collapseAll",
+			focus: function( event, keepActiveItem ) {
+				// If there's already an active item, keep it active
+				// If not, activate the first item
+				var item = this.active || this.element.find( this.options.items ).eq( 0 );
+
+				if ( !keepActiveItem ) {
+					this.focus( event, item );
+				}
+			},
+			blur: function( event ) {
+				this._delay(function() {
+					if ( !$.contains( this.element[0], this.document[0].activeElement ) ) {
+						this.collapseAll( event );
+					}
+				});
+			},
+			keydown: "_keydown"
+		});
+
+		this.refresh();
+
+		// Clicks outside of a menu collapse any open menus
+		this._on( this.document, {
+			click: function( event ) {
+				if ( this._closeOnDocumentClick( event ) ) {
+					this.collapseAll( event );
+				}
+
+				// Reset the mouseHandled flag
+				this.mouseHandled = false;
+			}
+		});
+	},
+
+	_destroy: function() {
+		// Destroy (sub)menus
+		this.element
+			.removeAttr( "aria-activedescendant" )
+			.find( ".ui-menu" ).addBack()
+				.removeClass( "ui-menu ui-widget ui-widget-content ui-menu-icons ui-front" )
+				.removeAttr( "role" )
+				.removeAttr( "tabIndex" )
+				.removeAttr( "aria-labelledby" )
+				.removeAttr( "aria-expanded" )
+				.removeAttr( "aria-hidden" )
+				.removeAttr( "aria-disabled" )
+				.removeUniqueId()
+				.show();
+
+		// Destroy menu items
+		this.element.find( ".ui-menu-item" )
+			.removeClass( "ui-menu-item" )
+			.removeAttr( "role" )
+			.removeAttr( "aria-disabled" )
+			.removeUniqueId()
+			.removeClass( "ui-state-hover" )
+			.removeAttr( "tabIndex" )
+			.removeAttr( "role" )
+			.removeAttr( "aria-haspopup" )
+			.children().each( function() {
+				var elem = $( this );
+				if ( elem.data( "ui-menu-submenu-carat" ) ) {
+					elem.remove();
+				}
+			});
+
+		// Destroy menu dividers
+		this.element.find( ".ui-menu-divider" ).removeClass( "ui-menu-divider ui-widget-content" );
+	},
+
+	_keydown: function( event ) {
+		var match, prev, character, skip,
+			preventDefault = true;
+
+		switch ( event.keyCode ) {
+		case $.ui.keyCode.PAGE_UP:
+			this.previousPage( event );
+			break;
+		case $.ui.keyCode.PAGE_DOWN:
+			this.nextPage( event );
+			break;
+		case $.ui.keyCode.HOME:
+			this._move( "first", "first", event );
+			break;
+		case $.ui.keyCode.END:
+			this._move( "last", "last", event );
+			break;
+		case $.ui.keyCode.UP:
+			this.previous( event );
+			break;
+		case $.ui.keyCode.DOWN:
+			this.next( event );
+			break;
+		case $.ui.keyCode.LEFT:
+			this.collapse( event );
+			break;
+		case $.ui.keyCode.RIGHT:
+			if ( this.active && !this.active.is( ".ui-state-disabled" ) ) {
+				this.expand( event );
+			}
+			break;
+		case $.ui.keyCode.ENTER:
+		case $.ui.keyCode.SPACE:
+			this._activate( event );
+			break;
+		case $.ui.keyCode.ESCAPE:
+			this.collapse( event );
+			break;
+		default:
+			preventDefault = false;
+			prev = this.previousFilter || "";
+			character = String.fromCharCode( event.keyCode );
+			skip = false;
+
+			clearTimeout( this.filterTimer );
+
+			if ( character === prev ) {
+				skip = true;
+			} else {
+				character = prev + character;
+			}
+
+			match = this._filterMenuItems( character );
+			match = skip && match.index( this.active.next() ) !== -1 ?
+				this.active.nextAll( ".ui-menu-item" ) :
+				match;
+
+			// If no matches on the current filter, reset to the last character pressed
+			// to move down the menu to the first item that starts with that character
+			if ( !match.length ) {
+				character = String.fromCharCode( event.keyCode );
+				match = this._filterMenuItems( character );
+			}
+
+			if ( match.length ) {
+				this.focus( event, match );
+				this.previousFilter = character;
+				this.filterTimer = this._delay(function() {
+					delete this.previousFilter;
+				}, 1000 );
+			} else {
+				delete this.previousFilter;
+			}
+		}
+
+		if ( preventDefault ) {
+			event.preventDefault();
+		}
+	},
+
+	_activate: function( event ) {
+		if ( !this.active.is( ".ui-state-disabled" ) ) {
+			if ( this.active.is( "[aria-haspopup='true']" ) ) {
+				this.expand( event );
+			} else {
+				this.select( event );
+			}
+		}
+	},
+
+	refresh: function() {
+		var menus, items,
+			that = this,
+			icon = this.options.icons.submenu,
+			submenus = this.element.find( this.options.menus );
+
+		this.element.toggleClass( "ui-menu-icons", !!this.element.find( ".ui-icon" ).length );
+
+		// Initialize nested menus
+		submenus.filter( ":not(.ui-menu)" )
+			.addClass( "ui-menu ui-widget ui-widget-content ui-front" )
+			.hide()
+			.attr({
+				role: this.options.role,
+				"aria-hidden": "true",
+				"aria-expanded": "false"
+			})
+			.each(function() {
+				var menu = $( this ),
+					item = menu.parent(),
+					submenuCarat = $( "<span>" )
+						.addClass( "ui-menu-icon ui-icon " + icon )
+						.data( "ui-menu-submenu-carat", true );
+
+				item
+					.attr( "aria-haspopup", "true" )
+					.prepend( submenuCarat );
+				menu.attr( "aria-labelledby", item.attr( "id" ) );
+			});
+
+		menus = submenus.add( this.element );
+		items = menus.find( this.options.items );
+
+		// Initialize menu-items containing spaces and/or dashes only as dividers
+		items.not( ".ui-menu-item" ).each(function() {
+			var item = $( this );
+			if ( that._isDivider( item ) ) {
+				item.addClass( "ui-widget-content ui-menu-divider" );
+			}
+		});
+
+		// Don't refresh list items that are already adapted
+		items.not( ".ui-menu-item, .ui-menu-divider" )
+			.addClass( "ui-menu-item" )
+			.uniqueId()
+			.attr({
+				tabIndex: -1,
+				role: this._itemRole()
+			});
+
+		// Add aria-disabled attribute to any disabled menu item
+		items.filter( ".ui-state-disabled" ).attr( "aria-disabled", "true" );
+
+		// If the active item has been removed, blur the menu
+		if ( this.active && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {
+			this.blur();
+		}
+	},
+
+	_itemRole: function() {
+		return {
+			menu: "menuitem",
+			listbox: "option"
+		}[ this.options.role ];
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "icons" ) {
+			this.element.find( ".ui-menu-icon" )
+				.removeClass( this.options.icons.submenu )
+				.addClass( value.submenu );
+		}
+		if ( key === "disabled" ) {
+			this.element
+				.toggleClass( "ui-state-disabled", !!value )
+				.attr( "aria-disabled", value );
+		}
+		this._super( key, value );
+	},
+
+	focus: function( event, item ) {
+		var nested, focused;
+		this.blur( event, event && event.type === "focus" );
+
+		this._scrollIntoView( item );
+
+		this.active = item.first();
+		focused = this.active.addClass( "ui-state-focus" ).removeClass( "ui-state-active" );
+		// Only update aria-activedescendant if there's a role
+		// otherwise we assume focus is managed elsewhere
+		if ( this.options.role ) {
+			this.element.attr( "aria-activedescendant", focused.attr( "id" ) );
+		}
+
+		// Highlight active parent menu item, if any
+		this.active
+			.parent()
+			.closest( ".ui-menu-item" )
+			.addClass( "ui-state-active" );
+
+		if ( event && event.type === "keydown" ) {
+			this._close();
+		} else {
+			this.timer = this._delay(function() {
+				this._close();
+			}, this.delay );
+		}
+
+		nested = item.children( ".ui-menu" );
+		if ( nested.length && event && ( /^mouse/.test( event.type ) ) ) {
+			this._startOpening(nested);
+		}
+		this.activeMenu = item.parent();
+
+		this._trigger( "focus", event, { item: item } );
+	},
+
+	_scrollIntoView: function( item ) {
+		var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight;
+		if ( this._hasScroll() ) {
+			borderTop = parseFloat( $.css( this.activeMenu[0], "borderTopWidth" ) ) || 0;
+			paddingTop = parseFloat( $.css( this.activeMenu[0], "paddingTop" ) ) || 0;
+			offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop;
+			scroll = this.activeMenu.scrollTop();
+			elementHeight = this.activeMenu.height();
+			itemHeight = item.outerHeight();
+
+			if ( offset < 0 ) {
+				this.activeMenu.scrollTop( scroll + offset );
+			} else if ( offset + itemHeight > elementHeight ) {
+				this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight );
+			}
+		}
+	},
+
+	blur: function( event, fromFocus ) {
+		if ( !fromFocus ) {
+			clearTimeout( this.timer );
+		}
+
+		if ( !this.active ) {
+			return;
+		}
+
+		this.active.removeClass( "ui-state-focus" );
+		this.active = null;
+
+		this._trigger( "blur", event, { item: this.active } );
+	},
+
+	_startOpening: function( submenu ) {
+		clearTimeout( this.timer );
+
+		// Don't open if already open fixes a Firefox bug that caused a .5 pixel
+		// shift in the submenu position when mousing over the carat icon
+		if ( submenu.attr( "aria-hidden" ) !== "true" ) {
+			return;
+		}
+
+		this.timer = this._delay(function() {
+			this._close();
+			this._open( submenu );
+		}, this.delay );
+	},
+
+	_open: function( submenu ) {
+		var position = $.extend({
+			of: this.active
+		}, this.options.position );
+
+		clearTimeout( this.timer );
+		this.element.find( ".ui-menu" ).not( submenu.parents( ".ui-menu" ) )
+			.hide()
+			.attr( "aria-hidden", "true" );
+
+		submenu
+			.show()
+			.removeAttr( "aria-hidden" )
+			.attr( "aria-expanded", "true" )
+			.position( position );
+	},
+
+	collapseAll: function( event, all ) {
+		clearTimeout( this.timer );
+		this.timer = this._delay(function() {
+			// If we were passed an event, look for the submenu that contains the event
+			var currentMenu = all ? this.element :
+				$( event && event.target ).closest( this.element.find( ".ui-menu" ) );
+
+			// If we found no valid submenu ancestor, use the main menu to close all sub menus anyway
+			if ( !currentMenu.length ) {
+				currentMenu = this.element;
+			}
+
+			this._close( currentMenu );
+
+			this.blur( event );
+			this.activeMenu = currentMenu;
+		}, this.delay );
+	},
+
+	// With no arguments, closes the currently active menu - if nothing is active
+	// it closes all menus.  If passed an argument, it will search for menus BELOW
+	_close: function( startMenu ) {
+		if ( !startMenu ) {
+			startMenu = this.active ? this.active.parent() : this.element;
+		}
+
+		startMenu
+			.find( ".ui-menu" )
+				.hide()
+				.attr( "aria-hidden", "true" )
+				.attr( "aria-expanded", "false" )
+			.end()
+			.find( ".ui-state-active" ).not( ".ui-state-focus" )
+				.removeClass( "ui-state-active" );
+	},
+
+	_closeOnDocumentClick: function( event ) {
+		return !$( event.target ).closest( ".ui-menu" ).length;
+	},
+
+	_isDivider: function( item ) {
+
+		// Match hyphen, em dash, en dash
+		return !/[^\-\u2014\u2013\s]/.test( item.text() );
+	},
+
+	collapse: function( event ) {
+		var newItem = this.active &&
+			this.active.parent().closest( ".ui-menu-item", this.element );
+		if ( newItem && newItem.length ) {
+			this._close();
+			this.focus( event, newItem );
+		}
+	},
+
+	expand: function( event ) {
+		var newItem = this.active &&
+			this.active
+				.children( ".ui-menu " )
+				.find( this.options.items )
+				.first();
+
+		if ( newItem && newItem.length ) {
+			this._open( newItem.parent() );
+
+			// Delay so Firefox will not hide activedescendant change in expanding submenu from AT
+			this._delay(function() {
+				this.focus( event, newItem );
+			});
+		}
+	},
+
+	next: function( event ) {
+		this._move( "next", "first", event );
+	},
+
+	previous: function( event ) {
+		this._move( "prev", "last", event );
+	},
+
+	isFirstItem: function() {
+		return this.active && !this.active.prevAll( ".ui-menu-item" ).length;
+	},
+
+	isLastItem: function() {
+		return this.active && !this.active.nextAll( ".ui-menu-item" ).length;
+	},
+
+	_move: function( direction, filter, event ) {
+		var next;
+		if ( this.active ) {
+			if ( direction === "first" || direction === "last" ) {
+				next = this.active
+					[ direction === "first" ? "prevAll" : "nextAll" ]( ".ui-menu-item" )
+					.eq( -1 );
+			} else {
+				next = this.active
+					[ direction + "All" ]( ".ui-menu-item" )
+					.eq( 0 );
+			}
+		}
+		if ( !next || !next.length || !this.active ) {
+			next = this.activeMenu.find( this.options.items )[ filter ]();
+		}
+
+		this.focus( event, next );
+	},
+
+	nextPage: function( event ) {
+		var item, base, height;
+
+		if ( !this.active ) {
+			this.next( event );
+			return;
+		}
+		if ( this.isLastItem() ) {
+			return;
+		}
+		if ( this._hasScroll() ) {
+			base = this.active.offset().top;
+			height = this.element.height();
+			this.active.nextAll( ".ui-menu-item" ).each(function() {
+				item = $( this );
+				return item.offset().top - base - height < 0;
+			});
+
+			this.focus( event, item );
+		} else {
+			this.focus( event, this.activeMenu.find( this.options.items )
+				[ !this.active ? "first" : "last" ]() );
+		}
+	},
+
+	previousPage: function( event ) {
+		var item, base, height;
+		if ( !this.active ) {
+			this.next( event );
+			return;
+		}
+		if ( this.isFirstItem() ) {
+			return;
+		}
+		if ( this._hasScroll() ) {
+			base = this.active.offset().top;
+			height = this.element.height();
+			this.active.prevAll( ".ui-menu-item" ).each(function() {
+				item = $( this );
+				return item.offset().top - base + height > 0;
+			});
+
+			this.focus( event, item );
+		} else {
+			this.focus( event, this.activeMenu.find( this.options.items ).first() );
+		}
+	},
+
+	_hasScroll: function() {
+		return this.element.outerHeight() < this.element.prop( "scrollHeight" );
+	},
+
+	select: function( event ) {
+		// TODO: It should never be possible to not have an active item at this
+		// point, but the tests don't trigger mouseenter before click.
+		this.active = this.active || $( event.target ).closest( ".ui-menu-item" );
+		var ui = { item: this.active };
+		if ( !this.active.has( ".ui-menu" ).length ) {
+			this.collapseAll( event, true );
+		}
+		this._trigger( "select", event, ui );
+	},
+
+	_filterMenuItems: function(character) {
+		var escapedCharacter = character.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" ),
+			regex = new RegExp( "^" + escapedCharacter, "i" );
+
+		return this.activeMenu
+			.find( this.options.items )
+
+			// Only match on items, not dividers or other content (#10571)
+			.filter( ".ui-menu-item" )
+			.filter(function() {
+				return regex.test( $.trim( $( this ).text() ) );
+			});
+	}
+});
+
+
+/*!
+ * jQuery UI Autocomplete 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/autocomplete/
+ */
+
+
+$.widget( "ui.autocomplete", {
+	version: "1.11.4",
+	defaultElement: "<input>",
+	options: {
+		appendTo: null,
+		autoFocus: false,
+		delay: 300,
+		minLength: 1,
+		position: {
+			my: "left top",
+			at: "left bottom",
+			collision: "none"
+		},
+		source: null,
+
+		// callbacks
+		change: null,
+		close: null,
+		focus: null,
+		open: null,
+		response: null,
+		search: null,
+		select: null
+	},
+
+	requestIndex: 0,
+	pending: 0,
+
+	_create: function() {
+		// Some browsers only repeat keydown events, not keypress events,
+		// so we use the suppressKeyPress flag to determine if we've already
+		// handled the keydown event. #7269
+		// Unfortunately the code for & in keypress is the same as the up arrow,
+		// so we use the suppressKeyPressRepeat flag to avoid handling keypress
+		// events when we know the keydown event was used to modify the
+		// search term. #7799
+		var suppressKeyPress, suppressKeyPressRepeat, suppressInput,
+			nodeName = this.element[ 0 ].nodeName.toLowerCase(),
+			isTextarea = nodeName === "textarea",
+			isInput = nodeName === "input";
+
+		this.isMultiLine =
+			// Textareas are always multi-line
+			isTextarea ? true :
+			// Inputs are always single-line, even if inside a contentEditable element
+			// IE also treats inputs as contentEditable
+			isInput ? false :
+			// All other element types are determined by whether or not they're contentEditable
+			this.element.prop( "isContentEditable" );
+
+		this.valueMethod = this.element[ isTextarea || isInput ? "val" : "text" ];
+		this.isNewMenu = true;
+
+		this.element
+			.addClass( "ui-autocomplete-input" )
+			.attr( "autocomplete", "off" );
+
+		this._on( this.element, {
+			keydown: function( event ) {
+				if ( this.element.prop( "readOnly" ) ) {
+					suppressKeyPress = true;
+					suppressInput = true;
+					suppressKeyPressRepeat = true;
+					return;
+				}
+
+				suppressKeyPress = false;
+				suppressInput = false;
+				suppressKeyPressRepeat = false;
+				var keyCode = $.ui.keyCode;
+				switch ( event.keyCode ) {
+				case keyCode.PAGE_UP:
+					suppressKeyPress = true;
+					this._move( "previousPage", event );
+					break;
+				case keyCode.PAGE_DOWN:
+					suppressKeyPress = true;
+					this._move( "nextPage", event );
+					break;
+				case keyCode.UP:
+					suppressKeyPress = true;
+					this._keyEvent( "previous", event );
+					break;
+				case keyCode.DOWN:
+					suppressKeyPress = true;
+					this._keyEvent( "next", event );
+					break;
+				case keyCode.ENTER:
+					// when menu is open and has focus
+					if ( this.menu.active ) {
+						// #6055 - Opera still allows the keypress to occur
+						// which causes forms to submit
+						suppressKeyPress = true;
+						event.preventDefault();
+						this.menu.select( event );
+					}
+					break;
+				case keyCode.TAB:
+					if ( this.menu.active ) {
+						this.menu.select( event );
+					}
+					break;
+				case keyCode.ESCAPE:
+					if ( this.menu.element.is( ":visible" ) ) {
+						if ( !this.isMultiLine ) {
+							this._value( this.term );
+						}
+						this.close( event );
+						// Different browsers have different default behavior for escape
+						// Single press can mean undo or clear
+						// Double press in IE means clear the whole form
+						event.preventDefault();
+					}
+					break;
+				default:
+					suppressKeyPressRepeat = true;
+					// search timeout should be triggered before the input value is changed
+					this._searchTimeout( event );
+					break;
+				}
+			},
+			keypress: function( event ) {
+				if ( suppressKeyPress ) {
+					suppressKeyPress = false;
+					if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {
+						event.preventDefault();
+					}
+					return;
+				}
+				if ( suppressKeyPressRepeat ) {
+					return;
+				}
+
+				// replicate some key handlers to allow them to repeat in Firefox and Opera
+				var keyCode = $.ui.keyCode;
+				switch ( event.keyCode ) {
+				case keyCode.PAGE_UP:
+					this._move( "previousPage", event );
+					break;
+				case keyCode.PAGE_DOWN:
+					this._move( "nextPage", event );
+					break;
+				case keyCode.UP:
+					this._keyEvent( "previous", event );
+					break;
+				case keyCode.DOWN:
+					this._keyEvent( "next", event );
+					break;
+				}
+			},
+			input: function( event ) {
+				if ( suppressInput ) {
+					suppressInput = false;
+					event.preventDefault();
+					return;
+				}
+				this._searchTimeout( event );
+			},
+			focus: function() {
+				this.selectedItem = null;
+				this.previous = this._value();
+			},
+			blur: function( event ) {
+				if ( this.cancelBlur ) {
+					delete this.cancelBlur;
+					return;
+				}
+
+				clearTimeout( this.searching );
+				this.close( event );
+				this._change( event );
+			}
+		});
+
+		this._initSource();
+		this.menu = $( "<ul>" )
+			.addClass( "ui-autocomplete ui-front" )
+			.appendTo( this._appendTo() )
+			.menu({
+				// disable ARIA support, the live region takes care of that
+				role: null
+			})
+			.hide()
+			.menu( "instance" );
+
+		this._on( this.menu.element, {
+			mousedown: function( event ) {
+				// prevent moving focus out of the text field
+				event.preventDefault();
+
+				// IE doesn't prevent moving focus even with event.preventDefault()
+				// so we set a flag to know when we should ignore the blur event
+				this.cancelBlur = true;
+				this._delay(function() {
+					delete this.cancelBlur;
+				});
+
+				// clicking on the scrollbar causes focus to shift to the body
+				// but we can't detect a mouseup or a click immediately afterward
+				// so we have to track the next mousedown and close the menu if
+				// the user clicks somewhere outside of the autocomplete
+				var menuElement = this.menu.element[ 0 ];
+				if ( !$( event.target ).closest( ".ui-menu-item" ).length ) {
+					this._delay(function() {
+						var that = this;
+						this.document.one( "mousedown", function( event ) {
+							if ( event.target !== that.element[ 0 ] &&
+									event.target !== menuElement &&
+									!$.contains( menuElement, event.target ) ) {
+								that.close();
+							}
+						});
+					});
+				}
+			},
+			menufocus: function( event, ui ) {
+				var label, item;
+				// support: Firefox
+				// Prevent accidental activation of menu items in Firefox (#7024 #9118)
+				if ( this.isNewMenu ) {
+					this.isNewMenu = false;
+					if ( event.originalEvent && /^mouse/.test( event.originalEvent.type ) ) {
+						this.menu.blur();
+
+						this.document.one( "mousemove", function() {
+							$( event.target ).trigger( event.originalEvent );
+						});
+
+						return;
+					}
+				}
+
+				item = ui.item.data( "ui-autocomplete-item" );
+				if ( false !== this._trigger( "focus", event, { item: item } ) ) {
+					// use value to match what will end up in the input, if it was a key event
+					if ( event.originalEvent && /^key/.test( event.originalEvent.type ) ) {
+						this._value( item.value );
+					}
+				}
+
+				// Announce the value in the liveRegion
+				label = ui.item.attr( "aria-label" ) || item.value;
+				if ( label && $.trim( label ).length ) {
+					this.liveRegion.children().hide();
+					$( "<div>" ).text( label ).appendTo( this.liveRegion );
+				}
+			},
+			menuselect: function( event, ui ) {
+				var item = ui.item.data( "ui-autocomplete-item" ),
+					previous = this.previous;
+
+				// only trigger when focus was lost (click on menu)
+				if ( this.element[ 0 ] !== this.document[ 0 ].activeElement ) {
+					this.element.focus();
+					this.previous = previous;
+					// #6109 - IE triggers two focus events and the second
+					// is asynchronous, so we need to reset the previous
+					// term synchronously and asynchronously :-(
+					this._delay(function() {
+						this.previous = previous;
+						this.selectedItem = item;
+					});
+				}
+
+				if ( false !== this._trigger( "select", event, { item: item } ) ) {
+					this._value( item.value );
+				}
+				// reset the term after the select event
+				// this allows custom select handling to work properly
+				this.term = this._value();
+
+				this.close( event );
+				this.selectedItem = item;
+			}
+		});
+
+		this.liveRegion = $( "<span>", {
+				role: "status",
+				"aria-live": "assertive",
+				"aria-relevant": "additions"
+			})
+			.addClass( "ui-helper-hidden-accessible" )
+			.appendTo( this.document[ 0 ].body );
+
+		// turning off autocomplete prevents the browser from remembering the
+		// value when navigating through history, so we re-enable autocomplete
+		// if the page is unloaded before the widget is destroyed. #7790
+		this._on( this.window, {
+			beforeunload: function() {
+				this.element.removeAttr( "autocomplete" );
+			}
+		});
+	},
+
+	_destroy: function() {
+		clearTimeout( this.searching );
+		this.element
+			.removeClass( "ui-autocomplete-input" )
+			.removeAttr( "autocomplete" );
+		this.menu.element.remove();
+		this.liveRegion.remove();
+	},
+
+	_setOption: function( key, value ) {
+		this._super( key, value );
+		if ( key === "source" ) {
+			this._initSource();
+		}
+		if ( key === "appendTo" ) {
+			this.menu.element.appendTo( this._appendTo() );
+		}
+		if ( key === "disabled" && value && this.xhr ) {
+			this.xhr.abort();
+		}
+	},
+
+	_appendTo: function() {
+		var element = this.options.appendTo;
+
+		if ( element ) {
+			element = element.jquery || element.nodeType ?
+				$( element ) :
+				this.document.find( element ).eq( 0 );
+		}
+
+		if ( !element || !element[ 0 ] ) {
+			element = this.element.closest( ".ui-front" );
+		}
+
+		if ( !element.length ) {
+			element = this.document[ 0 ].body;
+		}
+
+		return element;
+	},
+
+	_initSource: function() {
+		var array, url,
+			that = this;
+		if ( $.isArray( this.options.source ) ) {
+			array = this.options.source;
+			this.source = function( request, response ) {
+				response( $.ui.autocomplete.filter( array, request.term ) );
+			};
+		} else if ( typeof this.options.source === "string" ) {
+			url = this.options.source;
+			this.source = function( request, response ) {
+				if ( that.xhr ) {
+					that.xhr.abort();
+				}
+				that.xhr = $.ajax({
+					url: url,
+					data: request,
+					dataType: "json",
+					success: function( data ) {
+						response( data );
+					},
+					error: function() {
+						response([]);
+					}
+				});
+			};
+		} else {
+			this.source = this.options.source;
+		}
+	},
+
+	_searchTimeout: function( event ) {
+		clearTimeout( this.searching );
+		this.searching = this._delay(function() {
+
+			// Search if the value has changed, or if the user retypes the same value (see #7434)
+			var equalValues = this.term === this._value(),
+				menuVisible = this.menu.element.is( ":visible" ),
+				modifierKey = event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;
+
+			if ( !equalValues || ( equalValues && !menuVisible && !modifierKey ) ) {
+				this.selectedItem = null;
+				this.search( null, event );
+			}
+		}, this.options.delay );
+	},
+
+	search: function( value, event ) {
+		value = value != null ? value : this._value();
+
+		// always save the actual value, not the one passed as an argument
+		this.term = this._value();
+
+		if ( value.length < this.options.minLength ) {
+			return this.close( event );
+		}
+
+		if ( this._trigger( "search", event ) === false ) {
+			return;
+		}
+
+		return this._search( value );
+	},
+
+	_search: function( value ) {
+		this.pending++;
+		this.element.addClass( "ui-autocomplete-loading" );
+		this.cancelSearch = false;
+
+		this.source( { term: value }, this._response() );
+	},
+
+	_response: function() {
+		var index = ++this.requestIndex;
+
+		return $.proxy(function( content ) {
+			if ( index === this.requestIndex ) {
+				this.__response( content );
+			}
+
+			this.pending--;
+			if ( !this.pending ) {
+				this.element.removeClass( "ui-autocomplete-loading" );
+			}
+		}, this );
+	},
+
+	__response: function( content ) {
+		if ( content ) {
+			content = this._normalize( content );
+		}
+		this._trigger( "response", null, { content: content } );
+		if ( !this.options.disabled && content && content.length && !this.cancelSearch ) {
+			this._suggest( content );
+			this._trigger( "open" );
+		} else {
+			// use ._close() instead of .close() so we don't cancel future searches
+			this._close();
+		}
+	},
+
+	close: function( event ) {
+		this.cancelSearch = true;
+		this._close( event );
+	},
+
+	_close: function( event ) {
+		if ( this.menu.element.is( ":visible" ) ) {
+			this.menu.element.hide();
+			this.menu.blur();
+			this.isNewMenu = true;
+			this._trigger( "close", event );
+		}
+	},
+
+	_change: function( event ) {
+		if ( this.previous !== this._value() ) {
+			this._trigger( "change", event, { item: this.selectedItem } );
+		}
+	},
+
+	_normalize: function( items ) {
+		// assume all items have the right format when the first item is complete
+		if ( items.length && items[ 0 ].label && items[ 0 ].value ) {
+			return items;
+		}
+		return $.map( items, function( item ) {
+			if ( typeof item === "string" ) {
+				return {
+					label: item,
+					value: item
+				};
+			}
+			return $.extend( {}, item, {
+				label: item.label || item.value,
+				value: item.value || item.label
+			});
+		});
+	},
+
+	_suggest: function( items ) {
+		var ul = this.menu.element.empty();
+		this._renderMenu( ul, items );
+		this.isNewMenu = true;
+		this.menu.refresh();
+
+		// size and position menu
+		ul.show();
+		this._resizeMenu();
+		ul.position( $.extend({
+			of: this.element
+		}, this.options.position ) );
+
+		if ( this.options.autoFocus ) {
+			this.menu.next();
+		}
+	},
+
+	_resizeMenu: function() {
+		var ul = this.menu.element;
+		ul.outerWidth( Math.max(
+			// Firefox wraps long text (possibly a rounding bug)
+			// so we add 1px to avoid the wrapping (#7513)
+			ul.width( "" ).outerWidth() + 1,
+			this.element.outerWidth()
+		) );
+	},
+
+	_renderMenu: function( ul, items ) {
+		var that = this;
+		$.each( items, function( index, item ) {
+			that._renderItemData( ul, item );
+		});
+	},
+
+	_renderItemData: function( ul, item ) {
+		return this._renderItem( ul, item ).data( "ui-autocomplete-item", item );
+	},
+
+	_renderItem: function( ul, item ) {
+		return $( "<li>" ).text( item.label ).appendTo( ul );
+	},
+
+	_move: function( direction, event ) {
+		if ( !this.menu.element.is( ":visible" ) ) {
+			this.search( null, event );
+			return;
+		}
+		if ( this.menu.isFirstItem() && /^previous/.test( direction ) ||
+				this.menu.isLastItem() && /^next/.test( direction ) ) {
+
+			if ( !this.isMultiLine ) {
+				this._value( this.term );
+			}
+
+			this.menu.blur();
+			return;
+		}
+		this.menu[ direction ]( event );
+	},
+
+	widget: function() {
+		return this.menu.element;
+	},
+
+	_value: function() {
+		return this.valueMethod.apply( this.element, arguments );
+	},
+
+	_keyEvent: function( keyEvent, event ) {
+		if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {
+			this._move( keyEvent, event );
+
+			// prevents moving cursor to beginning/end of the text field in some browsers
+			event.preventDefault();
+		}
+	}
+});
+
+$.extend( $.ui.autocomplete, {
+	escapeRegex: function( value ) {
+		return value.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" );
+	},
+	filter: function( array, term ) {
+		var matcher = new RegExp( $.ui.autocomplete.escapeRegex( term ), "i" );
+		return $.grep( array, function( value ) {
+			return matcher.test( value.label || value.value || value );
+		});
+	}
+});
+
+// live region extension, adding a `messages` option
+// NOTE: This is an experimental API. We are still investigating
+// a full solution for string manipulation and internationalization.
+$.widget( "ui.autocomplete", $.ui.autocomplete, {
+	options: {
+		messages: {
+			noResults: "No search results.",
+			results: function( amount ) {
+				return amount + ( amount > 1 ? " results are" : " result is" ) +
+					" available, use up and down arrow keys to navigate.";
+			}
+		}
+	},
+
+	__response: function( content ) {
+		var message;
+		this._superApply( arguments );
+		if ( this.options.disabled || this.cancelSearch ) {
+			return;
+		}
+		if ( content && content.length ) {
+			message = this.options.messages.results( content.length );
+		} else {
+			message = this.options.messages.noResults;
+		}
+		this.liveRegion.children().hide();
+		$( "<div>" ).text( message ).appendTo( this.liveRegion );
+	}
+});
+
+var autocomplete = $.ui.autocomplete;
+
+
+/*!
+ * jQuery UI Button 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/button/
+ */
+
+
+var lastActive,
+	baseClasses = "ui-button ui-widget ui-state-default ui-corner-all",
+	typeClasses = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",
+	formResetHandler = function() {
+		var form = $( this );
+		setTimeout(function() {
+			form.find( ":ui-button" ).button( "refresh" );
+		}, 1 );
+	},
+	radioGroup = function( radio ) {
+		var name = radio.name,
+			form = radio.form,
+			radios = $( [] );
+		if ( name ) {
+			name = name.replace( /'/g, "\\'" );
+			if ( form ) {
+				radios = $( form ).find( "[name='" + name + "'][type=radio]" );
+			} else {
+				radios = $( "[name='" + name + "'][type=radio]", radio.ownerDocument )
+					.filter(function() {
+						return !this.form;
+					});
+			}
+		}
+		return radios;
+	};
+
+$.widget( "ui.button", {
+	version: "1.11.4",
+	defaultElement: "<button>",
+	options: {
+		disabled: null,
+		text: true,
+		label: null,
+		icons: {
+			primary: null,
+			secondary: null
+		}
+	},
+	_create: function() {
+		this.element.closest( "form" )
+			.unbind( "reset" + this.eventNamespace )
+			.bind( "reset" + this.eventNamespace, formResetHandler );
+
+		if ( typeof this.options.disabled !== "boolean" ) {
+			this.options.disabled = !!this.element.prop( "disabled" );
+		} else {
+			this.element.prop( "disabled", this.options.disabled );
+		}
+
+		this._determineButtonType();
+		this.hasTitle = !!this.buttonElement.attr( "title" );
+
+		var that = this,
+			options = this.options,
+			toggleButton = this.type === "checkbox" || this.type === "radio",
+			activeClass = !toggleButton ? "ui-state-active" : "";
+
+		if ( options.label === null ) {
+			options.label = (this.type === "input" ? this.buttonElement.val() : this.buttonElement.html());
+		}
+
+		this._hoverable( this.buttonElement );
+
+		this.buttonElement
+			.addClass( baseClasses )
+			.attr( "role", "button" )
+			.bind( "mouseenter" + this.eventNamespace, function() {
+				if ( options.disabled ) {
+					return;
+				}
+				if ( this === lastActive ) {
+					$( this ).addClass( "ui-state-active" );
+				}
+			})
+			.bind( "mouseleave" + this.eventNamespace, function() {
+				if ( options.disabled ) {
+					return;
+				}
+				$( this ).removeClass( activeClass );
+			})
+			.bind( "click" + this.eventNamespace, function( event ) {
+				if ( options.disabled ) {
+					event.preventDefault();
+					event.stopImmediatePropagation();
+				}
+			});
+
+		// Can't use _focusable() because the element that receives focus
+		// and the element that gets the ui-state-focus class are different
+		this._on({
+			focus: function() {
+				this.buttonElement.addClass( "ui-state-focus" );
+			},
+			blur: function() {
+				this.buttonElement.removeClass( "ui-state-focus" );
+			}
+		});
+
+		if ( toggleButton ) {
+			this.element.bind( "change" + this.eventNamespace, function() {
+				that.refresh();
+			});
+		}
+
+		if ( this.type === "checkbox" ) {
+			this.buttonElement.bind( "click" + this.eventNamespace, function() {
+				if ( options.disabled ) {
+					return false;
+				}
+			});
+		} else if ( this.type === "radio" ) {
+			this.buttonElement.bind( "click" + this.eventNamespace, function() {
+				if ( options.disabled ) {
+					return false;
+				}
+				$( this ).addClass( "ui-state-active" );
+				that.buttonElement.attr( "aria-pressed", "true" );
+
+				var radio = that.element[ 0 ];
+				radioGroup( radio )
+					.not( radio )
+					.map(function() {
+						return $( this ).button( "widget" )[ 0 ];
+					})
+					.removeClass( "ui-state-active" )
+					.attr( "aria-pressed", "false" );
+			});
+		} else {
+			this.buttonElement
+				.bind( "mousedown" + this.eventNamespace, function() {
+					if ( options.disabled ) {
+						return false;
+					}
+					$( this ).addClass( "ui-state-active" );
+					lastActive = this;
+					that.document.one( "mouseup", function() {
+						lastActive = null;
+					});
+				})
+				.bind( "mouseup" + this.eventNamespace, function() {
+					if ( options.disabled ) {
+						return false;
+					}
+					$( this ).removeClass( "ui-state-active" );
+				})
+				.bind( "keydown" + this.eventNamespace, function(event) {
+					if ( options.disabled ) {
+						return false;
+					}
+					if ( event.keyCode === $.ui.keyCode.SPACE || event.keyCode === $.ui.keyCode.ENTER ) {
+						$( this ).addClass( "ui-state-active" );
+					}
+				})
+				// see #8559, we bind to blur here in case the button element loses
+				// focus between keydown and keyup, it would be left in an "active" state
+				.bind( "keyup" + this.eventNamespace + " blur" + this.eventNamespace, function() {
+					$( this ).removeClass( "ui-state-active" );
+				});
+
+			if ( this.buttonElement.is("a") ) {
+				this.buttonElement.keyup(function(event) {
+					if ( event.keyCode === $.ui.keyCode.SPACE ) {
+						// TODO pass through original event correctly (just as 2nd argument doesn't work)
+						$( this ).click();
+					}
+				});
+			}
+		}
+
+		this._setOption( "disabled", options.disabled );
+		this._resetButton();
+	},
+
+	_determineButtonType: function() {
+		var ancestor, labelSelector, checked;
+
+		if ( this.element.is("[type=checkbox]") ) {
+			this.type = "checkbox";
+		} else if ( this.element.is("[type=radio]") ) {
+			this.type = "radio";
+		} else if ( this.element.is("input") ) {
+			this.type = "input";
+		} else {
+			this.type = "button";
+		}
+
+		if ( this.type === "checkbox" || this.type === "radio" ) {
+			// we don't search against the document in case the element
+			// is disconnected from the DOM
+			ancestor = this.element.parents().last();
+			labelSelector = "label[for='" + this.element.attr("id") + "']";
+			this.buttonElement = ancestor.find( labelSelector );
+			if ( !this.buttonElement.length ) {
+				ancestor = ancestor.length ? ancestor.siblings() : this.element.siblings();
+				this.buttonElement = ancestor.filter( labelSelector );
+				if ( !this.buttonElement.length ) {
+					this.buttonElement = ancestor.find( labelSelector );
+				}
+			}
+			this.element.addClass( "ui-helper-hidden-accessible" );
+
+			checked = this.element.is( ":checked" );
+			if ( checked ) {
+				this.buttonElement.addClass( "ui-state-active" );
+			}
+			this.buttonElement.prop( "aria-pressed", checked );
+		} else {
+			this.buttonElement = this.element;
+		}
+	},
+
+	widget: function() {
+		return this.buttonElement;
+	},
+
+	_destroy: function() {
+		this.element
+			.removeClass( "ui-helper-hidden-accessible" );
+		this.buttonElement
+			.removeClass( baseClasses + " ui-state-active " + typeClasses )
+			.removeAttr( "role" )
+			.removeAttr( "aria-pressed" )
+			.html( this.buttonElement.find(".ui-button-text").html() );
+
+		if ( !this.hasTitle ) {
+			this.buttonElement.removeAttr( "title" );
+		}
+	},
+
+	_setOption: function( key, value ) {
+		this._super( key, value );
+		if ( key === "disabled" ) {
+			this.widget().toggleClass( "ui-state-disabled", !!value );
+			this.element.prop( "disabled", !!value );
+			if ( value ) {
+				if ( this.type === "checkbox" || this.type === "radio" ) {
+					this.buttonElement.removeClass( "ui-state-focus" );
+				} else {
+					this.buttonElement.removeClass( "ui-state-focus ui-state-active" );
+				}
+			}
+			return;
+		}
+		this._resetButton();
+	},
+
+	refresh: function() {
+		//See #8237 & #8828
+		var isDisabled = this.element.is( "input, button" ) ? this.element.is( ":disabled" ) : this.element.hasClass( "ui-button-disabled" );
+
+		if ( isDisabled !== this.options.disabled ) {
+			this._setOption( "disabled", isDisabled );
+		}
+		if ( this.type === "radio" ) {
+			radioGroup( this.element[0] ).each(function() {
+				if ( $( this ).is( ":checked" ) ) {
+					$( this ).button( "widget" )
+						.addClass( "ui-state-active" )
+						.attr( "aria-pressed", "true" );
+				} else {
+					$( this ).button( "widget" )
+						.removeClass( "ui-state-active" )
+						.attr( "aria-pressed", "false" );
+				}
+			});
+		} else if ( this.type === "checkbox" ) {
+			if ( this.element.is( ":checked" ) ) {
+				this.buttonElement
+					.addClass( "ui-state-active" )
+					.attr( "aria-pressed", "true" );
+			} else {
+				this.buttonElement
+					.removeClass( "ui-state-active" )
+					.attr( "aria-pressed", "false" );
+			}
+		}
+	},
+
+	_resetButton: function() {
+		if ( this.type === "input" ) {
+			if ( this.options.label ) {
+				this.element.val( this.options.label );
+			}
+			return;
+		}
+		var buttonElement = this.buttonElement.removeClass( typeClasses ),
+			buttonText = $( "<span></span>", this.document[0] )
+				.addClass( "ui-button-text" )
+				.html( this.options.label )
+				.appendTo( buttonElement.empty() )
+				.text(),
+			icons = this.options.icons,
+			multipleIcons = icons.primary && icons.secondary,
+			buttonClasses = [];
+
+		if ( icons.primary || icons.secondary ) {
+			if ( this.options.text ) {
+				buttonClasses.push( "ui-button-text-icon" + ( multipleIcons ? "s" : ( icons.primary ? "-primary" : "-secondary" ) ) );
+			}
+
+			if ( icons.primary ) {
+				buttonElement.prepend( "<span class='ui-button-icon-primary ui-icon " + icons.primary + "'></span>" );
+			}
+
+			if ( icons.secondary ) {
+				buttonElement.append( "<span class='ui-button-icon-secondary ui-icon " + icons.secondary + "'></span>" );
+			}
+
+			if ( !this.options.text ) {
+				buttonClasses.push( multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only" );
+
+				if ( !this.hasTitle ) {
+					buttonElement.attr( "title", $.trim( buttonText ) );
+				}
+			}
+		} else {
+			buttonClasses.push( "ui-button-text-only" );
+		}
+		buttonElement.addClass( buttonClasses.join( " " ) );
+	}
+});
+
+$.widget( "ui.buttonset", {
+	version: "1.11.4",
+	options: {
+		items: "button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)"
+	},
+
+	_create: function() {
+		this.element.addClass( "ui-buttonset" );
+	},
+
+	_init: function() {
+		this.refresh();
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "disabled" ) {
+			this.buttons.button( "option", key, value );
+		}
+
+		this._super( key, value );
+	},
+
+	refresh: function() {
+		var rtl = this.element.css( "direction" ) === "rtl",
+			allButtons = this.element.find( this.options.items ),
+			existingButtons = allButtons.filter( ":ui-button" );
+
+		// Initialize new buttons
+		allButtons.not( ":ui-button" ).button();
+
+		// Refresh existing buttons
+		existingButtons.button( "refresh" );
+
+		this.buttons = allButtons
+			.map(function() {
+				return $( this ).button( "widget" )[ 0 ];
+			})
+				.removeClass( "ui-corner-all ui-corner-left ui-corner-right" )
+				.filter( ":first" )
+					.addClass( rtl ? "ui-corner-right" : "ui-corner-left" )
+				.end()
+				.filter( ":last" )
+					.addClass( rtl ? "ui-corner-left" : "ui-corner-right" )
+				.end()
+			.end();
+	},
+
+	_destroy: function() {
+		this.element.removeClass( "ui-buttonset" );
+		this.buttons
+			.map(function() {
+				return $( this ).button( "widget" )[ 0 ];
+			})
+				.removeClass( "ui-corner-left ui-corner-right" )
+			.end()
+			.button( "destroy" );
+	}
+});
+
+var button = $.ui.button;
+
+
+/*!
+ * jQuery UI Datepicker 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/datepicker/
+ */
+
+
+$.extend($.ui, { datepicker: { version: "1.11.4" } });
+
+var datepicker_instActive;
+
+function datepicker_getZindex( elem ) {
+	var position, value;
+	while ( elem.length && elem[ 0 ] !== document ) {
+		// Ignore z-index if position is set to a value where z-index is ignored by the browser
+		// This makes behavior of this function consistent across browsers
+		// WebKit always returns auto if the element is positioned
+		position = elem.css( "position" );
+		if ( position === "absolute" || position === "relative" || position === "fixed" ) {
+			// IE returns 0 when zIndex is not specified
+			// other browsers return a string
+			// we ignore the case of nested elements with an explicit value of 0
+			// <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
+			value = parseInt( elem.css( "zIndex" ), 10 );
+			if ( !isNaN( value ) && value !== 0 ) {
+				return value;
+			}
+		}
+		elem = elem.parent();
+	}
+
+	return 0;
+}
+/* Date picker manager.
+   Use the singleton instance of this class, $.datepicker, to interact with the date picker.
+   Settings for (groups of) date pickers are maintained in an instance object,
+   allowing multiple different settings on the same page. */
+
+function Datepicker() {
+	this._curInst = null; // The current instance in use
+	this._keyEvent = false; // If the last event was a key event
+	this._disabledInputs = []; // List of date picker inputs that have been disabled
+	this._datepickerShowing = false; // True if the popup picker is showing , false if not
+	this._inDialog = false; // True if showing within a "dialog", false if not
+	this._mainDivId = "ui-datepicker-div"; // The ID of the main datepicker division
+	this._inlineClass = "ui-datepicker-inline"; // The name of the inline marker class
+	this._appendClass = "ui-datepicker-append"; // The name of the append marker class
+	this._triggerClass = "ui-datepicker-trigger"; // The name of the trigger marker class
+	this._dialogClass = "ui-datepicker-dialog"; // The name of the dialog marker class
+	this._disableClass = "ui-datepicker-disabled"; // The name of the disabled covering marker class
+	this._unselectableClass = "ui-datepicker-unselectable"; // The name of the unselectable cell marker class
+	this._currentClass = "ui-datepicker-current-day"; // The name of the current day marker class
+	this._dayOverClass = "ui-datepicker-days-cell-over"; // The name of the day hover marker class
+	this.regional = []; // Available regional settings, indexed by language code
+	this.regional[""] = { // Default regional settings
+		closeText: "Done", // Display text for close link
+		prevText: "Prev", // Display text for previous month link
+		nextText: "Next", // Display text for next month link
+		currentText: "Today", // Display text for current month link
+		monthNames: ["January","February","March","April","May","June",
+			"July","August","September","October","November","December"], // Names of months for drop-down and formatting
+		monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], // For formatting
+		dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], // For formatting
+		dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], // For formatting
+		dayNamesMin: ["Su","Mo","Tu","We","Th","Fr","Sa"], // Column headings for days starting at Sunday
+		weekHeader: "Wk", // Column header for week of the year
+		dateFormat: "mm/dd/yy", // See format options on parseDate
+		firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ...
+		isRTL: false, // True if right-to-left language, false if left-to-right
+		showMonthAfterYear: false, // True if the year select precedes month, false for month then year
+		yearSuffix: "" // Additional text to append to the year in the month headers
+	};
+	this._defaults = { // Global defaults for all the date picker instances
+		showOn: "focus", // "focus" for popup on focus,
+			// "button" for trigger button, or "both" for either
+		showAnim: "fadeIn", // Name of jQuery animation for popup
+		showOptions: {}, // Options for enhanced animations
+		defaultDate: null, // Used when field is blank: actual date,
+			// +/-number for offset from today, null for today
+		appendText: "", // Display text following the input box, e.g. showing the format
+		buttonText: "...", // Text for trigger button
+		buttonImage: "", // URL for trigger button image
+		buttonImageOnly: false, // True if the image appears alone, false if it appears on a button
+		hideIfNoPrevNext: false, // True to hide next/previous month links
+			// if not applicable, false to just disable them
+		navigationAsDateFormat: false, // True if date formatting applied to prev/today/next links
+		gotoCurrent: false, // True if today link goes back to current selection instead
+		changeMonth: false, // True if month can be selected directly, false if only prev/next
+		changeYear: false, // True if year can be selected directly, false if only prev/next
+		yearRange: "c-10:c+10", // Range of years to display in drop-down,
+			// either relative to today's year (-nn:+nn), relative to currently displayed year
+			// (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n)
+		showOtherMonths: false, // True to show dates in other months, false to leave blank
+		selectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable
+		showWeek: false, // True to show week of the year, false to not show it
+		calculateWeek: this.iso8601Week, // How to calculate the week of the year,
+			// takes a Date and returns the number of the week for it
+		shortYearCutoff: "+10", // Short year values < this are in the current century,
+			// > this are in the previous century,
+			// string value starting with "+" for current year + value
+		minDate: null, // The earliest selectable date, or null for no limit
+		maxDate: null, // The latest selectable date, or null for no limit
+		duration: "fast", // Duration of display/closure
+		beforeShowDay: null, // Function that takes a date and returns an array with
+			// [0] = true if selectable, false if not, [1] = custom CSS class name(s) or "",
+			// [2] = cell title (optional), e.g. $.datepicker.noWeekends
+		beforeShow: null, // Function that takes an input field and
+			// returns a set of custom settings for the date picker
+		onSelect: null, // Define a callback function when a date is selected
+		onChangeMonthYear: null, // Define a callback function when the month or year is changed
+		onClose: null, // Define a callback function when the datepicker is closed
+		numberOfMonths: 1, // Number of months to show at a time
+		showCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0)
+		stepMonths: 1, // Number of months to step back/forward
+		stepBigMonths: 12, // Number of months to step back/forward for the big links
+		altField: "", // Selector for an alternate field to store selected dates into
+		altFormat: "", // The date format to use for the alternate field
+		constrainInput: true, // The input is constrained by the current date format
+		showButtonPanel: false, // True to show button panel, false to not show it
+		autoSize: false, // True to size the input for the date format, false to leave as is
+		disabled: false // The initial disabled state
+	};
+	$.extend(this._defaults, this.regional[""]);
+	this.regional.en = $.extend( true, {}, this.regional[ "" ]);
+	this.regional[ "en-US" ] = $.extend( true, {}, this.regional.en );
+	this.dpDiv = datepicker_bindHover($("<div id='" + this._mainDivId + "' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"));
+}
+
+$.extend(Datepicker.prototype, {
+	/* Class name added to elements to indicate already configured with a date picker. */
+	markerClassName: "hasDatepicker",
+
+	//Keep track of the maximum number of rows displayed (see #7043)
+	maxRows: 4,
+
+	// TODO rename to "widget" when switching to widget factory
+	_widgetDatepicker: function() {
+		return this.dpDiv;
+	},
+
+	/* Override the default settings for all instances of the date picker.
+	 * @param  settings  object - the new settings to use as defaults (anonymous object)
+	 * @return the manager object
+	 */
+	setDefaults: function(settings) {
+		datepicker_extendRemove(this._defaults, settings || {});
+		return this;
+	},
+
+	/* Attach the date picker to a jQuery selection.
+	 * @param  target	element - the target input field or division or span
+	 * @param  settings  object - the new settings to use for this date picker instance (anonymous)
+	 */
+	_attachDatepicker: function(target, settings) {
+		var nodeName, inline, inst;
+		nodeName = target.nodeName.toLowerCase();
+		inline = (nodeName === "div" || nodeName === "span");
+		if (!target.id) {
+			this.uuid += 1;
+			target.id = "dp" + this.uuid;
+		}
+		inst = this._newInst($(target), inline);
+		inst.settings = $.extend({}, settings || {});
+		if (nodeName === "input") {
+			this._connectDatepicker(target, inst);
+		} else if (inline) {
+			this._inlineDatepicker(target, inst);
+		}
+	},
+
+	/* Create a new instance object. */
+	_newInst: function(target, inline) {
+		var id = target[0].id.replace(/([^A-Za-z0-9_\-])/g, "\\\\$1"); // escape jQuery meta chars
+		return {id: id, input: target, // associated target
+			selectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection
+			drawMonth: 0, drawYear: 0, // month being drawn
+			inline: inline, // is datepicker inline or not
+			dpDiv: (!inline ? this.dpDiv : // presentation div
+			datepicker_bindHover($("<div class='" + this._inlineClass + " ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")))};
+	},
+
+	/* Attach the date picker to an input field. */
+	_connectDatepicker: function(target, inst) {
+		var input = $(target);
+		inst.append = $([]);
+		inst.trigger = $([]);
+		if (input.hasClass(this.markerClassName)) {
+			return;
+		}
+		this._attachments(input, inst);
+		input.addClass(this.markerClassName).keydown(this._doKeyDown).
+			keypress(this._doKeyPress).keyup(this._doKeyUp);
+		this._autoSize(inst);
+		$.data(target, "datepicker", inst);
+		//If disabled option is true, disable the datepicker once it has been attached to the input (see ticket #5665)
+		if( inst.settings.disabled ) {
+			this._disableDatepicker( target );
+		}
+	},
+
+	/* Make attachments based on settings. */
+	_attachments: function(input, inst) {
+		var showOn, buttonText, buttonImage,
+			appendText = this._get(inst, "appendText"),
+			isRTL = this._get(inst, "isRTL");
+
+		if (inst.append) {
+			inst.append.remove();
+		}
+		if (appendText) {
+			inst.append = $("<span class='" + this._appendClass + "'>" + appendText + "</span>");
+			input[isRTL ? "before" : "after"](inst.append);
+		}
+
+		input.unbind("focus", this._showDatepicker);
+
+		if (inst.trigger) {
+			inst.trigger.remove();
+		}
+
+		showOn = this._get(inst, "showOn");
+		if (showOn === "focus" || showOn === "both") { // pop-up date picker when in the marked field
+			input.focus(this._showDatepicker);
+		}
+		if (showOn === "button" || showOn === "both") { // pop-up date picker when button clicked
+			buttonText = this._get(inst, "buttonText");
+			buttonImage = this._get(inst, "buttonImage");
+			inst.trigger = $(this._get(inst, "buttonImageOnly") ?
+				$("<img/>").addClass(this._triggerClass).
+					attr({ src: buttonImage, alt: buttonText, title: buttonText }) :
+				$("<button type='button'></button>").addClass(this._triggerClass).
+					html(!buttonImage ? buttonText : $("<img/>").attr(
+					{ src:buttonImage, alt:buttonText, title:buttonText })));
+			input[isRTL ? "before" : "after"](inst.trigger);
+			inst.trigger.click(function() {
+				if ($.datepicker._datepickerShowing && $.datepicker._lastInput === input[0]) {
+					$.datepicker._hideDatepicker();
+				} else if ($.datepicker._datepickerShowing && $.datepicker._lastInput !== input[0]) {
+					$.datepicker._hideDatepicker();
+					$.datepicker._showDatepicker(input[0]);
+				} else {
+					$.datepicker._showDatepicker(input[0]);
+				}
+				return false;
+			});
+		}
+	},
+
+	/* Apply the maximum length for the date format. */
+	_autoSize: function(inst) {
+		if (this._get(inst, "autoSize") && !inst.inline) {
+			var findMax, max, maxI, i,
+				date = new Date(2009, 12 - 1, 20), // Ensure double digits
+				dateFormat = this._get(inst, "dateFormat");
+
+			if (dateFormat.match(/[DM]/)) {
+				findMax = function(names) {
+					max = 0;
+					maxI = 0;
+					for (i = 0; i < names.length; i++) {
+						if (names[i].length > max) {
+							max = names[i].length;
+							maxI = i;
+						}
+					}
+					return maxI;
+				};
+				date.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ?
+					"monthNames" : "monthNamesShort"))));
+				date.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ?
+					"dayNames" : "dayNamesShort"))) + 20 - date.getDay());
+			}
+			inst.input.attr("size", this._formatDate(inst, date).length);
+		}
+	},
+
+	/* Attach an inline date picker to a div. */
+	_inlineDatepicker: function(target, inst) {
+		var divSpan = $(target);
+		if (divSpan.hasClass(this.markerClassName)) {
+			return;
+		}
+		divSpan.addClass(this.markerClassName).append(inst.dpDiv);
+		$.data(target, "datepicker", inst);
+		this._setDate(inst, this._getDefaultDate(inst), true);
+		this._updateDatepicker(inst);
+		this._updateAlternate(inst);
+		//If disabled option is true, disable the datepicker before showing it (see ticket #5665)
+		if( inst.settings.disabled ) {
+			this._disableDatepicker( target );
+		}
+		// Set display:block in place of inst.dpDiv.show() which won't work on disconnected elements
+		// http://bugs.jqueryui.com/ticket/7552 - A Datepicker created on a detached div has zero height
+		inst.dpDiv.css( "display", "block" );
+	},
+
+	/* Pop-up the date picker in a "dialog" box.
+	 * @param  input element - ignored
+	 * @param  date	string or Date - the initial date to display
+	 * @param  onSelect  function - the function to call when a date is selected
+	 * @param  settings  object - update the dialog date picker instance's settings (anonymous object)
+	 * @param  pos int[2] - coordinates for the dialog's position within the screen or
+	 *					event - with x/y coordinates or
+	 *					leave empty for default (screen centre)
+	 * @return the manager object
+	 */
+	_dialogDatepicker: function(input, date, onSelect, settings, pos) {
+		var id, browserWidth, browserHeight, scrollX, scrollY,
+			inst = this._dialogInst; // internal instance
+
+		if (!inst) {
+			this.uuid += 1;
+			id = "dp" + this.uuid;
+			this._dialogInput = $("<input type='text' id='" + id +
+				"' style='position: absolute; top: -100px; width: 0px;'/>");
+			this._dialogInput.keydown(this._doKeyDown);
+			$("body").append(this._dialogInput);
+			inst = this._dialogInst = this._newInst(this._dialogInput, false);
+			inst.settings = {};
+			$.data(this._dialogInput[0], "datepicker", inst);
+		}
+		datepicker_extendRemove(inst.settings, settings || {});
+		date = (date && date.constructor === Date ? this._formatDate(inst, date) : date);
+		this._dialogInput.val(date);
+
+		this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null);
+		if (!this._pos) {
+			browserWidth = document.documentElement.clientWidth;
+			browserHeight = document.documentElement.clientHeight;
+			scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
+			scrollY = document.documentElement.scrollTop || document.body.scrollTop;
+			this._pos = // should use actual width/height below
+				[(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY];
+		}
+
+		// move input on screen for focus, but hidden behind dialog
+		this._dialogInput.css("left", (this._pos[0] + 20) + "px").css("top", this._pos[1] + "px");
+		inst.settings.onSelect = onSelect;
+		this._inDialog = true;
+		this.dpDiv.addClass(this._dialogClass);
+		this._showDatepicker(this._dialogInput[0]);
+		if ($.blockUI) {
+			$.blockUI(this.dpDiv);
+		}
+		$.data(this._dialogInput[0], "datepicker", inst);
+		return this;
+	},
+
+	/* Detach a datepicker from its control.
+	 * @param  target	element - the target input field or division or span
+	 */
+	_destroyDatepicker: function(target) {
+		var nodeName,
+			$target = $(target),
+			inst = $.data(target, "datepicker");
+
+		if (!$target.hasClass(this.markerClassName)) {
+			return;
+		}
+
+		nodeName = target.nodeName.toLowerCase();
+		$.removeData(target, "datepicker");
+		if (nodeName === "input") {
+			inst.append.remove();
+			inst.trigger.remove();
+			$target.removeClass(this.markerClassName).
+				unbind("focus", this._showDatepicker).
+				unbind("keydown", this._doKeyDown).
+				unbind("keypress", this._doKeyPress).
+				unbind("keyup", this._doKeyUp);
+		} else if (nodeName === "div" || nodeName === "span") {
+			$target.removeClass(this.markerClassName).empty();
+		}
+
+		if ( datepicker_instActive === inst ) {
+			datepicker_instActive = null;
+		}
+	},
+
+	/* Enable the date picker to a jQuery selection.
+	 * @param  target	element - the target input field or division or span
+	 */
+	_enableDatepicker: function(target) {
+		var nodeName, inline,
+			$target = $(target),
+			inst = $.data(target, "datepicker");
+
+		if (!$target.hasClass(this.markerClassName)) {
+			return;
+		}
+
+		nodeName = target.nodeName.toLowerCase();
+		if (nodeName === "input") {
+			target.disabled = false;
+			inst.trigger.filter("button").
+				each(function() { this.disabled = false; }).end().
+				filter("img").css({opacity: "1.0", cursor: ""});
+		} else if (nodeName === "div" || nodeName === "span") {
+			inline = $target.children("." + this._inlineClass);
+			inline.children().removeClass("ui-state-disabled");
+			inline.find("select.ui-datepicker-month, select.ui-datepicker-year").
+				prop("disabled", false);
+		}
+		this._disabledInputs = $.map(this._disabledInputs,
+			function(value) { return (value === target ? null : value); }); // delete entry
+	},
+
+	/* Disable the date picker to a jQuery selection.
+	 * @param  target	element - the target input field or division or span
+	 */
+	_disableDatepicker: function(target) {
+		var nodeName, inline,
+			$target = $(target),
+			inst = $.data(target, "datepicker");
+
+		if (!$target.hasClass(this.markerClassName)) {
+			return;
+		}
+
+		nodeName = target.nodeName.toLowerCase();
+		if (nodeName === "input") {
+			target.disabled = true;
+			inst.trigger.filter("button").
+				each(function() { this.disabled = true; }).end().
+				filter("img").css({opacity: "0.5", cursor: "default"});
+		} else if (nodeName === "div" || nodeName === "span") {
+			inline = $target.children("." + this._inlineClass);
+			inline.children().addClass("ui-state-disabled");
+			inline.find("select.ui-datepicker-month, select.ui-datepicker-year").
+				prop("disabled", true);
+		}
+		this._disabledInputs = $.map(this._disabledInputs,
+			function(value) { return (value === target ? null : value); }); // delete entry
+		this._disabledInputs[this._disabledInputs.length] = target;
+	},
+
+	/* Is the first field in a jQuery collection disabled as a datepicker?
+	 * @param  target	element - the target input field or division or span
+	 * @return boolean - true if disabled, false if enabled
+	 */
+	_isDisabledDatepicker: function(target) {
+		if (!target) {
+			return false;
+		}
+		for (var i = 0; i < this._disabledInputs.length; i++) {
+			if (this._disabledInputs[i] === target) {
+				return true;
+			}
+		}
+		return false;
+	},
+
+	/* Retrieve the instance data for the target control.
+	 * @param  target  element - the target input field or division or span
+	 * @return  object - the associated instance data
+	 * @throws  error if a jQuery problem getting data
+	 */
+	_getInst: function(target) {
+		try {
+			return $.data(target, "datepicker");
+		}
+		catch (err) {
+			throw "Missing instance data for this datepicker";
+		}
+	},
+
+	/* Update or retrieve the settings for a date picker attached to an input field or division.
+	 * @param  target  element - the target input field or division or span
+	 * @param  name	object - the new settings to update or
+	 *				string - the name of the setting to change or retrieve,
+	 *				when retrieving also "all" for all instance settings or
+	 *				"defaults" for all global defaults
+	 * @param  value   any - the new value for the setting
+	 *				(omit if above is an object or to retrieve a value)
+	 */
+	_optionDatepicker: function(target, name, value) {
+		var settings, date, minDate, maxDate,
+			inst = this._getInst(target);
+
+		if (arguments.length === 2 && typeof name === "string") {
+			return (name === "defaults" ? $.extend({}, $.datepicker._defaults) :
+				(inst ? (name === "all" ? $.extend({}, inst.settings) :
+				this._get(inst, name)) : null));
+		}
+
+		settings = name || {};
+		if (typeof name === "string") {
+			settings = {};
+			settings[name] = value;
+		}
+
+		if (inst) {
+			if (this._curInst === inst) {
+				this._hideDatepicker();
+			}
+
+			date = this._getDateDatepicker(target, true);
+			minDate = this._getMinMaxDate(inst, "min");
+			maxDate = this._getMinMaxDate(inst, "max");
+			datepicker_extendRemove(inst.settings, settings);
+			// reformat the old minDate/maxDate values if dateFormat changes and a new minDate/maxDate isn't provided
+			if (minDate !== null && settings.dateFormat !== undefined && settings.minDate === undefined) {
+				inst.settings.minDate = this._formatDate(inst, minDate);
+			}
+			if (maxDate !== null && settings.dateFormat !== undefined && settings.maxDate === undefined) {
+				inst.settings.maxDate = this._formatDate(inst, maxDate);
+			}
+			if ( "disabled" in settings ) {
+				if ( settings.disabled ) {
+					this._disableDatepicker(target);
+				} else {
+					this._enableDatepicker(target);
+				}
+			}
+			this._attachments($(target), inst);
+			this._autoSize(inst);
+			this._setDate(inst, date);
+			this._updateAlternate(inst);
+			this._updateDatepicker(inst);
+		}
+	},
+
+	// change method deprecated
+	_changeDatepicker: function(target, name, value) {
+		this._optionDatepicker(target, name, value);
+	},
+
+	/* Redraw the date picker attached to an input field or division.
+	 * @param  target  element - the target input field or division or span
+	 */
+	_refreshDatepicker: function(target) {
+		var inst = this._getInst(target);
+		if (inst) {
+			this._updateDatepicker(inst);
+		}
+	},
+
+	/* Set the dates for a jQuery selection.
+	 * @param  target element - the target input field or division or span
+	 * @param  date	Date - the new date
+	 */
+	_setDateDatepicker: function(target, date) {
+		var inst = this._getInst(target);
+		if (inst) {
+			this._setDate(inst, date);
+			this._updateDatepicker(inst);
+			this._updateAlternate(inst);
+		}
+	},
+
+	/* Get the date(s) for the first entry in a jQuery selection.
+	 * @param  target element - the target input field or division or span
+	 * @param  noDefault boolean - true if no default date is to be used
+	 * @return Date - the current date
+	 */
+	_getDateDatepicker: function(target, noDefault) {
+		var inst = this._getInst(target);
+		if (inst && !inst.inline) {
+			this._setDateFromField(inst, noDefault);
+		}
+		return (inst ? this._getDate(inst) : null);
+	},
+
+	/* Handle keystrokes. */
+	_doKeyDown: function(event) {
+		var onSelect, dateStr, sel,
+			inst = $.datepicker._getInst(event.target),
+			handled = true,
+			isRTL = inst.dpDiv.is(".ui-datepicker-rtl");
+
+		inst._keyEvent = true;
+		if ($.datepicker._datepickerShowing) {
+			switch (event.keyCode) {
+				case 9: $.datepicker._hideDatepicker();
+						handled = false;
+						break; // hide on tab out
+				case 13: sel = $("td." + $.datepicker._dayOverClass + ":not(." +
+									$.datepicker._currentClass + ")", inst.dpDiv);
+						if (sel[0]) {
+							$.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
+						}
+
+						onSelect = $.datepicker._get(inst, "onSelect");
+						if (onSelect) {
+							dateStr = $.datepicker._formatDate(inst);
+
+							// trigger custom callback
+							onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]);
+						} else {
+							$.datepicker._hideDatepicker();
+						}
+
+						return false; // don't submit the form
+				case 27: $.datepicker._hideDatepicker();
+						break; // hide on escape
+				case 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
+							-$.datepicker._get(inst, "stepBigMonths") :
+							-$.datepicker._get(inst, "stepMonths")), "M");
+						break; // previous month/year on page up/+ ctrl
+				case 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
+							+$.datepicker._get(inst, "stepBigMonths") :
+							+$.datepicker._get(inst, "stepMonths")), "M");
+						break; // next month/year on page down/+ ctrl
+				case 35: if (event.ctrlKey || event.metaKey) {
+							$.datepicker._clearDate(event.target);
+						}
+						handled = event.ctrlKey || event.metaKey;
+						break; // clear on ctrl or command +end
+				case 36: if (event.ctrlKey || event.metaKey) {
+							$.datepicker._gotoToday(event.target);
+						}
+						handled = event.ctrlKey || event.metaKey;
+						break; // current on ctrl or command +home
+				case 37: if (event.ctrlKey || event.metaKey) {
+							$.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), "D");
+						}
+						handled = event.ctrlKey || event.metaKey;
+						// -1 day on ctrl or command +left
+						if (event.originalEvent.altKey) {
+							$.datepicker._adjustDate(event.target, (event.ctrlKey ?
+								-$.datepicker._get(inst, "stepBigMonths") :
+								-$.datepicker._get(inst, "stepMonths")), "M");
+						}
+						// next month/year on alt +left on Mac
+						break;
+				case 38: if (event.ctrlKey || event.metaKey) {
+							$.datepicker._adjustDate(event.target, -7, "D");
+						}
+						handled = event.ctrlKey || event.metaKey;
+						break; // -1 week on ctrl or command +up
+				case 39: if (event.ctrlKey || event.metaKey) {
+							$.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), "D");
+						}
+						handled = event.ctrlKey || event.metaKey;
+						// +1 day on ctrl or command +right
+						if (event.originalEvent.altKey) {
+							$.datepicker._adjustDate(event.target, (event.ctrlKey ?
+								+$.datepicker._get(inst, "stepBigMonths") :
+								+$.datepicker._get(inst, "stepMonths")), "M");
+						}
+						// next month/year on alt +right
+						break;
+				case 40: if (event.ctrlKey || event.metaKey) {
+							$.datepicker._adjustDate(event.target, +7, "D");
+						}
+						handled = event.ctrlKey || event.metaKey;
+						break; // +1 week on ctrl or command +down
+				default: handled = false;
+			}
+		} else if (event.keyCode === 36 && event.ctrlKey) { // display the date picker on ctrl+home
+			$.datepicker._showDatepicker(this);
+		} else {
+			handled = false;
+		}
+
+		if (handled) {
+			event.preventDefault();
+			event.stopPropagation();
+		}
+	},
+
+	/* Filter entered characters - based on date format. */
+	_doKeyPress: function(event) {
+		var chars, chr,
+			inst = $.datepicker._getInst(event.target);
+
+		if ($.datepicker._get(inst, "constrainInput")) {
+			chars = $.datepicker._possibleChars($.datepicker._get(inst, "dateFormat"));
+			chr = String.fromCharCode(event.charCode == null ? event.keyCode : event.charCode);
+			return event.ctrlKey || event.metaKey || (chr < " " || !chars || chars.indexOf(chr) > -1);
+		}
+	},
+
+	/* Synchronise manual entry and field/alternate field. */
+	_doKeyUp: function(event) {
+		var date,
+			inst = $.datepicker._getInst(event.target);
+
+		if (inst.input.val() !== inst.lastVal) {
+			try {
+				date = $.datepicker.parseDate($.datepicker._get(inst, "dateFormat"),
+					(inst.input ? inst.input.val() : null),
+					$.datepicker._getFormatConfig(inst));
+
+				if (date) { // only if valid
+					$.datepicker._setDateFromField(inst);
+					$.datepicker._updateAlternate(inst);
+					$.datepicker._updateDatepicker(inst);
+				}
+			}
+			catch (err) {
+			}
+		}
+		return true;
+	},
+
+	/* Pop-up the date picker for a given input field.
+	 * If false returned from beforeShow event handler do not show.
+	 * @param  input  element - the input field attached to the date picker or
+	 *					event - if triggered by focus
+	 */
+	_showDatepicker: function(input) {
+		input = input.target || input;
+		if (input.nodeName.toLowerCase() !== "input") { // find from button/image trigger
+			input = $("input", input.parentNode)[0];
+		}
+
+		if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput === input) { // already here
+			return;
+		}
+
+		var inst, beforeShow, beforeShowSettings, isFixed,
+			offset, showAnim, duration;
+
+		inst = $.datepicker._getInst(input);
+		if ($.datepicker._curInst && $.datepicker._curInst !== inst) {
+			$.datepicker._curInst.dpDiv.stop(true, true);
+			if ( inst && $.datepicker._datepickerShowing ) {
+				$.datepicker._hideDatepicker( $.datepicker._curInst.input[0] );
+			}
+		}
+
+		beforeShow = $.datepicker._get(inst, "beforeShow");
+		beforeShowSettings = beforeShow ? beforeShow.apply(input, [input, inst]) : {};
+		if(beforeShowSettings === false){
+			return;
+		}
+		datepicker_extendRemove(inst.settings, beforeShowSettings);
+
+		inst.lastVal = null;
+		$.datepicker._lastInput = input;
+		$.datepicker._setDateFromField(inst);
+
+		if ($.datepicker._inDialog) { // hide cursor
+			input.value = "";
+		}
+		if (!$.datepicker._pos) { // position below input
+			$.datepicker._pos = $.datepicker._findPos(input);
+			$.datepicker._pos[1] += input.offsetHeight; // add the height
+		}
+
+		isFixed = false;
+		$(input).parents().each(function() {
+			isFixed |= $(this).css("position") === "fixed";
+			return !isFixed;
+		});
+
+		offset = {left: $.datepicker._pos[0], top: $.datepicker._pos[1]};
+		$.datepicker._pos = null;
+		//to avoid flashes on Firefox
+		inst.dpDiv.empty();
+		// determine sizing offscreen
+		inst.dpDiv.css({position: "absolute", display: "block", top: "-1000px"});
+		$.datepicker._updateDatepicker(inst);
+		// fix width for dynamic number of date pickers
+		// and adjust position before showing
+		offset = $.datepicker._checkOffset(inst, offset, isFixed);
+		inst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ?
+			"static" : (isFixed ? "fixed" : "absolute")), display: "none",
+			left: offset.left + "px", top: offset.top + "px"});
+
+		if (!inst.inline) {
+			showAnim = $.datepicker._get(inst, "showAnim");
+			duration = $.datepicker._get(inst, "duration");
+			inst.dpDiv.css( "z-index", datepicker_getZindex( $( input ) ) + 1 );
+			$.datepicker._datepickerShowing = true;
+
+			if ( $.effects && $.effects.effect[ showAnim ] ) {
+				inst.dpDiv.show(showAnim, $.datepicker._get(inst, "showOptions"), duration);
+			} else {
+				inst.dpDiv[showAnim || "show"](showAnim ? duration : null);
+			}
+
+			if ( $.datepicker._shouldFocusInput( inst ) ) {
+				inst.input.focus();
+			}
+
+			$.datepicker._curInst = inst;
+		}
+	},
+
+	/* Generate the date picker content. */
+	_updateDatepicker: function(inst) {
+		this.maxRows = 4; //Reset the max number of rows being displayed (see #7043)
+		datepicker_instActive = inst; // for delegate hover events
+		inst.dpDiv.empty().append(this._generateHTML(inst));
+		this._attachHandlers(inst);
+
+		var origyearshtml,
+			numMonths = this._getNumberOfMonths(inst),
+			cols = numMonths[1],
+			width = 17,
+			activeCell = inst.dpDiv.find( "." + this._dayOverClass + " a" );
+
+		if ( activeCell.length > 0 ) {
+			datepicker_handleMouseover.apply( activeCell.get( 0 ) );
+		}
+
+		inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");
+		if (cols > 1) {
+			inst.dpDiv.addClass("ui-datepicker-multi-" + cols).css("width", (width * cols) + "em");
+		}
+		inst.dpDiv[(numMonths[0] !== 1 || numMonths[1] !== 1 ? "add" : "remove") +
+			"Class"]("ui-datepicker-multi");
+		inst.dpDiv[(this._get(inst, "isRTL") ? "add" : "remove") +
+			"Class"]("ui-datepicker-rtl");
+
+		if (inst === $.datepicker._curInst && $.datepicker._datepickerShowing && $.datepicker._shouldFocusInput( inst ) ) {
+			inst.input.focus();
+		}
+
+		// deffered render of the years select (to avoid flashes on Firefox)
+		if( inst.yearshtml ){
+			origyearshtml = inst.yearshtml;
+			setTimeout(function(){
+				//assure that inst.yearshtml didn't change.
+				if( origyearshtml === inst.yearshtml && inst.yearshtml ){
+					inst.dpDiv.find("select.ui-datepicker-year:first").replaceWith(inst.yearshtml);
+				}
+				origyearshtml = inst.yearshtml = null;
+			}, 0);
+		}
+	},
+
+	// #6694 - don't focus the input if it's already focused
+	// this breaks the change event in IE
+	// Support: IE and jQuery <1.9
+	_shouldFocusInput: function( inst ) {
+		return inst.input && inst.input.is( ":visible" ) && !inst.input.is( ":disabled" ) && !inst.input.is( ":focus" );
+	},
+
+	/* Check positioning to remain on screen. */
+	_checkOffset: function(inst, offset, isFixed) {
+		var dpWidth = inst.dpDiv.outerWidth(),
+			dpHeight = inst.dpDiv.outerHeight(),
+			inputWidth = inst.input ? inst.input.outerWidth() : 0,
+			inputHeight = inst.input ? inst.input.outerHeight() : 0,
+			viewWidth = document.documentElement.clientWidth + (isFixed ? 0 : $(document).scrollLeft()),
+			viewHeight = document.documentElement.clientHeight + (isFixed ? 0 : $(document).scrollTop());
+
+		offset.left -= (this._get(inst, "isRTL") ? (dpWidth - inputWidth) : 0);
+		offset.left -= (isFixed && offset.left === inst.input.offset().left) ? $(document).scrollLeft() : 0;
+		offset.top -= (isFixed && offset.top === (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0;
+
+		// now check if datepicker is showing outside window viewport - move to a better place if so.
+		offset.left -= Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ?
+			Math.abs(offset.left + dpWidth - viewWidth) : 0);
+		offset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ?
+			Math.abs(dpHeight + inputHeight) : 0);
+
+		return offset;
+	},
+
+	/* Find an object's position on the screen. */
+	_findPos: function(obj) {
+		var position,
+			inst = this._getInst(obj),
+			isRTL = this._get(inst, "isRTL");
+
+		while (obj && (obj.type === "hidden" || obj.nodeType !== 1 || $.expr.filters.hidden(obj))) {
+			obj = obj[isRTL ? "previousSibling" : "nextSibling"];
+		}
+
+		position = $(obj).offset();
+		return [position.left, position.top];
+	},
+
+	/* Hide the date picker from view.
+	 * @param  input  element - the input field attached to the date picker
+	 */
+	_hideDatepicker: function(input) {
+		var showAnim, duration, postProcess, onClose,
+			inst = this._curInst;
+
+		if (!inst || (input && inst !== $.data(input, "datepicker"))) {
+			return;
+		}
+
+		if (this._datepickerShowing) {
+			showAnim = this._get(inst, "showAnim");
+			duration = this._get(inst, "duration");
+			postProcess = function() {
+				$.datepicker._tidyDialog(inst);
+			};
+
+			// DEPRECATED: after BC for 1.8.x $.effects[ showAnim ] is not needed
+			if ( $.effects && ( $.effects.effect[ showAnim ] || $.effects[ showAnim ] ) ) {
+				inst.dpDiv.hide(showAnim, $.datepicker._get(inst, "showOptions"), duration, postProcess);
+			} else {
+				inst.dpDiv[(showAnim === "slideDown" ? "slideUp" :
+					(showAnim === "fadeIn" ? "fadeOut" : "hide"))]((showAnim ? duration : null), postProcess);
+			}
+
+			if (!showAnim) {
+				postProcess();
+			}
+			this._datepickerShowing = false;
+
+			onClose = this._get(inst, "onClose");
+			if (onClose) {
+				onClose.apply((inst.input ? inst.input[0] : null), [(inst.input ? inst.input.val() : ""), inst]);
+			}
+
+			this._lastInput = null;
+			if (this._inDialog) {
+				this._dialogInput.css({ position: "absolute", left: "0", top: "-100px" });
+				if ($.blockUI) {
+					$.unblockUI();
+					$("body").append(this.dpDiv);
+				}
+			}
+			this._inDialog = false;
+		}
+	},
+
+	/* Tidy up after a dialog display. */
+	_tidyDialog: function(inst) {
+		inst.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar");
+	},
+
+	/* Close date picker if clicked elsewhere. */
+	_checkExternalClick: function(event) {
+		if (!$.datepicker._curInst) {
+			return;
+		}
+
+		var $target = $(event.target),
+			inst = $.datepicker._getInst($target[0]);
+
+		if ( ( ( $target[0].id !== $.datepicker._mainDivId &&
+				$target.parents("#" + $.datepicker._mainDivId).length === 0 &&
+				!$target.hasClass($.datepicker.markerClassName) &&
+				!$target.closest("." + $.datepicker._triggerClass).length &&
+				$.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI) ) ) ||
+			( $target.hasClass($.datepicker.markerClassName) && $.datepicker._curInst !== inst ) ) {
+				$.datepicker._hideDatepicker();
+		}
+	},
+
+	/* Adjust one of the date sub-fields. */
+	_adjustDate: function(id, offset, period) {
+		var target = $(id),
+			inst = this._getInst(target[0]);
+
+		if (this._isDisabledDatepicker(target[0])) {
+			return;
+		}
+		this._adjustInstDate(inst, offset +
+			(period === "M" ? this._get(inst, "showCurrentAtPos") : 0), // undo positioning
+			period);
+		this._updateDatepicker(inst);
+	},
+
+	/* Action for current link. */
+	_gotoToday: function(id) {
+		var date,
+			target = $(id),
+			inst = this._getInst(target[0]);
+
+		if (this._get(inst, "gotoCurrent") && inst.currentDay) {
+			inst.selectedDay = inst.currentDay;
+			inst.drawMonth = inst.selectedMonth = inst.currentMonth;
+			inst.drawYear = inst.selectedYear = inst.currentYear;
+		} else {
+			date = new Date();
+			inst.selectedDay = date.getDate();
+			inst.drawMonth = inst.selectedMonth = date.getMonth();
+			inst.drawYear = inst.selectedYear = date.getFullYear();
+		}
+		this._notifyChange(inst);
+		this._adjustDate(target);
+	},
+
+	/* Action for selecting a new month/year. */
+	_selectMonthYear: function(id, select, period) {
+		var target = $(id),
+			inst = this._getInst(target[0]);
+
+		inst["selected" + (period === "M" ? "Month" : "Year")] =
+		inst["draw" + (period === "M" ? "Month" : "Year")] =
+			parseInt(select.options[select.selectedIndex].value,10);
+
+		this._notifyChange(inst);
+		this._adjustDate(target);
+	},
+
+	/* Action for selecting a day. */
+	_selectDay: function(id, month, year, td) {
+		var inst,
+			target = $(id);
+
+		if ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) {
+			return;
+		}
+
+		inst = this._getInst(target[0]);
+		inst.selectedDay = inst.currentDay = $("a", td).html();
+		inst.selectedMonth = inst.currentMonth = month;
+		inst.selectedYear = inst.currentYear = year;
+		this._selectDate(id, this._formatDate(inst,
+			inst.currentDay, inst.currentMonth, inst.currentYear));
+	},
+
+	/* Erase the input field and hide the date picker. */
+	_clearDate: function(id) {
+		var target = $(id);
+		this._selectDate(target, "");
+	},
+
+	/* Update the input field with the selected date. */
+	_selectDate: function(id, dateStr) {
+		var onSelect,
+			target = $(id),
+			inst = this._getInst(target[0]);
+
+		dateStr = (dateStr != null ? dateStr : this._formatDate(inst));
+		if (inst.input) {
+			inst.input.val(dateStr);
+		}
+		this._updateAlternate(inst);
+
+		onSelect = this._get(inst, "onSelect");
+		if (onSelect) {
+			onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]);  // trigger custom callback
+		} else if (inst.input) {
+			inst.input.trigger("change"); // fire the change event
+		}
+
+		if (inst.inline){
+			this._updateDatepicker(inst);
+		} else {
+			this._hideDatepicker();
+			this._lastInput = inst.input[0];
+			if (typeof(inst.input[0]) !== "object") {
+				inst.input.focus(); // restore focus
+			}
+			this._lastInput = null;
+		}
+	},
+
+	/* Update any alternate field to synchronise with the main field. */
+	_updateAlternate: function(inst) {
+		var altFormat, date, dateStr,
+			altField = this._get(inst, "altField");
+
+		if (altField) { // update alternate field too
+			altFormat = this._get(inst, "altFormat") || this._get(inst, "dateFormat");
+			date = this._getDate(inst);
+			dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst));
+			$(altField).each(function() { $(this).val(dateStr); });
+		}
+	},
+
+	/* Set as beforeShowDay function to prevent selection of weekends.
+	 * @param  date  Date - the date to customise
+	 * @return [boolean, string] - is this date selectable?, what is its CSS class?
+	 */
+	noWeekends: function(date) {
+		var day = date.getDay();
+		return [(day > 0 && day < 6), ""];
+	},
+
+	/* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition.
+	 * @param  date  Date - the date to get the week for
+	 * @return  number - the number of the week within the year that contains this date
+	 */
+	iso8601Week: function(date) {
+		var time,
+			checkDate = new Date(date.getTime());
+
+		// Find Thursday of this week starting on Monday
+		checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));
+
+		time = checkDate.getTime();
+		checkDate.setMonth(0); // Compare with Jan 1
+		checkDate.setDate(1);
+		return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1;
+	},
+
+	/* Parse a string value into a date object.
+	 * See formatDate below for the possible formats.
+	 *
+	 * @param  format string - the expected format of the date
+	 * @param  value string - the date in the above format
+	 * @param  settings Object - attributes include:
+	 *					shortYearCutoff  number - the cutoff year for determining the century (optional)
+	 *					dayNamesShort	string[7] - abbreviated names of the days from Sunday (optional)
+	 *					dayNames		string[7] - names of the days from Sunday (optional)
+	 *					monthNamesShort string[12] - abbreviated names of the months (optional)
+	 *					monthNames		string[12] - names of the months (optional)
+	 * @return  Date - the extracted date value or null if value is blank
+	 */
+	parseDate: function (format, value, settings) {
+		if (format == null || value == null) {
+			throw "Invalid arguments";
+		}
+
+		value = (typeof value === "object" ? value.toString() : value + "");
+		if (value === "") {
+			return null;
+		}
+
+		var iFormat, dim, extra,
+			iValue = 0,
+			shortYearCutoffTemp = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff,
+			shortYearCutoff = (typeof shortYearCutoffTemp !== "string" ? shortYearCutoffTemp :
+				new Date().getFullYear() % 100 + parseInt(shortYearCutoffTemp, 10)),
+			dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort,
+			dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames,
+			monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort,
+			monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames,
+			year = -1,
+			month = -1,
+			day = -1,
+			doy = -1,
+			literal = false,
+			date,
+			// Check whether a format character is doubled
+			lookAhead = function(match) {
+				var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match);
+				if (matches) {
+					iFormat++;
+				}
+				return matches;
+			},
+			// Extract a number from the string value
+			getNumber = function(match) {
+				var isDoubled = lookAhead(match),
+					size = (match === "@" ? 14 : (match === "!" ? 20 :
+					(match === "y" && isDoubled ? 4 : (match === "o" ? 3 : 2)))),
+					minSize = (match === "y" ? size : 1),
+					digits = new RegExp("^\\d{" + minSize + "," + size + "}"),
+					num = value.substring(iValue).match(digits);
+				if (!num) {
+					throw "Missing number at position " + iValue;
+				}
+				iValue += num[0].length;
+				return parseInt(num[0], 10);
+			},
+			// Extract a name from the string value and convert to an index
+			getName = function(match, shortNames, longNames) {
+				var index = -1,
+					names = $.map(lookAhead(match) ? longNames : shortNames, function (v, k) {
+						return [ [k, v] ];
+					}).sort(function (a, b) {
+						return -(a[1].length - b[1].length);
+					});
+
+				$.each(names, function (i, pair) {
+					var name = pair[1];
+					if (value.substr(iValue, name.length).toLowerCase() === name.toLowerCase()) {
+						index = pair[0];
+						iValue += name.length;
+						return false;
+					}
+				});
+				if (index !== -1) {
+					return index + 1;
+				} else {
+					throw "Unknown name at position " + iValue;
+				}
+			},
+			// Confirm that a literal character matches the string value
+			checkLiteral = function() {
+				if (value.charAt(iValue) !== format.charAt(iFormat)) {
+					throw "Unexpected literal at position " + iValue;
+				}
+				iValue++;
+			};
+
+		for (iFormat = 0; iFormat < format.length; iFormat++) {
+			if (literal) {
+				if (format.charAt(iFormat) === "'" && !lookAhead("'")) {
+					literal = false;
+				} else {
+					checkLiteral();
+				}
+			} else {
+				switch (format.charAt(iFormat)) {
+					case "d":
+						day = getNumber("d");
+						break;
+					case "D":
+						getName("D", dayNamesShort, dayNames);
+						break;
+					case "o":
+						doy = getNumber("o");
+						break;
+					case "m":
+						month = getNumber("m");
+						break;
+					case "M":
+						month = getName("M", monthNamesShort, monthNames);
+						break;
+					case "y":
+						year = getNumber("y");
+						break;
+					case "@":
+						date = new Date(getNumber("@"));
+						year = date.getFullYear();
+						month = date.getMonth() + 1;
+						day = date.getDate();
+						break;
+					case "!":
+						date = new Date((getNumber("!") - this._ticksTo1970) / 10000);
+						year = date.getFullYear();
+						month = date.getMonth() + 1;
+						day = date.getDate();
+						break;
+					case "'":
+						if (lookAhead("'")){
+							checkLiteral();
+						} else {
+							literal = true;
+						}
+						break;
+					default:
+						checkLiteral();
+				}
+			}
+		}
+
+		if (iValue < value.length){
+			extra = value.substr(iValue);
+			if (!/^\s+/.test(extra)) {
+				throw "Extra/unparsed characters found in date: " + extra;
+			}
+		}
+
+		if (year === -1) {
+			year = new Date().getFullYear();
+		} else if (year < 100) {
+			year += new Date().getFullYear() - new Date().getFullYear() % 100 +
+				(year <= shortYearCutoff ? 0 : -100);
+		}
+
+		if (doy > -1) {
+			month = 1;
+			day = doy;
+			do {
+				dim = this._getDaysInMonth(year, month - 1);
+				if (day <= dim) {
+					break;
+				}
+				month++;
+				day -= dim;
+			} while (true);
+		}
+
+		date = this._daylightSavingAdjust(new Date(year, month - 1, day));
+		if (date.getFullYear() !== year || date.getMonth() + 1 !== month || date.getDate() !== day) {
+			throw "Invalid date"; // E.g. 31/02/00
+		}
+		return date;
+	},
+
+	/* Standard date formats. */
+	ATOM: "yy-mm-dd", // RFC 3339 (ISO 8601)
+	COOKIE: "D, dd M yy",
+	ISO_8601: "yy-mm-dd",
+	RFC_822: "D, d M y",
+	RFC_850: "DD, dd-M-y",
+	RFC_1036: "D, d M y",
+	RFC_1123: "D, d M yy",
+	RFC_2822: "D, d M yy",
+	RSS: "D, d M y", // RFC 822
+	TICKS: "!",
+	TIMESTAMP: "@",
+	W3C: "yy-mm-dd", // ISO 8601
+
+	_ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) +
+		Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000),
+
+	/* Format a date object into a string value.
+	 * The format can be combinations of the following:
+	 * d  - day of month (no leading zero)
+	 * dd - day of month (two digit)
+	 * o  - day of year (no leading zeros)
+	 * oo - day of year (three digit)
+	 * D  - day name short
+	 * DD - day name long
+	 * m  - month of year (no leading zero)
+	 * mm - month of year (two digit)
+	 * M  - month name short
+	 * MM - month name long
+	 * y  - year (two digit)
+	 * yy - year (four digit)
+	 * @ - Unix timestamp (ms since 01/01/1970)
+	 * ! - Windows ticks (100ns since 01/01/0001)
+	 * "..." - literal text
+	 * '' - single quote
+	 *
+	 * @param  format string - the desired format of the date
+	 * @param  date Date - the date value to format
+	 * @param  settings Object - attributes include:
+	 *					dayNamesShort	string[7] - abbreviated names of the days from Sunday (optional)
+	 *					dayNames		string[7] - names of the days from Sunday (optional)
+	 *					monthNamesShort string[12] - abbreviated names of the months (optional)
+	 *					monthNames		string[12] - names of the months (optional)
+	 * @return  string - the date in the above format
+	 */
+	formatDate: function (format, date, settings) {
+		if (!date) {
+			return "";
+		}
+
+		var iFormat,
+			dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort,
+			dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames,
+			monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort,
+			monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames,
+			// Check whether a format character is doubled
+			lookAhead = function(match) {
+				var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match);
+				if (matches) {
+					iFormat++;
+				}
+				return matches;
+			},
+			// Format a number, with leading zero if necessary
+			formatNumber = function(match, value, len) {
+				var num = "" + value;
+				if (lookAhead(match)) {
+					while (num.length < len) {
+						num = "0" + num;
+					}
+				}
+				return num;
+			},
+			// Format a name, short or long as requested
+			formatName = function(match, value, shortNames, longNames) {
+				return (lookAhead(match) ? longNames[value] : shortNames[value]);
+			},
+			output = "",
+			literal = false;
+
+		if (date) {
+			for (iFormat = 0; iFormat < format.length; iFormat++) {
+				if (literal) {
+					if (format.charAt(iFormat) === "'" && !lookAhead("'")) {
+						literal = false;
+					} else {
+						output += format.charAt(iFormat);
+					}
+				} else {
+					switch (format.charAt(iFormat)) {
+						case "d":
+							output += formatNumber("d", date.getDate(), 2);
+							break;
+						case "D":
+							output += formatName("D", date.getDay(), dayNamesShort, dayNames);
+							break;
+						case "o":
+							output += formatNumber("o",
+								Math.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3);
+							break;
+						case "m":
+							output += formatNumber("m", date.getMonth() + 1, 2);
+							break;
+						case "M":
+							output += formatName("M", date.getMonth(), monthNamesShort, monthNames);
+							break;
+						case "y":
+							output += (lookAhead("y") ? date.getFullYear() :
+								(date.getYear() % 100 < 10 ? "0" : "") + date.getYear() % 100);
+							break;
+						case "@":
+							output += date.getTime();
+							break;
+						case "!":
+							output += date.getTime() * 10000 + this._ticksTo1970;
+							break;
+						case "'":
+							if (lookAhead("'")) {
+								output += "'";
+							} else {
+								literal = true;
+							}
+							break;
+						default:
+							output += format.charAt(iFormat);
+					}
+				}
+			}
+		}
+		return output;
+	},
+
+	/* Extract all possible characters from the date format. */
+	_possibleChars: function (format) {
+		var iFormat,
+			chars = "",
+			literal = false,
+			// Check whether a format character is doubled
+			lookAhead = function(match) {
+				var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match);
+				if (matches) {
+					iFormat++;
+				}
+				return matches;
+			};
+
+		for (iFormat = 0; iFormat < format.length; iFormat++) {
+			if (literal) {
+				if (format.charAt(iFormat) === "'" && !lookAhead("'")) {
+					literal = false;
+				} else {
+					chars += format.charAt(iFormat);
+				}
+			} else {
+				switch (format.charAt(iFormat)) {
+					case "d": case "m": case "y": case "@":
+						chars += "0123456789";
+						break;
+					case "D": case "M":
+						return null; // Accept anything
+					case "'":
+						if (lookAhead("'")) {
+							chars += "'";
+						} else {
+							literal = true;
+						}
+						break;
+					default:
+						chars += format.charAt(iFormat);
+				}
+			}
+		}
+		return chars;
+	},
+
+	/* Get a setting value, defaulting if necessary. */
+	_get: function(inst, name) {
+		return inst.settings[name] !== undefined ?
+			inst.settings[name] : this._defaults[name];
+	},
+
+	/* Parse existing date and initialise date picker. */
+	_setDateFromField: function(inst, noDefault) {
+		if (inst.input.val() === inst.lastVal) {
+			return;
+		}
+
+		var dateFormat = this._get(inst, "dateFormat"),
+			dates = inst.lastVal = inst.input ? inst.input.val() : null,
+			defaultDate = this._getDefaultDate(inst),
+			date = defaultDate,
+			settings = this._getFormatConfig(inst);
+
+		try {
+			date = this.parseDate(dateFormat, dates, settings) || defaultDate;
+		} catch (event) {
+			dates = (noDefault ? "" : dates);
+		}
+		inst.selectedDay = date.getDate();
+		inst.drawMonth = inst.selectedMonth = date.getMonth();
+		inst.drawYear = inst.selectedYear = date.getFullYear();
+		inst.currentDay = (dates ? date.getDate() : 0);
+		inst.currentMonth = (dates ? date.getMonth() : 0);
+		inst.currentYear = (dates ? date.getFullYear() : 0);
+		this._adjustInstDate(inst);
+	},
+
+	/* Retrieve the default date shown on opening. */
+	_getDefaultDate: function(inst) {
+		return this._restrictMinMax(inst,
+			this._determineDate(inst, this._get(inst, "defaultDate"), new Date()));
+	},
+
+	/* A date may be specified as an exact value or a relative one. */
+	_determineDate: function(inst, date, defaultDate) {
+		var offsetNumeric = function(offset) {
+				var date = new Date();
+				date.setDate(date.getDate() + offset);
+				return date;
+			},
+			offsetString = function(offset) {
+				try {
+					return $.datepicker.parseDate($.datepicker._get(inst, "dateFormat"),
+						offset, $.datepicker._getFormatConfig(inst));
+				}
+				catch (e) {
+					// Ignore
+				}
+
+				var date = (offset.toLowerCase().match(/^c/) ?
+					$.datepicker._getDate(inst) : null) || new Date(),
+					year = date.getFullYear(),
+					month = date.getMonth(),
+					day = date.getDate(),
+					pattern = /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,
+					matches = pattern.exec(offset);
+
+				while (matches) {
+					switch (matches[2] || "d") {
+						case "d" : case "D" :
+							day += parseInt(matches[1],10); break;
+						case "w" : case "W" :
+							day += parseInt(matches[1],10) * 7; break;
+						case "m" : case "M" :
+							month += parseInt(matches[1],10);
+							day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
+							break;
+						case "y": case "Y" :
+							year += parseInt(matches[1],10);
+							day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
+							break;
+					}
+					matches = pattern.exec(offset);
+				}
+				return new Date(year, month, day);
+			},
+			newDate = (date == null || date === "" ? defaultDate : (typeof date === "string" ? offsetString(date) :
+				(typeof date === "number" ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : new Date(date.getTime()))));
+
+		newDate = (newDate && newDate.toString() === "Invalid Date" ? defaultDate : newDate);
+		if (newDate) {
+			newDate.setHours(0);
+			newDate.setMinutes(0);
+			newDate.setSeconds(0);
+			newDate.setMilliseconds(0);
+		}
+		return this._daylightSavingAdjust(newDate);
+	},
+
+	/* Handle switch to/from daylight saving.
+	 * Hours may be non-zero on daylight saving cut-over:
+	 * > 12 when midnight changeover, but then cannot generate
+	 * midnight datetime, so jump to 1AM, otherwise reset.
+	 * @param  date  (Date) the date to check
+	 * @return  (Date) the corrected date
+	 */
+	_daylightSavingAdjust: function(date) {
+		if (!date) {
+			return null;
+		}
+		date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);
+		return date;
+	},
+
+	/* Set the date(s) directly. */
+	_setDate: function(inst, date, noChange) {
+		var clear = !date,
+			origMonth = inst.selectedMonth,
+			origYear = inst.selectedYear,
+			newDate = this._restrictMinMax(inst, this._determineDate(inst, date, new Date()));
+
+		inst.selectedDay = inst.currentDay = newDate.getDate();
+		inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth();
+		inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear();
+		if ((origMonth !== inst.selectedMonth || origYear !== inst.selectedYear) && !noChange) {
+			this._notifyChange(inst);
+		}
+		this._adjustInstDate(inst);
+		if (inst.input) {
+			inst.input.val(clear ? "" : this._formatDate(inst));
+		}
+	},
+
+	/* Retrieve the date(s) directly. */
+	_getDate: function(inst) {
+		var startDate = (!inst.currentYear || (inst.input && inst.input.val() === "") ? null :
+			this._daylightSavingAdjust(new Date(
+			inst.currentYear, inst.currentMonth, inst.currentDay)));
+			return startDate;
+	},
+
+	/* Attach the onxxx handlers.  These are declared statically so
+	 * they work with static code transformers like Caja.
+	 */
+	_attachHandlers: function(inst) {
+		var stepMonths = this._get(inst, "stepMonths"),
+			id = "#" + inst.id.replace( /\\\\/g, "\\" );
+		inst.dpDiv.find("[data-handler]").map(function () {
+			var handler = {
+				prev: function () {
+					$.datepicker._adjustDate(id, -stepMonths, "M");
+				},
+				next: function () {
+					$.datepicker._adjustDate(id, +stepMonths, "M");
+				},
+				hide: function () {
+					$.datepicker._hideDatepicker();
+				},
+				today: function () {
+					$.datepicker._gotoToday(id);
+				},
+				selectDay: function () {
+					$.datepicker._selectDay(id, +this.getAttribute("data-month"), +this.getAttribute("data-year"), this);
+					return false;
+				},
+				selectMonth: function () {
+					$.datepicker._selectMonthYear(id, this, "M");
+					return false;
+				},
+				selectYear: function () {
+					$.datepicker._selectMonthYear(id, this, "Y");
+					return false;
+				}
+			};
+			$(this).bind(this.getAttribute("data-event"), handler[this.getAttribute("data-handler")]);
+		});
+	},
+
+	/* Generate the HTML for the current state of the date picker. */
+	_generateHTML: function(inst) {
+		var maxDraw, prevText, prev, nextText, next, currentText, gotoDate,
+			controls, buttonPanel, firstDay, showWeek, dayNames, dayNamesMin,
+			monthNames, monthNamesShort, beforeShowDay, showOtherMonths,
+			selectOtherMonths, defaultDate, html, dow, row, group, col, selectedDate,
+			cornerClass, calender, thead, day, daysInMonth, leadDays, curRows, numRows,
+			printDate, dRow, tbody, daySettings, otherMonth, unselectable,
+			tempDate = new Date(),
+			today = this._daylightSavingAdjust(
+				new Date(tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate())), // clear time
+			isRTL = this._get(inst, "isRTL"),
+			showButtonPanel = this._get(inst, "showButtonPanel"),
+			hideIfNoPrevNext = this._get(inst, "hideIfNoPrevNext"),
+			navigationAsDateFormat = this._get(inst, "navigationAsDateFormat"),
+			numMonths = this._getNumberOfMonths(inst),
+			showCurrentAtPos = this._get(inst, "showCurrentAtPos"),
+			stepMonths = this._get(inst, "stepMonths"),
+			isMultiMonth = (numMonths[0] !== 1 || numMonths[1] !== 1),
+			currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) :
+				new Date(inst.currentYear, inst.currentMonth, inst.currentDay))),
+			minDate = this._getMinMaxDate(inst, "min"),
+			maxDate = this._getMinMaxDate(inst, "max"),
+			drawMonth = inst.drawMonth - showCurrentAtPos,
+			drawYear = inst.drawYear;
+
+		if (drawMonth < 0) {
+			drawMonth += 12;
+			drawYear--;
+		}
+		if (maxDate) {
+			maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(),
+				maxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1, maxDate.getDate()));
+			maxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw);
+			while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) {
+				drawMonth--;
+				if (drawMonth < 0) {
+					drawMonth = 11;
+					drawYear--;
+				}
+			}
+		}
+		inst.drawMonth = drawMonth;
+		inst.drawYear = drawYear;
+
+		prevText = this._get(inst, "prevText");
+		prevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText,
+			this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)),
+			this._getFormatConfig(inst)));
+
+		prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ?
+			"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click'" +
+			" title='" + prevText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "e" : "w") + "'>" + prevText + "</span></a>" :
+			(hideIfNoPrevNext ? "" : "<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+ prevText +"'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "e" : "w") + "'>" + prevText + "</span></a>"));
+
+		nextText = this._get(inst, "nextText");
+		nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText,
+			this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)),
+			this._getFormatConfig(inst)));
+
+		next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ?
+			"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click'" +
+			" title='" + nextText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "w" : "e") + "'>" + nextText + "</span></a>" :
+			(hideIfNoPrevNext ? "" : "<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+ nextText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "w" : "e") + "'>" + nextText + "</span></a>"));
+
+		currentText = this._get(inst, "currentText");
+		gotoDate = (this._get(inst, "gotoCurrent") && inst.currentDay ? currentDate : today);
+		currentText = (!navigationAsDateFormat ? currentText :
+			this.formatDate(currentText, gotoDate, this._getFormatConfig(inst)));
+
+		controls = (!inst.inline ? "<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>" +
+			this._get(inst, "closeText") + "</button>" : "");
+
+		buttonPanel = (showButtonPanel) ? "<div class='ui-datepicker-buttonpane ui-widget-content'>" + (isRTL ? controls : "") +
+			(this._isInRange(inst, gotoDate) ? "<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'" +
+			">" + currentText + "</button>" : "") + (isRTL ? "" : controls) + "</div>" : "";
+
+		firstDay = parseInt(this._get(inst, "firstDay"),10);
+		firstDay = (isNaN(firstDay) ? 0 : firstDay);
+
+		showWeek = this._get(inst, "showWeek");
+		dayNames = this._get(inst, "dayNames");
+		dayNamesMin = this._get(inst, "dayNamesMin");
+		monthNames = this._get(inst, "monthNames");
+		monthNamesShort = this._get(inst, "monthNamesShort");
+		beforeShowDay = this._get(inst, "beforeShowDay");
+		showOtherMonths = this._get(inst, "showOtherMonths");
+		selectOtherMonths = this._get(inst, "selectOtherMonths");
+		defaultDate = this._getDefaultDate(inst);
+		html = "";
+		dow;
+		for (row = 0; row < numMonths[0]; row++) {
+			group = "";
+			this.maxRows = 4;
+			for (col = 0; col < numMonths[1]; col++) {
+				selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay));
+				cornerClass = " ui-corner-all";
+				calender = "";
+				if (isMultiMonth) {
+					calender += "<div class='ui-datepicker-group";
+					if (numMonths[1] > 1) {
+						switch (col) {
+							case 0: calender += " ui-datepicker-group-first";
+								cornerClass = " ui-corner-" + (isRTL ? "right" : "left"); break;
+							case numMonths[1]-1: calender += " ui-datepicker-group-last";
+								cornerClass = " ui-corner-" + (isRTL ? "left" : "right"); break;
+							default: calender += " ui-datepicker-group-middle"; cornerClass = ""; break;
+						}
+					}
+					calender += "'>";
+				}
+				calender += "<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix" + cornerClass + "'>" +
+					(/all|left/.test(cornerClass) && row === 0 ? (isRTL ? next : prev) : "") +
+					(/all|right/.test(cornerClass) && row === 0 ? (isRTL ? prev : next) : "") +
+					this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate,
+					row > 0 || col > 0, monthNames, monthNamesShort) + // draw month headers
+					"</div><table class='ui-datepicker-calendar'><thead>" +
+					"<tr>";
+				thead = (showWeek ? "<th class='ui-datepicker-week-col'>" + this._get(inst, "weekHeader") + "</th>" : "");
+				for (dow = 0; dow < 7; dow++) { // days of the week
+					day = (dow + firstDay) % 7;
+					thead += "<th scope='col'" + ((dow + firstDay + 6) % 7 >= 5 ? " class='ui-datepicker-week-end'" : "") + ">" +
+						"<span title='" + dayNames[day] + "'>" + dayNamesMin[day] + "</span></th>";
+				}
+				calender += thead + "</tr></thead><tbody>";
+				daysInMonth = this._getDaysInMonth(drawYear, drawMonth);
+				if (drawYear === inst.selectedYear && drawMonth === inst.selectedMonth) {
+					inst.selectedDay = Math.min(inst.selectedDay, daysInMonth);
+				}
+				leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7;
+				curRows = Math.ceil((leadDays + daysInMonth) / 7); // calculate the number of rows to generate
+				numRows = (isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows); //If multiple months, use the higher number of rows (see #7043)
+				this.maxRows = numRows;
+				printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays));
+				for (dRow = 0; dRow < numRows; dRow++) { // create date picker rows
+					calender += "<tr>";
+					tbody = (!showWeek ? "" : "<td class='ui-datepicker-week-col'>" +
+						this._get(inst, "calculateWeek")(printDate) + "</td>");
+					for (dow = 0; dow < 7; dow++) { // create date picker days
+						daySettings = (beforeShowDay ?
+							beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, ""]);
+						otherMonth = (printDate.getMonth() !== drawMonth);
+						unselectable = (otherMonth && !selectOtherMonths) || !daySettings[0] ||
+							(minDate && printDate < minDate) || (maxDate && printDate > maxDate);
+						tbody += "<td class='" +
+							((dow + firstDay + 6) % 7 >= 5 ? " ui-datepicker-week-end" : "") + // highlight weekends
+							(otherMonth ? " ui-datepicker-other-month" : "") + // highlight days from other months
+							((printDate.getTime() === selectedDate.getTime() && drawMonth === inst.selectedMonth && inst._keyEvent) || // user pressed key
+							(defaultDate.getTime() === printDate.getTime() && defaultDate.getTime() === selectedDate.getTime()) ?
+							// or defaultDate is current printedDate and defaultDate is selectedDate
+							" " + this._dayOverClass : "") + // highlight selected day
+							(unselectable ? " " + this._unselectableClass + " ui-state-disabled": "") +  // highlight unselectable days
+							(otherMonth && !showOtherMonths ? "" : " " + daySettings[1] + // highlight custom dates
+							(printDate.getTime() === currentDate.getTime() ? " " + this._currentClass : "") + // highlight selected day
+							(printDate.getTime() === today.getTime() ? " ui-datepicker-today" : "")) + "'" + // highlight today (if different)
+							((!otherMonth || showOtherMonths) && daySettings[2] ? " title='" + daySettings[2].replace(/'/g, "&#39;") + "'" : "") + // cell title
+							(unselectable ? "" : " data-handler='selectDay' data-event='click' data-month='" + printDate.getMonth() + "' data-year='" + printDate.getFullYear() + "'") + ">" + // actions
+							(otherMonth && !showOtherMonths ? "&#xa0;" : // display for other months
+							(unselectable ? "<span class='ui-state-default'>" + printDate.getDate() + "</span>" : "<a class='ui-state-default" +
+							(printDate.getTime() === today.getTime() ? " ui-state-highlight" : "") +
+							(printDate.getTime() === currentDate.getTime() ? " ui-state-active" : "") + // highlight selected day
+							(otherMonth ? " ui-priority-secondary" : "") + // distinguish dates from other months
+							"' href='#'>" + printDate.getDate() + "</a>")) + "</td>"; // display selectable date
+						printDate.setDate(printDate.getDate() + 1);
+						printDate = this._daylightSavingAdjust(printDate);
+					}
+					calender += tbody + "</tr>";
+				}
+				drawMonth++;
+				if (drawMonth > 11) {
+					drawMonth = 0;
+					drawYear++;
+				}
+				calender += "</tbody></table>" + (isMultiMonth ? "</div>" +
+							((numMonths[0] > 0 && col === numMonths[1]-1) ? "<div class='ui-datepicker-row-break'></div>" : "") : "");
+				group += calender;
+			}
+			html += group;
+		}
+		html += buttonPanel;
+		inst._keyEvent = false;
+		return html;
+	},
+
+	/* Generate the month and year header. */
+	_generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate,
+			secondary, monthNames, monthNamesShort) {
+
+		var inMinYear, inMaxYear, month, years, thisYear, determineYear, year, endYear,
+			changeMonth = this._get(inst, "changeMonth"),
+			changeYear = this._get(inst, "changeYear"),
+			showMonthAfterYear = this._get(inst, "showMonthAfterYear"),
+			html = "<div class='ui-datepicker-title'>",
+			monthHtml = "";
+
+		// month selection
+		if (secondary || !changeMonth) {
+			monthHtml += "<span class='ui-datepicker-month'>" + monthNames[drawMonth] + "</span>";
+		} else {
+			inMinYear = (minDate && minDate.getFullYear() === drawYear);
+			inMaxYear = (maxDate && maxDate.getFullYear() === drawYear);
+			monthHtml += "<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>";
+			for ( month = 0; month < 12; month++) {
+				if ((!inMinYear || month >= minDate.getMonth()) && (!inMaxYear || month <= maxDate.getMonth())) {
+					monthHtml += "<option value='" + month + "'" +
+						(month === drawMonth ? " selected='selected'" : "") +
+						">" + monthNamesShort[month] + "</option>";
+				}
+			}
+			monthHtml += "</select>";
+		}
+
+		if (!showMonthAfterYear) {
+			html += monthHtml + (secondary || !(changeMonth && changeYear) ? "&#xa0;" : "");
+		}
+
+		// year selection
+		if ( !inst.yearshtml ) {
+			inst.yearshtml = "";
+			if (secondary || !changeYear) {
+				html += "<span class='ui-datepicker-year'>" + drawYear + "</span>";
+			} else {
+				// determine range of years to display
+				years = this._get(inst, "yearRange").split(":");
+				thisYear = new Date().getFullYear();
+				determineYear = function(value) {
+					var year = (value.match(/c[+\-].*/) ? drawYear + parseInt(value.substring(1), 10) :
+						(value.match(/[+\-].*/) ? thisYear + parseInt(value, 10) :
+						parseInt(value, 10)));
+					return (isNaN(year) ? thisYear : year);
+				};
+				year = determineYear(years[0]);
+				endYear = Math.max(year, determineYear(years[1] || ""));
+				year = (minDate ? Math.max(year, minDate.getFullYear()) : year);
+				endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear);
+				inst.yearshtml += "<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";
+				for (; year <= endYear; year++) {
+					inst.yearshtml += "<option value='" + year + "'" +
+						(year === drawYear ? " selected='selected'" : "") +
+						">" + year + "</option>";
+				}
+				inst.yearshtml += "</select>";
+
+				html += inst.yearshtml;
+				inst.yearshtml = null;
+			}
+		}
+
+		html += this._get(inst, "yearSuffix");
+		if (showMonthAfterYear) {
+			html += (secondary || !(changeMonth && changeYear) ? "&#xa0;" : "") + monthHtml;
+		}
+		html += "</div>"; // Close datepicker_header
+		return html;
+	},
+
+	/* Adjust one of the date sub-fields. */
+	_adjustInstDate: function(inst, offset, period) {
+		var year = inst.drawYear + (period === "Y" ? offset : 0),
+			month = inst.drawMonth + (period === "M" ? offset : 0),
+			day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) + (period === "D" ? offset : 0),
+			date = this._restrictMinMax(inst, this._daylightSavingAdjust(new Date(year, month, day)));
+
+		inst.selectedDay = date.getDate();
+		inst.drawMonth = inst.selectedMonth = date.getMonth();
+		inst.drawYear = inst.selectedYear = date.getFullYear();
+		if (period === "M" || period === "Y") {
+			this._notifyChange(inst);
+		}
+	},
+
+	/* Ensure a date is within any min/max bounds. */
+	_restrictMinMax: function(inst, date) {
+		var minDate = this._getMinMaxDate(inst, "min"),
+			maxDate = this._getMinMaxDate(inst, "max"),
+			newDate = (minDate && date < minDate ? minDate : date);
+		return (maxDate && newDate > maxDate ? maxDate : newDate);
+	},
+
+	/* Notify change of month/year. */
+	_notifyChange: function(inst) {
+		var onChange = this._get(inst, "onChangeMonthYear");
+		if (onChange) {
+			onChange.apply((inst.input ? inst.input[0] : null),
+				[inst.selectedYear, inst.selectedMonth + 1, inst]);
+		}
+	},
+
+	/* Determine the number of months to show. */
+	_getNumberOfMonths: function(inst) {
+		var numMonths = this._get(inst, "numberOfMonths");
+		return (numMonths == null ? [1, 1] : (typeof numMonths === "number" ? [1, numMonths] : numMonths));
+	},
+
+	/* Determine the current maximum date - ensure no time components are set. */
+	_getMinMaxDate: function(inst, minMax) {
+		return this._determineDate(inst, this._get(inst, minMax + "Date"), null);
+	},
+
+	/* Find the number of days in a given month. */
+	_getDaysInMonth: function(year, month) {
+		return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate();
+	},
+
+	/* Find the day of the week of the first of a month. */
+	_getFirstDayOfMonth: function(year, month) {
+		return new Date(year, month, 1).getDay();
+	},
+
+	/* Determines if we should allow a "next/prev" month display change. */
+	_canAdjustMonth: function(inst, offset, curYear, curMonth) {
+		var numMonths = this._getNumberOfMonths(inst),
+			date = this._daylightSavingAdjust(new Date(curYear,
+			curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1));
+
+		if (offset < 0) {
+			date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth()));
+		}
+		return this._isInRange(inst, date);
+	},
+
+	/* Is the given date in the accepted range? */
+	_isInRange: function(inst, date) {
+		var yearSplit, currentYear,
+			minDate = this._getMinMaxDate(inst, "min"),
+			maxDate = this._getMinMaxDate(inst, "max"),
+			minYear = null,
+			maxYear = null,
+			years = this._get(inst, "yearRange");
+			if (years){
+				yearSplit = years.split(":");
+				currentYear = new Date().getFullYear();
+				minYear = parseInt(yearSplit[0], 10);
+				maxYear = parseInt(yearSplit[1], 10);
+				if ( yearSplit[0].match(/[+\-].*/) ) {
+					minYear += currentYear;
+				}
+				if ( yearSplit[1].match(/[+\-].*/) ) {
+					maxYear += currentYear;
+				}
+			}
+
+		return ((!minDate || date.getTime() >= minDate.getTime()) &&
+			(!maxDate || date.getTime() <= maxDate.getTime()) &&
+			(!minYear || date.getFullYear() >= minYear) &&
+			(!maxYear || date.getFullYear() <= maxYear));
+	},
+
+	/* Provide the configuration settings for formatting/parsing. */
+	_getFormatConfig: function(inst) {
+		var shortYearCutoff = this._get(inst, "shortYearCutoff");
+		shortYearCutoff = (typeof shortYearCutoff !== "string" ? shortYearCutoff :
+			new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));
+		return {shortYearCutoff: shortYearCutoff,
+			dayNamesShort: this._get(inst, "dayNamesShort"), dayNames: this._get(inst, "dayNames"),
+			monthNamesShort: this._get(inst, "monthNamesShort"), monthNames: this._get(inst, "monthNames")};
+	},
+
+	/* Format the given date for display. */
+	_formatDate: function(inst, day, month, year) {
+		if (!day) {
+			inst.currentDay = inst.selectedDay;
+			inst.currentMonth = inst.selectedMonth;
+			inst.currentYear = inst.selectedYear;
+		}
+		var date = (day ? (typeof day === "object" ? day :
+			this._daylightSavingAdjust(new Date(year, month, day))) :
+			this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
+		return this.formatDate(this._get(inst, "dateFormat"), date, this._getFormatConfig(inst));
+	}
+});
+
+/*
+ * Bind hover events for datepicker elements.
+ * Done via delegate so the binding only occurs once in the lifetime of the parent div.
+ * Global datepicker_instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.
+ */
+function datepicker_bindHover(dpDiv) {
+	var selector = "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";
+	return dpDiv.delegate(selector, "mouseout", function() {
+			$(this).removeClass("ui-state-hover");
+			if (this.className.indexOf("ui-datepicker-prev") !== -1) {
+				$(this).removeClass("ui-datepicker-prev-hover");
+			}
+			if (this.className.indexOf("ui-datepicker-next") !== -1) {
+				$(this).removeClass("ui-datepicker-next-hover");
+			}
+		})
+		.delegate( selector, "mouseover", datepicker_handleMouseover );
+}
+
+function datepicker_handleMouseover() {
+	if (!$.datepicker._isDisabledDatepicker( datepicker_instActive.inline? datepicker_instActive.dpDiv.parent()[0] : datepicker_instActive.input[0])) {
+		$(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");
+		$(this).addClass("ui-state-hover");
+		if (this.className.indexOf("ui-datepicker-prev") !== -1) {
+			$(this).addClass("ui-datepicker-prev-hover");
+		}
+		if (this.className.indexOf("ui-datepicker-next") !== -1) {
+			$(this).addClass("ui-datepicker-next-hover");
+		}
+	}
+}
+
+/* jQuery extend now ignores nulls! */
+function datepicker_extendRemove(target, props) {
+	$.extend(target, props);
+	for (var name in props) {
+		if (props[name] == null) {
+			target[name] = props[name];
+		}
+	}
+	return target;
+}
+
+/* Invoke the datepicker functionality.
+   @param  options  string - a command, optionally followed by additional parameters or
+					Object - settings for attaching new datepicker functionality
+   @return  jQuery object */
+$.fn.datepicker = function(options){
+
+	/* Verify an empty collection wasn't passed - Fixes #6976 */
+	if ( !this.length ) {
+		return this;
+	}
+
+	/* Initialise the date picker. */
+	if (!$.datepicker.initialized) {
+		$(document).mousedown($.datepicker._checkExternalClick);
+		$.datepicker.initialized = true;
+	}
+
+	/* Append datepicker main container to body if not exist. */
+	if ($("#"+$.datepicker._mainDivId).length === 0) {
+		$("body").append($.datepicker.dpDiv);
+	}
+
+	var otherArgs = Array.prototype.slice.call(arguments, 1);
+	if (typeof options === "string" && (options === "isDisabled" || options === "getDate" || options === "widget")) {
+		return $.datepicker["_" + options + "Datepicker"].
+			apply($.datepicker, [this[0]].concat(otherArgs));
+	}
+	if (options === "option" && arguments.length === 2 && typeof arguments[1] === "string") {
+		return $.datepicker["_" + options + "Datepicker"].
+			apply($.datepicker, [this[0]].concat(otherArgs));
+	}
+	return this.each(function() {
+		typeof options === "string" ?
+			$.datepicker["_" + options + "Datepicker"].
+				apply($.datepicker, [this].concat(otherArgs)) :
+			$.datepicker._attachDatepicker(this, options);
+	});
+};
+
+$.datepicker = new Datepicker(); // singleton instance
+$.datepicker.initialized = false;
+$.datepicker.uuid = new Date().getTime();
+$.datepicker.version = "1.11.4";
+
+var datepicker = $.datepicker;
+
+
+/*!
+ * jQuery UI Draggable 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/draggable/
+ */
+
+
+$.widget("ui.draggable", $.ui.mouse, {
+	version: "1.11.4",
+	widgetEventPrefix: "drag",
+	options: {
+		addClasses: true,
+		appendTo: "parent",
+		axis: false,
+		connectToSortable: false,
+		containment: false,
+		cursor: "auto",
+		cursorAt: false,
+		grid: false,
+		handle: false,
+		helper: "original",
+		iframeFix: false,
+		opacity: false,
+		refreshPositions: false,
+		revert: false,
+		revertDuration: 500,
+		scope: "default",
+		scroll: true,
+		scrollSensitivity: 20,
+		scrollSpeed: 20,
+		snap: false,
+		snapMode: "both",
+		snapTolerance: 20,
+		stack: false,
+		zIndex: false,
+
+		// callbacks
+		drag: null,
+		start: null,
+		stop: null
+	},
+	_create: function() {
+
+		if ( this.options.helper === "original" ) {
+			this._setPositionRelative();
+		}
+		if (this.options.addClasses){
+			this.element.addClass("ui-draggable");
+		}
+		if (this.options.disabled){
+			this.element.addClass("ui-draggable-disabled");
+		}
+		this._setHandleClassName();
+
+		this._mouseInit();
+	},
+
+	_setOption: function( key, value ) {
+		this._super( key, value );
+		if ( key === "handle" ) {
+			this._removeHandleClassName();
+			this._setHandleClassName();
+		}
+	},
+
+	_destroy: function() {
+		if ( ( this.helper || this.element ).is( ".ui-draggable-dragging" ) ) {
+			this.destroyOnClear = true;
+			return;
+		}
+		this.element.removeClass( "ui-draggable ui-draggable-dragging ui-draggable-disabled" );
+		this._removeHandleClassName();
+		this._mouseDestroy();
+	},
+
+	_mouseCapture: function(event) {
+		var o = this.options;
+
+		this._blurActiveElement( event );
+
+		// among others, prevent a drag on a resizable-handle
+		if (this.helper || o.disabled || $(event.target).closest(".ui-resizable-handle").length > 0) {
+			return false;
+		}
+
+		//Quit if we're not on a valid handle
+		this.handle = this._getHandle(event);
+		if (!this.handle) {
+			return false;
+		}
+
+		this._blockFrames( o.iframeFix === true ? "iframe" : o.iframeFix );
+
+		return true;
+
+	},
+
+	_blockFrames: function( selector ) {
+		this.iframeBlocks = this.document.find( selector ).map(function() {
+			var iframe = $( this );
+
+			return $( "<div>" )
+				.css( "position", "absolute" )
+				.appendTo( iframe.parent() )
+				.outerWidth( iframe.outerWidth() )
+				.outerHeight( iframe.outerHeight() )
+				.offset( iframe.offset() )[ 0 ];
+		});
+	},
+
+	_unblockFrames: function() {
+		if ( this.iframeBlocks ) {
+			this.iframeBlocks.remove();
+			delete this.iframeBlocks;
+		}
+	},
+
+	_blurActiveElement: function( event ) {
+		var document = this.document[ 0 ];
+
+		// Only need to blur if the event occurred on the draggable itself, see #10527
+		if ( !this.handleElement.is( event.target ) ) {
+			return;
+		}
+
+		// support: IE9
+		// IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe>
+		try {
+
+			// Support: IE9, IE10
+			// If the <body> is blurred, IE will switch windows, see #9520
+			if ( document.activeElement && document.activeElement.nodeName.toLowerCase() !== "body" ) {
+
+				// Blur any element that currently has focus, see #4261
+				$( document.activeElement ).blur();
+			}
+		} catch ( error ) {}
+	},
+
+	_mouseStart: function(event) {
+
+		var o = this.options;
+
+		//Create and append the visible helper
+		this.helper = this._createHelper(event);
+
+		this.helper.addClass("ui-draggable-dragging");
+
+		//Cache the helper size
+		this._cacheHelperProportions();
+
+		//If ddmanager is used for droppables, set the global draggable
+		if ($.ui.ddmanager) {
+			$.ui.ddmanager.current = this;
+		}
+
+		/*
+		 * - Position generation -
+		 * This block generates everything position related - it's the core of draggables.
+		 */
+
+		//Cache the margins of the original element
+		this._cacheMargins();
+
+		//Store the helper's css position
+		this.cssPosition = this.helper.css( "position" );
+		this.scrollParent = this.helper.scrollParent( true );
+		this.offsetParent = this.helper.offsetParent();
+		this.hasFixedAncestor = this.helper.parents().filter(function() {
+				return $( this ).css( "position" ) === "fixed";
+			}).length > 0;
+
+		//The element's absolute position on the page minus margins
+		this.positionAbs = this.element.offset();
+		this._refreshOffsets( event );
+
+		//Generate the original position
+		this.originalPosition = this.position = this._generatePosition( event, false );
+		this.originalPageX = event.pageX;
+		this.originalPageY = event.pageY;
+
+		//Adjust the mouse offset relative to the helper if "cursorAt" is supplied
+		(o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));
+
+		//Set a containment if given in the options
+		this._setContainment();
+
+		//Trigger event + callbacks
+		if (this._trigger("start", event) === false) {
+			this._clear();
+			return false;
+		}
+
+		//Recache the helper size
+		this._cacheHelperProportions();
+
+		//Prepare the droppable offsets
+		if ($.ui.ddmanager && !o.dropBehaviour) {
+			$.ui.ddmanager.prepareOffsets(this, event);
+		}
+
+		// Reset helper's right/bottom css if they're set and set explicit width/height instead
+		// as this prevents resizing of elements with right/bottom set (see #7772)
+		this._normalizeRightBottom();
+
+		this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position
+
+		//If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003)
+		if ( $.ui.ddmanager ) {
+			$.ui.ddmanager.dragStart(this, event);
+		}
+
+		return true;
+	},
+
+	_refreshOffsets: function( event ) {
+		this.offset = {
+			top: this.positionAbs.top - this.margins.top,
+			left: this.positionAbs.left - this.margins.left,
+			scroll: false,
+			parent: this._getParentOffset(),
+			relative: this._getRelativeOffset()
+		};
+
+		this.offset.click = {
+			left: event.pageX - this.offset.left,
+			top: event.pageY - this.offset.top
+		};
+	},
+
+	_mouseDrag: function(event, noPropagation) {
+		// reset any necessary cached properties (see #5009)
+		if ( this.hasFixedAncestor ) {
+			this.offset.parent = this._getParentOffset();
+		}
+
+		//Compute the helpers position
+		this.position = this._generatePosition( event, true );
+		this.positionAbs = this._convertPositionTo("absolute");
+
+		//Call plugins and callbacks and use the resulting position if something is returned
+		if (!noPropagation) {
+			var ui = this._uiHash();
+			if (this._trigger("drag", event, ui) === false) {
+				this._mouseUp({});
+				return false;
+			}
+			this.position = ui.position;
+		}
+
+		this.helper[ 0 ].style.left = this.position.left + "px";
+		this.helper[ 0 ].style.top = this.position.top + "px";
+
+		if ($.ui.ddmanager) {
+			$.ui.ddmanager.drag(this, event);
+		}
+
+		return false;
+	},
+
+	_mouseStop: function(event) {
+
+		//If we are using droppables, inform the manager about the drop
+		var that = this,
+			dropped = false;
+		if ($.ui.ddmanager && !this.options.dropBehaviour) {
+			dropped = $.ui.ddmanager.drop(this, event);
+		}
+
+		//if a drop comes from outside (a sortable)
+		if (this.dropped) {
+			dropped = this.dropped;
+			this.dropped = false;
+		}
+
+		if ((this.options.revert === "invalid" && !dropped) || (this.options.revert === "valid" && dropped) || this.options.revert === true || ($.isFunction(this.options.revert) && this.options.revert.call(this.element, dropped))) {
+			$(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {
+				if (that._trigger("stop", event) !== false) {
+					that._clear();
+				}
+			});
+		} else {
+			if (this._trigger("stop", event) !== false) {
+				this._clear();
+			}
+		}
+
+		return false;
+	},
+
+	_mouseUp: function( event ) {
+		this._unblockFrames();
+
+		//If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003)
+		if ( $.ui.ddmanager ) {
+			$.ui.ddmanager.dragStop(this, event);
+		}
+
+		// Only need to focus if the event occurred on the draggable itself, see #10527
+		if ( this.handleElement.is( event.target ) ) {
+			// The interaction is over; whether or not the click resulted in a drag, focus the element
+			this.element.focus();
+		}
+
+		return $.ui.mouse.prototype._mouseUp.call(this, event);
+	},
+
+	cancel: function() {
+
+		if (this.helper.is(".ui-draggable-dragging")) {
+			this._mouseUp({});
+		} else {
+			this._clear();
+		}
+
+		return this;
+
+	},
+
+	_getHandle: function(event) {
+		return this.options.handle ?
+			!!$( event.target ).closest( this.element.find( this.options.handle ) ).length :
+			true;
+	},
+
+	_setHandleClassName: function() {
+		this.handleElement = this.options.handle ?
+			this.element.find( this.options.handle ) : this.element;
+		this.handleElement.addClass( "ui-draggable-handle" );
+	},
+
+	_removeHandleClassName: function() {
+		this.handleElement.removeClass( "ui-draggable-handle" );
+	},
+
+	_createHelper: function(event) {
+
+		var o = this.options,
+			helperIsFunction = $.isFunction( o.helper ),
+			helper = helperIsFunction ?
+				$( o.helper.apply( this.element[ 0 ], [ event ] ) ) :
+				( o.helper === "clone" ?
+					this.element.clone().removeAttr( "id" ) :
+					this.element );
+
+		if (!helper.parents("body").length) {
+			helper.appendTo((o.appendTo === "parent" ? this.element[0].parentNode : o.appendTo));
+		}
+
+		// http://bugs.jqueryui.com/ticket/9446
+		// a helper function can return the original element
+		// which wouldn't have been set to relative in _create
+		if ( helperIsFunction && helper[ 0 ] === this.element[ 0 ] ) {
+			this._setPositionRelative();
+		}
+
+		if (helper[0] !== this.element[0] && !(/(fixed|absolute)/).test(helper.css("position"))) {
+			helper.css("position", "absolute");
+		}
+
+		return helper;
+
+	},
+
+	_setPositionRelative: function() {
+		if ( !( /^(?:r|a|f)/ ).test( this.element.css( "position" ) ) ) {
+			this.element[ 0 ].style.position = "relative";
+		}
+	},
+
+	_adjustOffsetFromHelper: function(obj) {
+		if (typeof obj === "string") {
+			obj = obj.split(" ");
+		}
+		if ($.isArray(obj)) {
+			obj = { left: +obj[0], top: +obj[1] || 0 };
+		}
+		if ("left" in obj) {
+			this.offset.click.left = obj.left + this.margins.left;
+		}
+		if ("right" in obj) {
+			this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;
+		}
+		if ("top" in obj) {
+			this.offset.click.top = obj.top + this.margins.top;
+		}
+		if ("bottom" in obj) {
+			this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
+		}
+	},
+
+	_isRootNode: function( element ) {
+		return ( /(html|body)/i ).test( element.tagName ) || element === this.document[ 0 ];
+	},
+
+	_getParentOffset: function() {
+
+		//Get the offsetParent and cache its position
+		var po = this.offsetParent.offset(),
+			document = this.document[ 0 ];
+
+		// This is a special case where we need to modify a offset calculated on start, since the following happened:
+		// 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent
+		// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that
+		//    the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag
+		if (this.cssPosition === "absolute" && this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) {
+			po.left += this.scrollParent.scrollLeft();
+			po.top += this.scrollParent.scrollTop();
+		}
+
+		if ( this._isRootNode( this.offsetParent[ 0 ] ) ) {
+			po = { top: 0, left: 0 };
+		}
+
+		return {
+			top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
+			left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)
+		};
+
+	},
+
+	_getRelativeOffset: function() {
+		if ( this.cssPosition !== "relative" ) {
+			return { top: 0, left: 0 };
+		}
+
+		var p = this.element.position(),
+			scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] );
+
+		return {
+			top: p.top - ( parseInt(this.helper.css( "top" ), 10) || 0 ) + ( !scrollIsRootNode ? this.scrollParent.scrollTop() : 0 ),
+			left: p.left - ( parseInt(this.helper.css( "left" ), 10) || 0 ) + ( !scrollIsRootNode ? this.scrollParent.scrollLeft() : 0 )
+		};
+
+	},
+
+	_cacheMargins: function() {
+		this.margins = {
+			left: (parseInt(this.element.css("marginLeft"), 10) || 0),
+			top: (parseInt(this.element.css("marginTop"), 10) || 0),
+			right: (parseInt(this.element.css("marginRight"), 10) || 0),
+			bottom: (parseInt(this.element.css("marginBottom"), 10) || 0)
+		};
+	},
+
+	_cacheHelperProportions: function() {
+		this.helperProportions = {
+			width: this.helper.outerWidth(),
+			height: this.helper.outerHeight()
+		};
+	},
+
+	_setContainment: function() {
+
+		var isUserScrollable, c, ce,
+			o = this.options,
+			document = this.document[ 0 ];
+
+		this.relativeContainer = null;
+
+		if ( !o.containment ) {
+			this.containment = null;
+			return;
+		}
+
+		if ( o.containment === "window" ) {
+			this.containment = [
+				$( window ).scrollLeft() - this.offset.relative.left - this.offset.parent.left,
+				$( window ).scrollTop() - this.offset.relative.top - this.offset.parent.top,
+				$( window ).scrollLeft() + $( window ).width() - this.helperProportions.width - this.margins.left,
+				$( window ).scrollTop() + ( $( window ).height() || document.body.parentNode.scrollHeight ) - this.helperProportions.height - this.margins.top
+			];
+			return;
+		}
+
+		if ( o.containment === "document") {
+			this.containment = [
+				0,
+				0,
+				$( document ).width() - this.helperProportions.width - this.margins.left,
+				( $( document ).height() || document.body.parentNode.scrollHeight ) - this.helperProportions.height - this.margins.top
+			];
+			return;
+		}
+
+		if ( o.containment.constructor === Array ) {
+			this.containment = o.containment;
+			return;
+		}
+
+		if ( o.containment === "parent" ) {
+			o.containment = this.helper[ 0 ].parentNode;
+		}
+
+		c = $( o.containment );
+		ce = c[ 0 ];
+
+		if ( !ce ) {
+			return;
+		}
+
+		isUserScrollable = /(scroll|auto)/.test( c.css( "overflow" ) );
+
+		this.containment = [
+			( parseInt( c.css( "borderLeftWidth" ), 10 ) || 0 ) + ( parseInt( c.css( "paddingLeft" ), 10 ) || 0 ),
+			( parseInt( c.css( "borderTopWidth" ), 10 ) || 0 ) + ( parseInt( c.css( "paddingTop" ), 10 ) || 0 ),
+			( isUserScrollable ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) -
+				( parseInt( c.css( "borderRightWidth" ), 10 ) || 0 ) -
+				( parseInt( c.css( "paddingRight" ), 10 ) || 0 ) -
+				this.helperProportions.width -
+				this.margins.left -
+				this.margins.right,
+			( isUserScrollable ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) -
+				( parseInt( c.css( "borderBottomWidth" ), 10 ) || 0 ) -
+				( parseInt( c.css( "paddingBottom" ), 10 ) || 0 ) -
+				this.helperProportions.height -
+				this.margins.top -
+				this.margins.bottom
+		];
+		this.relativeContainer = c;
+	},
+
+	_convertPositionTo: function(d, pos) {
+
+		if (!pos) {
+			pos = this.position;
+		}
+
+		var mod = d === "absolute" ? 1 : -1,
+			scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] );
+
+		return {
+			top: (
+				pos.top	+																// The absolute mouse position
+				this.offset.relative.top * mod +										// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.parent.top * mod -										// The offsetParent's offset without borders (offset + border)
+				( ( this.cssPosition === "fixed" ? -this.offset.scroll.top : ( scrollIsRootNode ? 0 : this.offset.scroll.top ) ) * mod)
+			),
+			left: (
+				pos.left +																// The absolute mouse position
+				this.offset.relative.left * mod +										// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.parent.left * mod	-										// The offsetParent's offset without borders (offset + border)
+				( ( this.cssPosition === "fixed" ? -this.offset.scroll.left : ( scrollIsRootNode ? 0 : this.offset.scroll.left ) ) * mod)
+			)
+		};
+
+	},
+
+	_generatePosition: function( event, constrainPosition ) {
+
+		var containment, co, top, left,
+			o = this.options,
+			scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] ),
+			pageX = event.pageX,
+			pageY = event.pageY;
+
+		// Cache the scroll
+		if ( !scrollIsRootNode || !this.offset.scroll ) {
+			this.offset.scroll = {
+				top: this.scrollParent.scrollTop(),
+				left: this.scrollParent.scrollLeft()
+			};
+		}
+
+		/*
+		 * - Position constraining -
+		 * Constrain the position to a mix of grid, containment.
+		 */
+
+		// If we are not dragging yet, we won't check for options
+		if ( constrainPosition ) {
+			if ( this.containment ) {
+				if ( this.relativeContainer ){
+					co = this.relativeContainer.offset();
+					containment = [
+						this.containment[ 0 ] + co.left,
+						this.containment[ 1 ] + co.top,
+						this.containment[ 2 ] + co.left,
+						this.containment[ 3 ] + co.top
+					];
+				} else {
+					containment = this.containment;
+				}
+
+				if (event.pageX - this.offset.click.left < containment[0]) {
+					pageX = containment[0] + this.offset.click.left;
+				}
+				if (event.pageY - this.offset.click.top < containment[1]) {
+					pageY = containment[1] + this.offset.click.top;
+				}
+				if (event.pageX - this.offset.click.left > containment[2]) {
+					pageX = containment[2] + this.offset.click.left;
+				}
+				if (event.pageY - this.offset.click.top > containment[3]) {
+					pageY = containment[3] + this.offset.click.top;
+				}
+			}
+
+			if (o.grid) {
+				//Check for grid elements set to 0 to prevent divide by 0 error causing invalid argument errors in IE (see ticket #6950)
+				top = o.grid[1] ? this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1] : this.originalPageY;
+				pageY = containment ? ((top - this.offset.click.top >= containment[1] || top - this.offset.click.top > containment[3]) ? top : ((top - this.offset.click.top >= containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
+
+				left = o.grid[0] ? this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0] : this.originalPageX;
+				pageX = containment ? ((left - this.offset.click.left >= containment[0] || left - this.offset.click.left > containment[2]) ? left : ((left - this.offset.click.left >= containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
+			}
+
+			if ( o.axis === "y" ) {
+				pageX = this.originalPageX;
+			}
+
+			if ( o.axis === "x" ) {
+				pageY = this.originalPageY;
+			}
+		}
+
+		return {
+			top: (
+				pageY -																	// The absolute mouse position
+				this.offset.click.top	-												// Click offset (relative to the element)
+				this.offset.relative.top -												// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.parent.top +												// The offsetParent's offset without borders (offset + border)
+				( this.cssPosition === "fixed" ? -this.offset.scroll.top : ( scrollIsRootNode ? 0 : this.offset.scroll.top ) )
+			),
+			left: (
+				pageX -																	// The absolute mouse position
+				this.offset.click.left -												// Click offset (relative to the element)
+				this.offset.relative.left -												// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.parent.left +												// The offsetParent's offset without borders (offset + border)
+				( this.cssPosition === "fixed" ? -this.offset.scroll.left : ( scrollIsRootNode ? 0 : this.offset.scroll.left ) )
+			)
+		};
+
+	},
+
+	_clear: function() {
+		this.helper.removeClass("ui-draggable-dragging");
+		if (this.helper[0] !== this.element[0] && !this.cancelHelperRemoval) {
+			this.helper.remove();
+		}
+		this.helper = null;
+		this.cancelHelperRemoval = false;
+		if ( this.destroyOnClear ) {
+			this.destroy();
+		}
+	},
+
+	_normalizeRightBottom: function() {
+		if ( this.options.axis !== "y" && this.helper.css( "right" ) !== "auto" ) {
+			this.helper.width( this.helper.width() );
+			this.helper.css( "right", "auto" );
+		}
+		if ( this.options.axis !== "x" && this.helper.css( "bottom" ) !== "auto" ) {
+			this.helper.height( this.helper.height() );
+			this.helper.css( "bottom", "auto" );
+		}
+	},
+
+	// From now on bulk stuff - mainly helpers
+
+	_trigger: function( type, event, ui ) {
+		ui = ui || this._uiHash();
+		$.ui.plugin.call( this, type, [ event, ui, this ], true );
+
+		// Absolute position and offset (see #6884 ) have to be recalculated after plugins
+		if ( /^(drag|start|stop)/.test( type ) ) {
+			this.positionAbs = this._convertPositionTo( "absolute" );
+			ui.offset = this.positionAbs;
+		}
+		return $.Widget.prototype._trigger.call( this, type, event, ui );
+	},
+
+	plugins: {},
+
+	_uiHash: function() {
+		return {
+			helper: this.helper,
+			position: this.position,
+			originalPosition: this.originalPosition,
+			offset: this.positionAbs
+		};
+	}
+
+});
+
+$.ui.plugin.add( "draggable", "connectToSortable", {
+	start: function( event, ui, draggable ) {
+		var uiSortable = $.extend( {}, ui, {
+			item: draggable.element
+		});
+
+		draggable.sortables = [];
+		$( draggable.options.connectToSortable ).each(function() {
+			var sortable = $( this ).sortable( "instance" );
+
+			if ( sortable && !sortable.options.disabled ) {
+				draggable.sortables.push( sortable );
+
+				// refreshPositions is called at drag start to refresh the containerCache
+				// which is used in drag. This ensures it's initialized and synchronized
+				// with any changes that might have happened on the page since initialization.
+				sortable.refreshPositions();
+				sortable._trigger("activate", event, uiSortable);
+			}
+		});
+	},
+	stop: function( event, ui, draggable ) {
+		var uiSortable = $.extend( {}, ui, {
+			item: draggable.element
+		});
+
+		draggable.cancelHelperRemoval = false;
+
+		$.each( draggable.sortables, function() {
+			var sortable = this;
+
+			if ( sortable.isOver ) {
+				sortable.isOver = 0;
+
+				// Allow this sortable to handle removing the helper
+				draggable.cancelHelperRemoval = true;
+				sortable.cancelHelperRemoval = false;
+
+				// Use _storedCSS To restore properties in the sortable,
+				// as this also handles revert (#9675) since the draggable
+				// may have modified them in unexpected ways (#8809)
+				sortable._storedCSS = {
+					position: sortable.placeholder.css( "position" ),
+					top: sortable.placeholder.css( "top" ),
+					left: sortable.placeholder.css( "left" )
+				};
+
+				sortable._mouseStop(event);
+
+				// Once drag has ended, the sortable should return to using
+				// its original helper, not the shared helper from draggable
+				sortable.options.helper = sortable.options._helper;
+			} else {
+				// Prevent this Sortable from removing the helper.
+				// However, don't set the draggable to remove the helper
+				// either as another connected Sortable may yet handle the removal.
+				sortable.cancelHelperRemoval = true;
+
+				sortable._trigger( "deactivate", event, uiSortable );
+			}
+		});
+	},
+	drag: function( event, ui, draggable ) {
+		$.each( draggable.sortables, function() {
+			var innermostIntersecting = false,
+				sortable = this;
+
+			// Copy over variables that sortable's _intersectsWith uses
+			sortable.positionAbs = draggable.positionAbs;
+			sortable.helperProportions = draggable.helperProportions;
+			sortable.offset.click = draggable.offset.click;
+
+			if ( sortable._intersectsWith( sortable.containerCache ) ) {
+				innermostIntersecting = true;
+
+				$.each( draggable.sortables, function() {
+					// Copy over variables that sortable's _intersectsWith uses
+					this.positionAbs = draggable.positionAbs;
+					this.helperProportions = draggable.helperProportions;
+					this.offset.click = draggable.offset.click;
+
+					if ( this !== sortable &&
+							this._intersectsWith( this.containerCache ) &&
+							$.contains( sortable.element[ 0 ], this.element[ 0 ] ) ) {
+						innermostIntersecting = false;
+					}
+
+					return innermostIntersecting;
+				});
+			}
+
+			if ( innermostIntersecting ) {
+				// If it intersects, we use a little isOver variable and set it once,
+				// so that the move-in stuff gets fired only once.
+				if ( !sortable.isOver ) {
+					sortable.isOver = 1;
+
+					// Store draggable's parent in case we need to reappend to it later.
+					draggable._parent = ui.helper.parent();
+
+					sortable.currentItem = ui.helper
+						.appendTo( sortable.element )
+						.data( "ui-sortable-item", true );
+
+					// Store helper option to later restore it
+					sortable.options._helper = sortable.options.helper;
+
+					sortable.options.helper = function() {
+						return ui.helper[ 0 ];
+					};
+
+					// Fire the start events of the sortable with our passed browser event,
+					// and our own helper (so it doesn't create a new one)
+					event.target = sortable.currentItem[ 0 ];
+					sortable._mouseCapture( event, true );
+					sortable._mouseStart( event, true, true );
+
+					// Because the browser event is way off the new appended portlet,
+					// modify necessary variables to reflect the changes
+					sortable.offset.click.top = draggable.offset.click.top;
+					sortable.offset.click.left = draggable.offset.click.left;
+					sortable.offset.parent.left -= draggable.offset.parent.left -
+						sortable.offset.parent.left;
+					sortable.offset.parent.top -= draggable.offset.parent.top -
+						sortable.offset.parent.top;
+
+					draggable._trigger( "toSortable", event );
+
+					// Inform draggable that the helper is in a valid drop zone,
+					// used solely in the revert option to handle "valid/invalid".
+					draggable.dropped = sortable.element;
+
+					// Need to refreshPositions of all sortables in the case that
+					// adding to one sortable changes the location of the other sortables (#9675)
+					$.each( draggable.sortables, function() {
+						this.refreshPositions();
+					});
+
+					// hack so receive/update callbacks work (mostly)
+					draggable.currentItem = draggable.element;
+					sortable.fromOutside = draggable;
+				}
+
+				if ( sortable.currentItem ) {
+					sortable._mouseDrag( event );
+					// Copy the sortable's position because the draggable's can potentially reflect
+					// a relative position, while sortable is always absolute, which the dragged
+					// element has now become. (#8809)
+					ui.position = sortable.position;
+				}
+			} else {
+				// If it doesn't intersect with the sortable, and it intersected before,
+				// we fake the drag stop of the sortable, but make sure it doesn't remove
+				// the helper by using cancelHelperRemoval.
+				if ( sortable.isOver ) {
+
+					sortable.isOver = 0;
+					sortable.cancelHelperRemoval = true;
+
+					// Calling sortable's mouseStop would trigger a revert,
+					// so revert must be temporarily false until after mouseStop is called.
+					sortable.options._revert = sortable.options.revert;
+					sortable.options.revert = false;
+
+					sortable._trigger( "out", event, sortable._uiHash( sortable ) );
+					sortable._mouseStop( event, true );
+
+					// restore sortable behaviors that were modfied
+					// when the draggable entered the sortable area (#9481)
+					sortable.options.revert = sortable.options._revert;
+					sortable.options.helper = sortable.options._helper;
+
+					if ( sortable.placeholder ) {
+						sortable.placeholder.remove();
+					}
+
+					// Restore and recalculate the draggable's offset considering the sortable
+					// may have modified them in unexpected ways. (#8809, #10669)
+					ui.helper.appendTo( draggable._parent );
+					draggable._refreshOffsets( event );
+					ui.position = draggable._generatePosition( event, true );
+
+					draggable._trigger( "fromSortable", event );
+
+					// Inform draggable that the helper is no longer in a valid drop zone
+					draggable.dropped = false;
+
+					// Need to refreshPositions of all sortables just in case removing
+					// from one sortable changes the location of other sortables (#9675)
+					$.each( draggable.sortables, function() {
+						this.refreshPositions();
+					});
+				}
+			}
+		});
+	}
+});
+
+$.ui.plugin.add("draggable", "cursor", {
+	start: function( event, ui, instance ) {
+		var t = $( "body" ),
+			o = instance.options;
+
+		if (t.css("cursor")) {
+			o._cursor = t.css("cursor");
+		}
+		t.css("cursor", o.cursor);
+	},
+	stop: function( event, ui, instance ) {
+		var o = instance.options;
+		if (o._cursor) {
+			$("body").css("cursor", o._cursor);
+		}
+	}
+});
+
+$.ui.plugin.add("draggable", "opacity", {
+	start: function( event, ui, instance ) {
+		var t = $( ui.helper ),
+			o = instance.options;
+		if (t.css("opacity")) {
+			o._opacity = t.css("opacity");
+		}
+		t.css("opacity", o.opacity);
+	},
+	stop: function( event, ui, instance ) {
+		var o = instance.options;
+		if (o._opacity) {
+			$(ui.helper).css("opacity", o._opacity);
+		}
+	}
+});
+
+$.ui.plugin.add("draggable", "scroll", {
+	start: function( event, ui, i ) {
+		if ( !i.scrollParentNotHidden ) {
+			i.scrollParentNotHidden = i.helper.scrollParent( false );
+		}
+
+		if ( i.scrollParentNotHidden[ 0 ] !== i.document[ 0 ] && i.scrollParentNotHidden[ 0 ].tagName !== "HTML" ) {
+			i.overflowOffset = i.scrollParentNotHidden.offset();
+		}
+	},
+	drag: function( event, ui, i  ) {
+
+		var o = i.options,
+			scrolled = false,
+			scrollParent = i.scrollParentNotHidden[ 0 ],
+			document = i.document[ 0 ];
+
+		if ( scrollParent !== document && scrollParent.tagName !== "HTML" ) {
+			if ( !o.axis || o.axis !== "x" ) {
+				if ( ( i.overflowOffset.top + scrollParent.offsetHeight ) - event.pageY < o.scrollSensitivity ) {
+					scrollParent.scrollTop = scrolled = scrollParent.scrollTop + o.scrollSpeed;
+				} else if ( event.pageY - i.overflowOffset.top < o.scrollSensitivity ) {
+					scrollParent.scrollTop = scrolled = scrollParent.scrollTop - o.scrollSpeed;
+				}
+			}
+
+			if ( !o.axis || o.axis !== "y" ) {
+				if ( ( i.overflowOffset.left + scrollParent.offsetWidth ) - event.pageX < o.scrollSensitivity ) {
+					scrollParent.scrollLeft = scrolled = scrollParent.scrollLeft + o.scrollSpeed;
+				} else if ( event.pageX - i.overflowOffset.left < o.scrollSensitivity ) {
+					scrollParent.scrollLeft = scrolled = scrollParent.scrollLeft - o.scrollSpeed;
+				}
+			}
+
+		} else {
+
+			if (!o.axis || o.axis !== "x") {
+				if (event.pageY - $(document).scrollTop() < o.scrollSensitivity) {
+					scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);
+				} else if ($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) {
+					scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);
+				}
+			}
+
+			if (!o.axis || o.axis !== "y") {
+				if (event.pageX - $(document).scrollLeft() < o.scrollSensitivity) {
+					scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);
+				} else if ($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) {
+					scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
+				}
+			}
+
+		}
+
+		if (scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) {
+			$.ui.ddmanager.prepareOffsets(i, event);
+		}
+
+	}
+});
+
+$.ui.plugin.add("draggable", "snap", {
+	start: function( event, ui, i ) {
+
+		var o = i.options;
+
+		i.snapElements = [];
+
+		$(o.snap.constructor !== String ? ( o.snap.items || ":data(ui-draggable)" ) : o.snap).each(function() {
+			var $t = $(this),
+				$o = $t.offset();
+			if (this !== i.element[0]) {
+				i.snapElements.push({
+					item: this,
+					width: $t.outerWidth(), height: $t.outerHeight(),
+					top: $o.top, left: $o.left
+				});
+			}
+		});
+
+	},
+	drag: function( event, ui, inst ) {
+
+		var ts, bs, ls, rs, l, r, t, b, i, first,
+			o = inst.options,
+			d = o.snapTolerance,
+			x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width,
+			y1 = ui.offset.top, y2 = y1 + inst.helperProportions.height;
+
+		for (i = inst.snapElements.length - 1; i >= 0; i--){
+
+			l = inst.snapElements[i].left - inst.margins.left;
+			r = l + inst.snapElements[i].width;
+			t = inst.snapElements[i].top - inst.margins.top;
+			b = t + inst.snapElements[i].height;
+
+			if ( x2 < l - d || x1 > r + d || y2 < t - d || y1 > b + d || !$.contains( inst.snapElements[ i ].item.ownerDocument, inst.snapElements[ i ].item ) ) {
+				if (inst.snapElements[i].snapping) {
+					(inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
+				}
+				inst.snapElements[i].snapping = false;
+				continue;
+			}
+
+			if (o.snapMode !== "inner") {
+				ts = Math.abs(t - y2) <= d;
+				bs = Math.abs(b - y1) <= d;
+				ls = Math.abs(l - x2) <= d;
+				rs = Math.abs(r - x1) <= d;
+				if (ts) {
+					ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top;
+				}
+				if (bs) {
+					ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top;
+				}
+				if (ls) {
+					ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left;
+				}
+				if (rs) {
+					ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left;
+				}
+			}
+
+			first = (ts || bs || ls || rs);
+
+			if (o.snapMode !== "outer") {
+				ts = Math.abs(t - y1) <= d;
+				bs = Math.abs(b - y2) <= d;
+				ls = Math.abs(l - x1) <= d;
+				rs = Math.abs(r - x2) <= d;
+				if (ts) {
+					ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top;
+				}
+				if (bs) {
+					ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top;
+				}
+				if (ls) {
+					ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left;
+				}
+				if (rs) {
+					ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left;
+				}
+			}
+
+			if (!inst.snapElements[i].snapping && (ts || bs || ls || rs || first)) {
+				(inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
+			}
+			inst.snapElements[i].snapping = (ts || bs || ls || rs || first);
+
+		}
+
+	}
+});
+
+$.ui.plugin.add("draggable", "stack", {
+	start: function( event, ui, instance ) {
+		var min,
+			o = instance.options,
+			group = $.makeArray($(o.stack)).sort(function(a, b) {
+				return (parseInt($(a).css("zIndex"), 10) || 0) - (parseInt($(b).css("zIndex"), 10) || 0);
+			});
+
+		if (!group.length) { return; }
+
+		min = parseInt($(group[0]).css("zIndex"), 10) || 0;
+		$(group).each(function(i) {
+			$(this).css("zIndex", min + i);
+		});
+		this.css("zIndex", (min + group.length));
+	}
+});
+
+$.ui.plugin.add("draggable", "zIndex", {
+	start: function( event, ui, instance ) {
+		var t = $( ui.helper ),
+			o = instance.options;
+
+		if (t.css("zIndex")) {
+			o._zIndex = t.css("zIndex");
+		}
+		t.css("zIndex", o.zIndex);
+	},
+	stop: function( event, ui, instance ) {
+		var o = instance.options;
+
+		if (o._zIndex) {
+			$(ui.helper).css("zIndex", o._zIndex);
+		}
+	}
+});
+
+var draggable = $.ui.draggable;
+
+
+/*!
+ * jQuery UI Resizable 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/resizable/
+ */
+
+
+$.widget("ui.resizable", $.ui.mouse, {
+	version: "1.11.4",
+	widgetEventPrefix: "resize",
+	options: {
+		alsoResize: false,
+		animate: false,
+		animateDuration: "slow",
+		animateEasing: "swing",
+		aspectRatio: false,
+		autoHide: false,
+		containment: false,
+		ghost: false,
+		grid: false,
+		handles: "e,s,se",
+		helper: false,
+		maxHeight: null,
+		maxWidth: null,
+		minHeight: 10,
+		minWidth: 10,
+		// See #7960
+		zIndex: 90,
+
+		// callbacks
+		resize: null,
+		start: null,
+		stop: null
+	},
+
+	_num: function( value ) {
+		return parseInt( value, 10 ) || 0;
+	},
+
+	_isNumber: function( value ) {
+		return !isNaN( parseInt( value, 10 ) );
+	},
+
+	_hasScroll: function( el, a ) {
+
+		if ( $( el ).css( "overflow" ) === "hidden") {
+			return false;
+		}
+
+		var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop",
+			has = false;
+
+		if ( el[ scroll ] > 0 ) {
+			return true;
+		}
+
+		// TODO: determine which cases actually cause this to happen
+		// if the element doesn't have the scroll set, see if it's possible to
+		// set the scroll
+		el[ scroll ] = 1;
+		has = ( el[ scroll ] > 0 );
+		el[ scroll ] = 0;
+		return has;
+	},
+
+	_create: function() {
+
+		var n, i, handle, axis, hname,
+			that = this,
+			o = this.options;
+		this.element.addClass("ui-resizable");
+
+		$.extend(this, {
+			_aspectRatio: !!(o.aspectRatio),
+			aspectRatio: o.aspectRatio,
+			originalElement: this.element,
+			_proportionallyResizeElements: [],
+			_helper: o.helper || o.ghost || o.animate ? o.helper || "ui-resizable-helper" : null
+		});
+
+		// Wrap the element if it cannot hold child nodes
+		if (this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)) {
+
+			this.element.wrap(
+				$("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({
+					position: this.element.css("position"),
+					width: this.element.outerWidth(),
+					height: this.element.outerHeight(),
+					top: this.element.css("top"),
+					left: this.element.css("left")
+				})
+			);
+
+			this.element = this.element.parent().data(
+				"ui-resizable", this.element.resizable( "instance" )
+			);
+
+			this.elementIsWrapper = true;
+
+			this.element.css({
+				marginLeft: this.originalElement.css("marginLeft"),
+				marginTop: this.originalElement.css("marginTop"),
+				marginRight: this.originalElement.css("marginRight"),
+				marginBottom: this.originalElement.css("marginBottom")
+			});
+			this.originalElement.css({
+				marginLeft: 0,
+				marginTop: 0,
+				marginRight: 0,
+				marginBottom: 0
+			});
+			// support: Safari
+			// Prevent Safari textarea resize
+			this.originalResizeStyle = this.originalElement.css("resize");
+			this.originalElement.css("resize", "none");
+
+			this._proportionallyResizeElements.push( this.originalElement.css({
+				position: "static",
+				zoom: 1,
+				display: "block"
+			}) );
+
+			// support: IE9
+			// avoid IE jump (hard set the margin)
+			this.originalElement.css({ margin: this.originalElement.css("margin") });
+
+			this._proportionallyResize();
+		}
+
+		this.handles = o.handles ||
+			( !$(".ui-resizable-handle", this.element).length ?
+				"e,s,se" : {
+					n: ".ui-resizable-n",
+					e: ".ui-resizable-e",
+					s: ".ui-resizable-s",
+					w: ".ui-resizable-w",
+					se: ".ui-resizable-se",
+					sw: ".ui-resizable-sw",
+					ne: ".ui-resizable-ne",
+					nw: ".ui-resizable-nw"
+				} );
+
+		this._handles = $();
+		if ( this.handles.constructor === String ) {
+
+			if ( this.handles === "all") {
+				this.handles = "n,e,s,w,se,sw,ne,nw";
+			}
+
+			n = this.handles.split(",");
+			this.handles = {};
+
+			for (i = 0; i < n.length; i++) {
+
+				handle = $.trim(n[i]);
+				hname = "ui-resizable-" + handle;
+				axis = $("<div class='ui-resizable-handle " + hname + "'></div>");
+
+				axis.css({ zIndex: o.zIndex });
+
+				// TODO : What's going on here?
+				if ("se" === handle) {
+					axis.addClass("ui-icon ui-icon-gripsmall-diagonal-se");
+				}
+
+				this.handles[handle] = ".ui-resizable-" + handle;
+				this.element.append(axis);
+			}
+
+		}
+
+		this._renderAxis = function(target) {
+
+			var i, axis, padPos, padWrapper;
+
+			target = target || this.element;
+
+			for (i in this.handles) {
+
+				if (this.handles[i].constructor === String) {
+					this.handles[i] = this.element.children( this.handles[ i ] ).first().show();
+				} else if ( this.handles[ i ].jquery || this.handles[ i ].nodeType ) {
+					this.handles[ i ] = $( this.handles[ i ] );
+					this._on( this.handles[ i ], { "mousedown": that._mouseDown });
+				}
+
+				if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)) {
+
+					axis = $(this.handles[i], this.element);
+
+					padWrapper = /sw|ne|nw|se|n|s/.test(i) ? axis.outerHeight() : axis.outerWidth();
+
+					padPos = [ "padding",
+						/ne|nw|n/.test(i) ? "Top" :
+						/se|sw|s/.test(i) ? "Bottom" :
+						/^e$/.test(i) ? "Right" : "Left" ].join("");
+
+					target.css(padPos, padWrapper);
+
+					this._proportionallyResize();
+				}
+
+				this._handles = this._handles.add( this.handles[ i ] );
+			}
+		};
+
+		// TODO: make renderAxis a prototype function
+		this._renderAxis(this.element);
+
+		this._handles = this._handles.add( this.element.find( ".ui-resizable-handle" ) );
+		this._handles.disableSelection();
+
+		this._handles.mouseover(function() {
+			if (!that.resizing) {
+				if (this.className) {
+					axis = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);
+				}
+				that.axis = axis && axis[1] ? axis[1] : "se";
+			}
+		});
+
+		if (o.autoHide) {
+			this._handles.hide();
+			$(this.element)
+				.addClass("ui-resizable-autohide")
+				.mouseenter(function() {
+					if (o.disabled) {
+						return;
+					}
+					$(this).removeClass("ui-resizable-autohide");
+					that._handles.show();
+				})
+				.mouseleave(function() {
+					if (o.disabled) {
+						return;
+					}
+					if (!that.resizing) {
+						$(this).addClass("ui-resizable-autohide");
+						that._handles.hide();
+					}
+				});
+		}
+
+		this._mouseInit();
+	},
+
+	_destroy: function() {
+
+		this._mouseDestroy();
+
+		var wrapper,
+			_destroy = function(exp) {
+				$(exp)
+					.removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing")
+					.removeData("resizable")
+					.removeData("ui-resizable")
+					.unbind(".resizable")
+					.find(".ui-resizable-handle")
+						.remove();
+			};
+
+		// TODO: Unwrap at same DOM position
+		if (this.elementIsWrapper) {
+			_destroy(this.element);
+			wrapper = this.element;
+			this.originalElement.css({
+				position: wrapper.css("position"),
+				width: wrapper.outerWidth(),
+				height: wrapper.outerHeight(),
+				top: wrapper.css("top"),
+				left: wrapper.css("left")
+			}).insertAfter( wrapper );
+			wrapper.remove();
+		}
+
+		this.originalElement.css("resize", this.originalResizeStyle);
+		_destroy(this.originalElement);
+
+		return this;
+	},
+
+	_mouseCapture: function(event) {
+		var i, handle,
+			capture = false;
+
+		for (i in this.handles) {
+			handle = $(this.handles[i])[0];
+			if (handle === event.target || $.contains(handle, event.target)) {
+				capture = true;
+			}
+		}
+
+		return !this.options.disabled && capture;
+	},
+
+	_mouseStart: function(event) {
+
+		var curleft, curtop, cursor,
+			o = this.options,
+			el = this.element;
+
+		this.resizing = true;
+
+		this._renderProxy();
+
+		curleft = this._num(this.helper.css("left"));
+		curtop = this._num(this.helper.css("top"));
+
+		if (o.containment) {
+			curleft += $(o.containment).scrollLeft() || 0;
+			curtop += $(o.containment).scrollTop() || 0;
+		}
+
+		this.offset = this.helper.offset();
+		this.position = { left: curleft, top: curtop };
+
+		this.size = this._helper ? {
+				width: this.helper.width(),
+				height: this.helper.height()
+			} : {
+				width: el.width(),
+				height: el.height()
+			};
+
+		this.originalSize = this._helper ? {
+				width: el.outerWidth(),
+				height: el.outerHeight()
+			} : {
+				width: el.width(),
+				height: el.height()
+			};
+
+		this.sizeDiff = {
+			width: el.outerWidth() - el.width(),
+			height: el.outerHeight() - el.height()
+		};
+
+		this.originalPosition = { left: curleft, top: curtop };
+		this.originalMousePosition = { left: event.pageX, top: event.pageY };
+
+		this.aspectRatio = (typeof o.aspectRatio === "number") ?
+			o.aspectRatio :
+			((this.originalSize.width / this.originalSize.height) || 1);
+
+		cursor = $(".ui-resizable-" + this.axis).css("cursor");
+		$("body").css("cursor", cursor === "auto" ? this.axis + "-resize" : cursor);
+
+		el.addClass("ui-resizable-resizing");
+		this._propagate("start", event);
+		return true;
+	},
+
+	_mouseDrag: function(event) {
+
+		var data, props,
+			smp = this.originalMousePosition,
+			a = this.axis,
+			dx = (event.pageX - smp.left) || 0,
+			dy = (event.pageY - smp.top) || 0,
+			trigger = this._change[a];
+
+		this._updatePrevProperties();
+
+		if (!trigger) {
+			return false;
+		}
+
+		data = trigger.apply(this, [ event, dx, dy ]);
+
+		this._updateVirtualBoundaries(event.shiftKey);
+		if (this._aspectRatio || event.shiftKey) {
+			data = this._updateRatio(data, event);
+		}
+
+		data = this._respectSize(data, event);
+
+		this._updateCache(data);
+
+		this._propagate("resize", event);
+
+		props = this._applyChanges();
+
+		if ( !this._helper && this._proportionallyResizeElements.length ) {
+			this._proportionallyResize();
+		}
+
+		if ( !$.isEmptyObject( props ) ) {
+			this._updatePrevProperties();
+			this._trigger( "resize", event, this.ui() );
+			this._applyChanges();
+		}
+
+		return false;
+	},
+
+	_mouseStop: function(event) {
+
+		this.resizing = false;
+		var pr, ista, soffseth, soffsetw, s, left, top,
+			o = this.options, that = this;
+
+		if (this._helper) {
+
+			pr = this._proportionallyResizeElements;
+			ista = pr.length && (/textarea/i).test(pr[0].nodeName);
+			soffseth = ista && this._hasScroll(pr[0], "left") ? 0 : that.sizeDiff.height;
+			soffsetw = ista ? 0 : that.sizeDiff.width;
+
+			s = {
+				width: (that.helper.width()  - soffsetw),
+				height: (that.helper.height() - soffseth)
+			};
+			left = (parseInt(that.element.css("left"), 10) +
+				(that.position.left - that.originalPosition.left)) || null;
+			top = (parseInt(that.element.css("top"), 10) +
+				(that.position.top - that.originalPosition.top)) || null;
+
+			if (!o.animate) {
+				this.element.css($.extend(s, { top: top, left: left }));
+			}
+
+			that.helper.height(that.size.height);
+			that.helper.width(that.size.width);
+
+			if (this._helper && !o.animate) {
+				this._proportionallyResize();
+			}
+		}
+
+		$("body").css("cursor", "auto");
+
+		this.element.removeClass("ui-resizable-resizing");
+
+		this._propagate("stop", event);
+
+		if (this._helper) {
+			this.helper.remove();
+		}
+
+		return false;
+
+	},
+
+	_updatePrevProperties: function() {
+		this.prevPosition = {
+			top: this.position.top,
+			left: this.position.left
+		};
+		this.prevSize = {
+			width: this.size.width,
+			height: this.size.height
+		};
+	},
+
+	_applyChanges: function() {
+		var props = {};
+
+		if ( this.position.top !== this.prevPosition.top ) {
+			props.top = this.position.top + "px";
+		}
+		if ( this.position.left !== this.prevPosition.left ) {
+			props.left = this.position.left + "px";
+		}
+		if ( this.size.width !== this.prevSize.width ) {
+			props.width = this.size.width + "px";
+		}
+		if ( this.size.height !== this.prevSize.height ) {
+			props.height = this.size.height + "px";
+		}
+
+		this.helper.css( props );
+
+		return props;
+	},
+
+	_updateVirtualBoundaries: function(forceAspectRatio) {
+		var pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b,
+			o = this.options;
+
+		b = {
+			minWidth: this._isNumber(o.minWidth) ? o.minWidth : 0,
+			maxWidth: this._isNumber(o.maxWidth) ? o.maxWidth : Infinity,
+			minHeight: this._isNumber(o.minHeight) ? o.minHeight : 0,
+			maxHeight: this._isNumber(o.maxHeight) ? o.maxHeight : Infinity
+		};
+
+		if (this._aspectRatio || forceAspectRatio) {
+			pMinWidth = b.minHeight * this.aspectRatio;
+			pMinHeight = b.minWidth / this.aspectRatio;
+			pMaxWidth = b.maxHeight * this.aspectRatio;
+			pMaxHeight = b.maxWidth / this.aspectRatio;
+
+			if (pMinWidth > b.minWidth) {
+				b.minWidth = pMinWidth;
+			}
+			if (pMinHeight > b.minHeight) {
+				b.minHeight = pMinHeight;
+			}
+			if (pMaxWidth < b.maxWidth) {
+				b.maxWidth = pMaxWidth;
+			}
+			if (pMaxHeight < b.maxHeight) {
+				b.maxHeight = pMaxHeight;
+			}
+		}
+		this._vBoundaries = b;
+	},
+
+	_updateCache: function(data) {
+		this.offset = this.helper.offset();
+		if (this._isNumber(data.left)) {
+			this.position.left = data.left;
+		}
+		if (this._isNumber(data.top)) {
+			this.position.top = data.top;
+		}
+		if (this._isNumber(data.height)) {
+			this.size.height = data.height;
+		}
+		if (this._isNumber(data.width)) {
+			this.size.width = data.width;
+		}
+	},
+
+	_updateRatio: function( data ) {
+
+		var cpos = this.position,
+			csize = this.size,
+			a = this.axis;
+
+		if (this._isNumber(data.height)) {
+			data.width = (data.height * this.aspectRatio);
+		} else if (this._isNumber(data.width)) {
+			data.height = (data.width / this.aspectRatio);
+		}
+
+		if (a === "sw") {
+			data.left = cpos.left + (csize.width - data.width);
+			data.top = null;
+		}
+		if (a === "nw") {
+			data.top = cpos.top + (csize.height - data.height);
+			data.left = cpos.left + (csize.width - data.width);
+		}
+
+		return data;
+	},
+
+	_respectSize: function( data ) {
+
+		var o = this._vBoundaries,
+			a = this.axis,
+			ismaxw = this._isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width),
+			ismaxh = this._isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height),
+			isminw = this._isNumber(data.width) && o.minWidth && (o.minWidth > data.width),
+			isminh = this._isNumber(data.height) && o.minHeight && (o.minHeight > data.height),
+			dw = this.originalPosition.left + this.originalSize.width,
+			dh = this.position.top + this.size.height,
+			cw = /sw|nw|w/.test(a), ch = /nw|ne|n/.test(a);
+		if (isminw) {
+			data.width = o.minWidth;
+		}
+		if (isminh) {
+			data.height = o.minHeight;
+		}
+		if (ismaxw) {
+			data.width = o.maxWidth;
+		}
+		if (ismaxh) {
+			data.height = o.maxHeight;
+		}
+
+		if (isminw && cw) {
+			data.left = dw - o.minWidth;
+		}
+		if (ismaxw && cw) {
+			data.left = dw - o.maxWidth;
+		}
+		if (isminh && ch) {
+			data.top = dh - o.minHeight;
+		}
+		if (ismaxh && ch) {
+			data.top = dh - o.maxHeight;
+		}
+
+		// Fixing jump error on top/left - bug #2330
+		if (!data.width && !data.height && !data.left && data.top) {
+			data.top = null;
+		} else if (!data.width && !data.height && !data.top && data.left) {
+			data.left = null;
+		}
+
+		return data;
+	},
+
+	_getPaddingPlusBorderDimensions: function( element ) {
+		var i = 0,
+			widths = [],
+			borders = [
+				element.css( "borderTopWidth" ),
+				element.css( "borderRightWidth" ),
+				element.css( "borderBottomWidth" ),
+				element.css( "borderLeftWidth" )
+			],
+			paddings = [
+				element.css( "paddingTop" ),
+				element.css( "paddingRight" ),
+				element.css( "paddingBottom" ),
+				element.css( "paddingLeft" )
+			];
+
+		for ( ; i < 4; i++ ) {
+			widths[ i ] = ( parseInt( borders[ i ], 10 ) || 0 );
+			widths[ i ] += ( parseInt( paddings[ i ], 10 ) || 0 );
+		}
+
+		return {
+			height: widths[ 0 ] + widths[ 2 ],
+			width: widths[ 1 ] + widths[ 3 ]
+		};
+	},
+
+	_proportionallyResize: function() {
+
+		if (!this._proportionallyResizeElements.length) {
+			return;
+		}
+
+		var prel,
+			i = 0,
+			element = this.helper || this.element;
+
+		for ( ; i < this._proportionallyResizeElements.length; i++) {
+
+			prel = this._proportionallyResizeElements[i];
+
+			// TODO: Seems like a bug to cache this.outerDimensions
+			// considering that we are in a loop.
+			if (!this.outerDimensions) {
+				this.outerDimensions = this._getPaddingPlusBorderDimensions( prel );
+			}
+
+			prel.css({
+				height: (element.height() - this.outerDimensions.height) || 0,
+				width: (element.width() - this.outerDimensions.width) || 0
+			});
+
+		}
+
+	},
+
+	_renderProxy: function() {
+
+		var el = this.element, o = this.options;
+		this.elementOffset = el.offset();
+
+		if (this._helper) {
+
+			this.helper = this.helper || $("<div style='overflow:hidden;'></div>");
+
+			this.helper.addClass(this._helper).css({
+				width: this.element.outerWidth() - 1,
+				height: this.element.outerHeight() - 1,
+				position: "absolute",
+				left: this.elementOffset.left + "px",
+				top: this.elementOffset.top + "px",
+				zIndex: ++o.zIndex //TODO: Don't modify option
+			});
+
+			this.helper
+				.appendTo("body")
+				.disableSelection();
+
+		} else {
+			this.helper = this.element;
+		}
+
+	},
+
+	_change: {
+		e: function(event, dx) {
+			return { width: this.originalSize.width + dx };
+		},
+		w: function(event, dx) {
+			var cs = this.originalSize, sp = this.originalPosition;
+			return { left: sp.left + dx, width: cs.width - dx };
+		},
+		n: function(event, dx, dy) {
+			var cs = this.originalSize, sp = this.originalPosition;
+			return { top: sp.top + dy, height: cs.height - dy };
+		},
+		s: function(event, dx, dy) {
+			return { height: this.originalSize.height + dy };
+		},
+		se: function(event, dx, dy) {
+			return $.extend(this._change.s.apply(this, arguments),
+				this._change.e.apply(this, [ event, dx, dy ]));
+		},
+		sw: function(event, dx, dy) {
+			return $.extend(this._change.s.apply(this, arguments),
+				this._change.w.apply(this, [ event, dx, dy ]));
+		},
+		ne: function(event, dx, dy) {
+			return $.extend(this._change.n.apply(this, arguments),
+				this._change.e.apply(this, [ event, dx, dy ]));
+		},
+		nw: function(event, dx, dy) {
+			return $.extend(this._change.n.apply(this, arguments),
+				this._change.w.apply(this, [ event, dx, dy ]));
+		}
+	},
+
+	_propagate: function(n, event) {
+		$.ui.plugin.call(this, n, [ event, this.ui() ]);
+		(n !== "resize" && this._trigger(n, event, this.ui()));
+	},
+
+	plugins: {},
+
+	ui: function() {
+		return {
+			originalElement: this.originalElement,
+			element: this.element,
+			helper: this.helper,
+			position: this.position,
+			size: this.size,
+			originalSize: this.originalSize,
+			originalPosition: this.originalPosition
+		};
+	}
+
+});
+
+/*
+ * Resizable Extensions
+ */
+
+$.ui.plugin.add("resizable", "animate", {
+
+	stop: function( event ) {
+		var that = $(this).resizable( "instance" ),
+			o = that.options,
+			pr = that._proportionallyResizeElements,
+			ista = pr.length && (/textarea/i).test(pr[0].nodeName),
+			soffseth = ista && that._hasScroll(pr[0], "left") ? 0 : that.sizeDiff.height,
+			soffsetw = ista ? 0 : that.sizeDiff.width,
+			style = { width: (that.size.width - soffsetw), height: (that.size.height - soffseth) },
+			left = (parseInt(that.element.css("left"), 10) +
+				(that.position.left - that.originalPosition.left)) || null,
+			top = (parseInt(that.element.css("top"), 10) +
+				(that.position.top - that.originalPosition.top)) || null;
+
+		that.element.animate(
+			$.extend(style, top && left ? { top: top, left: left } : {}), {
+				duration: o.animateDuration,
+				easing: o.animateEasing,
+				step: function() {
+
+					var data = {
+						width: parseInt(that.element.css("width"), 10),
+						height: parseInt(that.element.css("height"), 10),
+						top: parseInt(that.element.css("top"), 10),
+						left: parseInt(that.element.css("left"), 10)
+					};
+
+					if (pr && pr.length) {
+						$(pr[0]).css({ width: data.width, height: data.height });
+					}
+
+					// propagating resize, and updating values for each animation step
+					that._updateCache(data);
+					that._propagate("resize", event);
+
+				}
+			}
+		);
+	}
+
+});
+
+$.ui.plugin.add( "resizable", "containment", {
+
+	start: function() {
+		var element, p, co, ch, cw, width, height,
+			that = $( this ).resizable( "instance" ),
+			o = that.options,
+			el = that.element,
+			oc = o.containment,
+			ce = ( oc instanceof $ ) ? oc.get( 0 ) : ( /parent/.test( oc ) ) ? el.parent().get( 0 ) : oc;
+
+		if ( !ce ) {
+			return;
+		}
+
+		that.containerElement = $( ce );
+
+		if ( /document/.test( oc ) || oc === document ) {
+			that.containerOffset = {
+				left: 0,
+				top: 0
+			};
+			that.containerPosition = {
+				left: 0,
+				top: 0
+			};
+
+			that.parentData = {
+				element: $( document ),
+				left: 0,
+				top: 0,
+				width: $( document ).width(),
+				height: $( document ).height() || document.body.parentNode.scrollHeight
+			};
+		} else {
+			element = $( ce );
+			p = [];
+			$([ "Top", "Right", "Left", "Bottom" ]).each(function( i, name ) {
+				p[ i ] = that._num( element.css( "padding" + name ) );
+			});
+
+			that.containerOffset = element.offset();
+			that.containerPosition = element.position();
+			that.containerSize = {
+				height: ( element.innerHeight() - p[ 3 ] ),
+				width: ( element.innerWidth() - p[ 1 ] )
+			};
+
+			co = that.containerOffset;
+			ch = that.containerSize.height;
+			cw = that.containerSize.width;
+			width = ( that._hasScroll ( ce, "left" ) ? ce.scrollWidth : cw );
+			height = ( that._hasScroll ( ce ) ? ce.scrollHeight : ch ) ;
+
+			that.parentData = {
+				element: ce,
+				left: co.left,
+				top: co.top,
+				width: width,
+				height: height
+			};
+		}
+	},
+
+	resize: function( event ) {
+		var woset, hoset, isParent, isOffsetRelative,
+			that = $( this ).resizable( "instance" ),
+			o = that.options,
+			co = that.containerOffset,
+			cp = that.position,
+			pRatio = that._aspectRatio || event.shiftKey,
+			cop = {
+				top: 0,
+				left: 0
+			},
+			ce = that.containerElement,
+			continueResize = true;
+
+		if ( ce[ 0 ] !== document && ( /static/ ).test( ce.css( "position" ) ) ) {
+			cop = co;
+		}
+
+		if ( cp.left < ( that._helper ? co.left : 0 ) ) {
+			that.size.width = that.size.width +
+				( that._helper ?
+					( that.position.left - co.left ) :
+					( that.position.left - cop.left ) );
+
+			if ( pRatio ) {
+				that.size.height = that.size.width / that.aspectRatio;
+				continueResize = false;
+			}
+			that.position.left = o.helper ? co.left : 0;
+		}
+
+		if ( cp.top < ( that._helper ? co.top : 0 ) ) {
+			that.size.height = that.size.height +
+				( that._helper ?
+					( that.position.top - co.top ) :
+					that.position.top );
+
+			if ( pRatio ) {
+				that.size.width = that.size.height * that.aspectRatio;
+				continueResize = false;
+			}
+			that.position.top = that._helper ? co.top : 0;
+		}
+
+		isParent = that.containerElement.get( 0 ) === that.element.parent().get( 0 );
+		isOffsetRelative = /relative|absolute/.test( that.containerElement.css( "position" ) );
+
+		if ( isParent && isOffsetRelative ) {
+			that.offset.left = that.parentData.left + that.position.left;
+			that.offset.top = that.parentData.top + that.position.top;
+		} else {
+			that.offset.left = that.element.offset().left;
+			that.offset.top = that.element.offset().top;
+		}
+
+		woset = Math.abs( that.sizeDiff.width +
+			(that._helper ?
+				that.offset.left - cop.left :
+				(that.offset.left - co.left)) );
+
+		hoset = Math.abs( that.sizeDiff.height +
+			(that._helper ?
+				that.offset.top - cop.top :
+				(that.offset.top - co.top)) );
+
+		if ( woset + that.size.width >= that.parentData.width ) {
+			that.size.width = that.parentData.width - woset;
+			if ( pRatio ) {
+				that.size.height = that.size.width / that.aspectRatio;
+				continueResize = false;
+			}
+		}
+
+		if ( hoset + that.size.height >= that.parentData.height ) {
+			that.size.height = that.parentData.height - hoset;
+			if ( pRatio ) {
+				that.size.width = that.size.height * that.aspectRatio;
+				continueResize = false;
+			}
+		}
+
+		if ( !continueResize ) {
+			that.position.left = that.prevPosition.left;
+			that.position.top = that.prevPosition.top;
+			that.size.width = that.prevSize.width;
+			that.size.height = that.prevSize.height;
+		}
+	},
+
+	stop: function() {
+		var that = $( this ).resizable( "instance" ),
+			o = that.options,
+			co = that.containerOffset,
+			cop = that.containerPosition,
+			ce = that.containerElement,
+			helper = $( that.helper ),
+			ho = helper.offset(),
+			w = helper.outerWidth() - that.sizeDiff.width,
+			h = helper.outerHeight() - that.sizeDiff.height;
+
+		if ( that._helper && !o.animate && ( /relative/ ).test( ce.css( "position" ) ) ) {
+			$( this ).css({
+				left: ho.left - cop.left - co.left,
+				width: w,
+				height: h
+			});
+		}
+
+		if ( that._helper && !o.animate && ( /static/ ).test( ce.css( "position" ) ) ) {
+			$( this ).css({
+				left: ho.left - cop.left - co.left,
+				width: w,
+				height: h
+			});
+		}
+	}
+});
+
+$.ui.plugin.add("resizable", "alsoResize", {
+
+	start: function() {
+		var that = $(this).resizable( "instance" ),
+			o = that.options;
+
+		$(o.alsoResize).each(function() {
+			var el = $(this);
+			el.data("ui-resizable-alsoresize", {
+				width: parseInt(el.width(), 10), height: parseInt(el.height(), 10),
+				left: parseInt(el.css("left"), 10), top: parseInt(el.css("top"), 10)
+			});
+		});
+	},
+
+	resize: function(event, ui) {
+		var that = $(this).resizable( "instance" ),
+			o = that.options,
+			os = that.originalSize,
+			op = that.originalPosition,
+			delta = {
+				height: (that.size.height - os.height) || 0,
+				width: (that.size.width - os.width) || 0,
+				top: (that.position.top - op.top) || 0,
+				left: (that.position.left - op.left) || 0
+			};
+
+			$(o.alsoResize).each(function() {
+				var el = $(this), start = $(this).data("ui-resizable-alsoresize"), style = {},
+					css = el.parents(ui.originalElement[0]).length ?
+							[ "width", "height" ] :
+							[ "width", "height", "top", "left" ];
+
+				$.each(css, function(i, prop) {
+					var sum = (start[prop] || 0) + (delta[prop] || 0);
+					if (sum && sum >= 0) {
+						style[prop] = sum || null;
+					}
+				});
+
+				el.css(style);
+			});
+	},
+
+	stop: function() {
+		$(this).removeData("resizable-alsoresize");
+	}
+});
+
+$.ui.plugin.add("resizable", "ghost", {
+
+	start: function() {
+
+		var that = $(this).resizable( "instance" ), o = that.options, cs = that.size;
+
+		that.ghost = that.originalElement.clone();
+		that.ghost
+			.css({
+				opacity: 0.25,
+				display: "block",
+				position: "relative",
+				height: cs.height,
+				width: cs.width,
+				margin: 0,
+				left: 0,
+				top: 0
+			})
+			.addClass("ui-resizable-ghost")
+			.addClass(typeof o.ghost === "string" ? o.ghost : "");
+
+		that.ghost.appendTo(that.helper);
+
+	},
+
+	resize: function() {
+		var that = $(this).resizable( "instance" );
+		if (that.ghost) {
+			that.ghost.css({
+				position: "relative",
+				height: that.size.height,
+				width: that.size.width
+			});
+		}
+	},
+
+	stop: function() {
+		var that = $(this).resizable( "instance" );
+		if (that.ghost && that.helper) {
+			that.helper.get(0).removeChild(that.ghost.get(0));
+		}
+	}
+
+});
+
+$.ui.plugin.add("resizable", "grid", {
+
+	resize: function() {
+		var outerDimensions,
+			that = $(this).resizable( "instance" ),
+			o = that.options,
+			cs = that.size,
+			os = that.originalSize,
+			op = that.originalPosition,
+			a = that.axis,
+			grid = typeof o.grid === "number" ? [ o.grid, o.grid ] : o.grid,
+			gridX = (grid[0] || 1),
+			gridY = (grid[1] || 1),
+			ox = Math.round((cs.width - os.width) / gridX) * gridX,
+			oy = Math.round((cs.height - os.height) / gridY) * gridY,
+			newWidth = os.width + ox,
+			newHeight = os.height + oy,
+			isMaxWidth = o.maxWidth && (o.maxWidth < newWidth),
+			isMaxHeight = o.maxHeight && (o.maxHeight < newHeight),
+			isMinWidth = o.minWidth && (o.minWidth > newWidth),
+			isMinHeight = o.minHeight && (o.minHeight > newHeight);
+
+		o.grid = grid;
+
+		if (isMinWidth) {
+			newWidth += gridX;
+		}
+		if (isMinHeight) {
+			newHeight += gridY;
+		}
+		if (isMaxWidth) {
+			newWidth -= gridX;
+		}
+		if (isMaxHeight) {
+			newHeight -= gridY;
+		}
+
+		if (/^(se|s|e)$/.test(a)) {
+			that.size.width = newWidth;
+			that.size.height = newHeight;
+		} else if (/^(ne)$/.test(a)) {
+			that.size.width = newWidth;
+			that.size.height = newHeight;
+			that.position.top = op.top - oy;
+		} else if (/^(sw)$/.test(a)) {
+			that.size.width = newWidth;
+			that.size.height = newHeight;
+			that.position.left = op.left - ox;
+		} else {
+			if ( newHeight - gridY <= 0 || newWidth - gridX <= 0) {
+				outerDimensions = that._getPaddingPlusBorderDimensions( this );
+			}
+
+			if ( newHeight - gridY > 0 ) {
+				that.size.height = newHeight;
+				that.position.top = op.top - oy;
+			} else {
+				newHeight = gridY - outerDimensions.height;
+				that.size.height = newHeight;
+				that.position.top = op.top + os.height - newHeight;
+			}
+			if ( newWidth - gridX > 0 ) {
+				that.size.width = newWidth;
+				that.position.left = op.left - ox;
+			} else {
+				newWidth = gridX - outerDimensions.width;
+				that.size.width = newWidth;
+				that.position.left = op.left + os.width - newWidth;
+			}
+		}
+	}
+
+});
+
+var resizable = $.ui.resizable;
+
+
+/*!
+ * jQuery UI Dialog 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/dialog/
+ */
+
+
+var dialog = $.widget( "ui.dialog", {
+	version: "1.11.4",
+	options: {
+		appendTo: "body",
+		autoOpen: true,
+		buttons: [],
+		closeOnEscape: true,
+		closeText: "Close",
+		dialogClass: "",
+		draggable: true,
+		hide: null,
+		height: "auto",
+		maxHeight: null,
+		maxWidth: null,
+		minHeight: 150,
+		minWidth: 150,
+		modal: false,
+		position: {
+			my: "center",
+			at: "center",
+			of: window,
+			collision: "fit",
+			// Ensure the titlebar is always visible
+			using: function( pos ) {
+				var topOffset = $( this ).css( pos ).offset().top;
+				if ( topOffset < 0 ) {
+					$( this ).css( "top", pos.top - topOffset );
+				}
+			}
+		},
+		resizable: true,
+		show: null,
+		title: null,
+		width: 300,
+
+		// callbacks
+		beforeClose: null,
+		close: null,
+		drag: null,
+		dragStart: null,
+		dragStop: null,
+		focus: null,
+		open: null,
+		resize: null,
+		resizeStart: null,
+		resizeStop: null
+	},
+
+	sizeRelatedOptions: {
+		buttons: true,
+		height: true,
+		maxHeight: true,
+		maxWidth: true,
+		minHeight: true,
+		minWidth: true,
+		width: true
+	},
+
+	resizableRelatedOptions: {
+		maxHeight: true,
+		maxWidth: true,
+		minHeight: true,
+		minWidth: true
+	},
+
+	_create: function() {
+		this.originalCss = {
+			display: this.element[ 0 ].style.display,
+			width: this.element[ 0 ].style.width,
+			minHeight: this.element[ 0 ].style.minHeight,
+			maxHeight: this.element[ 0 ].style.maxHeight,
+			height: this.element[ 0 ].style.height
+		};
+		this.originalPosition = {
+			parent: this.element.parent(),
+			index: this.element.parent().children().index( this.element )
+		};
+		this.originalTitle = this.element.attr( "title" );
+		this.options.title = this.options.title || this.originalTitle;
+
+		this._createWrapper();
+
+		this.element
+			.show()
+			.removeAttr( "title" )
+			.addClass( "ui-dialog-content ui-widget-content" )
+			.appendTo( this.uiDialog );
+
+		this._createTitlebar();
+		this._createButtonPane();
+
+		if ( this.options.draggable && $.fn.draggable ) {
+			this._makeDraggable();
+		}
+		if ( this.options.resizable && $.fn.resizable ) {
+			this._makeResizable();
+		}
+
+		this._isOpen = false;
+
+		this._trackFocus();
+	},
+
+	_init: function() {
+		if ( this.options.autoOpen ) {
+			this.open();
+		}
+	},
+
+	_appendTo: function() {
+		var element = this.options.appendTo;
+		if ( element && (element.jquery || element.nodeType) ) {
+			return $( element );
+		}
+		return this.document.find( element || "body" ).eq( 0 );
+	},
+
+	_destroy: function() {
+		var next,
+			originalPosition = this.originalPosition;
+
+		this._untrackInstance();
+		this._destroyOverlay();
+
+		this.element
+			.removeUniqueId()
+			.removeClass( "ui-dialog-content ui-widget-content" )
+			.css( this.originalCss )
+			// Without detaching first, the following becomes really slow
+			.detach();
+
+		this.uiDialog.stop( true, true ).remove();
+
+		if ( this.originalTitle ) {
+			this.element.attr( "title", this.originalTitle );
+		}
+
+		next = originalPosition.parent.children().eq( originalPosition.index );
+		// Don't try to place the dialog next to itself (#8613)
+		if ( next.length && next[ 0 ] !== this.element[ 0 ] ) {
+			next.before( this.element );
+		} else {
+			originalPosition.parent.append( this.element );
+		}
+	},
+
+	widget: function() {
+		return this.uiDialog;
+	},
+
+	disable: $.noop,
+	enable: $.noop,
+
+	close: function( event ) {
+		var activeElement,
+			that = this;
+
+		if ( !this._isOpen || this._trigger( "beforeClose", event ) === false ) {
+			return;
+		}
+
+		this._isOpen = false;
+		this._focusedElement = null;
+		this._destroyOverlay();
+		this._untrackInstance();
+
+		if ( !this.opener.filter( ":focusable" ).focus().length ) {
+
+			// support: IE9
+			// IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe>
+			try {
+				activeElement = this.document[ 0 ].activeElement;
+
+				// Support: IE9, IE10
+				// If the <body> is blurred, IE will switch windows, see #4520
+				if ( activeElement && activeElement.nodeName.toLowerCase() !== "body" ) {
+
+					// Hiding a focused element doesn't trigger blur in WebKit
+					// so in case we have nothing to focus on, explicitly blur the active element
+					// https://bugs.webkit.org/show_bug.cgi?id=47182
+					$( activeElement ).blur();
+				}
+			} catch ( error ) {}
+		}
+
+		this._hide( this.uiDialog, this.options.hide, function() {
+			that._trigger( "close", event );
+		});
+	},
+
+	isOpen: function() {
+		return this._isOpen;
+	},
+
+	moveToTop: function() {
+		this._moveToTop();
+	},
+
+	_moveToTop: function( event, silent ) {
+		var moved = false,
+			zIndices = this.uiDialog.siblings( ".ui-front:visible" ).map(function() {
+				return +$( this ).css( "z-index" );
+			}).get(),
+			zIndexMax = Math.max.apply( null, zIndices );
+
+		if ( zIndexMax >= +this.uiDialog.css( "z-index" ) ) {
+			this.uiDialog.css( "z-index", zIndexMax + 1 );
+			moved = true;
+		}
+
+		if ( moved && !silent ) {
+			this._trigger( "focus", event );
+		}
+		return moved;
+	},
+
+	open: function() {
+		var that = this;
+		if ( this._isOpen ) {
+			if ( this._moveToTop() ) {
+				this._focusTabbable();
+			}
+			return;
+		}
+
+		this._isOpen = true;
+		this.opener = $( this.document[ 0 ].activeElement );
+
+		this._size();
+		this._position();
+		this._createOverlay();
+		this._moveToTop( null, true );
+
+		// Ensure the overlay is moved to the top with the dialog, but only when
+		// opening. The overlay shouldn't move after the dialog is open so that
+		// modeless dialogs opened after the modal dialog stack properly.
+		if ( this.overlay ) {
+			this.overlay.css( "z-index", this.uiDialog.css( "z-index" ) - 1 );
+		}
+
+		this._show( this.uiDialog, this.options.show, function() {
+			that._focusTabbable();
+			that._trigger( "focus" );
+		});
+
+		// Track the dialog immediately upon openening in case a focus event
+		// somehow occurs outside of the dialog before an element inside the
+		// dialog is focused (#10152)
+		this._makeFocusTarget();
+
+		this._trigger( "open" );
+	},
+
+	_focusTabbable: function() {
+		// Set focus to the first match:
+		// 1. An element that was focused previously
+		// 2. First element inside the dialog matching [autofocus]
+		// 3. Tabbable element inside the content element
+		// 4. Tabbable element inside the buttonpane
+		// 5. The close button
+		// 6. The dialog itself
+		var hasFocus = this._focusedElement;
+		if ( !hasFocus ) {
+			hasFocus = this.element.find( "[autofocus]" );
+		}
+		if ( !hasFocus.length ) {
+			hasFocus = this.element.find( ":tabbable" );
+		}
+		if ( !hasFocus.length ) {
+			hasFocus = this.uiDialogButtonPane.find( ":tabbable" );
+		}
+		if ( !hasFocus.length ) {
+			hasFocus = this.uiDialogTitlebarClose.filter( ":tabbable" );
+		}
+		if ( !hasFocus.length ) {
+			hasFocus = this.uiDialog;
+		}
+		hasFocus.eq( 0 ).focus();
+	},
+
+	_keepFocus: function( event ) {
+		function checkFocus() {
+			var activeElement = this.document[0].activeElement,
+				isActive = this.uiDialog[0] === activeElement ||
+					$.contains( this.uiDialog[0], activeElement );
+			if ( !isActive ) {
+				this._focusTabbable();
+			}
+		}
+		event.preventDefault();
+		checkFocus.call( this );
+		// support: IE
+		// IE <= 8 doesn't prevent moving focus even with event.preventDefault()
+		// so we check again later
+		this._delay( checkFocus );
+	},
+
+	_createWrapper: function() {
+		this.uiDialog = $("<div>")
+			.addClass( "ui-dialog ui-widget ui-widget-content ui-corner-all ui-front " +
+				this.options.dialogClass )
+			.hide()
+			.attr({
+				// Setting tabIndex makes the div focusable
+				tabIndex: -1,
+				role: "dialog"
+			})
+			.appendTo( this._appendTo() );
+
+		this._on( this.uiDialog, {
+			keydown: function( event ) {
+				if ( this.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode &&
+						event.keyCode === $.ui.keyCode.ESCAPE ) {
+					event.preventDefault();
+					this.close( event );
+					return;
+				}
+
+				// prevent tabbing out of dialogs
+				if ( event.keyCode !== $.ui.keyCode.TAB || event.isDefaultPrevented() ) {
+					return;
+				}
+				var tabbables = this.uiDialog.find( ":tabbable" ),
+					first = tabbables.filter( ":first" ),
+					last = tabbables.filter( ":last" );
+
+				if ( ( event.target === last[0] || event.target === this.uiDialog[0] ) && !event.shiftKey ) {
+					this._delay(function() {
+						first.focus();
+					});
+					event.preventDefault();
+				} else if ( ( event.target === first[0] || event.target === this.uiDialog[0] ) && event.shiftKey ) {
+					this._delay(function() {
+						last.focus();
+					});
+					event.preventDefault();
+				}
+			},
+			mousedown: function( event ) {
+				if ( this._moveToTop( event ) ) {
+					this._focusTabbable();
+				}
+			}
+		});
+
+		// We assume that any existing aria-describedby attribute means
+		// that the dialog content is marked up properly
+		// otherwise we brute force the content as the description
+		if ( !this.element.find( "[aria-describedby]" ).length ) {
+			this.uiDialog.attr({
+				"aria-describedby": this.element.uniqueId().attr( "id" )
+			});
+		}
+	},
+
+	_createTitlebar: function() {
+		var uiDialogTitle;
+
+		this.uiDialogTitlebar = $( "<div>" )
+			.addClass( "ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix" )
+			.prependTo( this.uiDialog );
+		this._on( this.uiDialogTitlebar, {
+			mousedown: function( event ) {
+				// Don't prevent click on close button (#8838)
+				// Focusing a dialog that is partially scrolled out of view
+				// causes the browser to scroll it into view, preventing the click event
+				if ( !$( event.target ).closest( ".ui-dialog-titlebar-close" ) ) {
+					// Dialog isn't getting focus when dragging (#8063)
+					this.uiDialog.focus();
+				}
+			}
+		});
+
+		// support: IE
+		// Use type="button" to prevent enter keypresses in textboxes from closing the
+		// dialog in IE (#9312)
+		this.uiDialogTitlebarClose = $( "<button type='button'></button>" )
+			.button({
+				label: this.options.closeText,
+				icons: {
+					primary: "ui-icon-closethick"
+				},
+				text: false
+			})
+			.addClass( "ui-dialog-titlebar-close" )
+			.appendTo( this.uiDialogTitlebar );
+		this._on( this.uiDialogTitlebarClose, {
+			click: function( event ) {
+				event.preventDefault();
+				this.close( event );
+			}
+		});
+
+		uiDialogTitle = $( "<span>" )
+			.uniqueId()
+			.addClass( "ui-dialog-title" )
+			.prependTo( this.uiDialogTitlebar );
+		this._title( uiDialogTitle );
+
+		this.uiDialog.attr({
+			"aria-labelledby": uiDialogTitle.attr( "id" )
+		});
+	},
+
+	_title: function( title ) {
+		if ( !this.options.title ) {
+			title.html( "&#160;" );
+		}
+		title.text( this.options.title );
+	},
+
+	_createButtonPane: function() {
+		this.uiDialogButtonPane = $( "<div>" )
+			.addClass( "ui-dialog-buttonpane ui-widget-content ui-helper-clearfix" );
+
+		this.uiButtonSet = $( "<div>" )
+			.addClass( "ui-dialog-buttonset" )
+			.appendTo( this.uiDialogButtonPane );
+
+		this._createButtons();
+	},
+
+	_createButtons: function() {
+		var that = this,
+			buttons = this.options.buttons;
+
+		// if we already have a button pane, remove it
+		this.uiDialogButtonPane.remove();
+		this.uiButtonSet.empty();
+
+		if ( $.isEmptyObject( buttons ) || ($.isArray( buttons ) && !buttons.length) ) {
+			this.uiDialog.removeClass( "ui-dialog-buttons" );
+			return;
+		}
+
+		$.each( buttons, function( name, props ) {
+			var click, buttonOptions;
+			props = $.isFunction( props ) ?
+				{ click: props, text: name } :
+				props;
+			// Default to a non-submitting button
+			props = $.extend( { type: "button" }, props );
+			// Change the context for the click callback to be the main element
+			click = props.click;
+			props.click = function() {
+				click.apply( that.element[ 0 ], arguments );
+			};
+			buttonOptions = {
+				icons: props.icons,
+				text: props.showText
+			};
+			delete props.icons;
+			delete props.showText;
+			$( "<button></button>", props )
+				.button( buttonOptions )
+				.appendTo( that.uiButtonSet );
+		});
+		this.uiDialog.addClass( "ui-dialog-buttons" );
+		this.uiDialogButtonPane.appendTo( this.uiDialog );
+	},
+
+	_makeDraggable: function() {
+		var that = this,
+			options = this.options;
+
+		function filteredUi( ui ) {
+			return {
+				position: ui.position,
+				offset: ui.offset
+			};
+		}
+
+		this.uiDialog.draggable({
+			cancel: ".ui-dialog-content, .ui-dialog-titlebar-close",
+			handle: ".ui-dialog-titlebar",
+			containment: "document",
+			start: function( event, ui ) {
+				$( this ).addClass( "ui-dialog-dragging" );
+				that._blockFrames();
+				that._trigger( "dragStart", event, filteredUi( ui ) );
+			},
+			drag: function( event, ui ) {
+				that._trigger( "drag", event, filteredUi( ui ) );
+			},
+			stop: function( event, ui ) {
+				var left = ui.offset.left - that.document.scrollLeft(),
+					top = ui.offset.top - that.document.scrollTop();
+
+				options.position = {
+					my: "left top",
+					at: "left" + (left >= 0 ? "+" : "") + left + " " +
+						"top" + (top >= 0 ? "+" : "") + top,
+					of: that.window
+				};
+				$( this ).removeClass( "ui-dialog-dragging" );
+				that._unblockFrames();
+				that._trigger( "dragStop", event, filteredUi( ui ) );
+			}
+		});
+	},
+
+	_makeResizable: function() {
+		var that = this,
+			options = this.options,
+			handles = options.resizable,
+			// .ui-resizable has position: relative defined in the stylesheet
+			// but dialogs have to use absolute or fixed positioning
+			position = this.uiDialog.css("position"),
+			resizeHandles = typeof handles === "string" ?
+				handles	:
+				"n,e,s,w,se,sw,ne,nw";
+
+		function filteredUi( ui ) {
+			return {
+				originalPosition: ui.originalPosition,
+				originalSize: ui.originalSize,
+				position: ui.position,
+				size: ui.size
+			};
+		}
+
+		this.uiDialog.resizable({
+			cancel: ".ui-dialog-content",
+			containment: "document",
+			alsoResize: this.element,
+			maxWidth: options.maxWidth,
+			maxHeight: options.maxHeight,
+			minWidth: options.minWidth,
+			minHeight: this._minHeight(),
+			handles: resizeHandles,
+			start: function( event, ui ) {
+				$( this ).addClass( "ui-dialog-resizing" );
+				that._blockFrames();
+				that._trigger( "resizeStart", event, filteredUi( ui ) );
+			},
+			resize: function( event, ui ) {
+				that._trigger( "resize", event, filteredUi( ui ) );
+			},
+			stop: function( event, ui ) {
+				var offset = that.uiDialog.offset(),
+					left = offset.left - that.document.scrollLeft(),
+					top = offset.top - that.document.scrollTop();
+
+				options.height = that.uiDialog.height();
+				options.width = that.uiDialog.width();
+				options.position = {
+					my: "left top",
+					at: "left" + (left >= 0 ? "+" : "") + left + " " +
+						"top" + (top >= 0 ? "+" : "") + top,
+					of: that.window
+				};
+				$( this ).removeClass( "ui-dialog-resizing" );
+				that._unblockFrames();
+				that._trigger( "resizeStop", event, filteredUi( ui ) );
+			}
+		})
+		.css( "position", position );
+	},
+
+	_trackFocus: function() {
+		this._on( this.widget(), {
+			focusin: function( event ) {
+				this._makeFocusTarget();
+				this._focusedElement = $( event.target );
+			}
+		});
+	},
+
+	_makeFocusTarget: function() {
+		this._untrackInstance();
+		this._trackingInstances().unshift( this );
+	},
+
+	_untrackInstance: function() {
+		var instances = this._trackingInstances(),
+			exists = $.inArray( this, instances );
+		if ( exists !== -1 ) {
+			instances.splice( exists, 1 );
+		}
+	},
+
+	_trackingInstances: function() {
+		var instances = this.document.data( "ui-dialog-instances" );
+		if ( !instances ) {
+			instances = [];
+			this.document.data( "ui-dialog-instances", instances );
+		}
+		return instances;
+	},
+
+	_minHeight: function() {
+		var options = this.options;
+
+		return options.height === "auto" ?
+			options.minHeight :
+			Math.min( options.minHeight, options.height );
+	},
+
+	_position: function() {
+		// Need to show the dialog to get the actual offset in the position plugin
+		var isVisible = this.uiDialog.is( ":visible" );
+		if ( !isVisible ) {
+			this.uiDialog.show();
+		}
+		this.uiDialog.position( this.options.position );
+		if ( !isVisible ) {
+			this.uiDialog.hide();
+		}
+	},
+
+	_setOptions: function( options ) {
+		var that = this,
+			resize = false,
+			resizableOptions = {};
+
+		$.each( options, function( key, value ) {
+			that._setOption( key, value );
+
+			if ( key in that.sizeRelatedOptions ) {
+				resize = true;
+			}
+			if ( key in that.resizableRelatedOptions ) {
+				resizableOptions[ key ] = value;
+			}
+		});
+
+		if ( resize ) {
+			this._size();
+			this._position();
+		}
+		if ( this.uiDialog.is( ":data(ui-resizable)" ) ) {
+			this.uiDialog.resizable( "option", resizableOptions );
+		}
+	},
+
+	_setOption: function( key, value ) {
+		var isDraggable, isResizable,
+			uiDialog = this.uiDialog;
+
+		if ( key === "dialogClass" ) {
+			uiDialog
+				.removeClass( this.options.dialogClass )
+				.addClass( value );
+		}
+
+		if ( key === "disabled" ) {
+			return;
+		}
+
+		this._super( key, value );
+
+		if ( key === "appendTo" ) {
+			this.uiDialog.appendTo( this._appendTo() );
+		}
+
+		if ( key === "buttons" ) {
+			this._createButtons();
+		}
+
+		if ( key === "closeText" ) {
+			this.uiDialogTitlebarClose.button({
+				// Ensure that we always pass a string
+				label: "" + value
+			});
+		}
+
+		if ( key === "draggable" ) {
+			isDraggable = uiDialog.is( ":data(ui-draggable)" );
+			if ( isDraggable && !value ) {
+				uiDialog.draggable( "destroy" );
+			}
+
+			if ( !isDraggable && value ) {
+				this._makeDraggable();
+			}
+		}
+
+		if ( key === "position" ) {
+			this._position();
+		}
+
+		if ( key === "resizable" ) {
+			// currently resizable, becoming non-resizable
+			isResizable = uiDialog.is( ":data(ui-resizable)" );
+			if ( isResizable && !value ) {
+				uiDialog.resizable( "destroy" );
+			}
+
+			// currently resizable, changing handles
+			if ( isResizable && typeof value === "string" ) {
+				uiDialog.resizable( "option", "handles", value );
+			}
+
+			// currently non-resizable, becoming resizable
+			if ( !isResizable && value !== false ) {
+				this._makeResizable();
+			}
+		}
+
+		if ( key === "title" ) {
+			this._title( this.uiDialogTitlebar.find( ".ui-dialog-title" ) );
+		}
+	},
+
+	_size: function() {
+		// If the user has resized the dialog, the .ui-dialog and .ui-dialog-content
+		// divs will both have width and height set, so we need to reset them
+		var nonContentHeight, minContentHeight, maxContentHeight,
+			options = this.options;
+
+		// Reset content sizing
+		this.element.show().css({
+			width: "auto",
+			minHeight: 0,
+			maxHeight: "none",
+			height: 0
+		});
+
+		if ( options.minWidth > options.width ) {
+			options.width = options.minWidth;
+		}
+
+		// reset wrapper sizing
+		// determine the height of all the non-content elements
+		nonContentHeight = this.uiDialog.css({
+				height: "auto",
+				width: options.width
+			})
+			.outerHeight();
+		minContentHeight = Math.max( 0, options.minHeight - nonContentHeight );
+		maxContentHeight = typeof options.maxHeight === "number" ?
+			Math.max( 0, options.maxHeight - nonContentHeight ) :
+			"none";
+
+		if ( options.height === "auto" ) {
+			this.element.css({
+				minHeight: minContentHeight,
+				maxHeight: maxContentHeight,
+				height: "auto"
+			});
+		} else {
+			this.element.height( Math.max( 0, options.height - nonContentHeight ) );
+		}
+
+		if ( this.uiDialog.is( ":data(ui-resizable)" ) ) {
+			this.uiDialog.resizable( "option", "minHeight", this._minHeight() );
+		}
+	},
+
+	_blockFrames: function() {
+		this.iframeBlocks = this.document.find( "iframe" ).map(function() {
+			var iframe = $( this );
+
+			return $( "<div>" )
+				.css({
+					position: "absolute",
+					width: iframe.outerWidth(),
+					height: iframe.outerHeight()
+				})
+				.appendTo( iframe.parent() )
+				.offset( iframe.offset() )[0];
+		});
+	},
+
+	_unblockFrames: function() {
+		if ( this.iframeBlocks ) {
+			this.iframeBlocks.remove();
+			delete this.iframeBlocks;
+		}
+	},
+
+	_allowInteraction: function( event ) {
+		if ( $( event.target ).closest( ".ui-dialog" ).length ) {
+			return true;
+		}
+
+		// TODO: Remove hack when datepicker implements
+		// the .ui-front logic (#8989)
+		return !!$( event.target ).closest( ".ui-datepicker" ).length;
+	},
+
+	_createOverlay: function() {
+		if ( !this.options.modal ) {
+			return;
+		}
+
+		// We use a delay in case the overlay is created from an
+		// event that we're going to be cancelling (#2804)
+		var isOpening = true;
+		this._delay(function() {
+			isOpening = false;
+		});
+
+		if ( !this.document.data( "ui-dialog-overlays" ) ) {
+
+			// Prevent use of anchors and inputs
+			// Using _on() for an event handler shared across many instances is
+			// safe because the dialogs stack and must be closed in reverse order
+			this._on( this.document, {
+				focusin: function( event ) {
+					if ( isOpening ) {
+						return;
+					}
+
+					if ( !this._allowInteraction( event ) ) {
+						event.preventDefault();
+						this._trackingInstances()[ 0 ]._focusTabbable();
+					}
+				}
+			});
+		}
+
+		this.overlay = $( "<div>" )
+			.addClass( "ui-widget-overlay ui-front" )
+			.appendTo( this._appendTo() );
+		this._on( this.overlay, {
+			mousedown: "_keepFocus"
+		});
+		this.document.data( "ui-dialog-overlays",
+			(this.document.data( "ui-dialog-overlays" ) || 0) + 1 );
+	},
+
+	_destroyOverlay: function() {
+		if ( !this.options.modal ) {
+			return;
+		}
+
+		if ( this.overlay ) {
+			var overlays = this.document.data( "ui-dialog-overlays" ) - 1;
+
+			if ( !overlays ) {
+				this.document
+					.unbind( "focusin" )
+					.removeData( "ui-dialog-overlays" );
+			} else {
+				this.document.data( "ui-dialog-overlays", overlays );
+			}
+
+			this.overlay.remove();
+			this.overlay = null;
+		}
+	}
+});
+
+
+/*!
+ * jQuery UI Droppable 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/droppable/
+ */
+
+
+$.widget( "ui.droppable", {
+	version: "1.11.4",
+	widgetEventPrefix: "drop",
+	options: {
+		accept: "*",
+		activeClass: false,
+		addClasses: true,
+		greedy: false,
+		hoverClass: false,
+		scope: "default",
+		tolerance: "intersect",
+
+		// callbacks
+		activate: null,
+		deactivate: null,
+		drop: null,
+		out: null,
+		over: null
+	},
+	_create: function() {
+
+		var proportions,
+			o = this.options,
+			accept = o.accept;
+
+		this.isover = false;
+		this.isout = true;
+
+		this.accept = $.isFunction( accept ) ? accept : function( d ) {
+			return d.is( accept );
+		};
+
+		this.proportions = function( /* valueToWrite */ ) {
+			if ( arguments.length ) {
+				// Store the droppable's proportions
+				proportions = arguments[ 0 ];
+			} else {
+				// Retrieve or derive the droppable's proportions
+				return proportions ?
+					proportions :
+					proportions = {
+						width: this.element[ 0 ].offsetWidth,
+						height: this.element[ 0 ].offsetHeight
+					};
+			}
+		};
+
+		this._addToManager( o.scope );
+
+		o.addClasses && this.element.addClass( "ui-droppable" );
+
+	},
+
+	_addToManager: function( scope ) {
+		// Add the reference and positions to the manager
+		$.ui.ddmanager.droppables[ scope ] = $.ui.ddmanager.droppables[ scope ] || [];
+		$.ui.ddmanager.droppables[ scope ].push( this );
+	},
+
+	_splice: function( drop ) {
+		var i = 0;
+		for ( ; i < drop.length; i++ ) {
+			if ( drop[ i ] === this ) {
+				drop.splice( i, 1 );
+			}
+		}
+	},
+
+	_destroy: function() {
+		var drop = $.ui.ddmanager.droppables[ this.options.scope ];
+
+		this._splice( drop );
+
+		this.element.removeClass( "ui-droppable ui-droppable-disabled" );
+	},
+
+	_setOption: function( key, value ) {
+
+		if ( key === "accept" ) {
+			this.accept = $.isFunction( value ) ? value : function( d ) {
+				return d.is( value );
+			};
+		} else if ( key === "scope" ) {
+			var drop = $.ui.ddmanager.droppables[ this.options.scope ];
+
+			this._splice( drop );
+			this._addToManager( value );
+		}
+
+		this._super( key, value );
+	},
+
+	_activate: function( event ) {
+		var draggable = $.ui.ddmanager.current;
+		if ( this.options.activeClass ) {
+			this.element.addClass( this.options.activeClass );
+		}
+		if ( draggable ){
+			this._trigger( "activate", event, this.ui( draggable ) );
+		}
+	},
+
+	_deactivate: function( event ) {
+		var draggable = $.ui.ddmanager.current;
+		if ( this.options.activeClass ) {
+			this.element.removeClass( this.options.activeClass );
+		}
+		if ( draggable ){
+			this._trigger( "deactivate", event, this.ui( draggable ) );
+		}
+	},
+
+	_over: function( event ) {
+
+		var draggable = $.ui.ddmanager.current;
+
+		// Bail if draggable and droppable are same element
+		if ( !draggable || ( draggable.currentItem || draggable.element )[ 0 ] === this.element[ 0 ] ) {
+			return;
+		}
+
+		if ( this.accept.call( this.element[ 0 ], ( draggable.currentItem || draggable.element ) ) ) {
+			if ( this.options.hoverClass ) {
+				this.element.addClass( this.options.hoverClass );
+			}
+			this._trigger( "over", event, this.ui( draggable ) );
+		}
+
+	},
+
+	_out: function( event ) {
+
+		var draggable = $.ui.ddmanager.current;
+
+		// Bail if draggable and droppable are same element
+		if ( !draggable || ( draggable.currentItem || draggable.element )[ 0 ] === this.element[ 0 ] ) {
+			return;
+		}
+
+		if ( this.accept.call( this.element[ 0 ], ( draggable.currentItem || draggable.element ) ) ) {
+			if ( this.options.hoverClass ) {
+				this.element.removeClass( this.options.hoverClass );
+			}
+			this._trigger( "out", event, this.ui( draggable ) );
+		}
+
+	},
+
+	_drop: function( event, custom ) {
+
+		var draggable = custom || $.ui.ddmanager.current,
+			childrenIntersection = false;
+
+		// Bail if draggable and droppable are same element
+		if ( !draggable || ( draggable.currentItem || draggable.element )[ 0 ] === this.element[ 0 ] ) {
+			return false;
+		}
+
+		this.element.find( ":data(ui-droppable)" ).not( ".ui-draggable-dragging" ).each(function() {
+			var inst = $( this ).droppable( "instance" );
+			if (
+				inst.options.greedy &&
+				!inst.options.disabled &&
+				inst.options.scope === draggable.options.scope &&
+				inst.accept.call( inst.element[ 0 ], ( draggable.currentItem || draggable.element ) ) &&
+				$.ui.intersect( draggable, $.extend( inst, { offset: inst.element.offset() } ), inst.options.tolerance, event )
+			) { childrenIntersection = true; return false; }
+		});
+		if ( childrenIntersection ) {
+			return false;
+		}
+
+		if ( this.accept.call( this.element[ 0 ], ( draggable.currentItem || draggable.element ) ) ) {
+			if ( this.options.activeClass ) {
+				this.element.removeClass( this.options.activeClass );
+			}
+			if ( this.options.hoverClass ) {
+				this.element.removeClass( this.options.hoverClass );
+			}
+			this._trigger( "drop", event, this.ui( draggable ) );
+			return this.element;
+		}
+
+		return false;
+
+	},
+
+	ui: function( c ) {
+		return {
+			draggable: ( c.currentItem || c.element ),
+			helper: c.helper,
+			position: c.position,
+			offset: c.positionAbs
+		};
+	}
+
+});
+
+$.ui.intersect = (function() {
+	function isOverAxis( x, reference, size ) {
+		return ( x >= reference ) && ( x < ( reference + size ) );
+	}
+
+	return function( draggable, droppable, toleranceMode, event ) {
+
+		if ( !droppable.offset ) {
+			return false;
+		}
+
+		var x1 = ( draggable.positionAbs || draggable.position.absolute ).left + draggable.margins.left,
+			y1 = ( draggable.positionAbs || draggable.position.absolute ).top + draggable.margins.top,
+			x2 = x1 + draggable.helperProportions.width,
+			y2 = y1 + draggable.helperProportions.height,
+			l = droppable.offset.left,
+			t = droppable.offset.top,
+			r = l + droppable.proportions().width,
+			b = t + droppable.proportions().height;
+
+		switch ( toleranceMode ) {
+		case "fit":
+			return ( l <= x1 && x2 <= r && t <= y1 && y2 <= b );
+		case "intersect":
+			return ( l < x1 + ( draggable.helperProportions.width / 2 ) && // Right Half
+				x2 - ( draggable.helperProportions.width / 2 ) < r && // Left Half
+				t < y1 + ( draggable.helperProportions.height / 2 ) && // Bottom Half
+				y2 - ( draggable.helperProportions.height / 2 ) < b ); // Top Half
+		case "pointer":
+			return isOverAxis( event.pageY, t, droppable.proportions().height ) && isOverAxis( event.pageX, l, droppable.proportions().width );
+		case "touch":
+			return (
+				( y1 >= t && y1 <= b ) || // Top edge touching
+				( y2 >= t && y2 <= b ) || // Bottom edge touching
+				( y1 < t && y2 > b ) // Surrounded vertically
+			) && (
+				( x1 >= l && x1 <= r ) || // Left edge touching
+				( x2 >= l && x2 <= r ) || // Right edge touching
+				( x1 < l && x2 > r ) // Surrounded horizontally
+			);
+		default:
+			return false;
+		}
+	};
+})();
+
+/*
+	This manager tracks offsets of draggables and droppables
+*/
+$.ui.ddmanager = {
+	current: null,
+	droppables: { "default": [] },
+	prepareOffsets: function( t, event ) {
+
+		var i, j,
+			m = $.ui.ddmanager.droppables[ t.options.scope ] || [],
+			type = event ? event.type : null, // workaround for #2317
+			list = ( t.currentItem || t.element ).find( ":data(ui-droppable)" ).addBack();
+
+		droppablesLoop: for ( i = 0; i < m.length; i++ ) {
+
+			// No disabled and non-accepted
+			if ( m[ i ].options.disabled || ( t && !m[ i ].accept.call( m[ i ].element[ 0 ], ( t.currentItem || t.element ) ) ) ) {
+				continue;
+			}
+
+			// Filter out elements in the current dragged item
+			for ( j = 0; j < list.length; j++ ) {
+				if ( list[ j ] === m[ i ].element[ 0 ] ) {
+					m[ i ].proportions().height = 0;
+					continue droppablesLoop;
+				}
+			}
+
+			m[ i ].visible = m[ i ].element.css( "display" ) !== "none";
+			if ( !m[ i ].visible ) {
+				continue;
+			}
+
+			// Activate the droppable if used directly from draggables
+			if ( type === "mousedown" ) {
+				m[ i ]._activate.call( m[ i ], event );
+			}
+
+			m[ i ].offset = m[ i ].element.offset();
+			m[ i ].proportions({ width: m[ i ].element[ 0 ].offsetWidth, height: m[ i ].element[ 0 ].offsetHeight });
+
+		}
+
+	},
+	drop: function( draggable, event ) {
+
+		var dropped = false;
+		// Create a copy of the droppables in case the list changes during the drop (#9116)
+		$.each( ( $.ui.ddmanager.droppables[ draggable.options.scope ] || [] ).slice(), function() {
+
+			if ( !this.options ) {
+				return;
+			}
+			if ( !this.options.disabled && this.visible && $.ui.intersect( draggable, this, this.options.tolerance, event ) ) {
+				dropped = this._drop.call( this, event ) || dropped;
+			}
+
+			if ( !this.options.disabled && this.visible && this.accept.call( this.element[ 0 ], ( draggable.currentItem || draggable.element ) ) ) {
+				this.isout = true;
+				this.isover = false;
+				this._deactivate.call( this, event );
+			}
+
+		});
+		return dropped;
+
+	},
+	dragStart: function( draggable, event ) {
+		// Listen for scrolling so that if the dragging causes scrolling the position of the droppables can be recalculated (see #5003)
+		draggable.element.parentsUntil( "body" ).bind( "scroll.droppable", function() {
+			if ( !draggable.options.refreshPositions ) {
+				$.ui.ddmanager.prepareOffsets( draggable, event );
+			}
+		});
+	},
+	drag: function( draggable, event ) {
+
+		// If you have a highly dynamic page, you might try this option. It renders positions every time you move the mouse.
+		if ( draggable.options.refreshPositions ) {
+			$.ui.ddmanager.prepareOffsets( draggable, event );
+		}
+
+		// Run through all droppables and check their positions based on specific tolerance options
+		$.each( $.ui.ddmanager.droppables[ draggable.options.scope ] || [], function() {
+
+			if ( this.options.disabled || this.greedyChild || !this.visible ) {
+				return;
+			}
+
+			var parentInstance, scope, parent,
+				intersects = $.ui.intersect( draggable, this, this.options.tolerance, event ),
+				c = !intersects && this.isover ? "isout" : ( intersects && !this.isover ? "isover" : null );
+			if ( !c ) {
+				return;
+			}
+
+			if ( this.options.greedy ) {
+				// find droppable parents with same scope
+				scope = this.options.scope;
+				parent = this.element.parents( ":data(ui-droppable)" ).filter(function() {
+					return $( this ).droppable( "instance" ).options.scope === scope;
+				});
+
+				if ( parent.length ) {
+					parentInstance = $( parent[ 0 ] ).droppable( "instance" );
+					parentInstance.greedyChild = ( c === "isover" );
+				}
+			}
+
+			// we just moved into a greedy child
+			if ( parentInstance && c === "isover" ) {
+				parentInstance.isover = false;
+				parentInstance.isout = true;
+				parentInstance._out.call( parentInstance, event );
+			}
+
+			this[ c ] = true;
+			this[c === "isout" ? "isover" : "isout"] = false;
+			this[c === "isover" ? "_over" : "_out"].call( this, event );
+
+			// we just moved out of a greedy child
+			if ( parentInstance && c === "isout" ) {
+				parentInstance.isout = false;
+				parentInstance.isover = true;
+				parentInstance._over.call( parentInstance, event );
+			}
+		});
+
+	},
+	dragStop: function( draggable, event ) {
+		draggable.element.parentsUntil( "body" ).unbind( "scroll.droppable" );
+		// Call prepareOffsets one final time since IE does not fire return scroll events when overflow was caused by drag (see #5003)
+		if ( !draggable.options.refreshPositions ) {
+			$.ui.ddmanager.prepareOffsets( draggable, event );
+		}
+	}
+};
+
+var droppable = $.ui.droppable;
+
+
+/*!
+ * jQuery UI Effects 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/category/effects-core/
+ */
+
+
+var dataSpace = "ui-effects-",
+
+	// Create a local jQuery because jQuery Color relies on it and the
+	// global may not exist with AMD and a custom build (#10199)
+	jQuery = $;
+
+$.effects = {
+	effect: {}
+};
+
+/*!
+ * jQuery Color Animations v2.1.2
+ * https://github.com/jquery/jquery-color
+ *
+ * Copyright 2014 jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * Date: Wed Jan 16 08:47:09 2013 -0600
+ */
+(function( jQuery, undefined ) {
+
+	var stepHooks = "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",
+
+	// plusequals test for += 100 -= 100
+	rplusequals = /^([\-+])=\s*(\d+\.?\d*)/,
+	// a set of RE's that can match strings and generate color tuples.
+	stringParsers = [ {
+			re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
+			parse: function( execResult ) {
+				return [
+					execResult[ 1 ],
+					execResult[ 2 ],
+					execResult[ 3 ],
+					execResult[ 4 ]
+				];
+			}
+		}, {
+			re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
+			parse: function( execResult ) {
+				return [
+					execResult[ 1 ] * 2.55,
+					execResult[ 2 ] * 2.55,
+					execResult[ 3 ] * 2.55,
+					execResult[ 4 ]
+				];
+			}
+		}, {
+			// this regex ignores A-F because it's compared against an already lowercased string
+			re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,
+			parse: function( execResult ) {
+				return [
+					parseInt( execResult[ 1 ], 16 ),
+					parseInt( execResult[ 2 ], 16 ),
+					parseInt( execResult[ 3 ], 16 )
+				];
+			}
+		}, {
+			// this regex ignores A-F because it's compared against an already lowercased string
+			re: /#([a-f0-9])([a-f0-9])([a-f0-9])/,
+			parse: function( execResult ) {
+				return [
+					parseInt( execResult[ 1 ] + execResult[ 1 ], 16 ),
+					parseInt( execResult[ 2 ] + execResult[ 2 ], 16 ),
+					parseInt( execResult[ 3 ] + execResult[ 3 ], 16 )
+				];
+			}
+		}, {
+			re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
+			space: "hsla",
+			parse: function( execResult ) {
+				return [
+					execResult[ 1 ],
+					execResult[ 2 ] / 100,
+					execResult[ 3 ] / 100,
+					execResult[ 4 ]
+				];
+			}
+		} ],
+
+	// jQuery.Color( )
+	color = jQuery.Color = function( color, green, blue, alpha ) {
+		return new jQuery.Color.fn.parse( color, green, blue, alpha );
+	},
+	spaces = {
+		rgba: {
+			props: {
+				red: {
+					idx: 0,
+					type: "byte"
+				},
+				green: {
+					idx: 1,
+					type: "byte"
+				},
+				blue: {
+					idx: 2,
+					type: "byte"
+				}
+			}
+		},
+
+		hsla: {
+			props: {
+				hue: {
+					idx: 0,
+					type: "degrees"
+				},
+				saturation: {
+					idx: 1,
+					type: "percent"
+				},
+				lightness: {
+					idx: 2,
+					type: "percent"
+				}
+			}
+		}
+	},
+	propTypes = {
+		"byte": {
+			floor: true,
+			max: 255
+		},
+		"percent": {
+			max: 1
+		},
+		"degrees": {
+			mod: 360,
+			floor: true
+		}
+	},
+	support = color.support = {},
+
+	// element for support tests
+	supportElem = jQuery( "<p>" )[ 0 ],
+
+	// colors = jQuery.Color.names
+	colors,
+
+	// local aliases of functions called often
+	each = jQuery.each;
+
+// determine rgba support immediately
+supportElem.style.cssText = "background-color:rgba(1,1,1,.5)";
+support.rgba = supportElem.style.backgroundColor.indexOf( "rgba" ) > -1;
+
+// define cache name and alpha properties
+// for rgba and hsla spaces
+each( spaces, function( spaceName, space ) {
+	space.cache = "_" + spaceName;
+	space.props.alpha = {
+		idx: 3,
+		type: "percent",
+		def: 1
+	};
+});
+
+function clamp( value, prop, allowEmpty ) {
+	var type = propTypes[ prop.type ] || {};
+
+	if ( value == null ) {
+		return (allowEmpty || !prop.def) ? null : prop.def;
+	}
+
+	// ~~ is an short way of doing floor for positive numbers
+	value = type.floor ? ~~value : parseFloat( value );
+
+	// IE will pass in empty strings as value for alpha,
+	// which will hit this case
+	if ( isNaN( value ) ) {
+		return prop.def;
+	}
+
+	if ( type.mod ) {
+		// we add mod before modding to make sure that negatives values
+		// get converted properly: -10 -> 350
+		return (value + type.mod) % type.mod;
+	}
+
+	// for now all property types without mod have min and max
+	return 0 > value ? 0 : type.max < value ? type.max : value;
+}
+
+function stringParse( string ) {
+	var inst = color(),
+		rgba = inst._rgba = [];
+
+	string = string.toLowerCase();
+
+	each( stringParsers, function( i, parser ) {
+		var parsed,
+			match = parser.re.exec( string ),
+			values = match && parser.parse( match ),
+			spaceName = parser.space || "rgba";
+
+		if ( values ) {
+			parsed = inst[ spaceName ]( values );
+
+			// if this was an rgba parse the assignment might happen twice
+			// oh well....
+			inst[ spaces[ spaceName ].cache ] = parsed[ spaces[ spaceName ].cache ];
+			rgba = inst._rgba = parsed._rgba;
+
+			// exit each( stringParsers ) here because we matched
+			return false;
+		}
+	});
+
+	// Found a stringParser that handled it
+	if ( rgba.length ) {
+
+		// if this came from a parsed string, force "transparent" when alpha is 0
+		// chrome, (and maybe others) return "transparent" as rgba(0,0,0,0)
+		if ( rgba.join() === "0,0,0,0" ) {
+			jQuery.extend( rgba, colors.transparent );
+		}
+		return inst;
+	}
+
+	// named colors
+	return colors[ string ];
+}
+
+color.fn = jQuery.extend( color.prototype, {
+	parse: function( red, green, blue, alpha ) {
+		if ( red === undefined ) {
+			this._rgba = [ null, null, null, null ];
+			return this;
+		}
+		if ( red.jquery || red.nodeType ) {
+			red = jQuery( red ).css( green );
+			green = undefined;
+		}
+
+		var inst = this,
+			type = jQuery.type( red ),
+			rgba = this._rgba = [];
+
+		// more than 1 argument specified - assume ( red, green, blue, alpha )
+		if ( green !== undefined ) {
+			red = [ red, green, blue, alpha ];
+			type = "array";
+		}
+
+		if ( type === "string" ) {
+			return this.parse( stringParse( red ) || colors._default );
+		}
+
+		if ( type === "array" ) {
+			each( spaces.rgba.props, function( key, prop ) {
+				rgba[ prop.idx ] = clamp( red[ prop.idx ], prop );
+			});
+			return this;
+		}
+
+		if ( type === "object" ) {
+			if ( red instanceof color ) {
+				each( spaces, function( spaceName, space ) {
+					if ( red[ space.cache ] ) {
+						inst[ space.cache ] = red[ space.cache ].slice();
+					}
+				});
+			} else {
+				each( spaces, function( spaceName, space ) {
+					var cache = space.cache;
+					each( space.props, function( key, prop ) {
+
+						// if the cache doesn't exist, and we know how to convert
+						if ( !inst[ cache ] && space.to ) {
+
+							// if the value was null, we don't need to copy it
+							// if the key was alpha, we don't need to copy it either
+							if ( key === "alpha" || red[ key ] == null ) {
+								return;
+							}
+							inst[ cache ] = space.to( inst._rgba );
+						}
+
+						// this is the only case where we allow nulls for ALL properties.
+						// call clamp with alwaysAllowEmpty
+						inst[ cache ][ prop.idx ] = clamp( red[ key ], prop, true );
+					});
+
+					// everything defined but alpha?
+					if ( inst[ cache ] && jQuery.inArray( null, inst[ cache ].slice( 0, 3 ) ) < 0 ) {
+						// use the default of 1
+						inst[ cache ][ 3 ] = 1;
+						if ( space.from ) {
+							inst._rgba = space.from( inst[ cache ] );
+						}
+					}
+				});
+			}
+			return this;
+		}
+	},
+	is: function( compare ) {
+		var is = color( compare ),
+			same = true,
+			inst = this;
+
+		each( spaces, function( _, space ) {
+			var localCache,
+				isCache = is[ space.cache ];
+			if (isCache) {
+				localCache = inst[ space.cache ] || space.to && space.to( inst._rgba ) || [];
+				each( space.props, function( _, prop ) {
+					if ( isCache[ prop.idx ] != null ) {
+						same = ( isCache[ prop.idx ] === localCache[ prop.idx ] );
+						return same;
+					}
+				});
+			}
+			return same;
+		});
+		return same;
+	},
+	_space: function() {
+		var used = [],
+			inst = this;
+		each( spaces, function( spaceName, space ) {
+			if ( inst[ space.cache ] ) {
+				used.push( spaceName );
+			}
+		});
+		return used.pop();
+	},
+	transition: function( other, distance ) {
+		var end = color( other ),
+			spaceName = end._space(),
+			space = spaces[ spaceName ],
+			startColor = this.alpha() === 0 ? color( "transparent" ) : this,
+			start = startColor[ space.cache ] || space.to( startColor._rgba ),
+			result = start.slice();
+
+		end = end[ space.cache ];
+		each( space.props, function( key, prop ) {
+			var index = prop.idx,
+				startValue = start[ index ],
+				endValue = end[ index ],
+				type = propTypes[ prop.type ] || {};
+
+			// if null, don't override start value
+			if ( endValue === null ) {
+				return;
+			}
+			// if null - use end
+			if ( startValue === null ) {
+				result[ index ] = endValue;
+			} else {
+				if ( type.mod ) {
+					if ( endValue - startValue > type.mod / 2 ) {
+						startValue += type.mod;
+					} else if ( startValue - endValue > type.mod / 2 ) {
+						startValue -= type.mod;
+					}
+				}
+				result[ index ] = clamp( ( endValue - startValue ) * distance + startValue, prop );
+			}
+		});
+		return this[ spaceName ]( result );
+	},
+	blend: function( opaque ) {
+		// if we are already opaque - return ourself
+		if ( this._rgba[ 3 ] === 1 ) {
+			return this;
+		}
+
+		var rgb = this._rgba.slice(),
+			a = rgb.pop(),
+			blend = color( opaque )._rgba;
+
+		return color( jQuery.map( rgb, function( v, i ) {
+			return ( 1 - a ) * blend[ i ] + a * v;
+		}));
+	},
+	toRgbaString: function() {
+		var prefix = "rgba(",
+			rgba = jQuery.map( this._rgba, function( v, i ) {
+				return v == null ? ( i > 2 ? 1 : 0 ) : v;
+			});
+
+		if ( rgba[ 3 ] === 1 ) {
+			rgba.pop();
+			prefix = "rgb(";
+		}
+
+		return prefix + rgba.join() + ")";
+	},
+	toHslaString: function() {
+		var prefix = "hsla(",
+			hsla = jQuery.map( this.hsla(), function( v, i ) {
+				if ( v == null ) {
+					v = i > 2 ? 1 : 0;
+				}
+
+				// catch 1 and 2
+				if ( i && i < 3 ) {
+					v = Math.round( v * 100 ) + "%";
+				}
+				return v;
+			});
+
+		if ( hsla[ 3 ] === 1 ) {
+			hsla.pop();
+			prefix = "hsl(";
+		}
+		return prefix + hsla.join() + ")";
+	},
+	toHexString: function( includeAlpha ) {
+		var rgba = this._rgba.slice(),
+			alpha = rgba.pop();
+
+		if ( includeAlpha ) {
+			rgba.push( ~~( alpha * 255 ) );
+		}
+
+		return "#" + jQuery.map( rgba, function( v ) {
+
+			// default to 0 when nulls exist
+			v = ( v || 0 ).toString( 16 );
+			return v.length === 1 ? "0" + v : v;
+		}).join("");
+	},
+	toString: function() {
+		return this._rgba[ 3 ] === 0 ? "transparent" : this.toRgbaString();
+	}
+});
+color.fn.parse.prototype = color.fn;
+
+// hsla conversions adapted from:
+// https://code.google.com/p/maashaack/source/browse/packages/graphics/trunk/src/graphics/colors/HUE2RGB.as?r=5021
+
+function hue2rgb( p, q, h ) {
+	h = ( h + 1 ) % 1;
+	if ( h * 6 < 1 ) {
+		return p + ( q - p ) * h * 6;
+	}
+	if ( h * 2 < 1) {
+		return q;
+	}
+	if ( h * 3 < 2 ) {
+		return p + ( q - p ) * ( ( 2 / 3 ) - h ) * 6;
+	}
+	return p;
+}
+
+spaces.hsla.to = function( rgba ) {
+	if ( rgba[ 0 ] == null || rgba[ 1 ] == null || rgba[ 2 ] == null ) {
+		return [ null, null, null, rgba[ 3 ] ];
+	}
+	var r = rgba[ 0 ] / 255,
+		g = rgba[ 1 ] / 255,
+		b = rgba[ 2 ] / 255,
+		a = rgba[ 3 ],
+		max = Math.max( r, g, b ),
+		min = Math.min( r, g, b ),
+		diff = max - min,
+		add = max + min,
+		l = add * 0.5,
+		h, s;
+
+	if ( min === max ) {
+		h = 0;
+	} else if ( r === max ) {
+		h = ( 60 * ( g - b ) / diff ) + 360;
+	} else if ( g === max ) {
+		h = ( 60 * ( b - r ) / diff ) + 120;
+	} else {
+		h = ( 60 * ( r - g ) / diff ) + 240;
+	}
+
+	// chroma (diff) == 0 means greyscale which, by definition, saturation = 0%
+	// otherwise, saturation is based on the ratio of chroma (diff) to lightness (add)
+	if ( diff === 0 ) {
+		s = 0;
+	} else if ( l <= 0.5 ) {
+		s = diff / add;
+	} else {
+		s = diff / ( 2 - add );
+	}
+	return [ Math.round(h) % 360, s, l, a == null ? 1 : a ];
+};
+
+spaces.hsla.from = function( hsla ) {
+	if ( hsla[ 0 ] == null || hsla[ 1 ] == null || hsla[ 2 ] == null ) {
+		return [ null, null, null, hsla[ 3 ] ];
+	}
+	var h = hsla[ 0 ] / 360,
+		s = hsla[ 1 ],
+		l = hsla[ 2 ],
+		a = hsla[ 3 ],
+		q = l <= 0.5 ? l * ( 1 + s ) : l + s - l * s,
+		p = 2 * l - q;
+
+	return [
+		Math.round( hue2rgb( p, q, h + ( 1 / 3 ) ) * 255 ),
+		Math.round( hue2rgb( p, q, h ) * 255 ),
+		Math.round( hue2rgb( p, q, h - ( 1 / 3 ) ) * 255 ),
+		a
+	];
+};
+
+each( spaces, function( spaceName, space ) {
+	var props = space.props,
+		cache = space.cache,
+		to = space.to,
+		from = space.from;
+
+	// makes rgba() and hsla()
+	color.fn[ spaceName ] = function( value ) {
+
+		// generate a cache for this space if it doesn't exist
+		if ( to && !this[ cache ] ) {
+			this[ cache ] = to( this._rgba );
+		}
+		if ( value === undefined ) {
+			return this[ cache ].slice();
+		}
+
+		var ret,
+			type = jQuery.type( value ),
+			arr = ( type === "array" || type === "object" ) ? value : arguments,
+			local = this[ cache ].slice();
+
+		each( props, function( key, prop ) {
+			var val = arr[ type === "object" ? key : prop.idx ];
+			if ( val == null ) {
+				val = local[ prop.idx ];
+			}
+			local[ prop.idx ] = clamp( val, prop );
+		});
+
+		if ( from ) {
+			ret = color( from( local ) );
+			ret[ cache ] = local;
+			return ret;
+		} else {
+			return color( local );
+		}
+	};
+
+	// makes red() green() blue() alpha() hue() saturation() lightness()
+	each( props, function( key, prop ) {
+		// alpha is included in more than one space
+		if ( color.fn[ key ] ) {
+			return;
+		}
+		color.fn[ key ] = function( value ) {
+			var vtype = jQuery.type( value ),
+				fn = ( key === "alpha" ? ( this._hsla ? "hsla" : "rgba" ) : spaceName ),
+				local = this[ fn ](),
+				cur = local[ prop.idx ],
+				match;
+
+			if ( vtype === "undefined" ) {
+				return cur;
+			}
+
+			if ( vtype === "function" ) {
+				value = value.call( this, cur );
+				vtype = jQuery.type( value );
+			}
+			if ( value == null && prop.empty ) {
+				return this;
+			}
+			if ( vtype === "string" ) {
+				match = rplusequals.exec( value );
+				if ( match ) {
+					value = cur + parseFloat( match[ 2 ] ) * ( match[ 1 ] === "+" ? 1 : -1 );
+				}
+			}
+			local[ prop.idx ] = value;
+			return this[ fn ]( local );
+		};
+	});
+});
+
+// add cssHook and .fx.step function for each named hook.
+// accept a space separated string of properties
+color.hook = function( hook ) {
+	var hooks = hook.split( " " );
+	each( hooks, function( i, hook ) {
+		jQuery.cssHooks[ hook ] = {
+			set: function( elem, value ) {
+				var parsed, curElem,
+					backgroundColor = "";
+
+				if ( value !== "transparent" && ( jQuery.type( value ) !== "string" || ( parsed = stringParse( value ) ) ) ) {
+					value = color( parsed || value );
+					if ( !support.rgba && value._rgba[ 3 ] !== 1 ) {
+						curElem = hook === "backgroundColor" ? elem.parentNode : elem;
+						while (
+							(backgroundColor === "" || backgroundColor === "transparent") &&
+							curElem && curElem.style
+						) {
+							try {
+								backgroundColor = jQuery.css( curElem, "backgroundColor" );
+								curElem = curElem.parentNode;
+							} catch ( e ) {
+							}
+						}
+
+						value = value.blend( backgroundColor && backgroundColor !== "transparent" ?
+							backgroundColor :
+							"_default" );
+					}
+
+					value = value.toRgbaString();
+				}
+				try {
+					elem.style[ hook ] = value;
+				} catch ( e ) {
+					// wrapped to prevent IE from throwing errors on "invalid" values like 'auto' or 'inherit'
+				}
+			}
+		};
+		jQuery.fx.step[ hook ] = function( fx ) {
+			if ( !fx.colorInit ) {
+				fx.start = color( fx.elem, hook );
+				fx.end = color( fx.end );
+				fx.colorInit = true;
+			}
+			jQuery.cssHooks[ hook ].set( fx.elem, fx.start.transition( fx.end, fx.pos ) );
+		};
+	});
+
+};
+
+color.hook( stepHooks );
+
+jQuery.cssHooks.borderColor = {
+	expand: function( value ) {
+		var expanded = {};
+
+		each( [ "Top", "Right", "Bottom", "Left" ], function( i, part ) {
+			expanded[ "border" + part + "Color" ] = value;
+		});
+		return expanded;
+	}
+};
+
+// Basic color names only.
+// Usage of any of the other color names requires adding yourself or including
+// jquery.color.svg-names.js.
+colors = jQuery.Color.names = {
+	// 4.1. Basic color keywords
+	aqua: "#00ffff",
+	black: "#000000",
+	blue: "#0000ff",
+	fuchsia: "#ff00ff",
+	gray: "#808080",
+	green: "#008000",
+	lime: "#00ff00",
+	maroon: "#800000",
+	navy: "#000080",
+	olive: "#808000",
+	purple: "#800080",
+	red: "#ff0000",
+	silver: "#c0c0c0",
+	teal: "#008080",
+	white: "#ffffff",
+	yellow: "#ffff00",
+
+	// 4.2.3. "transparent" color keyword
+	transparent: [ null, null, null, 0 ],
+
+	_default: "#ffffff"
+};
+
+})( jQuery );
+
+/******************************************************************************/
+/****************************** CLASS ANIMATIONS ******************************/
+/******************************************************************************/
+(function() {
+
+var classAnimationActions = [ "add", "remove", "toggle" ],
+	shorthandStyles = {
+		border: 1,
+		borderBottom: 1,
+		borderColor: 1,
+		borderLeft: 1,
+		borderRight: 1,
+		borderTop: 1,
+		borderWidth: 1,
+		margin: 1,
+		padding: 1
+	};
+
+$.each([ "borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle" ], function( _, prop ) {
+	$.fx.step[ prop ] = function( fx ) {
+		if ( fx.end !== "none" && !fx.setAttr || fx.pos === 1 && !fx.setAttr ) {
+			jQuery.style( fx.elem, prop, fx.end );
+			fx.setAttr = true;
+		}
+	};
+});
+
+function getElementStyles( elem ) {
+	var key, len,
+		style = elem.ownerDocument.defaultView ?
+			elem.ownerDocument.defaultView.getComputedStyle( elem, null ) :
+			elem.currentStyle,
+		styles = {};
+
+	if ( style && style.length && style[ 0 ] && style[ style[ 0 ] ] ) {
+		len = style.length;
+		while ( len-- ) {
+			key = style[ len ];
+			if ( typeof style[ key ] === "string" ) {
+				styles[ $.camelCase( key ) ] = style[ key ];
+			}
+		}
+	// support: Opera, IE <9
+	} else {
+		for ( key in style ) {
+			if ( typeof style[ key ] === "string" ) {
+				styles[ key ] = style[ key ];
+			}
+		}
+	}
+
+	return styles;
+}
+
+function styleDifference( oldStyle, newStyle ) {
+	var diff = {},
+		name, value;
+
+	for ( name in newStyle ) {
+		value = newStyle[ name ];
+		if ( oldStyle[ name ] !== value ) {
+			if ( !shorthandStyles[ name ] ) {
+				if ( $.fx.step[ name ] || !isNaN( parseFloat( value ) ) ) {
+					diff[ name ] = value;
+				}
+			}
+		}
+	}
+
+	return diff;
+}
+
+// support: jQuery <1.8
+if ( !$.fn.addBack ) {
+	$.fn.addBack = function( selector ) {
+		return this.add( selector == null ?
+			this.prevObject : this.prevObject.filter( selector )
+		);
+	};
+}
+
+$.effects.animateClass = function( value, duration, easing, callback ) {
+	var o = $.speed( duration, easing, callback );
+
+	return this.queue( function() {
+		var animated = $( this ),
+			baseClass = animated.attr( "class" ) || "",
+			applyClassChange,
+			allAnimations = o.children ? animated.find( "*" ).addBack() : animated;
+
+		// map the animated objects to store the original styles.
+		allAnimations = allAnimations.map(function() {
+			var el = $( this );
+			return {
+				el: el,
+				start: getElementStyles( this )
+			};
+		});
+
+		// apply class change
+		applyClassChange = function() {
+			$.each( classAnimationActions, function(i, action) {
+				if ( value[ action ] ) {
+					animated[ action + "Class" ]( value[ action ] );
+				}
+			});
+		};
+		applyClassChange();
+
+		// map all animated objects again - calculate new styles and diff
+		allAnimations = allAnimations.map(function() {
+			this.end = getElementStyles( this.el[ 0 ] );
+			this.diff = styleDifference( this.start, this.end );
+			return this;
+		});
+
+		// apply original class
+		animated.attr( "class", baseClass );
+
+		// map all animated objects again - this time collecting a promise
+		allAnimations = allAnimations.map(function() {
+			var styleInfo = this,
+				dfd = $.Deferred(),
+				opts = $.extend({}, o, {
+					queue: false,
+					complete: function() {
+						dfd.resolve( styleInfo );
+					}
+				});
+
+			this.el.animate( this.diff, opts );
+			return dfd.promise();
+		});
+
+		// once all animations have completed:
+		$.when.apply( $, allAnimations.get() ).done(function() {
+
+			// set the final class
+			applyClassChange();
+
+			// for each animated element,
+			// clear all css properties that were animated
+			$.each( arguments, function() {
+				var el = this.el;
+				$.each( this.diff, function(key) {
+					el.css( key, "" );
+				});
+			});
+
+			// this is guarnteed to be there if you use jQuery.speed()
+			// it also handles dequeuing the next anim...
+			o.complete.call( animated[ 0 ] );
+		});
+	});
+};
+
+$.fn.extend({
+	addClass: (function( orig ) {
+		return function( classNames, speed, easing, callback ) {
+			return speed ?
+				$.effects.animateClass.call( this,
+					{ add: classNames }, speed, easing, callback ) :
+				orig.apply( this, arguments );
+		};
+	})( $.fn.addClass ),
+
+	removeClass: (function( orig ) {
+		return function( classNames, speed, easing, callback ) {
+			return arguments.length > 1 ?
+				$.effects.animateClass.call( this,
+					{ remove: classNames }, speed, easing, callback ) :
+				orig.apply( this, arguments );
+		};
+	})( $.fn.removeClass ),
+
+	toggleClass: (function( orig ) {
+		return function( classNames, force, speed, easing, callback ) {
+			if ( typeof force === "boolean" || force === undefined ) {
+				if ( !speed ) {
+					// without speed parameter
+					return orig.apply( this, arguments );
+				} else {
+					return $.effects.animateClass.call( this,
+						(force ? { add: classNames } : { remove: classNames }),
+						speed, easing, callback );
+				}
+			} else {
+				// without force parameter
+				return $.effects.animateClass.call( this,
+					{ toggle: classNames }, force, speed, easing );
+			}
+		};
+	})( $.fn.toggleClass ),
+
+	switchClass: function( remove, add, speed, easing, callback) {
+		return $.effects.animateClass.call( this, {
+			add: add,
+			remove: remove
+		}, speed, easing, callback );
+	}
+});
+
+})();
+
+/******************************************************************************/
+/*********************************** EFFECTS **********************************/
+/******************************************************************************/
+
+(function() {
+
+$.extend( $.effects, {
+	version: "1.11.4",
+
+	// Saves a set of properties in a data storage
+	save: function( element, set ) {
+		for ( var i = 0; i < set.length; i++ ) {
+			if ( set[ i ] !== null ) {
+				element.data( dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ] );
+			}
+		}
+	},
+
+	// Restores a set of previously saved properties from a data storage
+	restore: function( element, set ) {
+		var val, i;
+		for ( i = 0; i < set.length; i++ ) {
+			if ( set[ i ] !== null ) {
+				val = element.data( dataSpace + set[ i ] );
+				// support: jQuery 1.6.2
+				// http://bugs.jquery.com/ticket/9917
+				// jQuery 1.6.2 incorrectly returns undefined for any falsy value.
+				// We can't differentiate between "" and 0 here, so we just assume
+				// empty string since it's likely to be a more common value...
+				if ( val === undefined ) {
+					val = "";
+				}
+				element.css( set[ i ], val );
+			}
+		}
+	},
+
+	setMode: function( el, mode ) {
+		if (mode === "toggle") {
+			mode = el.is( ":hidden" ) ? "show" : "hide";
+		}
+		return mode;
+	},
+
+	// Translates a [top,left] array into a baseline value
+	// this should be a little more flexible in the future to handle a string & hash
+	getBaseline: function( origin, original ) {
+		var y, x;
+		switch ( origin[ 0 ] ) {
+			case "top": y = 0; break;
+			case "middle": y = 0.5; break;
+			case "bottom": y = 1; break;
+			default: y = origin[ 0 ] / original.height;
+		}
+		switch ( origin[ 1 ] ) {
+			case "left": x = 0; break;
+			case "center": x = 0.5; break;
+			case "right": x = 1; break;
+			default: x = origin[ 1 ] / original.width;
+		}
+		return {
+			x: x,
+			y: y
+		};
+	},
+
+	// Wraps the element around a wrapper that copies position properties
+	createWrapper: function( element ) {
+
+		// if the element is already wrapped, return it
+		if ( element.parent().is( ".ui-effects-wrapper" )) {
+			return element.parent();
+		}
+
+		// wrap the element
+		var props = {
+				width: element.outerWidth(true),
+				height: element.outerHeight(true),
+				"float": element.css( "float" )
+			},
+			wrapper = $( "<div></div>" )
+				.addClass( "ui-effects-wrapper" )
+				.css({
+					fontSize: "100%",
+					background: "transparent",
+					border: "none",
+					margin: 0,
+					padding: 0
+				}),
+			// Store the size in case width/height are defined in % - Fixes #5245
+			size = {
+				width: element.width(),
+				height: element.height()
+			},
+			active = document.activeElement;
+
+		// support: Firefox
+		// Firefox incorrectly exposes anonymous content
+		// https://bugzilla.mozilla.org/show_bug.cgi?id=561664
+		try {
+			active.id;
+		} catch ( e ) {
+			active = document.body;
+		}
+
+		element.wrap( wrapper );
+
+		// Fixes #7595 - Elements lose focus when wrapped.
+		if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {
+			$( active ).focus();
+		}
+
+		wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually lose the reference to the wrapped element
+
+		// transfer positioning properties to the wrapper
+		if ( element.css( "position" ) === "static" ) {
+			wrapper.css({ position: "relative" });
+			element.css({ position: "relative" });
+		} else {
+			$.extend( props, {
+				position: element.css( "position" ),
+				zIndex: element.css( "z-index" )
+			});
+			$.each([ "top", "left", "bottom", "right" ], function(i, pos) {
+				props[ pos ] = element.css( pos );
+				if ( isNaN( parseInt( props[ pos ], 10 ) ) ) {
+					props[ pos ] = "auto";
+				}
+			});
+			element.css({
+				position: "relative",
+				top: 0,
+				left: 0,
+				right: "auto",
+				bottom: "auto"
+			});
+		}
+		element.css(size);
+
+		return wrapper.css( props ).show();
+	},
+
+	removeWrapper: function( element ) {
+		var active = document.activeElement;
+
+		if ( element.parent().is( ".ui-effects-wrapper" ) ) {
+			element.parent().replaceWith( element );
+
+			// Fixes #7595 - Elements lose focus when wrapped.
+			if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {
+				$( active ).focus();
+			}
+		}
+
+		return element;
+	},
+
+	setTransition: function( element, list, factor, value ) {
+		value = value || {};
+		$.each( list, function( i, x ) {
+			var unit = element.cssUnit( x );
+			if ( unit[ 0 ] > 0 ) {
+				value[ x ] = unit[ 0 ] * factor + unit[ 1 ];
+			}
+		});
+		return value;
+	}
+});
+
+// return an effect options object for the given parameters:
+function _normalizeArguments( effect, options, speed, callback ) {
+
+	// allow passing all options as the first parameter
+	if ( $.isPlainObject( effect ) ) {
+		options = effect;
+		effect = effect.effect;
+	}
+
+	// convert to an object
+	effect = { effect: effect };
+
+	// catch (effect, null, ...)
+	if ( options == null ) {
+		options = {};
+	}
+
+	// catch (effect, callback)
+	if ( $.isFunction( options ) ) {
+		callback = options;
+		speed = null;
+		options = {};
+	}
+
+	// catch (effect, speed, ?)
+	if ( typeof options === "number" || $.fx.speeds[ options ] ) {
+		callback = speed;
+		speed = options;
+		options = {};
+	}
+
+	// catch (effect, options, callback)
+	if ( $.isFunction( speed ) ) {
+		callback = speed;
+		speed = null;
+	}
+
+	// add options to effect
+	if ( options ) {
+		$.extend( effect, options );
+	}
+
+	speed = speed || options.duration;
+	effect.duration = $.fx.off ? 0 :
+		typeof speed === "number" ? speed :
+		speed in $.fx.speeds ? $.fx.speeds[ speed ] :
+		$.fx.speeds._default;
+
+	effect.complete = callback || options.complete;
+
+	return effect;
+}
+
+function standardAnimationOption( option ) {
+	// Valid standard speeds (nothing, number, named speed)
+	if ( !option || typeof option === "number" || $.fx.speeds[ option ] ) {
+		return true;
+	}
+
+	// Invalid strings - treat as "normal" speed
+	if ( typeof option === "string" && !$.effects.effect[ option ] ) {
+		return true;
+	}
+
+	// Complete callback
+	if ( $.isFunction( option ) ) {
+		return true;
+	}
+
+	// Options hash (but not naming an effect)
+	if ( typeof option === "object" && !option.effect ) {
+		return true;
+	}
+
+	// Didn't match any standard API
+	return false;
+}
+
+$.fn.extend({
+	effect: function( /* effect, options, speed, callback */ ) {
+		var args = _normalizeArguments.apply( this, arguments ),
+			mode = args.mode,
+			queue = args.queue,
+			effectMethod = $.effects.effect[ args.effect ];
+
+		if ( $.fx.off || !effectMethod ) {
+			// delegate to the original method (e.g., .show()) if possible
+			if ( mode ) {
+				return this[ mode ]( args.duration, args.complete );
+			} else {
+				return this.each( function() {
+					if ( args.complete ) {
+						args.complete.call( this );
+					}
+				});
+			}
+		}
+
+		function run( next ) {
+			var elem = $( this ),
+				complete = args.complete,
+				mode = args.mode;
+
+			function done() {
+				if ( $.isFunction( complete ) ) {
+					complete.call( elem[0] );
+				}
+				if ( $.isFunction( next ) ) {
+					next();
+				}
+			}
+
+			// If the element already has the correct final state, delegate to
+			// the core methods so the internal tracking of "olddisplay" works.
+			if ( elem.is( ":hidden" ) ? mode === "hide" : mode === "show" ) {
+				elem[ mode ]();
+				done();
+			} else {
+				effectMethod.call( elem[0], args, done );
+			}
+		}
+
+		return queue === false ? this.each( run ) : this.queue( queue || "fx", run );
+	},
+
+	show: (function( orig ) {
+		return function( option ) {
+			if ( standardAnimationOption( option ) ) {
+				return orig.apply( this, arguments );
+			} else {
+				var args = _normalizeArguments.apply( this, arguments );
+				args.mode = "show";
+				return this.effect.call( this, args );
+			}
+		};
+	})( $.fn.show ),
+
+	hide: (function( orig ) {
+		return function( option ) {
+			if ( standardAnimationOption( option ) ) {
+				return orig.apply( this, arguments );
+			} else {
+				var args = _normalizeArguments.apply( this, arguments );
+				args.mode = "hide";
+				return this.effect.call( this, args );
+			}
+		};
+	})( $.fn.hide ),
+
+	toggle: (function( orig ) {
+		return function( option ) {
+			if ( standardAnimationOption( option ) || typeof option === "boolean" ) {
+				return orig.apply( this, arguments );
+			} else {
+				var args = _normalizeArguments.apply( this, arguments );
+				args.mode = "toggle";
+				return this.effect.call( this, args );
+			}
+		};
+	})( $.fn.toggle ),
+
+	// helper functions
+	cssUnit: function(key) {
+		var style = this.css( key ),
+			val = [];
+
+		$.each( [ "em", "px", "%", "pt" ], function( i, unit ) {
+			if ( style.indexOf( unit ) > 0 ) {
+				val = [ parseFloat( style ), unit ];
+			}
+		});
+		return val;
+	}
+});
+
+})();
+
+/******************************************************************************/
+/*********************************** EASING ***********************************/
+/******************************************************************************/
+
+(function() {
+
+// based on easing equations from Robert Penner (http://www.robertpenner.com/easing)
+
+var baseEasings = {};
+
+$.each( [ "Quad", "Cubic", "Quart", "Quint", "Expo" ], function( i, name ) {
+	baseEasings[ name ] = function( p ) {
+		return Math.pow( p, i + 2 );
+	};
+});
+
+$.extend( baseEasings, {
+	Sine: function( p ) {
+		return 1 - Math.cos( p * Math.PI / 2 );
+	},
+	Circ: function( p ) {
+		return 1 - Math.sqrt( 1 - p * p );
+	},
+	Elastic: function( p ) {
+		return p === 0 || p === 1 ? p :
+			-Math.pow( 2, 8 * (p - 1) ) * Math.sin( ( (p - 1) * 80 - 7.5 ) * Math.PI / 15 );
+	},
+	Back: function( p ) {
+		return p * p * ( 3 * p - 2 );
+	},
+	Bounce: function( p ) {
+		var pow2,
+			bounce = 4;
+
+		while ( p < ( ( pow2 = Math.pow( 2, --bounce ) ) - 1 ) / 11 ) {}
+		return 1 / Math.pow( 4, 3 - bounce ) - 7.5625 * Math.pow( ( pow2 * 3 - 2 ) / 22 - p, 2 );
+	}
+});
+
+$.each( baseEasings, function( name, easeIn ) {
+	$.easing[ "easeIn" + name ] = easeIn;
+	$.easing[ "easeOut" + name ] = function( p ) {
+		return 1 - easeIn( 1 - p );
+	};
+	$.easing[ "easeInOut" + name ] = function( p ) {
+		return p < 0.5 ?
+			easeIn( p * 2 ) / 2 :
+			1 - easeIn( p * -2 + 2 ) / 2;
+	};
+});
+
+})();
+
+var effect = $.effects;
+
+
+/*!
+ * jQuery UI Effects Blind 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/blind-effect/
+ */
+
+
+var effectBlind = $.effects.effect.blind = function( o, done ) {
+	// Create element
+	var el = $( this ),
+		rvertical = /up|down|vertical/,
+		rpositivemotion = /up|left|vertical|horizontal/,
+		props = [ "position", "top", "bottom", "left", "right", "height", "width" ],
+		mode = $.effects.setMode( el, o.mode || "hide" ),
+		direction = o.direction || "up",
+		vertical = rvertical.test( direction ),
+		ref = vertical ? "height" : "width",
+		ref2 = vertical ? "top" : "left",
+		motion = rpositivemotion.test( direction ),
+		animation = {},
+		show = mode === "show",
+		wrapper, distance, margin;
+
+	// if already wrapped, the wrapper's properties are my property. #6245
+	if ( el.parent().is( ".ui-effects-wrapper" ) ) {
+		$.effects.save( el.parent(), props );
+	} else {
+		$.effects.save( el, props );
+	}
+	el.show();
+	wrapper = $.effects.createWrapper( el ).css({
+		overflow: "hidden"
+	});
+
+	distance = wrapper[ ref ]();
+	margin = parseFloat( wrapper.css( ref2 ) ) || 0;
+
+	animation[ ref ] = show ? distance : 0;
+	if ( !motion ) {
+		el
+			.css( vertical ? "bottom" : "right", 0 )
+			.css( vertical ? "top" : "left", "auto" )
+			.css({ position: "absolute" });
+
+		animation[ ref2 ] = show ? margin : distance + margin;
+	}
+
+	// start at 0 if we are showing
+	if ( show ) {
+		wrapper.css( ref, 0 );
+		if ( !motion ) {
+			wrapper.css( ref2, margin + distance );
+		}
+	}
+
+	// Animate
+	wrapper.animate( animation, {
+		duration: o.duration,
+		easing: o.easing,
+		queue: false,
+		complete: function() {
+			if ( mode === "hide" ) {
+				el.hide();
+			}
+			$.effects.restore( el, props );
+			$.effects.removeWrapper( el );
+			done();
+		}
+	});
+};
+
+
+/*!
+ * jQuery UI Effects Bounce 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/bounce-effect/
+ */
+
+
+var effectBounce = $.effects.effect.bounce = function( o, done ) {
+	var el = $( this ),
+		props = [ "position", "top", "bottom", "left", "right", "height", "width" ],
+
+		// defaults:
+		mode = $.effects.setMode( el, o.mode || "effect" ),
+		hide = mode === "hide",
+		show = mode === "show",
+		direction = o.direction || "up",
+		distance = o.distance,
+		times = o.times || 5,
+
+		// number of internal animations
+		anims = times * 2 + ( show || hide ? 1 : 0 ),
+		speed = o.duration / anims,
+		easing = o.easing,
+
+		// utility:
+		ref = ( direction === "up" || direction === "down" ) ? "top" : "left",
+		motion = ( direction === "up" || direction === "left" ),
+		i,
+		upAnim,
+		downAnim,
+
+		// we will need to re-assemble the queue to stack our animations in place
+		queue = el.queue(),
+		queuelen = queue.length;
+
+	// Avoid touching opacity to prevent clearType and PNG issues in IE
+	if ( show || hide ) {
+		props.push( "opacity" );
+	}
+
+	$.effects.save( el, props );
+	el.show();
+	$.effects.createWrapper( el ); // Create Wrapper
+
+	// default distance for the BIGGEST bounce is the outer Distance / 3
+	if ( !distance ) {
+		distance = el[ ref === "top" ? "outerHeight" : "outerWidth" ]() / 3;
+	}
+
+	if ( show ) {
+		downAnim = { opacity: 1 };
+		downAnim[ ref ] = 0;
+
+		// if we are showing, force opacity 0 and set the initial position
+		// then do the "first" animation
+		el.css( "opacity", 0 )
+			.css( ref, motion ? -distance * 2 : distance * 2 )
+			.animate( downAnim, speed, easing );
+	}
+
+	// start at the smallest distance if we are hiding
+	if ( hide ) {
+		distance = distance / Math.pow( 2, times - 1 );
+	}
+
+	downAnim = {};
+	downAnim[ ref ] = 0;
+	// Bounces up/down/left/right then back to 0 -- times * 2 animations happen here
+	for ( i = 0; i < times; i++ ) {
+		upAnim = {};
+		upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance;
+
+		el.animate( upAnim, speed, easing )
+			.animate( downAnim, speed, easing );
+
+		distance = hide ? distance * 2 : distance / 2;
+	}
+
+	// Last Bounce when Hiding
+	if ( hide ) {
+		upAnim = { opacity: 0 };
+		upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance;
+
+		el.animate( upAnim, speed, easing );
+	}
+
+	el.queue(function() {
+		if ( hide ) {
+			el.hide();
+		}
+		$.effects.restore( el, props );
+		$.effects.removeWrapper( el );
+		done();
+	});
+
+	// inject all the animations we just queued to be first in line (after "inprogress")
+	if ( queuelen > 1) {
+		queue.splice.apply( queue,
+			[ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) );
+	}
+	el.dequeue();
+
+};
+
+
+/*!
+ * jQuery UI Effects Clip 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/clip-effect/
+ */
+
+
+var effectClip = $.effects.effect.clip = function( o, done ) {
+	// Create element
+	var el = $( this ),
+		props = [ "position", "top", "bottom", "left", "right", "height", "width" ],
+		mode = $.effects.setMode( el, o.mode || "hide" ),
+		show = mode === "show",
+		direction = o.direction || "vertical",
+		vert = direction === "vertical",
+		size = vert ? "height" : "width",
+		position = vert ? "top" : "left",
+		animation = {},
+		wrapper, animate, distance;
+
+	// Save & Show
+	$.effects.save( el, props );
+	el.show();
+
+	// Create Wrapper
+	wrapper = $.effects.createWrapper( el ).css({
+		overflow: "hidden"
+	});
+	animate = ( el[0].tagName === "IMG" ) ? wrapper : el;
+	distance = animate[ size ]();
+
+	// Shift
+	if ( show ) {
+		animate.css( size, 0 );
+		animate.css( position, distance / 2 );
+	}
+
+	// Create Animation Object:
+	animation[ size ] = show ? distance : 0;
+	animation[ position ] = show ? 0 : distance / 2;
+
+	// Animate
+	animate.animate( animation, {
+		queue: false,
+		duration: o.duration,
+		easing: o.easing,
+		complete: function() {
+			if ( !show ) {
+				el.hide();
+			}
+			$.effects.restore( el, props );
+			$.effects.removeWrapper( el );
+			done();
+		}
+	});
+
+};
+
+
+/*!
+ * jQuery UI Effects Drop 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/drop-effect/
+ */
+
+
+var effectDrop = $.effects.effect.drop = function( o, done ) {
+
+	var el = $( this ),
+		props = [ "position", "top", "bottom", "left", "right", "opacity", "height", "width" ],
+		mode = $.effects.setMode( el, o.mode || "hide" ),
+		show = mode === "show",
+		direction = o.direction || "left",
+		ref = ( direction === "up" || direction === "down" ) ? "top" : "left",
+		motion = ( direction === "up" || direction === "left" ) ? "pos" : "neg",
+		animation = {
+			opacity: show ? 1 : 0
+		},
+		distance;
+
+	// Adjust
+	$.effects.save( el, props );
+	el.show();
+	$.effects.createWrapper( el );
+
+	distance = o.distance || el[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ) / 2;
+
+	if ( show ) {
+		el
+			.css( "opacity", 0 )
+			.css( ref, motion === "pos" ? -distance : distance );
+	}
+
+	// Animation
+	animation[ ref ] = ( show ?
+		( motion === "pos" ? "+=" : "-=" ) :
+		( motion === "pos" ? "-=" : "+=" ) ) +
+		distance;
+
+	// Animate
+	el.animate( animation, {
+		queue: false,
+		duration: o.duration,
+		easing: o.easing,
+		complete: function() {
+			if ( mode === "hide" ) {
+				el.hide();
+			}
+			$.effects.restore( el, props );
+			$.effects.removeWrapper( el );
+			done();
+		}
+	});
+};
+
+
+/*!
+ * jQuery UI Effects Explode 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/explode-effect/
+ */
+
+
+var effectExplode = $.effects.effect.explode = function( o, done ) {
+
+	var rows = o.pieces ? Math.round( Math.sqrt( o.pieces ) ) : 3,
+		cells = rows,
+		el = $( this ),
+		mode = $.effects.setMode( el, o.mode || "hide" ),
+		show = mode === "show",
+
+		// show and then visibility:hidden the element before calculating offset
+		offset = el.show().css( "visibility", "hidden" ).offset(),
+
+		// width and height of a piece
+		width = Math.ceil( el.outerWidth() / cells ),
+		height = Math.ceil( el.outerHeight() / rows ),
+		pieces = [],
+
+		// loop
+		i, j, left, top, mx, my;
+
+	// children animate complete:
+	function childComplete() {
+		pieces.push( this );
+		if ( pieces.length === rows * cells ) {
+			animComplete();
+		}
+	}
+
+	// clone the element for each row and cell.
+	for ( i = 0; i < rows ; i++ ) { // ===>
+		top = offset.top + i * height;
+		my = i - ( rows - 1 ) / 2 ;
+
+		for ( j = 0; j < cells ; j++ ) { // |||
+			left = offset.left + j * width;
+			mx = j - ( cells - 1 ) / 2 ;
+
+			// Create a clone of the now hidden main element that will be absolute positioned
+			// within a wrapper div off the -left and -top equal to size of our pieces
+			el
+				.clone()
+				.appendTo( "body" )
+				.wrap( "<div></div>" )
+				.css({
+					position: "absolute",
+					visibility: "visible",
+					left: -j * width,
+					top: -i * height
+				})
+
+			// select the wrapper - make it overflow: hidden and absolute positioned based on
+			// where the original was located +left and +top equal to the size of pieces
+				.parent()
+				.addClass( "ui-effects-explode" )
+				.css({
+					position: "absolute",
+					overflow: "hidden",
+					width: width,
+					height: height,
+					left: left + ( show ? mx * width : 0 ),
+					top: top + ( show ? my * height : 0 ),
+					opacity: show ? 0 : 1
+				}).animate({
+					left: left + ( show ? 0 : mx * width ),
+					top: top + ( show ? 0 : my * height ),
+					opacity: show ? 1 : 0
+				}, o.duration || 500, o.easing, childComplete );
+		}
+	}
+
+	function animComplete() {
+		el.css({
+			visibility: "visible"
+		});
+		$( pieces ).remove();
+		if ( !show ) {
+			el.hide();
+		}
+		done();
+	}
+};
+
+
+/*!
+ * jQuery UI Effects Fade 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/fade-effect/
+ */
+
+
+var effectFade = $.effects.effect.fade = function( o, done ) {
+	var el = $( this ),
+		mode = $.effects.setMode( el, o.mode || "toggle" );
+
+	el.animate({
+		opacity: mode
+	}, {
+		queue: false,
+		duration: o.duration,
+		easing: o.easing,
+		complete: done
+	});
+};
+
+
+/*!
+ * jQuery UI Effects Fold 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/fold-effect/
+ */
+
+
+var effectFold = $.effects.effect.fold = function( o, done ) {
+
+	// Create element
+	var el = $( this ),
+		props = [ "position", "top", "bottom", "left", "right", "height", "width" ],
+		mode = $.effects.setMode( el, o.mode || "hide" ),
+		show = mode === "show",
+		hide = mode === "hide",
+		size = o.size || 15,
+		percent = /([0-9]+)%/.exec( size ),
+		horizFirst = !!o.horizFirst,
+		widthFirst = show !== horizFirst,
+		ref = widthFirst ? [ "width", "height" ] : [ "height", "width" ],
+		duration = o.duration / 2,
+		wrapper, distance,
+		animation1 = {},
+		animation2 = {};
+
+	$.effects.save( el, props );
+	el.show();
+
+	// Create Wrapper
+	wrapper = $.effects.createWrapper( el ).css({
+		overflow: "hidden"
+	});
+	distance = widthFirst ?
+		[ wrapper.width(), wrapper.height() ] :
+		[ wrapper.height(), wrapper.width() ];
+
+	if ( percent ) {
+		size = parseInt( percent[ 1 ], 10 ) / 100 * distance[ hide ? 0 : 1 ];
+	}
+	if ( show ) {
+		wrapper.css( horizFirst ? {
+			height: 0,
+			width: size
+		} : {
+			height: size,
+			width: 0
+		});
+	}
+
+	// Animation
+	animation1[ ref[ 0 ] ] = show ? distance[ 0 ] : size;
+	animation2[ ref[ 1 ] ] = show ? distance[ 1 ] : 0;
+
+	// Animate
+	wrapper
+		.animate( animation1, duration, o.easing )
+		.animate( animation2, duration, o.easing, function() {
+			if ( hide ) {
+				el.hide();
+			}
+			$.effects.restore( el, props );
+			$.effects.removeWrapper( el );
+			done();
+		});
+
+};
+
+
+/*!
+ * jQuery UI Effects Highlight 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/highlight-effect/
+ */
+
+
+var effectHighlight = $.effects.effect.highlight = function( o, done ) {
+	var elem = $( this ),
+		props = [ "backgroundImage", "backgroundColor", "opacity" ],
+		mode = $.effects.setMode( elem, o.mode || "show" ),
+		animation = {
+			backgroundColor: elem.css( "backgroundColor" )
+		};
+
+	if (mode === "hide") {
+		animation.opacity = 0;
+	}
+
+	$.effects.save( elem, props );
+
+	elem
+		.show()
+		.css({
+			backgroundImage: "none",
+			backgroundColor: o.color || "#ffff99"
+		})
+		.animate( animation, {
+			queue: false,
+			duration: o.duration,
+			easing: o.easing,
+			complete: function() {
+				if ( mode === "hide" ) {
+					elem.hide();
+				}
+				$.effects.restore( elem, props );
+				done();
+			}
+		});
+};
+
+
+/*!
+ * jQuery UI Effects Size 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/size-effect/
+ */
+
+
+var effectSize = $.effects.effect.size = function( o, done ) {
+
+	// Create element
+	var original, baseline, factor,
+		el = $( this ),
+		props0 = [ "position", "top", "bottom", "left", "right", "width", "height", "overflow", "opacity" ],
+
+		// Always restore
+		props1 = [ "position", "top", "bottom", "left", "right", "overflow", "opacity" ],
+
+		// Copy for children
+		props2 = [ "width", "height", "overflow" ],
+		cProps = [ "fontSize" ],
+		vProps = [ "borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom" ],
+		hProps = [ "borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight" ],
+
+		// Set options
+		mode = $.effects.setMode( el, o.mode || "effect" ),
+		restore = o.restore || mode !== "effect",
+		scale = o.scale || "both",
+		origin = o.origin || [ "middle", "center" ],
+		position = el.css( "position" ),
+		props = restore ? props0 : props1,
+		zero = {
+			height: 0,
+			width: 0,
+			outerHeight: 0,
+			outerWidth: 0
+		};
+
+	if ( mode === "show" ) {
+		el.show();
+	}
+	original = {
+		height: el.height(),
+		width: el.width(),
+		outerHeight: el.outerHeight(),
+		outerWidth: el.outerWidth()
+	};
+
+	if ( o.mode === "toggle" && mode === "show" ) {
+		el.from = o.to || zero;
+		el.to = o.from || original;
+	} else {
+		el.from = o.from || ( mode === "show" ? zero : original );
+		el.to = o.to || ( mode === "hide" ? zero : original );
+	}
+
+	// Set scaling factor
+	factor = {
+		from: {
+			y: el.from.height / original.height,
+			x: el.from.width / original.width
+		},
+		to: {
+			y: el.to.height / original.height,
+			x: el.to.width / original.width
+		}
+	};
+
+	// Scale the css box
+	if ( scale === "box" || scale === "both" ) {
+
+		// Vertical props scaling
+		if ( factor.from.y !== factor.to.y ) {
+			props = props.concat( vProps );
+			el.from = $.effects.setTransition( el, vProps, factor.from.y, el.from );
+			el.to = $.effects.setTransition( el, vProps, factor.to.y, el.to );
+		}
+
+		// Horizontal props scaling
+		if ( factor.from.x !== factor.to.x ) {
+			props = props.concat( hProps );
+			el.from = $.effects.setTransition( el, hProps, factor.from.x, el.from );
+			el.to = $.effects.setTransition( el, hProps, factor.to.x, el.to );
+		}
+	}
+
+	// Scale the content
+	if ( scale === "content" || scale === "both" ) {
+
+		// Vertical props scaling
+		if ( factor.from.y !== factor.to.y ) {
+			props = props.concat( cProps ).concat( props2 );
+			el.from = $.effects.setTransition( el, cProps, factor.from.y, el.from );
+			el.to = $.effects.setTransition( el, cProps, factor.to.y, el.to );
+		}
+	}
+
+	$.effects.save( el, props );
+	el.show();
+	$.effects.createWrapper( el );
+	el.css( "overflow", "hidden" ).css( el.from );
+
+	// Adjust
+	if (origin) { // Calculate baseline shifts
+		baseline = $.effects.getBaseline( origin, original );
+		el.from.top = ( original.outerHeight - el.outerHeight() ) * baseline.y;
+		el.from.left = ( original.outerWidth - el.outerWidth() ) * baseline.x;
+		el.to.top = ( original.outerHeight - el.to.outerHeight ) * baseline.y;
+		el.to.left = ( original.outerWidth - el.to.outerWidth ) * baseline.x;
+	}
+	el.css( el.from ); // set top & left
+
+	// Animate
+	if ( scale === "content" || scale === "both" ) { // Scale the children
+
+		// Add margins/font-size
+		vProps = vProps.concat([ "marginTop", "marginBottom" ]).concat(cProps);
+		hProps = hProps.concat([ "marginLeft", "marginRight" ]);
+		props2 = props0.concat(vProps).concat(hProps);
+
+		el.find( "*[width]" ).each( function() {
+			var child = $( this ),
+				c_original = {
+					height: child.height(),
+					width: child.width(),
+					outerHeight: child.outerHeight(),
+					outerWidth: child.outerWidth()
+				};
+			if (restore) {
+				$.effects.save(child, props2);
+			}
+
+			child.from = {
+				height: c_original.height * factor.from.y,
+				width: c_original.width * factor.from.x,
+				outerHeight: c_original.outerHeight * factor.from.y,
+				outerWidth: c_original.outerWidth * factor.from.x
+			};
+			child.to = {
+				height: c_original.height * factor.to.y,
+				width: c_original.width * factor.to.x,
+				outerHeight: c_original.height * factor.to.y,
+				outerWidth: c_original.width * factor.to.x
+			};
+
+			// Vertical props scaling
+			if ( factor.from.y !== factor.to.y ) {
+				child.from = $.effects.setTransition( child, vProps, factor.from.y, child.from );
+				child.to = $.effects.setTransition( child, vProps, factor.to.y, child.to );
+			}
+
+			// Horizontal props scaling
+			if ( factor.from.x !== factor.to.x ) {
+				child.from = $.effects.setTransition( child, hProps, factor.from.x, child.from );
+				child.to = $.effects.setTransition( child, hProps, factor.to.x, child.to );
+			}
+
+			// Animate children
+			child.css( child.from );
+			child.animate( child.to, o.duration, o.easing, function() {
+
+				// Restore children
+				if ( restore ) {
+					$.effects.restore( child, props2 );
+				}
+			});
+		});
+	}
+
+	// Animate
+	el.animate( el.to, {
+		queue: false,
+		duration: o.duration,
+		easing: o.easing,
+		complete: function() {
+			if ( el.to.opacity === 0 ) {
+				el.css( "opacity", el.from.opacity );
+			}
+			if ( mode === "hide" ) {
+				el.hide();
+			}
+			$.effects.restore( el, props );
+			if ( !restore ) {
+
+				// we need to calculate our new positioning based on the scaling
+				if ( position === "static" ) {
+					el.css({
+						position: "relative",
+						top: el.to.top,
+						left: el.to.left
+					});
+				} else {
+					$.each([ "top", "left" ], function( idx, pos ) {
+						el.css( pos, function( _, str ) {
+							var val = parseInt( str, 10 ),
+								toRef = idx ? el.to.left : el.to.top;
+
+							// if original was "auto", recalculate the new value from wrapper
+							if ( str === "auto" ) {
+								return toRef + "px";
+							}
+
+							return val + toRef + "px";
+						});
+					});
+				}
+			}
+
+			$.effects.removeWrapper( el );
+			done();
+		}
+	});
+
+};
+
+
+/*!
+ * jQuery UI Effects Scale 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/scale-effect/
+ */
+
+
+var effectScale = $.effects.effect.scale = function( o, done ) {
+
+	// Create element
+	var el = $( this ),
+		options = $.extend( true, {}, o ),
+		mode = $.effects.setMode( el, o.mode || "effect" ),
+		percent = parseInt( o.percent, 10 ) ||
+			( parseInt( o.percent, 10 ) === 0 ? 0 : ( mode === "hide" ? 0 : 100 ) ),
+		direction = o.direction || "both",
+		origin = o.origin,
+		original = {
+			height: el.height(),
+			width: el.width(),
+			outerHeight: el.outerHeight(),
+			outerWidth: el.outerWidth()
+		},
+		factor = {
+			y: direction !== "horizontal" ? (percent / 100) : 1,
+			x: direction !== "vertical" ? (percent / 100) : 1
+		};
+
+	// We are going to pass this effect to the size effect:
+	options.effect = "size";
+	options.queue = false;
+	options.complete = done;
+
+	// Set default origin and restore for show/hide
+	if ( mode !== "effect" ) {
+		options.origin = origin || [ "middle", "center" ];
+		options.restore = true;
+	}
+
+	options.from = o.from || ( mode === "show" ? {
+		height: 0,
+		width: 0,
+		outerHeight: 0,
+		outerWidth: 0
+	} : original );
+	options.to = {
+		height: original.height * factor.y,
+		width: original.width * factor.x,
+		outerHeight: original.outerHeight * factor.y,
+		outerWidth: original.outerWidth * factor.x
+	};
+
+	// Fade option to support puff
+	if ( options.fade ) {
+		if ( mode === "show" ) {
+			options.from.opacity = 0;
+			options.to.opacity = 1;
+		}
+		if ( mode === "hide" ) {
+			options.from.opacity = 1;
+			options.to.opacity = 0;
+		}
+	}
+
+	// Animate
+	el.effect( options );
+
+};
+
+
+/*!
+ * jQuery UI Effects Puff 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/puff-effect/
+ */
+
+
+var effectPuff = $.effects.effect.puff = function( o, done ) {
+	var elem = $( this ),
+		mode = $.effects.setMode( elem, o.mode || "hide" ),
+		hide = mode === "hide",
+		percent = parseInt( o.percent, 10 ) || 150,
+		factor = percent / 100,
+		original = {
+			height: elem.height(),
+			width: elem.width(),
+			outerHeight: elem.outerHeight(),
+			outerWidth: elem.outerWidth()
+		};
+
+	$.extend( o, {
+		effect: "scale",
+		queue: false,
+		fade: true,
+		mode: mode,
+		complete: done,
+		percent: hide ? percent : 100,
+		from: hide ?
+			original :
+			{
+				height: original.height * factor,
+				width: original.width * factor,
+				outerHeight: original.outerHeight * factor,
+				outerWidth: original.outerWidth * factor
+			}
+	});
+
+	elem.effect( o );
+};
+
+
+/*!
+ * jQuery UI Effects Pulsate 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/pulsate-effect/
+ */
+
+
+var effectPulsate = $.effects.effect.pulsate = function( o, done ) {
+	var elem = $( this ),
+		mode = $.effects.setMode( elem, o.mode || "show" ),
+		show = mode === "show",
+		hide = mode === "hide",
+		showhide = ( show || mode === "hide" ),
+
+		// showing or hiding leaves of the "last" animation
+		anims = ( ( o.times || 5 ) * 2 ) + ( showhide ? 1 : 0 ),
+		duration = o.duration / anims,
+		animateTo = 0,
+		queue = elem.queue(),
+		queuelen = queue.length,
+		i;
+
+	if ( show || !elem.is(":visible")) {
+		elem.css( "opacity", 0 ).show();
+		animateTo = 1;
+	}
+
+	// anims - 1 opacity "toggles"
+	for ( i = 1; i < anims; i++ ) {
+		elem.animate({
+			opacity: animateTo
+		}, duration, o.easing );
+		animateTo = 1 - animateTo;
+	}
+
+	elem.animate({
+		opacity: animateTo
+	}, duration, o.easing);
+
+	elem.queue(function() {
+		if ( hide ) {
+			elem.hide();
+		}
+		done();
+	});
+
+	// We just queued up "anims" animations, we need to put them next in the queue
+	if ( queuelen > 1 ) {
+		queue.splice.apply( queue,
+			[ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) );
+	}
+	elem.dequeue();
+};
+
+
+/*!
+ * jQuery UI Effects Shake 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/shake-effect/
+ */
+
+
+var effectShake = $.effects.effect.shake = function( o, done ) {
+
+	var el = $( this ),
+		props = [ "position", "top", "bottom", "left", "right", "height", "width" ],
+		mode = $.effects.setMode( el, o.mode || "effect" ),
+		direction = o.direction || "left",
+		distance = o.distance || 20,
+		times = o.times || 3,
+		anims = times * 2 + 1,
+		speed = Math.round( o.duration / anims ),
+		ref = (direction === "up" || direction === "down") ? "top" : "left",
+		positiveMotion = (direction === "up" || direction === "left"),
+		animation = {},
+		animation1 = {},
+		animation2 = {},
+		i,
+
+		// we will need to re-assemble the queue to stack our animations in place
+		queue = el.queue(),
+		queuelen = queue.length;
+
+	$.effects.save( el, props );
+	el.show();
+	$.effects.createWrapper( el );
+
+	// Animation
+	animation[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance;
+	animation1[ ref ] = ( positiveMotion ? "+=" : "-=" ) + distance * 2;
+	animation2[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance * 2;
+
+	// Animate
+	el.animate( animation, speed, o.easing );
+
+	// Shakes
+	for ( i = 1; i < times; i++ ) {
+		el.animate( animation1, speed, o.easing ).animate( animation2, speed, o.easing );
+	}
+	el
+		.animate( animation1, speed, o.easing )
+		.animate( animation, speed / 2, o.easing )
+		.queue(function() {
+			if ( mode === "hide" ) {
+				el.hide();
+			}
+			$.effects.restore( el, props );
+			$.effects.removeWrapper( el );
+			done();
+		});
+
+	// inject all the animations we just queued to be first in line (after "inprogress")
+	if ( queuelen > 1) {
+		queue.splice.apply( queue,
+			[ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) );
+	}
+	el.dequeue();
+
+};
+
+
+/*!
+ * jQuery UI Effects Slide 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/slide-effect/
+ */
+
+
+var effectSlide = $.effects.effect.slide = function( o, done ) {
+
+	// Create element
+	var el = $( this ),
+		props = [ "position", "top", "bottom", "left", "right", "width", "height" ],
+		mode = $.effects.setMode( el, o.mode || "show" ),
+		show = mode === "show",
+		direction = o.direction || "left",
+		ref = (direction === "up" || direction === "down") ? "top" : "left",
+		positiveMotion = (direction === "up" || direction === "left"),
+		distance,
+		animation = {};
+
+	// Adjust
+	$.effects.save( el, props );
+	el.show();
+	distance = o.distance || el[ ref === "top" ? "outerHeight" : "outerWidth" ]( true );
+
+	$.effects.createWrapper( el ).css({
+		overflow: "hidden"
+	});
+
+	if ( show ) {
+		el.css( ref, positiveMotion ? (isNaN(distance) ? "-" + distance : -distance) : distance );
+	}
+
+	// Animation
+	animation[ ref ] = ( show ?
+		( positiveMotion ? "+=" : "-=") :
+		( positiveMotion ? "-=" : "+=")) +
+		distance;
+
+	// Animate
+	el.animate( animation, {
+		queue: false,
+		duration: o.duration,
+		easing: o.easing,
+		complete: function() {
+			if ( mode === "hide" ) {
+				el.hide();
+			}
+			$.effects.restore( el, props );
+			$.effects.removeWrapper( el );
+			done();
+		}
+	});
+};
+
+
+/*!
+ * jQuery UI Effects Transfer 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/transfer-effect/
+ */
+
+
+var effectTransfer = $.effects.effect.transfer = function( o, done ) {
+	var elem = $( this ),
+		target = $( o.to ),
+		targetFixed = target.css( "position" ) === "fixed",
+		body = $("body"),
+		fixTop = targetFixed ? body.scrollTop() : 0,
+		fixLeft = targetFixed ? body.scrollLeft() : 0,
+		endPosition = target.offset(),
+		animation = {
+			top: endPosition.top - fixTop,
+			left: endPosition.left - fixLeft,
+			height: target.innerHeight(),
+			width: target.innerWidth()
+		},
+		startPosition = elem.offset(),
+		transfer = $( "<div class='ui-effects-transfer'></div>" )
+			.appendTo( document.body )
+			.addClass( o.className )
+			.css({
+				top: startPosition.top - fixTop,
+				left: startPosition.left - fixLeft,
+				height: elem.innerHeight(),
+				width: elem.innerWidth(),
+				position: targetFixed ? "fixed" : "absolute"
+			})
+			.animate( animation, o.duration, o.easing, function() {
+				transfer.remove();
+				done();
+			});
+};
+
+
+/*!
+ * jQuery UI Progressbar 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/progressbar/
+ */
+
+
+var progressbar = $.widget( "ui.progressbar", {
+	version: "1.11.4",
+	options: {
+		max: 100,
+		value: 0,
+
+		change: null,
+		complete: null
+	},
+
+	min: 0,
+
+	_create: function() {
+		// Constrain initial value
+		this.oldValue = this.options.value = this._constrainedValue();
+
+		this.element
+			.addClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" )
+			.attr({
+				// Only set static values, aria-valuenow and aria-valuemax are
+				// set inside _refreshValue()
+				role: "progressbar",
+				"aria-valuemin": this.min
+			});
+
+		this.valueDiv = $( "<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>" )
+			.appendTo( this.element );
+
+		this._refreshValue();
+	},
+
+	_destroy: function() {
+		this.element
+			.removeClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" )
+			.removeAttr( "role" )
+			.removeAttr( "aria-valuemin" )
+			.removeAttr( "aria-valuemax" )
+			.removeAttr( "aria-valuenow" );
+
+		this.valueDiv.remove();
+	},
+
+	value: function( newValue ) {
+		if ( newValue === undefined ) {
+			return this.options.value;
+		}
+
+		this.options.value = this._constrainedValue( newValue );
+		this._refreshValue();
+	},
+
+	_constrainedValue: function( newValue ) {
+		if ( newValue === undefined ) {
+			newValue = this.options.value;
+		}
+
+		this.indeterminate = newValue === false;
+
+		// sanitize value
+		if ( typeof newValue !== "number" ) {
+			newValue = 0;
+		}
+
+		return this.indeterminate ? false :
+			Math.min( this.options.max, Math.max( this.min, newValue ) );
+	},
+
+	_setOptions: function( options ) {
+		// Ensure "value" option is set after other values (like max)
+		var value = options.value;
+		delete options.value;
+
+		this._super( options );
+
+		this.options.value = this._constrainedValue( value );
+		this._refreshValue();
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "max" ) {
+			// Don't allow a max less than min
+			value = Math.max( this.min, value );
+		}
+		if ( key === "disabled" ) {
+			this.element
+				.toggleClass( "ui-state-disabled", !!value )
+				.attr( "aria-disabled", value );
+		}
+		this._super( key, value );
+	},
+
+	_percentage: function() {
+		return this.indeterminate ? 100 : 100 * ( this.options.value - this.min ) / ( this.options.max - this.min );
+	},
+
+	_refreshValue: function() {
+		var value = this.options.value,
+			percentage = this._percentage();
+
+		this.valueDiv
+			.toggle( this.indeterminate || value > this.min )
+			.toggleClass( "ui-corner-right", value === this.options.max )
+			.width( percentage.toFixed(0) + "%" );
+
+		this.element.toggleClass( "ui-progressbar-indeterminate", this.indeterminate );
+
+		if ( this.indeterminate ) {
+			this.element.removeAttr( "aria-valuenow" );
+			if ( !this.overlayDiv ) {
+				this.overlayDiv = $( "<div class='ui-progressbar-overlay'></div>" ).appendTo( this.valueDiv );
+			}
+		} else {
+			this.element.attr({
+				"aria-valuemax": this.options.max,
+				"aria-valuenow": value
+			});
+			if ( this.overlayDiv ) {
+				this.overlayDiv.remove();
+				this.overlayDiv = null;
+			}
+		}
+
+		if ( this.oldValue !== value ) {
+			this.oldValue = value;
+			this._trigger( "change" );
+		}
+		if ( value === this.options.max ) {
+			this._trigger( "complete" );
+		}
+	}
+});
+
+
+/*!
+ * jQuery UI Selectable 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/selectable/
+ */
+
+
+var selectable = $.widget("ui.selectable", $.ui.mouse, {
+	version: "1.11.4",
+	options: {
+		appendTo: "body",
+		autoRefresh: true,
+		distance: 0,
+		filter: "*",
+		tolerance: "touch",
+
+		// callbacks
+		selected: null,
+		selecting: null,
+		start: null,
+		stop: null,
+		unselected: null,
+		unselecting: null
+	},
+	_create: function() {
+		var selectees,
+			that = this;
+
+		this.element.addClass("ui-selectable");
+
+		this.dragged = false;
+
+		// cache selectee children based on filter
+		this.refresh = function() {
+			selectees = $(that.options.filter, that.element[0]);
+			selectees.addClass("ui-selectee");
+			selectees.each(function() {
+				var $this = $(this),
+					pos = $this.offset();
+				$.data(this, "selectable-item", {
+					element: this,
+					$element: $this,
+					left: pos.left,
+					top: pos.top,
+					right: pos.left + $this.outerWidth(),
+					bottom: pos.top + $this.outerHeight(),
+					startselected: false,
+					selected: $this.hasClass("ui-selected"),
+					selecting: $this.hasClass("ui-selecting"),
+					unselecting: $this.hasClass("ui-unselecting")
+				});
+			});
+		};
+		this.refresh();
+
+		this.selectees = selectees.addClass("ui-selectee");
+
+		this._mouseInit();
+
+		this.helper = $("<div class='ui-selectable-helper'></div>");
+	},
+
+	_destroy: function() {
+		this.selectees
+			.removeClass("ui-selectee")
+			.removeData("selectable-item");
+		this.element
+			.removeClass("ui-selectable ui-selectable-disabled");
+		this._mouseDestroy();
+	},
+
+	_mouseStart: function(event) {
+		var that = this,
+			options = this.options;
+
+		this.opos = [ event.pageX, event.pageY ];
+
+		if (this.options.disabled) {
+			return;
+		}
+
+		this.selectees = $(options.filter, this.element[0]);
+
+		this._trigger("start", event);
+
+		$(options.appendTo).append(this.helper);
+		// position helper (lasso)
+		this.helper.css({
+			"left": event.pageX,
+			"top": event.pageY,
+			"width": 0,
+			"height": 0
+		});
+
+		if (options.autoRefresh) {
+			this.refresh();
+		}
+
+		this.selectees.filter(".ui-selected").each(function() {
+			var selectee = $.data(this, "selectable-item");
+			selectee.startselected = true;
+			if (!event.metaKey && !event.ctrlKey) {
+				selectee.$element.removeClass("ui-selected");
+				selectee.selected = false;
+				selectee.$element.addClass("ui-unselecting");
+				selectee.unselecting = true;
+				// selectable UNSELECTING callback
+				that._trigger("unselecting", event, {
+					unselecting: selectee.element
+				});
+			}
+		});
+
+		$(event.target).parents().addBack().each(function() {
+			var doSelect,
+				selectee = $.data(this, "selectable-item");
+			if (selectee) {
+				doSelect = (!event.metaKey && !event.ctrlKey) || !selectee.$element.hasClass("ui-selected");
+				selectee.$element
+					.removeClass(doSelect ? "ui-unselecting" : "ui-selected")
+					.addClass(doSelect ? "ui-selecting" : "ui-unselecting");
+				selectee.unselecting = !doSelect;
+				selectee.selecting = doSelect;
+				selectee.selected = doSelect;
+				// selectable (UN)SELECTING callback
+				if (doSelect) {
+					that._trigger("selecting", event, {
+						selecting: selectee.element
+					});
+				} else {
+					that._trigger("unselecting", event, {
+						unselecting: selectee.element
+					});
+				}
+				return false;
+			}
+		});
+
+	},
+
+	_mouseDrag: function(event) {
+
+		this.dragged = true;
+
+		if (this.options.disabled) {
+			return;
+		}
+
+		var tmp,
+			that = this,
+			options = this.options,
+			x1 = this.opos[0],
+			y1 = this.opos[1],
+			x2 = event.pageX,
+			y2 = event.pageY;
+
+		if (x1 > x2) { tmp = x2; x2 = x1; x1 = tmp; }
+		if (y1 > y2) { tmp = y2; y2 = y1; y1 = tmp; }
+		this.helper.css({ left: x1, top: y1, width: x2 - x1, height: y2 - y1 });
+
+		this.selectees.each(function() {
+			var selectee = $.data(this, "selectable-item"),
+				hit = false;
+
+			//prevent helper from being selected if appendTo: selectable
+			if (!selectee || selectee.element === that.element[0]) {
+				return;
+			}
+
+			if (options.tolerance === "touch") {
+				hit = ( !(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1) );
+			} else if (options.tolerance === "fit") {
+				hit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2);
+			}
+
+			if (hit) {
+				// SELECT
+				if (selectee.selected) {
+					selectee.$element.removeClass("ui-selected");
+					selectee.selected = false;
+				}
+				if (selectee.unselecting) {
+					selectee.$element.removeClass("ui-unselecting");
+					selectee.unselecting = false;
+				}
+				if (!selectee.selecting) {
+					selectee.$element.addClass("ui-selecting");
+					selectee.selecting = true;
+					// selectable SELECTING callback
+					that._trigger("selecting", event, {
+						selecting: selectee.element
+					});
+				}
+			} else {
+				// UNSELECT
+				if (selectee.selecting) {
+					if ((event.metaKey || event.ctrlKey) && selectee.startselected) {
+						selectee.$element.removeClass("ui-selecting");
+						selectee.selecting = false;
+						selectee.$element.addClass("ui-selected");
+						selectee.selected = true;
+					} else {
+						selectee.$element.removeClass("ui-selecting");
+						selectee.selecting = false;
+						if (selectee.startselected) {
+							selectee.$element.addClass("ui-unselecting");
+							selectee.unselecting = true;
+						}
+						// selectable UNSELECTING callback
+						that._trigger("unselecting", event, {
+							unselecting: selectee.element
+						});
+					}
+				}
+				if (selectee.selected) {
+					if (!event.metaKey && !event.ctrlKey && !selectee.startselected) {
+						selectee.$element.removeClass("ui-selected");
+						selectee.selected = false;
+
+						selectee.$element.addClass("ui-unselecting");
+						selectee.unselecting = true;
+						// selectable UNSELECTING callback
+						that._trigger("unselecting", event, {
+							unselecting: selectee.element
+						});
+					}
+				}
+			}
+		});
+
+		return false;
+	},
+
+	_mouseStop: function(event) {
+		var that = this;
+
+		this.dragged = false;
+
+		$(".ui-unselecting", this.element[0]).each(function() {
+			var selectee = $.data(this, "selectable-item");
+			selectee.$element.removeClass("ui-unselecting");
+			selectee.unselecting = false;
+			selectee.startselected = false;
+			that._trigger("unselected", event, {
+				unselected: selectee.element
+			});
+		});
+		$(".ui-selecting", this.element[0]).each(function() {
+			var selectee = $.data(this, "selectable-item");
+			selectee.$element.removeClass("ui-selecting").addClass("ui-selected");
+			selectee.selecting = false;
+			selectee.selected = true;
+			selectee.startselected = true;
+			that._trigger("selected", event, {
+				selected: selectee.element
+			});
+		});
+		this._trigger("stop", event);
+
+		this.helper.remove();
+
+		return false;
+	}
+
+});
+
+
+/*!
+ * jQuery UI Selectmenu 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/selectmenu
+ */
+
+
+var selectmenu = $.widget( "ui.selectmenu", {
+	version: "1.11.4",
+	defaultElement: "<select>",
+	options: {
+		appendTo: null,
+		disabled: null,
+		icons: {
+			button: "ui-icon-triangle-1-s"
+		},
+		position: {
+			my: "left top",
+			at: "left bottom",
+			collision: "none"
+		},
+		width: null,
+
+		// callbacks
+		change: null,
+		close: null,
+		focus: null,
+		open: null,
+		select: null
+	},
+
+	_create: function() {
+		var selectmenuId = this.element.uniqueId().attr( "id" );
+		this.ids = {
+			element: selectmenuId,
+			button: selectmenuId + "-button",
+			menu: selectmenuId + "-menu"
+		};
+
+		this._drawButton();
+		this._drawMenu();
+
+		if ( this.options.disabled ) {
+			this.disable();
+		}
+	},
+
+	_drawButton: function() {
+		var that = this;
+
+		// Associate existing label with the new button
+		this.label = $( "label[for='" + this.ids.element + "']" ).attr( "for", this.ids.button );
+		this._on( this.label, {
+			click: function( event ) {
+				this.button.focus();
+				event.preventDefault();
+			}
+		});
+
+		// Hide original select element
+		this.element.hide();
+
+		// Create button
+		this.button = $( "<span>", {
+			"class": "ui-selectmenu-button ui-widget ui-state-default ui-corner-all",
+			tabindex: this.options.disabled ? -1 : 0,
+			id: this.ids.button,
+			role: "combobox",
+			"aria-expanded": "false",
+			"aria-autocomplete": "list",
+			"aria-owns": this.ids.menu,
+			"aria-haspopup": "true"
+		})
+			.insertAfter( this.element );
+
+		$( "<span>", {
+			"class": "ui-icon " + this.options.icons.button
+		})
+			.prependTo( this.button );
+
+		this.buttonText = $( "<span>", {
+			"class": "ui-selectmenu-text"
+		})
+			.appendTo( this.button );
+
+		this._setText( this.buttonText, this.element.find( "option:selected" ).text() );
+		this._resizeButton();
+
+		this._on( this.button, this._buttonEvents );
+		this.button.one( "focusin", function() {
+
+			// Delay rendering the menu items until the button receives focus.
+			// The menu may have already been rendered via a programmatic open.
+			if ( !that.menuItems ) {
+				that._refreshMenu();
+			}
+		});
+		this._hoverable( this.button );
+		this._focusable( this.button );
+	},
+
+	_drawMenu: function() {
+		var that = this;
+
+		// Create menu
+		this.menu = $( "<ul>", {
+			"aria-hidden": "true",
+			"aria-labelledby": this.ids.button,
+			id: this.ids.menu
+		});
+
+		// Wrap menu
+		this.menuWrap = $( "<div>", {
+			"class": "ui-selectmenu-menu ui-front"
+		})
+			.append( this.menu )
+			.appendTo( this._appendTo() );
+
+		// Initialize menu widget
+		this.menuInstance = this.menu
+			.menu({
+				role: "listbox",
+				select: function( event, ui ) {
+					event.preventDefault();
+
+					// support: IE8
+					// If the item was selected via a click, the text selection
+					// will be destroyed in IE
+					that._setSelection();
+
+					that._select( ui.item.data( "ui-selectmenu-item" ), event );
+				},
+				focus: function( event, ui ) {
+					var item = ui.item.data( "ui-selectmenu-item" );
+
+					// Prevent inital focus from firing and check if its a newly focused item
+					if ( that.focusIndex != null && item.index !== that.focusIndex ) {
+						that._trigger( "focus", event, { item: item } );
+						if ( !that.isOpen ) {
+							that._select( item, event );
+						}
+					}
+					that.focusIndex = item.index;
+
+					that.button.attr( "aria-activedescendant",
+						that.menuItems.eq( item.index ).attr( "id" ) );
+				}
+			})
+			.menu( "instance" );
+
+		// Adjust menu styles to dropdown
+		this.menu
+			.addClass( "ui-corner-bottom" )
+			.removeClass( "ui-corner-all" );
+
+		// Don't close the menu on mouseleave
+		this.menuInstance._off( this.menu, "mouseleave" );
+
+		// Cancel the menu's collapseAll on document click
+		this.menuInstance._closeOnDocumentClick = function() {
+			return false;
+		};
+
+		// Selects often contain empty items, but never contain dividers
+		this.menuInstance._isDivider = function() {
+			return false;
+		};
+	},
+
+	refresh: function() {
+		this._refreshMenu();
+		this._setText( this.buttonText, this._getSelectedItem().text() );
+		if ( !this.options.width ) {
+			this._resizeButton();
+		}
+	},
+
+	_refreshMenu: function() {
+		this.menu.empty();
+
+		var item,
+			options = this.element.find( "option" );
+
+		if ( !options.length ) {
+			return;
+		}
+
+		this._parseOptions( options );
+		this._renderMenu( this.menu, this.items );
+
+		this.menuInstance.refresh();
+		this.menuItems = this.menu.find( "li" ).not( ".ui-selectmenu-optgroup" );
+
+		item = this._getSelectedItem();
+
+		// Update the menu to have the correct item focused
+		this.menuInstance.focus( null, item );
+		this._setAria( item.data( "ui-selectmenu-item" ) );
+
+		// Set disabled state
+		this._setOption( "disabled", this.element.prop( "disabled" ) );
+	},
+
+	open: function( event ) {
+		if ( this.options.disabled ) {
+			return;
+		}
+
+		// If this is the first time the menu is being opened, render the items
+		if ( !this.menuItems ) {
+			this._refreshMenu();
+		} else {
+
+			// Menu clears focus on close, reset focus to selected item
+			this.menu.find( ".ui-state-focus" ).removeClass( "ui-state-focus" );
+			this.menuInstance.focus( null, this._getSelectedItem() );
+		}
+
+		this.isOpen = true;
+		this._toggleAttr();
+		this._resizeMenu();
+		this._position();
+
+		this._on( this.document, this._documentClick );
+
+		this._trigger( "open", event );
+	},
+
+	_position: function() {
+		this.menuWrap.position( $.extend( { of: this.button }, this.options.position ) );
+	},
+
+	close: function( event ) {
+		if ( !this.isOpen ) {
+			return;
+		}
+
+		this.isOpen = false;
+		this._toggleAttr();
+
+		this.range = null;
+		this._off( this.document );
+
+		this._trigger( "close", event );
+	},
+
+	widget: function() {
+		return this.button;
+	},
+
+	menuWidget: function() {
+		return this.menu;
+	},
+
+	_renderMenu: function( ul, items ) {
+		var that = this,
+			currentOptgroup = "";
+
+		$.each( items, function( index, item ) {
+			if ( item.optgroup !== currentOptgroup ) {
+				$( "<li>", {
+					"class": "ui-selectmenu-optgroup ui-menu-divider" +
+						( item.element.parent( "optgroup" ).prop( "disabled" ) ?
+							" ui-state-disabled" :
+							"" ),
+					text: item.optgroup
+				})
+					.appendTo( ul );
+
+				currentOptgroup = item.optgroup;
+			}
+
+			that._renderItemData( ul, item );
+		});
+	},
+
+	_renderItemData: function( ul, item ) {
+		return this._renderItem( ul, item ).data( "ui-selectmenu-item", item );
+	},
+
+	_renderItem: function( ul, item ) {
+		var li = $( "<li>" );
+
+		if ( item.disabled ) {
+			li.addClass( "ui-state-disabled" );
+		}
+		this._setText( li, item.label );
+
+		return li.appendTo( ul );
+	},
+
+	_setText: function( element, value ) {
+		if ( value ) {
+			element.text( value );
+		} else {
+			element.html( "&#160;" );
+		}
+	},
+
+	_move: function( direction, event ) {
+		var item, next,
+			filter = ".ui-menu-item";
+
+		if ( this.isOpen ) {
+			item = this.menuItems.eq( this.focusIndex );
+		} else {
+			item = this.menuItems.eq( this.element[ 0 ].selectedIndex );
+			filter += ":not(.ui-state-disabled)";
+		}
+
+		if ( direction === "first" || direction === "last" ) {
+			next = item[ direction === "first" ? "prevAll" : "nextAll" ]( filter ).eq( -1 );
+		} else {
+			next = item[ direction + "All" ]( filter ).eq( 0 );
+		}
+
+		if ( next.length ) {
+			this.menuInstance.focus( event, next );
+		}
+	},
+
+	_getSelectedItem: function() {
+		return this.menuItems.eq( this.element[ 0 ].selectedIndex );
+	},
+
+	_toggle: function( event ) {
+		this[ this.isOpen ? "close" : "open" ]( event );
+	},
+
+	_setSelection: function() {
+		var selection;
+
+		if ( !this.range ) {
+			return;
+		}
+
+		if ( window.getSelection ) {
+			selection = window.getSelection();
+			selection.removeAllRanges();
+			selection.addRange( this.range );
+
+		// support: IE8
+		} else {
+			this.range.select();
+		}
+
+		// support: IE
+		// Setting the text selection kills the button focus in IE, but
+		// restoring the focus doesn't kill the selection.
+		this.button.focus();
+	},
+
+	_documentClick: {
+		mousedown: function( event ) {
+			if ( !this.isOpen ) {
+				return;
+			}
+
+			if ( !$( event.target ).closest( ".ui-selectmenu-menu, #" + this.ids.button ).length ) {
+				this.close( event );
+			}
+		}
+	},
+
+	_buttonEvents: {
+
+		// Prevent text selection from being reset when interacting with the selectmenu (#10144)
+		mousedown: function() {
+			var selection;
+
+			if ( window.getSelection ) {
+				selection = window.getSelection();
+				if ( selection.rangeCount ) {
+					this.range = selection.getRangeAt( 0 );
+				}
+
+			// support: IE8
+			} else {
+				this.range = document.selection.createRange();
+			}
+		},
+
+		click: function( event ) {
+			this._setSelection();
+			this._toggle( event );
+		},
+
+		keydown: function( event ) {
+			var preventDefault = true;
+			switch ( event.keyCode ) {
+				case $.ui.keyCode.TAB:
+				case $.ui.keyCode.ESCAPE:
+					this.close( event );
+					preventDefault = false;
+					break;
+				case $.ui.keyCode.ENTER:
+					if ( this.isOpen ) {
+						this._selectFocusedItem( event );
+					}
+					break;
+				case $.ui.keyCode.UP:
+					if ( event.altKey ) {
+						this._toggle( event );
+					} else {
+						this._move( "prev", event );
+					}
+					break;
+				case $.ui.keyCode.DOWN:
+					if ( event.altKey ) {
+						this._toggle( event );
+					} else {
+						this._move( "next", event );
+					}
+					break;
+				case $.ui.keyCode.SPACE:
+					if ( this.isOpen ) {
+						this._selectFocusedItem( event );
+					} else {
+						this._toggle( event );
+					}
+					break;
+				case $.ui.keyCode.LEFT:
+					this._move( "prev", event );
+					break;
+				case $.ui.keyCode.RIGHT:
+					this._move( "next", event );
+					break;
+				case $.ui.keyCode.HOME:
+				case $.ui.keyCode.PAGE_UP:
+					this._move( "first", event );
+					break;
+				case $.ui.keyCode.END:
+				case $.ui.keyCode.PAGE_DOWN:
+					this._move( "last", event );
+					break;
+				default:
+					this.menu.trigger( event );
+					preventDefault = false;
+			}
+
+			if ( preventDefault ) {
+				event.preventDefault();
+			}
+		}
+	},
+
+	_selectFocusedItem: function( event ) {
+		var item = this.menuItems.eq( this.focusIndex );
+		if ( !item.hasClass( "ui-state-disabled" ) ) {
+			this._select( item.data( "ui-selectmenu-item" ), event );
+		}
+	},
+
+	_select: function( item, event ) {
+		var oldIndex = this.element[ 0 ].selectedIndex;
+
+		// Change native select element
+		this.element[ 0 ].selectedIndex = item.index;
+		this._setText( this.buttonText, item.label );
+		this._setAria( item );
+		this._trigger( "select", event, { item: item } );
+
+		if ( item.index !== oldIndex ) {
+			this._trigger( "change", event, { item: item } );
+		}
+
+		this.close( event );
+	},
+
+	_setAria: function( item ) {
+		var id = this.menuItems.eq( item.index ).attr( "id" );
+
+		this.button.attr({
+			"aria-labelledby": id,
+			"aria-activedescendant": id
+		});
+		this.menu.attr( "aria-activedescendant", id );
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "icons" ) {
+			this.button.find( "span.ui-icon" )
+				.removeClass( this.options.icons.button )
+				.addClass( value.button );
+		}
+
+		this._super( key, value );
+
+		if ( key === "appendTo" ) {
+			this.menuWrap.appendTo( this._appendTo() );
+		}
+
+		if ( key === "disabled" ) {
+			this.menuInstance.option( "disabled", value );
+			this.button
+				.toggleClass( "ui-state-disabled", value )
+				.attr( "aria-disabled", value );
+
+			this.element.prop( "disabled", value );
+			if ( value ) {
+				this.button.attr( "tabindex", -1 );
+				this.close();
+			} else {
+				this.button.attr( "tabindex", 0 );
+			}
+		}
+
+		if ( key === "width" ) {
+			this._resizeButton();
+		}
+	},
+
+	_appendTo: function() {
+		var element = this.options.appendTo;
+
+		if ( element ) {
+			element = element.jquery || element.nodeType ?
+				$( element ) :
+				this.document.find( element ).eq( 0 );
+		}
+
+		if ( !element || !element[ 0 ] ) {
+			element = this.element.closest( ".ui-front" );
+		}
+
+		if ( !element.length ) {
+			element = this.document[ 0 ].body;
+		}
+
+		return element;
+	},
+
+	_toggleAttr: function() {
+		this.button
+			.toggleClass( "ui-corner-top", this.isOpen )
+			.toggleClass( "ui-corner-all", !this.isOpen )
+			.attr( "aria-expanded", this.isOpen );
+		this.menuWrap.toggleClass( "ui-selectmenu-open", this.isOpen );
+		this.menu.attr( "aria-hidden", !this.isOpen );
+	},
+
+	_resizeButton: function() {
+		var width = this.options.width;
+
+		if ( !width ) {
+			width = this.element.show().outerWidth();
+			this.element.hide();
+		}
+
+		this.button.outerWidth( width );
+	},
+
+	_resizeMenu: function() {
+		this.menu.outerWidth( Math.max(
+			this.button.outerWidth(),
+
+			// support: IE10
+			// IE10 wraps long text (possibly a rounding bug)
+			// so we add 1px to avoid the wrapping
+			this.menu.width( "" ).outerWidth() + 1
+		) );
+	},
+
+	_getCreateOptions: function() {
+		return { disabled: this.element.prop( "disabled" ) };
+	},
+
+	_parseOptions: function( options ) {
+		var data = [];
+		options.each(function( index, item ) {
+			var option = $( item ),
+				optgroup = option.parent( "optgroup" );
+			data.push({
+				element: option,
+				index: index,
+				value: option.val(),
+				label: option.text(),
+				optgroup: optgroup.attr( "label" ) || "",
+				disabled: optgroup.prop( "disabled" ) || option.prop( "disabled" )
+			});
+		});
+		this.items = data;
+	},
+
+	_destroy: function() {
+		this.menuWrap.remove();
+		this.button.remove();
+		this.element.show();
+		this.element.removeUniqueId();
+		this.label.attr( "for", this.ids.element );
+	}
+});
+
+
+/*!
+ * jQuery UI Slider 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/slider/
+ */
+
+
+var slider = $.widget( "ui.slider", $.ui.mouse, {
+	version: "1.11.4",
+	widgetEventPrefix: "slide",
+
+	options: {
+		animate: false,
+		distance: 0,
+		max: 100,
+		min: 0,
+		orientation: "horizontal",
+		range: false,
+		step: 1,
+		value: 0,
+		values: null,
+
+		// callbacks
+		change: null,
+		slide: null,
+		start: null,
+		stop: null
+	},
+
+	// number of pages in a slider
+	// (how many times can you page up/down to go through the whole range)
+	numPages: 5,
+
+	_create: function() {
+		this._keySliding = false;
+		this._mouseSliding = false;
+		this._animateOff = true;
+		this._handleIndex = null;
+		this._detectOrientation();
+		this._mouseInit();
+		this._calculateNewMax();
+
+		this.element
+			.addClass( "ui-slider" +
+				" ui-slider-" + this.orientation +
+				" ui-widget" +
+				" ui-widget-content" +
+				" ui-corner-all");
+
+		this._refresh();
+		this._setOption( "disabled", this.options.disabled );
+
+		this._animateOff = false;
+	},
+
+	_refresh: function() {
+		this._createRange();
+		this._createHandles();
+		this._setupEvents();
+		this._refreshValue();
+	},
+
+	_createHandles: function() {
+		var i, handleCount,
+			options = this.options,
+			existingHandles = this.element.find( ".ui-slider-handle" ).addClass( "ui-state-default ui-corner-all" ),
+			handle = "<span class='ui-slider-handle ui-state-default ui-corner-all' tabindex='0'></span>",
+			handles = [];
+
+		handleCount = ( options.values && options.values.length ) || 1;
+
+		if ( existingHandles.length > handleCount ) {
+			existingHandles.slice( handleCount ).remove();
+			existingHandles = existingHandles.slice( 0, handleCount );
+		}
+
+		for ( i = existingHandles.length; i < handleCount; i++ ) {
+			handles.push( handle );
+		}
+
+		this.handles = existingHandles.add( $( handles.join( "" ) ).appendTo( this.element ) );
+
+		this.handle = this.handles.eq( 0 );
+
+		this.handles.each(function( i ) {
+			$( this ).data( "ui-slider-handle-index", i );
+		});
+	},
+
+	_createRange: function() {
+		var options = this.options,
+			classes = "";
+
+		if ( options.range ) {
+			if ( options.range === true ) {
+				if ( !options.values ) {
+					options.values = [ this._valueMin(), this._valueMin() ];
+				} else if ( options.values.length && options.values.length !== 2 ) {
+					options.values = [ options.values[0], options.values[0] ];
+				} else if ( $.isArray( options.values ) ) {
+					options.values = options.values.slice(0);
+				}
+			}
+
+			if ( !this.range || !this.range.length ) {
+				this.range = $( "<div></div>" )
+					.appendTo( this.element );
+
+				classes = "ui-slider-range" +
+				// note: this isn't the most fittingly semantic framework class for this element,
+				// but worked best visually with a variety of themes
+				" ui-widget-header ui-corner-all";
+			} else {
+				this.range.removeClass( "ui-slider-range-min ui-slider-range-max" )
+					// Handle range switching from true to min/max
+					.css({
+						"left": "",
+						"bottom": ""
+					});
+			}
+
+			this.range.addClass( classes +
+				( ( options.range === "min" || options.range === "max" ) ? " ui-slider-range-" + options.range : "" ) );
+		} else {
+			if ( this.range ) {
+				this.range.remove();
+			}
+			this.range = null;
+		}
+	},
+
+	_setupEvents: function() {
+		this._off( this.handles );
+		this._on( this.handles, this._handleEvents );
+		this._hoverable( this.handles );
+		this._focusable( this.handles );
+	},
+
+	_destroy: function() {
+		this.handles.remove();
+		if ( this.range ) {
+			this.range.remove();
+		}
+
+		this.element
+			.removeClass( "ui-slider" +
+				" ui-slider-horizontal" +
+				" ui-slider-vertical" +
+				" ui-widget" +
+				" ui-widget-content" +
+				" ui-corner-all" );
+
+		this._mouseDestroy();
+	},
+
+	_mouseCapture: function( event ) {
+		var position, normValue, distance, closestHandle, index, allowed, offset, mouseOverHandle,
+			that = this,
+			o = this.options;
+
+		if ( o.disabled ) {
+			return false;
+		}
+
+		this.elementSize = {
+			width: this.element.outerWidth(),
+			height: this.element.outerHeight()
+		};
+		this.elementOffset = this.element.offset();
+
+		position = { x: event.pageX, y: event.pageY };
+		normValue = this._normValueFromMouse( position );
+		distance = this._valueMax() - this._valueMin() + 1;
+		this.handles.each(function( i ) {
+			var thisDistance = Math.abs( normValue - that.values(i) );
+			if (( distance > thisDistance ) ||
+				( distance === thisDistance &&
+					(i === that._lastChangedValue || that.values(i) === o.min ))) {
+				distance = thisDistance;
+				closestHandle = $( this );
+				index = i;
+			}
+		});
+
+		allowed = this._start( event, index );
+		if ( allowed === false ) {
+			return false;
+		}
+		this._mouseSliding = true;
+
+		this._handleIndex = index;
+
+		closestHandle
+			.addClass( "ui-state-active" )
+			.focus();
+
+		offset = closestHandle.offset();
+		mouseOverHandle = !$( event.target ).parents().addBack().is( ".ui-slider-handle" );
+		this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : {
+			left: event.pageX - offset.left - ( closestHandle.width() / 2 ),
+			top: event.pageY - offset.top -
+				( closestHandle.height() / 2 ) -
+				( parseInt( closestHandle.css("borderTopWidth"), 10 ) || 0 ) -
+				( parseInt( closestHandle.css("borderBottomWidth"), 10 ) || 0) +
+				( parseInt( closestHandle.css("marginTop"), 10 ) || 0)
+		};
+
+		if ( !this.handles.hasClass( "ui-state-hover" ) ) {
+			this._slide( event, index, normValue );
+		}
+		this._animateOff = true;
+		return true;
+	},
+
+	_mouseStart: function() {
+		return true;
+	},
+
+	_mouseDrag: function( event ) {
+		var position = { x: event.pageX, y: event.pageY },
+			normValue = this._normValueFromMouse( position );
+
+		this._slide( event, this._handleIndex, normValue );
+
+		return false;
+	},
+
+	_mouseStop: function( event ) {
+		this.handles.removeClass( "ui-state-active" );
+		this._mouseSliding = false;
+
+		this._stop( event, this._handleIndex );
+		this._change( event, this._handleIndex );
+
+		this._handleIndex = null;
+		this._clickOffset = null;
+		this._animateOff = false;
+
+		return false;
+	},
+
+	_detectOrientation: function() {
+		this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal";
+	},
+
+	_normValueFromMouse: function( position ) {
+		var pixelTotal,
+			pixelMouse,
+			percentMouse,
+			valueTotal,
+			valueMouse;
+
+		if ( this.orientation === "horizontal" ) {
+			pixelTotal = this.elementSize.width;
+			pixelMouse = position.x - this.elementOffset.left - ( this._clickOffset ? this._clickOffset.left : 0 );
+		} else {
+			pixelTotal = this.elementSize.height;
+			pixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 );
+		}
+
+		percentMouse = ( pixelMouse / pixelTotal );
+		if ( percentMouse > 1 ) {
+			percentMouse = 1;
+		}
+		if ( percentMouse < 0 ) {
+			percentMouse = 0;
+		}
+		if ( this.orientation === "vertical" ) {
+			percentMouse = 1 - percentMouse;
+		}
+
+		valueTotal = this._valueMax() - this._valueMin();
+		valueMouse = this._valueMin() + percentMouse * valueTotal;
+
+		return this._trimAlignValue( valueMouse );
+	},
+
+	_start: function( event, index ) {
+		var uiHash = {
+			handle: this.handles[ index ],
+			value: this.value()
+		};
+		if ( this.options.values && this.options.values.length ) {
+			uiHash.value = this.values( index );
+			uiHash.values = this.values();
+		}
+		return this._trigger( "start", event, uiHash );
+	},
+
+	_slide: function( event, index, newVal ) {
+		var otherVal,
+			newValues,
+			allowed;
+
+		if ( this.options.values && this.options.values.length ) {
+			otherVal = this.values( index ? 0 : 1 );
+
+			if ( ( this.options.values.length === 2 && this.options.range === true ) &&
+					( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) )
+				) {
+				newVal = otherVal;
+			}
+
+			if ( newVal !== this.values( index ) ) {
+				newValues = this.values();
+				newValues[ index ] = newVal;
+				// A slide can be canceled by returning false from the slide callback
+				allowed = this._trigger( "slide", event, {
+					handle: this.handles[ index ],
+					value: newVal,
+					values: newValues
+				} );
+				otherVal = this.values( index ? 0 : 1 );
+				if ( allowed !== false ) {
+					this.values( index, newVal );
+				}
+			}
+		} else {
+			if ( newVal !== this.value() ) {
+				// A slide can be canceled by returning false from the slide callback
+				allowed = this._trigger( "slide", event, {
+					handle: this.handles[ index ],
+					value: newVal
+				} );
+				if ( allowed !== false ) {
+					this.value( newVal );
+				}
+			}
+		}
+	},
+
+	_stop: function( event, index ) {
+		var uiHash = {
+			handle: this.handles[ index ],
+			value: this.value()
+		};
+		if ( this.options.values && this.options.values.length ) {
+			uiHash.value = this.values( index );
+			uiHash.values = this.values();
+		}
+
+		this._trigger( "stop", event, uiHash );
+	},
+
+	_change: function( event, index ) {
+		if ( !this._keySliding && !this._mouseSliding ) {
+			var uiHash = {
+				handle: this.handles[ index ],
+				value: this.value()
+			};
+			if ( this.options.values && this.options.values.length ) {
+				uiHash.value = this.values( index );
+				uiHash.values = this.values();
+			}
+
+			//store the last changed value index for reference when handles overlap
+			this._lastChangedValue = index;
+
+			this._trigger( "change", event, uiHash );
+		}
+	},
+
+	value: function( newValue ) {
+		if ( arguments.length ) {
+			this.options.value = this._trimAlignValue( newValue );
+			this._refreshValue();
+			this._change( null, 0 );
+			return;
+		}
+
+		return this._value();
+	},
+
+	values: function( index, newValue ) {
+		var vals,
+			newValues,
+			i;
+
+		if ( arguments.length > 1 ) {
+			this.options.values[ index ] = this._trimAlignValue( newValue );
+			this._refreshValue();
+			this._change( null, index );
+			return;
+		}
+
+		if ( arguments.length ) {
+			if ( $.isArray( arguments[ 0 ] ) ) {
+				vals = this.options.values;
+				newValues = arguments[ 0 ];
+				for ( i = 0; i < vals.length; i += 1 ) {
+					vals[ i ] = this._trimAlignValue( newValues[ i ] );
+					this._change( null, i );
+				}
+				this._refreshValue();
+			} else {
+				if ( this.options.values && this.options.values.length ) {
+					return this._values( index );
+				} else {
+					return this.value();
+				}
+			}
+		} else {
+			return this._values();
+		}
+	},
+
+	_setOption: function( key, value ) {
+		var i,
+			valsLength = 0;
+
+		if ( key === "range" && this.options.range === true ) {
+			if ( value === "min" ) {
+				this.options.value = this._values( 0 );
+				this.options.values = null;
+			} else if ( value === "max" ) {
+				this.options.value = this._values( this.options.values.length - 1 );
+				this.options.values = null;
+			}
+		}
+
+		if ( $.isArray( this.options.values ) ) {
+			valsLength = this.options.values.length;
+		}
+
+		if ( key === "disabled" ) {
+			this.element.toggleClass( "ui-state-disabled", !!value );
+		}
+
+		this._super( key, value );
+
+		switch ( key ) {
+			case "orientation":
+				this._detectOrientation();
+				this.element
+					.removeClass( "ui-slider-horizontal ui-slider-vertical" )
+					.addClass( "ui-slider-" + this.orientation );
+				this._refreshValue();
+
+				// Reset positioning from previous orientation
+				this.handles.css( value === "horizontal" ? "bottom" : "left", "" );
+				break;
+			case "value":
+				this._animateOff = true;
+				this._refreshValue();
+				this._change( null, 0 );
+				this._animateOff = false;
+				break;
+			case "values":
+				this._animateOff = true;
+				this._refreshValue();
+				for ( i = 0; i < valsLength; i += 1 ) {
+					this._change( null, i );
+				}
+				this._animateOff = false;
+				break;
+			case "step":
+			case "min":
+			case "max":
+				this._animateOff = true;
+				this._calculateNewMax();
+				this._refreshValue();
+				this._animateOff = false;
+				break;
+			case "range":
+				this._animateOff = true;
+				this._refresh();
+				this._animateOff = false;
+				break;
+		}
+	},
+
+	//internal value getter
+	// _value() returns value trimmed by min and max, aligned by step
+	_value: function() {
+		var val = this.options.value;
+		val = this._trimAlignValue( val );
+
+		return val;
+	},
+
+	//internal values getter
+	// _values() returns array of values trimmed by min and max, aligned by step
+	// _values( index ) returns single value trimmed by min and max, aligned by step
+	_values: function( index ) {
+		var val,
+			vals,
+			i;
+
+		if ( arguments.length ) {
+			val = this.options.values[ index ];
+			val = this._trimAlignValue( val );
+
+			return val;
+		} else if ( this.options.values && this.options.values.length ) {
+			// .slice() creates a copy of the array
+			// this copy gets trimmed by min and max and then returned
+			vals = this.options.values.slice();
+			for ( i = 0; i < vals.length; i += 1) {
+				vals[ i ] = this._trimAlignValue( vals[ i ] );
+			}
+
+			return vals;
+		} else {
+			return [];
+		}
+	},
+
+	// returns the step-aligned value that val is closest to, between (inclusive) min and max
+	_trimAlignValue: function( val ) {
+		if ( val <= this._valueMin() ) {
+			return this._valueMin();
+		}
+		if ( val >= this._valueMax() ) {
+			return this._valueMax();
+		}
+		var step = ( this.options.step > 0 ) ? this.options.step : 1,
+			valModStep = (val - this._valueMin()) % step,
+			alignValue = val - valModStep;
+
+		if ( Math.abs(valModStep) * 2 >= step ) {
+			alignValue += ( valModStep > 0 ) ? step : ( -step );
+		}
+
+		// Since JavaScript has problems with large floats, round
+		// the final value to 5 digits after the decimal point (see #4124)
+		return parseFloat( alignValue.toFixed(5) );
+	},
+
+	_calculateNewMax: function() {
+		var max = this.options.max,
+			min = this._valueMin(),
+			step = this.options.step,
+			aboveMin = Math.floor( ( +( max - min ).toFixed( this._precision() ) ) / step ) * step;
+		max = aboveMin + min;
+		this.max = parseFloat( max.toFixed( this._precision() ) );
+	},
+
+	_precision: function() {
+		var precision = this._precisionOf( this.options.step );
+		if ( this.options.min !== null ) {
+			precision = Math.max( precision, this._precisionOf( this.options.min ) );
+		}
+		return precision;
+	},
+
+	_precisionOf: function( num ) {
+		var str = num.toString(),
+			decimal = str.indexOf( "." );
+		return decimal === -1 ? 0 : str.length - decimal - 1;
+	},
+
+	_valueMin: function() {
+		return this.options.min;
+	},
+
+	_valueMax: function() {
+		return this.max;
+	},
+
+	_refreshValue: function() {
+		var lastValPercent, valPercent, value, valueMin, valueMax,
+			oRange = this.options.range,
+			o = this.options,
+			that = this,
+			animate = ( !this._animateOff ) ? o.animate : false,
+			_set = {};
+
+		if ( this.options.values && this.options.values.length ) {
+			this.handles.each(function( i ) {
+				valPercent = ( that.values(i) - that._valueMin() ) / ( that._valueMax() - that._valueMin() ) * 100;
+				_set[ that.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
+				$( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
+				if ( that.options.range === true ) {
+					if ( that.orientation === "horizontal" ) {
+						if ( i === 0 ) {
+							that.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { left: valPercent + "%" }, o.animate );
+						}
+						if ( i === 1 ) {
+							that.range[ animate ? "animate" : "css" ]( { width: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } );
+						}
+					} else {
+						if ( i === 0 ) {
+							that.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { bottom: ( valPercent ) + "%" }, o.animate );
+						}
+						if ( i === 1 ) {
+							that.range[ animate ? "animate" : "css" ]( { height: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } );
+						}
+					}
+				}
+				lastValPercent = valPercent;
+			});
+		} else {
+			value = this.value();
+			valueMin = this._valueMin();
+			valueMax = this._valueMax();
+			valPercent = ( valueMax !== valueMin ) ?
+					( value - valueMin ) / ( valueMax - valueMin ) * 100 :
+					0;
+			_set[ this.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
+			this.handle.stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
+
+			if ( oRange === "min" && this.orientation === "horizontal" ) {
+				this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { width: valPercent + "%" }, o.animate );
+			}
+			if ( oRange === "max" && this.orientation === "horizontal" ) {
+				this.range[ animate ? "animate" : "css" ]( { width: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } );
+			}
+			if ( oRange === "min" && this.orientation === "vertical" ) {
+				this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { height: valPercent + "%" }, o.animate );
+			}
+			if ( oRange === "max" && this.orientation === "vertical" ) {
+				this.range[ animate ? "animate" : "css" ]( { height: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } );
+			}
+		}
+	},
+
+	_handleEvents: {
+		keydown: function( event ) {
+			var allowed, curVal, newVal, step,
+				index = $( event.target ).data( "ui-slider-handle-index" );
+
+			switch ( event.keyCode ) {
+				case $.ui.keyCode.HOME:
+				case $.ui.keyCode.END:
+				case $.ui.keyCode.PAGE_UP:
+				case $.ui.keyCode.PAGE_DOWN:
+				case $.ui.keyCode.UP:
+				case $.ui.keyCode.RIGHT:
+				case $.ui.keyCode.DOWN:
+				case $.ui.keyCode.LEFT:
+					event.preventDefault();
+					if ( !this._keySliding ) {
+						this._keySliding = true;
+						$( event.target ).addClass( "ui-state-active" );
+						allowed = this._start( event, index );
+						if ( allowed === false ) {
+							return;
+						}
+					}
+					break;
+			}
+
+			step = this.options.step;
+			if ( this.options.values && this.options.values.length ) {
+				curVal = newVal = this.values( index );
+			} else {
+				curVal = newVal = this.value();
+			}
+
+			switch ( event.keyCode ) {
+				case $.ui.keyCode.HOME:
+					newVal = this._valueMin();
+					break;
+				case $.ui.keyCode.END:
+					newVal = this._valueMax();
+					break;
+				case $.ui.keyCode.PAGE_UP:
+					newVal = this._trimAlignValue(
+						curVal + ( ( this._valueMax() - this._valueMin() ) / this.numPages )
+					);
+					break;
+				case $.ui.keyCode.PAGE_DOWN:
+					newVal = this._trimAlignValue(
+						curVal - ( (this._valueMax() - this._valueMin()) / this.numPages ) );
+					break;
+				case $.ui.keyCode.UP:
+				case $.ui.keyCode.RIGHT:
+					if ( curVal === this._valueMax() ) {
+						return;
+					}
+					newVal = this._trimAlignValue( curVal + step );
+					break;
+				case $.ui.keyCode.DOWN:
+				case $.ui.keyCode.LEFT:
+					if ( curVal === this._valueMin() ) {
+						return;
+					}
+					newVal = this._trimAlignValue( curVal - step );
+					break;
+			}
+
+			this._slide( event, index, newVal );
+		},
+		keyup: function( event ) {
+			var index = $( event.target ).data( "ui-slider-handle-index" );
+
+			if ( this._keySliding ) {
+				this._keySliding = false;
+				this._stop( event, index );
+				this._change( event, index );
+				$( event.target ).removeClass( "ui-state-active" );
+			}
+		}
+	}
+});
+
+
+/*!
+ * jQuery UI Sortable 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/sortable/
+ */
+
+
+var sortable = $.widget("ui.sortable", $.ui.mouse, {
+	version: "1.11.4",
+	widgetEventPrefix: "sort",
+	ready: false,
+	options: {
+		appendTo: "parent",
+		axis: false,
+		connectWith: false,
+		containment: false,
+		cursor: "auto",
+		cursorAt: false,
+		dropOnEmpty: true,
+		forcePlaceholderSize: false,
+		forceHelperSize: false,
+		grid: false,
+		handle: false,
+		helper: "original",
+		items: "> *",
+		opacity: false,
+		placeholder: false,
+		revert: false,
+		scroll: true,
+		scrollSensitivity: 20,
+		scrollSpeed: 20,
+		scope: "default",
+		tolerance: "intersect",
+		zIndex: 1000,
+
+		// callbacks
+		activate: null,
+		beforeStop: null,
+		change: null,
+		deactivate: null,
+		out: null,
+		over: null,
+		receive: null,
+		remove: null,
+		sort: null,
+		start: null,
+		stop: null,
+		update: null
+	},
+
+	_isOverAxis: function( x, reference, size ) {
+		return ( x >= reference ) && ( x < ( reference + size ) );
+	},
+
+	_isFloating: function( item ) {
+		return (/left|right/).test(item.css("float")) || (/inline|table-cell/).test(item.css("display"));
+	},
+
+	_create: function() {
+		this.containerCache = {};
+		this.element.addClass("ui-sortable");
+
+		//Get the items
+		this.refresh();
+
+		//Let's determine the parent's offset
+		this.offset = this.element.offset();
+
+		//Initialize mouse events for interaction
+		this._mouseInit();
+
+		this._setHandleClassName();
+
+		//We're ready to go
+		this.ready = true;
+
+	},
+
+	_setOption: function( key, value ) {
+		this._super( key, value );
+
+		if ( key === "handle" ) {
+			this._setHandleClassName();
+		}
+	},
+
+	_setHandleClassName: function() {
+		this.element.find( ".ui-sortable-handle" ).removeClass( "ui-sortable-handle" );
+		$.each( this.items, function() {
+			( this.instance.options.handle ?
+				this.item.find( this.instance.options.handle ) : this.item )
+				.addClass( "ui-sortable-handle" );
+		});
+	},
+
+	_destroy: function() {
+		this.element
+			.removeClass( "ui-sortable ui-sortable-disabled" )
+			.find( ".ui-sortable-handle" )
+				.removeClass( "ui-sortable-handle" );
+		this._mouseDestroy();
+
+		for ( var i = this.items.length - 1; i >= 0; i-- ) {
+			this.items[i].item.removeData(this.widgetName + "-item");
+		}
+
+		return this;
+	},
+
+	_mouseCapture: function(event, overrideHandle) {
+		var currentItem = null,
+			validHandle = false,
+			that = this;
+
+		if (this.reverting) {
+			return false;
+		}
+
+		if(this.options.disabled || this.options.type === "static") {
+			return false;
+		}
+
+		//We have to refresh the items data once first
+		this._refreshItems(event);
+
+		//Find out if the clicked node (or one of its parents) is a actual item in this.items
+		$(event.target).parents().each(function() {
+			if($.data(this, that.widgetName + "-item") === that) {
+				currentItem = $(this);
+				return false;
+			}
+		});
+		if($.data(event.target, that.widgetName + "-item") === that) {
+			currentItem = $(event.target);
+		}
+
+		if(!currentItem) {
+			return false;
+		}
+		if(this.options.handle && !overrideHandle) {
+			$(this.options.handle, currentItem).find("*").addBack().each(function() {
+				if(this === event.target) {
+					validHandle = true;
+				}
+			});
+			if(!validHandle) {
+				return false;
+			}
+		}
+
+		this.currentItem = currentItem;
+		this._removeCurrentsFromItems();
+		return true;
+
+	},
+
+	_mouseStart: function(event, overrideHandle, noActivation) {
+
+		var i, body,
+			o = this.options;
+
+		this.currentContainer = this;
+
+		//We only need to call refreshPositions, because the refreshItems call has been moved to mouseCapture
+		this.refreshPositions();
+
+		//Create and append the visible helper
+		this.helper = this._createHelper(event);
+
+		//Cache the helper size
+		this._cacheHelperProportions();
+
+		/*
+		 * - Position generation -
+		 * This block generates everything position related - it's the core of draggables.
+		 */
+
+		//Cache the margins of the original element
+		this._cacheMargins();
+
+		//Get the next scrolling parent
+		this.scrollParent = this.helper.scrollParent();
+
+		//The element's absolute position on the page minus margins
+		this.offset = this.currentItem.offset();
+		this.offset = {
+			top: this.offset.top - this.margins.top,
+			left: this.offset.left - this.margins.left
+		};
+
+		$.extend(this.offset, {
+			click: { //Where the click happened, relative to the element
+				left: event.pageX - this.offset.left,
+				top: event.pageY - this.offset.top
+			},
+			parent: this._getParentOffset(),
+			relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper
+		});
+
+		// Only after we got the offset, we can change the helper's position to absolute
+		// TODO: Still need to figure out a way to make relative sorting possible
+		this.helper.css("position", "absolute");
+		this.cssPosition = this.helper.css("position");
+
+		//Generate the original position
+		this.originalPosition = this._generatePosition(event);
+		this.originalPageX = event.pageX;
+		this.originalPageY = event.pageY;
+
+		//Adjust the mouse offset relative to the helper if "cursorAt" is supplied
+		(o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));
+
+		//Cache the former DOM position
+		this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] };
+
+		//If the helper is not the original, hide the original so it's not playing any role during the drag, won't cause anything bad this way
+		if(this.helper[0] !== this.currentItem[0]) {
+			this.currentItem.hide();
+		}
+
+		//Create the placeholder
+		this._createPlaceholder();
+
+		//Set a containment if given in the options
+		if(o.containment) {
+			this._setContainment();
+		}
+
+		if( o.cursor && o.cursor !== "auto" ) { // cursor option
+			body = this.document.find( "body" );
+
+			// support: IE
+			this.storedCursor = body.css( "cursor" );
+			body.css( "cursor", o.cursor );
+
+			this.storedStylesheet = $( "<style>*{ cursor: "+o.cursor+" !important; }</style>" ).appendTo( body );
+		}
+
+		if(o.opacity) { // opacity option
+			if (this.helper.css("opacity")) {
+				this._storedOpacity = this.helper.css("opacity");
+			}
+			this.helper.css("opacity", o.opacity);
+		}
+
+		if(o.zIndex) { // zIndex option
+			if (this.helper.css("zIndex")) {
+				this._storedZIndex = this.helper.css("zIndex");
+			}
+			this.helper.css("zIndex", o.zIndex);
+		}
+
+		//Prepare scrolling
+		if(this.scrollParent[0] !== this.document[0] && this.scrollParent[0].tagName !== "HTML") {
+			this.overflowOffset = this.scrollParent.offset();
+		}
+
+		//Call callbacks
+		this._trigger("start", event, this._uiHash());
+
+		//Recache the helper size
+		if(!this._preserveHelperProportions) {
+			this._cacheHelperProportions();
+		}
+
+
+		//Post "activate" events to possible containers
+		if( !noActivation ) {
+			for ( i = this.containers.length - 1; i >= 0; i-- ) {
+				this.containers[ i ]._trigger( "activate", event, this._uiHash( this ) );
+			}
+		}
+
+		//Prepare possible droppables
+		if($.ui.ddmanager) {
+			$.ui.ddmanager.current = this;
+		}
+
+		if ($.ui.ddmanager && !o.dropBehaviour) {
+			$.ui.ddmanager.prepareOffsets(this, event);
+		}
+
+		this.dragging = true;
+
+		this.helper.addClass("ui-sortable-helper");
+		this._mouseDrag(event); //Execute the drag once - this causes the helper not to be visible before getting its correct position
+		return true;
+
+	},
+
+	_mouseDrag: function(event) {
+		var i, item, itemElement, intersection,
+			o = this.options,
+			scrolled = false;
+
+		//Compute the helpers position
+		this.position = this._generatePosition(event);
+		this.positionAbs = this._convertPositionTo("absolute");
+
+		if (!this.lastPositionAbs) {
+			this.lastPositionAbs = this.positionAbs;
+		}
+
+		//Do scrolling
+		if(this.options.scroll) {
+			if(this.scrollParent[0] !== this.document[0] && this.scrollParent[0].tagName !== "HTML") {
+
+				if((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) {
+					this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed;
+				} else if(event.pageY - this.overflowOffset.top < o.scrollSensitivity) {
+					this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed;
+				}
+
+				if((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) {
+					this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft + o.scrollSpeed;
+				} else if(event.pageX - this.overflowOffset.left < o.scrollSensitivity) {
+					this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed;
+				}
+
+			} else {
+
+				if(event.pageY - this.document.scrollTop() < o.scrollSensitivity) {
+					scrolled = this.document.scrollTop(this.document.scrollTop() - o.scrollSpeed);
+				} else if(this.window.height() - (event.pageY - this.document.scrollTop()) < o.scrollSensitivity) {
+					scrolled = this.document.scrollTop(this.document.scrollTop() + o.scrollSpeed);
+				}
+
+				if(event.pageX - this.document.scrollLeft() < o.scrollSensitivity) {
+					scrolled = this.document.scrollLeft(this.document.scrollLeft() - o.scrollSpeed);
+				} else if(this.window.width() - (event.pageX - this.document.scrollLeft()) < o.scrollSensitivity) {
+					scrolled = this.document.scrollLeft(this.document.scrollLeft() + o.scrollSpeed);
+				}
+
+			}
+
+			if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) {
+				$.ui.ddmanager.prepareOffsets(this, event);
+			}
+		}
+
+		//Regenerate the absolute position used for position checks
+		this.positionAbs = this._convertPositionTo("absolute");
+
+		//Set the helper position
+		if(!this.options.axis || this.options.axis !== "y") {
+			this.helper[0].style.left = this.position.left+"px";
+		}
+		if(!this.options.axis || this.options.axis !== "x") {
+			this.helper[0].style.top = this.position.top+"px";
+		}
+
+		//Rearrange
+		for (i = this.items.length - 1; i >= 0; i--) {
+
+			//Cache variables and intersection, continue if no intersection
+			item = this.items[i];
+			itemElement = item.item[0];
+			intersection = this._intersectsWithPointer(item);
+			if (!intersection) {
+				continue;
+			}
+
+			// Only put the placeholder inside the current Container, skip all
+			// items from other containers. This works because when moving
+			// an item from one container to another the
+			// currentContainer is switched before the placeholder is moved.
+			//
+			// Without this, moving items in "sub-sortables" can cause
+			// the placeholder to jitter between the outer and inner container.
+			if (item.instance !== this.currentContainer) {
+				continue;
+			}
+
+			// cannot intersect with itself
+			// no useless actions that have been done before
+			// no action if the item moved is the parent of the item checked
+			if (itemElement !== this.currentItem[0] &&
+				this.placeholder[intersection === 1 ? "next" : "prev"]()[0] !== itemElement &&
+				!$.contains(this.placeholder[0], itemElement) &&
+				(this.options.type === "semi-dynamic" ? !$.contains(this.element[0], itemElement) : true)
+			) {
+
+				this.direction = intersection === 1 ? "down" : "up";
+
+				if (this.options.tolerance === "pointer" || this._intersectsWithSides(item)) {
+					this._rearrange(event, item);
+				} else {
+					break;
+				}
+
+				this._trigger("change", event, this._uiHash());
+				break;
+			}
+		}
+
+		//Post events to containers
+		this._contactContainers(event);
+
+		//Interconnect with droppables
+		if($.ui.ddmanager) {
+			$.ui.ddmanager.drag(this, event);
+		}
+
+		//Call callbacks
+		this._trigger("sort", event, this._uiHash());
+
+		this.lastPositionAbs = this.positionAbs;
+		return false;
+
+	},
+
+	_mouseStop: function(event, noPropagation) {
+
+		if(!event) {
+			return;
+		}
+
+		//If we are using droppables, inform the manager about the drop
+		if ($.ui.ddmanager && !this.options.dropBehaviour) {
+			$.ui.ddmanager.drop(this, event);
+		}
+
+		if(this.options.revert) {
+			var that = this,
+				cur = this.placeholder.offset(),
+				axis = this.options.axis,
+				animation = {};
+
+			if ( !axis || axis === "x" ) {
+				animation.left = cur.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollLeft);
+			}
+			if ( !axis || axis === "y" ) {
+				animation.top = cur.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollTop);
+			}
+			this.reverting = true;
+			$(this.helper).animate( animation, parseInt(this.options.revert, 10) || 500, function() {
+				that._clear(event);
+			});
+		} else {
+			this._clear(event, noPropagation);
+		}
+
+		return false;
+
+	},
+
+	cancel: function() {
+
+		if(this.dragging) {
+
+			this._mouseUp({ target: null });
+
+			if(this.options.helper === "original") {
+				this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");
+			} else {
+				this.currentItem.show();
+			}
+
+			//Post deactivating events to containers
+			for (var i = this.containers.length - 1; i >= 0; i--){
+				this.containers[i]._trigger("deactivate", null, this._uiHash(this));
+				if(this.containers[i].containerCache.over) {
+					this.containers[i]._trigger("out", null, this._uiHash(this));
+					this.containers[i].containerCache.over = 0;
+				}
+			}
+
+		}
+
+		if (this.placeholder) {
+			//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node!
+			if(this.placeholder[0].parentNode) {
+				this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
+			}
+			if(this.options.helper !== "original" && this.helper && this.helper[0].parentNode) {
+				this.helper.remove();
+			}
+
+			$.extend(this, {
+				helper: null,
+				dragging: false,
+				reverting: false,
+				_noFinalSort: null
+			});
+
+			if(this.domPosition.prev) {
+				$(this.domPosition.prev).after(this.currentItem);
+			} else {
+				$(this.domPosition.parent).prepend(this.currentItem);
+			}
+		}
+
+		return this;
+
+	},
+
+	serialize: function(o) {
+
+		var items = this._getItemsAsjQuery(o && o.connected),
+			str = [];
+		o = o || {};
+
+		$(items).each(function() {
+			var res = ($(o.item || this).attr(o.attribute || "id") || "").match(o.expression || (/(.+)[\-=_](.+)/));
+			if (res) {
+				str.push((o.key || res[1]+"[]")+"="+(o.key && o.expression ? res[1] : res[2]));
+			}
+		});
+
+		if(!str.length && o.key) {
+			str.push(o.key + "=");
+		}
+
+		return str.join("&");
+
+	},
+
+	toArray: function(o) {
+
+		var items = this._getItemsAsjQuery(o && o.connected),
+			ret = [];
+
+		o = o || {};
+
+		items.each(function() { ret.push($(o.item || this).attr(o.attribute || "id") || ""); });
+		return ret;
+
+	},
+
+	/* Be careful with the following core functions */
+	_intersectsWith: function(item) {
+
+		var x1 = this.positionAbs.left,
+			x2 = x1 + this.helperProportions.width,
+			y1 = this.positionAbs.top,
+			y2 = y1 + this.helperProportions.height,
+			l = item.left,
+			r = l + item.width,
+			t = item.top,
+			b = t + item.height,
+			dyClick = this.offset.click.top,
+			dxClick = this.offset.click.left,
+			isOverElementHeight = ( this.options.axis === "x" ) || ( ( y1 + dyClick ) > t && ( y1 + dyClick ) < b ),
+			isOverElementWidth = ( this.options.axis === "y" ) || ( ( x1 + dxClick ) > l && ( x1 + dxClick ) < r ),
+			isOverElement = isOverElementHeight && isOverElementWidth;
+
+		if ( this.options.tolerance === "pointer" ||
+			this.options.forcePointerForContainers ||
+			(this.options.tolerance !== "pointer" && this.helperProportions[this.floating ? "width" : "height"] > item[this.floating ? "width" : "height"])
+		) {
+			return isOverElement;
+		} else {
+
+			return (l < x1 + (this.helperProportions.width / 2) && // Right Half
+				x2 - (this.helperProportions.width / 2) < r && // Left Half
+				t < y1 + (this.helperProportions.height / 2) && // Bottom Half
+				y2 - (this.helperProportions.height / 2) < b ); // Top Half
+
+		}
+	},
+
+	_intersectsWithPointer: function(item) {
+
+		var isOverElementHeight = (this.options.axis === "x") || this._isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height),
+			isOverElementWidth = (this.options.axis === "y") || this._isOverAxis(this.positionAbs.left + this.offset.click.left, item.left, item.width),
+			isOverElement = isOverElementHeight && isOverElementWidth,
+			verticalDirection = this._getDragVerticalDirection(),
+			horizontalDirection = this._getDragHorizontalDirection();
+
+		if (!isOverElement) {
+			return false;
+		}
+
+		return this.floating ?
+			( ((horizontalDirection && horizontalDirection === "right") || verticalDirection === "down") ? 2 : 1 )
+			: ( verticalDirection && (verticalDirection === "down" ? 2 : 1) );
+
+	},
+
+	_intersectsWithSides: function(item) {
+
+		var isOverBottomHalf = this._isOverAxis(this.positionAbs.top + this.offset.click.top, item.top + (item.height/2), item.height),
+			isOverRightHalf = this._isOverAxis(this.positionAbs.left + this.offset.click.left, item.left + (item.width/2), item.width),
+			verticalDirection = this._getDragVerticalDirection(),
+			horizontalDirection = this._getDragHorizontalDirection();
+
+		if (this.floating && horizontalDirection) {
+			return ((horizontalDirection === "right" && isOverRightHalf) || (horizontalDirection === "left" && !isOverRightHalf));
+		} else {
+			return verticalDirection && ((verticalDirection === "down" && isOverBottomHalf) || (verticalDirection === "up" && !isOverBottomHalf));
+		}
+
+	},
+
+	_getDragVerticalDirection: function() {
+		var delta = this.positionAbs.top - this.lastPositionAbs.top;
+		return delta !== 0 && (delta > 0 ? "down" : "up");
+	},
+
+	_getDragHorizontalDirection: function() {
+		var delta = this.positionAbs.left - this.lastPositionAbs.left;
+		return delta !== 0 && (delta > 0 ? "right" : "left");
+	},
+
+	refresh: function(event) {
+		this._refreshItems(event);
+		this._setHandleClassName();
+		this.refreshPositions();
+		return this;
+	},
+
+	_connectWith: function() {
+		var options = this.options;
+		return options.connectWith.constructor === String ? [options.connectWith] : options.connectWith;
+	},
+
+	_getItemsAsjQuery: function(connected) {
+
+		var i, j, cur, inst,
+			items = [],
+			queries = [],
+			connectWith = this._connectWith();
+
+		if(connectWith && connected) {
+			for (i = connectWith.length - 1; i >= 0; i--){
+				cur = $(connectWith[i], this.document[0]);
+				for ( j = cur.length - 1; j >= 0; j--){
+					inst = $.data(cur[j], this.widgetFullName);
+					if(inst && inst !== this && !inst.options.disabled) {
+						queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element) : $(inst.options.items, inst.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), inst]);
+					}
+				}
+			}
+		}
+
+		queries.push([$.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : $(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), this]);
+
+		function addItems() {
+			items.push( this );
+		}
+		for (i = queries.length - 1; i >= 0; i--){
+			queries[i][0].each( addItems );
+		}
+
+		return $(items);
+
+	},
+
+	_removeCurrentsFromItems: function() {
+
+		var list = this.currentItem.find(":data(" + this.widgetName + "-item)");
+
+		this.items = $.grep(this.items, function (item) {
+			for (var j=0; j < list.length; j++) {
+				if(list[j] === item.item[0]) {
+					return false;
+				}
+			}
+			return true;
+		});
+
+	},
+
+	_refreshItems: function(event) {
+
+		this.items = [];
+		this.containers = [this];
+
+		var i, j, cur, inst, targetData, _queries, item, queriesLength,
+			items = this.items,
+			queries = [[$.isFunction(this.options.items) ? this.options.items.call(this.element[0], event, { item: this.currentItem }) : $(this.options.items, this.element), this]],
+			connectWith = this._connectWith();
+
+		if(connectWith && this.ready) { //Shouldn't be run the first time through due to massive slow-down
+			for (i = connectWith.length - 1; i >= 0; i--){
+				cur = $(connectWith[i], this.document[0]);
+				for (j = cur.length - 1; j >= 0; j--){
+					inst = $.data(cur[j], this.widgetFullName);
+					if(inst && inst !== this && !inst.options.disabled) {
+						queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element[0], event, { item: this.currentItem }) : $(inst.options.items, inst.element), inst]);
+						this.containers.push(inst);
+					}
+				}
+			}
+		}
+
+		for (i = queries.length - 1; i >= 0; i--) {
+			targetData = queries[i][1];
+			_queries = queries[i][0];
+
+			for (j=0, queriesLength = _queries.length; j < queriesLength; j++) {
+				item = $(_queries[j]);
+
+				item.data(this.widgetName + "-item", targetData); // Data for target checking (mouse manager)
+
+				items.push({
+					item: item,
+					instance: targetData,
+					width: 0, height: 0,
+					left: 0, top: 0
+				});
+			}
+		}
+
+	},
+
+	refreshPositions: function(fast) {
+
+		// Determine whether items are being displayed horizontally
+		this.floating = this.items.length ?
+			this.options.axis === "x" || this._isFloating( this.items[ 0 ].item ) :
+			false;
+
+		//This has to be redone because due to the item being moved out/into the offsetParent, the offsetParent's position will change
+		if(this.offsetParent && this.helper) {
+			this.offset.parent = this._getParentOffset();
+		}
+
+		var i, item, t, p;
+
+		for (i = this.items.length - 1; i >= 0; i--){
+			item = this.items[i];
+
+			//We ignore calculating positions of all connected containers when we're not over them
+			if(item.instance !== this.currentContainer && this.currentContainer && item.item[0] !== this.currentItem[0]) {
+				continue;
+			}
+
+			t = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item;
+
+			if (!fast) {
+				item.width = t.outerWidth();
+				item.height = t.outerHeight();
+			}
+
+			p = t.offset();
+			item.left = p.left;
+			item.top = p.top;
+		}
+
+		if(this.options.custom && this.options.custom.refreshContainers) {
+			this.options.custom.refreshContainers.call(this);
+		} else {
+			for (i = this.containers.length - 1; i >= 0; i--){
+				p = this.containers[i].element.offset();
+				this.containers[i].containerCache.left = p.left;
+				this.containers[i].containerCache.top = p.top;
+				this.containers[i].containerCache.width = this.containers[i].element.outerWidth();
+				this.containers[i].containerCache.height = this.containers[i].element.outerHeight();
+			}
+		}
+
+		return this;
+	},
+
+	_createPlaceholder: function(that) {
+		that = that || this;
+		var className,
+			o = that.options;
+
+		if(!o.placeholder || o.placeholder.constructor === String) {
+			className = o.placeholder;
+			o.placeholder = {
+				element: function() {
+
+					var nodeName = that.currentItem[0].nodeName.toLowerCase(),
+						element = $( "<" + nodeName + ">", that.document[0] )
+							.addClass(className || that.currentItem[0].className+" ui-sortable-placeholder")
+							.removeClass("ui-sortable-helper");
+
+					if ( nodeName === "tbody" ) {
+						that._createTrPlaceholder(
+							that.currentItem.find( "tr" ).eq( 0 ),
+							$( "<tr>", that.document[ 0 ] ).appendTo( element )
+						);
+					} else if ( nodeName === "tr" ) {
+						that._createTrPlaceholder( that.currentItem, element );
+					} else if ( nodeName === "img" ) {
+						element.attr( "src", that.currentItem.attr( "src" ) );
+					}
+
+					if ( !className ) {
+						element.css( "visibility", "hidden" );
+					}
+
+					return element;
+				},
+				update: function(container, p) {
+
+					// 1. If a className is set as 'placeholder option, we don't force sizes - the class is responsible for that
+					// 2. The option 'forcePlaceholderSize can be enabled to force it even if a class name is specified
+					if(className && !o.forcePlaceholderSize) {
+						return;
+					}
+
+					//If the element doesn't have a actual height by itself (without styles coming from a stylesheet), it receives the inline height from the dragged item
+					if(!p.height()) { p.height(that.currentItem.innerHeight() - parseInt(that.currentItem.css("paddingTop")||0, 10) - parseInt(that.currentItem.css("paddingBottom")||0, 10)); }
+					if(!p.width()) { p.width(that.currentItem.innerWidth() - parseInt(that.currentItem.css("paddingLeft")||0, 10) - parseInt(that.currentItem.css("paddingRight")||0, 10)); }
+				}
+			};
+		}
+
+		//Create the placeholder
+		that.placeholder = $(o.placeholder.element.call(that.element, that.currentItem));
+
+		//Append it after the actual current item
+		that.currentItem.after(that.placeholder);
+
+		//Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317)
+		o.placeholder.update(that, that.placeholder);
+
+	},
+
+	_createTrPlaceholder: function( sourceTr, targetTr ) {
+		var that = this;
+
+		sourceTr.children().each(function() {
+			$( "<td>&#160;</td>", that.document[ 0 ] )
+				.attr( "colspan", $( this ).attr( "colspan" ) || 1 )
+				.appendTo( targetTr );
+		});
+	},
+
+	_contactContainers: function(event) {
+		var i, j, dist, itemWithLeastDistance, posProperty, sizeProperty, cur, nearBottom, floating, axis,
+			innermostContainer = null,
+			innermostIndex = null;
+
+		// get innermost container that intersects with item
+		for (i = this.containers.length - 1; i >= 0; i--) {
+
+			// never consider a container that's located within the item itself
+			if($.contains(this.currentItem[0], this.containers[i].element[0])) {
+				continue;
+			}
+
+			if(this._intersectsWith(this.containers[i].containerCache)) {
+
+				// if we've already found a container and it's more "inner" than this, then continue
+				if(innermostContainer && $.contains(this.containers[i].element[0], innermostContainer.element[0])) {
+					continue;
+				}
+
+				innermostContainer = this.containers[i];
+				innermostIndex = i;
+
+			} else {
+				// container doesn't intersect. trigger "out" event if necessary
+				if(this.containers[i].containerCache.over) {
+					this.containers[i]._trigger("out", event, this._uiHash(this));
+					this.containers[i].containerCache.over = 0;
+				}
+			}
+
+		}
+
+		// if no intersecting containers found, return
+		if(!innermostContainer) {
+			return;
+		}
+
+		// move the item into the container if it's not there already
+		if(this.containers.length === 1) {
+			if (!this.containers[innermostIndex].containerCache.over) {
+				this.containers[innermostIndex]._trigger("over", event, this._uiHash(this));
+				this.containers[innermostIndex].containerCache.over = 1;
+			}
+		} else {
+
+			//When entering a new container, we will find the item with the least distance and append our item near it
+			dist = 10000;
+			itemWithLeastDistance = null;
+			floating = innermostContainer.floating || this._isFloating(this.currentItem);
+			posProperty = floating ? "left" : "top";
+			sizeProperty = floating ? "width" : "height";
+			axis = floating ? "clientX" : "clientY";
+
+			for (j = this.items.length - 1; j >= 0; j--) {
+				if(!$.contains(this.containers[innermostIndex].element[0], this.items[j].item[0])) {
+					continue;
+				}
+				if(this.items[j].item[0] === this.currentItem[0]) {
+					continue;
+				}
+
+				cur = this.items[j].item.offset()[posProperty];
+				nearBottom = false;
+				if ( event[ axis ] - cur > this.items[ j ][ sizeProperty ] / 2 ) {
+					nearBottom = true;
+				}
+
+				if ( Math.abs( event[ axis ] - cur ) < dist ) {
+					dist = Math.abs( event[ axis ] - cur );
+					itemWithLeastDistance = this.items[ j ];
+					this.direction = nearBottom ? "up": "down";
+				}
+			}
+
+			//Check if dropOnEmpty is enabled
+			if(!itemWithLeastDistance && !this.options.dropOnEmpty) {
+				return;
+			}
+
+			if(this.currentContainer === this.containers[innermostIndex]) {
+				if ( !this.currentContainer.containerCache.over ) {
+					this.containers[ innermostIndex ]._trigger( "over", event, this._uiHash() );
+					this.currentContainer.containerCache.over = 1;
+				}
+				return;
+			}
+
+			itemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true) : this._rearrange(event, null, this.containers[innermostIndex].element, true);
+			this._trigger("change", event, this._uiHash());
+			this.containers[innermostIndex]._trigger("change", event, this._uiHash(this));
+			this.currentContainer = this.containers[innermostIndex];
+
+			//Update the placeholder
+			this.options.placeholder.update(this.currentContainer, this.placeholder);
+
+			this.containers[innermostIndex]._trigger("over", event, this._uiHash(this));
+			this.containers[innermostIndex].containerCache.over = 1;
+		}
+
+
+	},
+
+	_createHelper: function(event) {
+
+		var o = this.options,
+			helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event, this.currentItem])) : (o.helper === "clone" ? this.currentItem.clone() : this.currentItem);
+
+		//Add the helper to the DOM if that didn't happen already
+		if(!helper.parents("body").length) {
+			$(o.appendTo !== "parent" ? o.appendTo : this.currentItem[0].parentNode)[0].appendChild(helper[0]);
+		}
+
+		if(helper[0] === this.currentItem[0]) {
+			this._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css("position"), top: this.currentItem.css("top"), left: this.currentItem.css("left") };
+		}
+
+		if(!helper[0].style.width || o.forceHelperSize) {
+			helper.width(this.currentItem.width());
+		}
+		if(!helper[0].style.height || o.forceHelperSize) {
+			helper.height(this.currentItem.height());
+		}
+
+		return helper;
+
+	},
+
+	_adjustOffsetFromHelper: function(obj) {
+		if (typeof obj === "string") {
+			obj = obj.split(" ");
+		}
+		if ($.isArray(obj)) {
+			obj = {left: +obj[0], top: +obj[1] || 0};
+		}
+		if ("left" in obj) {
+			this.offset.click.left = obj.left + this.margins.left;
+		}
+		if ("right" in obj) {
+			this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;
+		}
+		if ("top" in obj) {
+			this.offset.click.top = obj.top + this.margins.top;
+		}
+		if ("bottom" in obj) {
+			this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
+		}
+	},
+
+	_getParentOffset: function() {
+
+
+		//Get the offsetParent and cache its position
+		this.offsetParent = this.helper.offsetParent();
+		var po = this.offsetParent.offset();
+
+		// This is a special case where we need to modify a offset calculated on start, since the following happened:
+		// 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent
+		// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that
+		//    the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag
+		if(this.cssPosition === "absolute" && this.scrollParent[0] !== this.document[0] && $.contains(this.scrollParent[0], this.offsetParent[0])) {
+			po.left += this.scrollParent.scrollLeft();
+			po.top += this.scrollParent.scrollTop();
+		}
+
+		// This needs to be actually done for all browsers, since pageX/pageY includes this information
+		// with an ugly IE fix
+		if( this.offsetParent[0] === this.document[0].body || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() === "html" && $.ui.ie)) {
+			po = { top: 0, left: 0 };
+		}
+
+		return {
+			top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0),
+			left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0)
+		};
+
+	},
+
+	_getRelativeOffset: function() {
+
+		if(this.cssPosition === "relative") {
+			var p = this.currentItem.position();
+			return {
+				top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(),
+				left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft()
+			};
+		} else {
+			return { top: 0, left: 0 };
+		}
+
+	},
+
+	_cacheMargins: function() {
+		this.margins = {
+			left: (parseInt(this.currentItem.css("marginLeft"),10) || 0),
+			top: (parseInt(this.currentItem.css("marginTop"),10) || 0)
+		};
+	},
+
+	_cacheHelperProportions: function() {
+		this.helperProportions = {
+			width: this.helper.outerWidth(),
+			height: this.helper.outerHeight()
+		};
+	},
+
+	_setContainment: function() {
+
+		var ce, co, over,
+			o = this.options;
+		if(o.containment === "parent") {
+			o.containment = this.helper[0].parentNode;
+		}
+		if(o.containment === "document" || o.containment === "window") {
+			this.containment = [
+				0 - this.offset.relative.left - this.offset.parent.left,
+				0 - this.offset.relative.top - this.offset.parent.top,
+				o.containment === "document" ? this.document.width() : this.window.width() - this.helperProportions.width - this.margins.left,
+				(o.containment === "document" ? this.document.width() : this.window.height() || this.document[0].body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top
+			];
+		}
+
+		if(!(/^(document|window|parent)$/).test(o.containment)) {
+			ce = $(o.containment)[0];
+			co = $(o.containment).offset();
+			over = ($(ce).css("overflow") !== "hidden");
+
+			this.containment = [
+				co.left + (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0) - this.margins.left,
+				co.top + (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0) - this.margins.top,
+				co.left+(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left,
+				co.top+(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top
+			];
+		}
+
+	},
+
+	_convertPositionTo: function(d, pos) {
+
+		if(!pos) {
+			pos = this.position;
+		}
+		var mod = d === "absolute" ? 1 : -1,
+			scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== this.document[0] && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent,
+			scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
+
+		return {
+			top: (
+				pos.top	+																// The absolute mouse position
+				this.offset.relative.top * mod +										// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.parent.top * mod -											// The offsetParent's offset without borders (offset + border)
+				( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod)
+			),
+			left: (
+				pos.left +																// The absolute mouse position
+				this.offset.relative.left * mod +										// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.parent.left * mod	-										// The offsetParent's offset without borders (offset + border)
+				( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod)
+			)
+		};
+
+	},
+
+	_generatePosition: function(event) {
+
+		var top, left,
+			o = this.options,
+			pageX = event.pageX,
+			pageY = event.pageY,
+			scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== this.document[0] && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
+
+		// This is another very weird special case that only happens for relative elements:
+		// 1. If the css position is relative
+		// 2. and the scroll parent is the document or similar to the offset parent
+		// we have to refresh the relative offset during the scroll so there are no jumps
+		if(this.cssPosition === "relative" && !(this.scrollParent[0] !== this.document[0] && this.scrollParent[0] !== this.offsetParent[0])) {
+			this.offset.relative = this._getRelativeOffset();
+		}
+
+		/*
+		 * - Position constraining -
+		 * Constrain the position to a mix of grid, containment.
+		 */
+
+		if(this.originalPosition) { //If we are not dragging yet, we won't check for options
+
+			if(this.containment) {
+				if(event.pageX - this.offset.click.left < this.containment[0]) {
+					pageX = this.containment[0] + this.offset.click.left;
+				}
+				if(event.pageY - this.offset.click.top < this.containment[1]) {
+					pageY = this.containment[1] + this.offset.click.top;
+				}
+				if(event.pageX - this.offset.click.left > this.containment[2]) {
+					pageX = this.containment[2] + this.offset.click.left;
+				}
+				if(event.pageY - this.offset.click.top > this.containment[3]) {
+					pageY = this.containment[3] + this.offset.click.top;
+				}
+			}
+
+			if(o.grid) {
+				top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1];
+				pageY = this.containment ? ( (top - this.offset.click.top >= this.containment[1] && top - this.offset.click.top <= this.containment[3]) ? top : ((top - this.offset.click.top >= this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
+
+				left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0];
+				pageX = this.containment ? ( (left - this.offset.click.left >= this.containment[0] && left - this.offset.click.left <= this.containment[2]) ? left : ((left - this.offset.click.left >= this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
+			}
+
+		}
+
+		return {
+			top: (
+				pageY -																// The absolute mouse position
+				this.offset.click.top -													// Click offset (relative to the element)
+				this.offset.relative.top	-											// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.parent.top +												// The offsetParent's offset without borders (offset + border)
+				( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ))
+			),
+			left: (
+				pageX -																// The absolute mouse position
+				this.offset.click.left -												// Click offset (relative to the element)
+				this.offset.relative.left	-											// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.parent.left +												// The offsetParent's offset without borders (offset + border)
+				( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ))
+			)
+		};
+
+	},
+
+	_rearrange: function(event, i, a, hardRefresh) {
+
+		a ? a[0].appendChild(this.placeholder[0]) : i.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction === "down" ? i.item[0] : i.item[0].nextSibling));
+
+		//Various things done here to improve the performance:
+		// 1. we create a setTimeout, that calls refreshPositions
+		// 2. on the instance, we have a counter variable, that get's higher after every append
+		// 3. on the local scope, we copy the counter variable, and check in the timeout, if it's still the same
+		// 4. this lets only the last addition to the timeout stack through
+		this.counter = this.counter ? ++this.counter : 1;
+		var counter = this.counter;
+
+		this._delay(function() {
+			if(counter === this.counter) {
+				this.refreshPositions(!hardRefresh); //Precompute after each DOM insertion, NOT on mousemove
+			}
+		});
+
+	},
+
+	_clear: function(event, noPropagation) {
+
+		this.reverting = false;
+		// We delay all events that have to be triggered to after the point where the placeholder has been removed and
+		// everything else normalized again
+		var i,
+			delayedTriggers = [];
+
+		// We first have to update the dom position of the actual currentItem
+		// Note: don't do it if the current item is already removed (by a user), or it gets reappended (see #4088)
+		if(!this._noFinalSort && this.currentItem.parent().length) {
+			this.placeholder.before(this.currentItem);
+		}
+		this._noFinalSort = null;
+
+		if(this.helper[0] === this.currentItem[0]) {
+			for(i in this._storedCSS) {
+				if(this._storedCSS[i] === "auto" || this._storedCSS[i] === "static") {
+					this._storedCSS[i] = "";
+				}
+			}
+			this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");
+		} else {
+			this.currentItem.show();
+		}
+
+		if(this.fromOutside && !noPropagation) {
+			delayedTriggers.push(function(event) { this._trigger("receive", event, this._uiHash(this.fromOutside)); });
+		}
+		if((this.fromOutside || this.domPosition.prev !== this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent !== this.currentItem.parent()[0]) && !noPropagation) {
+			delayedTriggers.push(function(event) { this._trigger("update", event, this._uiHash()); }); //Trigger update callback if the DOM position has changed
+		}
+
+		// Check if the items Container has Changed and trigger appropriate
+		// events.
+		if (this !== this.currentContainer) {
+			if(!noPropagation) {
+				delayedTriggers.push(function(event) { this._trigger("remove", event, this._uiHash()); });
+				delayedTriggers.push((function(c) { return function(event) { c._trigger("receive", event, this._uiHash(this)); };  }).call(this, this.currentContainer));
+				delayedTriggers.push((function(c) { return function(event) { c._trigger("update", event, this._uiHash(this));  }; }).call(this, this.currentContainer));
+			}
+		}
+
+
+		//Post events to containers
+		function delayEvent( type, instance, container ) {
+			return function( event ) {
+				container._trigger( type, event, instance._uiHash( instance ) );
+			};
+		}
+		for (i = this.containers.length - 1; i >= 0; i--){
+			if (!noPropagation) {
+				delayedTriggers.push( delayEvent( "deactivate", this, this.containers[ i ] ) );
+			}
+			if(this.containers[i].containerCache.over) {
+				delayedTriggers.push( delayEvent( "out", this, this.containers[ i ] ) );
+				this.containers[i].containerCache.over = 0;
+			}
+		}
+
+		//Do what was originally in plugins
+		if ( this.storedCursor ) {
+			this.document.find( "body" ).css( "cursor", this.storedCursor );
+			this.storedStylesheet.remove();
+		}
+		if(this._storedOpacity) {
+			this.helper.css("opacity", this._storedOpacity);
+		}
+		if(this._storedZIndex) {
+			this.helper.css("zIndex", this._storedZIndex === "auto" ? "" : this._storedZIndex);
+		}
+
+		this.dragging = false;
+
+		if(!noPropagation) {
+			this._trigger("beforeStop", event, this._uiHash());
+		}
+
+		//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node!
+		this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
+
+		if ( !this.cancelHelperRemoval ) {
+			if ( this.helper[ 0 ] !== this.currentItem[ 0 ] ) {
+				this.helper.remove();
+			}
+			this.helper = null;
+		}
+
+		if(!noPropagation) {
+			for (i=0; i < delayedTriggers.length; i++) {
+				delayedTriggers[i].call(this, event);
+			} //Trigger all delayed events
+			this._trigger("stop", event, this._uiHash());
+		}
+
+		this.fromOutside = false;
+		return !this.cancelHelperRemoval;
+
+	},
+
+	_trigger: function() {
+		if ($.Widget.prototype._trigger.apply(this, arguments) === false) {
+			this.cancel();
+		}
+	},
+
+	_uiHash: function(_inst) {
+		var inst = _inst || this;
+		return {
+			helper: inst.helper,
+			placeholder: inst.placeholder || $([]),
+			position: inst.position,
+			originalPosition: inst.originalPosition,
+			offset: inst.positionAbs,
+			item: inst.currentItem,
+			sender: _inst ? _inst.element : null
+		};
+	}
+
+});
+
+
+/*!
+ * jQuery UI Spinner 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/spinner/
+ */
+
+
+function spinner_modifier( fn ) {
+	return function() {
+		var previous = this.element.val();
+		fn.apply( this, arguments );
+		this._refresh();
+		if ( previous !== this.element.val() ) {
+			this._trigger( "change" );
+		}
+	};
+}
+
+var spinner = $.widget( "ui.spinner", {
+	version: "1.11.4",
+	defaultElement: "<input>",
+	widgetEventPrefix: "spin",
+	options: {
+		culture: null,
+		icons: {
+			down: "ui-icon-triangle-1-s",
+			up: "ui-icon-triangle-1-n"
+		},
+		incremental: true,
+		max: null,
+		min: null,
+		numberFormat: null,
+		page: 10,
+		step: 1,
+
+		change: null,
+		spin: null,
+		start: null,
+		stop: null
+	},
+
+	_create: function() {
+		// handle string values that need to be parsed
+		this._setOption( "max", this.options.max );
+		this._setOption( "min", this.options.min );
+		this._setOption( "step", this.options.step );
+
+		// Only format if there is a value, prevents the field from being marked
+		// as invalid in Firefox, see #9573.
+		if ( this.value() !== "" ) {
+			// Format the value, but don't constrain.
+			this._value( this.element.val(), true );
+		}
+
+		this._draw();
+		this._on( this._events );
+		this._refresh();
+
+		// turning off autocomplete prevents the browser from remembering the
+		// value when navigating through history, so we re-enable autocomplete
+		// if the page is unloaded before the widget is destroyed. #7790
+		this._on( this.window, {
+			beforeunload: function() {
+				this.element.removeAttr( "autocomplete" );
+			}
+		});
+	},
+
+	_getCreateOptions: function() {
+		var options = {},
+			element = this.element;
+
+		$.each( [ "min", "max", "step" ], function( i, option ) {
+			var value = element.attr( option );
+			if ( value !== undefined && value.length ) {
+				options[ option ] = value;
+			}
+		});
+
+		return options;
+	},
+
+	_events: {
+		keydown: function( event ) {
+			if ( this._start( event ) && this._keydown( event ) ) {
+				event.preventDefault();
+			}
+		},
+		keyup: "_stop",
+		focus: function() {
+			this.previous = this.element.val();
+		},
+		blur: function( event ) {
+			if ( this.cancelBlur ) {
+				delete this.cancelBlur;
+				return;
+			}
+
+			this._stop();
+			this._refresh();
+			if ( this.previous !== this.element.val() ) {
+				this._trigger( "change", event );
+			}
+		},
+		mousewheel: function( event, delta ) {
+			if ( !delta ) {
+				return;
+			}
+			if ( !this.spinning && !this._start( event ) ) {
+				return false;
+			}
+
+			this._spin( (delta > 0 ? 1 : -1) * this.options.step, event );
+			clearTimeout( this.mousewheelTimer );
+			this.mousewheelTimer = this._delay(function() {
+				if ( this.spinning ) {
+					this._stop( event );
+				}
+			}, 100 );
+			event.preventDefault();
+		},
+		"mousedown .ui-spinner-button": function( event ) {
+			var previous;
+
+			// We never want the buttons to have focus; whenever the user is
+			// interacting with the spinner, the focus should be on the input.
+			// If the input is focused then this.previous is properly set from
+			// when the input first received focus. If the input is not focused
+			// then we need to set this.previous based on the value before spinning.
+			previous = this.element[0] === this.document[0].activeElement ?
+				this.previous : this.element.val();
+			function checkFocus() {
+				var isActive = this.element[0] === this.document[0].activeElement;
+				if ( !isActive ) {
+					this.element.focus();
+					this.previous = previous;
+					// support: IE
+					// IE sets focus asynchronously, so we need to check if focus
+					// moved off of the input because the user clicked on the button.
+					this._delay(function() {
+						this.previous = previous;
+					});
+				}
+			}
+
+			// ensure focus is on (or stays on) the text field
+			event.preventDefault();
+			checkFocus.call( this );
+
+			// support: IE
+			// IE doesn't prevent moving focus even with event.preventDefault()
+			// so we set a flag to know when we should ignore the blur event
+			// and check (again) if focus moved off of the input.
+			this.cancelBlur = true;
+			this._delay(function() {
+				delete this.cancelBlur;
+				checkFocus.call( this );
+			});
+
+			if ( this._start( event ) === false ) {
+				return;
+			}
+
+			this._repeat( null, $( event.currentTarget ).hasClass( "ui-spinner-up" ) ? 1 : -1, event );
+		},
+		"mouseup .ui-spinner-button": "_stop",
+		"mouseenter .ui-spinner-button": function( event ) {
+			// button will add ui-state-active if mouse was down while mouseleave and kept down
+			if ( !$( event.currentTarget ).hasClass( "ui-state-active" ) ) {
+				return;
+			}
+
+			if ( this._start( event ) === false ) {
+				return false;
+			}
+			this._repeat( null, $( event.currentTarget ).hasClass( "ui-spinner-up" ) ? 1 : -1, event );
+		},
+		// TODO: do we really want to consider this a stop?
+		// shouldn't we just stop the repeater and wait until mouseup before
+		// we trigger the stop event?
+		"mouseleave .ui-spinner-button": "_stop"
+	},
+
+	_draw: function() {
+		var uiSpinner = this.uiSpinner = this.element
+			.addClass( "ui-spinner-input" )
+			.attr( "autocomplete", "off" )
+			.wrap( this._uiSpinnerHtml() )
+			.parent()
+				// add buttons
+				.append( this._buttonHtml() );
+
+		this.element.attr( "role", "spinbutton" );
+
+		// button bindings
+		this.buttons = uiSpinner.find( ".ui-spinner-button" )
+			.attr( "tabIndex", -1 )
+			.button()
+			.removeClass( "ui-corner-all" );
+
+		// IE 6 doesn't understand height: 50% for the buttons
+		// unless the wrapper has an explicit height
+		if ( this.buttons.height() > Math.ceil( uiSpinner.height() * 0.5 ) &&
+				uiSpinner.height() > 0 ) {
+			uiSpinner.height( uiSpinner.height() );
+		}
+
+		// disable spinner if element was already disabled
+		if ( this.options.disabled ) {
+			this.disable();
+		}
+	},
+
+	_keydown: function( event ) {
+		var options = this.options,
+			keyCode = $.ui.keyCode;
+
+		switch ( event.keyCode ) {
+		case keyCode.UP:
+			this._repeat( null, 1, event );
+			return true;
+		case keyCode.DOWN:
+			this._repeat( null, -1, event );
+			return true;
+		case keyCode.PAGE_UP:
+			this._repeat( null, options.page, event );
+			return true;
+		case keyCode.PAGE_DOWN:
+			this._repeat( null, -options.page, event );
+			return true;
+		}
+
+		return false;
+	},
+
+	_uiSpinnerHtml: function() {
+		return "<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>";
+	},
+
+	_buttonHtml: function() {
+		return "" +
+			"<a class='ui-spinner-button ui-spinner-up ui-corner-tr'>" +
+				"<span class='ui-icon " + this.options.icons.up + "'>&#9650;</span>" +
+			"</a>" +
+			"<a class='ui-spinner-button ui-spinner-down ui-corner-br'>" +
+				"<span class='ui-icon " + this.options.icons.down + "'>&#9660;</span>" +
+			"</a>";
+	},
+
+	_start: function( event ) {
+		if ( !this.spinning && this._trigger( "start", event ) === false ) {
+			return false;
+		}
+
+		if ( !this.counter ) {
+			this.counter = 1;
+		}
+		this.spinning = true;
+		return true;
+	},
+
+	_repeat: function( i, steps, event ) {
+		i = i || 500;
+
+		clearTimeout( this.timer );
+		this.timer = this._delay(function() {
+			this._repeat( 40, steps, event );
+		}, i );
+
+		this._spin( steps * this.options.step, event );
+	},
+
+	_spin: function( step, event ) {
+		var value = this.value() || 0;
+
+		if ( !this.counter ) {
+			this.counter = 1;
+		}
+
+		value = this._adjustValue( value + step * this._increment( this.counter ) );
+
+		if ( !this.spinning || this._trigger( "spin", event, { value: value } ) !== false) {
+			this._value( value );
+			this.counter++;
+		}
+	},
+
+	_increment: function( i ) {
+		var incremental = this.options.incremental;
+
+		if ( incremental ) {
+			return $.isFunction( incremental ) ?
+				incremental( i ) :
+				Math.floor( i * i * i / 50000 - i * i / 500 + 17 * i / 200 + 1 );
+		}
+
+		return 1;
+	},
+
+	_precision: function() {
+		var precision = this._precisionOf( this.options.step );
+		if ( this.options.min !== null ) {
+			precision = Math.max( precision, this._precisionOf( this.options.min ) );
+		}
+		return precision;
+	},
+
+	_precisionOf: function( num ) {
+		var str = num.toString(),
+			decimal = str.indexOf( "." );
+		return decimal === -1 ? 0 : str.length - decimal - 1;
+	},
+
+	_adjustValue: function( value ) {
+		var base, aboveMin,
+			options = this.options;
+
+		// make sure we're at a valid step
+		// - find out where we are relative to the base (min or 0)
+		base = options.min !== null ? options.min : 0;
+		aboveMin = value - base;
+		// - round to the nearest step
+		aboveMin = Math.round(aboveMin / options.step) * options.step;
+		// - rounding is based on 0, so adjust back to our base
+		value = base + aboveMin;
+
+		// fix precision from bad JS floating point math
+		value = parseFloat( value.toFixed( this._precision() ) );
+
+		// clamp the value
+		if ( options.max !== null && value > options.max) {
+			return options.max;
+		}
+		if ( options.min !== null && value < options.min ) {
+			return options.min;
+		}
+
+		return value;
+	},
+
+	_stop: function( event ) {
+		if ( !this.spinning ) {
+			return;
+		}
+
+		clearTimeout( this.timer );
+		clearTimeout( this.mousewheelTimer );
+		this.counter = 0;
+		this.spinning = false;
+		this._trigger( "stop", event );
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "culture" || key === "numberFormat" ) {
+			var prevValue = this._parse( this.element.val() );
+			this.options[ key ] = value;
+			this.element.val( this._format( prevValue ) );
+			return;
+		}
+
+		if ( key === "max" || key === "min" || key === "step" ) {
+			if ( typeof value === "string" ) {
+				value = this._parse( value );
+			}
+		}
+		if ( key === "icons" ) {
+			this.buttons.first().find( ".ui-icon" )
+				.removeClass( this.options.icons.up )
+				.addClass( value.up );
+			this.buttons.last().find( ".ui-icon" )
+				.removeClass( this.options.icons.down )
+				.addClass( value.down );
+		}
+
+		this._super( key, value );
+
+		if ( key === "disabled" ) {
+			this.widget().toggleClass( "ui-state-disabled", !!value );
+			this.element.prop( "disabled", !!value );
+			this.buttons.button( value ? "disable" : "enable" );
+		}
+	},
+
+	_setOptions: spinner_modifier(function( options ) {
+		this._super( options );
+	}),
+
+	_parse: function( val ) {
+		if ( typeof val === "string" && val !== "" ) {
+			val = window.Globalize && this.options.numberFormat ?
+				Globalize.parseFloat( val, 10, this.options.culture ) : +val;
+		}
+		return val === "" || isNaN( val ) ? null : val;
+	},
+
+	_format: function( value ) {
+		if ( value === "" ) {
+			return "";
+		}
+		return window.Globalize && this.options.numberFormat ?
+			Globalize.format( value, this.options.numberFormat, this.options.culture ) :
+			value;
+	},
+
+	_refresh: function() {
+		this.element.attr({
+			"aria-valuemin": this.options.min,
+			"aria-valuemax": this.options.max,
+			// TODO: what should we do with values that can't be parsed?
+			"aria-valuenow": this._parse( this.element.val() )
+		});
+	},
+
+	isValid: function() {
+		var value = this.value();
+
+		// null is invalid
+		if ( value === null ) {
+			return false;
+		}
+
+		// if value gets adjusted, it's invalid
+		return value === this._adjustValue( value );
+	},
+
+	// update the value without triggering change
+	_value: function( value, allowAny ) {
+		var parsed;
+		if ( value !== "" ) {
+			parsed = this._parse( value );
+			if ( parsed !== null ) {
+				if ( !allowAny ) {
+					parsed = this._adjustValue( parsed );
+				}
+				value = this._format( parsed );
+			}
+		}
+		this.element.val( value );
+		this._refresh();
+	},
+
+	_destroy: function() {
+		this.element
+			.removeClass( "ui-spinner-input" )
+			.prop( "disabled", false )
+			.removeAttr( "autocomplete" )
+			.removeAttr( "role" )
+			.removeAttr( "aria-valuemin" )
+			.removeAttr( "aria-valuemax" )
+			.removeAttr( "aria-valuenow" );
+		this.uiSpinner.replaceWith( this.element );
+	},
+
+	stepUp: spinner_modifier(function( steps ) {
+		this._stepUp( steps );
+	}),
+	_stepUp: function( steps ) {
+		if ( this._start() ) {
+			this._spin( (steps || 1) * this.options.step );
+			this._stop();
+		}
+	},
+
+	stepDown: spinner_modifier(function( steps ) {
+		this._stepDown( steps );
+	}),
+	_stepDown: function( steps ) {
+		if ( this._start() ) {
+			this._spin( (steps || 1) * -this.options.step );
+			this._stop();
+		}
+	},
+
+	pageUp: spinner_modifier(function( pages ) {
+		this._stepUp( (pages || 1) * this.options.page );
+	}),
+
+	pageDown: spinner_modifier(function( pages ) {
+		this._stepDown( (pages || 1) * this.options.page );
+	}),
+
+	value: function( newVal ) {
+		if ( !arguments.length ) {
+			return this._parse( this.element.val() );
+		}
+		spinner_modifier( this._value ).call( this, newVal );
+	},
+
+	widget: function() {
+		return this.uiSpinner;
+	}
+});
+
+
+/*!
+ * jQuery UI Tabs 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/tabs/
+ */
+
+
+var tabs = $.widget( "ui.tabs", {
+	version: "1.11.4",
+	delay: 300,
+	options: {
+		active: null,
+		collapsible: false,
+		event: "click",
+		heightStyle: "content",
+		hide: null,
+		show: null,
+
+		// callbacks
+		activate: null,
+		beforeActivate: null,
+		beforeLoad: null,
+		load: null
+	},
+
+	_isLocal: (function() {
+		var rhash = /#.*$/;
+
+		return function( anchor ) {
+			var anchorUrl, locationUrl;
+
+			// support: IE7
+			// IE7 doesn't normalize the href property when set via script (#9317)
+			anchor = anchor.cloneNode( false );
+
+			anchorUrl = anchor.href.replace( rhash, "" );
+			locationUrl = location.href.replace( rhash, "" );
+
+			// decoding may throw an error if the URL isn't UTF-8 (#9518)
+			try {
+				anchorUrl = decodeURIComponent( anchorUrl );
+			} catch ( error ) {}
+			try {
+				locationUrl = decodeURIComponent( locationUrl );
+			} catch ( error ) {}
+
+			return anchor.hash.length > 1 && anchorUrl === locationUrl;
+		};
+	})(),
+
+	_create: function() {
+		var that = this,
+			options = this.options;
+
+		this.running = false;
+
+		this.element
+			.addClass( "ui-tabs ui-widget ui-widget-content ui-corner-all" )
+			.toggleClass( "ui-tabs-collapsible", options.collapsible );
+
+		this._processTabs();
+		options.active = this._initialActive();
+
+		// Take disabling tabs via class attribute from HTML
+		// into account and update option properly.
+		if ( $.isArray( options.disabled ) ) {
+			options.disabled = $.unique( options.disabled.concat(
+				$.map( this.tabs.filter( ".ui-state-disabled" ), function( li ) {
+					return that.tabs.index( li );
+				})
+			) ).sort();
+		}
+
+		// check for length avoids error when initializing empty list
+		if ( this.options.active !== false && this.anchors.length ) {
+			this.active = this._findActive( options.active );
+		} else {
+			this.active = $();
+		}
+
+		this._refresh();
+
+		if ( this.active.length ) {
+			this.load( options.active );
+		}
+	},
+
+	_initialActive: function() {
+		var active = this.options.active,
+			collapsible = this.options.collapsible,
+			locationHash = location.hash.substring( 1 );
+
+		if ( active === null ) {
+			// check the fragment identifier in the URL
+			if ( locationHash ) {
+				this.tabs.each(function( i, tab ) {
+					if ( $( tab ).attr( "aria-controls" ) === locationHash ) {
+						active = i;
+						return false;
+					}
+				});
+			}
+
+			// check for a tab marked active via a class
+			if ( active === null ) {
+				active = this.tabs.index( this.tabs.filter( ".ui-tabs-active" ) );
+			}
+
+			// no active tab, set to false
+			if ( active === null || active === -1 ) {
+				active = this.tabs.length ? 0 : false;
+			}
+		}
+
+		// handle numbers: negative, out of range
+		if ( active !== false ) {
+			active = this.tabs.index( this.tabs.eq( active ) );
+			if ( active === -1 ) {
+				active = collapsible ? false : 0;
+			}
+		}
+
+		// don't allow collapsible: false and active: false
+		if ( !collapsible && active === false && this.anchors.length ) {
+			active = 0;
+		}
+
+		return active;
+	},
+
+	_getCreateEventData: function() {
+		return {
+			tab: this.active,
+			panel: !this.active.length ? $() : this._getPanelForTab( this.active )
+		};
+	},
+
+	_tabKeydown: function( event ) {
+		var focusedTab = $( this.document[0].activeElement ).closest( "li" ),
+			selectedIndex = this.tabs.index( focusedTab ),
+			goingForward = true;
+
+		if ( this._handlePageNav( event ) ) {
+			return;
+		}
+
+		switch ( event.keyCode ) {
+			case $.ui.keyCode.RIGHT:
+			case $.ui.keyCode.DOWN:
+				selectedIndex++;
+				break;
+			case $.ui.keyCode.UP:
+			case $.ui.keyCode.LEFT:
+				goingForward = false;
+				selectedIndex--;
+				break;
+			case $.ui.keyCode.END:
+				selectedIndex = this.anchors.length - 1;
+				break;
+			case $.ui.keyCode.HOME:
+				selectedIndex = 0;
+				break;
+			case $.ui.keyCode.SPACE:
+				// Activate only, no collapsing
+				event.preventDefault();
+				clearTimeout( this.activating );
+				this._activate( selectedIndex );
+				return;
+			case $.ui.keyCode.ENTER:
+				// Toggle (cancel delayed activation, allow collapsing)
+				event.preventDefault();
+				clearTimeout( this.activating );
+				// Determine if we should collapse or activate
+				this._activate( selectedIndex === this.options.active ? false : selectedIndex );
+				return;
+			default:
+				return;
+		}
+
+		// Focus the appropriate tab, based on which key was pressed
+		event.preventDefault();
+		clearTimeout( this.activating );
+		selectedIndex = this._focusNextTab( selectedIndex, goingForward );
+
+		// Navigating with control/command key will prevent automatic activation
+		if ( !event.ctrlKey && !event.metaKey ) {
+
+			// Update aria-selected immediately so that AT think the tab is already selected.
+			// Otherwise AT may confuse the user by stating that they need to activate the tab,
+			// but the tab will already be activated by the time the announcement finishes.
+			focusedTab.attr( "aria-selected", "false" );
+			this.tabs.eq( selectedIndex ).attr( "aria-selected", "true" );
+
+			this.activating = this._delay(function() {
+				this.option( "active", selectedIndex );
+			}, this.delay );
+		}
+	},
+
+	_panelKeydown: function( event ) {
+		if ( this._handlePageNav( event ) ) {
+			return;
+		}
+
+		// Ctrl+up moves focus to the current tab
+		if ( event.ctrlKey && event.keyCode === $.ui.keyCode.UP ) {
+			event.preventDefault();
+			this.active.focus();
+		}
+	},
+
+	// Alt+page up/down moves focus to the previous/next tab (and activates)
+	_handlePageNav: function( event ) {
+		if ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_UP ) {
+			this._activate( this._focusNextTab( this.options.active - 1, false ) );
+			return true;
+		}
+		if ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_DOWN ) {
+			this._activate( this._focusNextTab( this.options.active + 1, true ) );
+			return true;
+		}
+	},
+
+	_findNextTab: function( index, goingForward ) {
+		var lastTabIndex = this.tabs.length - 1;
+
+		function constrain() {
+			if ( index > lastTabIndex ) {
+				index = 0;
+			}
+			if ( index < 0 ) {
+				index = lastTabIndex;
+			}
+			return index;
+		}
+
+		while ( $.inArray( constrain(), this.options.disabled ) !== -1 ) {
+			index = goingForward ? index + 1 : index - 1;
+		}
+
+		return index;
+	},
+
+	_focusNextTab: function( index, goingForward ) {
+		index = this._findNextTab( index, goingForward );
+		this.tabs.eq( index ).focus();
+		return index;
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "active" ) {
+			// _activate() will handle invalid values and update this.options
+			this._activate( value );
+			return;
+		}
+
+		if ( key === "disabled" ) {
+			// don't use the widget factory's disabled handling
+			this._setupDisabled( value );
+			return;
+		}
+
+		this._super( key, value);
+
+		if ( key === "collapsible" ) {
+			this.element.toggleClass( "ui-tabs-collapsible", value );
+			// Setting collapsible: false while collapsed; open first panel
+			if ( !value && this.options.active === false ) {
+				this._activate( 0 );
+			}
+		}
+
+		if ( key === "event" ) {
+			this._setupEvents( value );
+		}
+
+		if ( key === "heightStyle" ) {
+			this._setupHeightStyle( value );
+		}
+	},
+
+	_sanitizeSelector: function( hash ) {
+		return hash ? hash.replace( /[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&" ) : "";
+	},
+
+	refresh: function() {
+		var options = this.options,
+			lis = this.tablist.children( ":has(a[href])" );
+
+		// get disabled tabs from class attribute from HTML
+		// this will get converted to a boolean if needed in _refresh()
+		options.disabled = $.map( lis.filter( ".ui-state-disabled" ), function( tab ) {
+			return lis.index( tab );
+		});
+
+		this._processTabs();
+
+		// was collapsed or no tabs
+		if ( options.active === false || !this.anchors.length ) {
+			options.active = false;
+			this.active = $();
+		// was active, but active tab is gone
+		} else if ( this.active.length && !$.contains( this.tablist[ 0 ], this.active[ 0 ] ) ) {
+			// all remaining tabs are disabled
+			if ( this.tabs.length === options.disabled.length ) {
+				options.active = false;
+				this.active = $();
+			// activate previous tab
+			} else {
+				this._activate( this._findNextTab( Math.max( 0, options.active - 1 ), false ) );
+			}
+		// was active, active tab still exists
+		} else {
+			// make sure active index is correct
+			options.active = this.tabs.index( this.active );
+		}
+
+		this._refresh();
+	},
+
+	_refresh: function() {
+		this._setupDisabled( this.options.disabled );
+		this._setupEvents( this.options.event );
+		this._setupHeightStyle( this.options.heightStyle );
+
+		this.tabs.not( this.active ).attr({
+			"aria-selected": "false",
+			"aria-expanded": "false",
+			tabIndex: -1
+		});
+		this.panels.not( this._getPanelForTab( this.active ) )
+			.hide()
+			.attr({
+				"aria-hidden": "true"
+			});
+
+		// Make sure one tab is in the tab order
+		if ( !this.active.length ) {
+			this.tabs.eq( 0 ).attr( "tabIndex", 0 );
+		} else {
+			this.active
+				.addClass( "ui-tabs-active ui-state-active" )
+				.attr({
+					"aria-selected": "true",
+					"aria-expanded": "true",
+					tabIndex: 0
+				});
+			this._getPanelForTab( this.active )
+				.show()
+				.attr({
+					"aria-hidden": "false"
+				});
+		}
+	},
+
+	_processTabs: function() {
+		var that = this,
+			prevTabs = this.tabs,
+			prevAnchors = this.anchors,
+			prevPanels = this.panels;
+
+		this.tablist = this._getList()
+			.addClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" )
+			.attr( "role", "tablist" )
+
+			// Prevent users from focusing disabled tabs via click
+			.delegate( "> li", "mousedown" + this.eventNamespace, function( event ) {
+				if ( $( this ).is( ".ui-state-disabled" ) ) {
+					event.preventDefault();
+				}
+			})
+
+			// support: IE <9
+			// Preventing the default action in mousedown doesn't prevent IE
+			// from focusing the element, so if the anchor gets focused, blur.
+			// We don't have to worry about focusing the previously focused
+			// element since clicking on a non-focusable element should focus
+			// the body anyway.
+			.delegate( ".ui-tabs-anchor", "focus" + this.eventNamespace, function() {
+				if ( $( this ).closest( "li" ).is( ".ui-state-disabled" ) ) {
+					this.blur();
+				}
+			});
+
+		this.tabs = this.tablist.find( "> li:has(a[href])" )
+			.addClass( "ui-state-default ui-corner-top" )
+			.attr({
+				role: "tab",
+				tabIndex: -1
+			});
+
+		this.anchors = this.tabs.map(function() {
+				return $( "a", this )[ 0 ];
+			})
+			.addClass( "ui-tabs-anchor" )
+			.attr({
+				role: "presentation",
+				tabIndex: -1
+			});
+
+		this.panels = $();
+
+		this.anchors.each(function( i, anchor ) {
+			var selector, panel, panelId,
+				anchorId = $( anchor ).uniqueId().attr( "id" ),
+				tab = $( anchor ).closest( "li" ),
+				originalAriaControls = tab.attr( "aria-controls" );
+
+			// inline tab
+			if ( that._isLocal( anchor ) ) {
+				selector = anchor.hash;
+				panelId = selector.substring( 1 );
+				panel = that.element.find( that._sanitizeSelector( selector ) );
+			// remote tab
+			} else {
+				// If the tab doesn't already have aria-controls,
+				// generate an id by using a throw-away element
+				panelId = tab.attr( "aria-controls" ) || $( {} ).uniqueId()[ 0 ].id;
+				selector = "#" + panelId;
+				panel = that.element.find( selector );
+				if ( !panel.length ) {
+					panel = that._createPanel( panelId );
+					panel.insertAfter( that.panels[ i - 1 ] || that.tablist );
+				}
+				panel.attr( "aria-live", "polite" );
+			}
+
+			if ( panel.length) {
+				that.panels = that.panels.add( panel );
+			}
+			if ( originalAriaControls ) {
+				tab.data( "ui-tabs-aria-controls", originalAriaControls );
+			}
+			tab.attr({
+				"aria-controls": panelId,
+				"aria-labelledby": anchorId
+			});
+			panel.attr( "aria-labelledby", anchorId );
+		});
+
+		this.panels
+			.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" )
+			.attr( "role", "tabpanel" );
+
+		// Avoid memory leaks (#10056)
+		if ( prevTabs ) {
+			this._off( prevTabs.not( this.tabs ) );
+			this._off( prevAnchors.not( this.anchors ) );
+			this._off( prevPanels.not( this.panels ) );
+		}
+	},
+
+	// allow overriding how to find the list for rare usage scenarios (#7715)
+	_getList: function() {
+		return this.tablist || this.element.find( "ol,ul" ).eq( 0 );
+	},
+
+	_createPanel: function( id ) {
+		return $( "<div>" )
+			.attr( "id", id )
+			.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" )
+			.data( "ui-tabs-destroy", true );
+	},
+
+	_setupDisabled: function( disabled ) {
+		if ( $.isArray( disabled ) ) {
+			if ( !disabled.length ) {
+				disabled = false;
+			} else if ( disabled.length === this.anchors.length ) {
+				disabled = true;
+			}
+		}
+
+		// disable tabs
+		for ( var i = 0, li; ( li = this.tabs[ i ] ); i++ ) {
+			if ( disabled === true || $.inArray( i, disabled ) !== -1 ) {
+				$( li )
+					.addClass( "ui-state-disabled" )
+					.attr( "aria-disabled", "true" );
+			} else {
+				$( li )
+					.removeClass( "ui-state-disabled" )
+					.removeAttr( "aria-disabled" );
+			}
+		}
+
+		this.options.disabled = disabled;
+	},
+
+	_setupEvents: function( event ) {
+		var events = {};
+		if ( event ) {
+			$.each( event.split(" "), function( index, eventName ) {
+				events[ eventName ] = "_eventHandler";
+			});
+		}
+
+		this._off( this.anchors.add( this.tabs ).add( this.panels ) );
+		// Always prevent the default action, even when disabled
+		this._on( true, this.anchors, {
+			click: function( event ) {
+				event.preventDefault();
+			}
+		});
+		this._on( this.anchors, events );
+		this._on( this.tabs, { keydown: "_tabKeydown" } );
+		this._on( this.panels, { keydown: "_panelKeydown" } );
+
+		this._focusable( this.tabs );
+		this._hoverable( this.tabs );
+	},
+
+	_setupHeightStyle: function( heightStyle ) {
+		var maxHeight,
+			parent = this.element.parent();
+
+		if ( heightStyle === "fill" ) {
+			maxHeight = parent.height();
+			maxHeight -= this.element.outerHeight() - this.element.height();
+
+			this.element.siblings( ":visible" ).each(function() {
+				var elem = $( this ),
+					position = elem.css( "position" );
+
+				if ( position === "absolute" || position === "fixed" ) {
+					return;
+				}
+				maxHeight -= elem.outerHeight( true );
+			});
+
+			this.element.children().not( this.panels ).each(function() {
+				maxHeight -= $( this ).outerHeight( true );
+			});
+
+			this.panels.each(function() {
+				$( this ).height( Math.max( 0, maxHeight -
+					$( this ).innerHeight() + $( this ).height() ) );
+			})
+			.css( "overflow", "auto" );
+		} else if ( heightStyle === "auto" ) {
+			maxHeight = 0;
+			this.panels.each(function() {
+				maxHeight = Math.max( maxHeight, $( this ).height( "" ).height() );
+			}).height( maxHeight );
+		}
+	},
+
+	_eventHandler: function( event ) {
+		var options = this.options,
+			active = this.active,
+			anchor = $( event.currentTarget ),
+			tab = anchor.closest( "li" ),
+			clickedIsActive = tab[ 0 ] === active[ 0 ],
+			collapsing = clickedIsActive && options.collapsible,
+			toShow = collapsing ? $() : this._getPanelForTab( tab ),
+			toHide = !active.length ? $() : this._getPanelForTab( active ),
+			eventData = {
+				oldTab: active,
+				oldPanel: toHide,
+				newTab: collapsing ? $() : tab,
+				newPanel: toShow
+			};
+
+		event.preventDefault();
+
+		if ( tab.hasClass( "ui-state-disabled" ) ||
+				// tab is already loading
+				tab.hasClass( "ui-tabs-loading" ) ||
+				// can't switch durning an animation
+				this.running ||
+				// click on active header, but not collapsible
+				( clickedIsActive && !options.collapsible ) ||
+				// allow canceling activation
+				( this._trigger( "beforeActivate", event, eventData ) === false ) ) {
+			return;
+		}
+
+		options.active = collapsing ? false : this.tabs.index( tab );
+
+		this.active = clickedIsActive ? $() : tab;
+		if ( this.xhr ) {
+			this.xhr.abort();
+		}
+
+		if ( !toHide.length && !toShow.length ) {
+			$.error( "jQuery UI Tabs: Mismatching fragment identifier." );
+		}
+
+		if ( toShow.length ) {
+			this.load( this.tabs.index( tab ), event );
+		}
+		this._toggle( event, eventData );
+	},
+
+	// handles show/hide for selecting tabs
+	_toggle: function( event, eventData ) {
+		var that = this,
+			toShow = eventData.newPanel,
+			toHide = eventData.oldPanel;
+
+		this.running = true;
+
+		function complete() {
+			that.running = false;
+			that._trigger( "activate", event, eventData );
+		}
+
+		function show() {
+			eventData.newTab.closest( "li" ).addClass( "ui-tabs-active ui-state-active" );
+
+			if ( toShow.length && that.options.show ) {
+				that._show( toShow, that.options.show, complete );
+			} else {
+				toShow.show();
+				complete();
+			}
+		}
+
+		// start out by hiding, then showing, then completing
+		if ( toHide.length && this.options.hide ) {
+			this._hide( toHide, this.options.hide, function() {
+				eventData.oldTab.closest( "li" ).removeClass( "ui-tabs-active ui-state-active" );
+				show();
+			});
+		} else {
+			eventData.oldTab.closest( "li" ).removeClass( "ui-tabs-active ui-state-active" );
+			toHide.hide();
+			show();
+		}
+
+		toHide.attr( "aria-hidden", "true" );
+		eventData.oldTab.attr({
+			"aria-selected": "false",
+			"aria-expanded": "false"
+		});
+		// If we're switching tabs, remove the old tab from the tab order.
+		// If we're opening from collapsed state, remove the previous tab from the tab order.
+		// If we're collapsing, then keep the collapsing tab in the tab order.
+		if ( toShow.length && toHide.length ) {
+			eventData.oldTab.attr( "tabIndex", -1 );
+		} else if ( toShow.length ) {
+			this.tabs.filter(function() {
+				return $( this ).attr( "tabIndex" ) === 0;
+			})
+			.attr( "tabIndex", -1 );
+		}
+
+		toShow.attr( "aria-hidden", "false" );
+		eventData.newTab.attr({
+			"aria-selected": "true",
+			"aria-expanded": "true",
+			tabIndex: 0
+		});
+	},
+
+	_activate: function( index ) {
+		var anchor,
+			active = this._findActive( index );
+
+		// trying to activate the already active panel
+		if ( active[ 0 ] === this.active[ 0 ] ) {
+			return;
+		}
+
+		// trying to collapse, simulate a click on the current active header
+		if ( !active.length ) {
+			active = this.active;
+		}
+
+		anchor = active.find( ".ui-tabs-anchor" )[ 0 ];
+		this._eventHandler({
+			target: anchor,
+			currentTarget: anchor,
+			preventDefault: $.noop
+		});
+	},
+
+	_findActive: function( index ) {
+		return index === false ? $() : this.tabs.eq( index );
+	},
+
+	_getIndex: function( index ) {
+		// meta-function to give users option to provide a href string instead of a numerical index.
+		if ( typeof index === "string" ) {
+			index = this.anchors.index( this.anchors.filter( "[href$='" + index + "']" ) );
+		}
+
+		return index;
+	},
+
+	_destroy: function() {
+		if ( this.xhr ) {
+			this.xhr.abort();
+		}
+
+		this.element.removeClass( "ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible" );
+
+		this.tablist
+			.removeClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" )
+			.removeAttr( "role" );
+
+		this.anchors
+			.removeClass( "ui-tabs-anchor" )
+			.removeAttr( "role" )
+			.removeAttr( "tabIndex" )
+			.removeUniqueId();
+
+		this.tablist.unbind( this.eventNamespace );
+
+		this.tabs.add( this.panels ).each(function() {
+			if ( $.data( this, "ui-tabs-destroy" ) ) {
+				$( this ).remove();
+			} else {
+				$( this )
+					.removeClass( "ui-state-default ui-state-active ui-state-disabled " +
+						"ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel" )
+					.removeAttr( "tabIndex" )
+					.removeAttr( "aria-live" )
+					.removeAttr( "aria-busy" )
+					.removeAttr( "aria-selected" )
+					.removeAttr( "aria-labelledby" )
+					.removeAttr( "aria-hidden" )
+					.removeAttr( "aria-expanded" )
+					.removeAttr( "role" );
+			}
+		});
+
+		this.tabs.each(function() {
+			var li = $( this ),
+				prev = li.data( "ui-tabs-aria-controls" );
+			if ( prev ) {
+				li
+					.attr( "aria-controls", prev )
+					.removeData( "ui-tabs-aria-controls" );
+			} else {
+				li.removeAttr( "aria-controls" );
+			}
+		});
+
+		this.panels.show();
+
+		if ( this.options.heightStyle !== "content" ) {
+			this.panels.css( "height", "" );
+		}
+	},
+
+	enable: function( index ) {
+		var disabled = this.options.disabled;
+		if ( disabled === false ) {
+			return;
+		}
+
+		if ( index === undefined ) {
+			disabled = false;
+		} else {
+			index = this._getIndex( index );
+			if ( $.isArray( disabled ) ) {
+				disabled = $.map( disabled, function( num ) {
+					return num !== index ? num : null;
+				});
+			} else {
+				disabled = $.map( this.tabs, function( li, num ) {
+					return num !== index ? num : null;
+				});
+			}
+		}
+		this._setupDisabled( disabled );
+	},
+
+	disable: function( index ) {
+		var disabled = this.options.disabled;
+		if ( disabled === true ) {
+			return;
+		}
+
+		if ( index === undefined ) {
+			disabled = true;
+		} else {
+			index = this._getIndex( index );
+			if ( $.inArray( index, disabled ) !== -1 ) {
+				return;
+			}
+			if ( $.isArray( disabled ) ) {
+				disabled = $.merge( [ index ], disabled ).sort();
+			} else {
+				disabled = [ index ];
+			}
+		}
+		this._setupDisabled( disabled );
+	},
+
+	load: function( index, event ) {
+		index = this._getIndex( index );
+		var that = this,
+			tab = this.tabs.eq( index ),
+			anchor = tab.find( ".ui-tabs-anchor" ),
+			panel = this._getPanelForTab( tab ),
+			eventData = {
+				tab: tab,
+				panel: panel
+			},
+			complete = function( jqXHR, status ) {
+				if ( status === "abort" ) {
+					that.panels.stop( false, true );
+				}
+
+				tab.removeClass( "ui-tabs-loading" );
+				panel.removeAttr( "aria-busy" );
+
+				if ( jqXHR === that.xhr ) {
+					delete that.xhr;
+				}
+			};
+
+		// not remote
+		if ( this._isLocal( anchor[ 0 ] ) ) {
+			return;
+		}
+
+		this.xhr = $.ajax( this._ajaxSettings( anchor, event, eventData ) );
+
+		// support: jQuery <1.8
+		// jQuery <1.8 returns false if the request is canceled in beforeSend,
+		// but as of 1.8, $.ajax() always returns a jqXHR object.
+		if ( this.xhr && this.xhr.statusText !== "canceled" ) {
+			tab.addClass( "ui-tabs-loading" );
+			panel.attr( "aria-busy", "true" );
+
+			this.xhr
+				.done(function( response, status, jqXHR ) {
+					// support: jQuery <1.8
+					// http://bugs.jquery.com/ticket/11778
+					setTimeout(function() {
+						panel.html( response );
+						that._trigger( "load", event, eventData );
+
+						complete( jqXHR, status );
+					}, 1 );
+				})
+				.fail(function( jqXHR, status ) {
+					// support: jQuery <1.8
+					// http://bugs.jquery.com/ticket/11778
+					setTimeout(function() {
+						complete( jqXHR, status );
+					}, 1 );
+				});
+		}
+	},
+
+	_ajaxSettings: function( anchor, event, eventData ) {
+		var that = this;
+		return {
+			url: anchor.attr( "href" ),
+			beforeSend: function( jqXHR, settings ) {
+				return that._trigger( "beforeLoad", event,
+					$.extend( { jqXHR: jqXHR, ajaxSettings: settings }, eventData ) );
+			}
+		};
+	},
+
+	_getPanelForTab: function( tab ) {
+		var id = $( tab ).attr( "aria-controls" );
+		return this.element.find( this._sanitizeSelector( "#" + id ) );
+	}
+});
+
+
+/*!
+ * jQuery UI Tooltip 1.11.4
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/tooltip/
+ */
+
+
+var tooltip = $.widget( "ui.tooltip", {
+	version: "1.11.4",
+	options: {
+		content: function() {
+			// support: IE<9, Opera in jQuery <1.7
+			// .text() can't accept undefined, so coerce to a string
+			var title = $( this ).attr( "title" ) || "";
+			// Escape title, since we're going from an attribute to raw HTML
+			return $( "<a>" ).text( title ).html();
+		},
+		hide: true,
+		// Disabled elements have inconsistent behavior across browsers (#8661)
+		items: "[title]:not([disabled])",
+		position: {
+			my: "left top+15",
+			at: "left bottom",
+			collision: "flipfit flip"
+		},
+		show: true,
+		tooltipClass: null,
+		track: false,
+
+		// callbacks
+		close: null,
+		open: null
+	},
+
+	_addDescribedBy: function( elem, id ) {
+		var describedby = (elem.attr( "aria-describedby" ) || "").split( /\s+/ );
+		describedby.push( id );
+		elem
+			.data( "ui-tooltip-id", id )
+			.attr( "aria-describedby", $.trim( describedby.join( " " ) ) );
+	},
+
+	_removeDescribedBy: function( elem ) {
+		var id = elem.data( "ui-tooltip-id" ),
+			describedby = (elem.attr( "aria-describedby" ) || "").split( /\s+/ ),
+			index = $.inArray( id, describedby );
+
+		if ( index !== -1 ) {
+			describedby.splice( index, 1 );
+		}
+
+		elem.removeData( "ui-tooltip-id" );
+		describedby = $.trim( describedby.join( " " ) );
+		if ( describedby ) {
+			elem.attr( "aria-describedby", describedby );
+		} else {
+			elem.removeAttr( "aria-describedby" );
+		}
+	},
+
+	_create: function() {
+		this._on({
+			mouseover: "open",
+			focusin: "open"
+		});
+
+		// IDs of generated tooltips, needed for destroy
+		this.tooltips = {};
+
+		// IDs of parent tooltips where we removed the title attribute
+		this.parents = {};
+
+		if ( this.options.disabled ) {
+			this._disable();
+		}
+
+		// Append the aria-live region so tooltips announce correctly
+		this.liveRegion = $( "<div>" )
+			.attr({
+				role: "log",
+				"aria-live": "assertive",
+				"aria-relevant": "additions"
+			})
+			.addClass( "ui-helper-hidden-accessible" )
+			.appendTo( this.document[ 0 ].body );
+	},
+
+	_setOption: function( key, value ) {
+		var that = this;
+
+		if ( key === "disabled" ) {
+			this[ value ? "_disable" : "_enable" ]();
+			this.options[ key ] = value;
+			// disable element style changes
+			return;
+		}
+
+		this._super( key, value );
+
+		if ( key === "content" ) {
+			$.each( this.tooltips, function( id, tooltipData ) {
+				that._updateContent( tooltipData.element );
+			});
+		}
+	},
+
+	_disable: function() {
+		var that = this;
+
+		// close open tooltips
+		$.each( this.tooltips, function( id, tooltipData ) {
+			var event = $.Event( "blur" );
+			event.target = event.currentTarget = tooltipData.element[ 0 ];
+			that.close( event, true );
+		});
+
+		// remove title attributes to prevent native tooltips
+		this.element.find( this.options.items ).addBack().each(function() {
+			var element = $( this );
+			if ( element.is( "[title]" ) ) {
+				element
+					.data( "ui-tooltip-title", element.attr( "title" ) )
+					.removeAttr( "title" );
+			}
+		});
+	},
+
+	_enable: function() {
+		// restore title attributes
+		this.element.find( this.options.items ).addBack().each(function() {
+			var element = $( this );
+			if ( element.data( "ui-tooltip-title" ) ) {
+				element.attr( "title", element.data( "ui-tooltip-title" ) );
+			}
+		});
+	},
+
+	open: function( event ) {
+		var that = this,
+			target = $( event ? event.target : this.element )
+				// we need closest here due to mouseover bubbling,
+				// but always pointing at the same event target
+				.closest( this.options.items );
+
+		// No element to show a tooltip for or the tooltip is already open
+		if ( !target.length || target.data( "ui-tooltip-id" ) ) {
+			return;
+		}
+
+		if ( target.attr( "title" ) ) {
+			target.data( "ui-tooltip-title", target.attr( "title" ) );
+		}
+
+		target.data( "ui-tooltip-open", true );
+
+		// kill parent tooltips, custom or native, for hover
+		if ( event && event.type === "mouseover" ) {
+			target.parents().each(function() {
+				var parent = $( this ),
+					blurEvent;
+				if ( parent.data( "ui-tooltip-open" ) ) {
+					blurEvent = $.Event( "blur" );
+					blurEvent.target = blurEvent.currentTarget = this;
+					that.close( blurEvent, true );
+				}
+				if ( parent.attr( "title" ) ) {
+					parent.uniqueId();
+					that.parents[ this.id ] = {
+						element: this,
+						title: parent.attr( "title" )
+					};
+					parent.attr( "title", "" );
+				}
+			});
+		}
+
+		this._registerCloseHandlers( event, target );
+		this._updateContent( target, event );
+	},
+
+	_updateContent: function( target, event ) {
+		var content,
+			contentOption = this.options.content,
+			that = this,
+			eventType = event ? event.type : null;
+
+		if ( typeof contentOption === "string" ) {
+			return this._open( event, target, contentOption );
+		}
+
+		content = contentOption.call( target[0], function( response ) {
+
+			// IE may instantly serve a cached response for ajax requests
+			// delay this call to _open so the other call to _open runs first
+			that._delay(function() {
+
+				// Ignore async response if tooltip was closed already
+				if ( !target.data( "ui-tooltip-open" ) ) {
+					return;
+				}
+
+				// jQuery creates a special event for focusin when it doesn't
+				// exist natively. To improve performance, the native event
+				// object is reused and the type is changed. Therefore, we can't
+				// rely on the type being correct after the event finished
+				// bubbling, so we set it back to the previous value. (#8740)
+				if ( event ) {
+					event.type = eventType;
+				}
+				this._open( event, target, response );
+			});
+		});
+		if ( content ) {
+			this._open( event, target, content );
+		}
+	},
+
+	_open: function( event, target, content ) {
+		var tooltipData, tooltip, delayedShow, a11yContent,
+			positionOption = $.extend( {}, this.options.position );
+
+		if ( !content ) {
+			return;
+		}
+
+		// Content can be updated multiple times. If the tooltip already
+		// exists, then just update the content and bail.
+		tooltipData = this._find( target );
+		if ( tooltipData ) {
+			tooltipData.tooltip.find( ".ui-tooltip-content" ).html( content );
+			return;
+		}
+
+		// if we have a title, clear it to prevent the native tooltip
+		// we have to check first to avoid defining a title if none exists
+		// (we don't want to cause an element to start matching [title])
+		//
+		// We use removeAttr only for key events, to allow IE to export the correct
+		// accessible attributes. For mouse events, set to empty string to avoid
+		// native tooltip showing up (happens only when removing inside mouseover).
+		if ( target.is( "[title]" ) ) {
+			if ( event && event.type === "mouseover" ) {
+				target.attr( "title", "" );
+			} else {
+				target.removeAttr( "title" );
+			}
+		}
+
+		tooltipData = this._tooltip( target );
+		tooltip = tooltipData.tooltip;
+		this._addDescribedBy( target, tooltip.attr( "id" ) );
+		tooltip.find( ".ui-tooltip-content" ).html( content );
+
+		// Support: Voiceover on OS X, JAWS on IE <= 9
+		// JAWS announces deletions even when aria-relevant="additions"
+		// Voiceover will sometimes re-read the entire log region's contents from the beginning
+		this.liveRegion.children().hide();
+		if ( content.clone ) {
+			a11yContent = content.clone();
+			a11yContent.removeAttr( "id" ).find( "[id]" ).removeAttr( "id" );
+		} else {
+			a11yContent = content;
+		}
+		$( "<div>" ).html( a11yContent ).appendTo( this.liveRegion );
+
+		function position( event ) {
+			positionOption.of = event;
+			if ( tooltip.is( ":hidden" ) ) {
+				return;
+			}
+			tooltip.position( positionOption );
+		}
+		if ( this.options.track && event && /^mouse/.test( event.type ) ) {
+			this._on( this.document, {
+				mousemove: position
+			});
+			// trigger once to override element-relative positioning
+			position( event );
+		} else {
+			tooltip.position( $.extend({
+				of: target
+			}, this.options.position ) );
+		}
+
+		tooltip.hide();
+
+		this._show( tooltip, this.options.show );
+		// Handle tracking tooltips that are shown with a delay (#8644). As soon
+		// as the tooltip is visible, position the tooltip using the most recent
+		// event.
+		if ( this.options.show && this.options.show.delay ) {
+			delayedShow = this.delayedShow = setInterval(function() {
+				if ( tooltip.is( ":visible" ) ) {
+					position( positionOption.of );
+					clearInterval( delayedShow );
+				}
+			}, $.fx.interval );
+		}
+
+		this._trigger( "open", event, { tooltip: tooltip } );
+	},
+
+	_registerCloseHandlers: function( event, target ) {
+		var events = {
+			keyup: function( event ) {
+				if ( event.keyCode === $.ui.keyCode.ESCAPE ) {
+					var fakeEvent = $.Event(event);
+					fakeEvent.currentTarget = target[0];
+					this.close( fakeEvent, true );
+				}
+			}
+		};
+
+		// Only bind remove handler for delegated targets. Non-delegated
+		// tooltips will handle this in destroy.
+		if ( target[ 0 ] !== this.element[ 0 ] ) {
+			events.remove = function() {
+				this._removeTooltip( this._find( target ).tooltip );
+			};
+		}
+
+		if ( !event || event.type === "mouseover" ) {
+			events.mouseleave = "close";
+		}
+		if ( !event || event.type === "focusin" ) {
+			events.focusout = "close";
+		}
+		this._on( true, target, events );
+	},
+
+	close: function( event ) {
+		var tooltip,
+			that = this,
+			target = $( event ? event.currentTarget : this.element ),
+			tooltipData = this._find( target );
+
+		// The tooltip may already be closed
+		if ( !tooltipData ) {
+
+			// We set ui-tooltip-open immediately upon open (in open()), but only set the
+			// additional data once there's actually content to show (in _open()). So even if the
+			// tooltip doesn't have full data, we always remove ui-tooltip-open in case we're in
+			// the period between open() and _open().
+			target.removeData( "ui-tooltip-open" );
+			return;
+		}
+
+		tooltip = tooltipData.tooltip;
+
+		// disabling closes the tooltip, so we need to track when we're closing
+		// to avoid an infinite loop in case the tooltip becomes disabled on close
+		if ( tooltipData.closing ) {
+			return;
+		}
+
+		// Clear the interval for delayed tracking tooltips
+		clearInterval( this.delayedShow );
+
+		// only set title if we had one before (see comment in _open())
+		// If the title attribute has changed since open(), don't restore
+		if ( target.data( "ui-tooltip-title" ) && !target.attr( "title" ) ) {
+			target.attr( "title", target.data( "ui-tooltip-title" ) );
+		}
+
+		this._removeDescribedBy( target );
+
+		tooltipData.hiding = true;
+		tooltip.stop( true );
+		this._hide( tooltip, this.options.hide, function() {
+			that._removeTooltip( $( this ) );
+		});
+
+		target.removeData( "ui-tooltip-open" );
+		this._off( target, "mouseleave focusout keyup" );
+
+		// Remove 'remove' binding only on delegated targets
+		if ( target[ 0 ] !== this.element[ 0 ] ) {
+			this._off( target, "remove" );
+		}
+		this._off( this.document, "mousemove" );
+
+		if ( event && event.type === "mouseleave" ) {
+			$.each( this.parents, function( id, parent ) {
+				$( parent.element ).attr( "title", parent.title );
+				delete that.parents[ id ];
+			});
+		}
+
+		tooltipData.closing = true;
+		this._trigger( "close", event, { tooltip: tooltip } );
+		if ( !tooltipData.hiding ) {
+			tooltipData.closing = false;
+		}
+	},
+
+	_tooltip: function( element ) {
+		var tooltip = $( "<div>" )
+				.attr( "role", "tooltip" )
+				.addClass( "ui-tooltip ui-widget ui-corner-all ui-widget-content " +
+					( this.options.tooltipClass || "" ) ),
+			id = tooltip.uniqueId().attr( "id" );
+
+		$( "<div>" )
+			.addClass( "ui-tooltip-content" )
+			.appendTo( tooltip );
+
+		tooltip.appendTo( this.document[0].body );
+
+		return this.tooltips[ id ] = {
+			element: element,
+			tooltip: tooltip
+		};
+	},
+
+	_find: function( target ) {
+		var id = target.data( "ui-tooltip-id" );
+		return id ? this.tooltips[ id ] : null;
+	},
+
+	_removeTooltip: function( tooltip ) {
+		tooltip.remove();
+		delete this.tooltips[ tooltip.attr( "id" ) ];
+	},
+
+	_destroy: function() {
+		var that = this;
+
+		// close open tooltips
+		$.each( this.tooltips, function( id, tooltipData ) {
+			// Delegate to close method to handle common cleanup
+			var event = $.Event( "blur" ),
+				element = tooltipData.element;
+			event.target = event.currentTarget = element[ 0 ];
+			that.close( event, true );
+
+			// Remove immediately; destroying an open tooltip doesn't use the
+			// hide animation
+			$( "#" + id ).remove();
+
+			// Restore the title
+			if ( element.data( "ui-tooltip-title" ) ) {
+				// If the title attribute has changed since open(), don't restore
+				if ( !element.attr( "title" ) ) {
+					element.attr( "title", element.data( "ui-tooltip-title" ) );
+				}
+				element.removeData( "ui-tooltip-title" );
+			}
+		});
+		this.liveRegion.remove();
+	}
+});
+
+
+
+}));
\ No newline at end of file
diff --git a/ui/new-ui-samples/js/vendor/jquery.js b/ui/new-ui-samples/js/vendor/jquery.js
new file mode 100644
index 0000000..eed1777
--- /dev/null
+++ b/ui/new-ui-samples/js/vendor/jquery.js
@@ -0,0 +1,9210 @@
+/*!
+ * jQuery JavaScript Library v2.1.4
+ * http://jquery.com/
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ *
+ * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2015-04-28T16:01Z
+ */
+
+(function( global, factory ) {
+
+	if ( typeof module === "object" && typeof module.exports === "object" ) {
+		// For CommonJS and CommonJS-like environments where a proper `window`
+		// is present, execute the factory and get jQuery.
+		// For environments that do not have a `window` with a `document`
+		// (such as Node.js), expose a factory as module.exports.
+		// This accentuates the need for the creation of a real `window`.
+		// e.g. var jQuery = require("jquery")(window);
+		// See ticket #14549 for more info.
+		module.exports = global.document ?
+			factory( global, true ) :
+			function( w ) {
+				if ( !w.document ) {
+					throw new Error( "jQuery requires a window with a document" );
+				}
+				return factory( w );
+			};
+	} else {
+		factory( global );
+	}
+
+// Pass this if window is not defined yet
+}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
+
+// Support: Firefox 18+
+// Can't be in strict mode, several libs including ASP.NET trace
+// the stack via arguments.caller.callee and Firefox dies if
+// you try to trace through "use strict" call chains. (#13335)
+//
+
+var arr = [];
+
+var slice = arr.slice;
+
+var concat = arr.concat;
+
+var push = arr.push;
+
+var indexOf = arr.indexOf;
+
+var class2type = {};
+
+var toString = class2type.toString;
+
+var hasOwn = class2type.hasOwnProperty;
+
+var support = {};
+
+
+
+var
+	// Use the correct document accordingly with window argument (sandbox)
+	document = window.document,
+
+	version = "2.1.4",
+
+	// Define a local copy of jQuery
+	jQuery = function( selector, context ) {
+		// The jQuery object is actually just the init constructor 'enhanced'
+		// Need init if jQuery is called (just allow error to be thrown if not included)
+		return new jQuery.fn.init( selector, context );
+	},
+
+	// Support: Android<4.1
+	// Make sure we trim BOM and NBSP
+	rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
+
+	// Matches dashed string for camelizing
+	rmsPrefix = /^-ms-/,
+	rdashAlpha = /-([\da-z])/gi,
+
+	// Used by jQuery.camelCase as callback to replace()
+	fcamelCase = function( all, letter ) {
+		return letter.toUpperCase();
+	};
+
+jQuery.fn = jQuery.prototype = {
+	// The current version of jQuery being used
+	jquery: version,
+
+	constructor: jQuery,
+
+	// Start with an empty selector
+	selector: "",
+
+	// The default length of a jQuery object is 0
+	length: 0,
+
+	toArray: function() {
+		return slice.call( this );
+	},
+
+	// Get the Nth element in the matched element set OR
+	// Get the whole matched element set as a clean array
+	get: function( num ) {
+		return num != null ?
+
+			// Return just the one element from the set
+			( num < 0 ? this[ num + this.length ] : this[ num ] ) :
+
+			// Return all the elements in a clean array
+			slice.call( this );
+	},
+
+	// Take an array of elements and push it onto the stack
+	// (returning the new matched element set)
+	pushStack: function( elems ) {
+
+		// Build a new jQuery matched element set
+		var ret = jQuery.merge( this.constructor(), elems );
+
+		// Add the old object onto the stack (as a reference)
+		ret.prevObject = this;
+		ret.context = this.context;
+
+		// Return the newly-formed element set
+		return ret;
+	},
+
+	// Execute a callback for every element in the matched set.
+	// (You can seed the arguments with an array of args, but this is
+	// only used internally.)
+	each: function( callback, args ) {
+		return jQuery.each( this, callback, args );
+	},
+
+	map: function( callback ) {
+		return this.pushStack( jQuery.map(this, function( elem, i ) {
+			return callback.call( elem, i, elem );
+		}));
+	},
+
+	slice: function() {
+		return this.pushStack( slice.apply( this, arguments ) );
+	},
+
+	first: function() {
+		return this.eq( 0 );
+	},
+
+	last: function() {
+		return this.eq( -1 );
+	},
+
+	eq: function( i ) {
+		var len = this.length,
+			j = +i + ( i < 0 ? len : 0 );
+		return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );
+	},
+
+	end: function() {
+		return this.prevObject || this.constructor(null);
+	},
+
+	// For internal use only.
+	// Behaves like an Array's method, not like a jQuery method.
+	push: push,
+	sort: arr.sort,
+	splice: arr.splice
+};
+
+jQuery.extend = jQuery.fn.extend = function() {
+	var options, name, src, copy, copyIsArray, clone,
+		target = arguments[0] || {},
+		i = 1,
+		length = arguments.length,
+		deep = false;
+
+	// Handle a deep copy situation
+	if ( typeof target === "boolean" ) {
+		deep = target;
+
+		// Skip the boolean and the target
+		target = arguments[ i ] || {};
+		i++;
+	}
+
+	// Handle case when target is a string or something (possible in deep copy)
+	if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
+		target = {};
+	}
+
+	// Extend jQuery itself if only one argument is passed
+	if ( i === length ) {
+		target = this;
+		i--;
+	}
+
+	for ( ; i < length; i++ ) {
+		// Only deal with non-null/undefined values
+		if ( (options = arguments[ i ]) != null ) {
+			// Extend the base object
+			for ( name in options ) {
+				src = target[ name ];
+				copy = options[ name ];
+
+				// Prevent never-ending loop
+				if ( target === copy ) {
+					continue;
+				}
+
+				// Recurse if we're merging plain objects or arrays
+				if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
+					if ( copyIsArray ) {
+						copyIsArray = false;
+						clone = src && jQuery.isArray(src) ? src : [];
+
+					} else {
+						clone = src && jQuery.isPlainObject(src) ? src : {};
+					}
+
+					// Never move original objects, clone them
+					target[ name ] = jQuery.extend( deep, clone, copy );
+
+				// Don't bring in undefined values
+				} else if ( copy !== undefined ) {
+					target[ name ] = copy;
+				}
+			}
+		}
+	}
+
+	// Return the modified object
+	return target;
+};
+
+jQuery.extend({
+	// Unique for each copy of jQuery on the page
+	expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
+
+	// Assume jQuery is ready without the ready module
+	isReady: true,
+
+	error: function( msg ) {
+		throw new Error( msg );
+	},
+
+	noop: function() {},
+
+	isFunction: function( obj ) {
+		return jQuery.type(obj) === "function";
+	},
+
+	isArray: Array.isArray,
+
+	isWindow: function( obj ) {
+		return obj != null && obj === obj.window;
+	},
+
+	isNumeric: function( obj ) {
+		// parseFloat NaNs numeric-cast false positives (null|true|false|"")
+		// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+		// subtraction forces infinities to NaN
+		// adding 1 corrects loss of precision from parseFloat (#15100)
+		return !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0;
+	},
+
+	isPlainObject: function( obj ) {
+		// Not plain objects:
+		// - Any object or value whose internal [[Class]] property is not "[object Object]"
+		// - DOM nodes
+		// - window
+		if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
+			return false;
+		}
+
+		if ( obj.constructor &&
+				!hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) {
+			return false;
+		}
+
+		// If the function hasn't returned already, we're confident that
+		// |obj| is a plain object, created by {} or constructed with new Object
+		return true;
+	},
+
+	isEmptyObject: function( obj ) {
+		var name;
+		for ( name in obj ) {
+			return false;
+		}
+		return true;
+	},
+
+	type: function( obj ) {
+		if ( obj == null ) {
+			return obj + "";
+		}
+		// Support: Android<4.0, iOS<6 (functionish RegExp)
+		return typeof obj === "object" || typeof obj === "function" ?
+			class2type[ toString.call(obj) ] || "object" :
+			typeof obj;
+	},
+
+	// Evaluates a script in a global context
+	globalEval: function( code ) {
+		var script,
+			indirect = eval;
+
+		code = jQuery.trim( code );
+
+		if ( code ) {
+			// If the code includes a valid, prologue position
+			// strict mode pragma, execute code by injecting a
+			// script tag into the document.
+			if ( code.indexOf("use strict") === 1 ) {
+				script = document.createElement("script");
+				script.text = code;
+				document.head.appendChild( script ).parentNode.removeChild( script );
+			} else {
+			// Otherwise, avoid the DOM node creation, insertion
+			// and removal by using an indirect global eval
+				indirect( code );
+			}
+		}
+	},
+
+	// Convert dashed to camelCase; used by the css and data modules
+	// Support: IE9-11+
+	// Microsoft forgot to hump their vendor prefix (#9572)
+	camelCase: function( string ) {
+		return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+	},
+
+	nodeName: function( elem, name ) {
+		return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+	},
+
+	// args is for internal usage only
+	each: function( obj, callback, args ) {
+		var value,
+			i = 0,
+			length = obj.length,
+			isArray = isArraylike( obj );
+
+		if ( args ) {
+			if ( isArray ) {
+				for ( ; i < length; i++ ) {
+					value = callback.apply( obj[ i ], args );
+
+					if ( value === false ) {
+						break;
+					}
+				}
+			} else {
+				for ( i in obj ) {
+					value = callback.apply( obj[ i ], args );
+
+					if ( value === false ) {
+						break;
+					}
+				}
+			}
+
+		// A special, fast, case for the most common use of each
+		} else {
+			if ( isArray ) {
+				for ( ; i < length; i++ ) {
+					value = callback.call( obj[ i ], i, obj[ i ] );
+
+					if ( value === false ) {
+						break;
+					}
+				}
+			} else {
+				for ( i in obj ) {
+					value = callback.call( obj[ i ], i, obj[ i ] );
+
+					if ( value === false ) {
+						break;
+					}
+				}
+			}
+		}
+
+		return obj;
+	},
+
+	// Support: Android<4.1
+	trim: function( text ) {
+		return text == null ?
+			"" :
+			( text + "" ).replace( rtrim, "" );
+	},
+
+	// results is for internal usage only
+	makeArray: function( arr, results ) {
+		var ret = results || [];
+
+		if ( arr != null ) {
+			if ( isArraylike( Object(arr) ) ) {
+				jQuery.merge( ret,
+					typeof arr === "string" ?
+					[ arr ] : arr
+				);
+			} else {
+				push.call( ret, arr );
+			}
+		}
+
+		return ret;
+	},
+
+	inArray: function( elem, arr, i ) {
+		return arr == null ? -1 : indexOf.call( arr, elem, i );
+	},
+
+	merge: function( first, second ) {
+		var len = +second.length,
+			j = 0,
+			i = first.length;
+
+		for ( ; j < len; j++ ) {
+			first[ i++ ] = second[ j ];
+		}
+
+		first.length = i;
+
+		return first;
+	},
+
+	grep: function( elems, callback, invert ) {
+		var callbackInverse,
+			matches = [],
+			i = 0,
+			length = elems.length,
+			callbackExpect = !invert;
+
+		// Go through the array, only saving the items
+		// that pass the validator function
+		for ( ; i < length; i++ ) {
+			callbackInverse = !callback( elems[ i ], i );
+			if ( callbackInverse !== callbackExpect ) {
+				matches.push( elems[ i ] );
+			}
+		}
+
+		return matches;
+	},
+
+	// arg is for internal usage only
+	map: function( elems, callback, arg ) {
+		var value,
+			i = 0,
+			length = elems.length,
+			isArray = isArraylike( elems ),
+			ret = [];
+
+		// Go through the array, translating each of the items to their new values
+		if ( isArray ) {
+			for ( ; i < length; i++ ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret.push( value );
+				}
+			}
+
+		// Go through every key on the object,
+		} else {
+			for ( i in elems ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret.push( value );
+				}
+			}
+		}
+
+		// Flatten any nested arrays
+		return concat.apply( [], ret );
+	},
+
+	// A global GUID counter for objects
+	guid: 1,
+
+	// Bind a function to a context, optionally partially applying any
+	// arguments.
+	proxy: function( fn, context ) {
+		var tmp, args, proxy;
+
+		if ( typeof context === "string" ) {
+			tmp = fn[ context ];
+			context = fn;
+			fn = tmp;
+		}
+
+		// Quick check to determine if target is callable, in the spec
+		// this throws a TypeError, but we will just return undefined.
+		if ( !jQuery.isFunction( fn ) ) {
+			return undefined;
+		}
+
+		// Simulated bind
+		args = slice.call( arguments, 2 );
+		proxy = function() {
+			return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+		};
+
+		// Set the guid of unique handler to the same of original handler, so it can be removed
+		proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+		return proxy;
+	},
+
+	now: Date.now,
+
+	// jQuery.support is not used in Core but other projects attach their
+	// properties to it so it needs to exist.
+	support: support
+});
+
+// Populate the class2type map
+jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) {
+	class2type[ "[object " + name + "]" ] = name.toLowerCase();
+});
+
+function isArraylike( obj ) {
+
+	// Support: iOS 8.2 (not reproducible in simulator)
+	// `in` check used to prevent JIT error (gh-2145)
+	// hasOwn isn't used here due to false negatives
+	// regarding Nodelist length in IE
+	var length = "length" in obj && obj.length,
+		type = jQuery.type( obj );
+
+	if ( type === "function" || jQuery.isWindow( obj ) ) {
+		return false;
+	}
+
+	if ( obj.nodeType === 1 && length ) {
+		return true;
+	}
+
+	return type === "array" || length === 0 ||
+		typeof length === "number" && length > 0 && ( length - 1 ) in obj;
+}
+var Sizzle =
+/*!
+ * Sizzle CSS Selector Engine v2.2.0-pre
+ * http://sizzlejs.com/
+ *
+ * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2014-12-16
+ */
+(function( window ) {
+
+var i,
+	support,
+	Expr,
+	getText,
+	isXML,
+	tokenize,
+	compile,
+	select,
+	outermostContext,
+	sortInput,
+	hasDuplicate,
+
+	// Local document vars
+	setDocument,
+	document,
+	docElem,
+	documentIsHTML,
+	rbuggyQSA,
+	rbuggyMatches,
+	matches,
+	contains,
+
+	// Instance-specific data
+	expando = "sizzle" + 1 * new Date(),
+	preferredDoc = window.document,
+	dirruns = 0,
+	done = 0,
+	classCache = createCache(),
+	tokenCache = createCache(),
+	compilerCache = createCache(),
+	sortOrder = function( a, b ) {
+		if ( a === b ) {
+			hasDuplicate = true;
+		}
+		return 0;
+	},
+
+	// General-purpose constants
+	MAX_NEGATIVE = 1 << 31,
+
+	// Instance methods
+	hasOwn = ({}).hasOwnProperty,
+	arr = [],
+	pop = arr.pop,
+	push_native = arr.push,
+	push = arr.push,
+	slice = arr.slice,
+	// Use a stripped-down indexOf as it's faster than native
+	// http://jsperf.com/thor-indexof-vs-for/5
+	indexOf = function( list, elem ) {
+		var i = 0,
+			len = list.length;
+		for ( ; i < len; i++ ) {
+			if ( list[i] === elem ) {
+				return i;
+			}
+		}
+		return -1;
+	},
+
+	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+
+	// Regular expressions
+
+	// Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace
+	whitespace = "[\\x20\\t\\r\\n\\f]",
+	// http://www.w3.org/TR/css3-syntax/#characters
+	characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
+
+	// Loosely modeled on CSS identifier characters
+	// An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors
+	// Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
+	identifier = characterEncoding.replace( "w", "w#" ),
+
+	// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
+	attributes = "\\[" + whitespace + "*(" + characterEncoding + ")(?:" + whitespace +
+		// Operator (capture 2)
+		"*([*^$|!~]?=)" + whitespace +
+		// "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
+		"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
+		"*\\]",
+
+	pseudos = ":(" + characterEncoding + ")(?:\\((" +
+		// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
+		// 1. quoted (capture 3; capture 4 or capture 5)
+		"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
+		// 2. simple (capture 6)
+		"((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
+		// 3. anything else (capture 2)
+		".*" +
+		")\\)|)",
+
+	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
+	rwhitespace = new RegExp( whitespace + "+", "g" ),
+	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+
+	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
+	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+
+	rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
+
+	rpseudo = new RegExp( pseudos ),
+	ridentifier = new RegExp( "^" + identifier + "$" ),
+
+	matchExpr = {
+		"ID": new RegExp( "^#(" + characterEncoding + ")" ),
+		"CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ),
+		"TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ),
+		"ATTR": new RegExp( "^" + attributes ),
+		"PSEUDO": new RegExp( "^" + pseudos ),
+		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
+			"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
+			"*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+		"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+		// For use in libraries implementing .is()
+		// We use this for POS matching in `select`
+		"needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+			whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+	},
+
+	rinputs = /^(?:input|select|textarea|button)$/i,
+	rheader = /^h\d$/i,
+
+	rnative = /^[^{]+\{\s*\[native \w/,
+
+	// Easily-parseable/retrievable ID or TAG or CLASS selectors
+	rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+
+	rsibling = /[+~]/,
+	rescape = /'|\\/g,
+
+	// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
+	runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
+	funescape = function( _, escaped, escapedWhitespace ) {
+		var high = "0x" + escaped - 0x10000;
+		// NaN means non-codepoint
+		// Support: Firefox<24
+		// Workaround erroneous numeric interpretation of +"0x"
+		return high !== high || escapedWhitespace ?
+			escaped :
+			high < 0 ?
+				// BMP codepoint
+				String.fromCharCode( high + 0x10000 ) :
+				// Supplemental Plane codepoint (surrogate pair)
+				String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
+	},
+
+	// Used for iframes
+	// See setDocument()
+	// Removing the function wrapper causes a "Permission Denied"
+	// error in IE
+	unloadHandler = function() {
+		setDocument();
+	};
+
+// Optimize for push.apply( _, NodeList )
+try {
+	push.apply(
+		(arr = slice.call( preferredDoc.childNodes )),
+		preferredDoc.childNodes
+	);
+	// Support: Android<4.0
+	// Detect silently failing push.apply
+	arr[ preferredDoc.childNodes.length ].nodeType;
+} catch ( e ) {
+	push = { apply: arr.length ?
+
+		// Leverage slice if possible
+		function( target, els ) {
+			push_native.apply( target, slice.call(els) );
+		} :
+
+		// Support: IE<9
+		// Otherwise append directly
+		function( target, els ) {
+			var j = target.length,
+				i = 0;
+			// Can't trust NodeList.length
+			while ( (target[j++] = els[i++]) ) {}
+			target.length = j - 1;
+		}
+	};
+}
+
+function Sizzle( selector, context, results, seed ) {
+	var match, elem, m, nodeType,
+		// QSA vars
+		i, groups, old, nid, newContext, newSelector;
+
+	if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
+		setDocument( context );
+	}
+
+	context = context || document;
+	results = results || [];
+	nodeType = context.nodeType;
+
+	if ( typeof selector !== "string" || !selector ||
+		nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
+
+		return results;
+	}
+
+	if ( !seed && documentIsHTML ) {
+
+		// Try to shortcut find operations when possible (e.g., not under DocumentFragment)
+		if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
+			// Speed-up: Sizzle("#ID")
+			if ( (m = match[1]) ) {
+				if ( nodeType === 9 ) {
+					elem = context.getElementById( m );
+					// Check parentNode to catch when Blackberry 4.6 returns
+					// nodes that are no longer in the document (jQuery #6963)
+					if ( elem && elem.parentNode ) {
+						// Handle the case where IE, Opera, and Webkit return items
+						// by name instead of ID
+						if ( elem.id === m ) {
+							results.push( elem );
+							return results;
+						}
+					} else {
+						return results;
+					}
+				} else {
+					// Context is not a document
+					if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&
+						contains( context, elem ) && elem.id === m ) {
+						results.push( elem );
+						return results;
+					}
+				}
+
+			// Speed-up: Sizzle("TAG")
+			} else if ( match[2] ) {
+				push.apply( results, context.getElementsByTagName( selector ) );
+				return results;
+
+			// Speed-up: Sizzle(".CLASS")
+			} else if ( (m = match[3]) && support.getElementsByClassName ) {
+				push.apply( results, context.getElementsByClassName( m ) );
+				return results;
+			}
+		}
+
+		// QSA path
+		if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
+			nid = old = expando;
+			newContext = context;
+			newSelector = nodeType !== 1 && selector;
+
+			// qSA works strangely on Element-rooted queries
+			// We can work around this by specifying an extra ID on the root
+			// and working up from there (Thanks to Andrew Dupont for the technique)
+			// IE 8 doesn't work on object elements
+			if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
+				groups = tokenize( selector );
+
+				if ( (old = context.getAttribute("id")) ) {
+					nid = old.replace( rescape, "\\$&" );
+				} else {
+					context.setAttribute( "id", nid );
+				}
+				nid = "[id='" + nid + "'] ";
+
+				i = groups.length;
+				while ( i-- ) {
+					groups[i] = nid + toSelector( groups[i] );
+				}
+				newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context;
+				newSelector = groups.join(",");
+			}
+
+			if ( newSelector ) {
+				try {
+					push.apply( results,
+						newContext.querySelectorAll( newSelector )
+					);
+					return results;
+				} catch(qsaError) {
+				} finally {
+					if ( !old ) {
+						context.removeAttribute("id");
+					}
+				}
+			}
+		}
+	}
+
+	// All others
+	return select( selector.replace( rtrim, "$1" ), context, results, seed );
+}
+
+/**
+ * Create key-value caches of limited size
+ * @returns {Function(string, Object)} Returns the Object data after storing it on itself with
+ *	property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
+ *	deleting the oldest entry
+ */
+function createCache() {
+	var keys = [];
+
+	function cache( key, value ) {
+		// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
+		if ( keys.push( key + " " ) > Expr.cacheLength ) {
+			// Only keep the most recent entries
+			delete cache[ keys.shift() ];
+		}
+		return (cache[ key + " " ] = value);
+	}
+	return cache;
+}
+
+/**
+ * Mark a function for special use by Sizzle
+ * @param {Function} fn The function to mark
+ */
+function markFunction( fn ) {
+	fn[ expando ] = true;
+	return fn;
+}
+
+/**
+ * Support testing using an element
+ * @param {Function} fn Passed the created div and expects a boolean result
+ */
+function assert( fn ) {
+	var div = document.createElement("div");
+
+	try {
+		return !!fn( div );
+	} catch (e) {
+		return false;
+	} finally {
+		// Remove from its parent by default
+		if ( div.parentNode ) {
+			div.parentNode.removeChild( div );
+		}
+		// release memory in IE
+		div = null;
+	}
+}
+
+/**
+ * Adds the same handler for all of the specified attrs
+ * @param {String} attrs Pipe-separated list of attributes
+ * @param {Function} handler The method that will be applied
+ */
+function addHandle( attrs, handler ) {
+	var arr = attrs.split("|"),
+		i = attrs.length;
+
+	while ( i-- ) {
+		Expr.attrHandle[ arr[i] ] = handler;
+	}
+}
+
+/**
+ * Checks document order of two siblings
+ * @param {Element} a
+ * @param {Element} b
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
+ */
+function siblingCheck( a, b ) {
+	var cur = b && a,
+		diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
+			( ~b.sourceIndex || MAX_NEGATIVE ) -
+			( ~a.sourceIndex || MAX_NEGATIVE );
+
+	// Use IE sourceIndex if available on both nodes
+	if ( diff ) {
+		return diff;
+	}
+
+	// Check if b follows a
+	if ( cur ) {
+		while ( (cur = cur.nextSibling) ) {
+			if ( cur === b ) {
+				return -1;
+			}
+		}
+	}
+
+	return a ? 1 : -1;
+}
+
+/**
+ * Returns a function to use in pseudos for input types
+ * @param {String} type
+ */
+function createInputPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return name === "input" && elem.type === type;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for buttons
+ * @param {String} type
+ */
+function createButtonPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return (name === "input" || name === "button") && elem.type === type;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for positionals
+ * @param {Function} fn
+ */
+function createPositionalPseudo( fn ) {
+	return markFunction(function( argument ) {
+		argument = +argument;
+		return markFunction(function( seed, matches ) {
+			var j,
+				matchIndexes = fn( [], seed.length, argument ),
+				i = matchIndexes.length;
+
+			// Match elements found at the specified indexes
+			while ( i-- ) {
+				if ( seed[ (j = matchIndexes[i]) ] ) {
+					seed[j] = !(matches[j] = seed[j]);
+				}
+			}
+		});
+	});
+}
+
+/**
+ * Checks a node for validity as a Sizzle context
+ * @param {Element|Object=} context
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
+ */
+function testContext( context ) {
+	return context && typeof context.getElementsByTagName !== "undefined" && context;
+}
+
+// Expose support vars for convenience
+support = Sizzle.support = {};
+
+/**
+ * Detects XML nodes
+ * @param {Element|Object} elem An element or a document
+ * @returns {Boolean} True iff elem is a non-HTML XML node
+ */
+isXML = Sizzle.isXML = function( elem ) {
+	// documentElement is verified for cases where it doesn't yet exist
+	// (such as loading iframes in IE - #4833)
+	var documentElement = elem && (elem.ownerDocument || elem).documentElement;
+	return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+/**
+ * Sets document-related variables once based on the current document
+ * @param {Element|Object} [doc] An element or document object to use to set the document
+ * @returns {Object} Returns the current document
+ */
+setDocument = Sizzle.setDocument = function( node ) {
+	var hasCompare, parent,
+		doc = node ? node.ownerDocument || node : preferredDoc;
+
+	// If no document and documentElement is available, return
+	if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+		return document;
+	}
+
+	// Set our document
+	document = doc;
+	docElem = doc.documentElement;
+	parent = doc.defaultView;
+
+	// Support: IE>8
+	// If iframe document is assigned to "document" variable and if iframe has been reloaded,
+	// IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936
+	// IE6-8 do not support the defaultView property so parent will be undefined
+	if ( parent && parent !== parent.top ) {
+		// IE11 does not have attachEvent, so all must suffer
+		if ( parent.addEventListener ) {
+			parent.addEventListener( "unload", unloadHandler, false );
+		} else if ( parent.attachEvent ) {
+			parent.attachEvent( "onunload", unloadHandler );
+		}
+	}
+
+	/* Support tests
+	---------------------------------------------------------------------- */
+	documentIsHTML = !isXML( doc );
+
+	/* Attributes
+	---------------------------------------------------------------------- */
+
+	// Support: IE<8
+	// Verify that getAttribute really returns attributes and not properties
+	// (excepting IE8 booleans)
+	support.attributes = assert(function( div ) {
+		div.className = "i";
+		return !div.getAttribute("className");
+	});
+
+	/* getElement(s)By*
+	---------------------------------------------------------------------- */
+
+	// Check if getElementsByTagName("*") returns only elements
+	support.getElementsByTagName = assert(function( div ) {
+		div.appendChild( doc.createComment("") );
+		return !div.getElementsByTagName("*").length;
+	});
+
+	// Support: IE<9
+	support.getElementsByClassName = rnative.test( doc.getElementsByClassName );
+
+	// Support: IE<10
+	// Check if getElementById returns elements by name
+	// The broken getElementById methods don't pick up programatically-set names,
+	// so use a roundabout getElementsByName test
+	support.getById = assert(function( div ) {
+		docElem.appendChild( div ).id = expando;
+		return !doc.getElementsByName || !doc.getElementsByName( expando ).length;
+	});
+
+	// ID find and filter
+	if ( support.getById ) {
+		Expr.find["ID"] = function( id, context ) {
+			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+				var m = context.getElementById( id );
+				// Check parentNode to catch when Blackberry 4.6 returns
+				// nodes that are no longer in the document #6963
+				return m && m.parentNode ? [ m ] : [];
+			}
+		};
+		Expr.filter["ID"] = function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				return elem.getAttribute("id") === attrId;
+			};
+		};
+	} else {
+		// Support: IE6/7
+		// getElementById is not reliable as a find shortcut
+		delete Expr.find["ID"];
+
+		Expr.filter["ID"] =  function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
+				return node && node.value === attrId;
+			};
+		};
+	}
+
+	// Tag
+	Expr.find["TAG"] = support.getElementsByTagName ?
+		function( tag, context ) {
+			if ( typeof context.getElementsByTagName !== "undefined" ) {
+				return context.getElementsByTagName( tag );
+
+			// DocumentFragment nodes don't have gEBTN
+			} else if ( support.qsa ) {
+				return context.querySelectorAll( tag );
+			}
+		} :
+
+		function( tag, context ) {
+			var elem,
+				tmp = [],
+				i = 0,
+				// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
+				results = context.getElementsByTagName( tag );
+
+			// Filter out possible comments
+			if ( tag === "*" ) {
+				while ( (elem = results[i++]) ) {
+					if ( elem.nodeType === 1 ) {
+						tmp.push( elem );
+					}
+				}
+
+				return tmp;
+			}
+			return results;
+		};
+
+	// Class
+	Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
+		if ( documentIsHTML ) {
+			return context.getElementsByClassName( className );
+		}
+	};
+
+	/* QSA/matchesSelector
+	---------------------------------------------------------------------- */
+
+	// QSA and matchesSelector support
+
+	// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
+	rbuggyMatches = [];
+
+	// qSa(:focus) reports false when true (Chrome 21)
+	// We allow this because of a bug in IE8/9 that throws an error
+	// whenever `document.activeElement` is accessed on an iframe
+	// So, we allow :focus to pass through QSA all the time to avoid the IE error
+	// See http://bugs.jquery.com/ticket/13378
+	rbuggyQSA = [];
+
+	if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {
+		// Build QSA regex
+		// Regex strategy adopted from Diego Perini
+		assert(function( div ) {
+			// Select is set to empty string on purpose
+			// This is to test IE's treatment of not explicitly
+			// setting a boolean content attribute,
+			// since its presence should be enough
+			// http://bugs.jquery.com/ticket/12359
+			docElem.appendChild( div ).innerHTML = "<a id='" + expando + "'></a>" +
+				"<select id='" + expando + "-\f]' msallowcapture=''>" +
+				"<option selected=''></option></select>";
+
+			// Support: IE8, Opera 11-12.16
+			// Nothing should be selected when empty strings follow ^= or $= or *=
+			// The test attribute must be unknown in Opera but "safe" for WinRT
+			// http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
+			if ( div.querySelectorAll("[msallowcapture^='']").length ) {
+				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
+			}
+
+			// Support: IE8
+			// Boolean attributes and "value" are not treated correctly
+			if ( !div.querySelectorAll("[selected]").length ) {
+				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
+			}
+
+			// Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+
+			if ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
+				rbuggyQSA.push("~=");
+			}
+
+			// Webkit/Opera - :checked should return selected option elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			// IE8 throws error here and will not see later tests
+			if ( !div.querySelectorAll(":checked").length ) {
+				rbuggyQSA.push(":checked");
+			}
+
+			// Support: Safari 8+, iOS 8+
+			// https://bugs.webkit.org/show_bug.cgi?id=136851
+			// In-page `selector#id sibing-combinator selector` fails
+			if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) {
+				rbuggyQSA.push(".#.+[+~]");
+			}
+		});
+
+		assert(function( div ) {
+			// Support: Windows 8 Native Apps
+			// The type and name attributes are restricted during .innerHTML assignment
+			var input = doc.createElement("input");
+			input.setAttribute( "type", "hidden" );
+			div.appendChild( input ).setAttribute( "name", "D" );
+
+			// Support: IE8
+			// Enforce case-sensitivity of name attribute
+			if ( div.querySelectorAll("[name=d]").length ) {
+				rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
+			}
+
+			// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
+			// IE8 throws error here and will not see later tests
+			if ( !div.querySelectorAll(":enabled").length ) {
+				rbuggyQSA.push( ":enabled", ":disabled" );
+			}
+
+			// Opera 10-11 does not throw on post-comma invalid pseudos
+			div.querySelectorAll("*,:x");
+			rbuggyQSA.push(",.*:");
+		});
+	}
+
+	if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
+		docElem.webkitMatchesSelector ||
+		docElem.mozMatchesSelector ||
+		docElem.oMatchesSelector ||
+		docElem.msMatchesSelector) )) ) {
+
+		assert(function( div ) {
+			// Check to see if it's possible to do matchesSelector
+			// on a disconnected node (IE 9)
+			support.disconnectedMatch = matches.call( div, "div" );
+
+			// This should fail with an exception
+			// Gecko does not error, returns false instead
+			matches.call( div, "[s!='']:x" );
+			rbuggyMatches.push( "!=", pseudos );
+		});
+	}
+
+	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
+	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
+
+	/* Contains
+	---------------------------------------------------------------------- */
+	hasCompare = rnative.test( docElem.compareDocumentPosition );
+
+	// Element contains another
+	// Purposefully does not implement inclusive descendent
+	// As in, an element does not contain itself
+	contains = hasCompare || rnative.test( docElem.contains ) ?
+		function( a, b ) {
+			var adown = a.nodeType === 9 ? a.documentElement : a,
+				bup = b && b.parentNode;
+			return a === bup || !!( bup && bup.nodeType === 1 && (
+				adown.contains ?
+					adown.contains( bup ) :
+					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+			));
+		} :
+		function( a, b ) {
+			if ( b ) {
+				while ( (b = b.parentNode) ) {
+					if ( b === a ) {
+						return true;
+					}
+				}
+			}
+			return false;
+		};
+
+	/* Sorting
+	---------------------------------------------------------------------- */
+
+	// Document order sorting
+	sortOrder = hasCompare ?
+	function( a, b ) {
+
+		// Flag for duplicate removal
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		// Sort on method existence if only one input has compareDocumentPosition
+		var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
+		if ( compare ) {
+			return compare;
+		}
+
+		// Calculate position if both inputs belong to the same document
+		compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+			a.compareDocumentPosition( b ) :
+
+			// Otherwise we know they are disconnected
+			1;
+
+		// Disconnected nodes
+		if ( compare & 1 ||
+			(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
+
+			// Choose the first element that is related to our preferred document
+			if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
+				return -1;
+			}
+			if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
+				return 1;
+			}
+
+			// Maintain original order
+			return sortInput ?
+				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+				0;
+		}
+
+		return compare & 4 ? -1 : 1;
+	} :
+	function( a, b ) {
+		// Exit early if the nodes are identical
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		var cur,
+			i = 0,
+			aup = a.parentNode,
+			bup = b.parentNode,
+			ap = [ a ],
+			bp = [ b ];
+
+		// Parentless nodes are either documents or disconnected
+		if ( !aup || !bup ) {
+			return a === doc ? -1 :
+				b === doc ? 1 :
+				aup ? -1 :
+				bup ? 1 :
+				sortInput ?
+				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+				0;
+
+		// If the nodes are siblings, we can do a quick check
+		} else if ( aup === bup ) {
+			return siblingCheck( a, b );
+		}
+
+		// Otherwise we need full lists of their ancestors for comparison
+		cur = a;
+		while ( (cur = cur.parentNode) ) {
+			ap.unshift( cur );
+		}
+		cur = b;
+		while ( (cur = cur.parentNode) ) {
+			bp.unshift( cur );
+		}
+
+		// Walk down the tree looking for a discrepancy
+		while ( ap[i] === bp[i] ) {
+			i++;
+		}
+
+		return i ?
+			// Do a sibling check if the nodes have a common ancestor
+			siblingCheck( ap[i], bp[i] ) :
+
+			// Otherwise nodes in our document sort first
+			ap[i] === preferredDoc ? -1 :
+			bp[i] === preferredDoc ? 1 :
+			0;
+	};
+
+	return doc;
+};
+
+Sizzle.matches = function( expr, elements ) {
+	return Sizzle( expr, null, null, elements );
+};
+
+Sizzle.matchesSelector = function( elem, expr ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
+
+	// Make sure that attribute selectors are quoted
+	expr = expr.replace( rattributeQuotes, "='$1']" );
+
+	if ( support.matchesSelector && documentIsHTML &&
+		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
+		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
+
+		try {
+			var ret = matches.call( elem, expr );
+
+			// IE 9's matchesSelector returns false on disconnected nodes
+			if ( ret || support.disconnectedMatch ||
+					// As well, disconnected nodes are said to be in a document
+					// fragment in IE 9
+					elem.document && elem.document.nodeType !== 11 ) {
+				return ret;
+			}
+		} catch (e) {}
+	}
+
+	return Sizzle( expr, document, null, [ elem ] ).length > 0;
+};
+
+Sizzle.contains = function( context, elem ) {
+	// Set document vars if needed
+	if ( ( context.ownerDocument || context ) !== document ) {
+		setDocument( context );
+	}
+	return contains( context, elem );
+};
+
+Sizzle.attr = function( elem, name ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
+
+	var fn = Expr.attrHandle[ name.toLowerCase() ],
+		// Don't get fooled by Object.prototype properties (jQuery #13807)
+		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
+			fn( elem, name, !documentIsHTML ) :
+			undefined;
+
+	return val !== undefined ?
+		val :
+		support.attributes || !documentIsHTML ?
+			elem.getAttribute( name ) :
+			(val = elem.getAttributeNode(name)) && val.specified ?
+				val.value :
+				null;
+};
+
+Sizzle.error = function( msg ) {
+	throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+/**
+ * Document sorting and removing duplicates
+ * @param {ArrayLike} results
+ */
+Sizzle.uniqueSort = function( results ) {
+	var elem,
+		duplicates = [],
+		j = 0,
+		i = 0;
+
+	// Unless we *know* we can detect duplicates, assume their presence
+	hasDuplicate = !support.detectDuplicates;
+	sortInput = !support.sortStable && results.slice( 0 );
+	results.sort( sortOrder );
+
+	if ( hasDuplicate ) {
+		while ( (elem = results[i++]) ) {
+			if ( elem === results[ i ] ) {
+				j = duplicates.push( i );
+			}
+		}
+		while ( j-- ) {
+			results.splice( duplicates[ j ], 1 );
+		}
+	}
+
+	// Clear input after sorting to release objects
+	// See https://github.com/jquery/sizzle/pull/225
+	sortInput = null;
+
+	return results;
+};
+
+/**
+ * Utility function for retrieving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+getText = Sizzle.getText = function( elem ) {
+	var node,
+		ret = "",
+		i = 0,
+		nodeType = elem.nodeType;
+
+	if ( !nodeType ) {
+		// If no nodeType, this is expected to be an array
+		while ( (node = elem[i++]) ) {
+			// Do not traverse comment nodes
+			ret += getText( node );
+		}
+	} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+		// Use textContent for elements
+		// innerText usage removed for consistency of new lines (jQuery #11153)
+		if ( typeof elem.textContent === "string" ) {
+			return elem.textContent;
+		} else {
+			// Traverse its children
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				ret += getText( elem );
+			}
+		}
+	} else if ( nodeType === 3 || nodeType === 4 ) {
+		return elem.nodeValue;
+	}
+	// Do not include comment or processing instruction nodes
+
+	return ret;
+};
+
+Expr = Sizzle.selectors = {
+
+	// Can be adjusted by the user
+	cacheLength: 50,
+
+	createPseudo: markFunction,
+
+	match: matchExpr,
+
+	attrHandle: {},
+
+	find: {},
+
+	relative: {
+		">": { dir: "parentNode", first: true },
+		" ": { dir: "parentNode" },
+		"+": { dir: "previousSibling", first: true },
+		"~": { dir: "previousSibling" }
+	},
+
+	preFilter: {
+		"ATTR": function( match ) {
+			match[1] = match[1].replace( runescape, funescape );
+
+			// Move the given value to match[3] whether quoted or unquoted
+			match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
+
+			if ( match[2] === "~=" ) {
+				match[3] = " " + match[3] + " ";
+			}
+
+			return match.slice( 0, 4 );
+		},
+
+		"CHILD": function( match ) {
+			/* matches from matchExpr["CHILD"]
+				1 type (only|nth|...)
+				2 what (child|of-type)
+				3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
+				4 xn-component of xn+y argument ([+-]?\d*n|)
+				5 sign of xn-component
+				6 x of xn-component
+				7 sign of y-component
+				8 y of y-component
+			*/
+			match[1] = match[1].toLowerCase();
+
+			if ( match[1].slice( 0, 3 ) === "nth" ) {
+				// nth-* requires argument
+				if ( !match[3] ) {
+					Sizzle.error( match[0] );
+				}
+
+				// numeric x and y parameters for Expr.filter.CHILD
+				// remember that false/true cast respectively to 0/1
+				match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
+				match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+
+			// other types prohibit arguments
+			} else if ( match[3] ) {
+				Sizzle.error( match[0] );
+			}
+
+			return match;
+		},
+
+		"PSEUDO": function( match ) {
+			var excess,
+				unquoted = !match[6] && match[2];
+
+			if ( matchExpr["CHILD"].test( match[0] ) ) {
+				return null;
+			}
+
+			// Accept quoted arguments as-is
+			if ( match[3] ) {
+				match[2] = match[4] || match[5] || "";
+
+			// Strip excess characters from unquoted arguments
+			} else if ( unquoted && rpseudo.test( unquoted ) &&
+				// Get excess from tokenize (recursively)
+				(excess = tokenize( unquoted, true )) &&
+				// advance to the next closing parenthesis
+				(excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+
+				// excess is a negative index
+				match[0] = match[0].slice( 0, excess );
+				match[2] = unquoted.slice( 0, excess );
+			}
+
+			// Return only captures needed by the pseudo filter method (type and argument)
+			return match.slice( 0, 3 );
+		}
+	},
+
+	filter: {
+
+		"TAG": function( nodeNameSelector ) {
+			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
+			return nodeNameSelector === "*" ?
+				function() { return true; } :
+				function( elem ) {
+					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+				};
+		},
+
+		"CLASS": function( className ) {
+			var pattern = classCache[ className + " " ];
+
+			return pattern ||
+				(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
+				classCache( className, function( elem ) {
+					return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
+				});
+		},
+
+		"ATTR": function( name, operator, check ) {
+			return function( elem ) {
+				var result = Sizzle.attr( elem, name );
+
+				if ( result == null ) {
+					return operator === "!=";
+				}
+				if ( !operator ) {
+					return true;
+				}
+
+				result += "";
+
+				return operator === "=" ? result === check :
+					operator === "!=" ? result !== check :
+					operator === "^=" ? check && result.indexOf( check ) === 0 :
+					operator === "*=" ? check && result.indexOf( check ) > -1 :
+					operator === "$=" ? check && result.slice( -check.length ) === check :
+					operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
+					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
+					false;
+			};
+		},
+
+		"CHILD": function( type, what, argument, first, last ) {
+			var simple = type.slice( 0, 3 ) !== "nth",
+				forward = type.slice( -4 ) !== "last",
+				ofType = what === "of-type";
+
+			return first === 1 && last === 0 ?
+
+				// Shortcut for :nth-*(n)
+				function( elem ) {
+					return !!elem.parentNode;
+				} :
+
+				function( elem, context, xml ) {
+					var cache, outerCache, node, diff, nodeIndex, start,
+						dir = simple !== forward ? "nextSibling" : "previousSibling",
+						parent = elem.parentNode,
+						name = ofType && elem.nodeName.toLowerCase(),
+						useCache = !xml && !ofType;
+
+					if ( parent ) {
+
+						// :(first|last|only)-(child|of-type)
+						if ( simple ) {
+							while ( dir ) {
+								node = elem;
+								while ( (node = node[ dir ]) ) {
+									if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {
+										return false;
+									}
+								}
+								// Reverse direction for :only-* (if we haven't yet done so)
+								start = dir = type === "only" && !start && "nextSibling";
+							}
+							return true;
+						}
+
+						start = [ forward ? parent.firstChild : parent.lastChild ];
+
+						// non-xml :nth-child(...) stores cache data on `parent`
+						if ( forward && useCache ) {
+							// Seek `elem` from a previously-cached index
+							outerCache = parent[ expando ] || (parent[ expando ] = {});
+							cache = outerCache[ type ] || [];
+							nodeIndex = cache[0] === dirruns && cache[1];
+							diff = cache[0] === dirruns && cache[2];
+							node = nodeIndex && parent.childNodes[ nodeIndex ];
+
+							while ( (node = ++nodeIndex && node && node[ dir ] ||
+
+								// Fallback to seeking `elem` from the start
+								(diff = nodeIndex = 0) || start.pop()) ) {
+
+								// When found, cache indexes on `parent` and break
+								if ( node.nodeType === 1 && ++diff && node === elem ) {
+									outerCache[ type ] = [ dirruns, nodeIndex, diff ];
+									break;
+								}
+							}
+
+						// Use previously-cached element index if available
+						} else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {
+							diff = cache[1];
+
+						// xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)
+						} else {
+							// Use the same loop as above to seek `elem` from the start
+							while ( (node = ++nodeIndex && node && node[ dir ] ||
+								(diff = nodeIndex = 0) || start.pop()) ) {
+
+								if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {
+									// Cache the index of each encountered element
+									if ( useCache ) {
+										(node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];
+									}
+
+									if ( node === elem ) {
+										break;
+									}
+								}
+							}
+						}
+
+						// Incorporate the offset, then check against cycle size
+						diff -= last;
+						return diff === first || ( diff % first === 0 && diff / first >= 0 );
+					}
+				};
+		},
+
+		"PSEUDO": function( pseudo, argument ) {
+			// pseudo-class names are case-insensitive
+			// http://www.w3.org/TR/selectors/#pseudo-classes
+			// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
+			// Remember that setFilters inherits from pseudos
+			var args,
+				fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
+					Sizzle.error( "unsupported pseudo: " + pseudo );
+
+			// The user may use createPseudo to indicate that
+			// arguments are needed to create the filter function
+			// just as Sizzle does
+			if ( fn[ expando ] ) {
+				return fn( argument );
+			}
+
+			// But maintain support for old signatures
+			if ( fn.length > 1 ) {
+				args = [ pseudo, pseudo, "", argument ];
+				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
+					markFunction(function( seed, matches ) {
+						var idx,
+							matched = fn( seed, argument ),
+							i = matched.length;
+						while ( i-- ) {
+							idx = indexOf( seed, matched[i] );
+							seed[ idx ] = !( matches[ idx ] = matched[i] );
+						}
+					}) :
+					function( elem ) {
+						return fn( elem, 0, args );
+					};
+			}
+
+			return fn;
+		}
+	},
+
+	pseudos: {
+		// Potentially complex pseudos
+		"not": markFunction(function( selector ) {
+			// Trim the selector passed to compile
+			// to avoid treating leading and trailing
+			// spaces as combinators
+			var input = [],
+				results = [],
+				matcher = compile( selector.replace( rtrim, "$1" ) );
+
+			return matcher[ expando ] ?
+				markFunction(function( seed, matches, context, xml ) {
+					var elem,
+						unmatched = matcher( seed, null, xml, [] ),
+						i = seed.length;
+
+					// Match elements unmatched by `matcher`
+					while ( i-- ) {
+						if ( (elem = unmatched[i]) ) {
+							seed[i] = !(matches[i] = elem);
+						}
+					}
+				}) :
+				function( elem, context, xml ) {
+					input[0] = elem;
+					matcher( input, null, xml, results );
+					// Don't keep the element (issue #299)
+					input[0] = null;
+					return !results.pop();
+				};
+		}),
+
+		"has": markFunction(function( selector ) {
+			return function( elem ) {
+				return Sizzle( selector, elem ).length > 0;
+			};
+		}),
+
+		"contains": markFunction(function( text ) {
+			text = text.replace( runescape, funescape );
+			return function( elem ) {
+				return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+			};
+		}),
+
+		// "Whether an element is represented by a :lang() selector
+		// is based solely on the element's language value
+		// being equal to the identifier C,
+		// or beginning with the identifier C immediately followed by "-".
+		// The matching of C against the element's language value is performed case-insensitively.
+		// The identifier C does not have to be a valid language name."
+		// http://www.w3.org/TR/selectors/#lang-pseudo
+		"lang": markFunction( function( lang ) {
+			// lang value must be a valid identifier
+			if ( !ridentifier.test(lang || "") ) {
+				Sizzle.error( "unsupported lang: " + lang );
+			}
+			lang = lang.replace( runescape, funescape ).toLowerCase();
+			return function( elem ) {
+				var elemLang;
+				do {
+					if ( (elemLang = documentIsHTML ?
+						elem.lang :
+						elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
+
+						elemLang = elemLang.toLowerCase();
+						return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
+					}
+				} while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+				return false;
+			};
+		}),
+
+		// Miscellaneous
+		"target": function( elem ) {
+			var hash = window.location && window.location.hash;
+			return hash && hash.slice( 1 ) === elem.id;
+		},
+
+		"root": function( elem ) {
+			return elem === docElem;
+		},
+
+		"focus": function( elem ) {
+			return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+		},
+
+		// Boolean properties
+		"enabled": function( elem ) {
+			return elem.disabled === false;
+		},
+
+		"disabled": function( elem ) {
+			return elem.disabled === true;
+		},
+
+		"checked": function( elem ) {
+			// In CSS3, :checked should return both checked and selected elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			var nodeName = elem.nodeName.toLowerCase();
+			return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+		},
+
+		"selected": function( elem ) {
+			// Accessing this property makes selected-by-default
+			// options in Safari work properly
+			if ( elem.parentNode ) {
+				elem.parentNode.selectedIndex;
+			}
+
+			return elem.selected === true;
+		},
+
+		// Contents
+		"empty": function( elem ) {
+			// http://www.w3.org/TR/selectors/#empty-pseudo
+			// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
+			//   but not by others (comment: 8; processing instruction: 7; etc.)
+			// nodeType < 6 works because attributes (2) do not appear as children
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				if ( elem.nodeType < 6 ) {
+					return false;
+				}
+			}
+			return true;
+		},
+
+		"parent": function( elem ) {
+			return !Expr.pseudos["empty"]( elem );
+		},
+
+		// Element/input types
+		"header": function( elem ) {
+			return rheader.test( elem.nodeName );
+		},
+
+		"input": function( elem ) {
+			return rinputs.test( elem.nodeName );
+		},
+
+		"button": function( elem ) {
+			var name = elem.nodeName.toLowerCase();
+			return name === "input" && elem.type === "button" || name === "button";
+		},
+
+		"text": function( elem ) {
+			var attr;
+			return elem.nodeName.toLowerCase() === "input" &&
+				elem.type === "text" &&
+
+				// Support: IE<8
+				// New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
+				( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
+		},
+
+		// Position-in-collection
+		"first": createPositionalPseudo(function() {
+			return [ 0 ];
+		}),
+
+		"last": createPositionalPseudo(function( matchIndexes, length ) {
+			return [ length - 1 ];
+		}),
+
+		"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			return [ argument < 0 ? argument + length : argument ];
+		}),
+
+		"even": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 0;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"odd": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 1;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; --i >= 0; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; ++i < length; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		})
+	}
+};
+
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
+
+// Add button/input type pseudos
+for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
+	Expr.pseudos[ i ] = createInputPseudo( i );
+}
+for ( i in { submit: true, reset: true } ) {
+	Expr.pseudos[ i ] = createButtonPseudo( i );
+}
+
+// Easy API for creating new setFilters
+function setFilters() {}
+setFilters.prototype = Expr.filters = Expr.pseudos;
+Expr.setFilters = new setFilters();
+
+tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
+	var matched, match, tokens, type,
+		soFar, groups, preFilters,
+		cached = tokenCache[ selector + " " ];
+
+	if ( cached ) {
+		return parseOnly ? 0 : cached.slice( 0 );
+	}
+
+	soFar = selector;
+	groups = [];
+	preFilters = Expr.preFilter;
+
+	while ( soFar ) {
+
+		// Comma and first run
+		if ( !matched || (match = rcomma.exec( soFar )) ) {
+			if ( match ) {
+				// Don't consume trailing commas as valid
+				soFar = soFar.slice( match[0].length ) || soFar;
+			}
+			groups.push( (tokens = []) );
+		}
+
+		matched = false;
+
+		// Combinators
+		if ( (match = rcombinators.exec( soFar )) ) {
+			matched = match.shift();
+			tokens.push({
+				value: matched,
+				// Cast descendant combinators to space
+				type: match[0].replace( rtrim, " " )
+			});
+			soFar = soFar.slice( matched.length );
+		}
+
+		// Filters
+		for ( type in Expr.filter ) {
+			if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+				(match = preFilters[ type ]( match ))) ) {
+				matched = match.shift();
+				tokens.push({
+					value: matched,
+					type: type,
+					matches: match
+				});
+				soFar = soFar.slice( matched.length );
+			}
+		}
+
+		if ( !matched ) {
+			break;
+		}
+	}
+
+	// Return the length of the invalid excess
+	// if we're just parsing
+	// Otherwise, throw an error or return tokens
+	return parseOnly ?
+		soFar.length :
+		soFar ?
+			Sizzle.error( selector ) :
+			// Cache the tokens
+			tokenCache( selector, groups ).slice( 0 );
+};
+
+function toSelector( tokens ) {
+	var i = 0,
+		len = tokens.length,
+		selector = "";
+	for ( ; i < len; i++ ) {
+		selector += tokens[i].value;
+	}
+	return selector;
+}
+
+function addCombinator( matcher, combinator, base ) {
+	var dir = combinator.dir,
+		checkNonElements = base && dir === "parentNode",
+		doneName = done++;
+
+	return combinator.first ?
+		// Check against closest ancestor/preceding element
+		function( elem, context, xml ) {
+			while ( (elem = elem[ dir ]) ) {
+				if ( elem.nodeType === 1 || checkNonElements ) {
+					return matcher( elem, context, xml );
+				}
+			}
+		} :
+
+		// Check against all ancestor/preceding elements
+		function( elem, context, xml ) {
+			var oldCache, outerCache,
+				newCache = [ dirruns, doneName ];
+
+			// We can't set arbitrary data on XML nodes, so they don't benefit from dir caching
+			if ( xml ) {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						if ( matcher( elem, context, xml ) ) {
+							return true;
+						}
+					}
+				}
+			} else {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						outerCache = elem[ expando ] || (elem[ expando ] = {});
+						if ( (oldCache = outerCache[ dir ]) &&
+							oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
+
+							// Assign to newCache so results back-propagate to previous elements
+							return (newCache[ 2 ] = oldCache[ 2 ]);
+						} else {
+							// Reuse newcache so results back-propagate to previous elements
+							outerCache[ dir ] = newCache;
+
+							// A match means we're done; a fail means we have to keep checking
+							if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
+								return true;
+							}
+						}
+					}
+				}
+			}
+		};
+}
+
+function elementMatcher( matchers ) {
+	return matchers.length > 1 ?
+		function( elem, context, xml ) {
+			var i = matchers.length;
+			while ( i-- ) {
+				if ( !matchers[i]( elem, context, xml ) ) {
+					return false;
+				}
+			}
+			return true;
+		} :
+		matchers[0];
+}
+
+function multipleContexts( selector, contexts, results ) {
+	var i = 0,
+		len = contexts.length;
+	for ( ; i < len; i++ ) {
+		Sizzle( selector, contexts[i], results );
+	}
+	return results;
+}
+
+function condense( unmatched, map, filter, context, xml ) {
+	var elem,
+		newUnmatched = [],
+		i = 0,
+		len = unmatched.length,
+		mapped = map != null;
+
+	for ( ; i < len; i++ ) {
+		if ( (elem = unmatched[i]) ) {
+			if ( !filter || filter( elem, context, xml ) ) {
+				newUnmatched.push( elem );
+				if ( mapped ) {
+					map.push( i );
+				}
+			}
+		}
+	}
+
+	return newUnmatched;
+}
+
+function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
+	if ( postFilter && !postFilter[ expando ] ) {
+		postFilter = setMatcher( postFilter );
+	}
+	if ( postFinder && !postFinder[ expando ] ) {
+		postFinder = setMatcher( postFinder, postSelector );
+	}
+	return markFunction(function( seed, results, context, xml ) {
+		var temp, i, elem,
+			preMap = [],
+			postMap = [],
+			preexisting = results.length,
+
+			// Get initial elements from seed or context
+			elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
+
+			// Prefilter to get matcher input, preserving a map for seed-results synchronization
+			matcherIn = preFilter && ( seed || !selector ) ?
+				condense( elems, preMap, preFilter, context, xml ) :
+				elems,
+
+			matcherOut = matcher ?
+				// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
+				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+
+					// ...intermediate processing is necessary
+					[] :
+
+					// ...otherwise use results directly
+					results :
+				matcherIn;
+
+		// Find primary matches
+		if ( matcher ) {
+			matcher( matcherIn, matcherOut, context, xml );
+		}
+
+		// Apply postFilter
+		if ( postFilter ) {
+			temp = condense( matcherOut, postMap );
+			postFilter( temp, [], context, xml );
+
+			// Un-match failing elements by moving them back to matcherIn
+			i = temp.length;
+			while ( i-- ) {
+				if ( (elem = temp[i]) ) {
+					matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+				}
+			}
+		}
+
+		if ( seed ) {
+			if ( postFinder || preFilter ) {
+				if ( postFinder ) {
+					// Get the final matcherOut by condensing this intermediate into postFinder contexts
+					temp = [];
+					i = matcherOut.length;
+					while ( i-- ) {
+						if ( (elem = matcherOut[i]) ) {
+							// Restore matcherIn since elem is not yet a final match
+							temp.push( (matcherIn[i] = elem) );
+						}
+					}
+					postFinder( null, (matcherOut = []), temp, xml );
+				}
+
+				// Move matched elements from seed to results to keep them synchronized
+				i = matcherOut.length;
+				while ( i-- ) {
+					if ( (elem = matcherOut[i]) &&
+						(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
+
+						seed[temp] = !(results[temp] = elem);
+					}
+				}
+			}
+
+		// Add elements to results, through postFinder if defined
+		} else {
+			matcherOut = condense(
+				matcherOut === results ?
+					matcherOut.splice( preexisting, matcherOut.length ) :
+					matcherOut
+			);
+			if ( postFinder ) {
+				postFinder( null, results, matcherOut, xml );
+			} else {
+				push.apply( results, matcherOut );
+			}
+		}
+	});
+}
+
+function matcherFromTokens( tokens ) {
+	var checkContext, matcher, j,
+		len = tokens.length,
+		leadingRelative = Expr.relative[ tokens[0].type ],
+		implicitRelative = leadingRelative || Expr.relative[" "],
+		i = leadingRelative ? 1 : 0,
+
+		// The foundational matcher ensures that elements are reachable from top-level context(s)
+		matchContext = addCombinator( function( elem ) {
+			return elem === checkContext;
+		}, implicitRelative, true ),
+		matchAnyContext = addCombinator( function( elem ) {
+			return indexOf( checkContext, elem ) > -1;
+		}, implicitRelative, true ),
+		matchers = [ function( elem, context, xml ) {
+			var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+				(checkContext = context).nodeType ?
+					matchContext( elem, context, xml ) :
+					matchAnyContext( elem, context, xml ) );
+			// Avoid hanging onto element (issue #299)
+			checkContext = null;
+			return ret;
+		} ];
+
+	for ( ; i < len; i++ ) {
+		if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+			matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+		} else {
+			matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+
+			// Return special upon seeing a positional matcher
+			if ( matcher[ expando ] ) {
+				// Find the next relative operator (if any) for proper handling
+				j = ++i;
+				for ( ; j < len; j++ ) {
+					if ( Expr.relative[ tokens[j].type ] ) {
+						break;
+					}
+				}
+				return setMatcher(
+					i > 1 && elementMatcher( matchers ),
+					i > 1 && toSelector(
+						// If the preceding token was a descendant combinator, insert an implicit any-element `*`
+						tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
+					).replace( rtrim, "$1" ),
+					matcher,
+					i < j && matcherFromTokens( tokens.slice( i, j ) ),
+					j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+					j < len && toSelector( tokens )
+				);
+			}
+			matchers.push( matcher );
+		}
+	}
+
+	return elementMatcher( matchers );
+}
+
+function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
+	var bySet = setMatchers.length > 0,
+		byElement = elementMatchers.length > 0,
+		superMatcher = function( seed, context, xml, results, outermost ) {
+			var elem, j, matcher,
+				matchedCount = 0,
+				i = "0",
+				unmatched = seed && [],
+				setMatched = [],
+				contextBackup = outermostContext,
+				// We must always have either seed elements or outermost context
+				elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
+				// Use integer dirruns iff this is the outermost matcher
+				dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
+				len = elems.length;
+
+			if ( outermost ) {
+				outermostContext = context !== document && context;
+			}
+
+			// Add elements passing elementMatchers directly to results
+			// Keep `i` a string if there are no elements so `matchedCount` will be "00" below
+			// Support: IE<9, Safari
+			// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
+			for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
+				if ( byElement && elem ) {
+					j = 0;
+					while ( (matcher = elementMatchers[j++]) ) {
+						if ( matcher( elem, context, xml ) ) {
+							results.push( elem );
+							break;
+						}
+					}
+					if ( outermost ) {
+						dirruns = dirrunsUnique;
+					}
+				}
+
+				// Track unmatched elements for set filters
+				if ( bySet ) {
+					// They will have gone through all possible matchers
+					if ( (elem = !matcher && elem) ) {
+						matchedCount--;
+					}
+
+					// Lengthen the array for every element, matched or not
+					if ( seed ) {
+						unmatched.push( elem );
+					}
+				}
+			}
+
+			// Apply set filters to unmatched elements
+			matchedCount += i;
+			if ( bySet && i !== matchedCount ) {
+				j = 0;
+				while ( (matcher = setMatchers[j++]) ) {
+					matcher( unmatched, setMatched, context, xml );
+				}
+
+				if ( seed ) {
+					// Reintegrate element matches to eliminate the need for sorting
+					if ( matchedCount > 0 ) {
+						while ( i-- ) {
+							if ( !(unmatched[i] || setMatched[i]) ) {
+								setMatched[i] = pop.call( results );
+							}
+						}
+					}
+
+					// Discard index placeholder values to get only actual matches
+					setMatched = condense( setMatched );
+				}
+
+				// Add matches to results
+				push.apply( results, setMatched );
+
+				// Seedless set matches succeeding multiple successful matchers stipulate sorting
+				if ( outermost && !seed && setMatched.length > 0 &&
+					( matchedCount + setMatchers.length ) > 1 ) {
+
+					Sizzle.uniqueSort( results );
+				}
+			}
+
+			// Override manipulation of globals by nested matchers
+			if ( outermost ) {
+				dirruns = dirrunsUnique;
+				outermostContext = contextBackup;
+			}
+
+			return unmatched;
+		};
+
+	return bySet ?
+		markFunction( superMatcher ) :
+		superMatcher;
+}
+
+compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
+	var i,
+		setMatchers = [],
+		elementMatchers = [],
+		cached = compilerCache[ selector + " " ];
+
+	if ( !cached ) {
+		// Generate a function of recursive functions that can be used to check each element
+		if ( !match ) {
+			match = tokenize( selector );
+		}
+		i = match.length;
+		while ( i-- ) {
+			cached = matcherFromTokens( match[i] );
+			if ( cached[ expando ] ) {
+				setMatchers.push( cached );
+			} else {
+				elementMatchers.push( cached );
+			}
+		}
+
+		// Cache the compiled function
+		cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+
+		// Save selector and tokenization
+		cached.selector = selector;
+	}
+	return cached;
+};
+
+/**
+ * A low-level selection function that works with Sizzle's compiled
+ *  selector functions
+ * @param {String|Function} selector A selector or a pre-compiled
+ *  selector function built with Sizzle.compile
+ * @param {Element} context
+ * @param {Array} [results]
+ * @param {Array} [seed] A set of elements to match against
+ */
+select = Sizzle.select = function( selector, context, results, seed ) {
+	var i, tokens, token, type, find,
+		compiled = typeof selector === "function" && selector,
+		match = !seed && tokenize( (selector = compiled.selector || selector) );
+
+	results = results || [];
+
+	// Try to minimize operations if there is no seed and only one group
+	if ( match.length === 1 ) {
+
+		// Take a shortcut and set the context if the root selector is an ID
+		tokens = match[0] = match[0].slice( 0 );
+		if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
+				support.getById && context.nodeType === 9 && documentIsHTML &&
+				Expr.relative[ tokens[1].type ] ) {
+
+			context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
+			if ( !context ) {
+				return results;
+
+			// Precompiled matchers will still verify ancestry, so step up a level
+			} else if ( compiled ) {
+				context = context.parentNode;
+			}
+
+			selector = selector.slice( tokens.shift().value.length );
+		}
+
+		// Fetch a seed set for right-to-left matching
+		i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
+		while ( i-- ) {
+			token = tokens[i];
+
+			// Abort if we hit a combinator
+			if ( Expr.relative[ (type = token.type) ] ) {
+				break;
+			}
+			if ( (find = Expr.find[ type ]) ) {
+				// Search, expanding context for leading sibling combinators
+				if ( (seed = find(
+					token.matches[0].replace( runescape, funescape ),
+					rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
+				)) ) {
+
+					// If seed is empty or no tokens remain, we can return early
+					tokens.splice( i, 1 );
+					selector = seed.length && toSelector( tokens );
+					if ( !selector ) {
+						push.apply( results, seed );
+						return results;
+					}
+
+					break;
+				}
+			}
+		}
+	}
+
+	// Compile and execute a filtering function if one is not provided
+	// Provide `match` to avoid retokenization if we modified the selector above
+	( compiled || compile( selector, match ) )(
+		seed,
+		context,
+		!documentIsHTML,
+		results,
+		rsibling.test( selector ) && testContext( context.parentNode ) || context
+	);
+	return results;
+};
+
+// One-time assignments
+
+// Sort stability
+support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
+
+// Support: Chrome 14-35+
+// Always assume duplicates if they aren't passed to the comparison function
+support.detectDuplicates = !!hasDuplicate;
+
+// Initialize against the default document
+setDocument();
+
+// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
+// Detached nodes confoundingly follow *each other*
+support.sortDetached = assert(function( div1 ) {
+	// Should return 1, but returns 4 (following)
+	return div1.compareDocumentPosition( document.createElement("div") ) & 1;
+});
+
+// Support: IE<8
+// Prevent attribute/property "interpolation"
+// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !assert(function( div ) {
+	div.innerHTML = "<a href='#'></a>";
+	return div.firstChild.getAttribute("href") === "#" ;
+}) ) {
+	addHandle( "type|href|height|width", function( elem, name, isXML ) {
+		if ( !isXML ) {
+			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
+		}
+	});
+}
+
+// Support: IE<9
+// Use defaultValue in place of getAttribute("value")
+if ( !support.attributes || !assert(function( div ) {
+	div.innerHTML = "<input/>";
+	div.firstChild.setAttribute( "value", "" );
+	return div.firstChild.getAttribute( "value" ) === "";
+}) ) {
+	addHandle( "value", function( elem, name, isXML ) {
+		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
+			return elem.defaultValue;
+		}
+	});
+}
+
+// Support: IE<9
+// Use getAttributeNode to fetch booleans when getAttribute lies
+if ( !assert(function( div ) {
+	return div.getAttribute("disabled") == null;
+}) ) {
+	addHandle( booleans, function( elem, name, isXML ) {
+		var val;
+		if ( !isXML ) {
+			return elem[ name ] === true ? name.toLowerCase() :
+					(val = elem.getAttributeNode( name )) && val.specified ?
+					val.value :
+				null;
+		}
+	});
+}
+
+return Sizzle;
+
+})( window );
+
+
+
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+jQuery.expr[":"] = jQuery.expr.pseudos;
+jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+
+
+
+var rneedsContext = jQuery.expr.match.needsContext;
+
+var rsingleTag = (/^<(\w+)\s*\/?>(?:<\/\1>|)$/);
+
+
+
+var risSimple = /^.[^:#\[\.,]*$/;
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, not ) {
+	if ( jQuery.isFunction( qualifier ) ) {
+		return jQuery.grep( elements, function( elem, i ) {
+			/* jshint -W018 */
+			return !!qualifier.call( elem, i, elem ) !== not;
+		});
+
+	}
+
+	if ( qualifier.nodeType ) {
+		return jQuery.grep( elements, function( elem ) {
+			return ( elem === qualifier ) !== not;
+		});
+
+	}
+
+	if ( typeof qualifier === "string" ) {
+		if ( risSimple.test( qualifier ) ) {
+			return jQuery.filter( qualifier, elements, not );
+		}
+
+		qualifier = jQuery.filter( qualifier, elements );
+	}
+
+	return jQuery.grep( elements, function( elem ) {
+		return ( indexOf.call( qualifier, elem ) >= 0 ) !== not;
+	});
+}
+
+jQuery.filter = function( expr, elems, not ) {
+	var elem = elems[ 0 ];
+
+	if ( not ) {
+		expr = ":not(" + expr + ")";
+	}
+
+	return elems.length === 1 && elem.nodeType === 1 ?
+		jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :
+		jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
+			return elem.nodeType === 1;
+		}));
+};
+
+jQuery.fn.extend({
+	find: function( selector ) {
+		var i,
+			len = this.length,
+			ret = [],
+			self = this;
+
+		if ( typeof selector !== "string" ) {
+			return this.pushStack( jQuery( selector ).filter(function() {
+				for ( i = 0; i < len; i++ ) {
+					if ( jQuery.contains( self[ i ], this ) ) {
+						return true;
+					}
+				}
+			}) );
+		}
+
+		for ( i = 0; i < len; i++ ) {
+			jQuery.find( selector, self[ i ], ret );
+		}
+
+		// Needed because $( selector, context ) becomes $( context ).find( selector )
+		ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );
+		ret.selector = this.selector ? this.selector + " " + selector : selector;
+		return ret;
+	},
+	filter: function( selector ) {
+		return this.pushStack( winnow(this, selector || [], false) );
+	},
+	not: function( selector ) {
+		return this.pushStack( winnow(this, selector || [], true) );
+	},
+	is: function( selector ) {
+		return !!winnow(
+			this,
+
+			// If this is a positional/relative selector, check membership in the returned set
+			// so $("p:first").is("p:last") won't return true for a doc with two "p".
+			typeof selector === "string" && rneedsContext.test( selector ) ?
+				jQuery( selector ) :
+				selector || [],
+			false
+		).length;
+	}
+});
+
+
+// Initialize a jQuery object
+
+
+// A central reference to the root jQuery(document)
+var rootjQuery,
+
+	// A simple way to check for HTML strings
+	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+	// Strict HTML recognition (#11290: must start with <)
+	rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
+
+	init = jQuery.fn.init = function( selector, context ) {
+		var match, elem;
+
+		// HANDLE: $(""), $(null), $(undefined), $(false)
+		if ( !selector ) {
+			return this;
+		}
+
+		// Handle HTML strings
+		if ( typeof selector === "string" ) {
+			if ( selector[0] === "<" && selector[ selector.length - 1 ] === ">" && selector.length >= 3 ) {
+				// Assume that strings that start and end with <> are HTML and skip the regex check
+				match = [ null, selector, null ];
+
+			} else {
+				match = rquickExpr.exec( selector );
+			}
+
+			// Match html or make sure no context is specified for #id
+			if ( match && (match[1] || !context) ) {
+
+				// HANDLE: $(html) -> $(array)
+				if ( match[1] ) {
+					context = context instanceof jQuery ? context[0] : context;
+
+					// Option to run scripts is true for back-compat
+					// Intentionally let the error be thrown if parseHTML is not present
+					jQuery.merge( this, jQuery.parseHTML(
+						match[1],
+						context && context.nodeType ? context.ownerDocument || context : document,
+						true
+					) );
+
+					// HANDLE: $(html, props)
+					if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {
+						for ( match in context ) {
+							// Properties of context are called as methods if possible
+							if ( jQuery.isFunction( this[ match ] ) ) {
+								this[ match ]( context[ match ] );
+
+							// ...and otherwise set as attributes
+							} else {
+								this.attr( match, context[ match ] );
+							}
+						}
+					}
+
+					return this;
+
+				// HANDLE: $(#id)
+				} else {
+					elem = document.getElementById( match[2] );
+
+					// Support: Blackberry 4.6
+					// gEBID returns nodes no longer in the document (#6963)
+					if ( elem && elem.parentNode ) {
+						// Inject the element directly into the jQuery object
+						this.length = 1;
+						this[0] = elem;
+					}
+
+					this.context = document;
+					this.selector = selector;
+					return this;
+				}
+
+			// HANDLE: $(expr, $(...))
+			} else if ( !context || context.jquery ) {
+				return ( context || rootjQuery ).find( selector );
+
+			// HANDLE: $(expr, context)
+			// (which is just equivalent to: $(context).find(expr)
+			} else {
+				return this.constructor( context ).find( selector );
+			}
+
+		// HANDLE: $(DOMElement)
+		} else if ( selector.nodeType ) {
+			this.context = this[0] = selector;
+			this.length = 1;
+			return this;
+
+		// HANDLE: $(function)
+		// Shortcut for document ready
+		} else if ( jQuery.isFunction( selector ) ) {
+			return typeof rootjQuery.ready !== "undefined" ?
+				rootjQuery.ready( selector ) :
+				// Execute immediately if ready is not present
+				selector( jQuery );
+		}
+
+		if ( selector.selector !== undefined ) {
+			this.selector = selector.selector;
+			this.context = selector.context;
+		}
+
+		return jQuery.makeArray( selector, this );
+	};
+
+// Give the init function the jQuery prototype for later instantiation
+init.prototype = jQuery.fn;
+
+// Initialize central reference
+rootjQuery = jQuery( document );
+
+
+var rparentsprev = /^(?:parents|prev(?:Until|All))/,
+	// Methods guaranteed to produce a unique set when starting from a unique set
+	guaranteedUnique = {
+		children: true,
+		contents: true,
+		next: true,
+		prev: true
+	};
+
+jQuery.extend({
+	dir: function( elem, dir, until ) {
+		var matched = [],
+			truncate = until !== undefined;
+
+		while ( (elem = elem[ dir ]) && elem.nodeType !== 9 ) {
+			if ( elem.nodeType === 1 ) {
+				if ( truncate && jQuery( elem ).is( until ) ) {
+					break;
+				}
+				matched.push( elem );
+			}
+		}
+		return matched;
+	},
+
+	sibling: function( n, elem ) {
+		var matched = [];
+
+		for ( ; n; n = n.nextSibling ) {
+			if ( n.nodeType === 1 && n !== elem ) {
+				matched.push( n );
+			}
+		}
+
+		return matched;
+	}
+});
+
+jQuery.fn.extend({
+	has: function( target ) {
+		var targets = jQuery( target, this ),
+			l = targets.length;
+
+		return this.filter(function() {
+			var i = 0;
+			for ( ; i < l; i++ ) {
+				if ( jQuery.contains( this, targets[i] ) ) {
+					return true;
+				}
+			}
+		});
+	},
+
+	closest: function( selectors, context ) {
+		var cur,
+			i = 0,
+			l = this.length,
+			matched = [],
+			pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ?
+				jQuery( selectors, context || this.context ) :
+				0;
+
+		for ( ; i < l; i++ ) {
+			for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {
+				// Always skip document fragments
+				if ( cur.nodeType < 11 && (pos ?
+					pos.index(cur) > -1 :
+
+					// Don't pass non-elements to Sizzle
+					cur.nodeType === 1 &&
+						jQuery.find.matchesSelector(cur, selectors)) ) {
+
+					matched.push( cur );
+					break;
+				}
+			}
+		}
+
+		return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched );
+	},
+
+	// Determine the position of an element within the set
+	index: function( elem ) {
+
+		// No argument, return index in parent
+		if ( !elem ) {
+			return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
+		}
+
+		// Index in selector
+		if ( typeof elem === "string" ) {
+			return indexOf.call( jQuery( elem ), this[ 0 ] );
+		}
+
+		// Locate the position of the desired element
+		return indexOf.call( this,
+
+			// If it receives a jQuery object, the first element is used
+			elem.jquery ? elem[ 0 ] : elem
+		);
+	},
+
+	add: function( selector, context ) {
+		return this.pushStack(
+			jQuery.unique(
+				jQuery.merge( this.get(), jQuery( selector, context ) )
+			)
+		);
+	},
+
+	addBack: function( selector ) {
+		return this.add( selector == null ?
+			this.prevObject : this.prevObject.filter(selector)
+		);
+	}
+});
+
+function sibling( cur, dir ) {
+	while ( (cur = cur[dir]) && cur.nodeType !== 1 ) {}
+	return cur;
+}
+
+jQuery.each({
+	parent: function( elem ) {
+		var parent = elem.parentNode;
+		return parent && parent.nodeType !== 11 ? parent : null;
+	},
+	parents: function( elem ) {
+		return jQuery.dir( elem, "parentNode" );
+	},
+	parentsUntil: function( elem, i, until ) {
+		return jQuery.dir( elem, "parentNode", until );
+	},
+	next: function( elem ) {
+		return sibling( elem, "nextSibling" );
+	},
+	prev: function( elem ) {
+		return sibling( elem, "previousSibling" );
+	},
+	nextAll: function( elem ) {
+		return jQuery.dir( elem, "nextSibling" );
+	},
+	prevAll: function( elem ) {
+		return jQuery.dir( elem, "previousSibling" );
+	},
+	nextUntil: function( elem, i, until ) {
+		return jQuery.dir( elem, "nextSibling", until );
+	},
+	prevUntil: function( elem, i, until ) {
+		return jQuery.dir( elem, "previousSibling", until );
+	},
+	siblings: function( elem ) {
+		return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );
+	},
+	children: function( elem ) {
+		return jQuery.sibling( elem.firstChild );
+	},
+	contents: function( elem ) {
+		return elem.contentDocument || jQuery.merge( [], elem.childNodes );
+	}
+}, function( name, fn ) {
+	jQuery.fn[ name ] = function( until, selector ) {
+		var matched = jQuery.map( this, fn, until );
+
+		if ( name.slice( -5 ) !== "Until" ) {
+			selector = until;
+		}
+
+		if ( selector && typeof selector === "string" ) {
+			matched = jQuery.filter( selector, matched );
+		}
+
+		if ( this.length > 1 ) {
+			// Remove duplicates
+			if ( !guaranteedUnique[ name ] ) {
+				jQuery.unique( matched );
+			}
+
+			// Reverse order for parents* and prev-derivatives
+			if ( rparentsprev.test( name ) ) {
+				matched.reverse();
+			}
+		}
+
+		return this.pushStack( matched );
+	};
+});
+var rnotwhite = (/\S+/g);
+
+
+
+// String to Object options format cache
+var optionsCache = {};
+
+// Convert String-formatted options into Object-formatted ones and store in cache
+function createOptions( options ) {
+	var object = optionsCache[ options ] = {};
+	jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {
+		object[ flag ] = true;
+	});
+	return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ *	options: an optional list of space-separated options that will change how
+ *			the callback list behaves or a more traditional option object
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible options:
+ *
+ *	once:			will ensure the callback list can only be fired once (like a Deferred)
+ *
+ *	memory:			will keep track of previous values and will call any callback added
+ *					after the list has been fired right away with the latest "memorized"
+ *					values (like a Deferred)
+ *
+ *	unique:			will ensure a callback can only be added once (no duplicate in the list)
+ *
+ *	stopOnFalse:	interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( options ) {
+
+	// Convert options from String-formatted to Object-formatted if needed
+	// (we check in cache first)
+	options = typeof options === "string" ?
+		( optionsCache[ options ] || createOptions( options ) ) :
+		jQuery.extend( {}, options );
+
+	var // Last fire value (for non-forgettable lists)
+		memory,
+		// Flag to know if list was already fired
+		fired,
+		// Flag to know if list is currently firing
+		firing,
+		// First callback to fire (used internally by add and fireWith)
+		firingStart,
+		// End of the loop when firing
+		firingLength,
+		// Index of currently firing callback (modified by remove if needed)
+		firingIndex,
+		// Actual callback list
+		list = [],
+		// Stack of fire calls for repeatable lists
+		stack = !options.once && [],
+		// Fire callbacks
+		fire = function( data ) {
+			memory = options.memory && data;
+			fired = true;
+			firingIndex = firingStart || 0;
+			firingStart = 0;
+			firingLength = list.length;
+			firing = true;
+			for ( ; list && firingIndex < firingLength; firingIndex++ ) {
+				if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {
+					memory = false; // To prevent further calls using add
+					break;
+				}
+			}
+			firing = false;
+			if ( list ) {
+				if ( stack ) {
+					if ( stack.length ) {
+						fire( stack.shift() );
+					}
+				} else if ( memory ) {
+					list = [];
+				} else {
+					self.disable();
+				}
+			}
+		},
+		// Actual Callbacks object
+		self = {
+			// Add a callback or a collection of callbacks to the list
+			add: function() {
+				if ( list ) {
+					// First, we save the current length
+					var start = list.length;
+					(function add( args ) {
+						jQuery.each( args, function( _, arg ) {
+							var type = jQuery.type( arg );
+							if ( type === "function" ) {
+								if ( !options.unique || !self.has( arg ) ) {
+									list.push( arg );
+								}
+							} else if ( arg && arg.length && type !== "string" ) {
+								// Inspect recursively
+								add( arg );
+							}
+						});
+					})( arguments );
+					// Do we need to add the callbacks to the
+					// current firing batch?
+					if ( firing ) {
+						firingLength = list.length;
+					// With memory, if we're not firing then
+					// we should call right away
+					} else if ( memory ) {
+						firingStart = start;
+						fire( memory );
+					}
+				}
+				return this;
+			},
+			// Remove a callback from the list
+			remove: function() {
+				if ( list ) {
+					jQuery.each( arguments, function( _, arg ) {
+						var index;
+						while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
+							list.splice( index, 1 );
+							// Handle firing indexes
+							if ( firing ) {
+								if ( index <= firingLength ) {
+									firingLength--;
+								}
+								if ( index <= firingIndex ) {
+									firingIndex--;
+								}
+							}
+						}
+					});
+				}
+				return this;
+			},
+			// Check if a given callback is in the list.
+			// If no argument is given, return whether or not list has callbacks attached.
+			has: function( fn ) {
+				return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );
+			},
+			// Remove all callbacks from the list
+			empty: function() {
+				list = [];
+				firingLength = 0;
+				return this;
+			},
+			// Have the list do nothing anymore
+			disable: function() {
+				list = stack = memory = undefined;
+				return this;
+			},
+			// Is it disabled?
+			disabled: function() {
+				return !list;
+			},
+			// Lock the list in its current state
+			lock: function() {
+				stack = undefined;
+				if ( !memory ) {
+					self.disable();
+				}
+				return this;
+			},
+			// Is it locked?
+			locked: function() {
+				return !stack;
+			},
+			// Call all callbacks with the given context and arguments
+			fireWith: function( context, args ) {
+				if ( list && ( !fired || stack ) ) {
+					args = args || [];
+					args = [ context, args.slice ? args.slice() : args ];
+					if ( firing ) {
+						stack.push( args );
+					} else {
+						fire( args );
+					}
+				}
+				return this;
+			},
+			// Call all the callbacks with the given arguments
+			fire: function() {
+				self.fireWith( this, arguments );
+				return this;
+			},
+			// To know if the callbacks have already been called at least once
+			fired: function() {
+				return !!fired;
+			}
+		};
+
+	return self;
+};
+
+
+jQuery.extend({
+
+	Deferred: function( func ) {
+		var tuples = [
+				// action, add listener, listener list, final state
+				[ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ],
+				[ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ],
+				[ "notify", "progress", jQuery.Callbacks("memory") ]
+			],
+			state = "pending",
+			promise = {
+				state: function() {
+					return state;
+				},
+				always: function() {
+					deferred.done( arguments ).fail( arguments );
+					return this;
+				},
+				then: function( /* fnDone, fnFail, fnProgress */ ) {
+					var fns = arguments;
+					return jQuery.Deferred(function( newDefer ) {
+						jQuery.each( tuples, function( i, tuple ) {
+							var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
+							// deferred[ done | fail | progress ] for forwarding actions to newDefer
+							deferred[ tuple[1] ](function() {
+								var returned = fn && fn.apply( this, arguments );
+								if ( returned && jQuery.isFunction( returned.promise ) ) {
+									returned.promise()
+										.done( newDefer.resolve )
+										.fail( newDefer.reject )
+										.progress( newDefer.notify );
+								} else {
+									newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );
+								}
+							});
+						});
+						fns = null;
+					}).promise();
+				},
+				// Get a promise for this deferred
+				// If obj is provided, the promise aspect is added to the object
+				promise: function( obj ) {
+					return obj != null ? jQuery.extend( obj, promise ) : promise;
+				}
+			},
+			deferred = {};
+
+		// Keep pipe for back-compat
+		promise.pipe = promise.then;
+
+		// Add list-specific methods
+		jQuery.each( tuples, function( i, tuple ) {
+			var list = tuple[ 2 ],
+				stateString = tuple[ 3 ];
+
+			// promise[ done | fail | progress ] = list.add
+			promise[ tuple[1] ] = list.add;
+
+			// Handle state
+			if ( stateString ) {
+				list.add(function() {
+					// state = [ resolved | rejected ]
+					state = stateString;
+
+				// [ reject_list | resolve_list ].disable; progress_list.lock
+				}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
+			}
+
+			// deferred[ resolve | reject | notify ]
+			deferred[ tuple[0] ] = function() {
+				deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments );
+				return this;
+			};
+			deferred[ tuple[0] + "With" ] = list.fireWith;
+		});
+
+		// Make the deferred a promise
+		promise.promise( deferred );
+
+		// Call given func if any
+		if ( func ) {
+			func.call( deferred, deferred );
+		}
+
+		// All done!
+		return deferred;
+	},
+
+	// Deferred helper
+	when: function( subordinate /* , ..., subordinateN */ ) {
+		var i = 0,
+			resolveValues = slice.call( arguments ),
+			length = resolveValues.length,
+
+			// the count of uncompleted subordinates
+			remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
+
+			// the master Deferred. If resolveValues consist of only a single Deferred, just use that.
+			deferred = remaining === 1 ? subordinate : jQuery.Deferred(),
+
+			// Update function for both resolve and progress values
+			updateFunc = function( i, contexts, values ) {
+				return function( value ) {
+					contexts[ i ] = this;
+					values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
+					if ( values === progressValues ) {
+						deferred.notifyWith( contexts, values );
+					} else if ( !( --remaining ) ) {
+						deferred.resolveWith( contexts, values );
+					}
+				};
+			},
+
+			progressValues, progressContexts, resolveContexts;
+
+		// Add listeners to Deferred subordinates; treat others as resolved
+		if ( length > 1 ) {
+			progressValues = new Array( length );
+			progressContexts = new Array( length );
+			resolveContexts = new Array( length );
+			for ( ; i < length; i++ ) {
+				if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
+					resolveValues[ i ].promise()
+						.done( updateFunc( i, resolveContexts, resolveValues ) )
+						.fail( deferred.reject )
+						.progress( updateFunc( i, progressContexts, progressValues ) );
+				} else {
+					--remaining;
+				}
+			}
+		}
+
+		// If we're not waiting on anything, resolve the master
+		if ( !remaining ) {
+			deferred.resolveWith( resolveContexts, resolveValues );
+		}
+
+		return deferred.promise();
+	}
+});
+
+
+// The deferred used on DOM ready
+var readyList;
+
+jQuery.fn.ready = function( fn ) {
+	// Add the callback
+	jQuery.ready.promise().done( fn );
+
+	return this;
+};
+
+jQuery.extend({
+	// Is the DOM ready to be used? Set to true once it occurs.
+	isReady: false,
+
+	// A counter to track how many items to wait for before
+	// the ready event fires. See #6781
+	readyWait: 1,
+
+	// Hold (or release) the ready event
+	holdReady: function( hold ) {
+		if ( hold ) {
+			jQuery.readyWait++;
+		} else {
+			jQuery.ready( true );
+		}
+	},
+
+	// Handle when the DOM is ready
+	ready: function( wait ) {
+
+		// Abort if there are pending holds or we're already ready
+		if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+			return;
+		}
+
+		// Remember that the DOM is ready
+		jQuery.isReady = true;
+
+		// If a normal DOM Ready event fired, decrement, and wait if need be
+		if ( wait !== true && --jQuery.readyWait > 0 ) {
+			return;
+		}
+
+		// If there are functions bound, to execute
+		readyList.resolveWith( document, [ jQuery ] );
+
+		// Trigger any bound ready events
+		if ( jQuery.fn.triggerHandler ) {
+			jQuery( document ).triggerHandler( "ready" );
+			jQuery( document ).off( "ready" );
+		}
+	}
+});
+
+/**
+ * The ready event handler and self cleanup method
+ */
+function completed() {
+	document.removeEventListener( "DOMContentLoaded", completed, false );
+	window.removeEventListener( "load", completed, false );
+	jQuery.ready();
+}
+
+jQuery.ready.promise = function( obj ) {
+	if ( !readyList ) {
+
+		readyList = jQuery.Deferred();
+
+		// Catch cases where $(document).ready() is called after the browser event has already occurred.
+		// We once tried to use readyState "interactive" here, but it caused issues like the one
+		// discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15
+		if ( document.readyState === "complete" ) {
+			// Handle it asynchronously to allow scripts the opportunity to delay ready
+			setTimeout( jQuery.ready );
+
+		} else {
+
+			// Use the handy event callback
+			document.addEventListener( "DOMContentLoaded", completed, false );
+
+			// A fallback to window.onload, that will always work
+			window.addEventListener( "load", completed, false );
+		}
+	}
+	return readyList.promise( obj );
+};
+
+// Kick off the DOM ready check even if the user does not
+jQuery.ready.promise();
+
+
+
+
+// Multifunctional method to get and set values of a collection
+// The value/s can optionally be executed if it's a function
+var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
+	var i = 0,
+		len = elems.length,
+		bulk = key == null;
+
+	// Sets many values
+	if ( jQuery.type( key ) === "object" ) {
+		chainable = true;
+		for ( i in key ) {
+			jQuery.access( elems, fn, i, key[i], true, emptyGet, raw );
+		}
+
+	// Sets one value
+	} else if ( value !== undefined ) {
+		chainable = true;
+
+		if ( !jQuery.isFunction( value ) ) {
+			raw = true;
+		}
+
+		if ( bulk ) {
+			// Bulk operations run against the entire set
+			if ( raw ) {
+				fn.call( elems, value );
+				fn = null;
+
+			// ...except when executing function values
+			} else {
+				bulk = fn;
+				fn = function( elem, key, value ) {
+					return bulk.call( jQuery( elem ), value );
+				};
+			}
+		}
+
+		if ( fn ) {
+			for ( ; i < len; i++ ) {
+				fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );
+			}
+		}
+	}
+
+	return chainable ?
+		elems :
+
+		// Gets
+		bulk ?
+			fn.call( elems ) :
+			len ? fn( elems[0], key ) : emptyGet;
+};
+
+
+/**
+ * Determines whether an object can have data
+ */
+jQuery.acceptData = function( owner ) {
+	// Accepts only:
+	//  - Node
+	//    - Node.ELEMENT_NODE
+	//    - Node.DOCUMENT_NODE
+	//  - Object
+	//    - Any
+	/* jshint -W018 */
+	return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
+};
+
+
+function Data() {
+	// Support: Android<4,
+	// Old WebKit does not have Object.preventExtensions/freeze method,
+	// return new empty object instead with no [[set]] accessor
+	Object.defineProperty( this.cache = {}, 0, {
+		get: function() {
+			return {};
+		}
+	});
+
+	this.expando = jQuery.expando + Data.uid++;
+}
+
+Data.uid = 1;
+Data.accepts = jQuery.acceptData;
+
+Data.prototype = {
+	key: function( owner ) {
+		// We can accept data for non-element nodes in modern browsers,
+		// but we should not, see #8335.
+		// Always return the key for a frozen object.
+		if ( !Data.accepts( owner ) ) {
+			return 0;
+		}
+
+		var descriptor = {},
+			// Check if the owner object already has a cache key
+			unlock = owner[ this.expando ];
+
+		// If not, create one
+		if ( !unlock ) {
+			unlock = Data.uid++;
+
+			// Secure it in a non-enumerable, non-writable property
+			try {
+				descriptor[ this.expando ] = { value: unlock };
+				Object.defineProperties( owner, descriptor );
+
+			// Support: Android<4
+			// Fallback to a less secure definition
+			} catch ( e ) {
+				descriptor[ this.expando ] = unlock;
+				jQuery.extend( owner, descriptor );
+			}
+		}
+
+		// Ensure the cache object
+		if ( !this.cache[ unlock ] ) {
+			this.cache[ unlock ] = {};
+		}
+
+		return unlock;
+	},
+	set: function( owner, data, value ) {
+		var prop,
+			// There may be an unlock assigned to this node,
+			// if there is no entry for this "owner", create one inline
+			// and set the unlock as though an owner entry had always existed
+			unlock = this.key( owner ),
+			cache = this.cache[ unlock ];
+
+		// Handle: [ owner, key, value ] args
+		if ( typeof data === "string" ) {
+			cache[ data ] = value;
+
+		// Handle: [ owner, { properties } ] args
+		} else {
+			// Fresh assignments by object are shallow copied
+			if ( jQuery.isEmptyObject( cache ) ) {
+				jQuery.extend( this.cache[ unlock ], data );
+			// Otherwise, copy the properties one-by-one to the cache object
+			} else {
+				for ( prop in data ) {
+					cache[ prop ] = data[ prop ];
+				}
+			}
+		}
+		return cache;
+	},
+	get: function( owner, key ) {
+		// Either a valid cache is found, or will be created.
+		// New caches will be created and the unlock returned,
+		// allowing direct access to the newly created
+		// empty data object. A valid owner object must be provided.
+		var cache = this.cache[ this.key( owner ) ];
+
+		return key === undefined ?
+			cache : cache[ key ];
+	},
+	access: function( owner, key, value ) {
+		var stored;
+		// In cases where either:
+		//
+		//   1. No key was specified
+		//   2. A string key was specified, but no value provided
+		//
+		// Take the "read" path and allow the get method to determine
+		// which value to return, respectively either:
+		//
+		//   1. The entire cache object
+		//   2. The data stored at the key
+		//
+		if ( key === undefined ||
+				((key && typeof key === "string") && value === undefined) ) {
+
+			stored = this.get( owner, key );
+
+			return stored !== undefined ?
+				stored : this.get( owner, jQuery.camelCase(key) );
+		}
+
+		// [*]When the key is not a string, or both a key and value
+		// are specified, set or extend (existing objects) with either:
+		//
+		//   1. An object of properties
+		//   2. A key and value
+		//
+		this.set( owner, key, value );
+
+		// Since the "set" path can have two possible entry points
+		// return the expected data based on which path was taken[*]
+		return value !== undefined ? value : key;
+	},
+	remove: function( owner, key ) {
+		var i, name, camel,
+			unlock = this.key( owner ),
+			cache = this.cache[ unlock ];
+
+		if ( key === undefined ) {
+			this.cache[ unlock ] = {};
+
+		} else {
+			// Support array or space separated string of keys
+			if ( jQuery.isArray( key ) ) {
+				// If "name" is an array of keys...
+				// When data is initially created, via ("key", "val") signature,
+				// keys will be converted to camelCase.
+				// Since there is no way to tell _how_ a key was added, remove
+				// both plain key and camelCase key. #12786
+				// This will only penalize the array argument path.
+				name = key.concat( key.map( jQuery.camelCase ) );
+			} else {
+				camel = jQuery.camelCase( key );
+				// Try the string as a key before any manipulation
+				if ( key in cache ) {
+					name = [ key, camel ];
+				} else {
+					// If a key with the spaces exists, use it.
+					// Otherwise, create an array by matching non-whitespace
+					name = camel;
+					name = name in cache ?
+						[ name ] : ( name.match( rnotwhite ) || [] );
+				}
+			}
+
+			i = name.length;
+			while ( i-- ) {
+				delete cache[ name[ i ] ];
+			}
+		}
+	},
+	hasData: function( owner ) {
+		return !jQuery.isEmptyObject(
+			this.cache[ owner[ this.expando ] ] || {}
+		);
+	},
+	discard: function( owner ) {
+		if ( owner[ this.expando ] ) {
+			delete this.cache[ owner[ this.expando ] ];
+		}
+	}
+};
+var data_priv = new Data();
+
+var data_user = new Data();
+
+
+
+//	Implementation Summary
+//
+//	1. Enforce API surface and semantic compatibility with 1.9.x branch
+//	2. Improve the module's maintainability by reducing the storage
+//		paths to a single mechanism.
+//	3. Use the same single mechanism to support "private" and "user" data.
+//	4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
+//	5. Avoid exposing implementation details on user objects (eg. expando properties)
+//	6. Provide a clear path for implementation upgrade to WeakMap in 2014
+
+var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+	rmultiDash = /([A-Z])/g;
+
+function dataAttr( elem, key, data ) {
+	var name;
+
+	// If nothing was found internally, try to fetch any
+	// data from the HTML5 data-* attribute
+	if ( data === undefined && elem.nodeType === 1 ) {
+		name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
+		data = elem.getAttribute( name );
+
+		if ( typeof data === "string" ) {
+			try {
+				data = data === "true" ? true :
+					data === "false" ? false :
+					data === "null" ? null :
+					// Only convert to a number if it doesn't change the string
+					+data + "" === data ? +data :
+					rbrace.test( data ) ? jQuery.parseJSON( data ) :
+					data;
+			} catch( e ) {}
+
+			// Make sure we set the data so it isn't changed later
+			data_user.set( elem, key, data );
+		} else {
+			data = undefined;
+		}
+	}
+	return data;
+}
+
+jQuery.extend({
+	hasData: function( elem ) {
+		return data_user.hasData( elem ) || data_priv.hasData( elem );
+	},
+
+	data: function( elem, name, data ) {
+		return data_user.access( elem, name, data );
+	},
+
+	removeData: function( elem, name ) {
+		data_user.remove( elem, name );
+	},
+
+	// TODO: Now that all calls to _data and _removeData have been replaced
+	// with direct calls to data_priv methods, these can be deprecated.
+	_data: function( elem, name, data ) {
+		return data_priv.access( elem, name, data );
+	},
+
+	_removeData: function( elem, name ) {
+		data_priv.remove( elem, name );
+	}
+});
+
+jQuery.fn.extend({
+	data: function( key, value ) {
+		var i, name, data,
+			elem = this[ 0 ],
+			attrs = elem && elem.attributes;
+
+		// Gets all values
+		if ( key === undefined ) {
+			if ( this.length ) {
+				data = data_user.get( elem );
+
+				if ( elem.nodeType === 1 && !data_priv.get( elem, "hasDataAttrs" ) ) {
+					i = attrs.length;
+					while ( i-- ) {
+
+						// Support: IE11+
+						// The attrs elements can be null (#14894)
+						if ( attrs[ i ] ) {
+							name = attrs[ i ].name;
+							if ( name.indexOf( "data-" ) === 0 ) {
+								name = jQuery.camelCase( name.slice(5) );
+								dataAttr( elem, name, data[ name ] );
+							}
+						}
+					}
+					data_priv.set( elem, "hasDataAttrs", true );
+				}
+			}
+
+			return data;
+		}
+
+		// Sets multiple values
+		if ( typeof key === "object" ) {
+			return this.each(function() {
+				data_user.set( this, key );
+			});
+		}
+
+		return access( this, function( value ) {
+			var data,
+				camelKey = jQuery.camelCase( key );
+
+			// The calling jQuery object (element matches) is not empty
+			// (and therefore has an element appears at this[ 0 ]) and the
+			// `value` parameter was not undefined. An empty jQuery object
+			// will result in `undefined` for elem = this[ 0 ] which will
+			// throw an exception if an attempt to read a data cache is made.
+			if ( elem && value === undefined ) {
+				// Attempt to get data from the cache
+				// with the key as-is
+				data = data_user.get( elem, key );
+				if ( data !== undefined ) {
+					return data;
+				}
+
+				// Attempt to get data from the cache
+				// with the key camelized
+				data = data_user.get( elem, camelKey );
+				if ( data !== undefined ) {
+					return data;
+				}
+
+				// Attempt to "discover" the data in
+				// HTML5 custom data-* attrs
+				data = dataAttr( elem, camelKey, undefined );
+				if ( data !== undefined ) {
+					return data;
+				}
+
+				// We tried really hard, but the data doesn't exist.
+				return;
+			}
+
+			// Set the data...
+			this.each(function() {
+				// First, attempt to store a copy or reference of any
+				// data that might've been store with a camelCased key.
+				var data = data_user.get( this, camelKey );
+
+				// For HTML5 data-* attribute interop, we have to
+				// store property names with dashes in a camelCase form.
+				// This might not apply to all properties...*
+				data_user.set( this, camelKey, value );
+
+				// *... In the case of properties that might _actually_
+				// have dashes, we need to also store a copy of that
+				// unchanged property.
+				if ( key.indexOf("-") !== -1 && data !== undefined ) {
+					data_user.set( this, key, value );
+				}
+			});
+		}, null, value, arguments.length > 1, null, true );
+	},
+
+	removeData: function( key ) {
+		return this.each(function() {
+			data_user.remove( this, key );
+		});
+	}
+});
+
+
+jQuery.extend({
+	queue: function( elem, type, data ) {
+		var queue;
+
+		if ( elem ) {
+			type = ( type || "fx" ) + "queue";
+			queue = data_priv.get( elem, type );
+
+			// Speed up dequeue by getting out quickly if this is just a lookup
+			if ( data ) {
+				if ( !queue || jQuery.isArray( data ) ) {
+					queue = data_priv.access( elem, type, jQuery.makeArray(data) );
+				} else {
+					queue.push( data );
+				}
+			}
+			return queue || [];
+		}
+	},
+
+	dequeue: function( elem, type ) {
+		type = type || "fx";
+
+		var queue = jQuery.queue( elem, type ),
+			startLength = queue.length,
+			fn = queue.shift(),
+			hooks = jQuery._queueHooks( elem, type ),
+			next = function() {
+				jQuery.dequeue( elem, type );
+			};
+
+		// If the fx queue is dequeued, always remove the progress sentinel
+		if ( fn === "inprogress" ) {
+			fn = queue.shift();
+			startLength--;
+		}
+
+		if ( fn ) {
+
+			// Add a progress sentinel to prevent the fx queue from being
+			// automatically dequeued
+			if ( type === "fx" ) {
+				queue.unshift( "inprogress" );
+			}
+
+			// Clear up the last queue stop function
+			delete hooks.stop;
+			fn.call( elem, next, hooks );
+		}
+
+		if ( !startLength && hooks ) {
+			hooks.empty.fire();
+		}
+	},
+
+	// Not public - generate a queueHooks object, or return the current one
+	_queueHooks: function( elem, type ) {
+		var key = type + "queueHooks";
+		return data_priv.get( elem, key ) || data_priv.access( elem, key, {
+			empty: jQuery.Callbacks("once memory").add(function() {
+				data_priv.remove( elem, [ type + "queue", key ] );
+			})
+		});
+	}
+});
+
+jQuery.fn.extend({
+	queue: function( type, data ) {
+		var setter = 2;
+
+		if ( typeof type !== "string" ) {
+			data = type;
+			type = "fx";
+			setter--;
+		}
+
+		if ( arguments.length < setter ) {
+			return jQuery.queue( this[0], type );
+		}
+
+		return data === undefined ?
+			this :
+			this.each(function() {
+				var queue = jQuery.queue( this, type, data );
+
+				// Ensure a hooks for this queue
+				jQuery._queueHooks( this, type );
+
+				if ( type === "fx" && queue[0] !== "inprogress" ) {
+					jQuery.dequeue( this, type );
+				}
+			});
+	},
+	dequeue: function( type ) {
+		return this.each(function() {
+			jQuery.dequeue( this, type );
+		});
+	},
+	clearQueue: function( type ) {
+		return this.queue( type || "fx", [] );
+	},
+	// Get a promise resolved when queues of a certain type
+	// are emptied (fx is the type by default)
+	promise: function( type, obj ) {
+		var tmp,
+			count = 1,
+			defer = jQuery.Deferred(),
+			elements = this,
+			i = this.length,
+			resolve = function() {
+				if ( !( --count ) ) {
+					defer.resolveWith( elements, [ elements ] );
+				}
+			};
+
+		if ( typeof type !== "string" ) {
+			obj = type;
+			type = undefined;
+		}
+		type = type || "fx";
+
+		while ( i-- ) {
+			tmp = data_priv.get( elements[ i ], type + "queueHooks" );
+			if ( tmp && tmp.empty ) {
+				count++;
+				tmp.empty.add( resolve );
+			}
+		}
+		resolve();
+		return defer.promise( obj );
+	}
+});
+var pnum = (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source;
+
+var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
+
+var isHidden = function( elem, el ) {
+		// isHidden might be called from jQuery#filter function;
+		// in that case, element will be second argument
+		elem = el || elem;
+		return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem );
+	};
+
+var rcheckableType = (/^(?:checkbox|radio)$/i);
+
+
+
+(function() {
+	var fragment = document.createDocumentFragment(),
+		div = fragment.appendChild( document.createElement( "div" ) ),
+		input = document.createElement( "input" );
+
+	// Support: Safari<=5.1
+	// Check state lost if the name is set (#11217)
+	// Support: Windows Web Apps (WWA)
+	// `name` and `type` must use .setAttribute for WWA (#14901)
+	input.setAttribute( "type", "radio" );
+	input.setAttribute( "checked", "checked" );
+	input.setAttribute( "name", "t" );
+
+	div.appendChild( input );
+
+	// Support: Safari<=5.1, Android<4.2
+	// Older WebKit doesn't clone checked state correctly in fragments
+	support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+	// Support: IE<=11+
+	// Make sure textarea (and checkbox) defaultValue is properly cloned
+	div.innerHTML = "<textarea>x</textarea>";
+	support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
+})();
+var strundefined = typeof undefined;
+
+
+
+support.focusinBubbles = "onfocusin" in window;
+
+
+var
+	rkeyEvent = /^key/,
+	rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/,
+	rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
+	rtypenamespace = /^([^.]*)(?:\.(.+)|)$/;
+
+function returnTrue() {
+	return true;
+}
+
+function returnFalse() {
+	return false;
+}
+
+function safeActiveElement() {
+	try {
+		return document.activeElement;
+	} catch ( err ) { }
+}
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+	global: {},
+
+	add: function( elem, types, handler, data, selector ) {
+
+		var handleObjIn, eventHandle, tmp,
+			events, t, handleObj,
+			special, handlers, type, namespaces, origType,
+			elemData = data_priv.get( elem );
+
+		// Don't attach events to noData or text/comment nodes (but allow plain objects)
+		if ( !elemData ) {
+			return;
+		}
+
+		// Caller can pass in an object of custom data in lieu of the handler
+		if ( handler.handler ) {
+			handleObjIn = handler;
+			handler = handleObjIn.handler;
+			selector = handleObjIn.selector;
+		}
+
+		// Make sure that the handler has a unique ID, used to find/remove it later
+		if ( !handler.guid ) {
+			handler.guid = jQuery.guid++;
+		}
+
+		// Init the element's event structure and main handler, if this is the first
+		if ( !(events = elemData.events) ) {
+			events = elemData.events = {};
+		}
+		if ( !(eventHandle = elemData.handle) ) {
+			eventHandle = elemData.handle = function( e ) {
+				// Discard the second event of a jQuery.event.trigger() and
+				// when an event is called after a page has unloaded
+				return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ?
+					jQuery.event.dispatch.apply( elem, arguments ) : undefined;
+			};
+		}
+
+		// Handle multiple events separated by a space
+		types = ( types || "" ).match( rnotwhite ) || [ "" ];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[t] ) || [];
+			type = origType = tmp[1];
+			namespaces = ( tmp[2] || "" ).split( "." ).sort();
+
+			// There *must* be a type, no attaching namespace-only handlers
+			if ( !type ) {
+				continue;
+			}
+
+			// If event changes its type, use the special event handlers for the changed type
+			special = jQuery.event.special[ type ] || {};
+
+			// If selector defined, determine special event api type, otherwise given type
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+
+			// Update special based on newly reset type
+			special = jQuery.event.special[ type ] || {};
+
+			// handleObj is passed to all event handlers
+			handleObj = jQuery.extend({
+				type: type,
+				origType: origType,
+				data: data,
+				handler: handler,
+				guid: handler.guid,
+				selector: selector,
+				needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
+				namespace: namespaces.join(".")
+			}, handleObjIn );
+
+			// Init the event handler queue if we're the first
+			if ( !(handlers = events[ type ]) ) {
+				handlers = events[ type ] = [];
+				handlers.delegateCount = 0;
+
+				// Only use addEventListener if the special events handler returns false
+				if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+					if ( elem.addEventListener ) {
+						elem.addEventListener( type, eventHandle, false );
+					}
+				}
+			}
+
+			if ( special.add ) {
+				special.add.call( elem, handleObj );
+
+				if ( !handleObj.handler.guid ) {
+					handleObj.handler.guid = handler.guid;
+				}
+			}
+
+			// Add to the element's handler list, delegates in front
+			if ( selector ) {
+				handlers.splice( handlers.delegateCount++, 0, handleObj );
+			} else {
+				handlers.push( handleObj );
+			}
+
+			// Keep track of which events have ever been used, for event optimization
+			jQuery.event.global[ type ] = true;
+		}
+
+	},
+
+	// Detach an event or set of events from an element
+	remove: function( elem, types, handler, selector, mappedTypes ) {
+
+		var j, origCount, tmp,
+			events, t, handleObj,
+			special, handlers, type, namespaces, origType,
+			elemData = data_priv.hasData( elem ) && data_priv.get( elem );
+
+		if ( !elemData || !(events = elemData.events) ) {
+			return;
+		}
+
+		// Once for each type.namespace in types; type may be omitted
+		types = ( types || "" ).match( rnotwhite ) || [ "" ];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[t] ) || [];
+			type = origType = tmp[1];
+			namespaces = ( tmp[2] || "" ).split( "." ).sort();
+
+			// Unbind all events (on this namespace, if provided) for the element
+			if ( !type ) {
+				for ( type in events ) {
+					jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
+				}
+				continue;
+			}
+
+			special = jQuery.event.special[ type ] || {};
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+			handlers = events[ type ] || [];
+			tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" );
+
+			// Remove matching events
+			origCount = j = handlers.length;
+			while ( j-- ) {
+				handleObj = handlers[ j ];
+
+				if ( ( mappedTypes || origType === handleObj.origType ) &&
+					( !handler || handler.guid === handleObj.guid ) &&
+					( !tmp || tmp.test( handleObj.namespace ) ) &&
+					( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) {
+					handlers.splice( j, 1 );
+
+					if ( handleObj.selector ) {
+						handlers.delegateCount--;
+					}
+					if ( special.remove ) {
+						special.remove.call( elem, handleObj );
+					}
+				}
+			}
+
+			// Remove generic event handler if we removed something and no more handlers exist
+			// (avoids potential for endless recursion during removal of special event handlers)
+			if ( origCount && !handlers.length ) {
+				if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
+					jQuery.removeEvent( elem, type, elemData.handle );
+				}
+
+				delete events[ type ];
+			}
+		}
+
+		// Remove the expando if it's no longer used
+		if ( jQuery.isEmptyObject( events ) ) {
+			delete elemData.handle;
+			data_priv.remove( elem, "events" );
+		}
+	},
+
+	trigger: function( event, data, elem, onlyHandlers ) {
+
+		var i, cur, tmp, bubbleType, ontype, handle, special,
+			eventPath = [ elem || document ],
+			type = hasOwn.call( event, "type" ) ? event.type : event,
+			namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : [];
+
+		cur = tmp = elem = elem || document;
+
+		// Don't do events on text and comment nodes
+		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+			return;
+		}
+
+		// focus/blur morphs to focusin/out; ensure we're not firing them right now
+		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
+			return;
+		}
+
+		if ( type.indexOf(".") >= 0 ) {
+			// Namespaced trigger; create a regexp to match event type in handle()
+			namespaces = type.split(".");
+			type = namespaces.shift();
+			namespaces.sort();
+		}
+		ontype = type.indexOf(":") < 0 && "on" + type;
+
+		// Caller can pass in a jQuery.Event object, Object, or just an event type string
+		event = event[ jQuery.expando ] ?
+			event :
+			new jQuery.Event( type, typeof event === "object" && event );
+
+		// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
+		event.isTrigger = onlyHandlers ? 2 : 3;
+		event.namespace = namespaces.join(".");
+		event.namespace_re = event.namespace ?
+			new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) :
+			null;
+
+		// Clean up the event in case it is being reused
+		event.result = undefined;
+		if ( !event.target ) {
+			event.target = elem;
+		}
+
+		// Clone any incoming data and prepend the event, creating the handler arg list
+		data = data == null ?
+			[ event ] :
+			jQuery.makeArray( data, [ event ] );
+
+		// Allow special events to draw outside the lines
+		special = jQuery.event.special[ type ] || {};
+		if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
+			return;
+		}
+
+		// Determine event propagation path in advance, per W3C events spec (#9951)
+		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+		if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
+
+			bubbleType = special.delegateType || type;
+			if ( !rfocusMorph.test( bubbleType + type ) ) {
+				cur = cur.parentNode;
+			}
+			for ( ; cur; cur = cur.parentNode ) {
+				eventPath.push( cur );
+				tmp = cur;
+			}
+
+			// Only add window if we got to document (e.g., not plain obj or detached DOM)
+			if ( tmp === (elem.ownerDocument || document) ) {
+				eventPath.push( tmp.defaultView || tmp.parentWindow || window );
+			}
+		}
+
+		// Fire handlers on the event path
+		i = 0;
+		while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {
+
+			event.type = i > 1 ?
+				bubbleType :
+				special.bindType || type;
+
+			// jQuery handler
+			handle = ( data_priv.get( cur, "events" ) || {} )[ event.type ] && data_priv.get( cur, "handle" );
+			if ( handle ) {
+				handle.apply( cur, data );
+			}
+
+			// Native handler
+			handle = ontype && cur[ ontype ];
+			if ( handle && handle.apply && jQuery.acceptData( cur ) ) {
+				event.result = handle.apply( cur, data );
+				if ( event.result === false ) {
+					event.preventDefault();
+				}
+			}
+		}
+		event.type = type;
+
+		// If nobody prevented the default action, do it now
+		if ( !onlyHandlers && !event.isDefaultPrevented() ) {
+
+			if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&
+				jQuery.acceptData( elem ) ) {
+
+				// Call a native DOM method on the target with the same name name as the event.
+				// Don't do default actions on window, that's where global variables be (#6170)
+				if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
+
+					// Don't re-trigger an onFOO event when we call its FOO() method
+					tmp = elem[ ontype ];
+
+					if ( tmp ) {
+						elem[ ontype ] = null;
+					}
+
+					// Prevent re-triggering of the same event, since we already bubbled it above
+					jQuery.event.triggered = type;
+					elem[ type ]();
+					jQuery.event.triggered = undefined;
+
+					if ( tmp ) {
+						elem[ ontype ] = tmp;
+					}
+				}
+			}
+		}
+
+		return event.result;
+	},
+
+	dispatch: function( event ) {
+
+		// Make a writable jQuery.Event from the native event object
+		event = jQuery.event.fix( event );
+
+		var i, j, ret, matched, handleObj,
+			handlerQueue = [],
+			args = slice.call( arguments ),
+			handlers = ( data_priv.get( this, "events" ) || {} )[ event.type ] || [],
+			special = jQuery.event.special[ event.type ] || {};
+
+		// Use the fix-ed jQuery.Event rather than the (read-only) native event
+		args[0] = event;
+		event.delegateTarget = this;
+
+		// Call the preDispatch hook for the mapped type, and let it bail if desired
+		if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
+			return;
+		}
+
+		// Determine handlers
+		handlerQueue = jQuery.event.handlers.call( this, event, handlers );
+
+		// Run delegates first; they may want to stop propagation beneath us
+		i = 0;
+		while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {
+			event.currentTarget = matched.elem;
+
+			j = 0;
+			while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {
+
+				// Triggered event must either 1) have no namespace, or 2) have namespace(s)
+				// a subset or equal to those in the bound event (both can have no namespace).
+				if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {
+
+					event.handleObj = handleObj;
+					event.data = handleObj.data;
+
+					ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )
+							.apply( matched.elem, args );
+
+					if ( ret !== undefined ) {
+						if ( (event.result = ret) === false ) {
+							event.preventDefault();
+							event.stopPropagation();
+						}
+					}
+				}
+			}
+		}
+
+		// Call the postDispatch hook for the mapped type
+		if ( special.postDispatch ) {
+			special.postDispatch.call( this, event );
+		}
+
+		return event.result;
+	},
+
+	handlers: function( event, handlers ) {
+		var i, matches, sel, handleObj,
+			handlerQueue = [],
+			delegateCount = handlers.delegateCount,
+			cur = event.target;
+
+		// Find delegate handlers
+		// Black-hole SVG <use> instance trees (#13180)
+		// Avoid non-left-click bubbling in Firefox (#3861)
+		if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) {
+
+			for ( ; cur !== this; cur = cur.parentNode || this ) {
+
+				// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
+				if ( cur.disabled !== true || event.type !== "click" ) {
+					matches = [];
+					for ( i = 0; i < delegateCount; i++ ) {
+						handleObj = handlers[ i ];
+
+						// Don't conflict with Object.prototype properties (#13203)
+						sel = handleObj.selector + " ";
+
+						if ( matches[ sel ] === undefined ) {
+							matches[ sel ] = handleObj.needsContext ?
+								jQuery( sel, this ).index( cur ) >= 0 :
+								jQuery.find( sel, this, null, [ cur ] ).length;
+						}
+						if ( matches[ sel ] ) {
+							matches.push( handleObj );
+						}
+					}
+					if ( matches.length ) {
+						handlerQueue.push({ elem: cur, handlers: matches });
+					}
+				}
+			}
+		}
+
+		// Add the remaining (directly-bound) handlers
+		if ( delegateCount < handlers.length ) {
+			handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });
+		}
+
+		return handlerQueue;
+	},
+
+	// Includes some event props shared by KeyEvent and MouseEvent
+	props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
+
+	fixHooks: {},
+
+	keyHooks: {
+		props: "char charCode key keyCode".split(" "),
+		filter: function( event, original ) {
+
+			// Add which for key events
+			if ( event.which == null ) {
+				event.which = original.charCode != null ? original.charCode : original.keyCode;
+			}
+
+			return event;
+		}
+	},
+
+	mouseHooks: {
+		props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
+		filter: function( event, original ) {
+			var eventDoc, doc, body,
+				button = original.button;
+
+			// Calculate pageX/Y if missing and clientX/Y available
+			if ( event.pageX == null && original.clientX != null ) {
+				eventDoc = event.target.ownerDocument || document;
+				doc = eventDoc.documentElement;
+				body = eventDoc.body;
+
+				event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );
+				event.pageY = original.clientY + ( doc && doc.scrollTop  || body && body.scrollTop  || 0 ) - ( doc && doc.clientTop  || body && body.clientTop  || 0 );
+			}
+
+			// Add which for click: 1 === left; 2 === middle; 3 === right
+			// Note: button is not normalized, so don't use it
+			if ( !event.which && button !== undefined ) {
+				event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
+			}
+
+			return event;
+		}
+	},
+
+	fix: function( event ) {
+		if ( event[ jQuery.expando ] ) {
+			return event;
+		}
+
+		// Create a writable copy of the event object and normalize some properties
+		var i, prop, copy,
+			type = event.type,
+			originalEvent = event,
+			fixHook = this.fixHooks[ type ];
+
+		if ( !fixHook ) {
+			this.fixHooks[ type ] = fixHook =
+				rmouseEvent.test( type ) ? this.mouseHooks :
+				rkeyEvent.test( type ) ? this.keyHooks :
+				{};
+		}
+		copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
+
+		event = new jQuery.Event( originalEvent );
+
+		i = copy.length;
+		while ( i-- ) {
+			prop = copy[ i ];
+			event[ prop ] = originalEvent[ prop ];
+		}
+
+		// Support: Cordova 2.5 (WebKit) (#13255)
+		// All events should have a target; Cordova deviceready doesn't
+		if ( !event.target ) {
+			event.target = document;
+		}
+
+		// Support: Safari 6.0+, Chrome<28
+		// Target should not be a text node (#504, #13143)
+		if ( event.target.nodeType === 3 ) {
+			event.target = event.target.parentNode;
+		}
+
+		return fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
+	},
+
+	special: {
+		load: {
+			// Prevent triggered image.load events from bubbling to window.load
+			noBubble: true
+		},
+		focus: {
+			// Fire native event if possible so blur/focus sequence is correct
+			trigger: function() {
+				if ( this !== safeActiveElement() && this.focus ) {
+					this.focus();
+					return false;
+				}
+			},
+			delegateType: "focusin"
+		},
+		blur: {
+			trigger: function() {
+				if ( this === safeActiveElement() && this.blur ) {
+					this.blur();
+					return false;
+				}
+			},
+			delegateType: "focusout"
+		},
+		click: {
+			// For checkbox, fire native event so checked state will be right
+			trigger: function() {
+				if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) {
+					this.click();
+					return false;
+				}
+			},
+
+			// For cross-browser consistency, don't fire native .click() on links
+			_default: function( event ) {
+				return jQuery.nodeName( event.target, "a" );
+			}
+		},
+
+		beforeunload: {
+			postDispatch: function( event ) {
+
+				// Support: Firefox 20+
+				// Firefox doesn't alert if the returnValue field is not set.
+				if ( event.result !== undefined && event.originalEvent ) {
+					event.originalEvent.returnValue = event.result;
+				}
+			}
+		}
+	},
+
+	simulate: function( type, elem, event, bubble ) {
+		// Piggyback on a donor event to simulate a different one.
+		// Fake originalEvent to avoid donor's stopPropagation, but if the
+		// simulated event prevents default then we do the same on the donor.
+		var e = jQuery.extend(
+			new jQuery.Event(),
+			event,
+			{
+				type: type,
+				isSimulated: true,
+				originalEvent: {}
+			}
+		);
+		if ( bubble ) {
+			jQuery.event.trigger( e, null, elem );
+		} else {
+			jQuery.event.dispatch.call( elem, e );
+		}
+		if ( e.isDefaultPrevented() ) {
+			event.preventDefault();
+		}
+	}
+};
+
+jQuery.removeEvent = function( elem, type, handle ) {
+	if ( elem.removeEventListener ) {
+		elem.removeEventListener( type, handle, false );
+	}
+};
+
+jQuery.Event = function( src, props ) {
+	// Allow instantiation without the 'new' keyword
+	if ( !(this instanceof jQuery.Event) ) {
+		return new jQuery.Event( src, props );
+	}
+
+	// Event object
+	if ( src && src.type ) {
+		this.originalEvent = src;
+		this.type = src.type;
+
+		// Events bubbling up the document may have been marked as prevented
+		// by a handler lower down the tree; reflect the correct value.
+		this.isDefaultPrevented = src.defaultPrevented ||
+				src.defaultPrevented === undefined &&
+				// Support: Android<4.0
+				src.returnValue === false ?
+			returnTrue :
+			returnFalse;
+
+	// Event type
+	} else {
+		this.type = src;
+	}
+
+	// Put explicitly provided properties onto the event object
+	if ( props ) {
+		jQuery.extend( this, props );
+	}
+
+	// Create a timestamp if incoming event doesn't have one
+	this.timeStamp = src && src.timeStamp || jQuery.now();
+
+	// Mark it as fixed
+	this[ jQuery.expando ] = true;
+};
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+	isDefaultPrevented: returnFalse,
+	isPropagationStopped: returnFalse,
+	isImmediatePropagationStopped: returnFalse,
+
+	preventDefault: function() {
+		var e = this.originalEvent;
+
+		this.isDefaultPrevented = returnTrue;
+
+		if ( e && e.preventDefault ) {
+			e.preventDefault();
+		}
+	},
+	stopPropagation: function() {
+		var e = this.originalEvent;
+
+		this.isPropagationStopped = returnTrue;
+
+		if ( e && e.stopPropagation ) {
+			e.stopPropagation();
+		}
+	},
+	stopImmediatePropagation: function() {
+		var e = this.originalEvent;
+
+		this.isImmediatePropagationStopped = returnTrue;
+
+		if ( e && e.stopImmediatePropagation ) {
+			e.stopImmediatePropagation();
+		}
+
+		this.stopPropagation();
+	}
+};
+
+// Create mouseenter/leave events using mouseover/out and event-time checks
+// Support: Chrome 15+
+jQuery.each({
+	mouseenter: "mouseover",
+	mouseleave: "mouseout",
+	pointerenter: "pointerover",
+	pointerleave: "pointerout"
+}, function( orig, fix ) {
+	jQuery.event.special[ orig ] = {
+		delegateType: fix,
+		bindType: fix,
+
+		handle: function( event ) {
+			var ret,
+				target = this,
+				related = event.relatedTarget,
+				handleObj = event.handleObj;
+
+			// For mousenter/leave call the handler if related is outside the target.
+			// NB: No relatedTarget if the mouse left/entered the browser window
+			if ( !related || (related !== target && !jQuery.contains( target, related )) ) {
+				event.type = handleObj.origType;
+				ret = handleObj.handler.apply( this, arguments );
+				event.type = fix;
+			}
+			return ret;
+		}
+	};
+});
+
+// Support: Firefox, Chrome, Safari
+// Create "bubbling" focus and blur events
+if ( !support.focusinBubbles ) {
+	jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+		// Attach a single capturing handler on the document while someone wants focusin/focusout
+		var handler = function( event ) {
+				jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );
+			};
+
+		jQuery.event.special[ fix ] = {
+			setup: function() {
+				var doc = this.ownerDocument || this,
+					attaches = data_priv.access( doc, fix );
+
+				if ( !attaches ) {
+					doc.addEventListener( orig, handler, true );
+				}
+				data_priv.access( doc, fix, ( attaches || 0 ) + 1 );
+			},
+			teardown: function() {
+				var doc = this.ownerDocument || this,
+					attaches = data_priv.access( doc, fix ) - 1;
+
+				if ( !attaches ) {
+					doc.removeEventListener( orig, handler, true );
+					data_priv.remove( doc, fix );
+
+				} else {
+					data_priv.access( doc, fix, attaches );
+				}
+			}
+		};
+	});
+}
+
+jQuery.fn.extend({
+
+	on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
+		var origFn, type;
+
+		// Types can be a map of types/handlers
+		if ( typeof types === "object" ) {
+			// ( types-Object, selector, data )
+			if ( typeof selector !== "string" ) {
+				// ( types-Object, data )
+				data = data || selector;
+				selector = undefined;
+			}
+			for ( type in types ) {
+				this.on( type, selector, data, types[ type ], one );
+			}
+			return this;
+		}
+
+		if ( data == null && fn == null ) {
+			// ( types, fn )
+			fn = selector;
+			data = selector = undefined;
+		} else if ( fn == null ) {
+			if ( typeof selector === "string" ) {
+				// ( types, selector, fn )
+				fn = data;
+				data = undefined;
+			} else {
+				// ( types, data, fn )
+				fn = data;
+				data = selector;
+				selector = undefined;
+			}
+		}
+		if ( fn === false ) {
+			fn = returnFalse;
+		} else if ( !fn ) {
+			return this;
+		}
+
+		if ( one === 1 ) {
+			origFn = fn;
+			fn = function( event ) {
+				// Can use an empty set, since event contains the info
+				jQuery().off( event );
+				return origFn.apply( this, arguments );
+			};
+			// Use same guid so caller can remove using origFn
+			fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+		}
+		return this.each( function() {
+			jQuery.event.add( this, types, fn, data, selector );
+		});
+	},
+	one: function( types, selector, data, fn ) {
+		return this.on( types, selector, data, fn, 1 );
+	},
+	off: function( types, selector, fn ) {
+		var handleObj, type;
+		if ( types && types.preventDefault && types.handleObj ) {
+			// ( event )  dispatched jQuery.Event
+			handleObj = types.handleObj;
+			jQuery( types.delegateTarget ).off(
+				handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType,
+				handleObj.selector,
+				handleObj.handler
+			);
+			return this;
+		}
+		if ( typeof types === "object" ) {
+			// ( types-object [, selector] )
+			for ( type in types ) {
+				this.off( type, selector, types[ type ] );
+			}
+			return this;
+		}
+		if ( selector === false || typeof selector === "function" ) {
+			// ( types [, fn] )
+			fn = selector;
+			selector = undefined;
+		}
+		if ( fn === false ) {
+			fn = returnFalse;
+		}
+		return this.each(function() {
+			jQuery.event.remove( this, types, fn, selector );
+		});
+	},
+
+	trigger: function( type, data ) {
+		return this.each(function() {
+			jQuery.event.trigger( type, data, this );
+		});
+	},
+	triggerHandler: function( type, data ) {
+		var elem = this[0];
+		if ( elem ) {
+			return jQuery.event.trigger( type, data, elem, true );
+		}
+	}
+});
+
+
+var
+	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
+	rtagName = /<([\w:]+)/,
+	rhtml = /<|&#?\w+;/,
+	rnoInnerhtml = /<(?:script|style|link)/i,
+	// checked="checked" or checked
+	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+	rscriptType = /^$|\/(?:java|ecma)script/i,
+	rscriptTypeMasked = /^true\/(.*)/,
+	rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
+
+	// We have to close these tags to support XHTML (#13200)
+	wrapMap = {
+
+		// Support: IE9
+		option: [ 1, "<select multiple='multiple'>", "</select>" ],
+
+		thead: [ 1, "<table>", "</table>" ],
+		col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
+		tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+		td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+
+		_default: [ 0, "", "" ]
+	};
+
+// Support: IE9
+wrapMap.optgroup = wrapMap.option;
+
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+// Support: 1.x compatibility
+// Manipulating tables requires a tbody
+function manipulationTarget( elem, content ) {
+	return jQuery.nodeName( elem, "table" ) &&
+		jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ?
+
+		elem.getElementsByTagName("tbody")[0] ||
+			elem.appendChild( elem.ownerDocument.createElement("tbody") ) :
+		elem;
+}
+
+// Replace/restore the type attribute of script elements for safe DOM manipulation
+function disableScript( elem ) {
+	elem.type = (elem.getAttribute("type") !== null) + "/" + elem.type;
+	return elem;
+}
+function restoreScript( elem ) {
+	var match = rscriptTypeMasked.exec( elem.type );
+
+	if ( match ) {
+		elem.type = match[ 1 ];
+	} else {
+		elem.removeAttribute("type");
+	}
+
+	return elem;
+}
+
+// Mark scripts as having already been evaluated
+function setGlobalEval( elems, refElements ) {
+	var i = 0,
+		l = elems.length;
+
+	for ( ; i < l; i++ ) {
+		data_priv.set(
+			elems[ i ], "globalEval", !refElements || data_priv.get( refElements[ i ], "globalEval" )
+		);
+	}
+}
+
+function cloneCopyEvent( src, dest ) {
+	var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
+
+	if ( dest.nodeType !== 1 ) {
+		return;
+	}
+
+	// 1. Copy private data: events, handlers, etc.
+	if ( data_priv.hasData( src ) ) {
+		pdataOld = data_priv.access( src );
+		pdataCur = data_priv.set( dest, pdataOld );
+		events = pdataOld.events;
+
+		if ( events ) {
+			delete pdataCur.handle;
+			pdataCur.events = {};
+
+			for ( type in events ) {
+				for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+					jQuery.event.add( dest, type, events[ type ][ i ] );
+				}
+			}
+		}
+	}
+
+	// 2. Copy user data
+	if ( data_user.hasData( src ) ) {
+		udataOld = data_user.access( src );
+		udataCur = jQuery.extend( {}, udataOld );
+
+		data_user.set( dest, udataCur );
+	}
+}
+
+function getAll( context, tag ) {
+	var ret = context.getElementsByTagName ? context.getElementsByTagName( tag || "*" ) :
+			context.querySelectorAll ? context.querySelectorAll( tag || "*" ) :
+			[];
+
+	return tag === undefined || tag && jQuery.nodeName( context, tag ) ?
+		jQuery.merge( [ context ], ret ) :
+		ret;
+}
+
+// Fix IE bugs, see support tests
+function fixInput( src, dest ) {
+	var nodeName = dest.nodeName.toLowerCase();
+
+	// Fails to persist the checked state of a cloned checkbox or radio button.
+	if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
+		dest.checked = src.checked;
+
+	// Fails to return the selected option to the default selected state when cloning options
+	} else if ( nodeName === "input" || nodeName === "textarea" ) {
+		dest.defaultValue = src.defaultValue;
+	}
+}
+
+jQuery.extend({
+	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+		var i, l, srcElements, destElements,
+			clone = elem.cloneNode( true ),
+			inPage = jQuery.contains( elem.ownerDocument, elem );
+
+		// Fix IE cloning issues
+		if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
+				!jQuery.isXMLDoc( elem ) ) {
+
+			// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2
+			destElements = getAll( clone );
+			srcElements = getAll( elem );
+
+			for ( i = 0, l = srcElements.length; i < l; i++ ) {
+				fixInput( srcElements[ i ], destElements[ i ] );
+			}
+		}
+
+		// Copy the events from the original to the clone
+		if ( dataAndEvents ) {
+			if ( deepDataAndEvents ) {
+				srcElements = srcElements || getAll( elem );
+				destElements = destElements || getAll( clone );
+
+				for ( i = 0, l = srcElements.length; i < l; i++ ) {
+					cloneCopyEvent( srcElements[ i ], destElements[ i ] );
+				}
+			} else {
+				cloneCopyEvent( elem, clone );
+			}
+		}
+
+		// Preserve script evaluation history
+		destElements = getAll( clone, "script" );
+		if ( destElements.length > 0 ) {
+			setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
+		}
+
+		// Return the cloned set
+		return clone;
+	},
+
+	buildFragment: function( elems, context, scripts, selection ) {
+		var elem, tmp, tag, wrap, contains, j,
+			fragment = context.createDocumentFragment(),
+			nodes = [],
+			i = 0,
+			l = elems.length;
+
+		for ( ; i < l; i++ ) {
+			elem = elems[ i ];
+
+			if ( elem || elem === 0 ) {
+
+				// Add nodes directly
+				if ( jQuery.type( elem ) === "object" ) {
+					// Support: QtWebKit, PhantomJS
+					// push.apply(_, arraylike) throws on ancient WebKit
+					jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
+
+				// Convert non-html into a text node
+				} else if ( !rhtml.test( elem ) ) {
+					nodes.push( context.createTextNode( elem ) );
+
+				// Convert html into DOM nodes
+				} else {
+					tmp = tmp || fragment.appendChild( context.createElement("div") );
+
+					// Deserialize a standard representation
+					tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
+					wrap = wrapMap[ tag ] || wrapMap._default;
+					tmp.innerHTML = wrap[ 1 ] + elem.replace( rxhtmlTag, "<$1></$2>" ) + wrap[ 2 ];
+
+					// Descend through wrappers to the right content
+					j = wrap[ 0 ];
+					while ( j-- ) {
+						tmp = tmp.lastChild;
+					}
+
+					// Support: QtWebKit, PhantomJS
+					// push.apply(_, arraylike) throws on ancient WebKit
+					jQuery.merge( nodes, tmp.childNodes );
+
+					// Remember the top-level container
+					tmp = fragment.firstChild;
+
+					// Ensure the created nodes are orphaned (#12392)
+					tmp.textContent = "";
+				}
+			}
+		}
+
+		// Remove wrapper from fragment
+		fragment.textContent = "";
+
+		i = 0;
+		while ( (elem = nodes[ i++ ]) ) {
+
+			// #4087 - If origin and destination elements are the same, and this is
+			// that element, do not do anything
+			if ( selection && jQuery.inArray( elem, selection ) !== -1 ) {
+				continue;
+			}
+
+			contains = jQuery.contains( elem.ownerDocument, elem );
+
+			// Append to fragment
+			tmp = getAll( fragment.appendChild( elem ), "script" );
+
+			// Preserve script evaluation history
+			if ( contains ) {
+				setGlobalEval( tmp );
+			}
+
+			// Capture executables
+			if ( scripts ) {
+				j = 0;
+				while ( (elem = tmp[ j++ ]) ) {
+					if ( rscriptType.test( elem.type || "" ) ) {
+						scripts.push( elem );
+					}
+				}
+			}
+		}
+
+		return fragment;
+	},
+
+	cleanData: function( elems ) {
+		var data, elem, type, key,
+			special = jQuery.event.special,
+			i = 0;
+
+		for ( ; (elem = elems[ i ]) !== undefined; i++ ) {
+			if ( jQuery.acceptData( elem ) ) {
+				key = elem[ data_priv.expando ];
+
+				if ( key && (data = data_priv.cache[ key ]) ) {
+					if ( data.events ) {
+						for ( type in data.events ) {
+							if ( special[ type ] ) {
+								jQuery.event.remove( elem, type );
+
+							// This is a shortcut to avoid jQuery.event.remove's overhead
+							} else {
+								jQuery.removeEvent( elem, type, data.handle );
+							}
+						}
+					}
+					if ( data_priv.cache[ key ] ) {
+						// Discard any remaining `private` data
+						delete data_priv.cache[ key ];
+					}
+				}
+			}
+			// Discard any remaining `user` data
+			delete data_user.cache[ elem[ data_user.expando ] ];
+		}
+	}
+});
+
+jQuery.fn.extend({
+	text: function( value ) {
+		return access( this, function( value ) {
+			return value === undefined ?
+				jQuery.text( this ) :
+				this.empty().each(function() {
+					if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+						this.textContent = value;
+					}
+				});
+		}, null, value, arguments.length );
+	},
+
+	append: function() {
+		return this.domManip( arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.appendChild( elem );
+			}
+		});
+	},
+
+	prepend: function() {
+		return this.domManip( arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.insertBefore( elem, target.firstChild );
+			}
+		});
+	},
+
+	before: function() {
+		return this.domManip( arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this );
+			}
+		});
+	},
+
+	after: function() {
+		return this.domManip( arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this.nextSibling );
+			}
+		});
+	},
+
+	remove: function( selector, keepData /* Internal Use Only */ ) {
+		var elem,
+			elems = selector ? jQuery.filter( selector, this ) : this,
+			i = 0;
+
+		for ( ; (elem = elems[i]) != null; i++ ) {
+			if ( !keepData && elem.nodeType === 1 ) {
+				jQuery.cleanData( getAll( elem ) );
+			}
+
+			if ( elem.parentNode ) {
+				if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {
+					setGlobalEval( getAll( elem, "script" ) );
+				}
+				elem.parentNode.removeChild( elem );
+			}
+		}
+
+		return this;
+	},
+
+	empty: function() {
+		var elem,
+			i = 0;
+
+		for ( ; (elem = this[i]) != null; i++ ) {
+			if ( elem.nodeType === 1 ) {
+
+				// Prevent memory leaks
+				jQuery.cleanData( getAll( elem, false ) );
+
+				// Remove any remaining nodes
+				elem.textContent = "";
+			}
+		}
+
+		return this;
+	},
+
+	clone: function( dataAndEvents, deepDataAndEvents ) {
+		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+		return this.map(function() {
+			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+		});
+	},
+
+	html: function( value ) {
+		return access( this, function( value ) {
+			var elem = this[ 0 ] || {},
+				i = 0,
+				l = this.length;
+
+			if ( value === undefined && elem.nodeType === 1 ) {
+				return elem.innerHTML;
+			}
+
+			// See if we can take a shortcut and just use innerHTML
+			if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+				!wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
+
+				value = value.replace( rxhtmlTag, "<$1></$2>" );
+
+				try {
+					for ( ; i < l; i++ ) {
+						elem = this[ i ] || {};
+
+						// Remove element nodes and prevent memory leaks
+						if ( elem.nodeType === 1 ) {
+							jQuery.cleanData( getAll( elem, false ) );
+							elem.innerHTML = value;
+						}
+					}
+
+					elem = 0;
+
+				// If using innerHTML throws an exception, use the fallback method
+				} catch( e ) {}
+			}
+
+			if ( elem ) {
+				this.empty().append( value );
+			}
+		}, null, value, arguments.length );
+	},
+
+	replaceWith: function() {
+		var arg = arguments[ 0 ];
+
+		// Make the changes, replacing each context element with the new content
+		this.domManip( arguments, function( elem ) {
+			arg = this.parentNode;
+
+			jQuery.cleanData( getAll( this ) );
+
+			if ( arg ) {
+				arg.replaceChild( elem, this );
+			}
+		});
+
+		// Force removal if there was no new content (e.g., from empty arguments)
+		return arg && (arg.length || arg.nodeType) ? this : this.remove();
+	},
+
+	detach: function( selector ) {
+		return this.remove( selector, true );
+	},
+
+	domManip: function( args, callback ) {
+
+		// Flatten any nested arrays
+		args = concat.apply( [], args );
+
+		var fragment, first, scripts, hasScripts, node, doc,
+			i = 0,
+			l = this.length,
+			set = this,
+			iNoClone = l - 1,
+			value = args[ 0 ],
+			isFunction = jQuery.isFunction( value );
+
+		// We can't cloneNode fragments that contain checked, in WebKit
+		if ( isFunction ||
+				( l > 1 && typeof value === "string" &&
+					!support.checkClone && rchecked.test( value ) ) ) {
+			return this.each(function( index ) {
+				var self = set.eq( index );
+				if ( isFunction ) {
+					args[ 0 ] = value.call( this, index, self.html() );
+				}
+				self.domManip( args, callback );
+			});
+		}
+
+		if ( l ) {
+			fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this );
+			first = fragment.firstChild;
+
+			if ( fragment.childNodes.length === 1 ) {
+				fragment = first;
+			}
+
+			if ( first ) {
+				scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
+				hasScripts = scripts.length;
+
+				// Use the original fragment for the last item instead of the first because it can end up
+				// being emptied incorrectly in certain situations (#8070).
+				for ( ; i < l; i++ ) {
+					node = fragment;
+
+					if ( i !== iNoClone ) {
+						node = jQuery.clone( node, true, true );
+
+						// Keep references to cloned scripts for later restoration
+						if ( hasScripts ) {
+							// Support: QtWebKit
+							// jQuery.merge because push.apply(_, arraylike) throws
+							jQuery.merge( scripts, getAll( node, "script" ) );
+						}
+					}
+
+					callback.call( this[ i ], node, i );
+				}
+
+				if ( hasScripts ) {
+					doc = scripts[ scripts.length - 1 ].ownerDocument;
+
+					// Reenable scripts
+					jQuery.map( scripts, restoreScript );
+
+					// Evaluate executable scripts on first document insertion
+					for ( i = 0; i < hasScripts; i++ ) {
+						node = scripts[ i ];
+						if ( rscriptType.test( node.type || "" ) &&
+							!data_priv.access( node, "globalEval" ) && jQuery.contains( doc, node ) ) {
+
+							if ( node.src ) {
+								// Optional AJAX dependency, but won't run scripts if not present
+								if ( jQuery._evalUrl ) {
+									jQuery._evalUrl( node.src );
+								}
+							} else {
+								jQuery.globalEval( node.textContent.replace( rcleanScript, "" ) );
+							}
+						}
+					}
+				}
+			}
+		}
+
+		return this;
+	}
+});
+
+jQuery.each({
+	appendTo: "append",
+	prependTo: "prepend",
+	insertBefore: "before",
+	insertAfter: "after",
+	replaceAll: "replaceWith"
+}, function( name, original ) {
+	jQuery.fn[ name ] = function( selector ) {
+		var elems,
+			ret = [],
+			insert = jQuery( selector ),
+			last = insert.length - 1,
+			i = 0;
+
+		for ( ; i <= last; i++ ) {
+			elems = i === last ? this : this.clone( true );
+			jQuery( insert[ i ] )[ original ]( elems );
+
+			// Support: QtWebKit
+			// .get() because push.apply(_, arraylike) throws
+			push.apply( ret, elems.get() );
+		}
+
+		return this.pushStack( ret );
+	};
+});
+
+
+var iframe,
+	elemdisplay = {};
+
+/**
+ * Retrieve the actual display of a element
+ * @param {String} name nodeName of the element
+ * @param {Object} doc Document object
+ */
+// Called only from within defaultDisplay
+function actualDisplay( name, doc ) {
+	var style,
+		elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
+
+		// getDefaultComputedStyle might be reliably used only on attached element
+		display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ?
+
+			// Use of this method is a temporary fix (more like optimization) until something better comes along,
+			// since it was removed from specification and supported only in FF
+			style.display : jQuery.css( elem[ 0 ], "display" );
+
+	// We don't have any data stored on the element,
+	// so use "detach" method as fast way to get rid of the element
+	elem.detach();
+
+	return display;
+}
+
+/**
+ * Try to determine the default display value of an element
+ * @param {String} nodeName
+ */
+function defaultDisplay( nodeName ) {
+	var doc = document,
+		display = elemdisplay[ nodeName ];
+
+	if ( !display ) {
+		display = actualDisplay( nodeName, doc );
+
+		// If the simple way fails, read from inside an iframe
+		if ( display === "none" || !display ) {
+
+			// Use the already-created iframe if possible
+			iframe = (iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" )).appendTo( doc.documentElement );
+
+			// Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse
+			doc = iframe[ 0 ].contentDocument;
+
+			// Support: IE
+			doc.write();
+			doc.close();
+
+			display = actualDisplay( nodeName, doc );
+			iframe.detach();
+		}
+
+		// Store the correct default display
+		elemdisplay[ nodeName ] = display;
+	}
+
+	return display;
+}
+var rmargin = (/^margin/);
+
+var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
+
+var getStyles = function( elem ) {
+		// Support: IE<=11+, Firefox<=30+ (#15098, #14150)
+		// IE throws on elements created in popups
+		// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
+		if ( elem.ownerDocument.defaultView.opener ) {
+			return elem.ownerDocument.defaultView.getComputedStyle( elem, null );
+		}
+
+		return window.getComputedStyle( elem, null );
+	};
+
+
+
+function curCSS( elem, name, computed ) {
+	var width, minWidth, maxWidth, ret,
+		style = elem.style;
+
+	computed = computed || getStyles( elem );
+
+	// Support: IE9
+	// getPropertyValue is only needed for .css('filter') (#12537)
+	if ( computed ) {
+		ret = computed.getPropertyValue( name ) || computed[ name ];
+	}
+
+	if ( computed ) {
+
+		if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
+			ret = jQuery.style( elem, name );
+		}
+
+		// Support: iOS < 6
+		// A tribute to the "awesome hack by Dean Edwards"
+		// iOS < 6 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels
+		// this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values
+		if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) {
+
+			// Remember the original values
+			width = style.width;
+			minWidth = style.minWidth;
+			maxWidth = style.maxWidth;
+
+			// Put in the new values to get a computed value out
+			style.minWidth = style.maxWidth = style.width = ret;
+			ret = computed.width;
+
+			// Revert the changed values
+			style.width = width;
+			style.minWidth = minWidth;
+			style.maxWidth = maxWidth;
+		}
+	}
+
+	return ret !== undefined ?
+		// Support: IE
+		// IE returns zIndex value as an integer.
+		ret + "" :
+		ret;
+}
+
+
+function addGetHookIf( conditionFn, hookFn ) {
+	// Define the hook, we'll check on the first run if it's really needed.
+	return {
+		get: function() {
+			if ( conditionFn() ) {
+				// Hook not needed (or it's not possible to use it due
+				// to missing dependency), remove it.
+				delete this.get;
+				return;
+			}
+
+			// Hook needed; redefine it so that the support test is not executed again.
+			return (this.get = hookFn).apply( this, arguments );
+		}
+	};
+}
+
+
+(function() {
+	var pixelPositionVal, boxSizingReliableVal,
+		docElem = document.documentElement,
+		container = document.createElement( "div" ),
+		div = document.createElement( "div" );
+
+	if ( !div.style ) {
+		return;
+	}
+
+	// Support: IE9-11+
+	// Style of cloned element affects source element cloned (#8908)
+	div.style.backgroundClip = "content-box";
+	div.cloneNode( true ).style.backgroundClip = "";
+	support.clearCloneStyle = div.style.backgroundClip === "content-box";
+
+	container.style.cssText = "border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;" +
+		"position:absolute";
+	container.appendChild( div );
+
+	// Executing both pixelPosition & boxSizingReliable tests require only one layout
+	// so they're executed at the same time to save the second computation.
+	function computePixelPositionAndBoxSizingReliable() {
+		div.style.cssText =
+			// Support: Firefox<29, Android 2.3
+			// Vendor-prefix box-sizing
+			"-webkit-box-sizing:border-box;-moz-box-sizing:border-box;" +
+			"box-sizing:border-box;display:block;margin-top:1%;top:1%;" +
+			"border:1px;padding:1px;width:4px;position:absolute";
+		div.innerHTML = "";
+		docElem.appendChild( container );
+
+		var divStyle = window.getComputedStyle( div, null );
+		pixelPositionVal = divStyle.top !== "1%";
+		boxSizingReliableVal = divStyle.width === "4px";
+
+		docElem.removeChild( container );
+	}
+
+	// Support: node.js jsdom
+	// Don't assume that getComputedStyle is a property of the global object
+	if ( window.getComputedStyle ) {
+		jQuery.extend( support, {
+			pixelPosition: function() {
+
+				// This test is executed only once but we still do memoizing
+				// since we can use the boxSizingReliable pre-computing.
+				// No need to check if the test was already performed, though.
+				computePixelPositionAndBoxSizingReliable();
+				return pixelPositionVal;
+			},
+			boxSizingReliable: function() {
+				if ( boxSizingReliableVal == null ) {
+					computePixelPositionAndBoxSizingReliable();
+				}
+				return boxSizingReliableVal;
+			},
+			reliableMarginRight: function() {
+
+				// Support: Android 2.3
+				// Check if div with explicit width and no margin-right incorrectly
+				// gets computed margin-right based on width of container. (#3333)
+				// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
+				// This support function is only executed once so no memoizing is needed.
+				var ret,
+					marginDiv = div.appendChild( document.createElement( "div" ) );
+
+				// Reset CSS: box-sizing; display; margin; border; padding
+				marginDiv.style.cssText = div.style.cssText =
+					// Support: Firefox<29, Android 2.3
+					// Vendor-prefix box-sizing
+					"-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" +
+					"box-sizing:content-box;display:block;margin:0;border:0;padding:0";
+				marginDiv.style.marginRight = marginDiv.style.width = "0";
+				div.style.width = "1px";
+				docElem.appendChild( container );
+
+				ret = !parseFloat( window.getComputedStyle( marginDiv, null ).marginRight );
+
+				docElem.removeChild( container );
+				div.removeChild( marginDiv );
+
+				return ret;
+			}
+		});
+	}
+})();
+
+
+// A method for quickly swapping in/out CSS properties to get correct calculations.
+jQuery.swap = function( elem, options, callback, args ) {
+	var ret, name,
+		old = {};
+
+	// Remember the old values, and insert the new ones
+	for ( name in options ) {
+		old[ name ] = elem.style[ name ];
+		elem.style[ name ] = options[ name ];
+	}
+
+	ret = callback.apply( elem, args || [] );
+
+	// Revert the old values
+	for ( name in options ) {
+		elem.style[ name ] = old[ name ];
+	}
+
+	return ret;
+};
+
+
+var
+	// Swappable if display is none or starts with table except "table", "table-cell", or "table-caption"
+	// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
+	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
+	rnumsplit = new RegExp( "^(" + pnum + ")(.*)$", "i" ),
+	rrelNum = new RegExp( "^([+-])=(" + pnum + ")", "i" ),
+
+	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+	cssNormalTransform = {
+		letterSpacing: "0",
+		fontWeight: "400"
+	},
+
+	cssPrefixes = [ "Webkit", "O", "Moz", "ms" ];
+
+// Return a css property mapped to a potentially vendor prefixed property
+function vendorPropName( style, name ) {
+
+	// Shortcut for names that are not vendor prefixed
+	if ( name in style ) {
+		return name;
+	}
+
+	// Check for vendor prefixed names
+	var capName = name[0].toUpperCase() + name.slice(1),
+		origName = name,
+		i = cssPrefixes.length;
+
+	while ( i-- ) {
+		name = cssPrefixes[ i ] + capName;
+		if ( name in style ) {
+			return name;
+		}
+	}
+
+	return origName;
+}
+
+function setPositiveNumber( elem, value, subtract ) {
+	var matches = rnumsplit.exec( value );
+	return matches ?
+		// Guard against undefined "subtract", e.g., when used as in cssHooks
+		Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) :
+		value;
+}
+
+function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
+	var i = extra === ( isBorderBox ? "border" : "content" ) ?
+		// If we already have the right measurement, avoid augmentation
+		4 :
+		// Otherwise initialize for horizontal or vertical properties
+		name === "width" ? 1 : 0,
+
+		val = 0;
+
+	for ( ; i < 4; i += 2 ) {
+		// Both box models exclude margin, so add it if we want it
+		if ( extra === "margin" ) {
+			val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
+		}
+
+		if ( isBorderBox ) {
+			// border-box includes padding, so remove it if we want content
+			if ( extra === "content" ) {
+				val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+			}
+
+			// At this point, extra isn't border nor margin, so remove border
+			if ( extra !== "margin" ) {
+				val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			}
+		} else {
+			// At this point, extra isn't content, so add padding
+			val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+
+			// At this point, extra isn't content nor padding, so add border
+			if ( extra !== "padding" ) {
+				val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			}
+		}
+	}
+
+	return val;
+}
+
+function getWidthOrHeight( elem, name, extra ) {
+
+	// Start with offset property, which is equivalent to the border-box value
+	var valueIsBorderBox = true,
+		val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
+		styles = getStyles( elem ),
+		isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
+
+	// Some non-html elements return undefined for offsetWidth, so check for null/undefined
+	// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
+	// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
+	if ( val <= 0 || val == null ) {
+		// Fall back to computed then uncomputed css if necessary
+		val = curCSS( elem, name, styles );
+		if ( val < 0 || val == null ) {
+			val = elem.style[ name ];
+		}
+
+		// Computed unit is not pixels. Stop here and return.
+		if ( rnumnonpx.test(val) ) {
+			return val;
+		}
+
+		// Check for style in case a browser which returns unreliable values
+		// for getComputedStyle silently falls back to the reliable elem.style
+		valueIsBorderBox = isBorderBox &&
+			( support.boxSizingReliable() || val === elem.style[ name ] );
+
+		// Normalize "", auto, and prepare for extra
+		val = parseFloat( val ) || 0;
+	}
+
+	// Use the active box-sizing model to add/subtract irrelevant styles
+	return ( val +
+		augmentWidthOrHeight(
+			elem,
+			name,
+			extra || ( isBorderBox ? "border" : "content" ),
+			valueIsBorderBox,
+			styles
+		)
+	) + "px";
+}
+
+function showHide( elements, show ) {
+	var display, elem, hidden,
+		values = [],
+		index = 0,
+		length = elements.length;
+
+	for ( ; index < length; index++ ) {
+		elem = elements[ index ];
+		if ( !elem.style ) {
+			continue;
+		}
+
+		values[ index ] = data_priv.get( elem, "olddisplay" );
+		display = elem.style.display;
+		if ( show ) {
+			// Reset the inline display of this element to learn if it is
+			// being hidden by cascaded rules or not
+			if ( !values[ index ] && display === "none" ) {
+				elem.style.display = "";
+			}
+
+			// Set elements which have been overridden with display: none
+			// in a stylesheet to whatever the default browser style is
+			// for such an element
+			if ( elem.style.display === "" && isHidden( elem ) ) {
+				values[ index ] = data_priv.access( elem, "olddisplay", defaultDisplay(elem.nodeName) );
+			}
+		} else {
+			hidden = isHidden( elem );
+
+			if ( display !== "none" || !hidden ) {
+				data_priv.set( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) );
+			}
+		}
+	}
+
+	// Set the display of most of the elements in a second loop
+	// to avoid the constant reflow
+	for ( index = 0; index < length; index++ ) {
+		elem = elements[ index ];
+		if ( !elem.style ) {
+			continue;
+		}
+		if ( !show || elem.style.display === "none" || elem.style.display === "" ) {
+			elem.style.display = show ? values[ index ] || "" : "none";
+		}
+	}
+
+	return elements;
+}
+
+jQuery.extend({
+
+	// Add in style property hooks for overriding the default
+	// behavior of getting and setting a style property
+	cssHooks: {
+		opacity: {
+			get: function( elem, computed ) {
+				if ( computed ) {
+
+					// We should always get a number back from opacity
+					var ret = curCSS( elem, "opacity" );
+					return ret === "" ? "1" : ret;
+				}
+			}
+		}
+	},
+
+	// Don't automatically add "px" to these possibly-unitless properties
+	cssNumber: {
+		"columnCount": true,
+		"fillOpacity": true,
+		"flexGrow": true,
+		"flexShrink": true,
+		"fontWeight": true,
+		"lineHeight": true,
+		"opacity": true,
+		"order": true,
+		"orphans": true,
+		"widows": true,
+		"zIndex": true,
+		"zoom": true
+	},
+
+	// Add in properties whose names you wish to fix before
+	// setting or getting the value
+	cssProps: {
+		"float": "cssFloat"
+	},
+
+	// Get and set the style property on a DOM Node
+	style: function( elem, name, value, extra ) {
+
+		// Don't set styles on text and comment nodes
+		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+			return;
+		}
+
+		// Make sure that we're working with the right name
+		var ret, type, hooks,
+			origName = jQuery.camelCase( name ),
+			style = elem.style;
+
+		name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) );
+
+		// Gets hook for the prefixed version, then unprefixed version
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+		// Check if we're setting a value
+		if ( value !== undefined ) {
+			type = typeof value;
+
+			// Convert "+=" or "-=" to relative numbers (#7345)
+			if ( type === "string" && (ret = rrelNum.exec( value )) ) {
+				value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) );
+				// Fixes bug #9237
+				type = "number";
+			}
+
+			// Make sure that null and NaN values aren't set (#7116)
+			if ( value == null || value !== value ) {
+				return;
+			}
+
+			// If a number, add 'px' to the (except for certain CSS properties)
+			if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
+				value += "px";
+			}
+
+			// Support: IE9-11+
+			// background-* props affect original clone's values
+			if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
+				style[ name ] = "inherit";
+			}
+
+			// If a hook was provided, use that value, otherwise just set the specified value
+			if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) {
+				style[ name ] = value;
+			}
+
+		} else {
+			// If a hook was provided get the non-computed value from there
+			if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
+				return ret;
+			}
+
+			// Otherwise just get the value from the style object
+			return style[ name ];
+		}
+	},
+
+	css: function( elem, name, extra, styles ) {
+		var val, num, hooks,
+			origName = jQuery.camelCase( name );
+
+		// Make sure that we're working with the right name
+		name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) );
+
+		// Try prefixed name followed by the unprefixed name
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+		// If a hook was provided get the computed value from there
+		if ( hooks && "get" in hooks ) {
+			val = hooks.get( elem, true, extra );
+		}
+
+		// Otherwise, if a way to get the computed value exists, use that
+		if ( val === undefined ) {
+			val = curCSS( elem, name, styles );
+		}
+
+		// Convert "normal" to computed value
+		if ( val === "normal" && name in cssNormalTransform ) {
+			val = cssNormalTransform[ name ];
+		}
+
+		// Make numeric if forced or a qualifier was provided and val looks numeric
+		if ( extra === "" || extra ) {
+			num = parseFloat( val );
+			return extra === true || jQuery.isNumeric( num ) ? num || 0 : val;
+		}
+		return val;
+	}
+});
+
+jQuery.each([ "height", "width" ], function( i, name ) {
+	jQuery.cssHooks[ name ] = {
+		get: function( elem, computed, extra ) {
+			if ( computed ) {
+
+				// Certain elements can have dimension info if we invisibly show them
+				// but it must have a current display style that would benefit
+				return rdisplayswap.test( jQuery.css( elem, "display" ) ) && elem.offsetWidth === 0 ?
+					jQuery.swap( elem, cssShow, function() {
+						return getWidthOrHeight( elem, name, extra );
+					}) :
+					getWidthOrHeight( elem, name, extra );
+			}
+		},
+
+		set: function( elem, value, extra ) {
+			var styles = extra && getStyles( elem );
+			return setPositiveNumber( elem, value, extra ?
+				augmentWidthOrHeight(
+					elem,
+					name,
+					extra,
+					jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+					styles
+				) : 0
+			);
+		}
+	};
+});
+
+// Support: Android 2.3
+jQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight,
+	function( elem, computed ) {
+		if ( computed ) {
+			return jQuery.swap( elem, { "display": "inline-block" },
+				curCSS, [ elem, "marginRight" ] );
+		}
+	}
+);
+
+// These hooks are used by animate to expand properties
+jQuery.each({
+	margin: "",
+	padding: "",
+	border: "Width"
+}, function( prefix, suffix ) {
+	jQuery.cssHooks[ prefix + suffix ] = {
+		expand: function( value ) {
+			var i = 0,
+				expanded = {},
+
+				// Assumes a single number if not a string
+				parts = typeof value === "string" ? value.split(" ") : [ value ];
+
+			for ( ; i < 4; i++ ) {
+				expanded[ prefix + cssExpand[ i ] + suffix ] =
+					parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
+			}
+
+			return expanded;
+		}
+	};
+
+	if ( !rmargin.test( prefix ) ) {
+		jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
+	}
+});
+
+jQuery.fn.extend({
+	css: function( name, value ) {
+		return access( this, function( elem, name, value ) {
+			var styles, len,
+				map = {},
+				i = 0;
+
+			if ( jQuery.isArray( name ) ) {
+				styles = getStyles( elem );
+				len = name.length;
+
+				for ( ; i < len; i++ ) {
+					map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
+				}
+
+				return map;
+			}
+
+			return value !== undefined ?
+				jQuery.style( elem, name, value ) :
+				jQuery.css( elem, name );
+		}, name, value, arguments.length > 1 );
+	},
+	show: function() {
+		return showHide( this, true );
+	},
+	hide: function() {
+		return showHide( this );
+	},
+	toggle: function( state ) {
+		if ( typeof state === "boolean" ) {
+			return state ? this.show() : this.hide();
+		}
+
+		return this.each(function() {
+			if ( isHidden( this ) ) {
+				jQuery( this ).show();
+			} else {
+				jQuery( this ).hide();
+			}
+		});
+	}
+});
+
+
+function Tween( elem, options, prop, end, easing ) {
+	return new Tween.prototype.init( elem, options, prop, end, easing );
+}
+jQuery.Tween = Tween;
+
+Tween.prototype = {
+	constructor: Tween,
+	init: function( elem, options, prop, end, easing, unit ) {
+		this.elem = elem;
+		this.prop = prop;
+		this.easing = easing || "swing";
+		this.options = options;
+		this.start = this.now = this.cur();
+		this.end = end;
+		this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
+	},
+	cur: function() {
+		var hooks = Tween.propHooks[ this.prop ];
+
+		return hooks && hooks.get ?
+			hooks.get( this ) :
+			Tween.propHooks._default.get( this );
+	},
+	run: function( percent ) {
+		var eased,
+			hooks = Tween.propHooks[ this.prop ];
+
+		if ( this.options.duration ) {
+			this.pos = eased = jQuery.easing[ this.easing ](
+				percent, this.options.duration * percent, 0, 1, this.options.duration
+			);
+		} else {
+			this.pos = eased = percent;
+		}
+		this.now = ( this.end - this.start ) * eased + this.start;
+
+		if ( this.options.step ) {
+			this.options.step.call( this.elem, this.now, this );
+		}
+
+		if ( hooks && hooks.set ) {
+			hooks.set( this );
+		} else {
+			Tween.propHooks._default.set( this );
+		}
+		return this;
+	}
+};
+
+Tween.prototype.init.prototype = Tween.prototype;
+
+Tween.propHooks = {
+	_default: {
+		get: function( tween ) {
+			var result;
+
+			if ( tween.elem[ tween.prop ] != null &&
+				(!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) {
+				return tween.elem[ tween.prop ];
+			}
+
+			// Passing an empty string as a 3rd parameter to .css will automatically
+			// attempt a parseFloat and fallback to a string if the parse fails.
+			// Simple values such as "10px" are parsed to Float;
+			// complex values such as "rotate(1rad)" are returned as-is.
+			result = jQuery.css( tween.elem, tween.prop, "" );
+			// Empty strings, null, undefined and "auto" are converted to 0.
+			return !result || result === "auto" ? 0 : result;
+		},
+		set: function( tween ) {
+			// Use step hook for back compat.
+			// Use cssHook if its there.
+			// Use .style if available and use plain properties where available.
+			if ( jQuery.fx.step[ tween.prop ] ) {
+				jQuery.fx.step[ tween.prop ]( tween );
+			} else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) {
+				jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
+			} else {
+				tween.elem[ tween.prop ] = tween.now;
+			}
+		}
+	}
+};
+
+// Support: IE9
+// Panic based approach to setting things on disconnected nodes
+Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
+	set: function( tween ) {
+		if ( tween.elem.nodeType && tween.elem.parentNode ) {
+			tween.elem[ tween.prop ] = tween.now;
+		}
+	}
+};
+
+jQuery.easing = {
+	linear: function( p ) {
+		return p;
+	},
+	swing: function( p ) {
+		return 0.5 - Math.cos( p * Math.PI ) / 2;
+	}
+};
+
+jQuery.fx = Tween.prototype.init;
+
+// Back Compat <1.8 extension point
+jQuery.fx.step = {};
+
+
+
+
+var
+	fxNow, timerId,
+	rfxtypes = /^(?:toggle|show|hide)$/,
+	rfxnum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ),
+	rrun = /queueHooks$/,
+	animationPrefilters = [ defaultPrefilter ],
+	tweeners = {
+		"*": [ function( prop, value ) {
+			var tween = this.createTween( prop, value ),
+				target = tween.cur(),
+				parts = rfxnum.exec( value ),
+				unit = parts && parts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
+
+				// Starting value computation is required for potential unit mismatches
+				start = ( jQuery.cssNumber[ prop ] || unit !== "px" && +target ) &&
+					rfxnum.exec( jQuery.css( tween.elem, prop ) ),
+				scale = 1,
+				maxIterations = 20;
+
+			if ( start && start[ 3 ] !== unit ) {
+				// Trust units reported by jQuery.css
+				unit = unit || start[ 3 ];
+
+				// Make sure we update the tween properties later on
+				parts = parts || [];
+
+				// Iteratively approximate from a nonzero starting point
+				start = +target || 1;
+
+				do {
+					// If previous iteration zeroed out, double until we get *something*.
+					// Use string for doubling so we don't accidentally see scale as unchanged below
+					scale = scale || ".5";
+
+					// Adjust and apply
+					start = start / scale;
+					jQuery.style( tween.elem, prop, start + unit );
+
+				// Update scale, tolerating zero or NaN from tween.cur(),
+				// break the loop if scale is unchanged or perfect, or if we've just had enough
+				} while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations );
+			}
+
+			// Update tween properties
+			if ( parts ) {
+				start = tween.start = +start || +target || 0;
+				tween.unit = unit;
+				// If a +=/-= token was provided, we're doing a relative animation
+				tween.end = parts[ 1 ] ?
+					start + ( parts[ 1 ] + 1 ) * parts[ 2 ] :
+					+parts[ 2 ];
+			}
+
+			return tween;
+		} ]
+	};
+
+// Animations created synchronously will run synchronously
+function createFxNow() {
+	setTimeout(function() {
+		fxNow = undefined;
+	});
+	return ( fxNow = jQuery.now() );
+}
+
+// Generate parameters to create a standard animation
+function genFx( type, includeWidth ) {
+	var which,
+		i = 0,
+		attrs = { height: type };
+
+	// If we include width, step value is 1 to do all cssExpand values,
+	// otherwise step value is 2 to skip over Left and Right
+	includeWidth = includeWidth ? 1 : 0;
+	for ( ; i < 4 ; i += 2 - includeWidth ) {
+		which = cssExpand[ i ];
+		attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
+	}
+
+	if ( includeWidth ) {
+		attrs.opacity = attrs.width = type;
+	}
+
+	return attrs;
+}
+
+function createTween( value, prop, animation ) {
+	var tween,
+		collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ),
+		index = 0,
+		length = collection.length;
+	for ( ; index < length; index++ ) {
+		if ( (tween = collection[ index ].call( animation, prop, value )) ) {
+
+			// We're done with this property
+			return tween;
+		}
+	}
+}
+
+function defaultPrefilter( elem, props, opts ) {
+	/* jshint validthis: true */
+	var prop, value, toggle, tween, hooks, oldfire, display, checkDisplay,
+		anim = this,
+		orig = {},
+		style = elem.style,
+		hidden = elem.nodeType && isHidden( elem ),
+		dataShow = data_priv.get( elem, "fxshow" );
+
+	// Handle queue: false promises
+	if ( !opts.queue ) {
+		hooks = jQuery._queueHooks( elem, "fx" );
+		if ( hooks.unqueued == null ) {
+			hooks.unqueued = 0;
+			oldfire = hooks.empty.fire;
+			hooks.empty.fire = function() {
+				if ( !hooks.unqueued ) {
+					oldfire();
+				}
+			};
+		}
+		hooks.unqueued++;
+
+		anim.always(function() {
+			// Ensure the complete handler is called before this completes
+			anim.always(function() {
+				hooks.unqueued--;
+				if ( !jQuery.queue( elem, "fx" ).length ) {
+					hooks.empty.fire();
+				}
+			});
+		});
+	}
+
+	// Height/width overflow pass
+	if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) {
+		// Make sure that nothing sneaks out
+		// Record all 3 overflow attributes because IE9-10 do not
+		// change the overflow attribute when overflowX and
+		// overflowY are set to the same value
+		opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
+
+		// Set display property to inline-block for height/width
+		// animations on inline elements that are having width/height animated
+		display = jQuery.css( elem, "display" );
+
+		// Test default display if display is currently "none"
+		checkDisplay = display === "none" ?
+			data_priv.get( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display;
+
+		if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) {
+			style.display = "inline-block";
+		}
+	}
+
+	if ( opts.overflow ) {
+		style.overflow = "hidden";
+		anim.always(function() {
+			style.overflow = opts.overflow[ 0 ];
+			style.overflowX = opts.overflow[ 1 ];
+			style.overflowY = opts.overflow[ 2 ];
+		});
+	}
+
+	// show/hide pass
+	for ( prop in props ) {
+		value = props[ prop ];
+		if ( rfxtypes.exec( value ) ) {
+			delete props[ prop ];
+			toggle = toggle || value === "toggle";
+			if ( value === ( hidden ? "hide" : "show" ) ) {
+
+				// If there is dataShow left over from a stopped hide or show and we are going to proceed with show, we should pretend to be hidden
+				if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
+					hidden = true;
+				} else {
+					continue;
+				}
+			}
+			orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
+
+		// Any non-fx value stops us from restoring the original display value
+		} else {
+			display = undefined;
+		}
+	}
+
+	if ( !jQuery.isEmptyObject( orig ) ) {
+		if ( dataShow ) {
+			if ( "hidden" in dataShow ) {
+				hidden = dataShow.hidden;
+			}
+		} else {
+			dataShow = data_priv.access( elem, "fxshow", {} );
+		}
+
+		// Store state if its toggle - enables .stop().toggle() to "reverse"
+		if ( toggle ) {
+			dataShow.hidden = !hidden;
+		}
+		if ( hidden ) {
+			jQuery( elem ).show();
+		} else {
+			anim.done(function() {
+				jQuery( elem ).hide();
+			});
+		}
+		anim.done(function() {
+			var prop;
+
+			data_priv.remove( elem, "fxshow" );
+			for ( prop in orig ) {
+				jQuery.style( elem, prop, orig[ prop ] );
+			}
+		});
+		for ( prop in orig ) {
+			tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
+
+			if ( !( prop in dataShow ) ) {
+				dataShow[ prop ] = tween.start;
+				if ( hidden ) {
+					tween.end = tween.start;
+					tween.start = prop === "width" || prop === "height" ? 1 : 0;
+				}
+			}
+		}
+
+	// If this is a noop like .hide().hide(), restore an overwritten display value
+	} else if ( (display === "none" ? defaultDisplay( elem.nodeName ) : display) === "inline" ) {
+		style.display = display;
+	}
+}
+
+function propFilter( props, specialEasing ) {
+	var index, name, easing, value, hooks;
+
+	// camelCase, specialEasing and expand cssHook pass
+	for ( index in props ) {
+		name = jQuery.camelCase( index );
+		easing = specialEasing[ name ];
+		value = props[ index ];
+		if ( jQuery.isArray( value ) ) {
+			easing = value[ 1 ];
+			value = props[ index ] = value[ 0 ];
+		}
+
+		if ( index !== name ) {
+			props[ name ] = value;
+			delete props[ index ];
+		}
+
+		hooks = jQuery.cssHooks[ name ];
+		if ( hooks && "expand" in hooks ) {
+			value = hooks.expand( value );
+			delete props[ name ];
+
+			// Not quite $.extend, this won't overwrite existing keys.
+			// Reusing 'index' because we have the correct "name"
+			for ( index in value ) {
+				if ( !( index in props ) ) {
+					props[ index ] = value[ index ];
+					specialEasing[ index ] = easing;
+				}
+			}
+		} else {
+			specialEasing[ name ] = easing;
+		}
+	}
+}
+
+function Animation( elem, properties, options ) {
+	var result,
+		stopped,
+		index = 0,
+		length = animationPrefilters.length,
+		deferred = jQuery.Deferred().always( function() {
+			// Don't match elem in the :animated selector
+			delete tick.elem;
+		}),
+		tick = function() {
+			if ( stopped ) {
+				return false;
+			}
+			var currentTime = fxNow || createFxNow(),
+				remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
+				// Support: Android 2.3
+				// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
+				temp = remaining / animation.duration || 0,
+				percent = 1 - temp,
+				index = 0,
+				length = animation.tweens.length;
+
+			for ( ; index < length ; index++ ) {
+				animation.tweens[ index ].run( percent );
+			}
+
+			deferred.notifyWith( elem, [ animation, percent, remaining ]);
+
+			if ( percent < 1 && length ) {
+				return remaining;
+			} else {
+				deferred.resolveWith( elem, [ animation ] );
+				return false;
+			}
+		},
+		animation = deferred.promise({
+			elem: elem,
+			props: jQuery.extend( {}, properties ),
+			opts: jQuery.extend( true, { specialEasing: {} }, options ),
+			originalProperties: properties,
+			originalOptions: options,
+			startTime: fxNow || createFxNow(),
+			duration: options.duration,
+			tweens: [],
+			createTween: function( prop, end ) {
+				var tween = jQuery.Tween( elem, animation.opts, prop, end,
+						animation.opts.specialEasing[ prop ] || animation.opts.easing );
+				animation.tweens.push( tween );
+				return tween;
+			},
+			stop: function( gotoEnd ) {
+				var index = 0,
+					// If we are going to the end, we want to run all the tweens
+					// otherwise we skip this part
+					length = gotoEnd ? animation.tweens.length : 0;
+				if ( stopped ) {
+					return this;
+				}
+				stopped = true;
+				for ( ; index < length ; index++ ) {
+					animation.tweens[ index ].run( 1 );
+				}
+
+				// Resolve when we played the last frame; otherwise, reject
+				if ( gotoEnd ) {
+					deferred.resolveWith( elem, [ animation, gotoEnd ] );
+				} else {
+					deferred.rejectWith( elem, [ animation, gotoEnd ] );
+				}
+				return this;
+			}
+		}),
+		props = animation.props;
+
+	propFilter( props, animation.opts.specialEasing );
+
+	for ( ; index < length ; index++ ) {
+		result = animationPrefilters[ index ].call( animation, elem, props, animation.opts );
+		if ( result ) {
+			return result;
+		}
+	}
+
+	jQuery.map( props, createTween, animation );
+
+	if ( jQuery.isFunction( animation.opts.start ) ) {
+		animation.opts.start.call( elem, animation );
+	}
+
+	jQuery.fx.timer(
+		jQuery.extend( tick, {
+			elem: elem,
+			anim: animation,
+			queue: animation.opts.queue
+		})
+	);
+
+	// attach callbacks from options
+	return animation.progress( animation.opts.progress )
+		.done( animation.opts.done, animation.opts.complete )
+		.fail( animation.opts.fail )
+		.always( animation.opts.always );
+}
+
+jQuery.Animation = jQuery.extend( Animation, {
+
+	tweener: function( props, callback ) {
+		if ( jQuery.isFunction( props ) ) {
+			callback = props;
+			props = [ "*" ];
+		} else {
+			props = props.split(" ");
+		}
+
+		var prop,
+			index = 0,
+			length = props.length;
+
+		for ( ; index < length ; index++ ) {
+			prop = props[ index ];
+			tweeners[ prop ] = tweeners[ prop ] || [];
+			tweeners[ prop ].unshift( callback );
+		}
+	},
+
+	prefilter: function( callback, prepend ) {
+		if ( prepend ) {
+			animationPrefilters.unshift( callback );
+		} else {
+			animationPrefilters.push( callback );
+		}
+	}
+});
+
+jQuery.speed = function( speed, easing, fn ) {
+	var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
+		complete: fn || !fn && easing ||
+			jQuery.isFunction( speed ) && speed,
+		duration: speed,
+		easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
+	};
+
+	opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
+		opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
+
+	// Normalize opt.queue - true/undefined/null -> "fx"
+	if ( opt.queue == null || opt.queue === true ) {
+		opt.queue = "fx";
+	}
+
+	// Queueing
+	opt.old = opt.complete;
+
+	opt.complete = function() {
+		if ( jQuery.isFunction( opt.old ) ) {
+			opt.old.call( this );
+		}
+
+		if ( opt.queue ) {
+			jQuery.dequeue( this, opt.queue );
+		}
+	};
+
+	return opt;
+};
+
+jQuery.fn.extend({
+	fadeTo: function( speed, to, easing, callback ) {
+
+		// Show any hidden elements after setting opacity to 0
+		return this.filter( isHidden ).css( "opacity", 0 ).show()
+
+			// Animate to the value specified
+			.end().animate({ opacity: to }, speed, easing, callback );
+	},
+	animate: function( prop, speed, easing, callback ) {
+		var empty = jQuery.isEmptyObject( prop ),
+			optall = jQuery.speed( speed, easing, callback ),
+			doAnimation = function() {
+				// Operate on a copy of prop so per-property easing won't be lost
+				var anim = Animation( this, jQuery.extend( {}, prop ), optall );
+
+				// Empty animations, or finishing resolves immediately
+				if ( empty || data_priv.get( this, "finish" ) ) {
+					anim.stop( true );
+				}
+			};
+			doAnimation.finish = doAnimation;
+
+		return empty || optall.queue === false ?
+			this.each( doAnimation ) :
+			this.queue( optall.queue, doAnimation );
+	},
+	stop: function( type, clearQueue, gotoEnd ) {
+		var stopQueue = function( hooks ) {
+			var stop = hooks.stop;
+			delete hooks.stop;
+			stop( gotoEnd );
+		};
+
+		if ( typeof type !== "string" ) {
+			gotoEnd = clearQueue;
+			clearQueue = type;
+			type = undefined;
+		}
+		if ( clearQueue && type !== false ) {
+			this.queue( type || "fx", [] );
+		}
+
+		return this.each(function() {
+			var dequeue = true,
+				index = type != null && type + "queueHooks",
+				timers = jQuery.timers,
+				data = data_priv.get( this );
+
+			if ( index ) {
+				if ( data[ index ] && data[ index ].stop ) {
+					stopQueue( data[ index ] );
+				}
+			} else {
+				for ( index in data ) {
+					if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
+						stopQueue( data[ index ] );
+					}
+				}
+			}
+
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) {
+					timers[ index ].anim.stop( gotoEnd );
+					dequeue = false;
+					timers.splice( index, 1 );
+				}
+			}
+
+			// Start the next in the queue if the last step wasn't forced.
+			// Timers currently will call their complete callbacks, which
+			// will dequeue but only if they were gotoEnd.
+			if ( dequeue || !gotoEnd ) {
+				jQuery.dequeue( this, type );
+			}
+		});
+	},
+	finish: function( type ) {
+		if ( type !== false ) {
+			type = type || "fx";
+		}
+		return this.each(function() {
+			var index,
+				data = data_priv.get( this ),
+				queue = data[ type + "queue" ],
+				hooks = data[ type + "queueHooks" ],
+				timers = jQuery.timers,
+				length = queue ? queue.length : 0;
+
+			// Enable finishing flag on private data
+			data.finish = true;
+
+			// Empty the queue first
+			jQuery.queue( this, type, [] );
+
+			if ( hooks && hooks.stop ) {
+				hooks.stop.call( this, true );
+			}
+
+			// Look for any active animations, and finish them
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
+					timers[ index ].anim.stop( true );
+					timers.splice( index, 1 );
+				}
+			}
+
+			// Look for any animations in the old queue and finish them
+			for ( index = 0; index < length; index++ ) {
+				if ( queue[ index ] && queue[ index ].finish ) {
+					queue[ index ].finish.call( this );
+				}
+			}
+
+			// Turn off finishing flag
+			delete data.finish;
+		});
+	}
+});
+
+jQuery.each([ "toggle", "show", "hide" ], function( i, name ) {
+	var cssFn = jQuery.fn[ name ];
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return speed == null || typeof speed === "boolean" ?
+			cssFn.apply( this, arguments ) :
+			this.animate( genFx( name, true ), speed, easing, callback );
+	};
+});
+
+// Generate shortcuts for custom animations
+jQuery.each({
+	slideDown: genFx("show"),
+	slideUp: genFx("hide"),
+	slideToggle: genFx("toggle"),
+	fadeIn: { opacity: "show" },
+	fadeOut: { opacity: "hide" },
+	fadeToggle: { opacity: "toggle" }
+}, function( name, props ) {
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return this.animate( props, speed, easing, callback );
+	};
+});
+
+jQuery.timers = [];
+jQuery.fx.tick = function() {
+	var timer,
+		i = 0,
+		timers = jQuery.timers;
+
+	fxNow = jQuery.now();
+
+	for ( ; i < timers.length; i++ ) {
+		timer = timers[ i ];
+		// Checks the timer has not already been removed
+		if ( !timer() && timers[ i ] === timer ) {
+			timers.splice( i--, 1 );
+		}
+	}
+
+	if ( !timers.length ) {
+		jQuery.fx.stop();
+	}
+	fxNow = undefined;
+};
+
+jQuery.fx.timer = function( timer ) {
+	jQuery.timers.push( timer );
+	if ( timer() ) {
+		jQuery.fx.start();
+	} else {
+		jQuery.timers.pop();
+	}
+};
+
+jQuery.fx.interval = 13;
+
+jQuery.fx.start = function() {
+	if ( !timerId ) {
+		timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval );
+	}
+};
+
+jQuery.fx.stop = function() {
+	clearInterval( timerId );
+	timerId = null;
+};
+
+jQuery.fx.speeds = {
+	slow: 600,
+	fast: 200,
+	// Default speed
+	_default: 400
+};
+
+
+// Based off of the plugin by Clint Helfers, with permission.
+// http://blindsignals.com/index.php/2009/07/jquery-delay/
+jQuery.fn.delay = function( time, type ) {
+	time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
+	type = type || "fx";
+
+	return this.queue( type, function( next, hooks ) {
+		var timeout = setTimeout( next, time );
+		hooks.stop = function() {
+			clearTimeout( timeout );
+		};
+	});
+};
+
+
+(function() {
+	var input = document.createElement( "input" ),
+		select = document.createElement( "select" ),
+		opt = select.appendChild( document.createElement( "option" ) );
+
+	input.type = "checkbox";
+
+	// Support: iOS<=5.1, Android<=4.2+
+	// Default value for a checkbox should be "on"
+	support.checkOn = input.value !== "";
+
+	// Support: IE<=11+
+	// Must access selectedIndex to make default options select
+	support.optSelected = opt.selected;
+
+	// Support: Android<=2.3
+	// Options inside disabled selects are incorrectly marked as disabled
+	select.disabled = true;
+	support.optDisabled = !opt.disabled;
+
+	// Support: IE<=11+
+	// An input loses its value after becoming a radio
+	input = document.createElement( "input" );
+	input.value = "t";
+	input.type = "radio";
+	support.radioValue = input.value === "t";
+})();
+
+
+var nodeHook, boolHook,
+	attrHandle = jQuery.expr.attrHandle;
+
+jQuery.fn.extend({
+	attr: function( name, value ) {
+		return access( this, jQuery.attr, name, value, arguments.length > 1 );
+	},
+
+	removeAttr: function( name ) {
+		return this.each(function() {
+			jQuery.removeAttr( this, name );
+		});
+	}
+});
+
+jQuery.extend({
+	attr: function( elem, name, value ) {
+		var hooks, ret,
+			nType = elem.nodeType;
+
+		// don't get/set attributes on text, comment and attribute nodes
+		if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		// Fallback to prop when attributes are not supported
+		if ( typeof elem.getAttribute === strundefined ) {
+			return jQuery.prop( elem, name, value );
+		}
+
+		// All attributes are lowercase
+		// Grab necessary hook if one is defined
+		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+			name = name.toLowerCase();
+			hooks = jQuery.attrHooks[ name ] ||
+				( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook );
+		}
+
+		if ( value !== undefined ) {
+
+			if ( value === null ) {
+				jQuery.removeAttr( elem, name );
+
+			} else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
+				return ret;
+
+			} else {
+				elem.setAttribute( name, value + "" );
+				return value;
+			}
+
+		} else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
+			return ret;
+
+		} else {
+			ret = jQuery.find.attr( elem, name );
+
+			// Non-existent attributes return null, we normalize to undefined
+			return ret == null ?
+				undefined :
+				ret;
+		}
+	},
+
+	removeAttr: function( elem, value ) {
+		var name, propName,
+			i = 0,
+			attrNames = value && value.match( rnotwhite );
+
+		if ( attrNames && elem.nodeType === 1 ) {
+			while ( (name = attrNames[i++]) ) {
+				propName = jQuery.propFix[ name ] || name;
+
+				// Boolean attributes get special treatment (#10870)
+				if ( jQuery.expr.match.bool.test( name ) ) {
+					// Set corresponding property to false
+					elem[ propName ] = false;
+				}
+
+				elem.removeAttribute( name );
+			}
+		}
+	},
+
+	attrHooks: {
+		type: {
+			set: function( elem, value ) {
+				if ( !support.radioValue && value === "radio" &&
+					jQuery.nodeName( elem, "input" ) ) {
+					var val = elem.value;
+					elem.setAttribute( "type", value );
+					if ( val ) {
+						elem.value = val;
+					}
+					return value;
+				}
+			}
+		}
+	}
+});
+
+// Hooks for boolean attributes
+boolHook = {
+	set: function( elem, value, name ) {
+		if ( value === false ) {
+			// Remove boolean attributes when set to false
+			jQuery.removeAttr( elem, name );
+		} else {
+			elem.setAttribute( name, name );
+		}
+		return name;
+	}
+};
+jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
+	var getter = attrHandle[ name ] || jQuery.find.attr;
+
+	attrHandle[ name ] = function( elem, name, isXML ) {
+		var ret, handle;
+		if ( !isXML ) {
+			// Avoid an infinite loop by temporarily removing this function from the getter
+			handle = attrHandle[ name ];
+			attrHandle[ name ] = ret;
+			ret = getter( elem, name, isXML ) != null ?
+				name.toLowerCase() :
+				null;
+			attrHandle[ name ] = handle;
+		}
+		return ret;
+	};
+});
+
+
+
+
+var rfocusable = /^(?:input|select|textarea|button)$/i;
+
+jQuery.fn.extend({
+	prop: function( name, value ) {
+		return access( this, jQuery.prop, name, value, arguments.length > 1 );
+	},
+
+	removeProp: function( name ) {
+		return this.each(function() {
+			delete this[ jQuery.propFix[ name ] || name ];
+		});
+	}
+});
+
+jQuery.extend({
+	propFix: {
+		"for": "htmlFor",
+		"class": "className"
+	},
+
+	prop: function( elem, name, value ) {
+		var ret, hooks, notxml,
+			nType = elem.nodeType;
+
+		// Don't get/set properties on text, comment and attribute nodes
+		if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
+
+		if ( notxml ) {
+			// Fix name and attach hooks
+			name = jQuery.propFix[ name ] || name;
+			hooks = jQuery.propHooks[ name ];
+		}
+
+		if ( value !== undefined ) {
+			return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ?
+				ret :
+				( elem[ name ] = value );
+
+		} else {
+			return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ?
+				ret :
+				elem[ name ];
+		}
+	},
+
+	propHooks: {
+		tabIndex: {
+			get: function( elem ) {
+				return elem.hasAttribute( "tabindex" ) || rfocusable.test( elem.nodeName ) || elem.href ?
+					elem.tabIndex :
+					-1;
+			}
+		}
+	}
+});
+
+if ( !support.optSelected ) {
+	jQuery.propHooks.selected = {
+		get: function( elem ) {
+			var parent = elem.parentNode;
+			if ( parent && parent.parentNode ) {
+				parent.parentNode.selectedIndex;
+			}
+			return null;
+		}
+	};
+}
+
+jQuery.each([
+	"tabIndex",
+	"readOnly",
+	"maxLength",
+	"cellSpacing",
+	"cellPadding",
+	"rowSpan",
+	"colSpan",
+	"useMap",
+	"frameBorder",
+	"contentEditable"
+], function() {
+	jQuery.propFix[ this.toLowerCase() ] = this;
+});
+
+
+
+
+var rclass = /[\t\r\n\f]/g;
+
+jQuery.fn.extend({
+	addClass: function( value ) {
+		var classes, elem, cur, clazz, j, finalValue,
+			proceed = typeof value === "string" && value,
+			i = 0,
+			len = this.length;
+
+		if ( jQuery.isFunction( value ) ) {
+			return this.each(function( j ) {
+				jQuery( this ).addClass( value.call( this, j, this.className ) );
+			});
+		}
+
+		if ( proceed ) {
+			// The disjunction here is for better compressibility (see removeClass)
+			classes = ( value || "" ).match( rnotwhite ) || [];
+
+			for ( ; i < len; i++ ) {
+				elem = this[ i ];
+				cur = elem.nodeType === 1 && ( elem.className ?
+					( " " + elem.className + " " ).replace( rclass, " " ) :
+					" "
+				);
+
+				if ( cur ) {
+					j = 0;
+					while ( (clazz = classes[j++]) ) {
+						if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
+							cur += clazz + " ";
+						}
+					}
+
+					// only assign if different to avoid unneeded rendering.
+					finalValue = jQuery.trim( cur );
+					if ( elem.className !== finalValue ) {
+						elem.className = finalValue;
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	removeClass: function( value ) {
+		var classes, elem, cur, clazz, j, finalValue,
+			proceed = arguments.length === 0 || typeof value === "string" && value,
+			i = 0,
+			len = this.length;
+
+		if ( jQuery.isFunction( value ) ) {
+			return this.each(function( j ) {
+				jQuery( this ).removeClass( value.call( this, j, this.className ) );
+			});
+		}
+		if ( proceed ) {
+			classes = ( value || "" ).match( rnotwhite ) || [];
+
+			for ( ; i < len; i++ ) {
+				elem = this[ i ];
+				// This expression is here for better compressibility (see addClass)
+				cur = elem.nodeType === 1 && ( elem.className ?
+					( " " + elem.className + " " ).replace( rclass, " " ) :
+					""
+				);
+
+				if ( cur ) {
+					j = 0;
+					while ( (clazz = classes[j++]) ) {
+						// Remove *all* instances
+						while ( cur.indexOf( " " + clazz + " " ) >= 0 ) {
+							cur = cur.replace( " " + clazz + " ", " " );
+						}
+					}
+
+					// Only assign if different to avoid unneeded rendering.
+					finalValue = value ? jQuery.trim( cur ) : "";
+					if ( elem.className !== finalValue ) {
+						elem.className = finalValue;
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	toggleClass: function( value, stateVal ) {
+		var type = typeof value;
+
+		if ( typeof stateVal === "boolean" && type === "string" ) {
+			return stateVal ? this.addClass( value ) : this.removeClass( value );
+		}
+
+		if ( jQuery.isFunction( value ) ) {
+			return this.each(function( i ) {
+				jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );
+			});
+		}
+
+		return this.each(function() {
+			if ( type === "string" ) {
+				// Toggle individual class names
+				var className,
+					i = 0,
+					self = jQuery( this ),
+					classNames = value.match( rnotwhite ) || [];
+
+				while ( (className = classNames[ i++ ]) ) {
+					// Check each className given, space separated list
+					if ( self.hasClass( className ) ) {
+						self.removeClass( className );
+					} else {
+						self.addClass( className );
+					}
+				}
+
+			// Toggle whole class name
+			} else if ( type === strundefined || type === "boolean" ) {
+				if ( this.className ) {
+					// store className if set
+					data_priv.set( this, "__className__", this.className );
+				}
+
+				// If the element has a class name or if we're passed `false`,
+				// then remove the whole classname (if there was one, the above saved it).
+				// Otherwise bring back whatever was previously saved (if anything),
+				// falling back to the empty string if nothing was stored.
+				this.className = this.className || value === false ? "" : data_priv.get( this, "__className__" ) || "";
+			}
+		});
+	},
+
+	hasClass: function( selector ) {
+		var className = " " + selector + " ",
+			i = 0,
+			l = this.length;
+		for ( ; i < l; i++ ) {
+			if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) {
+				return true;
+			}
+		}
+
+		return false;
+	}
+});
+
+
+
+
+var rreturn = /\r/g;
+
+jQuery.fn.extend({
+	val: function( value ) {
+		var hooks, ret, isFunction,
+			elem = this[0];
+
+		if ( !arguments.length ) {
+			if ( elem ) {
+				hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];
+
+				if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
+					return ret;
+				}
+
+				ret = elem.value;
+
+				return typeof ret === "string" ?
+					// Handle most common string cases
+					ret.replace(rreturn, "") :
+					// Handle cases where value is null/undef or number
+					ret == null ? "" : ret;
+			}
+
+			return;
+		}
+
+		isFunction = jQuery.isFunction( value );
+
+		return this.each(function( i ) {
+			var val;
+
+			if ( this.nodeType !== 1 ) {
+				return;
+			}
+
+			if ( isFunction ) {
+				val = value.call( this, i, jQuery( this ).val() );
+			} else {
+				val = value;
+			}
+
+			// Treat null/undefined as ""; convert numbers to string
+			if ( val == null ) {
+				val = "";
+
+			} else if ( typeof val === "number" ) {
+				val += "";
+
+			} else if ( jQuery.isArray( val ) ) {
+				val = jQuery.map( val, function( value ) {
+					return value == null ? "" : value + "";
+				});
+			}
+
+			hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
+
+			// If set returns undefined, fall back to normal setting
+			if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {
+				this.value = val;
+			}
+		});
+	}
+});
+
+jQuery.extend({
+	valHooks: {
+		option: {
+			get: function( elem ) {
+				var val = jQuery.find.attr( elem, "value" );
+				return val != null ?
+					val :
+					// Support: IE10-11+
+					// option.text throws exceptions (#14686, #14858)
+					jQuery.trim( jQuery.text( elem ) );
+			}
+		},
+		select: {
+			get: function( elem ) {
+				var value, option,
+					options = elem.options,
+					index = elem.selectedIndex,
+					one = elem.type === "select-one" || index < 0,
+					values = one ? null : [],
+					max = one ? index + 1 : options.length,
+					i = index < 0 ?
+						max :
+						one ? index : 0;
+
+				// Loop through all the selected options
+				for ( ; i < max; i++ ) {
+					option = options[ i ];
+
+					// IE6-9 doesn't update selected after form reset (#2551)
+					if ( ( option.selected || i === index ) &&
+							// Don't return options that are disabled or in a disabled optgroup
+							( support.optDisabled ? !option.disabled : option.getAttribute( "disabled" ) === null ) &&
+							( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) {
+
+						// Get the specific value for the option
+						value = jQuery( option ).val();
+
+						// We don't need an array for one selects
+						if ( one ) {
+							return value;
+						}
+
+						// Multi-Selects return an array
+						values.push( value );
+					}
+				}
+
+				return values;
+			},
+
+			set: function( elem, value ) {
+				var optionSet, option,
+					options = elem.options,
+					values = jQuery.makeArray( value ),
+					i = options.length;
+
+				while ( i-- ) {
+					option = options[ i ];
+					if ( (option.selected = jQuery.inArray( option.value, values ) >= 0) ) {
+						optionSet = true;
+					}
+				}
+
+				// Force browsers to behave consistently when non-matching value is set
+				if ( !optionSet ) {
+					elem.selectedIndex = -1;
+				}
+				return values;
+			}
+		}
+	}
+});
+
+// Radios and checkboxes getter/setter
+jQuery.each([ "radio", "checkbox" ], function() {
+	jQuery.valHooks[ this ] = {
+		set: function( elem, value ) {
+			if ( jQuery.isArray( value ) ) {
+				return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );
+			}
+		}
+	};
+	if ( !support.checkOn ) {
+		jQuery.valHooks[ this ].get = function( elem ) {
+			return elem.getAttribute("value") === null ? "on" : elem.value;
+		};
+	}
+});
+
+
+
+
+// Return jQuery for attributes-only inclusion
+
+
+jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
+	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+	"change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) {
+
+	// Handle event binding
+	jQuery.fn[ name ] = function( data, fn ) {
+		return arguments.length > 0 ?
+			this.on( name, null, data, fn ) :
+			this.trigger( name );
+	};
+});
+
+jQuery.fn.extend({
+	hover: function( fnOver, fnOut ) {
+		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+	},
+
+	bind: function( types, data, fn ) {
+		return this.on( types, null, data, fn );
+	},
+	unbind: function( types, fn ) {
+		return this.off( types, null, fn );
+	},
+
+	delegate: function( selector, types, data, fn ) {
+		return this.on( types, selector, data, fn );
+	},
+	undelegate: function( selector, types, fn ) {
+		// ( namespace ) or ( selector, types [, fn] )
+		return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn );
+	}
+});
+
+
+var nonce = jQuery.now();
+
+var rquery = (/\?/);
+
+
+
+// Support: Android 2.3
+// Workaround failure to string-cast null input
+jQuery.parseJSON = function( data ) {
+	return JSON.parse( data + "" );
+};
+
+
+// Cross-browser xml parsing
+jQuery.parseXML = function( data ) {
+	var xml, tmp;
+	if ( !data || typeof data !== "string" ) {
+		return null;
+	}
+
+	// Support: IE9
+	try {
+		tmp = new DOMParser();
+		xml = tmp.parseFromString( data, "text/xml" );
+	} catch ( e ) {
+		xml = undefined;
+	}
+
+	if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
+		jQuery.error( "Invalid XML: " + data );
+	}
+	return xml;
+};
+
+
+var
+	rhash = /#.*$/,
+	rts = /([?&])_=[^&]*/,
+	rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
+	// #7653, #8125, #8152: local protocol detection
+	rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
+	rnoContent = /^(?:GET|HEAD)$/,
+	rprotocol = /^\/\//,
+	rurl = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
+
+	/* Prefilters
+	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
+	 * 2) These are called:
+	 *    - BEFORE asking for a transport
+	 *    - AFTER param serialization (s.data is a string if s.processData is true)
+	 * 3) key is the dataType
+	 * 4) the catchall symbol "*" can be used
+	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
+	 */
+	prefilters = {},
+
+	/* Transports bindings
+	 * 1) key is the dataType
+	 * 2) the catchall symbol "*" can be used
+	 * 3) selection will start with transport dataType and THEN go to "*" if needed
+	 */
+	transports = {},
+
+	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
+	allTypes = "*/".concat( "*" ),
+
+	// Document location
+	ajaxLocation = window.location.href,
+
+	// Segment location into parts
+	ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
+
+// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
+function addToPrefiltersOrTransports( structure ) {
+
+	// dataTypeExpression is optional and defaults to "*"
+	return function( dataTypeExpression, func ) {
+
+		if ( typeof dataTypeExpression !== "string" ) {
+			func = dataTypeExpression;
+			dataTypeExpression = "*";
+		}
+
+		var dataType,
+			i = 0,
+			dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || [];
+
+		if ( jQuery.isFunction( func ) ) {
+			// For each dataType in the dataTypeExpression
+			while ( (dataType = dataTypes[i++]) ) {
+				// Prepend if requested
+				if ( dataType[0] === "+" ) {
+					dataType = dataType.slice( 1 ) || "*";
+					(structure[ dataType ] = structure[ dataType ] || []).unshift( func );
+
+				// Otherwise append
+				} else {
+					(structure[ dataType ] = structure[ dataType ] || []).push( func );
+				}
+			}
+		}
+	};
+}
+
+// Base inspection function for prefilters and transports
+function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
+
+	var inspected = {},
+		seekingTransport = ( structure === transports );
+
+	function inspect( dataType ) {
+		var selected;
+		inspected[ dataType ] = true;
+		jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
+			var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
+			if ( typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) {
+				options.dataTypes.unshift( dataTypeOrTransport );
+				inspect( dataTypeOrTransport );
+				return false;
+			} else if ( seekingTransport ) {
+				return !( selected = dataTypeOrTransport );
+			}
+		});
+		return selected;
+	}
+
+	return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
+}
+
+// A special extend for ajax options
+// that takes "flat" options (not to be deep extended)
+// Fixes #9887
+function ajaxExtend( target, src ) {
+	var key, deep,
+		flatOptions = jQuery.ajaxSettings.flatOptions || {};
+
+	for ( key in src ) {
+		if ( src[ key ] !== undefined ) {
+			( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ];
+		}
+	}
+	if ( deep ) {
+		jQuery.extend( true, target, deep );
+	}
+
+	return target;
+}
+
+/* Handles responses to an ajax request:
+ * - finds the right dataType (mediates between content-type and expected dataType)
+ * - returns the corresponding response
+ */
+function ajaxHandleResponses( s, jqXHR, responses ) {
+
+	var ct, type, finalDataType, firstDataType,
+		contents = s.contents,
+		dataTypes = s.dataTypes;
+
+	// Remove auto dataType and get content-type in the process
+	while ( dataTypes[ 0 ] === "*" ) {
+		dataTypes.shift();
+		if ( ct === undefined ) {
+			ct = s.mimeType || jqXHR.getResponseHeader("Content-Type");
+		}
+	}
+
+	// Check if we're dealing with a known content-type
+	if ( ct ) {
+		for ( type in contents ) {
+			if ( contents[ type ] && contents[ type ].test( ct ) ) {
+				dataTypes.unshift( type );
+				break;
+			}
+		}
+	}
+
+	// Check to see if we have a response for the expected dataType
+	if ( dataTypes[ 0 ] in responses ) {
+		finalDataType = dataTypes[ 0 ];
+	} else {
+		// Try convertible dataTypes
+		for ( type in responses ) {
+			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
+				finalDataType = type;
+				break;
+			}
+			if ( !firstDataType ) {
+				firstDataType = type;
+			}
+		}
+		// Or just use first one
+		finalDataType = finalDataType || firstDataType;
+	}
+
+	// If we found a dataType
+	// We add the dataType to the list if needed
+	// and return the corresponding response
+	if ( finalDataType ) {
+		if ( finalDataType !== dataTypes[ 0 ] ) {
+			dataTypes.unshift( finalDataType );
+		}
+		return responses[ finalDataType ];
+	}
+}
+
+/* Chain conversions given the request and the original response
+ * Also sets the responseXXX fields on the jqXHR instance
+ */
+function ajaxConvert( s, response, jqXHR, isSuccess ) {
+	var conv2, current, conv, tmp, prev,
+		converters = {},
+		// Work with a copy of dataTypes in case we need to modify it for conversion
+		dataTypes = s.dataTypes.slice();
+
+	// Create converters map with lowercased keys
+	if ( dataTypes[ 1 ] ) {
+		for ( conv in s.converters ) {
+			converters[ conv.toLowerCase() ] = s.converters[ conv ];
+		}
+	}
+
+	current = dataTypes.shift();
+
+	// Convert to each sequential dataType
+	while ( current ) {
+
+		if ( s.responseFields[ current ] ) {
+			jqXHR[ s.responseFields[ current ] ] = response;
+		}
+
+		// Apply the dataFilter if provided
+		if ( !prev && isSuccess && s.dataFilter ) {
+			response = s.dataFilter( response, s.dataType );
+		}
+
+		prev = current;
+		current = dataTypes.shift();
+
+		if ( current ) {
+
+		// There's only work to do if current dataType is non-auto
+			if ( current === "*" ) {
+
+				current = prev;
+
+			// Convert response if prev dataType is non-auto and differs from current
+			} else if ( prev !== "*" && prev !== current ) {
+
+				// Seek a direct converter
+				conv = converters[ prev + " " + current ] || converters[ "* " + current ];
+
+				// If none found, seek a pair
+				if ( !conv ) {
+					for ( conv2 in converters ) {
+
+						// If conv2 outputs current
+						tmp = conv2.split( " " );
+						if ( tmp[ 1 ] === current ) {
+
+							// If prev can be converted to accepted input
+							conv = converters[ prev + " " + tmp[ 0 ] ] ||
+								converters[ "* " + tmp[ 0 ] ];
+							if ( conv ) {
+								// Condense equivalence converters
+								if ( conv === true ) {
+									conv = converters[ conv2 ];
+
+								// Otherwise, insert the intermediate dataType
+								} else if ( converters[ conv2 ] !== true ) {
+									current = tmp[ 0 ];
+									dataTypes.unshift( tmp[ 1 ] );
+								}
+								break;
+							}
+						}
+					}
+				}
+
+				// Apply converter (if not an equivalence)
+				if ( conv !== true ) {
+
+					// Unless errors are allowed to bubble, catch and return them
+					if ( conv && s[ "throws" ] ) {
+						response = conv( response );
+					} else {
+						try {
+							response = conv( response );
+						} catch ( e ) {
+							return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current };
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return { state: "success", data: response };
+}
+
+jQuery.extend({
+
+	// Counter for holding the number of active queries
+	active: 0,
+
+	// Last-Modified header cache for next request
+	lastModified: {},
+	etag: {},
+
+	ajaxSettings: {
+		url: ajaxLocation,
+		type: "GET",
+		isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
+		global: true,
+		processData: true,
+		async: true,
+		contentType: "application/x-www-form-urlencoded; charset=UTF-8",
+		/*
+		timeout: 0,
+		data: null,
+		dataType: null,
+		username: null,
+		password: null,
+		cache: null,
+		throws: false,
+		traditional: false,
+		headers: {},
+		*/
+
+		accepts: {
+			"*": allTypes,
+			text: "text/plain",
+			html: "text/html",
+			xml: "application/xml, text/xml",
+			json: "application/json, text/javascript"
+		},
+
+		contents: {
+			xml: /xml/,
+			html: /html/,
+			json: /json/
+		},
+
+		responseFields: {
+			xml: "responseXML",
+			text: "responseText",
+			json: "responseJSON"
+		},
+
+		// Data converters
+		// Keys separate source (or catchall "*") and destination types with a single space
+		converters: {
+
+			// Convert anything to text
+			"* text": String,
+
+			// Text to html (true = no transformation)
+			"text html": true,
+
+			// Evaluate text as a json expression
+			"text json": jQuery.parseJSON,
+
+			// Parse text as xml
+			"text xml": jQuery.parseXML
+		},
+
+		// For options that shouldn't be deep extended:
+		// you can add your own custom options here if
+		// and when you create one that shouldn't be
+		// deep extended (see ajaxExtend)
+		flatOptions: {
+			url: true,
+			context: true
+		}
+	},
+
+	// Creates a full fledged settings object into target
+	// with both ajaxSettings and settings fields.
+	// If target is omitted, writes into ajaxSettings.
+	ajaxSetup: function( target, settings ) {
+		return settings ?
+
+			// Building a settings object
+			ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
+
+			// Extending ajaxSettings
+			ajaxExtend( jQuery.ajaxSettings, target );
+	},
+
+	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
+	ajaxTransport: addToPrefiltersOrTransports( transports ),
+
+	// Main method
+	ajax: function( url, options ) {
+
+		// If url is an object, simulate pre-1.5 signature
+		if ( typeof url === "object" ) {
+			options = url;
+			url = undefined;
+		}
+
+		// Force options to be an object
+		options = options || {};
+
+		var transport,
+			// URL without anti-cache param
+			cacheURL,
+			// Response headers
+			responseHeadersString,
+			responseHeaders,
+			// timeout handle
+			timeoutTimer,
+			// Cross-domain detection vars
+			parts,
+			// To know if global events are to be dispatched
+			fireGlobals,
+			// Loop variable
+			i,
+			// Create the final options object
+			s = jQuery.ajaxSetup( {}, options ),
+			// Callbacks context
+			callbackContext = s.context || s,
+			// Context for global events is callbackContext if it is a DOM node or jQuery collection
+			globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ?
+				jQuery( callbackContext ) :
+				jQuery.event,
+			// Deferreds
+			deferred = jQuery.Deferred(),
+			completeDeferred = jQuery.Callbacks("once memory"),
+			// Status-dependent callbacks
+			statusCode = s.statusCode || {},
+			// Headers (they are sent all at once)
+			requestHeaders = {},
+			requestHeadersNames = {},
+			// The jqXHR state
+			state = 0,
+			// Default abort message
+			strAbort = "canceled",
+			// Fake xhr
+			jqXHR = {
+				readyState: 0,
+
+				// Builds headers hashtable if needed
+				getResponseHeader: function( key ) {
+					var match;
+					if ( state === 2 ) {
+						if ( !responseHeaders ) {
+							responseHeaders = {};
+							while ( (match = rheaders.exec( responseHeadersString )) ) {
+								responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];
+							}
+						}
+						match = responseHeaders[ key.toLowerCase() ];
+					}
+					return match == null ? null : match;
+				},
+
+				// Raw string
+				getAllResponseHeaders: function() {
+					return state === 2 ? responseHeadersString : null;
+				},
+
+				// Caches the header
+				setRequestHeader: function( name, value ) {
+					var lname = name.toLowerCase();
+					if ( !state ) {
+						name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
+						requestHeaders[ name ] = value;
+					}
+					return this;
+				},
+
+				// Overrides response content-type header
+				overrideMimeType: function( type ) {
+					if ( !state ) {
+						s.mimeType = type;
+					}
+					return this;
+				},
+
+				// Status-dependent callbacks
+				statusCode: function( map ) {
+					var code;
+					if ( map ) {
+						if ( state < 2 ) {
+							for ( code in map ) {
+								// Lazy-add the new callback in a way that preserves old ones
+								statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
+							}
+						} else {
+							// Execute the appropriate callbacks
+							jqXHR.always( map[ jqXHR.status ] );
+						}
+					}
+					return this;
+				},
+
+				// Cancel the request
+				abort: function( statusText ) {
+					var finalText = statusText || strAbort;
+					if ( transport ) {
+						transport.abort( finalText );
+					}
+					done( 0, finalText );
+					return this;
+				}
+			};
+
+		// Attach deferreds
+		deferred.promise( jqXHR ).complete = completeDeferred.add;
+		jqXHR.success = jqXHR.done;
+		jqXHR.error = jqXHR.fail;
+
+		// Remove hash character (#7531: and string promotion)
+		// Add protocol if not provided (prefilters might expect it)
+		// Handle falsy url in the settings object (#10093: consistency with old signature)
+		// We also use the url parameter if available
+		s.url = ( ( url || s.url || ajaxLocation ) + "" ).replace( rhash, "" )
+			.replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
+
+		// Alias method option to type as per ticket #12004
+		s.type = options.method || options.type || s.method || s.type;
+
+		// Extract dataTypes list
+		s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ];
+
+		// A cross-domain request is in order when we have a protocol:host:port mismatch
+		if ( s.crossDomain == null ) {
+			parts = rurl.exec( s.url.toLowerCase() );
+			s.crossDomain = !!( parts &&
+				( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] ||
+					( parts[ 3 ] || ( parts[ 1 ] === "http:" ? "80" : "443" ) ) !==
+						( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? "80" : "443" ) ) )
+			);
+		}
+
+		// Convert data if not already a string
+		if ( s.data && s.processData && typeof s.data !== "string" ) {
+			s.data = jQuery.param( s.data, s.traditional );
+		}
+
+		// Apply prefilters
+		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
+
+		// If request was aborted inside a prefilter, stop there
+		if ( state === 2 ) {
+			return jqXHR;
+		}
+
+		// We can fire global events as of now if asked to
+		// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
+		fireGlobals = jQuery.event && s.global;
+
+		// Watch for a new set of requests
+		if ( fireGlobals && jQuery.active++ === 0 ) {
+			jQuery.event.trigger("ajaxStart");
+		}
+
+		// Uppercase the type
+		s.type = s.type.toUpperCase();
+
+		// Determine if request has content
+		s.hasContent = !rnoContent.test( s.type );
+
+		// Save the URL in case we're toying with the If-Modified-Since
+		// and/or If-None-Match header later on
+		cacheURL = s.url;
+
+		// More options handling for requests with no content
+		if ( !s.hasContent ) {
+
+			// If data is available, append data to url
+			if ( s.data ) {
+				cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data );
+				// #9682: remove data so that it's not used in an eventual retry
+				delete s.data;
+			}
+
+			// Add anti-cache in url if needed
+			if ( s.cache === false ) {
+				s.url = rts.test( cacheURL ) ?
+
+					// If there is already a '_' parameter, set its value
+					cacheURL.replace( rts, "$1_=" + nonce++ ) :
+
+					// Otherwise add one to the end
+					cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++;
+			}
+		}
+
+		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+		if ( s.ifModified ) {
+			if ( jQuery.lastModified[ cacheURL ] ) {
+				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
+			}
+			if ( jQuery.etag[ cacheURL ] ) {
+				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
+			}
+		}
+
+		// Set the correct header, if data is being sent
+		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
+			jqXHR.setRequestHeader( "Content-Type", s.contentType );
+		}
+
+		// Set the Accepts header for the server, depending on the dataType
+		jqXHR.setRequestHeader(
+			"Accept",
+			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
+				s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
+				s.accepts[ "*" ]
+		);
+
+		// Check for headers option
+		for ( i in s.headers ) {
+			jqXHR.setRequestHeader( i, s.headers[ i ] );
+		}
+
+		// Allow custom headers/mimetypes and early abort
+		if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
+			// Abort if not done already and return
+			return jqXHR.abort();
+		}
+
+		// Aborting is no longer a cancellation
+		strAbort = "abort";
+
+		// Install callbacks on deferreds
+		for ( i in { success: 1, error: 1, complete: 1 } ) {
+			jqXHR[ i ]( s[ i ] );
+		}
+
+		// Get transport
+		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
+
+		// If no transport, we auto-abort
+		if ( !transport ) {
+			done( -1, "No Transport" );
+		} else {
+			jqXHR.readyState = 1;
+
+			// Send global event
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
+			}
+			// Timeout
+			if ( s.async && s.timeout > 0 ) {
+				timeoutTimer = setTimeout(function() {
+					jqXHR.abort("timeout");
+				}, s.timeout );
+			}
+
+			try {
+				state = 1;
+				transport.send( requestHeaders, done );
+			} catch ( e ) {
+				// Propagate exception as error if not done
+				if ( state < 2 ) {
+					done( -1, e );
+				// Simply rethrow otherwise
+				} else {
+					throw e;
+				}
+			}
+		}
+
+		// Callback for when everything is done
+		function done( status, nativeStatusText, responses, headers ) {
+			var isSuccess, success, error, response, modified,
+				statusText = nativeStatusText;
+
+			// Called once
+			if ( state === 2 ) {
+				return;
+			}
+
+			// State is "done" now
+			state = 2;
+
+			// Clear timeout if it exists
+			if ( timeoutTimer ) {
+				clearTimeout( timeoutTimer );
+			}
+
+			// Dereference transport for early garbage collection
+			// (no matter how long the jqXHR object will be used)
+			transport = undefined;
+
+			// Cache response headers
+			responseHeadersString = headers || "";
+
+			// Set readyState
+			jqXHR.readyState = status > 0 ? 4 : 0;
+
+			// Determine if successful
+			isSuccess = status >= 200 && status < 300 || status === 304;
+
+			// Get response data
+			if ( responses ) {
+				response = ajaxHandleResponses( s, jqXHR, responses );
+			}
+
+			// Convert no matter what (that way responseXXX fields are always set)
+			response = ajaxConvert( s, response, jqXHR, isSuccess );
+
+			// If successful, handle type chaining
+			if ( isSuccess ) {
+
+				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+				if ( s.ifModified ) {
+					modified = jqXHR.getResponseHeader("Last-Modified");
+					if ( modified ) {
+						jQuery.lastModified[ cacheURL ] = modified;
+					}
+					modified = jqXHR.getResponseHeader("etag");
+					if ( modified ) {
+						jQuery.etag[ cacheURL ] = modified;
+					}
+				}
+
+				// if no content
+				if ( status === 204 || s.type === "HEAD" ) {
+					statusText = "nocontent";
+
+				// if not modified
+				} else if ( status === 304 ) {
+					statusText = "notmodified";
+
+				// If we have data, let's convert it
+				} else {
+					statusText = response.state;
+					success = response.data;
+					error = response.error;
+					isSuccess = !error;
+				}
+			} else {
+				// Extract error from statusText and normalize for non-aborts
+				error = statusText;
+				if ( status || !statusText ) {
+					statusText = "error";
+					if ( status < 0 ) {
+						status = 0;
+					}
+				}
+			}
+
+			// Set data for the fake xhr object
+			jqXHR.status = status;
+			jqXHR.statusText = ( nativeStatusText || statusText ) + "";
+
+			// Success/Error
+			if ( isSuccess ) {
+				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
+			} else {
+				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
+			}
+
+			// Status-dependent callbacks
+			jqXHR.statusCode( statusCode );
+			statusCode = undefined;
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
+					[ jqXHR, s, isSuccess ? success : error ] );
+			}
+
+			// Complete
+			completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
+				// Handle the global AJAX counter
+				if ( !( --jQuery.active ) ) {
+					jQuery.event.trigger("ajaxStop");
+				}
+			}
+		}
+
+		return jqXHR;
+	},
+
+	getJSON: function( url, data, callback ) {
+		return jQuery.get( url, data, callback, "json" );
+	},
+
+	getScript: function( url, callback ) {
+		return jQuery.get( url, undefined, callback, "script" );
+	}
+});
+
+jQuery.each( [ "get", "post" ], function( i, method ) {
+	jQuery[ method ] = function( url, data, callback, type ) {
+		// Shift arguments if data argument was omitted
+		if ( jQuery.isFunction( data ) ) {
+			type = type || callback;
+			callback = data;
+			data = undefined;
+		}
+
+		return jQuery.ajax({
+			url: url,
+			type: method,
+			dataType: type,
+			data: data,
+			success: callback
+		});
+	};
+});
+
+
+jQuery._evalUrl = function( url ) {
+	return jQuery.ajax({
+		url: url,
+		type: "GET",
+		dataType: "script",
+		async: false,
+		global: false,
+		"throws": true
+	});
+};
+
+
+jQuery.fn.extend({
+	wrapAll: function( html ) {
+		var wrap;
+
+		if ( jQuery.isFunction( html ) ) {
+			return this.each(function( i ) {
+				jQuery( this ).wrapAll( html.call(this, i) );
+			});
+		}
+
+		if ( this[ 0 ] ) {
+
+			// The elements to wrap the target around
+			wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
+
+			if ( this[ 0 ].parentNode ) {
+				wrap.insertBefore( this[ 0 ] );
+			}
+
+			wrap.map(function() {
+				var elem = this;
+
+				while ( elem.firstElementChild ) {
+					elem = elem.firstElementChild;
+				}
+
+				return elem;
+			}).append( this );
+		}
+
+		return this;
+	},
+
+	wrapInner: function( html ) {
+		if ( jQuery.isFunction( html ) ) {
+			return this.each(function( i ) {
+				jQuery( this ).wrapInner( html.call(this, i) );
+			});
+		}
+
+		return this.each(function() {
+			var self = jQuery( this ),
+				contents = self.contents();
+
+			if ( contents.length ) {
+				contents.wrapAll( html );
+
+			} else {
+				self.append( html );
+			}
+		});
+	},
+
+	wrap: function( html ) {
+		var isFunction = jQuery.isFunction( html );
+
+		return this.each(function( i ) {
+			jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html );
+		});
+	},
+
+	unwrap: function() {
+		return this.parent().each(function() {
+			if ( !jQuery.nodeName( this, "body" ) ) {
+				jQuery( this ).replaceWith( this.childNodes );
+			}
+		}).end();
+	}
+});
+
+
+jQuery.expr.filters.hidden = function( elem ) {
+	// Support: Opera <= 12.12
+	// Opera reports offsetWidths and offsetHeights less than zero on some elements
+	return elem.offsetWidth <= 0 && elem.offsetHeight <= 0;
+};
+jQuery.expr.filters.visible = function( elem ) {
+	return !jQuery.expr.filters.hidden( elem );
+};
+
+
+
+
+var r20 = /%20/g,
+	rbracket = /\[\]$/,
+	rCRLF = /\r?\n/g,
+	rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
+	rsubmittable = /^(?:input|select|textarea|keygen)/i;
+
+function buildParams( prefix, obj, traditional, add ) {
+	var name;
+
+	if ( jQuery.isArray( obj ) ) {
+		// Serialize array item.
+		jQuery.each( obj, function( i, v ) {
+			if ( traditional || rbracket.test( prefix ) ) {
+				// Treat each array item as a scalar.
+				add( prefix, v );
+
+			} else {
+				// Item is non-scalar (array or object), encode its numeric index.
+				buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add );
+			}
+		});
+
+	} else if ( !traditional && jQuery.type( obj ) === "object" ) {
+		// Serialize object item.
+		for ( name in obj ) {
+			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+		}
+
+	} else {
+		// Serialize scalar item.
+		add( prefix, obj );
+	}
+}
+
+// Serialize an array of form elements or a set of
+// key/values into a query string
+jQuery.param = function( a, traditional ) {
+	var prefix,
+		s = [],
+		add = function( key, value ) {
+			// If value is a function, invoke it and return its value
+			value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value );
+			s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
+		};
+
+	// Set traditional to true for jQuery <= 1.3.2 behavior.
+	if ( traditional === undefined ) {
+		traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
+	}
+
+	// If an array was passed in, assume that it is an array of form elements.
+	if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+		// Serialize the form elements
+		jQuery.each( a, function() {
+			add( this.name, this.value );
+		});
+
+	} else {
+		// If traditional, encode the "old" way (the way 1.3.2 or older
+		// did it), otherwise encode params recursively.
+		for ( prefix in a ) {
+			buildParams( prefix, a[ prefix ], traditional, add );
+		}
+	}
+
+	// Return the resulting serialization
+	return s.join( "&" ).replace( r20, "+" );
+};
+
+jQuery.fn.extend({
+	serialize: function() {
+		return jQuery.param( this.serializeArray() );
+	},
+	serializeArray: function() {
+		return this.map(function() {
+			// Can add propHook for "elements" to filter or add form elements
+			var elements = jQuery.prop( this, "elements" );
+			return elements ? jQuery.makeArray( elements ) : this;
+		})
+		.filter(function() {
+			var type = this.type;
+
+			// Use .is( ":disabled" ) so that fieldset[disabled] works
+			return this.name && !jQuery( this ).is( ":disabled" ) &&
+				rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
+				( this.checked || !rcheckableType.test( type ) );
+		})
+		.map(function( i, elem ) {
+			var val = jQuery( this ).val();
+
+			return val == null ?
+				null :
+				jQuery.isArray( val ) ?
+					jQuery.map( val, function( val ) {
+						return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+					}) :
+					{ name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+		}).get();
+	}
+});
+
+
+jQuery.ajaxSettings.xhr = function() {
+	try {
+		return new XMLHttpRequest();
+	} catch( e ) {}
+};
+
+var xhrId = 0,
+	xhrCallbacks = {},
+	xhrSuccessStatus = {
+		// file protocol always yields status code 0, assume 200
+		0: 200,
+		// Support: IE9
+		// #1450: sometimes IE returns 1223 when it should be 204
+		1223: 204
+	},
+	xhrSupported = jQuery.ajaxSettings.xhr();
+
+// Support: IE9
+// Open requests must be manually aborted on unload (#5280)
+// See https://support.microsoft.com/kb/2856746 for more info
+if ( window.attachEvent ) {
+	window.attachEvent( "onunload", function() {
+		for ( var key in xhrCallbacks ) {
+			xhrCallbacks[ key ]();
+		}
+	});
+}
+
+support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
+support.ajax = xhrSupported = !!xhrSupported;
+
+jQuery.ajaxTransport(function( options ) {
+	var callback;
+
+	// Cross domain only allowed if supported through XMLHttpRequest
+	if ( support.cors || xhrSupported && !options.crossDomain ) {
+		return {
+			send: function( headers, complete ) {
+				var i,
+					xhr = options.xhr(),
+					id = ++xhrId;
+
+				xhr.open( options.type, options.url, options.async, options.username, options.password );
+
+				// Apply custom fields if provided
+				if ( options.xhrFields ) {
+					for ( i in options.xhrFields ) {
+						xhr[ i ] = options.xhrFields[ i ];
+					}
+				}
+
+				// Override mime type if needed
+				if ( options.mimeType && xhr.overrideMimeType ) {
+					xhr.overrideMimeType( options.mimeType );
+				}
+
+				// X-Requested-With header
+				// For cross-domain requests, seeing as conditions for a preflight are
+				// akin to a jigsaw puzzle, we simply never set it to be sure.
+				// (it can always be set on a per-request basis or even using ajaxSetup)
+				// For same-domain requests, won't change header if already provided.
+				if ( !options.crossDomain && !headers["X-Requested-With"] ) {
+					headers["X-Requested-With"] = "XMLHttpRequest";
+				}
+
+				// Set headers
+				for ( i in headers ) {
+					xhr.setRequestHeader( i, headers[ i ] );
+				}
+
+				// Callback
+				callback = function( type ) {
+					return function() {
+						if ( callback ) {
+							delete xhrCallbacks[ id ];
+							callback = xhr.onload = xhr.onerror = null;
+
+							if ( type === "abort" ) {
+								xhr.abort();
+							} else if ( type === "error" ) {
+								complete(
+									// file: protocol always yields status 0; see #8605, #14207
+									xhr.status,
+									xhr.statusText
+								);
+							} else {
+								complete(
+									xhrSuccessStatus[ xhr.status ] || xhr.status,
+									xhr.statusText,
+									// Support: IE9
+									// Accessing binary-data responseText throws an exception
+									// (#11426)
+									typeof xhr.responseText === "string" ? {
+										text: xhr.responseText
+									} : undefined,
+									xhr.getAllResponseHeaders()
+								);
+							}
+						}
+					};
+				};
+
+				// Listen to events
+				xhr.onload = callback();
+				xhr.onerror = callback("error");
+
+				// Create the abort callback
+				callback = xhrCallbacks[ id ] = callback("abort");
+
+				try {
+					// Do send the request (this may raise an exception)
+					xhr.send( options.hasContent && options.data || null );
+				} catch ( e ) {
+					// #14683: Only rethrow if this hasn't been notified as an error yet
+					if ( callback ) {
+						throw e;
+					}
+				}
+			},
+
+			abort: function() {
+				if ( callback ) {
+					callback();
+				}
+			}
+		};
+	}
+});
+
+
+
+
+// Install script dataType
+jQuery.ajaxSetup({
+	accepts: {
+		script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
+	},
+	contents: {
+		script: /(?:java|ecma)script/
+	},
+	converters: {
+		"text script": function( text ) {
+			jQuery.globalEval( text );
+			return text;
+		}
+	}
+});
+
+// Handle cache's special case and crossDomain
+jQuery.ajaxPrefilter( "script", function( s ) {
+	if ( s.cache === undefined ) {
+		s.cache = false;
+	}
+	if ( s.crossDomain ) {
+		s.type = "GET";
+	}
+});
+
+// Bind script tag hack transport
+jQuery.ajaxTransport( "script", function( s ) {
+	// This transport only deals with cross domain requests
+	if ( s.crossDomain ) {
+		var script, callback;
+		return {
+			send: function( _, complete ) {
+				script = jQuery("<script>").prop({
+					async: true,
+					charset: s.scriptCharset,
+					src: s.url
+				}).on(
+					"load error",
+					callback = function( evt ) {
+						script.remove();
+						callback = null;
+						if ( evt ) {
+							complete( evt.type === "error" ? 404 : 200, evt.type );
+						}
+					}
+				);
+				document.head.appendChild( script[ 0 ] );
+			},
+			abort: function() {
+				if ( callback ) {
+					callback();
+				}
+			}
+		};
+	}
+});
+
+
+
+
+var oldCallbacks = [],
+	rjsonp = /(=)\?(?=&|$)|\?\?/;
+
+// Default jsonp settings
+jQuery.ajaxSetup({
+	jsonp: "callback",
+	jsonpCallback: function() {
+		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
+		this[ callback ] = true;
+		return callback;
+	}
+});
+
+// Detect, normalize options and install callbacks for jsonp requests
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
+
+	var callbackName, overwritten, responseContainer,
+		jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
+			"url" :
+			typeof s.data === "string" && !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && rjsonp.test( s.data ) && "data"
+		);
+
+	// Handle iff the expected data type is "jsonp" or we have a parameter to set
+	if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
+
+		// Get callback name, remembering preexisting value associated with it
+		callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
+			s.jsonpCallback() :
+			s.jsonpCallback;
+
+		// Insert callback into url or form data
+		if ( jsonProp ) {
+			s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
+		} else if ( s.jsonp !== false ) {
+			s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
+		}
+
+		// Use data converter to retrieve json after script execution
+		s.converters["script json"] = function() {
+			if ( !responseContainer ) {
+				jQuery.error( callbackName + " was not called" );
+			}
+			return responseContainer[ 0 ];
+		};
+
+		// force json dataType
+		s.dataTypes[ 0 ] = "json";
+
+		// Install callback
+		overwritten = window[ callbackName ];
+		window[ callbackName ] = function() {
+			responseContainer = arguments;
+		};
+
+		// Clean-up function (fires after converters)
+		jqXHR.always(function() {
+			// Restore preexisting value
+			window[ callbackName ] = overwritten;
+
+			// Save back as free
+			if ( s[ callbackName ] ) {
+				// make sure that re-using the options doesn't screw things around
+				s.jsonpCallback = originalSettings.jsonpCallback;
+
+				// save the callback name for future use
+				oldCallbacks.push( callbackName );
+			}
+
+			// Call if it was a function and we have a response
+			if ( responseContainer && jQuery.isFunction( overwritten ) ) {
+				overwritten( responseContainer[ 0 ] );
+			}
+
+			responseContainer = overwritten = undefined;
+		});
+
+		// Delegate to script
+		return "script";
+	}
+});
+
+
+
+
+// data: string of html
+// context (optional): If specified, the fragment will be created in this context, defaults to document
+// keepScripts (optional): If true, will include scripts passed in the html string
+jQuery.parseHTML = function( data, context, keepScripts ) {
+	if ( !data || typeof data !== "string" ) {
+		return null;
+	}
+	if ( typeof context === "boolean" ) {
+		keepScripts = context;
+		context = false;
+	}
+	context = context || document;
+
+	var parsed = rsingleTag.exec( data ),
+		scripts = !keepScripts && [];
+
+	// Single tag
+	if ( parsed ) {
+		return [ context.createElement( parsed[1] ) ];
+	}
+
+	parsed = jQuery.buildFragment( [ data ], context, scripts );
+
+	if ( scripts && scripts.length ) {
+		jQuery( scripts ).remove();
+	}
+
+	return jQuery.merge( [], parsed.childNodes );
+};
+
+
+// Keep a copy of the old load method
+var _load = jQuery.fn.load;
+
+/**
+ * Load a url into a page
+ */
+jQuery.fn.load = function( url, params, callback ) {
+	if ( typeof url !== "string" && _load ) {
+		return _load.apply( this, arguments );
+	}
+
+	var selector, type, response,
+		self = this,
+		off = url.indexOf(" ");
+
+	if ( off >= 0 ) {
+		selector = jQuery.trim( url.slice( off ) );
+		url = url.slice( 0, off );
+	}
+
+	// If it's a function
+	if ( jQuery.isFunction( params ) ) {
+
+		// We assume that it's the callback
+		callback = params;
+		params = undefined;
+
+	// Otherwise, build a param string
+	} else if ( params && typeof params === "object" ) {
+		type = "POST";
+	}
+
+	// If we have elements to modify, make the request
+	if ( self.length > 0 ) {
+		jQuery.ajax({
+			url: url,
+
+			// if "type" variable is undefined, then "GET" method will be used
+			type: type,
+			dataType: "html",
+			data: params
+		}).done(function( responseText ) {
+
+			// Save response for use in complete callback
+			response = arguments;
+
+			self.html( selector ?
+
+				// If a selector was specified, locate the right elements in a dummy div
+				// Exclude scripts to avoid IE 'Permission Denied' errors
+				jQuery("<div>").append( jQuery.parseHTML( responseText ) ).find( selector ) :
+
+				// Otherwise use the full result
+				responseText );
+
+		}).complete( callback && function( jqXHR, status ) {
+			self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] );
+		});
+	}
+
+	return this;
+};
+
+
+
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) {
+	jQuery.fn[ type ] = function( fn ) {
+		return this.on( type, fn );
+	};
+});
+
+
+
+
+jQuery.expr.filters.animated = function( elem ) {
+	return jQuery.grep(jQuery.timers, function( fn ) {
+		return elem === fn.elem;
+	}).length;
+};
+
+
+
+
+var docElem = window.document.documentElement;
+
+/**
+ * Gets a window from an element
+ */
+function getWindow( elem ) {
+	return jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 && elem.defaultView;
+}
+
+jQuery.offset = {
+	setOffset: function( elem, options, i ) {
+		var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
+			position = jQuery.css( elem, "position" ),
+			curElem = jQuery( elem ),
+			props = {};
+
+		// Set position first, in-case top/left are set even on static elem
+		if ( position === "static" ) {
+			elem.style.position = "relative";
+		}
+
+		curOffset = curElem.offset();
+		curCSSTop = jQuery.css( elem, "top" );
+		curCSSLeft = jQuery.css( elem, "left" );
+		calculatePosition = ( position === "absolute" || position === "fixed" ) &&
+			( curCSSTop + curCSSLeft ).indexOf("auto") > -1;
+
+		// Need to be able to calculate position if either
+		// top or left is auto and position is either absolute or fixed
+		if ( calculatePosition ) {
+			curPosition = curElem.position();
+			curTop = curPosition.top;
+			curLeft = curPosition.left;
+
+		} else {
+			curTop = parseFloat( curCSSTop ) || 0;
+			curLeft = parseFloat( curCSSLeft ) || 0;
+		}
+
+		if ( jQuery.isFunction( options ) ) {
+			options = options.call( elem, i, curOffset );
+		}
+
+		if ( options.top != null ) {
+			props.top = ( options.top - curOffset.top ) + curTop;
+		}
+		if ( options.left != null ) {
+			props.left = ( options.left - curOffset.left ) + curLeft;
+		}
+
+		if ( "using" in options ) {
+			options.using.call( elem, props );
+
+		} else {
+			curElem.css( props );
+		}
+	}
+};
+
+jQuery.fn.extend({
+	offset: function( options ) {
+		if ( arguments.length ) {
+			return options === undefined ?
+				this :
+				this.each(function( i ) {
+					jQuery.offset.setOffset( this, options, i );
+				});
+		}
+
+		var docElem, win,
+			elem = this[ 0 ],
+			box = { top: 0, left: 0 },
+			doc = elem && elem.ownerDocument;
+
+		if ( !doc ) {
+			return;
+		}
+
+		docElem = doc.documentElement;
+
+		// Make sure it's not a disconnected DOM node
+		if ( !jQuery.contains( docElem, elem ) ) {
+			return box;
+		}
+
+		// Support: BlackBerry 5, iOS 3 (original iPhone)
+		// If we don't have gBCR, just use 0,0 rather than error
+		if ( typeof elem.getBoundingClientRect !== strundefined ) {
+			box = elem.getBoundingClientRect();
+		}
+		win = getWindow( doc );
+		return {
+			top: box.top + win.pageYOffset - docElem.clientTop,
+			left: box.left + win.pageXOffset - docElem.clientLeft
+		};
+	},
+
+	position: function() {
+		if ( !this[ 0 ] ) {
+			return;
+		}
+
+		var offsetParent, offset,
+			elem = this[ 0 ],
+			parentOffset = { top: 0, left: 0 };
+
+		// Fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is its only offset parent
+		if ( jQuery.css( elem, "position" ) === "fixed" ) {
+			// Assume getBoundingClientRect is there when computed position is fixed
+			offset = elem.getBoundingClientRect();
+
+		} else {
+			// Get *real* offsetParent
+			offsetParent = this.offsetParent();
+
+			// Get correct offsets
+			offset = this.offset();
+			if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) {
+				parentOffset = offsetParent.offset();
+			}
+
+			// Add offsetParent borders
+			parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true );
+			parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true );
+		}
+
+		// Subtract parent offsets and element margins
+		return {
+			top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
+			left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
+		};
+	},
+
+	offsetParent: function() {
+		return this.map(function() {
+			var offsetParent = this.offsetParent || docElem;
+
+			while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) && jQuery.css( offsetParent, "position" ) === "static" ) ) {
+				offsetParent = offsetParent.offsetParent;
+			}
+
+			return offsetParent || docElem;
+		});
+	}
+});
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
+	var top = "pageYOffset" === prop;
+
+	jQuery.fn[ method ] = function( val ) {
+		return access( this, function( elem, method, val ) {
+			var win = getWindow( elem );
+
+			if ( val === undefined ) {
+				return win ? win[ prop ] : elem[ method ];
+			}
+
+			if ( win ) {
+				win.scrollTo(
+					!top ? val : window.pageXOffset,
+					top ? val : window.pageYOffset
+				);
+
+			} else {
+				elem[ method ] = val;
+			}
+		}, method, val, arguments.length, null );
+	};
+});
+
+// Support: Safari<7+, Chrome<37+
+// Add the top/left cssHooks using jQuery.fn.position
+// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
+// Blink bug: https://code.google.com/p/chromium/issues/detail?id=229280
+// getComputedStyle returns percent when specified for top/left/bottom/right;
+// rather than make the css module depend on the offset module, just check for it here
+jQuery.each( [ "top", "left" ], function( i, prop ) {
+	jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
+		function( elem, computed ) {
+			if ( computed ) {
+				computed = curCSS( elem, prop );
+				// If curCSS returns percentage, fallback to offset
+				return rnumnonpx.test( computed ) ?
+					jQuery( elem ).position()[ prop ] + "px" :
+					computed;
+			}
+		}
+	);
+});
+
+
+// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
+jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
+	jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, function( defaultExtra, funcName ) {
+		// Margin is only for outerHeight, outerWidth
+		jQuery.fn[ funcName ] = function( margin, value ) {
+			var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
+				extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
+
+			return access( this, function( elem, type, value ) {
+				var doc;
+
+				if ( jQuery.isWindow( elem ) ) {
+					// As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there
+					// isn't a whole lot we can do. See pull request at this URL for discussion:
+					// https://github.com/jquery/jquery/pull/764
+					return elem.document.documentElement[ "client" + name ];
+				}
+
+				// Get document width or height
+				if ( elem.nodeType === 9 ) {
+					doc = elem.documentElement;
+
+					// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
+					// whichever is greatest
+					return Math.max(
+						elem.body[ "scroll" + name ], doc[ "scroll" + name ],
+						elem.body[ "offset" + name ], doc[ "offset" + name ],
+						doc[ "client" + name ]
+					);
+				}
+
+				return value === undefined ?
+					// Get width or height on the element, requesting but not forcing parseFloat
+					jQuery.css( elem, type, extra ) :
+
+					// Set width or height on the element
+					jQuery.style( elem, type, value, extra );
+			}, type, chainable ? margin : undefined, chainable, null );
+		};
+	});
+});
+
+
+// The number of elements contained in the matched element set
+jQuery.fn.size = function() {
+	return this.length;
+};
+
+jQuery.fn.andSelf = jQuery.fn.addBack;
+
+
+
+
+// Register as a named AMD module, since jQuery can be concatenated with other
+// files that may use define, but not via a proper concatenation script that
+// understands anonymous AMD modules. A named AMD is safest and most robust
+// way to register. Lowercase jquery is used because AMD module names are
+// derived from file names, and jQuery is normally delivered in a lowercase
+// file name. Do this after creating the global so that if an AMD module wants
+// to call noConflict to hide this version of jQuery, it will work.
+
+// Note that for maximum portability, libraries that are not jQuery should
+// declare themselves as anonymous modules, and avoid setting a global if an
+// AMD loader is present. jQuery is a special case. For more information, see
+// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
+
+if ( typeof define === "function" && define.amd ) {
+	define( "jquery", [], function() {
+		return jQuery;
+	});
+}
+
+
+
+
+var
+	// Map over jQuery in case of overwrite
+	_jQuery = window.jQuery,
+
+	// Map over the $ in case of overwrite
+	_$ = window.$;
+
+jQuery.noConflict = function( deep ) {
+	if ( window.$ === jQuery ) {
+		window.$ = _$;
+	}
+
+	if ( deep && window.jQuery === jQuery ) {
+		window.jQuery = _jQuery;
+	}
+
+	return jQuery;
+};
+
+// Expose jQuery and $ identifiers, even in AMD
+// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
+// and CommonJS for browser emulators (#13566)
+if ( typeof noGlobal === strundefined ) {
+	window.jQuery = window.$ = jQuery;
+}
+
+
+
+
+return jQuery;
+
+}));
diff --git a/ui/new-ui-samples/js/vendor/modernizr.js b/ui/new-ui-samples/js/vendor/modernizr.js
new file mode 100644
index 0000000..3365339
--- /dev/null
+++ b/ui/new-ui-samples/js/vendor/modernizr.js
@@ -0,0 +1,1406 @@
+/*!
+ * Modernizr v2.8.3
+ * www.modernizr.com
+ *
+ * Copyright (c) Faruk Ates, Paul Irish, Alex Sexton
+ * Available under the BSD and MIT licenses: www.modernizr.com/license/
+ */
+
+/*
+ * Modernizr tests which native CSS3 and HTML5 features are available in
+ * the current UA and makes the results available to you in two ways:
+ * as properties on a global Modernizr object, and as classes on the
+ * <html> element. This information allows you to progressively enhance
+ * your pages with a granular level of control over the experience.
+ *
+ * Modernizr has an optional (not included) conditional resource loader
+ * called Modernizr.load(), based on Yepnope.js (yepnopejs.com).
+ * To get a build that includes Modernizr.load(), as well as choosing
+ * which tests to include, go to www.modernizr.com/download/
+ *
+ * Authors        Faruk Ates, Paul Irish, Alex Sexton
+ * Contributors   Ryan Seddon, Ben Alman
+ */
+
+window.Modernizr = (function( window, document, undefined ) {
+
+    var version = '2.8.3',
+
+    Modernizr = {},
+
+    /*>>cssclasses*/
+    // option for enabling the HTML classes to be added
+    enableClasses = true,
+    /*>>cssclasses*/
+
+    docElement = document.documentElement,
+
+    /**
+     * Create our "modernizr" element that we do most feature tests on.
+     */
+    mod = 'modernizr',
+    modElem = document.createElement(mod),
+    mStyle = modElem.style,
+
+    /**
+     * Create the input element for various Web Forms feature tests.
+     */
+    inputElem /*>>inputelem*/ = document.createElement('input') /*>>inputelem*/ ,
+
+    /*>>smile*/
+    smile = ':)',
+    /*>>smile*/
+
+    toString = {}.toString,
+
+    // TODO :: make the prefixes more granular
+    /*>>prefixes*/
+    // List of property values to set for css tests. See ticket #21
+    prefixes = ' -webkit- -moz- -o- -ms- '.split(' '),
+    /*>>prefixes*/
+
+    /*>>domprefixes*/
+    // Following spec is to expose vendor-specific style properties as:
+    //   elem.style.WebkitBorderRadius
+    // and the following would be incorrect:
+    //   elem.style.webkitBorderRadius
+
+    // Webkit ghosts their properties in lowercase but Opera & Moz do not.
+    // Microsoft uses a lowercase `ms` instead of the correct `Ms` in IE8+
+    //   erik.eae.net/archives/2008/03/10/21.48.10/
+
+    // More here: github.com/Modernizr/Modernizr/issues/issue/21
+    omPrefixes = 'Webkit Moz O ms',
+
+    cssomPrefixes = omPrefixes.split(' '),
+
+    domPrefixes = omPrefixes.toLowerCase().split(' '),
+    /*>>domprefixes*/
+
+    /*>>ns*/
+    ns = {'svg': 'http://www.w3.org/2000/svg'},
+    /*>>ns*/
+
+    tests = {},
+    inputs = {},
+    attrs = {},
+
+    classes = [],
+
+    slice = classes.slice,
+
+    featureName, // used in testing loop
+
+
+    /*>>teststyles*/
+    // Inject element with style element and some CSS rules
+    injectElementWithStyles = function( rule, callback, nodes, testnames ) {
+
+      var style, ret, node, docOverflow,
+          div = document.createElement('div'),
+          // After page load injecting a fake body doesn't work so check if body exists
+          body = document.body,
+          // IE6 and 7 won't return offsetWidth or offsetHeight unless it's in the body element, so we fake it.
+          fakeBody = body || document.createElement('body');
+
+      if ( parseInt(nodes, 10) ) {
+          // In order not to give false positives we create a node for each test
+          // This also allows the method to scale for unspecified uses
+          while ( nodes-- ) {
+              node = document.createElement('div');
+              node.id = testnames ? testnames[nodes] : mod + (nodes + 1);
+              div.appendChild(node);
+          }
+      }
+
+      // <style> elements in IE6-9 are considered 'NoScope' elements and therefore will be removed
+      // when injected with innerHTML. To get around this you need to prepend the 'NoScope' element
+      // with a 'scoped' element, in our case the soft-hyphen entity as it won't mess with our measurements.
+      // msdn.microsoft.com/en-us/library/ms533897%28VS.85%29.aspx
+      // Documents served as xml will throw if using &shy; so use xml friendly encoded version. See issue #277
+      style = ['&#173;','<style id="s', mod, '">', rule, '</style>'].join('');
+      div.id = mod;
+      // IE6 will false positive on some tests due to the style element inside the test div somehow interfering offsetHeight, so insert it into body or fakebody.
+      // Opera will act all quirky when injecting elements in documentElement when page is served as xml, needs fakebody too. #270
+      (body ? div : fakeBody).innerHTML += style;
+      fakeBody.appendChild(div);
+      if ( !body ) {
+          //avoid crashing IE8, if background image is used
+          fakeBody.style.background = '';
+          //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible
+          fakeBody.style.overflow = 'hidden';
+          docOverflow = docElement.style.overflow;
+          docElement.style.overflow = 'hidden';
+          docElement.appendChild(fakeBody);
+      }
+
+      ret = callback(div, rule);
+      // If this is done after page load we don't want to remove the body so check if body exists
+      if ( !body ) {
+          fakeBody.parentNode.removeChild(fakeBody);
+          docElement.style.overflow = docOverflow;
+      } else {
+          div.parentNode.removeChild(div);
+      }
+
+      return !!ret;
+
+    },
+    /*>>teststyles*/
+
+    /*>>mq*/
+    // adapted from matchMedia polyfill
+    // by Scott Jehl and Paul Irish
+    // gist.github.com/786768
+    testMediaQuery = function( mq ) {
+
+      var matchMedia = window.matchMedia || window.msMatchMedia;
+      if ( matchMedia ) {
+        return matchMedia(mq) && matchMedia(mq).matches || false;
+      }
+
+      var bool;
+
+      injectElementWithStyles('@media ' + mq + ' { #' + mod + ' { position: absolute; } }', function( node ) {
+        bool = (window.getComputedStyle ?
+                  getComputedStyle(node, null) :
+                  node.currentStyle)['position'] == 'absolute';
+      });
+
+      return bool;
+
+     },
+     /*>>mq*/
+
+
+    /*>>hasevent*/
+    //
+    // isEventSupported determines if a given element supports the given event
+    // kangax.github.com/iseventsupported/
+    //
+    // The following results are known incorrects:
+    //   Modernizr.hasEvent("webkitTransitionEnd", elem) // false negative
+    //   Modernizr.hasEvent("textInput") // in Webkit. github.com/Modernizr/Modernizr/issues/333
+    //   ...
+    isEventSupported = (function() {
+
+      var TAGNAMES = {
+        'select': 'input', 'change': 'input',
+        'submit': 'form', 'reset': 'form',
+        'error': 'img', 'load': 'img', 'abort': 'img'
+      };
+
+      function isEventSupported( eventName, element ) {
+
+        element = element || document.createElement(TAGNAMES[eventName] || 'div');
+        eventName = 'on' + eventName;
+
+        // When using `setAttribute`, IE skips "unload", WebKit skips "unload" and "resize", whereas `in` "catches" those
+        var isSupported = eventName in element;
+
+        if ( !isSupported ) {
+          // If it has no `setAttribute` (i.e. doesn't implement Node interface), try generic element
+          if ( !element.setAttribute ) {
+            element = document.createElement('div');
+          }
+          if ( element.setAttribute && element.removeAttribute ) {
+            element.setAttribute(eventName, '');
+            isSupported = is(element[eventName], 'function');
+
+            // If property was created, "remove it" (by setting value to `undefined`)
+            if ( !is(element[eventName], 'undefined') ) {
+              element[eventName] = undefined;
+            }
+            element.removeAttribute(eventName);
+          }
+        }
+
+        element = null;
+        return isSupported;
+      }
+      return isEventSupported;
+    })(),
+    /*>>hasevent*/
+
+    // TODO :: Add flag for hasownprop ? didn't last time
+
+    // hasOwnProperty shim by kangax needed for Safari 2.0 support
+    _hasOwnProperty = ({}).hasOwnProperty, hasOwnProp;
+
+    if ( !is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined') ) {
+      hasOwnProp = function (object, property) {
+        return _hasOwnProperty.call(object, property);
+      };
+    }
+    else {
+      hasOwnProp = function (object, property) { /* yes, this can give false positives/negatives, but most of the time we don't care about those */
+        return ((property in object) && is(object.constructor.prototype[property], 'undefined'));
+      };
+    }
+
+    // Adapted from ES5-shim https://github.com/kriskowal/es5-shim/blob/master/es5-shim.js
+    // es5.github.com/#x15.3.4.5
+
+    if (!Function.prototype.bind) {
+      Function.prototype.bind = function bind(that) {
+
+        var target = this;
+
+        if (typeof target != "function") {
+            throw new TypeError();
+        }
+
+        var args = slice.call(arguments, 1),
+            bound = function () {
+
+            if (this instanceof bound) {
+
+              var F = function(){};
+              F.prototype = target.prototype;
+              var self = new F();
+
+              var result = target.apply(
+                  self,
+                  args.concat(slice.call(arguments))
+              );
+              if (Object(result) === result) {
+                  return result;
+              }
+              return self;
+
+            } else {
+
+              return target.apply(
+                  that,
+                  args.concat(slice.call(arguments))
+              );
+
+            }
+
+        };
+
+        return bound;
+      };
+    }
+
+    /**
+     * setCss applies given styles to the Modernizr DOM node.
+     */
+    function setCss( str ) {
+        mStyle.cssText = str;
+    }
+
+    /**
+     * setCssAll extrapolates all vendor-specific css strings.
+     */
+    function setCssAll( str1, str2 ) {
+        return setCss(prefixes.join(str1 + ';') + ( str2 || '' ));
+    }
+
+    /**
+     * is returns a boolean for if typeof obj is exactly type.
+     */
+    function is( obj, type ) {
+        return typeof obj === type;
+    }
+
+    /**
+     * contains returns a boolean for if substr is found within str.
+     */
+    function contains( str, substr ) {
+        return !!~('' + str).indexOf(substr);
+    }
+
+    /*>>testprop*/
+
+    // testProps is a generic CSS / DOM property test.
+
+    // In testing support for a given CSS property, it's legit to test:
+    //    `elem.style[styleName] !== undefined`
+    // If the property is supported it will return an empty string,
+    // if unsupported it will return undefined.
+
+    // We'll take advantage of this quick test and skip setting a style
+    // on our modernizr element, but instead just testing undefined vs
+    // empty string.
+
+    // Because the testing of the CSS property names (with "-", as
+    // opposed to the camelCase DOM properties) is non-portable and
+    // non-standard but works in WebKit and IE (but not Gecko or Opera),
+    // we explicitly reject properties with dashes so that authors
+    // developing in WebKit or IE first don't end up with
+    // browser-specific content by accident.
+
+    function testProps( props, prefixed ) {
+        for ( var i in props ) {
+            var prop = props[i];
+            if ( !contains(prop, "-") && mStyle[prop] !== undefined ) {
+                return prefixed == 'pfx' ? prop : true;
+            }
+        }
+        return false;
+    }
+    /*>>testprop*/
+
+    // TODO :: add testDOMProps
+    /**
+     * testDOMProps is a generic DOM property test; if a browser supports
+     *   a certain property, it won't return undefined for it.
+     */
+    function testDOMProps( props, obj, elem ) {
+        for ( var i in props ) {
+            var item = obj[props[i]];
+            if ( item !== undefined) {
+
+                // return the property name as a string
+                if (elem === false) return props[i];
+
+                // let's bind a function
+                if (is(item, 'function')){
+                  // default to autobind unless override
+                  return item.bind(elem || obj);
+                }
+
+                // return the unbound function or obj or value
+                return item;
+            }
+        }
+        return false;
+    }
+
+    /*>>testallprops*/
+    /**
+     * testPropsAll tests a list of DOM properties we want to check against.
+     *   We specify literally ALL possible (known and/or likely) properties on
+     *   the element including the non-vendor prefixed one, for forward-
+     *   compatibility.
+     */
+    function testPropsAll( prop, prefixed, elem ) {
+
+        var ucProp  = prop.charAt(0).toUpperCase() + prop.slice(1),
+            props   = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' ');
+
+        // did they call .prefixed('boxSizing') or are we just testing a prop?
+        if(is(prefixed, "string") || is(prefixed, "undefined")) {
+          return testProps(props, prefixed);
+
+        // otherwise, they called .prefixed('requestAnimationFrame', window[, elem])
+        } else {
+          props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' ');
+          return testDOMProps(props, prefixed, elem);
+        }
+    }
+    /*>>testallprops*/
+
+
+    /**
+     * Tests
+     * -----
+     */
+
+    // The *new* flexbox
+    // dev.w3.org/csswg/css3-flexbox
+
+    tests['flexbox'] = function() {
+      return testPropsAll('flexWrap');
+    };
+
+    // The *old* flexbox
+    // www.w3.org/TR/2009/WD-css3-flexbox-20090723/
+
+    tests['flexboxlegacy'] = function() {
+        return testPropsAll('boxDirection');
+    };
+
+    // On the S60 and BB Storm, getContext exists, but always returns undefined
+    // so we actually have to call getContext() to verify
+    // github.com/Modernizr/Modernizr/issues/issue/97/
+
+    tests['canvas'] = function() {
+        var elem = document.createElement('canvas');
+        return !!(elem.getContext && elem.getContext('2d'));
+    };
+
+    tests['canvastext'] = function() {
+        return !!(Modernizr['canvas'] && is(document.createElement('canvas').getContext('2d').fillText, 'function'));
+    };
+
+    // webk.it/70117 is tracking a legit WebGL feature detect proposal
+
+    // We do a soft detect which may false positive in order to avoid
+    // an expensive context creation: bugzil.la/732441
+
+    tests['webgl'] = function() {
+        return !!window.WebGLRenderingContext;
+    };
+
+    /*
+     * The Modernizr.touch test only indicates if the browser supports
+     *    touch events, which does not necessarily reflect a touchscreen
+     *    device, as evidenced by tablets running Windows 7 or, alas,
+     *    the Palm Pre / WebOS (touch) phones.
+     *
+     * Additionally, Chrome (desktop) used to lie about its support on this,
+     *    but that has since been rectified: crbug.com/36415
+     *
+     * We also test for Firefox 4 Multitouch Support.
+     *
+     * For more info, see: modernizr.github.com/Modernizr/touch.html
+     */
+
+    tests['touch'] = function() {
+        var bool;
+
+        if(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) {
+          bool = true;
+        } else {
+          injectElementWithStyles(['@media (',prefixes.join('touch-enabled),('),mod,')','{#modernizr{top:9px;position:absolute}}'].join(''), function( node ) {
+            bool = node.offsetTop === 9;
+          });
+        }
+
+        return bool;
+    };
+
+
+    // geolocation is often considered a trivial feature detect...
+    // Turns out, it's quite tricky to get right:
+    //
+    // Using !!navigator.geolocation does two things we don't want. It:
+    //   1. Leaks memory in IE9: github.com/Modernizr/Modernizr/issues/513
+    //   2. Disables page caching in WebKit: webk.it/43956
+    //
+    // Meanwhile, in Firefox < 8, an about:config setting could expose
+    // a false positive that would throw an exception: bugzil.la/688158
+
+    tests['geolocation'] = function() {
+        return 'geolocation' in navigator;
+    };
+
+
+    tests['postmessage'] = function() {
+      return !!window.postMessage;
+    };
+
+
+    // Chrome incognito mode used to throw an exception when using openDatabase
+    // It doesn't anymore.
+    tests['websqldatabase'] = function() {
+      return !!window.openDatabase;
+    };
+
+    // Vendors had inconsistent prefixing with the experimental Indexed DB:
+    // - Webkit's implementation is accessible through webkitIndexedDB
+    // - Firefox shipped moz_indexedDB before FF4b9, but since then has been mozIndexedDB
+    // For speed, we don't test the legacy (and beta-only) indexedDB
+    tests['indexedDB'] = function() {
+      return !!testPropsAll("indexedDB", window);
+    };
+
+    // documentMode logic from YUI to filter out IE8 Compat Mode
+    //   which false positives.
+    tests['hashchange'] = function() {
+      return isEventSupported('hashchange', window) && (document.documentMode === undefined || document.documentMode > 7);
+    };
+
+    // Per 1.6:
+    // This used to be Modernizr.historymanagement but the longer
+    // name has been deprecated in favor of a shorter and property-matching one.
+    // The old API is still available in 1.6, but as of 2.0 will throw a warning,
+    // and in the first release thereafter disappear entirely.
+    tests['history'] = function() {
+      return !!(window.history && history.pushState);
+    };
+
+    tests['draganddrop'] = function() {
+        var div = document.createElement('div');
+        return ('draggable' in div) || ('ondragstart' in div && 'ondrop' in div);
+    };
+
+    // FF3.6 was EOL'ed on 4/24/12, but the ESR version of FF10
+    // will be supported until FF19 (2/12/13), at which time, ESR becomes FF17.
+    // FF10 still uses prefixes, so check for it until then.
+    // for more ESR info, see: mozilla.org/en-US/firefox/organizations/faq/
+    tests['websockets'] = function() {
+        return 'WebSocket' in window || 'MozWebSocket' in window;
+    };
+
+
+    // css-tricks.com/rgba-browser-support/
+    tests['rgba'] = function() {
+        // Set an rgba() color and check the returned value
+
+        setCss('background-color:rgba(150,255,150,.5)');
+
+        return contains(mStyle.backgroundColor, 'rgba');
+    };
+
+    tests['hsla'] = function() {
+        // Same as rgba(), in fact, browsers re-map hsla() to rgba() internally,
+        //   except IE9 who retains it as hsla
+
+        setCss('background-color:hsla(120,40%,100%,.5)');
+
+        return contains(mStyle.backgroundColor, 'rgba') || contains(mStyle.backgroundColor, 'hsla');
+    };
+
+    tests['multiplebgs'] = function() {
+        // Setting multiple images AND a color on the background shorthand property
+        //  and then querying the style.background property value for the number of
+        //  occurrences of "url(" is a reliable method for detecting ACTUAL support for this!
+
+        setCss('background:url(https://),url(https://),red url(https://)');
+
+        // If the UA supports multiple backgrounds, there should be three occurrences
+        //   of the string "url(" in the return value for elemStyle.background
+
+        return (/(url\s*\(.*?){3}/).test(mStyle.background);
+    };
+
+
+
+    // this will false positive in Opera Mini
+    //   github.com/Modernizr/Modernizr/issues/396
+
+    tests['backgroundsize'] = function() {
+        return testPropsAll('backgroundSize');
+    };
+
+    tests['borderimage'] = function() {
+        return testPropsAll('borderImage');
+    };
+
+
+    // Super comprehensive table about all the unique implementations of
+    // border-radius: muddledramblings.com/table-of-css3-border-radius-compliance
+
+    tests['borderradius'] = function() {
+        return testPropsAll('borderRadius');
+    };
+
+    // WebOS unfortunately false positives on this test.
+    tests['boxshadow'] = function() {
+        return testPropsAll('boxShadow');
+    };
+
+    // FF3.0 will false positive on this test
+    tests['textshadow'] = function() {
+        return document.createElement('div').style.textShadow === '';
+    };
+
+
+    tests['opacity'] = function() {
+        // Browsers that actually have CSS Opacity implemented have done so
+        //  according to spec, which means their return values are within the
+        //  range of [0.0,1.0] - including the leading zero.
+
+        setCssAll('opacity:.55');
+
+        // The non-literal . in this regex is intentional:
+        //   German Chrome returns this value as 0,55
+        // github.com/Modernizr/Modernizr/issues/#issue/59/comment/516632
+        return (/^0.55$/).test(mStyle.opacity);
+    };
+
+
+    // Note, Android < 4 will pass this test, but can only animate
+    //   a single property at a time
+    //   goo.gl/v3V4Gp
+    tests['cssanimations'] = function() {
+        return testPropsAll('animationName');
+    };
+
+
+    tests['csscolumns'] = function() {
+        return testPropsAll('columnCount');
+    };
+
+
+    tests['cssgradients'] = function() {
+        /**
+         * For CSS Gradients syntax, please see:
+         * webkit.org/blog/175/introducing-css-gradients/
+         * developer.mozilla.org/en/CSS/-moz-linear-gradient
+         * developer.mozilla.org/en/CSS/-moz-radial-gradient
+         * dev.w3.org/csswg/css3-images/#gradients-
+         */
+
+        var str1 = 'background-image:',
+            str2 = 'gradient(linear,left top,right bottom,from(#9f9),to(white));',
+            str3 = 'linear-gradient(left top,#9f9, white);';
+
+        setCss(
+             // legacy webkit syntax (FIXME: remove when syntax not in use anymore)
+              (str1 + '-webkit- '.split(' ').join(str2 + str1) +
+             // standard syntax             // trailing 'background-image:'
+              prefixes.join(str3 + str1)).slice(0, -str1.length)
+        );
+
+        return contains(mStyle.backgroundImage, 'gradient');
+    };
+
+
+    tests['cssreflections'] = function() {
+        return testPropsAll('boxReflect');
+    };
+
+
+    tests['csstransforms'] = function() {
+        return !!testPropsAll('transform');
+    };
+
+
+    tests['csstransforms3d'] = function() {
+
+        var ret = !!testPropsAll('perspective');
+
+        // Webkit's 3D transforms are passed off to the browser's own graphics renderer.
+        //   It works fine in Safari on Leopard and Snow Leopard, but not in Chrome in
+        //   some conditions. As a result, Webkit typically recognizes the syntax but
+        //   will sometimes throw a false positive, thus we must do a more thorough check:
+        if ( ret && 'webkitPerspective' in docElement.style ) {
+
+          // Webkit allows this media query to succeed only if the feature is enabled.
+          // `@media (transform-3d),(-webkit-transform-3d){ ... }`
+          injectElementWithStyles('@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}', function( node, rule ) {
+            ret = node.offsetLeft === 9 && node.offsetHeight === 3;
+          });
+        }
+        return ret;
+    };
+
+
+    tests['csstransitions'] = function() {
+        return testPropsAll('transition');
+    };
+
+
+    /*>>fontface*/
+    // @font-face detection routine by Diego Perini
+    // javascript.nwbox.com/CSSSupport/
+
+    // false positives:
+    //   WebOS github.com/Modernizr/Modernizr/issues/342
+    //   WP7   github.com/Modernizr/Modernizr/issues/538
+    tests['fontface'] = function() {
+        var bool;
+
+        injectElementWithStyles('@font-face {font-family:"font";src:url("https://")}', function( node, rule ) {
+          var style = document.getElementById('smodernizr'),
+              sheet = style.sheet || style.styleSheet,
+              cssText = sheet ? (sheet.cssRules && sheet.cssRules[0] ? sheet.cssRules[0].cssText : sheet.cssText || '') : '';
+
+          bool = /src/i.test(cssText) && cssText.indexOf(rule.split(' ')[0]) === 0;
+        });
+
+        return bool;
+    };
+    /*>>fontface*/
+
+    // CSS generated content detection
+    tests['generatedcontent'] = function() {
+        var bool;
+
+        injectElementWithStyles(['#',mod,'{font:0/0 a}#',mod,':after{content:"',smile,'";visibility:hidden;font:3px/1 a}'].join(''), function( node ) {
+          bool = node.offsetHeight >= 3;
+        });
+
+        return bool;
+    };
+
+
+
+    // These tests evaluate support of the video/audio elements, as well as
+    // testing what types of content they support.
+    //
+    // We're using the Boolean constructor here, so that we can extend the value
+    // e.g.  Modernizr.video     // true
+    //       Modernizr.video.ogg // 'probably'
+    //
+    // Codec values from : github.com/NielsLeenheer/html5test/blob/9106a8/index.html#L845
+    //                     thx to NielsLeenheer and zcorpan
+
+    // Note: in some older browsers, "no" was a return value instead of empty string.
+    //   It was live in FF3.5.0 and 3.5.1, but fixed in 3.5.2
+    //   It was also live in Safari 4.0.0 - 4.0.4, but fixed in 4.0.5
+
+    tests['video'] = function() {
+        var elem = document.createElement('video'),
+            bool = false;
+
+        // IE9 Running on Windows Server SKU can cause an exception to be thrown, bug #224
+        try {
+            if ( bool = !!elem.canPlayType ) {
+                bool      = new Boolean(bool);
+                bool.ogg  = elem.canPlayType('video/ogg; codecs="theora"')      .replace(/^no$/,'');
+
+                // Without QuickTime, this value will be `undefined`. github.com/Modernizr/Modernizr/issues/546
+                bool.h264 = elem.canPlayType('video/mp4; codecs="avc1.42E01E"') .replace(/^no$/,'');
+
+                bool.webm = elem.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,'');
+            }
+
+        } catch(e) { }
+
+        return bool;
+    };
+
+    tests['audio'] = function() {
+        var elem = document.createElement('audio'),
+            bool = false;
+
+        try {
+            if ( bool = !!elem.canPlayType ) {
+                bool      = new Boolean(bool);
+                bool.ogg  = elem.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,'');
+                bool.mp3  = elem.canPlayType('audio/mpeg;')               .replace(/^no$/,'');
+
+                // Mimetypes accepted:
+                //   developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements
+                //   bit.ly/iphoneoscodecs
+                bool.wav  = elem.canPlayType('audio/wav; codecs="1"')     .replace(/^no$/,'');
+                bool.m4a  = ( elem.canPlayType('audio/x-m4a;')            ||
+                              elem.canPlayType('audio/aac;'))             .replace(/^no$/,'');
+            }
+        } catch(e) { }
+
+        return bool;
+    };
+
+
+    // In FF4, if disabled, window.localStorage should === null.
+
+    // Normally, we could not test that directly and need to do a
+    //   `('localStorage' in window) && ` test first because otherwise Firefox will
+    //   throw bugzil.la/365772 if cookies are disabled
+
+    // Also in iOS5 Private Browsing mode, attempting to use localStorage.setItem
+    // will throw the exception:
+    //   QUOTA_EXCEEDED_ERRROR DOM Exception 22.
+    // Peculiarly, getItem and removeItem calls do not throw.
+
+    // Because we are forced to try/catch this, we'll go aggressive.
+
+    // Just FWIW: IE8 Compat mode supports these features completely:
+    //   www.quirksmode.org/dom/html5.html
+    // But IE8 doesn't support either with local files
+
+    tests['localstorage'] = function() {
+        try {
+            localStorage.setItem(mod, mod);
+            localStorage.removeItem(mod);
+            return true;
+        } catch(e) {
+            return false;
+        }
+    };
+
+    tests['sessionstorage'] = function() {
+        try {
+            sessionStorage.setItem(mod, mod);
+            sessionStorage.removeItem(mod);
+            return true;
+        } catch(e) {
+            return false;
+        }
+    };
+
+
+    tests['webworkers'] = function() {
+        return !!window.Worker;
+    };
+
+
+    tests['applicationcache'] = function() {
+        return !!window.applicationCache;
+    };
+
+
+    // Thanks to Erik Dahlstrom
+    tests['svg'] = function() {
+        return !!document.createElementNS && !!document.createElementNS(ns.svg, 'svg').createSVGRect;
+    };
+
+    // specifically for SVG inline in HTML, not within XHTML
+    // test page: paulirish.com/demo/inline-svg
+    tests['inlinesvg'] = function() {
+      var div = document.createElement('div');
+      div.innerHTML = '<svg/>';
+      return (div.firstChild && div.firstChild.namespaceURI) == ns.svg;
+    };
+
+    // SVG SMIL animation
+    tests['smil'] = function() {
+        return !!document.createElementNS && /SVGAnimate/.test(toString.call(document.createElementNS(ns.svg, 'animate')));
+    };
+
+    // This test is only for clip paths in SVG proper, not clip paths on HTML content
+    // demo: srufaculty.sru.edu/david.dailey/svg/newstuff/clipPath4.svg
+
+    // However read the comments to dig into applying SVG clippaths to HTML content here:
+    //   github.com/Modernizr/Modernizr/issues/213#issuecomment-1149491
+    tests['svgclippaths'] = function() {
+        return !!document.createElementNS && /SVGClipPath/.test(toString.call(document.createElementNS(ns.svg, 'clipPath')));
+    };
+
+    /*>>webforms*/
+    // input features and input types go directly onto the ret object, bypassing the tests loop.
+    // Hold this guy to execute in a moment.
+    function webforms() {
+        /*>>input*/
+        // Run through HTML5's new input attributes to see if the UA understands any.
+        // We're using f which is the <input> element created early on
+        // Mike Taylr has created a comprehensive resource for testing these attributes
+        //   when applied to all input types:
+        //   miketaylr.com/code/input-type-attr.html
+        // spec: www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary
+
+        // Only input placeholder is tested while textarea's placeholder is not.
+        // Currently Safari 4 and Opera 11 have support only for the input placeholder
+        // Both tests are available in feature-detects/forms-placeholder.js
+        Modernizr['input'] = (function( props ) {
+            for ( var i = 0, len = props.length; i < len; i++ ) {
+                attrs[ props[i] ] = !!(props[i] in inputElem);
+            }
+            if (attrs.list){
+              // safari false positive's on datalist: webk.it/74252
+              // see also github.com/Modernizr/Modernizr/issues/146
+              attrs.list = !!(document.createElement('datalist') && window.HTMLDataListElement);
+            }
+            return attrs;
+        })('autocomplete autofocus list placeholder max min multiple pattern required step'.split(' '));
+        /*>>input*/
+
+        /*>>inputtypes*/
+        // Run through HTML5's new input types to see if the UA understands any.
+        //   This is put behind the tests runloop because it doesn't return a
+        //   true/false like all the other tests; instead, it returns an object
+        //   containing each input type with its corresponding true/false value
+
+        // Big thanks to @miketaylr for the html5 forms expertise. miketaylr.com/
+        Modernizr['inputtypes'] = (function(props) {
+
+            for ( var i = 0, bool, inputElemType, defaultView, len = props.length; i < len; i++ ) {
+
+                inputElem.setAttribute('type', inputElemType = props[i]);
+                bool = inputElem.type !== 'text';
+
+                // We first check to see if the type we give it sticks..
+                // If the type does, we feed it a textual value, which shouldn't be valid.
+                // If the value doesn't stick, we know there's input sanitization which infers a custom UI
+                if ( bool ) {
+
+                    inputElem.value         = smile;
+                    inputElem.style.cssText = 'position:absolute;visibility:hidden;';
+
+                    if ( /^range$/.test(inputElemType) && inputElem.style.WebkitAppearance !== undefined ) {
+
+                      docElement.appendChild(inputElem);
+                      defaultView = document.defaultView;
+
+                      // Safari 2-4 allows the smiley as a value, despite making a slider
+                      bool =  defaultView.getComputedStyle &&
+                              defaultView.getComputedStyle(inputElem, null).WebkitAppearance !== 'textfield' &&
+                              // Mobile android web browser has false positive, so must
+                              // check the height to see if the widget is actually there.
+                              (inputElem.offsetHeight !== 0);
+
+                      docElement.removeChild(inputElem);
+
+                    } else if ( /^(search|tel)$/.test(inputElemType) ){
+                      // Spec doesn't define any special parsing or detectable UI
+                      //   behaviors so we pass these through as true
+
+                      // Interestingly, opera fails the earlier test, so it doesn't
+                      //  even make it here.
+
+                    } else if ( /^(url|email)$/.test(inputElemType) ) {
+                      // Real url and email support comes with prebaked validation.
+                      bool = inputElem.checkValidity && inputElem.checkValidity() === false;
+
+                    } else {
+                      // If the upgraded input compontent rejects the :) text, we got a winner
+                      bool = inputElem.value != smile;
+                    }
+                }
+
+                inputs[ props[i] ] = !!bool;
+            }
+            return inputs;
+        })('search tel url email datetime date month week time datetime-local number range color'.split(' '));
+        /*>>inputtypes*/
+    }
+    /*>>webforms*/
+
+
+    // End of test definitions
+    // -----------------------
+
+
+
+    // Run through all tests and detect their support in the current UA.
+    // todo: hypothetically we could be doing an array of tests and use a basic loop here.
+    for ( var feature in tests ) {
+        if ( hasOwnProp(tests, feature) ) {
+            // run the test, throw the return value into the Modernizr,
+            //   then based on that boolean, define an appropriate className
+            //   and push it into an array of classes we'll join later.
+            featureName  = feature.toLowerCase();
+            Modernizr[featureName] = tests[feature]();
+
+            classes.push((Modernizr[featureName] ? '' : 'no-') + featureName);
+        }
+    }
+
+    /*>>webforms*/
+    // input tests need to run.
+    Modernizr.input || webforms();
+    /*>>webforms*/
+
+
+    /**
+     * addTest allows the user to define their own feature tests
+     * the result will be added onto the Modernizr object,
+     * as well as an appropriate className set on the html element
+     *
+     * @param feature - String naming the feature
+     * @param test - Function returning true if feature is supported, false if not
+     */
+     Modernizr.addTest = function ( feature, test ) {
+       if ( typeof feature == 'object' ) {
+         for ( var key in feature ) {
+           if ( hasOwnProp( feature, key ) ) {
+             Modernizr.addTest( key, feature[ key ] );
+           }
+         }
+       } else {
+
+         feature = feature.toLowerCase();
+
+         if ( Modernizr[feature] !== undefined ) {
+           // we're going to quit if you're trying to overwrite an existing test
+           // if we were to allow it, we'd do this:
+           //   var re = new RegExp("\\b(no-)?" + feature + "\\b");
+           //   docElement.className = docElement.className.replace( re, '' );
+           // but, no rly, stuff 'em.
+           return Modernizr;
+         }
+
+         test = typeof test == 'function' ? test() : test;
+
+         if (typeof enableClasses !== "undefined" && enableClasses) {
+           docElement.className += ' ' + (test ? '' : 'no-') + feature;
+         }
+         Modernizr[feature] = test;
+
+       }
+
+       return Modernizr; // allow chaining.
+     };
+
+
+    // Reset modElem.cssText to nothing to reduce memory footprint.
+    setCss('');
+    modElem = inputElem = null;
+
+    /*>>shiv*/
+    /**
+     * @preserve HTML5 Shiv prev3.7.1 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
+     */
+    ;(function(window, document) {
+        /*jshint evil:true */
+        /** version */
+        var version = '3.7.0';
+
+        /** Preset options */
+        var options = window.html5 || {};
+
+        /** Used to skip problem elements */
+        var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;
+
+        /** Not all elements can be cloned in IE **/
+        var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;
+
+        /** Detect whether the browser supports default html5 styles */
+        var supportsHtml5Styles;
+
+        /** Name of the expando, to work with multiple documents or to re-shiv one document */
+        var expando = '_html5shiv';
+
+        /** The id for the the documents expando */
+        var expanID = 0;
+
+        /** Cached data for each document */
+        var expandoData = {};
+
+        /** Detect whether the browser supports unknown elements */
+        var supportsUnknownElements;
+
+        (function() {
+          try {
+            var a = document.createElement('a');
+            a.innerHTML = '<xyz></xyz>';
+            //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles
+            supportsHtml5Styles = ('hidden' in a);
+
+            supportsUnknownElements = a.childNodes.length == 1 || (function() {
+              // assign a false positive if unable to shiv
+              (document.createElement)('a');
+              var frag = document.createDocumentFragment();
+              return (
+                typeof frag.cloneNode == 'undefined' ||
+                typeof frag.createDocumentFragment == 'undefined' ||
+                typeof frag.createElement == 'undefined'
+              );
+            }());
+          } catch(e) {
+            // assign a false positive if detection fails => unable to shiv
+            supportsHtml5Styles = true;
+            supportsUnknownElements = true;
+          }
+
+        }());
+
+        /*--------------------------------------------------------------------------*/
+
+        /**
+         * Creates a style sheet with the given CSS text and adds it to the document.
+         * @private
+         * @param {Document} ownerDocument The document.
+         * @param {String} cssText The CSS text.
+         * @returns {StyleSheet} The style element.
+         */
+        function addStyleSheet(ownerDocument, cssText) {
+          var p = ownerDocument.createElement('p'),
+          parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;
+
+          p.innerHTML = 'x<style>' + cssText + '</style>';
+          return parent.insertBefore(p.lastChild, parent.firstChild);
+        }
+
+        /**
+         * Returns the value of `html5.elements` as an array.
+         * @private
+         * @returns {Array} An array of shived element node names.
+         */
+        function getElements() {
+          var elements = html5.elements;
+          return typeof elements == 'string' ? elements.split(' ') : elements;
+        }
+
+        /**
+         * Returns the data associated to the given document
+         * @private
+         * @param {Document} ownerDocument The document.
+         * @returns {Object} An object of data.
+         */
+        function getExpandoData(ownerDocument) {
+          var data = expandoData[ownerDocument[expando]];
+          if (!data) {
+            data = {};
+            expanID++;
+            ownerDocument[expando] = expanID;
+            expandoData[expanID] = data;
+          }
+          return data;
+        }
+
+        /**
+         * returns a shived element for the given nodeName and document
+         * @memberOf html5
+         * @param {String} nodeName name of the element
+         * @param {Document} ownerDocument The context document.
+         * @returns {Object} The shived element.
+         */
+        function createElement(nodeName, ownerDocument, data){
+          if (!ownerDocument) {
+            ownerDocument = document;
+          }
+          if(supportsUnknownElements){
+            return ownerDocument.createElement(nodeName);
+          }
+          if (!data) {
+            data = getExpandoData(ownerDocument);
+          }
+          var node;
+
+          if (data.cache[nodeName]) {
+            node = data.cache[nodeName].cloneNode();
+          } else if (saveClones.test(nodeName)) {
+            node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();
+          } else {
+            node = data.createElem(nodeName);
+          }
+
+          // Avoid adding some elements to fragments in IE < 9 because
+          // * Attributes like `name` or `type` cannot be set/changed once an element
+          //   is inserted into a document/fragment
+          // * Link elements with `src` attributes that are inaccessible, as with
+          //   a 403 response, will cause the tab/window to crash
+          // * Script elements appended to fragments will execute when their `src`
+          //   or `text` property is set
+          return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node;
+        }
+
+        /**
+         * returns a shived DocumentFragment for the given document
+         * @memberOf html5
+         * @param {Document} ownerDocument The context document.
+         * @returns {Object} The shived DocumentFragment.
+         */
+        function createDocumentFragment(ownerDocument, data){
+          if (!ownerDocument) {
+            ownerDocument = document;
+          }
+          if(supportsUnknownElements){
+            return ownerDocument.createDocumentFragment();
+          }
+          data = data || getExpandoData(ownerDocument);
+          var clone = data.frag.cloneNode(),
+          i = 0,
+          elems = getElements(),
+          l = elems.length;
+          for(;i<l;i++){
+            clone.createElement(elems[i]);
+          }
+          return clone;
+        }
+
+        /**
+         * Shivs the `createElement` and `createDocumentFragment` methods of the document.
+         * @private
+         * @param {Document|DocumentFragment} ownerDocument The document.
+         * @param {Object} data of the document.
+         */
+        function shivMethods(ownerDocument, data) {
+          if (!data.cache) {
+            data.cache = {};
+            data.createElem = ownerDocument.createElement;
+            data.createFrag = ownerDocument.createDocumentFragment;
+            data.frag = data.createFrag();
+          }
+
+
+          ownerDocument.createElement = function(nodeName) {
+            //abort shiv
+            if (!html5.shivMethods) {
+              return data.createElem(nodeName);
+            }
+            return createElement(nodeName, ownerDocument, data);
+          };
+
+          ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' +
+                                                          'var n=f.cloneNode(),c=n.createElement;' +
+                                                          'h.shivMethods&&(' +
+                                                          // unroll the `createElement` calls
+                                                          getElements().join().replace(/[\w\-]+/g, function(nodeName) {
+            data.createElem(nodeName);
+            data.frag.createElement(nodeName);
+            return 'c("' + nodeName + '")';
+          }) +
+            ');return n}'
+                                                         )(html5, data.frag);
+        }
+
+        /*--------------------------------------------------------------------------*/
+
+        /**
+         * Shivs the given document.
+         * @memberOf html5
+         * @param {Document} ownerDocument The document to shiv.
+         * @returns {Document} The shived document.
+         */
+        function shivDocument(ownerDocument) {
+          if (!ownerDocument) {
+            ownerDocument = document;
+          }
+          var data = getExpandoData(ownerDocument);
+
+          if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) {
+            data.hasCSS = !!addStyleSheet(ownerDocument,
+                                          // corrects block display not defined in IE6/7/8/9
+                                          'article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}' +
+                                            // adds styling not present in IE6/7/8/9
+                                            'mark{background:#FF0;color:#000}' +
+                                            // hides non-rendered elements
+                                            'template{display:none}'
+                                         );
+          }
+          if (!supportsUnknownElements) {
+            shivMethods(ownerDocument, data);
+          }
+          return ownerDocument;
+        }
+
+        /*--------------------------------------------------------------------------*/
+
+        /**
+         * The `html5` object is exposed so that more elements can be shived and
+         * existing shiving can be detected on iframes.
+         * @type Object
+         * @example
+         *
+         * // options can be changed before the script is included
+         * html5 = { 'elements': 'mark section', 'shivCSS': false, 'shivMethods': false };
+         */
+        var html5 = {
+
+          /**
+           * An array or space separated string of node names of the elements to shiv.
+           * @memberOf html5
+           * @type Array|String
+           */
+          'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video',
+
+          /**
+           * current version of html5shiv
+           */
+          'version': version,
+
+          /**
+           * A flag to indicate that the HTML5 style sheet should be inserted.
+           * @memberOf html5
+           * @type Boolean
+           */
+          'shivCSS': (options.shivCSS !== false),
+
+          /**
+           * Is equal to true if a browser supports creating unknown/HTML5 elements
+           * @memberOf html5
+           * @type boolean
+           */
+          'supportsUnknownElements': supportsUnknownElements,
+
+          /**
+           * A flag to indicate that the document's `createElement` and `createDocumentFragment`
+           * methods should be overwritten.
+           * @memberOf html5
+           * @type Boolean
+           */
+          'shivMethods': (options.shivMethods !== false),
+
+          /**
+           * A string to describe the type of `html5` object ("default" or "default print").
+           * @memberOf html5
+           * @type String
+           */
+          'type': 'default',
+
+          // shivs the document according to the specified `html5` object options
+          'shivDocument': shivDocument,
+
+          //creates a shived element
+          createElement: createElement,
+
+          //creates a shived documentFragment
+          createDocumentFragment: createDocumentFragment
+        };
+
+        /*--------------------------------------------------------------------------*/
+
+        // expose html5
+        window.html5 = html5;
+
+        // shiv the document
+        shivDocument(document);
+
+    }(this, document));
+    /*>>shiv*/
+
+    // Assign private properties to the return object with prefix
+    Modernizr._version      = version;
+
+    // expose these for the plugin API. Look in the source for how to join() them against your input
+    /*>>prefixes*/
+    Modernizr._prefixes     = prefixes;
+    /*>>prefixes*/
+    /*>>domprefixes*/
+    Modernizr._domPrefixes  = domPrefixes;
+    Modernizr._cssomPrefixes  = cssomPrefixes;
+    /*>>domprefixes*/
+
+    /*>>mq*/
+    // Modernizr.mq tests a given media query, live against the current state of the window
+    // A few important notes:
+    //   * If a browser does not support media queries at all (eg. oldIE) the mq() will always return false
+    //   * A max-width or orientation query will be evaluated against the current state, which may change later.
+    //   * You must specify values. Eg. If you are testing support for the min-width media query use:
+    //       Modernizr.mq('(min-width:0)')
+    // usage:
+    // Modernizr.mq('only screen and (max-width:768)')
+    Modernizr.mq            = testMediaQuery;
+    /*>>mq*/
+
+    /*>>hasevent*/
+    // Modernizr.hasEvent() detects support for a given event, with an optional element to test on
+    // Modernizr.hasEvent('gesturestart', elem)
+    Modernizr.hasEvent      = isEventSupported;
+    /*>>hasevent*/
+
+    /*>>testprop*/
+    // Modernizr.testProp() investigates whether a given style property is recognized
+    // Note that the property names must be provided in the camelCase variant.
+    // Modernizr.testProp('pointerEvents')
+    Modernizr.testProp      = function(prop){
+        return testProps([prop]);
+    };
+    /*>>testprop*/
+
+    /*>>testallprops*/
+    // Modernizr.testAllProps() investigates whether a given style property,
+    //   or any of its vendor-prefixed variants, is recognized
+    // Note that the property names must be provided in the camelCase variant.
+    // Modernizr.testAllProps('boxSizing')
+    Modernizr.testAllProps  = testPropsAll;
+    /*>>testallprops*/
+
+
+    /*>>teststyles*/
+    // Modernizr.testStyles() allows you to add custom styles to the document and test an element afterwards
+    // Modernizr.testStyles('#modernizr { position:absolute }', function(elem, rule){ ... })
+    Modernizr.testStyles    = injectElementWithStyles;
+    /*>>teststyles*/
+
+
+    /*>>prefixed*/
+    // Modernizr.prefixed() returns the prefixed or nonprefixed property name variant of your input
+    // Modernizr.prefixed('boxSizing') // 'MozBoxSizing'
+
+    // Properties must be passed as dom-style camelcase, rather than `box-sizing` hypentated style.
+    // Return values will also be the camelCase variant, if you need to translate that to hypenated style use:
+    //
+    //     str.replace(/([A-Z])/g, function(str,m1){ return '-' + m1.toLowerCase(); }).replace(/^ms-/,'-ms-');
+
+    // If you're trying to ascertain which transition end event to bind to, you might do something like...
+    //
+    //     var transEndEventNames = {
+    //       'WebkitTransition' : 'webkitTransitionEnd',
+    //       'MozTransition'    : 'transitionend',
+    //       'OTransition'      : 'oTransitionEnd',
+    //       'msTransition'     : 'MSTransitionEnd',
+    //       'transition'       : 'transitionend'
+    //     },
+    //     transEndEventName = transEndEventNames[ Modernizr.prefixed('transition') ];
+
+    Modernizr.prefixed      = function(prop, obj, elem){
+      if(!obj) {
+        return testPropsAll(prop, 'pfx');
+      } else {
+        // Testing DOM property e.g. Modernizr.prefixed('requestAnimationFrame', window) // 'mozRequestAnimationFrame'
+        return testPropsAll(prop, obj, elem);
+      }
+    };
+    /*>>prefixed*/
+
+
+    /*>>cssclasses*/
+    // Remove "no-js" class from <html> element, if it exists:
+    docElement.className = docElement.className.replace(/(^|\s)no-js(\s|$)/, '$1$2') +
+
+                            // Add the new classes to the <html> element.
+                            (enableClasses ? ' js ' + classes.join(' ') : '');
+    /*>>cssclasses*/
+
+    return Modernizr;
+
+})(this, this.document);
diff --git a/ui/new-ui-samples/manifest.json b/ui/new-ui-samples/manifest.json
new file mode 100644
index 0000000..bbcc45e
--- /dev/null
+++ b/ui/new-ui-samples/manifest.json
@@ -0,0 +1,41 @@
+{
+	"name": "Kimchi",
+	"icons": [
+		{
+			"src": "\/android-chrome-36x36.png",
+			"sizes": "36x36",
+			"type": "image\/png",
+			"density": "0.75"
+		},
+		{
+			"src": "\/android-chrome-48x48.png",
+			"sizes": "48x48",
+			"type": "image\/png",
+			"density": "1.0"
+		},
+		{
+			"src": "\/android-chrome-72x72.png",
+			"sizes": "72x72",
+			"type": "image\/png",
+			"density": "1.5"
+		},
+		{
+			"src": "\/android-chrome-96x96.png",
+			"sizes": "96x96",
+			"type": "image\/png",
+			"density": "2.0"
+		},
+		{
+			"src": "\/android-chrome-144x144.png",
+			"sizes": "144x144",
+			"type": "image\/png",
+			"density": "3.0"
+		},
+		{
+			"src": "\/android-chrome-192x192.png",
+			"sizes": "192x192",
+			"type": "image\/png",
+			"density": "4.0"
+		}
+	]
+}
diff --git a/ui/new-ui-samples/mstile-144x144.png b/ui/new-ui-samples/mstile-144x144.png
new file mode 100644
index 0000000000000000000000000000000000000000..8a8f5ee642cae8225316dfd52f44b3743b6e76ed
GIT binary patch
literal 4103
zcmV+i5cuzjP)<h;3K|Lk000e1NJLTq0058x0058(1ONa4O;0K_00004XF*Lt006O%
z3;baP0000WV at Og>004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00002
zVoOIv0RM-N%)bBt00(qQO+^Ra2MQB0HGHq;mH+?`4 at pEpRCwC$oqKpy<(0;N`<#=I
zgoH%y*Mz$f5UfQs+9_43U_otl#400wI;gewvD1rUtF>PGI5YNXeeAT4b*!RQXX-e$
zR!fWA<l==wL8M?%?hq~^5D2*^=j6Qe2LVrVF8kYipJWFn?>}(%`S#jtz4^{}S>IY~
zLpQq7jc#<K8{OzeH at cAkR>z8$MIR<Gl6;~ZVFw>sb$*-NWuSlt>zi7ty=s&s)o7dE
z&>Z#kTeB_!oujX6rRvodQPt{ol_=!5e*TgZ)ObCmBT9x1x>gx}Yv~_7Jv37*)uL3`
zs4M)|(+p`Jq?OAY?qQUz<VD<N?Q!*l0NLb`Ll#+Nkwb_EYG|O2YHF;OE=`c~n8!T~
zF=$%P4|v)NJCJSBld+6sC_@>-0P at KpgAf)iG*L$dd)diuO4(&KbxDGh&7IuG0K?`h
zm}~7fk{hHq#Y|%o!x=(PLWB}(-a?pa_E5?SR#Bcln$km0hUTeU=Gdzl22w+spu4q9
z<*kba6SU}rHt1nZR={soJ~hPBbbaE09;se;+sZ7`{o0 at gM{-XgqEh`xL;YsvlriJA
z%CQNLD8)})`I at V>YH~%+DKu%BF7ulkK)tlUh5A29Mvwv;r~g#7Cvr|<i!S$@AM{n7
zaIAP(_a-JtL0zR~3a5o0Nm{M*{H15O-f^LJxo%7-ElYE>P0_T`BSrLcW&1}@K=(SB
zVLrur6(^9Et=qLPjpUrfc3t4kx^zr~W4M_fj_(Syn7wiIWH6f_F)R&QwZ#y=C|7Gf
z&jcyRY$mw4aRa}z8rsPUFr5b|OglZ0%|u*nkG=Px;aun9(Fgb?rEym$FrP6UKo3A)
z&T(^_cY<b8?D(Fe{ER<Z(Y6=WpYKxAG3)?Y<hZ%bqvJ}0xtyL3Z#vB5JZsgrla#@Y
zT<cYz6o}wpW1KdE7|(@{+PAQoCwMi%HgW><=pFM}glVFlLmZ}xIxIru(~lt((1T3J
z+w3Zibvi-nK?(iLnj-4i%MzaB6Dtz;bw0PA9_mF6d)dKy*0YZ~8VS<^SY*(H9EMWD
zWt`7o2iiy2Lu02CL;)q(FTkqV%~tlYn>Cas at c>=QSI7Xu9N>Lc@;*ChZa+%3Vux0d
zLkY9EmLkJZw36jXq;(`TMO$qaXw_P*Z|VZ|PvwJFZ!M4%)jmC~E7Z?y#iCrz&?3Vn
z>YrrR)6+_irGHjc3Z<gjrthgpL0d^zsX~qVi)Ja`p$6yb1%v(meqGz?^nil;Neb6|
zi&krf$=QW+^t`I|Yq?qhX_Q{E=|y$AUruM*v=Ef1XOnIzqgra}&(mevsb6ZKYdyy5
zDODz=r%I2izz2FjL-nVmYQ3Y0#&Yh^%Np!SlLFnWB{~xK=W5b>n(IsN0nk{jPD0Pe
zPENg4tkLc^k})zY4b)fkxE5=NY86qF_GzK+(OCNtFf}|Vrt^6r;WDw3dw4m1t<&*P
zh<@}Ymk?3vILs06Q at fXSP%z=$ExgJf{h$Y|2!}Y7UYTAtt5Fi2Vs7R+tEv-O>0o#v
zsELNSYqk82&3+q|PIw`xo~pQOAMmEt?6*<rgcpLUsX%S6H1KD3`fXBr;f0`D4z?p`
z8;hNUBb*8FHc0QLCgyVs>-gAjgVGHT1X-e#!!Z|5u(XTCQ=|djeA2tv74zx9*)@Ni
zgg1v-6 at O)FtIJG$NQECJ$Rb1r1q`Au`Sc`{AQ2j=rIJIG(@4bqirN!FR-^vP(bi+W
zC|f!12SH5aHYSlvFLKCgjX8 at Fp^18GsA3yy^#S{+bhEzq>a_omwXFm-aKMsBX)d53
zLkO~uVf3dDnK57Gwf=i4w@|}cmg`-%TD6_6;5S->RLV@^#X3xj9F5X6J)||NP3nSa
z(kA^(CCcht)rRT)Ru at Od9r~H-(nIHIzBZ~kDM?{%(Zd?siGl12=x#Mg+M>yR69k};
zF46NTedSGBuA4fsAE`*IC2iFuev at -rqk+0tWhp3%s!R`hKIc$R6=}RCYJx_pSIU;R
z>VyvXIR?dPl%-o#YU9dZpmW_npr2;zDXmkvj_I)et{3#R<nf})*UPHY*ZroYjZPt5
zXG2kw-Z1x^$BNF-m3l+R+li~uQq5G7Kq*buE<Mr7^MjooLEWIeDJhERO^tIZHdl9P
zR}z8ybeD3HDDy8`s!@KE(oU<8zM%>mihl3tJWg5qmJX#5ctCR#pLQu<Gu7X3O5(K2
z)4$q;p*QL`8e}f;>ZHBr6h7`6)48!l1NFL%MKyXj^(6GEu%UWO_IOcwM&h~%RHE%R
z7FFnWqXa+ARgD2b<(lQU(T)hp(0y^Kq3!XB!BMC3^t=H*lJvB1$GPq(8exz}vP{G6
z#1v|?Awk=G4()eJP(XLs{x%}|d7@=X?2MFclqm=>h_QYf?F3eorEIln6y!$!A^vip
z&HpnoLk8!04GQRF9ONzRyj8=vH9k-#mY^^v3?CO{Kw6R*It^A6e>3oRPUoWbmtxIq
zz$k+>?!GevyVz#irY|?O-%Q0CT4NyMBw8q^^J7N6p`0??HUU1z`Ry;AhE<&)dm=Hy
zl%_jBy~EL%Ad(;+g?ypyg|<JHQp0HU2nYPO*D-`iP(?OV+D1#ZC1{iFWO(XfXIlRO
z%W#gK#E96BZ3#NS2HVN-<ipOq(j-|F7`5xenAnKPHUwE=7IM@;NQkbIjc$&iZF@#i
z<S{Wey`ueey^%ErLV9rF8CL;lIHQf)WimPyLC1KlO-M^(WN?wY^fVulkD1R0hNK|K
zin5A#41^TNuQ|Io%zONR*c9dX6>%A_aKu)~V6N_3E_z!u8!v5p#ZEzS1X)p*vD8*r
zh^ugOWa1yH9PBic&0;5E9pX3auoZJIa|}JXT?1w8F>F~Co86jt)A=6H*e=X7xt=S$
z=2&zh_8D)ab`ldJlaL at Q%!|B)UA*B?zSUt_?yey#$pWOB)kYhsX4X+{@}NTfw at oEG
zsY$=;YGosptAA2a!f(cCg^@e?3#N}6qrcdSJFXx4SXU)6LC@*MMCo}7=?)#U{gXfL
z;808FYpE?ohjp7wUA3J<(M>v{2NNwq)K4$l{3;gNo^7-fIZjJ#DLSOvyV9CS#agR<
z`f{Qpauw^(iX^ckti>Ad{Bh&-rfn^#1Ny#l{U+wL#`*fKq$P=i5>%`Os)|eAjOv)%
zv|=<;&!z~CJc%kjp`xxa=_{n4N~+VNiH|qcM{~4LyH%&KA_}Wo+w^;VIdST*Sqgt2
z?&Nj~Q??HCHc#?yr-#|bYa8S~9wvhw+-WUO*uo;8&oF^LWY9nbo7h6VryyqK=mssb
zP2u0J$28IJI=>3)`>kj3FW4o7r?C*Ff;v|ZtJG#ZYSQ2Ih)UGgznM+J(>2v9bd6VO
zjz$e- at ma3tixj7Hxi+(h&1_&7wM5v(&dx0>q7V=9K&xf{!(EoEvN-M^-%}TBzLu%V
z<_FiH3hmZ1P3=_m0A=bIG4t!y-lREpoLY6P)dpT>6jLanhywD+A(J2$Ere;Lo*HT>
zV-tU8oADkxeaMZeX*8G_T4A}W9Mo#B`&$(xL;*t?L~nA*#3D>R)vZZL^|TQ6CB3DX
z=lL|KeLJ%((-Y(WAJFA(s_BO{$BVQxF9^W~3NXG+Ewm6<ds%p#bp(;imF=vWWO!tl
z5N97jqvFn6`r<U2J_ctQL9)1(_TlWkT$I8*jkAm(MlwBa5t~DiD_OwVN6?oNRx~Pb
zFYv4)NMra~!otlt?&q<yh#-ZS%cO)~1#umddlnJIH0CDRI>{*NDIq)uu_#C%#!*Nv
zQBF|CZjRFIeT$(i`m^8M51<izJ87xzW~1=C^b at 22g<Qi845v3)L}}m{NBDq+TF((L
zBq_j`n92{SH*8<PcS!zn2yfm(*GBZvOud~TU9Clx`h#Z4Lj;jNr?q;<bZAw99!l}r
ziim#f4?VZ&;}rg&J(};VGV5u{Ax+g9m20|T`+<5yM^k8WLbv)s&<vZLVyVhFlP^|o
zKh4u-Nw2DpLF-IS)(bXoaM`bmJD;9mS|ocM*JCoxAOcjNX?jUVBvt4Jo3=sq)x~;1
z8<QRcp2CN6Rqp>JTn*9+a3!BNXjs6vDc18Wr!n;~sQ`WWJkz;?;RJz|tVq#1hfBGH
zVlJe}AXah{onG;!mlhiIpHoBje!ZfbHChGnDOAc-Z;jA2{hL<m at ac2&!^y`V1vEtq
zv{%iBFSiMM8-d(S^CKMWj{^+hMy}x?8`-KdYN#UuWRgcdg^XbWgUD{9$t%hFk8=1&
zen7DUSMfpCcRoR59B%&t<S?4ifM}wQ2o{<2OmcYiA<rZ(R;g^h&iyzmt-Q)xUWq$`
z`Wck^PYjDJQb&Ru=Sl0Mg!F`%?U<f=R#+zSVoBj{FBa&qcSN`F5`ReY-NoGNkRJGm
z_q-|Oj-V5^@r&*tmh&H0!bpGh;k!7E-ih$G*K;{{1no4AId+D1JYprQ1$!M=IhJ>j
z*S(hBbw|*S_&0;40h at S~wTZt{UuNOFAjTrY{I?WvN6>K=x_gySQi#nw$daUqp2L~q
zSY{b-cpIR-*mIuN8ZQ-17L%(rEmf?JrrT~P;una&a<^Gd4?#iA)xk8;)2vrCDRuas
zW;=c<<T^R;b7`e0SKqU#?qq_fcIiI*!c4l}AwiY8&G(c)<!GL^IPUtfsL*e9iAflo
zrrH*`iA95+>=HGO6w*cdg?77m-Egz^>m^-hYKG3!CS%zVy{WEKd__GqMgOjMb;M|Y
z-J*JxX}KQLWlo%F%GR%q33 at l34zjdt85CdylevJ;Qb<0%$ZjV$LIbtbQo(jUqLfV>
zavHa&=`1kVXhhk-d~0PFBdFDcYz8oZ;f!Q31>}-NkOu0hrIHHD*iR+LsB-t#7G?7Y
z-?7QpkMbTrX0;FRqH|z~r3_^&SG_e at L)BM#%25x6yhq`yQ2(29w5!u=y0B|R`}+h<
z(0?U;*;<8us*!$c=r=)@3iXio#4RlvwMI90%xl)pxDKfve1 at ASVF>4tK@*ki<Skxf
zZ^w*0XB<HQ3NVCo89)|w9AK+uQg5Ui-RMR)y3vhpbfX*HNGJXe7SA3b&yzhd0000b
zbVXQnWMOn=I%9HWVRU5xGB7bUEigANF)&myIXW~sIyEyZFfuwYFnK?RqW}N^C3Hnt
zbYx+4WjbwdWNBu305UK!H7zhVEio`uF*!OkIXX2nD=;!TFfa&WKOX=9002ovPDHLk
FV1lW#!Yu#*

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/mstile-150x150.png b/ui/new-ui-samples/mstile-150x150.png
new file mode 100644
index 0000000000000000000000000000000000000000..22867370353f63645f87dc45304aeb8f0f66dfd3
GIT binary patch
literal 3891
zcmcgvX*3j$+ns*OQmB-*8CoQ=WNev<#MmYbV>gyCwz1O?N`(*&Q^qoOgJGC7AxoGj
zN(M1wDP#SWWsvMd;qU+P{qTNz&w1}T&$;K`d+s^UInSpj$pT>{a9rXz000nx8|zyF
z07nG>JG at 5^9abY)>5z_k>ze5T0M+;tf8CB9>hox0OEUl<N(KOU`~(2lJ+vNk0Dv%M
z0ARrt0Duw!0MX#QCZyJ3 at Q=HRkv`xc5#Q5#sCck&GXtJUp5tf0>JMnMnE-&`4Y<Cp
zbp(59{C>L4O!TK!Z>d>sF8=EmLXo;>c~X$d+-5DVB^7Mz+b!z8nMwo=jQbGTK?9RJ
zXyRVm^il?S*AbJ>uCYbaKSl_+Bo{@*pPzEp7t{3+OK>B)DNXK!jUPk23!{ncEq{Oo
zeRqPr`kEijjkk_uZAWkax$X6TKxQD41K7IhYeVasKP6yEa2e90pQ%es?Xr9v(=&}2
zt`T?~$c`u+g(R4AJ}byxlnJ at CJTPjhR0PF75aG|rV-T><$0d}?RIoUVUD-B}pOqC>
zSJvTQqc{1qK<V|M at lYkQ?y5~y41;1*#V)h0GZ-heu1;8-hCZgpp!TX>F*)B-7Q*CA
zip%t83 at Vw@W~`&2(p8D7_mxQU#Q-bnO;&SMTtl6c0MeTi<l^KRF<WFf*?&*{>T<#&
z7NMpSglP|>crDn2UWQcK#B*;{)+&Wj;L99g?PAfAI#O%vjQ%mv+DvKojs}-|x5UTz
zvEH1eKIjg%`bFms^iTXNuI`w=b+2L=--=&lXr}6uYpY_tN!`2OY-dBbJtN;Lg_urv
z{UbO%J|gAQ6|C7>Trt)0+n#H3qa>7J(Qbwn4nB3DI(nfr*`ejuwq!YX8 at CdPe|he<
zSh;k|D2Le<MmIkg3>9DAlmka8%n(S6?cuJnt%{r#^$;(b3imolL*#;bXlcQ*5B?G-
zpbuKT55{kceQp at BNFM~)x5bbaJEY<KKi<U(I&;;A%ew(Yg|QBd)<kiVA32CoesAq)
zbp7KhM=Vuxe5qEv$q=0^h73cRoG3C)i;LNHkJVt}1DH!q+UzD1K6F@};5A>17q?sd
zXikCIWoLsY?5Twd!<5K5Jmv6i3rdb8M1W;2YN!I|tES&>ZDnx}RxSavGnq^`2t74#
zfBEgsqHRgRK%W}ztNm;9dH12Mvt=UcK5t!EqbQn80J2;~f&xupd4Oo<7^e at a9}J^U
zHF at opDWt*Tu-~^}xgg)c+$b1z<7L6Ks6A~}V^K_HDS}Sh$tjOVQLB)4v?UdZQka at a
ztqtv)i#VLM?#t^8mJ$3no>-o+`B$_yyJN~JATzJye%tN9*@%SMamUL8jfCFF0vid)
zbu67I{bi~hm`HhM*ZA12x>fsWVQq>LBqb(kTQeuuCk37o`0I0_*YL^T=jvyT4-<_^
zS9h-!!Mj8!`#Zeo-yx=7$9 at bZz7i(r3xD+n$+LUgcTS!@eei*fn~d8NoKwkUj`+1Y
z61&|<ejg97^6#9(9}CeCkJw4cHvd$1ySAN5hF?T%#v4F?7ph>|GOeMp6eW(8SJi8n
z|LY<}V|^`2JhS)kEHjaABvA}ghnHBBs-hfC2ES#ky`+eJJlKNzy;*fW*)UHH^|@(8
zM at g&Qxwk{^e0Mc*nltFN6m at a3Xi}f5muR!gxBy|-xir7CR=cyV$73VNI1ee-s2cu4
zJEOk%&c~TUVd#oWCzcMeYX%Nn2CPV2S5MBo00v<;Qy<-%m)ohTEtbVk+mo+{|7~{Y
z+kucZ871BC3{GInqMCXq29ozj<b)+E-%C*U)b(K2ikMu~8(nIhVXyDf_{<$&#zjbR
zponjZj7gd;^^T-_#o)+p&L<4T*QVkKL)NkZI`m2-V0aPL(TysuBmbR^b~s$cGs?>-
z)PD)>&{fp1d18q+54}xjzzcL!^wcW{#LR}XeOW@<Utp+T-A=AO?p*!vb+#5=RQZbw
z<Q<6U{x%KUV31XpPGHZLq+zg5|CgB~Th8xEV{HpS^bNK{2YE356)9Sx_S-EUJ8t%U
z0q<(rIlr-UJK{WvuShBe!sv=Q-Uab2KZJm9HcV89R|K7a(IR at TnBxT{Jrl|s6;vv-
zyUY}dV(>mw4*U6pnk&4WYf5)vE|b|GxFCI!<63=k|GLY=Os7R8!l~2T4?7waMg^xN
z3TB=ctxA4sA;xrG3rU+>k`+pw-gY<;y3zQI&!JwbxA(z?;GWL)PU1#HCi=rCI~mRA
zf9 at 8P-uTVu;NsyfTNl4vK|vbjbvNa8F?*MZK#dP7x72k$L%6`V&dkN9f{ms##>CF-
zXgutC+7HguEL&AtEjUjm0E5q)cXrS-mZu9k`-P at _*Dy0b`;oJ_{n#a%yhlSqD?iAM
zuSBJrxHj?2*sopf&#J5cbYG|iM{FG)RAOrQL&#s<ppX~j6V8kpr)3faQkizF3F*wW
zl{E=+H3{|^^YG_X%<+6$1qp`BnwaJw)V|RS<MeoPtl~sE_y3;iMJyUr8$}UH{K`p>
z-qvjoa8k6H#g~&E6UlnsGEG=+0(<&t)4Fv4eiL;D$|44>#C%UYj$kH{N^pnK^9 at w&
z36qkW{2(vfmR1+o`ihDs_W4^f1Tw)iiENm+%t>6eoy~?Qu)vsTcA8~AkZHJA2wn5H
zCJ)xD31LhpFf&_r{Wqs0<Pd^z`~qFe5y#q3x_#X3Y1vHG<Z0+dy7TXOL~28N&~64_
zwfwCFbxmD=n;hZ<`Z>EzT8>?Lf4wDM#ZuL>IoN=lW-6t6liqp0E+$|*R`O|d5vXXO
zj)y?seD>=o{yXdQhGg6z_wXfOCXg=K-1RT?5;h(31_O(&s$|``=ExwxSnhk!dM>K1
zXc_iPpNOK_>!AewxvcY+g+OHDFV<diZedW9l1#j|0 at GGoDtB1hmhxn>%<RZQ<i&9R
z4xT*G`aih~{&(@A$|u%vMmx`I^*%X^{5JhLxV at s%c`PMJt0CB*W-kBsYPgpD_14YZ
zA%nIq1-uzv=hW+uak_tF6Qj)2dXGw`ChdgX6s<vYbBpie?9f-6o=qMz!{5bBeVQ2e
z$!q%#Jl)z2nGXOdLh^b{s=e_>noxUxEBp6}%`{E9)2j~qxBdjas9)zVCr1-q;TPPY
z_}7ZF68l2l$TQOQNQI-4X!p!QP+LY1T3ylKO_fUQv;j`n8ZyC2j%ZQQz$ui>)}xQA
zIG*{)OP9Nk2kSqG&Ccty)661>Ep>b|5o26dSO_cLCsb*DybSDbjaC{Axd!Oo!o~>7
zAHPau2(*aYjlq29+mEplGY5t3g^=7d@&2vgcQ1tQnAcAu+nEpW-tHpb7hMIetsT89
z=TWtwo#L${5-_=(Ed30S5&I_m-kfmVys*m<&}^VQEKjD=mdmE%xPhKCyDYq}!hyPJ
zq&U3xkk^NJ^C3>#y1e=gP-I#z?%buTHq;kT;~(mJb(I$7^%VHx#=GGP_0iqe_b(@3
z<D`Oq=!$Y)%EIw4m(DdlD2I#YFwjv~uD72(RtNPhH`%c0<p&|bnvi64OZdC_6s$+i
zq!FCag#=z%Xmj4z0gqpU%KVs?{m0N}D{#3FH^k{jZsrq8#1O;3O5h9D-0~wgAiKC1
zyOrUEBU&XFNIw>CTrrY5J at 22NKEvbL|HP$6v2^4)vaCG*jnwEBJnMQb;yi&3p6SYf
zhdyT>jYbtRk5u-{&_7a9B%Aw9yn;hHBu}OhUp<ga#p>5f{j6~z$HPEbHIKua?(vKJ
zqxlX#f$tCNFy^}qOI4nn^XX;JH^f`Pz9z%n6&hZH7b&b6C&QTQ2_D3*?w$+F1KjO9
z4~O^udFc_wi2{SubMGpUj=fG=7EO~J3^`4!zA$;V#zPY~`Yru#>j~q<b1i=aFDl_c
zYP at D+&;5n`xkI&Dr(shCjqBWT*^J5R^InwGV;Ssw2iqXr40vtigZ5ttEEGRl8jH;P
zveW{<(obA$(LJ{5^d6*;8g0W at A7aDF0f#_)BMDqh4&B-hGQ at Esk+bI9uceH@xr^C-
zyP#+H#<KVHI*ebr$_4OkHN4Xrww9YGNQr~;DVJ4PVtX0;dQzO|s&b^+f^~cXrqs|E
z_i2fRsJ3h{$gTakcx$hAANp^4qsfLXr)gvk`7uc7FG#dFg<4DZ?TFaF5x$h=+-GH%
z_$vFm?9%KyE?L|6yKZk%R9%3Ieb%B$QeVyT!hFB56_A_{9Os*DmF*DPQ)Xz)FNua>
zj##0T`fJ)YEu{~`{G?eU^97JI)h_B$kA1XB`<X0OX>-Z&f4i6Sfyf3IX4ysI;iAP&
z*I~hCf{n4?oNAO3mVVX*ekHN=Bg#HK)OMjz?K<P;owXi)E5ogClmq5&e};Qn{k4G|
zq*S3rlLO<YlQY(O)#8X}Z?DE4;h3J{*BJ~A_w at _i6pzuanpy4eq$4V`K7Zo@$NFur
z{A9jA{_5$0<CXSkJ`=z1jt}FZVH7u!lhv5ch*W8|{il-^eLBs82RW3n at IbN>{LS#P
zSbJp8j3R0s$UxMuXq;TxHZ|M2_hk;l$d$++%MU;lvTV7pSsw7kVN1*AHO-hl0(Mm@
zqpea4w$z-V(y%Bqla0#E3dp>s)xw5U4yYNPCCRj5E_N~GL7o}FG<`#uniCHPkYbz9
zO+{7tB5Nh;Z2jKo<_ at 7aD`-SN%{{Zz=j-0C%MRHv`%-aoOte&ZJ3z_ZCiTSaOAX2w
zHm=t_rpy9e#=zfypq&-w{P<6R@{buNn6F)$D2hiE<=Wb=ohc*VADMb5*L**fo^&;3
z06XN at SkE!jrez=<ImDj-KkUvP9Elqd3F}oQ(hfh%%UA<@tcM%c6N(P?JS2dMGFV+v
z`MM%l*%}OiszIRYs`APzP-W#voy3y=Q3wd~z<5Re?*(3W9jU_t0B(TLf2HRd`yUT&
BpiBS&

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/mstile-310x150.png b/ui/new-ui-samples/mstile-310x150.png
new file mode 100644
index 0000000000000000000000000000000000000000..414ca16c30286ff16abffe1ef629199eaae9253f
GIT binary patch
literal 4172
zcmcInS5%X0v;Gi;Ep^isHvu<IMXD6VL^_C+2m+CA0g=!I6Od391QA2WC at mCe!GLTj
zQW9(kp-AXTR|13t2qgg$+Rr|B=i=O*|Gk+tGwYc(Yt76%&m>*9wGiZ!<^upg(DJIO
zJpde00{||eKaL(+j`BJj{40EnY>WV)HkE((_OU}<?(S848vsBl0YGd#0B{aXu~Yy+
zY5)N3769nK0syH8dChj<L&uRjRu-nfL1Jo8+o8sbu(UDbo#y2e)6|KqnSTiY!VZ?E
zMh=h0mM6orvW8!GtWCQzc?7ks_|wgf+4*bpJU%h>VaD_VO+o8xK=C|P^R=Z?@KDJm
zTdfPE4+^&5|FTdnxp(>XnOT7a>%SyS+~T_B&Q$+-biyqDrCCndVzx*025&du&T>M+
z!X~S6j0N?I=BVlNz%a-HkrBbzxOSM-fAQHT8}r7J-72M{JS=>l(O3yD7xyYu5!S$Z
z9&bbnV?&AYPe54Huq+$Y7xFj43s`?C58Vvd at 0`T1m#PWN$i}u(?6Gq`6Dt&54j(2V
zMTCv^Q!^u(FdZigD>ZFKXs-PaAxk>;P3Ih{?X&&fiNc-UhgLe{?O;^siwTwEGC)XQ
zHb-T$LbDbPM`XjyStnUimByJm&SJ=TrTZ at uaK@$2>#TY?rn1z4wsIXDTHiP(gd%zY
zQ#{KTWi<^$jwR$GZ`UaV1j!@o=BcJKm1{VMBp&2WF3q8Z#v*!*&Y~2@#5o(>R4KJJ
zi7AS89lHf2J`Sr_-{7A5u;6h+KYwbaeAh-+6eR#Kxnn*tyt4TGcShB$e)eg^v_qRu
z&k{G`Yj?1IwjGZ@|F(=S<4u}*OwoIjzgoMWO^?XCxrt*nHVq4k{|Va;4cnAEzH9N1
z_>5K`t9ylpgx4+y5C_~C+<Z^_dRF1xfilFVoyBC8sCt8*bG1tiU05Lq2;jsg?leL;
zoY9 at uz$gLMRx3f+-s<_#F*)Jz0y>JxIv at x`DiS~KS2waO4<nXd0W)6#ojDfUzd%te
zKgd=gh=;un%6BR?_`F0ed9wd?W%N!k&UVp=Za!J6EQAVZ2psxx<wZp+G~!FFNyu3~
z&|7uycS>P3N|PlK#V@&0C(2JD{INU|N%-_*Xe)U8ZMg8fYA!RVSq1*%KoPT8rB9D_
za!L%XFzTgUH<pkt6TwmYLo<YipMoTr${AK758jAnliCN>h8NBDtdm=Yi+5gBU!Pm~
zK2+g?@2^5ZT^(zbkY|cM;q2?ns9sU#vlsHx{YN{BEO_>kDE0yg)H+Dz=}T3%3~B&=
zlpm!@)5Wg->0a%dq0dZzdB66hZ>CG}_rPUQ>EaS?*oH&N4|mIqHyDRgs9S(ny9Imh
zRg13c9=2eC1j>Q;zJ+cjHjJ``uuH#uQ=MohiG7y`Csc47W<?#x3|~f8H@?|^9>zg>
z(nM+vAYTo()C_*Thg_VMPgz?IOtDmTC+bDz9MSm5R-erHyB_>YY*1o$)4z?uE*N-E
zFa*(K&_Bnvv;2%x`C`vE^)xErv&ZK;24dP}*s^<R%FN#%<fH0gEhXc at xvd{N;z1IC
z^M=L&co8%|cjZbP7DNdznCh0tpmKtkgB}a!<DrRq?312zJ+KM6)Y at gjOnBDHh~lJ&
zM@^7<syB1Pj&eQ)<ohaR#LKbDR22nPam3if06YS)otWlc7ni-LE}f#7+TFHQ=SinG
z_mfr at ittoV1<dEsqI~^TQ?J};F}$#hB%chabhX~MN+|NoPf=AN8F4;YQt6Bteyng$
z)?%bEv81=C#Q2wdlX#pUe2ftjMEgnRDmszo_WV=J*gM8_KFSHq`ty=u$XOmbYm*qG
zM>Sg!J1upl>AHY)y~Bd<R>K$JdR;wUWKx1(#ka-l=mCvvtFcn^fI*%Bhq#;;jKAUS
z(@o-!E4sVu>~1Jnp32J1C94e|<0O3Z`*6+?XLRk1Jw|`1%xQVZ)n#S0&OWy|WhwRP
z<HO$g%Zbj8B9$t36SeLV$~~#qdxsD<KX2r!6^S}lT)V4dwovJz!pf2zmbM*?1<yB4
z-D{bQ!3>rtfxqeyzjxb<NBx+qC;lAFBL>REJ|>m4l0$QAjz3rum0flvoHh%<=&Ely
zR`WrO0Tk&Wp?8_6M($UMBw|`Fm_7Nqf at OD-<&PGg!i4AfMdtZ|r at YUOIiQG__eySQ
zDuKTwXNaec;U}SwLYr}qfRN6)g4uDxQ2qYb`shywzXvmwPhhFSt#TBWAe1G4)<@kv
zn&gv^EclTNObTn>EL8W!$NXNi91~hcM}M+7hTb}%o^p0#4+mv9<2``A&mB8kmOe+8
ziPK`4b+WUUciTT|VwViQy}?L<Rs16X$`^vhoTYh73{64Uc;f+VbN6bLG?J3sddWLv
zah(BH^p7`8f7le0Rfjw9U=c4OUYz|~ofV*&&RAE6oI|`Y6xk4nnRx__ at TZ=+ at iqDb
zHaV%KecB4y$8XrSA!u9vQz|}1%bST=37 at zca%yjmEONxGtJD(C2 at 7Kwy5D4&w4Tvj
zmx?r{o=BIGRGq7e|K>x6<E}{PlPSe`mx^z%c-}L0UJlLaMMpiwyUZFVrVV8L_${p1
zY&vM1_{=}eZQT)O-hNI+TLDpcb{KB9v}55rWeBM>QM#(e#yxBs$gZrPt3X)=X~XA?
zQo)z5Cw=dx4heIMlN6z5?!LsFmVn`J<n(WmPf{g3X(2dUei=nnDkY<Bs%PeFg{`Y`
z;>i+Kn~;;$gJ5k$8dWvJY9HlUQx-5-`Phx8#bIsK;qPAQim;Y65J at q}Y at F2whYnU)
zbBC5z$)g>c`5O|?Q9*%Tag>a{0&=3SivyiZHY(G$zA&)AhaL#dy449&z(j6VgRBPc
z6qh9kX_Xe8{OVL at xr?4xi4G1w5AQeeEil%0c at McRD|-XCF5qG_6Qu3AmfRhrPEY at F
zY9J1gq7*Nr^|V?bu+*xAeX19>`+MDGsDh1BX&}|=>mjnv*1=tQ at LgYZFkrI~QkV*p
z{zEV}ySYcFD9##ZSEY5oUbTcR$Rn3wRggS}Y?JKLw7Ey)6aFY;ZkO!w+$OmNF9FTu
zF%Cv!Q}F2ZT6G~;;>Wpa+jUyHM@|{2R}w3$6<A1RKa9S#X~oHb@<~r0on91cA-K@!
zcj^5|cH<QVuL*#1p;bwju=|M%*81pK%rA?{Wn#86r}ovW>GcJZl(T at P?KX7Ryho~j
zu#G>*LoEa!L?;UNm!r&{KQmZ;`u6)Vo}<`bu)99$sXOtvYHe69L2DC%H5OOeV;+nf
zr8ls{u{N)*ZpA*JypEn|xl?_+mA2t7qR;?Wf4}!eSuvcU;knR0HDj(9UOpO8TeBt7
z;}Xl&o*9Lq-?^t=Pb6iA9JI6kP+wnB7R^=)*IO?KcVM>th at IsT0!hbC#DXVasPINH
z^ug$FpQuvd?&Sh`82j}2CLAjKKSQrrFz>o|ujjZu0lPWPv4%d#t_le*rldzl_C1{&
z&**grD92&jM-M*sMfh|b9b7?2w?iWyLrF&9#7FFc*=p8Wkp*v)#`VToc`LgrkF8TV
zH77Z5Z3h$_;qR_F7GHHL53RJp!^u2*b}DsByj*DV)HvCK?qBmf&oQWz+wG#tBQ?iT
zbNU}P<TH*qQyI8DL6<Hc;Pl?5IM3lHOA5&#qCQw5qq9gU_kpV&qaUK$RId0Wr10*g
zdSC10g26e_<uhM&lo6)X7zHWH=cCIp{TBz;z^N6h>27KK<%_G_`vyt8^^#XI_&NE9
z6K2#0l`hvj{O at Drn+gx|i{h$C4!)15h2-h0YE&N(zNU&+C?zH>sjtS=JA`D*yB7{-
zwtkX~ebT`<`S<U5(H0nW{z23dBFdH26?bE>Z6 at 9A`4h36iay#yeQU+BqOiS$5qQ+l
zNcU8ij%!s3RO`Moo{n_;M{h_RWes at sIug6ACg-c86xCe`0|!gagmLWBL#?V#`fcKH
zuce-iF8eLH<cORVXyGye;_Eo6LmY#&zN5u2Z0q!ejkQ2Pi?T|P>VTS!9`fuFITg^#
z<%x`cmOcv|yi;CmcO*^(p>o^u%G^J9YzH!~hEJ4&DxmLp(vDjY&o at v@-5IVB-4Y_t
zj at Q9}tG~esy`Z)0&<)QBU+c<qJNpwOpSZ~#;O|iVd?f>_0qflm($D=j96KAan{wHI
zv^1yj!{J&P*+Q8um3&`vCthK80-ewMf=$LKcf!ImWtpRp at w<@wZHH^#1U$JBnT&Z<
zb$P3fsLoExve<E{3Gw6U7^gY^%X?BuzFZHDmA&djbq8+lHSJr=9#$QhPa7^0MU(HN
zM{c4GZsm9BPs%J?hrIp566WxGZ+_g#M(Hts0G&^|cXI{iMIimOQyCCkkJzr~jzruw
zy+gLj?39zbx$oI2N~7b>CTkne8X87SkZ5AY+WBp6h!pBp8ovU at c%<~(mF1w)=)VFi
z*Etx(u#uv~@AJd7kF!tm<eJ3)5h6?`5(qW9Ow<+zVmsa6`68lnl-uqh^|6s!nj7EE
zq0-U%l2rYwVO5tb#FyEVG!lG#fpv!(Y!rCt9_Le~XGV`KGV0~vP|nm}**+6}p?i%D
z2_SL6`5`5F*Yai9v*y;W4f}v##B14QBTs%enZwRt9*1$}wdvlo_3YDqFPsUki{)A?
zbXBY*3Jfq$rmou%@(6Vi_!>0U at 8Yk-3rqN^>0csDL!;oQ3miMf4_Kd~7~W%9w&j~|
zO&1%hMQiL0YdV*CpNk at q%4+wR37gDQl0bYQG1wvp=yGq}zEvqVtZqGGn+wVZ;ptQb
znR=RnO*{M&YzG|B{Z}2&)h=uWAuF8)aijMLmDwnhs^K)>e0SL5w2pd%WjSb+)$dwl
zU=Wf_vG>X&YoLd2>s#M-C at ne%doMj)s2?zJNPlc~w(24qp~E#<%}d_7k~H2ol7-JM
zhP>wW at oXT)MK+C=Up$T5$S*j-$vo0|Lv8D6w6|wFhM-UQHof|c+|Si{*LHhwKWRF&
z<g$NQ(@*;DjlLgk+v3mpN8QLiZe?pZmC|U3%&C4W7peM$l;i)!OY#3Nw4v4kZ?cFa
zl87cA9^`-`!t5r(>o&q$|89u)p#ZcrG<8%p^i(x995gTKYhTjWxuBw<rLUn8Zje~=
fzW at P2UcUFj|8Kw_cMN3z&D+w<*0kFA)|3AL=-tq*

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/mstile-310x310.png b/ui/new-ui-samples/mstile-310x310.png
new file mode 100644
index 0000000000000000000000000000000000000000..94e1537cf844a19328b7e251818b1cf373e3dbc6
GIT binary patch
literal 5531
zcmd6LXHXMb&~~m31pyVYpb3Ih0V5?KArKIO&=P at w(p5t5notsoqJVViO}e4QfL at w}
zc2Oxoks6|eB27XkkkFA2e||sSnfK>=X3p&FvuB at q=A4<G-4k^WsmIGL#0>xdc=Zu?
zO#y&^ivRAD#}1L40OqShbIe)GSPKC7kifI|==h<3%>iL*3;^II0DxyN0f3!D=ou3L
zz}*4><{tt8&<p_JqR$(O3G6U%<guaNUBE$P!nc+~j|;1Btiv_V#VsHY399^^1^}Ed
z(!Z;P4j5h<4a~S|-qg;jb5ck?lSFO)_fnGP1I+l at V;FnekI|*~8xiMOqOW)^p;Jg7
z^Pex6qmP|s`TnC5h1W8<_V9uBNh!?pmjIDn%qKCC<ezp2h-b%&OGxGJJ4XJ&@W5Oc
zin7bzrs?lfYO4^3LjEr-%U5@}?(JW7&5s{c!{z(+18Q78fM`t=V`CF%=8tF56IKcA
zHoLisy-$RC6!YZs=wA~WU%~b7{Xz#m-_bk8ezH8Z9~>Fe&_RfZ7i6}<zRWhr>)!ae
zVYDI)waZUmyL)ikN!0U6r9U4~v6pB2)_9Ios>d#u7qj)%JnX;gu%XY5#>}BIrxBr^
z3{<bVL5SdBVO1d<bE%DQ80i4f{j7xMov*}m%*exog*dCC8N7Z>^)<XS*4_M~SGQA_
z<U%M!UZ*u=2MoU?2d at 8f6!&bS7b#SH0#d5AZ_a4zu%f-ASuHv4q=N=ynKQjh7QovI
zj-4G$$zf?6>w016+lqRNk~y)ZhHV5|py6SRP>oF$Hv5kdE~T#KSy*FBo_-Lyng}jw
zC}f2+5A_73TAR^Fe(S=28>)+8uN+B&eNRYDG1#z&!F<V*Ta{inMB-|z`waIX-d8B%
ziBCa`)`nx5_N#tT^RV8~bzOg_Bt)h4Jb#3j at pQ(5y7-IHk2LQn+o=ckv+=P5Ok5pa
zlc}t8Q*}*EVK~ZRw9yCN!iXWrCMstxoh at Jps!kV-`Z>j|q~6w(NMP0BZzn1TzAO^x
z`aa(2vKc(&5HrNF7`IGA|GTuHT_^jby}=0!?#{LFxE+zehN-Pv^M!k?vI?y0{{0f#
z7+GOUq{KGQg^(APJ at bm~T`#7tXc6pft%|b%R6R#Ol;;cn`P$;m0L#qyL(Oy7wd;Ju
zCpyttG79dk*^rh6m8<$1miOJ!KkF*AR&Ek<1Y<Ebo}=jhTn?rgQdF%5IM#{5ubauh
zqaF{NHcs7hZxhWl at J-xtWE-1tGz;ory5obO=e0hi9mmS+k0ctEZ3ir6_H{qI!Wr<|
z at vtu_3iHI+$DOwDZxhMvSG%vRxSb1kH7GEHQ4h$QTvw$A^sqs3aTo(?gIk`F)rvP1
zY-RC2?FGbAgdmD_arkdo=Ja*X0jRdluFQE_F$0IJuI*)jN~y!7?6tAU6=PAy-K*us
zv7i2Ov_YVhF9P{|<e|Ev73^;20K4F(-4eQCc(4G1x8SKZh_kv*LgIufJ`CG6xV&{U
zPp5vKc9LV(Tf9>iGlS|$ZTLjptY$hI(^E<rK$-x=GPn+3rtMC9r%JKscX3kDs}{j$
z#}CL06}5`zL|es(rr!feeNV3!_YDn0R&I#)u;6>}u_hPZ;Jq at kK_v%vFyf5&36o0L
zl(R$M;eRD@;LJ?ZO?~P)>05JU|E>2LMtCx#E~{zxf}(*Eo&sj^l|5D;totbKsGvUM
zv3&nXcmO~AjY~<;7yGq}C^zN;xG^mvbhDml44Oj)ghZp=*3-4?l*)5^R{MW6Ok1IF
zlYe+XE%nw5q9|%1e^>&`LlW4?3P>_DxF#5SbAxaDP0y3b2Djy at 7*B>`kdc$T at Qm|0
z;=u6Y{0Z(gh`fL2PYp5JCO_vK!~b^o$oudXj#!VOkIm%JQG9OXw#o;;4n1{g+9rKV
zpti($v~4hvpJn?&G_=h*t682IIHo#u<06W1r)#B>v(hv&MG)IK+nmqjjJ?qKQA4C3
zKR*+^@6w01N)A!ir0*Ey^*i)!vZO*kRdIjW50jM4yMF;ejU*uZFi>L3fY|2T&tzFT
zCBdH^*xZ*;PX*Rm!#Y&9&#U<0BNf&@gft^=1h-o93f(<E;V)G`EUGTFG6XJ6>(wgU
zLli4f7WRI=^VS7N at SPEPZA7gpBWL@EzTMU4dUXp?JZ)87 at Qd)2ZH;8DMPm%Sa<X`u
z{SDbJ%+)j8)Rd90ZZ}rH3+!k!f1Tl at rq~o&V7Dnal#&|O=VT<tK-Q{6+_w3{>nYRb
zL?c&NWrdf*x47a+zSAOqT~eDjo^0tK&d2lU(EUc^@y2^*{<#E|eW{~BJR>)x=#BUF
zt-gh|IT?d7n0*BC;;h_9o6rs8Yq!j*Xf2<*-R)QzFBNijs}a@}nhkcF;e2Jc>1B2`
zLS?o}CJqoQZ3u!hUxM@;#6w)e?FR3_iEVE88-|O%_ny6eF=*h*2^z1=z8c~7<k{vC
z9tU1)Z_a7^83FYOma){)7IzZFDep8875fUsInu*X452POCZ>!oX77U%9IzMgDGPfE
zbU%vU_&I29h6x?7COjqmCwaEbZW!MTUe_WTzc_{cnzyk-N5(Xp?QEv1?!4HS>xs=o
zZk)6Kx$m~Bc?!m?slR3w<jQn0^=!3keiC!JJ0`Hp-biI!^<GNLFJ;EY3HwXXv_Zyd
z{N0!{BQu-f at t4f041DWv3`GhnEAG)I6*?y4P%>bOn%Oy}{$H|6-tS;}teCi`4jGjo
zAN-Rv98 at By4;#~|OIp4b4;%0!Rq_G at sn#L?UGSHT*)2)9p3{4LbCYXNpl8DrynYV8
zWWQbHI}72o)~W at gn4X>af_|*nV{_H7NRo}uJGKrQyU1SSkM-t!va^F;IFPLu+&$pw
zK@%Bc9aHDzCTqVrN5)@jidfjwSMjTAP})sy1J|nmXV^3>88Mb+WQ7Tvl`tsT{Cg&>
zW5-$EFGHAsNL+~uDqp&C#~Y<feo~q)hA0u&P{)2b`CV;iQ{F#g0rtMrpSE at 6Ae1TB
z_0Cb_*Y9I<O5>4-99n at H-m&#n*x_a+`%N+o;@6_i$W09DwnOvMcdAbLU0?+6a^h;<
zFc#p-Ega_Ilb>0cyMIn%K%jyjh_keINxCoTmPZ;<!G1gWNk!5~oS~tD9dz_6;t{Cr
z>Co1T1;D&W&IZ2f*_HAo%PU+0HK=5MUZ7&v_ls{4;tiim!s8piEn$N`UC6Rs6gg5J
zUqUo0b}hILeyRr9>N&+=7Wc{*eQT65SNLf-0>>^odX{u{NO%-n5Eg{azkY%PzPB7^
zeB4hZJ!d3xQa}jw+sfuEhmo}mBiC8(cLU1>+Tbc(@f;~9|2#n`)8`Nem&o2HEon#E
z*_n_)XhNarK02}L5$1XVHN_9Pia2^F(#}st>H4E6UkycUZ^5*D=I at f5_3~JzW1Urk
zq-<Y4wcrJxcmh>P#<8BS={%JEBqqyjkG=T&^PLW$E+~1fAZ5mi)6-kP^<K$0YNBf{
z%I*+krIfgPW&xpWfO0A1Q4}6H8PWSF@^uHst*@!9t41%btjoMM{^jPnm at 5G&09`zD
zsMKJOjS-0CQ+uUhpz-l>^^-ta%4bY86qgR|KYtn+c;+ZN`=e2uU-y)PlB$t}J_)NA
zZCcazJFHY=xhTg}a70V>YFBO#X1H|0ETw$lZSV8+Q6FGN`N)r}wdNYh(({8x-TF4~
z?6_XWH!eoF9-wD*rG}2>(!|rLVy?srL!08tcs`)tPu{_;6!F7O48J|2lv!voT6Xc=
zg>u at T`UW?HmH;D)J2^US0FzXWfE(C2m3}`7^vfgyD at 12};#x-}%mxcx at i!h7h;%W!
z_~ptB`FQ`*C})bP=S)&u!Fgw(i~qXmkD6(COMdCXDd-F>Q4}8)EU^=9j8hwtJw(~e
zMgh~duf7WUed`pYjKBpb^nMB6xQx(MdGaq4G*irY!1&beNL+tC=*l6PB{9-0EeMKb
z&ZMs&-W9ec>E?;2Dc^n9{<sNByU}GK#2Y&Z=8v<_{MQ#>u78%}=ob{-v|fl^1)F`7
z-+Gh44^$0XeH0=+ at qO*J<jZ(yvRvh+UW_q$E+N2S5<{sG8rssip`qO87MSgqej~$@
zvA>^j(7!)#0Gfk~d1Q-gh_ll~uC;v4Ipv?ZV(};I?(!6>fq8Wzq%vLHC0#ib&h`_z
z)dFTwzY$YgzQy`uW9ZwHqInc(E2=xV?S82qZJn^5js#7Q|Hx(Rr|d2ZKUG~q_OO5T
zGG5xX9!%7}oWo`g_ at 7uhZZo^?$*3b>>hc&vb%IT2`{vc&v{-tZyh>n|zno)Nb&Wj_
z`tf^dE2s~JWc7!^mC1G!hIhPq at Rx<BRZk7ffl#F*Ai|jE`q^1aVH0+hK+ube6jxHX
zk at YC^_ at 9vYo$&MbJ~U{e){qokNoi_wQXA!g|J{W<dbw`ylJhIWCP{3wU<oTT_PPVE
zoUiW~$1Dyy_|BRA?9X|kt at Sb5_ZRy(us#;+w!YcuEe^_qeLom(<XsB!4|~E0xaVjO
zF7ya0KS*1}dgsEYs-H@{WPGpl=*yY+O5g_amnU`Xn)aYlkigt!X{1UKs+1hG--%%e
ze>0S{OUdD9n at 8myFn}SSRJLKl=*t6 at 0fqKIM0bADdW~<ya>F{nD*U}-Iq#k--8A_C
zv8vD|(}eU5l^|AE at oL;&<I7o1wC*%TPJ>i8yHE4#Si9P;EXr^XL9fjYHt}wjp9mg5
zv!Z=i;mjQ8+YYEraqf_N+PK%qL54#&_vRZ=UlAVNQ!YJx2D%ewZC>O*=kFcBdM&lI
zHEc6A<m6!zIph+TM_(}~wGJB-T*7MUKD_2RJ8ngXQ-!YFz+<^VnB1T)uGAK2vSJrq
zT)7c4;GVpX04E61+WLOOA(i`qoK$Y;7{TYF?E{r*U#&~|cR`~wO<l+My;<el!kW+e
zZ}$h_I2p>`1DeiZn65evX#H3EI>cM<9+ZF8?6?<mMF?8k^*K>`e4}^y_?W5!)+IIa
z at LYmmkaJ6K!9RjuiW+Mlw!~d7C?dhGX09#51VKJ<d906S+p1>eVzJ(YOe&jM at Bgba
z#Xj9NKxIXDw3+9ZIcT=nYnS4^`mtBuLMYxS5Ms_-pj~>{%HG`m46R at u1UoaO5@jlI
zISZroVA~bwrgRU6N*tP8YRqT8Zs!G=#e0 at X#5x;L6Knfia`Nk3op}?hwZQYP-D^hV
z-iT5%m-`qpayN}V6=y?Q>9{oFLY}Yp1lUb^20dsM<bc+;$A~4m#{%;!IeVr<nXB|B
zk at knX5G|n#fm6VsRO^OO!E{2j|J?H|_kDTBfN6RqtE5rlaIjRh`E}WGHuy0Tsrt3V
z+2&~+eA2IFk-tRNes<jfY`EHh#Q{D99u9*~{j2G_$(M&<|K)LX83}LIsO#54KXg_R
z<!nI|qR9+wI5fUVZP?GyVs3gr=!GXi`-Ax(?zEQr&a%0ovC9;)32lU)XP9D8JDTD(
zJ6=B4+WezRIdptvnxqx at re#`EpxxM6lr4r at oBu+^sO;*EiQsa0HF`ofce=-E%Q5Ft
zLt=VX`PF5H_8a87c}9my-Iix7-y(>{(yJfAM$O6%l3VT}9;62Eb>LH)6#v at sX2#Pd
z4^lXFlA?@tFDegwWp9*eRNFLmuqNnx at eNDNewxs<XRMd9*)9wJi3+qm)d#vlsgXJB
zVDb3LTWz*xlzo4>vU*ViM7yde+;&jjz?%kwKG1V{HIF_hKFA>y6*=6c<P^`Vi*r0J
zOD6i-W3SxeVj|DqkBhF at vO+h_*CcEV>HMo!ZS{4qR9U}9=v|*s0aPccFbwW147Lm3
z9O6Lpzufk|@7_*M=MgirfgGP@>ARWzJLp!eD|urx)g|OZLV)+a6%o~sQ&fyA;;J7D
zm7WlKi>-<QvnN@(nOeq%26Nl#&auwXVAklz(@lj{MWQ8kphB6Hwj=p)bHaae<cDHr
zK_c`AJF$O$?sHw8^9a6`ObHoHK8h&6Og*12=q1v<fHgyVj4X)RX6oD4&2K+sSWX~{
zKSDWo^Ro`#eRX&T+rl|MC9W%yd8%_ddGy94JL4jE8?9rReqT##=a7DpXRUvAo;Sm&
z+b>dxT(H8JLREPUe?MK0ZKa^&czd~)LR%e at o?71?iL+CZ8InYOecQ~%(d=_qyvCFJ
zYugdl+Q3MD+%70CRE9>B^qd;~)X7WV(snc?+J6x?neJQumfvoVf55z;8~?G@?CWcU
zXLE1OsY0PVEro9XSY)+k1gsyvGJ(eT6C`3?ji}V>zVw$~mea4fwz<kqj0n=_oI*9s
zjXcGN_7<kKFFrTgI+~kJ)j3$OY8rwY5ok#P5s_qdw=`w#+si9o)hn|dWs at H)%<eUr
zruney3`>IxP$x&TI at S3%+M36~X+E)T8%M?`cnorQI(Lcj55s#BABf-LQF=@bDvTcp
z8P;+TV8;`5WNK_;*zcF4Ks{p7b9h4ZWAFm0k2d30=BB6M_=&;1w?wk7Y0`Cn8&OVj
z-Bl^IG`1=`EP+AY0|R}9r?20(*}T!Zgw^jC3WiW5Y)Ix;lBCT*L?FcCI>hG1V7})d
zsvk<G<H;t;S=FY7HL_NW>$p(ubcq}9P1EnHM0m+xJ3%MpM+Ro>rq4!y(GIo_b0?}A
zJv)7VI_i(ZH}p;sKQ~aWmlXJ>5}bv|X%^kbc58ZlY at NlbtuM+7kDHN%j+nPY#`@9&
z9WO>z_a>_!RwwoF2(m#uy7C3CabqyRlZ3--RbeBY%5&z#|M|c0`S!ooaL?}GMC8#h
zu*P_o&tZ}{R_6g0^9bt*b$H@<XaEYg<RNmmROIAuq2*PfN~%zZqRcG?=&f6U at W`V7
eFTv9r<LVUnKPQ}g3>W?@OJ4_hx8lyju>S|*OlUp;

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/mstile-70x70.png b/ui/new-ui-samples/mstile-70x70.png
new file mode 100644
index 0000000000000000000000000000000000000000..fc6016d0ca97ff28431e94e8b95960cb5cc9ea3f
GIT binary patch
literal 2602
zcmZ`*c{J1w7ygA1CPjv^WTz~>Gs9#_mh3Usv5d&rW^7{}q3mJEHYi)B6piI2nJn3P
zrN&we$w*{pLKLCs^Zogq^M21c_de&j_j&%k=cZa&7=yTkxc~qFnVJ~b9CO@%i<9lR
z`>0jw9upf*52*(Lby?iM-A*2B2 at ew+Bmmr&JN6|4z`^k-ZUq3spa8Ij0RYVc01yl+
zZn4%nUa+{E85;n9h*^W3$BKhsiZtYy;o#zjA);!R@&Moz+|)o16~S09z7vFU5PRFH
zHreLdW*Wg}`#DcnVUEp!<ly7xjr%$_V*ex$OgY!Unf at VojX?2DQz1K5jRx0~ZIY53
z?Y)Y*77rEb<MND2#__6>C-_*{sHY;MezTfTTYqB1d)n`KG(YaVwK*BOvH5HIm-=$}
zaC;8%U+{MQ?ibJbJwiFfx6B6hbe$1^YEf3BKuLlZo)j|oCTWDZ=}ZOtIsWFyS5?o_
za8VD{n>@H*XWPc94o%p2Jv=8y56_r(W4=|?cX?2WdZuvG0adDC2idWBy%wq)Qw8=*
zg`0D8Fkwe{*^~N(!p~b#B`5mr)no_c^)p(kLdc%Aw^rk<=MzD<`Ykc15RRdVl1p<C
znr(G?f*%+mQi)LxUD;@SvkQtKh1MH`Y|VXlurLlE8LhBtTnMf;r=APa-3?_~YgVhU
z5Owt+Fa8NII>q~{X3RN;uQnNUBs$NsCIctVTc>ndz)C;a`(eALQAwa^4*bSx87is2
zVv$veNr>hey~rif_;`~Z!j#Q4)|ipp|8{n=iLZvA-JJK=AGMeF&f|T}mpnNZdwh&q
zYSgV_+&_NrENtNMx0TKZiRJM=ORtj-_@#L*vgl(#WP?33vb4;w!!pbFpPj5KyJiIx
zMPXb~Z+hJFaNIa`z0u)sZt_6fH4t?Aa|!%Gh2y5r-_}#uU*1D`mSLLJ84Qa117=ZC
zB2TZP=^?_1cZCT)G&R+H`n|C?hDquQM4qP0?NU=%TF!c^npT%&yJ#6bw<}Lp!rJ-=
zvy5$DZ9;IcPu;DN)H~Rh)`yA(SkquPzi_)bAqx84Y+3C`#_>b(PfjnIr2H0Kao=J_
z#B_6e8oYnrEpwTDhmUzt>K(qfJ3g~iY2{vLg86`}JUs2@*`{e?<ZrTvGv(3s#<~*z
z)5L2BaU!&ahQo90)-*OFx|lINLJSn7DafGd3|tK`K6mjJNb#`c!_w3h#@EIdjv`ji
zKA0m5KdY{N0)zcn6{ZMgmwh^?sP2JXvH~-E3lqPRXYgp4T2}@Ak%&XQO|*YFX^&QN
zrF{j-OEqcR0pF+#RC;0N)t~#r^#S9;wAGUhyV%7GW*6_-wqL4B$UVr?woVmG4f(~R
zUZvchOXz>)`}hQWfo`~X!C3#n*jm~es;Z`~eEp4~$j at 7T&|KeH9}XuA4Dfvtsc#kD
zS|mjw5tw&g$Pe;-W(QySaHM;4$%gi#A|1C1F)K`62o^lKz!!1=O$yaop6#$jn;52?
zoN(-U at 0j}djfm(MmItB>Kci%Wlq^~P+7jdwP4B`L8R4<4`@;k8=9cv?ezhGurFB|}
zCeBzo6itzeH*|*eor%I|FJfmhb0fg9w19!;zgEJVv(vu^Ud&Owd8#mih`lF at ysy$D
zwc4H*Gt6~4RW_e2m#z9us?uT|UT9Z9 at A}74L}E)KAL(A{_DFw{Wn2B80JB(o1v%HZ
zP)n&RPPx at 6F<PhFQoY%r at 9DQI&zC-+U{hn-E#{<4<!4vzZ<!%K`CNBdcl12@^0c;X
zl7&!^DNbpiXnZB%gn%ZdrM<iZg0z&eVO0qGM6G5FZ at IqSvvaeCqpf9zq*c3KQOLfH
z7pm<VxY=pjuLd%fWKy&wsYsmiR1l^H?a1eeP`m&1FaBVIY!Rz!Ww5M^!1w2*vW*rx
zRmm0ID1sTQGRa4#-LC99$x0o2ORcVjOXKB=if6HS)#*nSkg`@xJi<jFIA5KMHQl$}
zH(0EoA~?IrgWq8aEpb-7`S}X<pNBtMRvVhiA9=U#%FChFO1vgdP8R0-b8EEW85}=f
zs&6X>5_kPckoz%_iB4%FeZHf`+ at 4SoWVn-XG33Q`-2NcX$I<*DN;XPUB$b9Eu4eM8
zbdMZ<ehW5Y^KX8<O}elaF}$S(+xLez%u3LUZ at e+r+1)aldZM;9xD+v<auL8q%E{dg
zW#0nt$bpOJg3AL^%eJ%~3dLS1XO6VdjEgCW(bbroc7EJ?5<M4}kk|WZu>W@|%)&F-
z6pQ#KsW-6oExQMrOrPkBsz>Xln!AC<CBdqp3Hb#Uv2c@@oA)IO5xT5q9ttYvRxSm-
z%&6-wDWLqlg7E#iXq?Py6wsx8Fjd}_d`_ybpPr8@(OSG<tBt5KS`IUk4>KVW7+rF#
z2dm-=q_L9yH-5Wl48Ks>`wagO8l{y?j2SrJ!GO#EupmTszB{Eg2^S0L??9IfAAGZ}
z_^pccOTFAmcJ5jp2Qo%K=Djm*BA?j%L1J8bKGZzK^WHI9dbSlWh<-?XAp}o!QR~RF
zZ}qW$9~&^mQ-Wuor3WELIiFSB>tWRD8{uDv5i9%Dv1sAi=AyIpb;I8FxP$<$p>pMU
zDt7pr+`RM^b4b_Y<|!xbnJ at k(I^P`v6i at TO(`E_?$(Gwe>fBJFKBptE9X0@>1cihk
zpcBUj%x!qS$|t5Iz4?O~7`oEKA9W2sd*-K+kJjX;p6m25Krq#pWz1)PlEOp;Bp(Rp
zuJYX<N-O71`khGLix2DmqqB8x8!m1mK>F(4`=;Dz{S{~Cd(Hu>($%ME&9ZjU at ss-k
z<%FG4t3|((+X at z=hRSMHEDPmp!OHe`q&r;l=!Af-1d>4UlJmSmgWe{mH#QQ(o+T5*
z*x(kLy^aYP3){=?E2=S>gtS#;5?Ri7z&wl>c%6IS#1WAjKz49Kr5=8|`v at 9V<T%$j
zhha6^LK7GAw`*pnWGvCnyG|N|&?}`)rN+ at H<`pYuS)Ml%6Pp>4!AtMMkKWLv46~PN
zoEeXud2R7h at CnHs#vJQ!49c2n at rdh2?IvH12(%flg+-4RvmHSw*yWZZ4mO>FWewpa
z7wC at Ya(H^f at XX6<GQ+`9cz!VUK6p=Pm^UKd!<lCVq8gIKwM)&}kE%N?6p?f4u<3mV
zmtQLOcSW1Egghwk?zgApEKYdYRT{`@mcINV9wKGhImRn+5K|zmJOQ82Ib>Jo)XsSt
zI}XyQ=F!Nu_+EBb<%kTry`_ at b^y8A>o(MnrM$`yI+)z*(G#as}i1cDqPLo$g)Or66
zS$}Xx9HchE`b!OWH;x}FS%RS>!PAZ4rRfpkbxZ&p3PUJE)s$gS6ih=?RYMb at q6md+
kLZOj5#M1u>-~&B<u#x{i!0E0dejETy4J{0wU&AE)2mOuC2mk;8

literal 0
HcmV?d00001

diff --git a/ui/new-ui-samples/robots.txt b/ui/new-ui-samples/robots.txt
new file mode 100755
index 0000000..3969cb1
--- /dev/null
+++ b/ui/new-ui-samples/robots.txt
@@ -0,0 +1,4 @@
+# robotstxt.org/
+
+User-agent: * 
+Disallow:
diff --git a/ui/new-ui-samples/widgets/action_button.html b/ui/new-ui-samples/widgets/action_button.html
new file mode 100644
index 0000000..d0a6d9f
--- /dev/null
+++ b/ui/new-ui-samples/widgets/action_button.html
@@ -0,0 +1,186 @@
+<!--
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+<!DOCTYPE html>
+<html class="no-js" lang="">
+
+<head>
+    <meta charset="utf-8">
+    <meta name="description" content="">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>Kimchi - Action Button Demo</title>
+    <link rel="apple-touch-icon" sizes="57x57" href="../apple-touch-icon-57x57.png">
+    <link rel="apple-touch-icon" sizes="60x60" href="../apple-touch-icon-60x60.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="../apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="76x76" href="../apple-touch-icon-76x76.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="../apple-touch-icon-114x114.png">
+    <link rel="apple-touch-icon" sizes="120x120" href="../apple-touch-icon-120x120.png">
+    <link rel="apple-touch-icon" sizes="144x144" href="../apple-touch-icon-144x144.png">
+    <link rel="apple-touch-icon" sizes="152x152" href="../apple-touch-icon-152x152.png">
+    <link rel="apple-touch-icon" sizes="180x180" href="../apple-touch-icon-180x180.png">
+    <link rel="icon" type="image/png" href="../favicon-32x32.png" sizes="32x32">
+    <link rel="icon" type="image/png" href="../favicon-194x194.png" sizes="194x194">
+    <link rel="icon" type="image/png" href="../favicon-96x96.png" sizes="96x96">
+    <link rel="icon" type="image/png" href="../android-chrome-192x192.png" sizes="192x192">
+    <link rel="icon" type="image/png" href="../favicon-16x16.png" sizes="16x16">
+    <link rel="manifest" href="../manifest.json">
+    <meta name="apple-mobile-web-app-title" content="Kimchi">
+    <meta name="application-name" content="Kimchi">
+    <meta name="msapplication-TileColor" content="#4d4d4d">
+    <meta name="msapplication-TileImage" content="../mstile-144x144.png">
+    <meta name="theme-color" content="#ffffff">
+    <!-- Place favicon.ico in the root directory -->
+    <link rel="stylesheet" href="../css/vendor.css">
+    <link rel="stylesheet" href="../css/fontello.css">
+    <link rel="stylesheet" href="../css/main.css">
+    <script src="../js/vendor/modernizr.js"></script>
+</head>
+
+<body>
+    <nav class="navbar navbar-inverse navbar-static-top">
+        <div class="container">
+            <div class="navbar-header">
+                <a class="navbar-brand" href="#">Action Button (menu-flat.js)</a>
+            </div>
+        </div>
+    </nav>
+    <div class="container">
+        <h2>Bootstrap (static)</h2>
+        <div class="dropdown menu-flat" id="wok-dropdown-menu-x">
+            <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown"><i class="icon-edit-alt"></i>Actions<span class="caret"></span></button>
+            <ul class="dropdown-menu">
+                <li><a id="wok-dropdown-menu-x_0" class="add" href="#add"><i class="icon-plus-circled-1"></i>Add</a></li>
+                <li><a id="wok-dropdown-menu-x_1" class="enable" href="#enable_"><i class="icon-play-circled2"></i>Enable</a></li>
+                <li><a id="wok-dropdown-menu-x_2" class="edit" href="#edit_"><i class="icon-pencil-2"></i>Edit</a></li>
+                <li class="critical"><a id="wok-dropdown-menu-x_0" class="delete" href="#delete_"><i class="icon-minus-circled-1"></i>Delete</a></li>
+            </ul>
+        </div>
+        <h2>jQuery UI Widget (using Bootstrap classes)</h2>
+        <div class="btn-wrapper"></div>
+        <h2>How to use</h2>
+        <pre>
+            <code>
+                $(".btn-wrapper").menuFlat({
+                    name: "wok-dropdown-menu-0", // not required
+                    icon: "icon-edit-alt",  //Set icon of the menu button.
+                    label: 'Actions', //Set button text
+                    content: [
+                        {  name: 'Add',
+                            action: 'add',
+                            icon: 'icon-plus-circled-1',
+                            critical: false
+                        },
+                        {  name: 'Enable',
+                            action: 'enable',
+                            icon: 'icon-play-circled2',
+                            critical: false
+                        },
+                        {  name: 'Edit',
+                            action: 'edit',
+                            icon: 'icon-pencil-2',
+                            critical: false
+                        },
+                        {  name: 'Delete',
+                            action: 'delete',
+                            icon: 'icon-minus-circled-1',
+                            critical: true // set this to true if this action should be highlighted
+                        }
+                    ]
+                });
+
+                // List actions
+
+                // You can set an event to a link based on its ID, css class or href attribute
+
+                $("#wok-dropdown-menu-0_0").on("click", function(event) {
+                    event.preventDefault();
+                    alert("Add");
+                });
+
+                $("#wok-dropdown-menu-0 a[href='#enable']").on("click", function(event) {
+                    event.preventDefault();
+                    alert("Enable");
+                });
+
+                $("#wok-dropdown-menu-0 .edit").on("click", function(event) {
+                    event.preventDefault();
+                    alert("Edit");
+                });
+
+            </code>
+        </pre>
+    </div>
+    <script src="../js/vendor/jquery.js"></script>
+    <script src="../js/vendor/jquery-ui.js"></script>
+    <script src="../js/vendor.js"></script>
+    <script src="../js/vendor/bootstrap.js"></script>
+    <script src="../js/vendor/bootstrap-select.min.js"></script>
+    <script src="../js/main.js"></script>
+    <script>
+    $(document).ready(function() {
+        $(".btn-wrapper").menuFlat({
+            name: "wok-dropdown-menu-0",
+            icon: "icon-edit-alt", //Set icon of the menu button.
+            label: 'Actions', //Set button text
+            content: [{
+                name: 'Add',
+                action: 'add',
+                icon: 'icon-plus-circled-1',
+                critical: false
+            }, {
+                name: 'Enable',
+                action: 'enable',
+                icon: 'icon-play-circled2',
+                critical: false
+            }, {
+                name: 'Edit',
+                action: 'edit',
+                icon: 'icon-pencil-2',
+                critical: false
+            }, {
+                name: 'Delete',
+                action: 'delete',
+                icon: 'icon-minus-circled-1',
+                critical: true
+            }]
+        });
+
+
+        $("#wok-dropdown-menu-0_0").on("click", function(event) {
+            event.preventDefault();
+            alert("Add");
+        });
+
+        $("#wok-dropdown-menu-0 a[href='#enable']").on("click", function(event) {
+            event.preventDefault();
+            alert("Enable");
+        });
+
+        $("#wok-dropdown-menu-0 .edit").on("click", function(event) {
+            event.preventDefault();
+            alert("Edit");
+        });
+
+
+    });
+    </script>
+    <script src="../js/menu-flat.js"></script>
+</body>
+
+</html>
diff --git a/ui/new-ui-samples/widgets/dialog.html b/ui/new-ui-samples/widgets/dialog.html
new file mode 100644
index 0000000..809d70a
--- /dev/null
+++ b/ui/new-ui-samples/widgets/dialog.html
@@ -0,0 +1,78 @@
+<!--
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+<!DOCTYPE html>
+<html class="no-js" lang="">
+
+<head>
+    <meta charset="utf-8">
+    <meta name="description" content="">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>Kimchi - Action Button Demo</title>
+    <link rel="apple-touch-icon" sizes="57x57" href="../apple-touch-icon-57x57.png">
+    <link rel="apple-touch-icon" sizes="60x60" href="../apple-touch-icon-60x60.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="../apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="76x76" href="../apple-touch-icon-76x76.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="../apple-touch-icon-114x114.png">
+    <link rel="apple-touch-icon" sizes="120x120" href="../apple-touch-icon-120x120.png">
+    <link rel="apple-touch-icon" sizes="144x144" href="../apple-touch-icon-144x144.png">
+    <link rel="apple-touch-icon" sizes="152x152" href="../apple-touch-icon-152x152.png">
+    <link rel="apple-touch-icon" sizes="180x180" href="../apple-touch-icon-180x180.png">
+    <link rel="icon" type="image/png" href="../favicon-32x32.png" sizes="32x32">
+    <link rel="icon" type="image/png" href="../favicon-194x194.png" sizes="194x194">
+    <link rel="icon" type="image/png" href="../favicon-96x96.png" sizes="96x96">
+    <link rel="icon" type="image/png" href="../android-chrome-192x192.png" sizes="192x192">
+    <link rel="icon" type="image/png" href="../favicon-16x16.png" sizes="16x16">
+    <link rel="manifest" href="../manifest.json">
+    <meta name="apple-mobile-web-app-title" content="Kimchi">
+    <meta name="application-name" content="Kimchi">
+    <meta name="msapplication-TileColor" content="#4d4d4d">
+    <meta name="msapplication-TileImage" content="../mstile-144x144.png">
+    <meta name="theme-color" content="#ffffff">
+    <!-- Place favicon.ico in the root directory -->
+    <link rel="stylesheet" href="../css/vendor.css">
+    <link rel="stylesheet" href="../css/fontello.css">
+    <link rel="stylesheet" href="../css/main.css">
+    <script src="../js/vendor/modernizr.js"></script>
+    <body>
+        <div class="dialog-demo">Teste</div>
+
+
+
+    <script src="../js/vendor.js"></script>
+    
+    <script src="../js/plugins.js"></script>
+
+    <script src="../js/dialog-flat.js"></script>
+        <script>
+            $(document).ready(function() {
+                $(".dialog-demo").dialogFlat({
+                    title: "Demo",  //Title of the dialog.
+                    confirmText: "Ok",  //Text of the confirm button, "Ok" is the default value.
+                    cancelText: "Cancel",  //Text of the cancel button.
+                    width: "600",  //Width of the dialog, "px" is the default unit.
+                    height: "500",  //Height of the dialog, "px" is the default unit.
+                    confirmFunc: function() {
+                       alert("success");//Function after confirm
+                    }
+                });
+            });
+        </script>
+    </body>
+</html>
diff --git a/ui/new-ui-samples/widgets/dialog_bootstrap.html b/ui/new-ui-samples/widgets/dialog_bootstrap.html
new file mode 100644
index 0000000..fc857e5
--- /dev/null
+++ b/ui/new-ui-samples/widgets/dialog_bootstrap.html
@@ -0,0 +1,102 @@
+<!--
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+<!DOCTYPE html>
+<html class="no-js" lang="">
+
+<head>
+    <meta charset="utf-8">
+    <meta name="description" content="">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>Kimchi - Action Button Demo</title>
+    <link rel="apple-touch-icon" sizes="57x57" href="../apple-touch-icon-57x57.png">
+    <link rel="apple-touch-icon" sizes="60x60" href="../apple-touch-icon-60x60.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="../apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="76x76" href="../apple-touch-icon-76x76.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="../apple-touch-icon-114x114.png">
+    <link rel="apple-touch-icon" sizes="120x120" href="../apple-touch-icon-120x120.png">
+    <link rel="apple-touch-icon" sizes="144x144" href="../apple-touch-icon-144x144.png">
+    <link rel="apple-touch-icon" sizes="152x152" href="../apple-touch-icon-152x152.png">
+    <link rel="apple-touch-icon" sizes="180x180" href="../apple-touch-icon-180x180.png">
+    <link rel="icon" type="image/png" href="../favicon-32x32.png" sizes="32x32">
+    <link rel="icon" type="image/png" href="../favicon-194x194.png" sizes="194x194">
+    <link rel="icon" type="image/png" href="../favicon-96x96.png" sizes="96x96">
+    <link rel="icon" type="image/png" href="../android-chrome-192x192.png" sizes="192x192">
+    <link rel="icon" type="image/png" href="../favicon-16x16.png" sizes="16x16">
+    <link rel="manifest" href="../manifest.json">
+    <meta name="apple-mobile-web-app-title" content="Kimchi">
+    <meta name="application-name" content="Kimchi">
+    <meta name="msapplication-TileColor" content="#4d4d4d">
+    <meta name="msapplication-TileImage" content="../mstile-144x144.png">
+    <meta name="theme-color" content="#ffffff">
+    <!-- Place favicon.ico in the root directory -->
+    <link rel="stylesheet" href="../css/vendor.css">
+    
+    <link rel="stylesheet" href="../css/main.css">
+    <script src="../js/vendor/modernizr.js"></script>
+</head>
+
+<body>
+    <nav class="navbar navbar-inverse navbar-static-top">
+        <div class="container">
+            <div class="navbar-header">
+                <a class="navbar-brand" href="#">Dialog (Bootstrap Modal)</a>
+            </div>
+        </div>
+    </nav>
+    <div class="container hosts">
+        <h2>Bootstrap (static)</h2>
+        <!-- Button trigger modal -->
+        <button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
+            Launch demo modal
+        </button>
+        <!-- Modal -->
+        <div class="modal fade in" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
+            <div class="modal-dialog" role="document">
+                <div class="modal-content">
+                    <div class="modal-header">
+                        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+                        <h4 class="modal-title" id="myModalLabel">Modal title</h4>
+                    </div>
+                    <div class="modal-body">
+                        <select id="userLang" class="col-md-12 col-lg-12 ">
+                            <option data-icon="icon-list-add" value="en_US">Add</option>
+                            <option data-icon="icon-play-circled" value="zh_CN">Enable</option>
+                            <option data-icon="icon-pencil-1" value="pt_BR">Edit</option>
+                            <option data-icon="icon-minus-circled-1" value="de_DE">Remove</option>
+                        </select>
+                    </div>
+                    <div class="modal-footer">
+                        <button type="button" class="btn btn-default">Ok</button>
+                        <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+    <script src="../js/vendor/jquery.js"></script>
+    <script src="../js/vendor/jquery-ui.js"></script>
+    <script src="../js/vendor.js"></script>
+    <script src="../js/vendor/bootstrap.js"></script>
+    <script src="../js/vendor/bootstrap-select.min.js"></script>
+    <script src="../js/main.js"></script>
+    <script src="../js/dialog-flat.js"></script>
+</body>
+
+</html>
diff --git a/ui/new-ui-samples/widgets/gauge-flat.html b/ui/new-ui-samples/widgets/gauge-flat.html
new file mode 100644
index 0000000..92ce07a
--- /dev/null
+++ b/ui/new-ui-samples/widgets/gauge-flat.html
@@ -0,0 +1,53 @@
+<!--Sample code of gauge-->
+<!--
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+  -->
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta charset="UTF-8">
+        <title>Gauge Demo</title>
+        <script src="../../../libs/jquery-1.10.0.min.js"></script>
+        <script src="../../../libs/jquery-ui.min.js"></script>
+        <script src="../gauge-flat.js"></script>
+        <link rel="stylesheet" href="../../../libs/themes/base/jquery-ui.min.css">
+        <link rel="stylesheet" href="../../../css/theme-default/gauge-flat.css">
+    </head>
+    <body>
+        <div class="gauge-demo"></div>
+        <script>
+            $(document).ready(function() {
+                console.log("test started1");
+                var gauged = $(".gauge-demo");
+                gauged.gaugeFlat({
+                    value: 25,
+                    color: "red"
+                });
+                var gaugeAdd = function() {
+                    var gaugeValue = gauged.gaugeFlat("value");
+                    gauged.gaugeFlat("value", gaugeValue + 1);
+                    if (gaugeValue < 99) {
+                        setTimeout(gaugeAdd, 300);
+                    }
+                }
+                gaugeAdd();
+            });
+        </script>
+    </body>
+</html>
\ No newline at end of file
diff --git a/ui/new-ui-samples/widgets/grid.html b/ui/new-ui-samples/widgets/grid.html
new file mode 100644
index 0000000..9b92d62
--- /dev/null
+++ b/ui/new-ui-samples/widgets/grid.html
@@ -0,0 +1,80 @@
+<!--
+ *
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+-->
+
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="UTF-8">
+<title>Wok</title>
+<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
+
+<link rel="stylesheet" href="../../../libs/themes/base/jquery-ui.min.css">
+<link rel="stylesheet" href="../../../fontello/css/fontello.css">
+<link rel="stylesheet" href="../../../fontello/css/animation.css">
+<link rel="stylesheet" href="../../../css/theme-default.min.css">
+
+<script src="../../../libs/jquery-1.10.0.min.js"></script>
+<script src="../../../libs/jquery-ui.min.js"></script>
+<script src="../../../libs/jquery-ui-i18n.min.js"></script>
+<script src="../../../js/wok.min.js"></script>
+
+<style type="text/css">
+body {
+    background: none;
+}
+input {
+    float: right;
+}
+.name {
+    width: 30%;
+}
+.project {
+    width: 30%;
+}
+.role {
+    width: 39%;
+}
+</style>
+<script>
+function init(){
+    $('#ibmers').grid({enableSorting: true});
+    $('input').on('keyup', function(){
+        $('#ibmers').grid('filter', ($(this).val()));
+    });
+}
+</script>
+</head>
+<body onload="init()">
+<div style="height: 50px; padding-top: 10px; padding-right: 50px;"><input type='text' placeholder='Filter' style='padding-left: 5px; height: 20px;'></div>
+<div id="ibmers">
+<div><span class="name">Name</span><span class="project">Project</span><span class="role">Role</span></div>
+<div>
+<div><span class="name" val="tify">tify</span><span class="project" val="kimchi">kimchi</span><span class="role" val="designer">designer</span></div>
+<div><span class="name" val="rick">rick</span><span class="project" val="finance">finance</span><span class="role" val="sponsor">sponsor</span></div>
+<div><span class="name" val="icy">icy</span><span class="project" val="human resource">human resource</span><span class="role" val="administrator*">administrator</span></div>
+<div><span class="name" val="paul">paul</span><span class="project" val="tomcat">tomcat</span><span class="role" val="dev lead">dev lead</span></div>
+<div><span class="name" val="kapil">kapil</span><span class="project" val="apache">apache</span><span class="role" val="developer">developer</span></div>
+<div><span class="name" val="adam">adam</span><span class="name" val="mongodb">mongodb</span><span class="role" val="dev lead">dev lead</span></div>
+<div><span class="name" val="shikha">shikha</span><span class="project" val="mysql">mysql</span><span class="role" val="dev lead">dev lead</span></div>
+</div>
+</div>
+</body>
+</html>
diff --git a/ui/new-ui-samples/widgets/line.html b/ui/new-ui-samples/widgets/line.html
new file mode 100644
index 0000000..cc0b738
--- /dev/null
+++ b/ui/new-ui-samples/widgets/line.html
@@ -0,0 +1,168 @@
+<!--
+ *
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+-->
+
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="UTF-8">
+<title>Wok</title>
+<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
+
+<link rel="stylesheet" href="../../../libs/themes/base/jquery-ui.min.css">
+<link rel="stylesheet" href="../../../fontello/css/fontello.css">
+<link rel="stylesheet" href="../../../fontello/css/animation.css">
+<link rel="stylesheet" href="../../../css/theme-default.min.css">
+
+<script src="../../../libs/jquery-1.10.0.min.js"></script>
+<script src="../../../libs/jquery-ui.min.js"></script>
+<script src="../../../libs/jquery-ui-i18n.min.js"></script>
+<script src="../../../js/wok.min.js"></script>
+
+<style type="text/css">
+body {
+    background: none;
+}
+.cell {
+    display: inline-block;
+    width: 49%;
+}
+.monitor {
+    width: 391px;
+    margin: 15px auto;
+}
+.chart {
+    width: 390px;
+    height: 200px;
+    margin-top: 20px;
+}
+.legend {
+    height: 25px;
+    line-height: 25px;
+    padding-left: 8px;
+    margin: 5px 30px 5px 0;
+    border-left: 3px solid;
+    display: inline-block;
+}
+</style>
+<script>
+function init(){
+$('#chart1').line({
+    minVal: 0,
+    maxVal: 500,
+    datasets: [{
+        data: new Array(50),
+        color: "#d9182d"
+    }]
+});
+$('#chart2').line({
+    minVal: 0,
+    maxVal: 500,
+    datasets: [{
+        data: new Array(50),
+        color: "#008abf"
+    }]
+});
+$('#chart3').line({
+    minVal: 0,
+    maxVal: 500,
+    datasets: [{
+        data: new Array(50),
+        color: "#fdb813"
+    }, {
+        data: new Array(50),
+        color: "#00a6a0"
+    }]
+});
+$('#chart4').line({
+    minVal: 0,
+    maxVal: 500,
+    datasets: [{
+        data: new Array(50),
+        color: "#561289"
+    }, {
+        data: new Array(50),
+        color: "#238901"
+    }]
+});
+setInterval(function(){
+    $('#chart1').line('addData', [Math.round(Math.random()*500)]);
+}, 1000);
+setInterval(function(){
+    $('#chart2').line('addData', [Math.round(Math.random()*500)]);
+}, 1000);
+setInterval(function(){
+    $('#chart3').line('addData', [Math.round(Math.random()*500),Math.round(Math.random()*500)]);
+}, 1000);
+setInterval(function(){
+    $('#chart4').line('addData', [Math.round(Math.random()*500),Math.round(Math.random()*500)]);
+}, 1000);
+}
+</script>
+</head>
+<body onload="init()">
+<div>
+<span class='cell'>
+    <div class="monitor">
+    <div class="h1 grey">Processor</div>
+    <div class="c1 dark-grey bold">
+        <span class="legend" style="border-color: #d9182d;">Used: 41%</span>
+    </div>
+    <div class="c1 light-grey">Maximum: 100%</div>
+    <div id="chart1" class='chart'></div>
+    </div>
+</span>
+<span class='cell'>
+    <div class="monitor">
+    <div class="h1 grey">Memory</div>
+    <div class="c1 dark-grey bold">
+        <span class="legend" style="border-color: #008abf;">Available: 49%</span>
+    </div>
+    <div class="c1 light-grey">Maximum: 280GB</div>
+    <div id="chart2" class='chart'></div>
+    </div>
+</span>
+</div>
+<div>
+<span class='cell'>
+    <div class="monitor">
+    <div class="h1 grey">Storage IO</div>
+    <div class="c1 dark-grey bold">
+        <span class="legend" style="border-color: #fdb813">Write: 6KB/S</span>
+        <span class="legend" style="border-color: #00a6a0">Read: 123KB/S</span>
+    </div>
+    <div class="c1 light-grey">Maximum: 79.04KB/S</div>
+    <div id="chart3" class='chart'></div>
+    </div>
+</span>
+<span class='cell'>
+    <div class="monitor">
+    <div class="h1 grey">Network IO</div>
+    <div class="c1 dark-grey bold">
+        <span class="legend" style="border-color: #561289">Received: 2KB/S</span>
+        <span class="legend" style="border-color: #238901">Sent: 1KB/S</span>
+    </div>
+    <div class="c1 light-grey">Maximum: 33.35KB/S</div>
+    <div id="chart4" class='chart'></div>
+    </div>
+</span>
+</div>
+</body>
+</html>
diff --git a/ui/new-ui-samples/widgets/list.html b/ui/new-ui-samples/widgets/list.html
new file mode 100644
index 0000000..850550c
--- /dev/null
+++ b/ui/new-ui-samples/widgets/list.html
@@ -0,0 +1,46 @@
+<!--
+ *
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+-->
+
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta charset="UTF-8">
+        <title>List Demo</title>
+        <script src="../../../libs/jquery-1.10.0.min.js"></script>
+        <script src="../../../libs/jquery-ui.min.js"></script>
+        <script src="../list-flat.js"></script>
+        <link rel="stylesheet" href="../../../libs/themes/base/jquery-ui.min.css">
+        <link rel="stylesheet" href="../../../css/theme-default/list-flat.css">
+        <link rel="stylesheet" href="../../../fontello/css/animation.css">
+        <link rel="stylesheet" href="../../../fontello/css/fontello.css">
+    </head>
+    <body>
+        <div class="list-demo"></div>
+        <script>
+            $(document).ready(function() {
+                $(".list-demo").listFlat({
+                    title: "Hello World"  //Set title.
+                });
+                $(".list-demo").listFlat("addItem", "Hello", "2015", "icon-user", "button1");
+                        //Add one item of the list, parameters are: name, info, icon and button-id
+            });
+        </script>
+    </body>
+</html>
diff --git a/ui/new-ui-samples/widgets/menu-button-radio-checkbox-text-select.html b/ui/new-ui-samples/widgets/menu-button-radio-checkbox-text-select.html
new file mode 100644
index 0000000..242eaf5
--- /dev/null
+++ b/ui/new-ui-samples/widgets/menu-button-radio-checkbox-text-select.html
@@ -0,0 +1,166 @@
+<!--
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+<!DOCTYPE html>
+<html class="no-js" lang="">
+
+<head>
+    <meta charset="utf-8">
+    <meta name="description" content="">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>Kimchi - Action Button Demo</title>
+    <link rel="apple-touch-icon" sizes="57x57" href="../apple-touch-icon-57x57.png">
+    <link rel="apple-touch-icon" sizes="60x60" href="../apple-touch-icon-60x60.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="../apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="76x76" href="../apple-touch-icon-76x76.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="../apple-touch-icon-114x114.png">
+    <link rel="apple-touch-icon" sizes="120x120" href="../apple-touch-icon-120x120.png">
+    <link rel="apple-touch-icon" sizes="144x144" href="../apple-touch-icon-144x144.png">
+    <link rel="apple-touch-icon" sizes="152x152" href="../apple-touch-icon-152x152.png">
+    <link rel="apple-touch-icon" sizes="180x180" href="../apple-touch-icon-180x180.png">
+    <link rel="icon" type="image/png" href="../favicon-32x32.png" sizes="32x32">
+    <link rel="icon" type="image/png" href="../favicon-194x194.png" sizes="194x194">
+    <link rel="icon" type="image/png" href="../favicon-96x96.png" sizes="96x96">
+    <link rel="icon" type="image/png" href="../android-chrome-192x192.png" sizes="192x192">
+    <link rel="icon" type="image/png" href="../favicon-16x16.png" sizes="16x16">
+    <link rel="manifest" href="../manifest.json">
+    <meta name="apple-mobile-web-app-title" content="Kimchi">
+    <meta name="application-name" content="Kimchi">
+    <meta name="msapplication-TileColor" content="#4d4d4d">
+    <meta name="msapplication-TileImage" content="../mstile-144x144.png">
+    <meta name="theme-color" content="#ffffff">
+    <link rel="stylesheet" href="../css/font-awesome.css">
+    <link rel="stylesheet" href="../css/jquery-ui.css">
+
+    <link rel="stylesheet" href="../css/menu-flat.css">
+    <link rel="stylesheet" href="../css/button-flat.css">
+    <link rel="stylesheet" href="../css/radio-flat.css">
+    <link rel="stylesheet" href="../css/checkbox-flat.css">
+    <link rel="stylesheet" href="../css/textbox-flat.css">
+    <link rel="stylesheet" href="../css/selectmenu-flat.css">
+    <script src="../js/vendor/modernizr.js"></script>
+
+    <link rel="stylesheet" href="../css/fontello.css">
+    <link rel="stylesheet" href="../css/main.css">
+</head>
+
+<body>
+    <nav class="navbar navbar-inverse navbar-static-top">
+        <div class="container">
+            <div class="navbar-header">
+                <a class="navbar-brand" href="#">Action Button (menu-flat.js)</a>
+            </div>
+        </div>
+    </nav>
+    <div class="container">
+        <div id="menu"></div>
+        <div style="height:50px">
+            <div id="select"></div>
+        </div>
+        <div class="radio-demo"></div>
+        <div class="checkbox-demo"></div>
+        <input class="text-demo">
+        <button class="button-demo">submit</button>
+    </div>
+    <script src="../js/vendor/jquery.js"></script>
+    <script src="../js/vendor/jquery-ui.js"></script>
+    <script src="../js/vendor.js"></script>
+    <script src="../js/vendor/bootstrap.js"></script>
+    <script src="../js/vendor/bootstrap-select.min.js"></script>
+
+    <script src="js/menu-flat.js"></script>
+    <script src="js/button-flat.js"></script>
+    <script src="js/radio-flat.js"></script>
+    <script src="js/checkbox-flat.js"></script>
+    <script src="js/textbox-flat.js"></script>
+    <script src="js/selectmenu-flat.js"></script>
+    <script src="js/main.js"></script>
+    
+    <script>
+    $(document).ready(function() {
+        $("#menu").menuFlat({
+            name: "wok-dropdown-menu-0",
+            icon: "icon-edit-alt", //Set icon of the menu button.
+            label: 'Actions', //Set button text
+            content: [{
+                name: 'Add',
+                action: 'add',
+                icon: 'icon-plus-circled-1',
+                critical: false
+            }, {
+                name: 'Enable',
+                action: 'enable',
+                icon: 'icon-play-circled2',
+                critical: false
+            }, {
+                name: 'Edit',
+                action: 'edit',
+                icon: 'icon-pencil-2',
+                critical: false
+            }, {
+                name: 'Delete',
+                action: 'delete',
+                icon: 'icon-minus-circled-1',
+                critical: true
+            }]
+        });
+        $("wok-dropdown-menu-0-0").on("click", function() {
+            alert("First option selected");
+        });
+        $("wok-dropdown-menu-0-1").on("click", function() {
+            console.log("Second option selected");
+        });
+        $("#select").selectmenuFlat({
+            content: [1, 2, 3, 4, 5, 6], //Set content of the select menu
+            selected: 2 // set the selected option, starts from "1"
+        });
+        $("#select").selectmenuFlat("value", "4"); //Set value.
+        var t = $("#select").selectmenuFlat("value"); //Get value
+        console.log(t);
+        $(".radio-demo").radioFlat({
+            id: "t", //Base id of the radio set.
+            name: "test", //name of the radio.
+            whichChecked: 2, //First selected position, starts from 1.
+            content: ["apple", "banana", "orange", "cherry"] //set the content array.
+        });
+        $(".radio-demo").click(function() {
+            console.log($(".radio-demo").radioFlat("value")); //this is how to get the value of selected radio value
+        });
+        $(".checkbox-demo").checkboxFlat({
+            id: "t", //Checkbox base id.
+            name: "test", //Checkbox name.
+            content: ["apple", "banana", "orange", "cherry"], //Contents of the checkbox set.
+            checked: [1, 3] //Set the checked item, which starts with number 1.
+        });
+        $(".checkbox-demo").click(function() {
+            console.log($(".selector").checkboxFlat("value")); //Get value of the checked checkbox.
+        });
+        $(".text-demo").textboxFlat({
+            hint: "hint"
+        });
+        $(".text-demo").css({
+            "height": "30px",
+            "width": "200px"
+        });
+        $(".button-demo").buttonFlat();
+    });
+    </script>
+</body>
+
+</html>
diff --git a/ui/new-ui-samples/widgets/message.html b/ui/new-ui-samples/widgets/message.html
new file mode 100644
index 0000000..b8a2cf4
--- /dev/null
+++ b/ui/new-ui-samples/widgets/message.html
@@ -0,0 +1,49 @@
+<!--
+ *
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+-->
+
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta charset="UTF-8">
+        <title>Message Demo</title>
+        <script src="../../../libs/jquery-1.10.0.min.js"></script>
+        <script src="../../../libs/jquery-ui.min.js"></script>
+        <script src="../message-flat.js"></script>
+        <link rel="stylesheet" href="../../../libs/themes/base/jquery-ui.min.css">
+        <link rel="stylesheet" href="../../../css/theme-default/message-flat.css">
+        <link rel="stylesheet" href="../../../fontello/css/animation.css">
+        <link rel="stylesheet" href="../../../fontello/css/fontello.css">
+    </head>
+    <body>
+        <div class="message-demo"></div>
+        <script>
+            $(document).ready(function() {
+                $(".message-demo").messageFlat({
+                    contentMain: "This is a test",  //Content you are going to add
+                    contentConfirm: "Sure?",  //Content that inform user whether they want to continue.
+                                          //Default value is: "Are you sure you want to go on?"
+                    confirm: function() {
+                      alert("comfirmed")
+                    }
+                });
+            });
+        </script>
+    </body>
+</html>
diff --git a/ui/new-ui-samples/widgets/messagebar-flat.html b/ui/new-ui-samples/widgets/messagebar-flat.html
new file mode 100644
index 0000000..fd1417a
--- /dev/null
+++ b/ui/new-ui-samples/widgets/messagebar-flat.html
@@ -0,0 +1,49 @@
+<!--
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta charset="UTF-8">
+        <title>Sample of messagebar</title>
+        <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
+        <link rel="stylesheet" href="../../../fontello/css/fontello.css">
+        <link rel="stylesheet" href="../../../fontello/css/animation.css">
+        <link rel="stylesheet" href="../../../libs/themes/base/jquery-ui.min.css">
+        <link rel="stylesheet" href="../../../css/theme-default/messagebar-flat.css">
+        <script src="../../../libs/jquery-1.10.0.min.js"></script>
+        <script src="../../../libs/jquery-ui.min.js"></script>
+        <script src="../messagebar-flat.js"></script>
+    </head>
+    <body>
+        <div class="message"></div>
+        <script>
+            $(document).ready(function() {
+                $(".message").messagebarFlat({
+                    content: "This is a test",
+                    color: "red",
+                    dismissTime: 1000
+                });
+            });
+        </script>
+    </body>
+
+</html>
diff --git a/ui/new-ui-samples/widgets/tabs.html b/ui/new-ui-samples/widgets/tabs.html
new file mode 100644
index 0000000..a8c4b4d
--- /dev/null
+++ b/ui/new-ui-samples/widgets/tabs.html
@@ -0,0 +1,68 @@
+<!--
+ *
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+-->
+
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="UTF-8">
+<title>Wok</title>
+<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
+
+<link rel="stylesheet" href="../../../libs/themes/base/jquery-ui.min.css">
+<link rel="stylesheet" href="../../../fontello/css/fontello.css">
+<link rel="stylesheet" href="../../../fontello/css/animation.css">
+<link rel="stylesheet" href="../../../css/theme-default.min.css">
+
+<script src="../../../libs/jquery-1.10.0.min.js"></script>
+<script src="../../../libs/jquery-ui.min.js"></script>
+<script src="../../../libs/jquery-ui-i18n.min.js"></script>
+<script src="../../../js/wok.min.js"></script>
+
+<style type="text/css">
+body {
+    background: none;
+}
+</style>
+<script>
+function init(){
+    $( "#tabs" ).tabs();
+}
+</script>
+</head>
+<body onload="init()">
+<div id="tabs">
+    <ul>
+        <li><a href="#tabs-1">Nunc tincidunt</a></li>
+        <li><a href="#tabs-2">Proin dolor</a></li>
+        <li><a href="#tabs-3">Aenean lacinia</a></li>
+    </ul>
+    <div id="tabs-1">
+        <p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.</p>
+    </div>
+    <div id="tabs-2">
+        <p>Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.</p>
+    </div>
+    <div id="tabs-3">
+        <p>Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti. Aliquam vulputate, pede vel vehicula accumsan, mi neque rutrum erat, eu congue orci lorem eget lorem. Vestibulum non ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce sodales. Quisque eu urna vel enim commodo pellentesque. Praesent eu risus hendrerit ligula tempus pretium. Curabitur lorem enim, pretium nec, feugiat nec, luctus a, lacus.</p>
+        <p>Duis cursus. Maecenas ligula eros, blandit nec, pharetra at, semper at, magna. Nullam ac lacus. Nulla facilisi. Praesent viverra justo vitae neque. Praesent blandit adipiscing velit. Suspendisse potenti. Donec mattis, pede vel pharetra blandit, magna ligula faucibus eros, id euismod lacus dolor eget odio. Nam scelerisque. Donec non libero sed nulla mattis commodo. Ut sagittis. Donec nisi lectus, feugiat porttitor, tempor ac, tempor vitae, pede. Aenean vehicula velit eu tellus interdum rutrum. Maecenas commodo. Pellentesque nec elit. Fusce in lacus. Vivamus a libero vitae lectus hendrerit hendrerit.</p>
+    </div>
+</body>
+</html>
-- 
1.9.3




More information about the Kimchi-devel mailing list